I want to make custom ckERC20 token

Hi, everyone.

I am trying to make ckERC20 token. I already made token on the ethereum and read docs about ckETH and ckERC20, also deployed ICRC-1 token canister on IC.

I understand architecture of ckETH and ckERC20 workflow.

What is the next?
What should I do for the next?

Best regards.

Just in case you haven’t seen it, the development of ckETH and (the first batch of) ckERC20 tokens is discussed in this thread.

The easier approach would be to follow this development and then get to work on your token after the release of ckUSDT and ckUSDC with plenty of source code available to help you.
If you can’t wait, you’d have to develop your own minter for the conversion (taking care of the gas fees in ETH and the ERC-20 transactions on Ethereum) and set up a (presumably ICRC-2-compliant) ledger suite.

If you have any specific questions, feel free to post them here or in the other thread!

1 Like

Thanks for your reply.

So currently, I have to wait until ckERC20 is done on the IC, right?

When will ckERC20 be finished, and whe can I use it?

As I said, you don’t really have to wait if you want to create your very own solution.
However, waiting for the release of the first set of ckERC-20 tokens should make things easier.

According to this message, the ETA is Q2 2024.
If there are updates to the timeline, they will be posted in that thread.

Thanks for your kind explanation.

I will ask if any other question with this.

Best regards


Hope you are doing well.

I have one question.
Is there any testnet/devnet of internet computer?
And is there any platform to get test ICP for testnet?
I found that openchat has a script to deploy on the testnet, but I can’t find where it is.

Best regards

There are no ICP testnets. What you can do is using a staging environment, which is an alternate mainnet deployment.

If you want to get some cycles to play around I suggest you go to faucet.dfinity.org

I have. Question, how will the gas of ckerc20 tokens will be paid?

Example, ckusdc, what happens when I “withdraw” to Eth usdc ? How is the gas managed, does the user need to have cketh? (If so, what’s the value to have both tokens but now on ICP, the add value should be that final user doesn’t have to take care also to have Eth, and just use Usdc)

I was looking in to Near “chain signatures”

Can someone explain better how this works? They say final user doesn’t have to take care of gas token on different chains on this scenario… how they do it?

I can answer the first part of your question.

In the first version we’re working on, users will have to have ckETH tokens on their balance in order to withdraw ckERC20 tokens. The minter canister will then estimate the transaction costs and burn some amount of user’s ckETH tokens in order to use the corresponding amount of ETH on minter’s balance to pay for the withdrawal transaction.

Thank you, yes I read on other post how the gas will be managed, using cketh.

Is someone from the team aware of the “chain signatures “ feature on near? Looks like they use a “relayer”

( This information was from their websiTe )

Let’s look at an example of how the first iteration of intent relayer will abstract away cross-chain gas and payments for a NEAR user:

  • User has a root.near account that maps to the remote Ethereum address 0xabc via the relayer’s smart contract.
  • User initiates a transaction to buy a BAYC NFT on OpenSea using their NEAR account and pays in $NEAR by doing a transaction on the NEAR network to relayer smart contract with Ethereum transaction payload in arguments and attaching the required $NEAR amount.
  • The relayer smart contract will then forward the transaction bundle to the NEAR MPC signature contract. This bundle consists of (1) the transaction to fund the user’s 0xabc with $ETH required for gas and NFT payment and (2) user’s transaction to buy the BAYC NFT on OpenSea.
  • The Chain Signature contract will sign both transactions using different derivations respective to the relayer contract and originating user.
  • The relayer operator will observe the response from MPC service with signed transactions and submit them to the Ethereum network. This starts with initiating a fund transfer from a treasury paymaster account on Ethereum. This paymaster account will transfer ETH to the user’s 0xabc Ethereum address, equivalent to the NEAR that was originally sent by the user.
  • Then the relayer will submit the final transaction and the BAYC NFT will be purchased from the user’s 0xabc address using ETH to cover gas and payment.

They mention a “treasury paymaster” I think in order to pay in behalf of the final user on ethereum, but when he pays with example “NEAR” how it’s possible or where the money comes from the “treasury paymaster” to exchange near for ethereum… who puts the money, isn’t necessary something like a liquidity pool ?

And how do they be able to sign on other blockchains? Isn’t the capability of ICP unique? with chain ley technology? I really would like to understand in detail the differences here. Thanks

I just post this again because I don’t know if I replied to you directly, sorry

IC’s code is open-sourced and the threshold ECDSA signatures are well documented (see the links too). I think it would be more efficient to ask somebody at NEAR about how NEAR’s chain signing works and compares to ICP :slight_smile:

Hi, DFINITY team.

I checked on twitter that ckUSDC is live on the mainnet.
This means ckERC20 is done?
I am waiting for it because I want to make our custom ckERC20 token. We already have token on ethereum.

If any suggestion, please let me know.

Best regards