Skip to main content

What is the ICP blockchain?

Learn how the ICP blockchain unlocks the power of smart contracts and explore the advanced design choices that make this possible.

ICP's vision is that most of the world's software will be replaced by smart contracts. To achieve this vision, ICP is designed to make smart contracts as powerful as traditional software.

What ICP offers today

High-performance smart contracts

Smart contracts on the ICP blockchain can utilize hundreds of gigabytes of memory and compute at the full speed of a modern CPU, which is many orders of magnitude more than Ethereum smart contracts. For example, the high performance of ICP smart contracts enables the demo of an AI inference model running on an ICP smart contract, which is uniquely possible on ICP.

Train and run AI models as smart contracts Learn more about ICP performance.

Low cost & resource efficiency

ICP is designed to be resource-efficient, making it both cost-effective and environmentally friendly. For example, storing a gigabyte of memory on ICP costs a smart contract only $5 per year.

ICP Sustainability Solutions Learn more about ICP costs

State-of-the-art User Experience

Users only need a browser to interact with ICP smart contracts. Users do not need wallets or tokens or any custom software, eliminating all hurdles typically associated with using dapps.

Try out some dapps Deploying your first full-stack dapp


ICP can interface with other smart contract blockchains and traditional Web 2 internet resources via HTTP requests and signing capabilities. For example, Chain-key Bitcoin (ckBTC), a token backed 1:1 by BTC held entirely on the ICP blockchain, is possible because ICP smart contracts can sign transactions. Additionally, the exchange rate canister sends and receives HTTP requests to fetch data from major cryptocurrency exchanges.

Chain Fusion Technology Learn about ICP HTTP outcalls Learn more about ICP contracts threshold signing


Developers can write contracts using popular languages like Rust, TypeScript, or Python and easily incorporate libraries from their respective ecosystem, much like they would in traditional web development. They also have the option to use Motoko, a language specifically designed for the ICP environment.

Start building
Developer documentation

Key Design Choices Behind ICP's Capabilities

Chain key cryptography

A family of protocols leveraging threshold cryptography enables ICP to sign messages that can be efficiently verified, facilitating interoperability and a state-of-the-art user experience.

DAO control

Protocols often evolve slowly due to the need for consensus. ICP stands out by enabling frequent, decentralized updates through its NNS DAO, resulting in hundreds of upgrades since its launch. This allows for continuous addition of new functionalities to smart contracts.

Scale out via subnets

ICP comprises multiple subnets, each supporting different smart contracts that can communicate seamlessly. The network can dynamically add new subnets to scale with demand, enhancing efficiency and performance.

Powerful node hardware

A replicated system is only as fast as the weakest nodes, so ICP runs on powerful machines in data centers, ensuring all nodes meet a high minimum standard. This design means participation isn't possible with low-power devices like a Raspberry Pi, but it enables high performance.

Asynchronous Execution

ICP's smart contracts operate asynchronously, unlike Ethereum's synchronous model where the "whole world waits" for one's smart contract transactions and causes delays as transactions process sequentially. ICP's asynchronous execution allows multiple contracts to process simultaneously.


ICP enhances security and efficiency through a deterministic decentralization approach that balances maximum decentralization with minimized replication. This method considers factors such as the diversity of node providers and their locations. As a result, ICP's replication factor is lower than that of Bitcoin, optimizing for efficiency.


ICP uses WebAssembly, an open standard for binary formats, for its smart contracts. This enables developers to use various programming languages with ease, enhancing developer friendliness due to straightforward mappings to WebAssembly.

Reverse gas

The reverse gas model allows developers to prepay gas fees by loading their smart contracts with 'cycles,' enabling users to interact without needing tokens or a wallet. This simplifies entry into Web3, offering a user experience similar to traditional web applications and facilitating easier adoption. This model provides a state-of-the-art user experience.

Smart contracts serve web assets

Users can interact with smart contracts through a standard browser without needing plugins or custom software, enabling a state-of-the-art user experience.

Get familiar with ICP