Skip to main content

Trustless multi-chain on ICP

Decentralized applications and services can delight users by incorporating the assets and functionality of multiple blockchains. Using the Internet Computer, developers gain the technical superpowers necessary to deliver such game-changing experiences, while preserving user safety and convenience.

Imagine building secure Web3 services 100% on-chain with no need for traditional IT, using just smart contract software. This full stack decentralization, when augmented with trustless multi-chain capabilities derived from advanced cryptography, would enable the secure custody of diverse crypto assets, their incorporation into highly sophisticated value-producing functionality, and the integration of smart contract logic on other chains. New realms of possibilities would appear.

This is the door that the Internet Computer opens

You can create almost any system or service 100% on-chain from advanced “canister” smart contracts. These can trustlessly call into smart contracts on other blockchains, and process their tokens - including bitcoin, ether, ERC20 tokens and BRC20 tokens - either directly on the other chain, or in the form of high-performance trustless local twins.

But how does this magic work?

Traditionally, blockchains have been integrated using centralized, or semi-centralized, blockchain “bridges,” which make wrapped copies of native tokens for usage on other blockchains. Problems include that: 1) those operating bridges must effectively be trusted with the wrapped assets, 2) they are not secure, which has resulted in billions of dollars worth of assets getting hacked, 3) they are slow, cumbersome, and inconvenient for users, and 4) modern regulations may make them illegal, risking the “regulatory seizure” of wrapped assets.

In the trustless Internet Computer multi-chain model, no trusted bridge, blockchain hub, or other intermediary service is involved, just two blockchains.

This is because the Internet Computer network is formed by “Internet Computer Protocol” (ICP), which is powered by “chain key” cryptography. This enables ICP to use network consensus to sign transactions that execute on other blockchains.

Building on this capability, the canister smart contracts of decentralized applications and services are enabled to trustlessly custody and process assets on other chains, and call into their smart contracts. They can also create trustless replacements for problematic bridges. This is revolutionary.

Now, the Internet Computer is additionally progressively integrating with other blockchains at the network level. For example, Internet Computer nodes now talk directly to Bitcoin nodes, which has enabled ICP to host a trustless “bitcoin twin” called chain-key bitcoin (ckBTC) in the role of a sidechain.

The bitcoin twin: ckBTC

The bitcoin twin: ckBTC

Internet Computer nodes talk to Bitcoin nodes to download the Bitcoin network’s blocks and maintain its Unspent Transaction Output (UTXO) set. Using this information, ICP acts as a sidechain and hosts a trustless “bitcoin twin” called ckBTC (“chain key bitcoin”) that can be directly processed by canister smart contract logic and transferred with 1 second finality at near zero cost.

Canister smart contracts can be used to provide web-based wallets, and other Web3 services, that directly incorporate bitcoin – for example, OpenChat allows chain key bitcoin to be transferred via instant chat messages. Canisters can also be used to build a new generation of “Bitcoin DeFi” services.

To create ckBTC, a user transfers their bitcoin to a ckBTC address provided by their wallet (e.g. see functionality provided at the NNS). Their ckBTC twin can then be sent to any other ckBTC address, almost instantly for a tiny fee, or directly to a standard Bitcoin address, causing the bitcoin twin to return to its native form.

Ethereum asset twins: ckETH and ckERC20

Internet Computer nodes talk to Ethereum nodes. This enables ICP to host an “ether twin” called ckETH and “twins'' of ERC20 tokens, such as ckUSDC, ckUSDT, ckUNISWAP, ck1INCH, ckAAVE. These can be directly processed by smart contracts hosted on the Internet Computer.

The “chain key” versions of Ethereum assets live on ledgers created by Internet Computer smart contracts, where they can be transferred with 1 second finality and at near zero cost. Moreover, they can be directly processed by canisters that provide web-based wallets, and other web3 services hosted on the Internet Computer, such as SocialFi and GameFi.

To create chain key Ethereum asset twins, a user transfers them to an address provided by their wallet. Then they can be sent to any other chain key address, almost instantly and at miniscule cost, or directly to a standard Ethereum address (causing the twin to return to its native form), after the standard finalization delay and transaction fee.

ckETH done
ckERC20 is pending

Call into Ethereum smart contracts from ICP using EVM RPC

Call into Ethereum smart contracts from ICP using EVM RPC

The Internet Computer makes it possible to build almost any online service fully on-chain, in a full stack decentralization model, which can be augmented by placing the service under the control of an SNS DAO to automate its maintenance. This is because canister smart contracts can hold up to 400GiB of memory each, and run in parallel with great efficiency. Moreover, they can directly serve interactive web-based user experiences to users by processing HTTP requests, thanks to ICP’s reverse-gas model (canister smart contracts pay for their own execution using “cycles” that they have been charged with). Now they can also be trustlessly combined with DeFi and other functionality Ethereum hosts in a World Computer paradigm.

Ethereum Virtual Machine Remote Procedural Calls (EVM RPC) make it possible for Internet Computer canister smart contracts to interact with smart contracts on any blockchain which supports the Ethereum JSON-RPC protocol. Advanced fully decentralized Web3 services can be created that maintain the UX and heavy data storage and processing on the Internet Computer, while relying on Ethereum DeFi where financial rails are needed.

EVM RPC in beta testing

Publish ICP tokens on Ethereum as icpERC20 tokens

