ckERC20
What is ckERC20?
Chain-key ERC-20 (ckERC20) tokens are ICRC-2-compliant tokens that are backed 1:1 by the corresponding ERC-20-compliant token on Ethereum. For example, there are chain-key tokens for USDC and LINK.
The full list of chain-key tokens can be viewed on the Internet Computer dashboard under 'Chain Fusion.'
Just like other chain-key tokens, such as ckBTC and ckETH, the ckERC20 tokens do not rely on any centralized bridge to facilitate the conversion between the ckERC20 token and the ERC-20 token, which makes the conversion substantially more secure compared to other traditional 'wrapped' tokens.
ckERC20 tokens offer the same advantages over their counterparts on Ethereum, including faster and cheaper transactions.
A ckERC20 token can be created for any ERC-20 token. The process of adding a ckERC20 token requires creating an NNS proposal.
Note that the same requirements as for any other type of chain-key token apply.
How it works
The ckERC20 functionality is provided by two canisters, the ckETH minter and the ledger suite orchestrator (LSO), and a helper smart contract on Ethereum:
Canister / contract | Ethereum mainnet | Sepolia testnet |
---|---|---|
ckETH Minter | sv3dd-oaaaa-aaaar-qacoa-cai (Canister dashboard) | jzenf-aiaaa-aaaar-qaa7q-cai (Canister dashboard) |
LSO | vxkom-oyaaa-aaaar-qafda-cai | 2s5qh-7aaaa-aaaar-qadya-cai |
Helper | 0x6abDA0438307733FC299e9C229FD3cc074bD8cC0 | 0x674Cdbe64Df412DA9bAb1596e00c1520979B5A23 |
Note that the helper smart contract might change. It is therefore recommended to request the ckETH minter info and extract the helper smart contract address from the response to assure you have the latest contract address.
The ckETH minter is responsible for handling ERC-20 deposits and withdrawal requests. The ckETH minter handles these tasks because ERC-20 transfers require an Ethereum transaction with a fee in ETH.
The ledger suite orchestrator is responsible for a set of ICRC ledger suites, one ledger suite per ckERC20 token. Each ledger suite consists of a ledger, an index, and possibly one or more archive canisters.
The ledger suite orchestrator makes it possible to handle all ckERC20 tokens in a scalable manner.
Specifically, it can:
Spawn a new ICRC ledger suite when adding a new ckERC20 token via an NNS proposal.
Upgrade all managed ledger suites via an NNS proposal.
Top up the canisters of all managed ledger suites with cycles.
Deploying ckERC20 tokens
Tokens deployed on other networks that use the ERC-20 standard can be launched on ICP as ckERC20 tokens. To propose a new ckERC20 be launched on the mainnet, there are several technical and non-technical steps that should be completed. Learn more in creating a new ckERC20 token.
ckERC20 production application examples
Resources
ckETH JavaScript library.