Skip to main content

Developer tooling

Beginner
Dev Tools

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.