Ethereum provides the world’s preeminent DeFi rails. Decentralized exchanges such as Uniswap provide immense liquidity for trading ERC20 tokens, and popular custody services such as Fireblocks, which are popular among institutions investing in crypto, custody any ERC20 token as standard.

The ICP protocol makes it possible to publish any native ICP token hosted on a standard ledger to Ethereum, in the form of an icpERC20. The twin is a standard ERC20 token and can be processed by any service that processes ERC20 tokens.

A service created by a Internet Computer-hosted smart contract provides functionality (often relayed by wallets) to create an icpERC20 twin of an ICP token . The service also allows icpERC20 twins to be returned to the Internet Computer, where they retain their native form.

Once an icpERC20 token has been created, it can also be processed by Ethereum Layer-2 networks, and moved across other chains using traditional bridges.

icpERC20 is pending

Use ICP to create a web-based multi-chain “brain wallet”

Use ICP to create a web-based multi-chain “brain wallet”

A key problem with hosting traditional wallets such as MetaMask on a smartphone or laptop is the risk of theft by extortion, especially in the developing world. For example, a robber might put a victim up to a wall, and force them to open their phone under threat of violence. If the victim maintains crypto in a traditional wallet, it will be seen and they will lose their crypto.

Chain key makes it possible to create purely web-based wallets, backed by a canister smart contract that maintains the crypto. Authentication to such wallets can involve Internet Identity, Google SSO, or usernames and passwords as required. These can be opened using a web browser tab in Incognito mode, which leaves no trace of the wallet when closed.

The OISY wallet is a great example. It can custody any ICP asset (including chain key twins), native bitcoin, native bitcoin BRC20 tokens, and native Ethereum assets, as required. Self-custodied Ethereum assets can be used in Ethereum DeFi using the WalletConnect functionality it supports. Users gain convenience and a better experience, and superior security.

OISY Wallet:

Ethereum assets done
ICP assets pending
Bitcoin pending
BRC20 pending

Use ICP to create crypto cron jobs on Ethereum

A key challenge involved when hosting DeFi and other services using Ethereum smart contracts, is the secure initiation of regular jobs. Oftentimes, smart contract jobs are initiated using external scripts running on insecure clouds such as Amazon Web Services, where the private key they maintain to make the calls is vulnerable, in the same way the private keys used by hot wallets are.

The Internet Computer provides a solution. Canister smart contracts have an API that allows them to schedule their secure automatic execution for as long as needed into the future. Using EVM RPC, canisters can be used to initiate time-based calls into Ethereum smart contracts too – without a private key being made vulnerable.

pending

Schnorr-enabled Bitcoin Ordinal inscription, BRC20 tokens, and multi-chain

Canister smart contracts on the Internet Computer can use a Bitcoin API to process bitcoin, and also Ordinals, which are used to create and transfer NFTs on the Bitcoin blockchain. Fully decentralized Web3 services on the Internet Computer have taken advantage of the functionality to create marketplaces for Ordinals e.g. Bioniq.

The processing of bitcoin and Ordinals involves the ICP protocol processing ECDSA cryptography behind the scenes. However, inscribing Ordinals and creating and processing BRC20 assets (e.g. meme coins that piggyback on Bitcoin) involves Schnorr cryptography, which ICP now also supports.

Because ICP supports Schnorr, web-based smart contract wallets such as OISY can self-host BRC20, Ethereum, and native ICP assets.

A further advantage is that canister smart contracts can sign transactions for execution on chains such as Cardano and Solana.

Schnorr pending

Unlimited multi-chain via edge routing

Thus far, the Internet Computer network has only directly integrated with the Bitcoin and Ethereum networks, enabling it to produce twins of assets hosted by those networks. However, more broad multi-chain functionality is easily produced.

The Internet Computer enables hosted smart contracts to create accounts on any other blockchain, and sign transactions that can run on their networks. Transaction routing can be performed by the UX of Web3 services.

The UX of a Web3 service can provide very fast, and totally decentralized, edge routing for transactions. For example, when a canister smart contract has created a transaction for execution on another blockchain, the UX (e.g JavaScript running in the web browser) can retrieve the signed transaction by making a call to the smart contract, and then push it to the online API of a node in the destination network, then poll for the result.

Multi-chain sample code

More Sample codes

Multi-chain

IC ETH Starter

IC-ETH verifies ETH NFTs, supports main/test nets.

Multi-chain

Add ERC-20 to IC ETH Starter

How to Verify ERC-20 Ownership On-Chain

Multi-chain

OISY

Oisy Wallet: Multichain, ICP-based, manages ETH/ERC20, extendable to BTC/IC.

Multi-chain

PoS app for ckBTC

Experimental app showcasing ckBTC use on Internet Computer for POS payments.

Multi-chain

ICRC2 Swap Demo

ICRC-2 Swap demo: Manages ICRC-2 tokens, unique in async Internet Computer design.

Multi-chain

Multi-subnet Bitcoin Custody

Experimental Code: Not for live Bitcoin use

Multi-chain

ETH Payment Tutorials

Build a decentralized e-commerce on ICP with ETH payments.

Multi-chain

B3 Wallet

Decentralized multi-chain, multi-owner wallet, supports major blockchains.

Multi-chain

ckBTC

GitHub repo about ckBTC for inspirational use

Multi-chain

ckETH

GitHub repo about ckETH for inspirational use

Learn more about multi‑chain on ICP