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 costsState-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 dappInteroperability
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 signingDeveloper-friendly
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 buildingDeveloper 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.
Decentralization
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.
WebAssembly
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.