Skip to content

ICP Developer Docs

The Internet Computer (ICP) is a blockchain that runs at web speed, serves web content, and provides a complete execution environment for smart contracts called canisters. No cloud servers, no bridges, no external dependencies.

Start the quickstart to install icp-cli, create a project, and deploy your first canister.

Canisters can sign transactions for Bitcoin, Ethereum, and other chains using threshold signatures — no bridges or oracles required. Learn more

Canister memory survives across executions and upgrades. No databases, no serialization — just use variables. Learn more

Users never pay gas. Canisters pay for their own compute, storage, and bandwidth using cycles. Learn more

Canisters serve HTTP responses directly. Host full web applications — frontend and backend — entirely onchain. Learn more

Natively interact with Bitcoin, Ethereum, Solana, and other blockchains from ICP canisters. Learn more

Install tools, create your first project, deploy a canister, and choose your path forward.

Task-oriented how-to guides organized by development stage: backends, frontends, authentication, testing, production, chain fusion, DeFi, governance, and security.

Developer-focused explanations of ICP architecture, capabilities, and design decisions.

Language-specific guides for Rust and Motoko, including stable structures, testing, and CDK reference.

Specifications, canister IDs, token standards, cycle costs, execution errors, and glossary.

ICP has first-class support for AI-assisted development. Install icskills to give your AI agent deep knowledge of ICP patterns:

Terminal window
npx skills add dfinity/icskills

Set up agentic development

ResourceDescription
icp-cliCommand-line tool for ICP development
JS SDKJavaScript/TypeScript libraries for ICP
icskillsAI agent skill files for ICP development
Learn HubDeep protocol-level explanations
Motoko core libraryMotoko core library documentation
Rust CDKRust canister development kit API reference