Developer tooling
Developer tools are used to create, manage, and interact with canisters. They can come in several formats, such as command line tools, onchain and off-chain libraries, and integrated development environments. For ICP developers, there are tools within each of these categories available for you to utilize when developing your ICP canisters.
Canister development kits (CDKs)
A canister development kit (CDK) is an adapter used by dfx
to provide programming languages with the necessary features and functionality to create, deploy, and manage canisters.
Motoko is ICP's native programming language. It is installed with the IC SDK.
The Rust CDK is developed and maintained by DFINITY for Rust development.
There are several community-contributed and maintained CDKs for languages such as:
Command line tools
dfx
dfx
is the primary tool used by developers to create, build, deploy, manage, and call canisters. dfx
is also referred to as the IC SDK, or the Internet Computer Software Development Kit.
dfx
supports local development and deployment through the dfx start
command, which runs a local instance of the ICP replica that can be used to deploy and test canisters on your local machine.
To deploy canisters to the mainnet or make calls to canisters already deployed on the mainnet, the --network ic
flag can be used with most dfx
commands.
dfxvm
dfxvm
is a CLI tool used for installing and switching between different versions of dfx
. It enables developers to pivot between different projects that are built with different dfx
versions.
ICP Ninja
ICP Ninja is a web-based IDE designed specifically for building and deploying ICP canisters. ICP Ninja enables you to write and deploy code directly to the mainnet from the browser. Users can select from several example projects to get started building. Projects deployed through ICP Ninja are available for 20 minutes unless redeployed.