Creating ckERC20 tokens
This checklist summarizes the requirements to launch a new ckERC20 token on ICP. Launching a new ckERC20 token requires both non-technical and technical preparation steps.
Chain-key ERC-20 (ckERC20) tokens are ICRC-2-compliant tokens on ICP that are backed 1:1 by the corresponding ERC-20-compliant token on Ethereum.
To learn more about ckERC20, please refer to the ckERC20 docs.
1. Check the current list of ckERC20 tokens.
Check if the ckERC20 token you intend to create is already available on ICP, or if it has been submitted to the NNS and is in the voting process.
To find the current list of ckERC20 tokens, hover over the Chain Fusion tab on the ICP data dashboard.
Alternatively, you can use the following dfx
command:
dfx canister --network ic call orchestrator get_orchestrator_info
To find any proposed ckERC20 tokens, view any open governance proposals that intend to upgrade the ledger suite orchestrator (LSO) which has canister ID vxkom-oyaaa-aaaar-qafda-cai
. Navigate to the proposals section on the governance page and check for any open proposals with the title "Upgrade NNS Canister: vxkom-oyaaa-aaaar-qafda-cai to wasm." Click on the proposal to see the details of the intended ckERC20 tokens. For example, Proposal 130755 is the governance proposal to create ckPEPE.
2. Create a forum post
A post on the DFINITY forum outlining the following points should be made before proceeding to any technical steps. The post does not necessarily need to come from the founders or foundation behind the ERC-20 token.
- Clearly state the specific ERC-20 token and its originating chain for the ckERC20 token you are proposing.
- Explain the potential benefits of creating a ckERC20 version of the token to the ICP community.
- Provide technical validation including links to its open-source ERC-20 smart contract and validation of its deployment, such as an Etherscan link to the smart contract.
- Share relevant data in regards to token metrics, such as market capitalization and price. Include links to sources such as CoinMarketCap or Etherscan for reference.
- Highlight any significant contributions by the token creators or associated foundations to ICP or the broader web3 ecosystem. Include any relevant whitepapers, documentation, and social media links.
It is suggested to wait two weeks for community feedback before proceeding with a proposal to the Network Nervous System (NNS).
3. NNS proposal to upgrade the ledger suite orchestrator
At a high-level, adding a new ERC-20 token involves an NNS upgrade proposal for the ledger suite orchestrator specifying the following:
- Identifier for the new ckERC20 token: The chain ID and the ERC-20 smart contract address of the original ERC-20 token.
- Initialization arguments for the ICRC ledger.
- Wasm hash of the ledger.
- Wasm hash of the index.
The technical steps in detail are outlined on the ledger suite orchestrator code README.