ckETH: a canister-issued Ether twin token on the IC

I think token_id is needed in WithdrawalDetail

Seem like ckETH mint is experiecing serious delay (more than 24 hours by comparing ETH and ckETH mint trasactions timestamp), is there something wrong?

@Gotcha

Looking at the logs it seems that one of the 3 JSON-RPC providers used (eth.llamarpc.com) is experiencing some problems since 2024.05.09. Locally this can be reproduced by making some concurrent requests, some of them being responded by an expected 502, which could be the reason behind the many errors of the type Canister http responses were different across replicas, and no consensus was reached that the minter receives.

3 Likes

Hi everybody! Good news, ckUSDC is now live on mainnet! With the acceptance of proposal 129750, the ckERC20 ā€œledeger suite orchestratorā€ canister (vxkom-oyaaa-aaaar-qafda-cai) created a ledger & index canister for ckUSDC, and the ckETH minter canister is now also responsible for converting between native USDC and ckUSDC. The ckETH minter dashboard now also shows its progress on converting between USDC and ckUSDC.

The canister ids for all ckERC20 tokens can always be obtained from the ledger suite orchestrator canisterā€™s get_orchestrator_info method, which currently returns

    managed_canisters = vec {
      record {
        erc20_contract = record { chain_id = 1 : nat; address = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48" };
        ledger = opt variant {
          Installed = record {
            canister_id = principal "xevnm-gaaaa-aaaar-qafnq-cai";
            installed_wasm_hash = "4ca82938d223c77909dcf594a49ea72c07fd513726cfa7a367dd0be0d6abc679";
          }
        };
        index = opt variant {
          Installed = record {
            canister_id = principal "xrs4b-hiaaa-aaaar-qafoa-cai";
            installed_wasm_hash = "55dd5ea22b65adf877cea893765561ae290b52e7fdfdc043b5c18ffbaaa78f33";
          }
        };
        archives = vec {};
        ckerc20_token_symbol = "ckUSDC";
      };

Instructions on how to use the backend canisters can be found here, and I expect that many dapps will have nice front-end support for ckUSDC soon. The dashboard already has support showing all ckUSDC transactions. Please share any feedback / issues / questions in this forum thread!

22 Likes

Congratulations to you all. You all are stars.

4 Likes

Many thanks to Manu and the DFINITY team for hard work! Congratulations on the launch of ckUSDC!

DFINITY (ICP) Happy 3rd Anniversary! :tada:

The minting and dissolving functions for $ckUSDC are live on ICPSwap: ICPSwap

9 Likes

ShibaInu looks like the next largest ERC20 token by MC and has over 1 Million holders. Shiba coming next week?

Amazing achievement! Congrats. You have unlocked 18 items on my todo list. This is rocket fuel.

6 Likes

Congratulations! Job well done!

Now how hard would it be to support other USDC from other EVMs like Avalanche and L2s?

2 Likes

Amazing! Great work, folks! Perfect present for the third anniversary.
@gregory-demay, you are a superhuman.

8 Likes

Thanks a lot @roman-kashitsyn for the kind words!

3 Likes

Thatā€™s useless, why would you want usdcs from a lot of different blockchains, sounds like losing valuable time

Please is there a guide on how I can get some USDC on the Sepolia testnet, I tried using the Circles faucet and after pasting my Metamask address I donā€™t recieve any Sepolia USDC

1 Like

I think the circle faucet is the only way unfortunately. You can also DM me your address and iā€™ll send you some testnet USDC.

Hey everyone,
Hope youā€™re having a great time, i just went trough the ckETH smart contract code, and i found the event only accepts the principal id, so if i understood it right, there is no way to specify in which subbaccount of that principal id we can mint the ckETH to. If thatā€™s the case, considering that the updating process for ETH smart contracts are not so easy, will it be possible in the future to add this functionality to specify the subAcoount?

1 Like

In the future, we could add a new smart contract and make the minter parse minting events from both of them, yes.

Could you explain please the use case for subaccounts you have in mind?

2 Likes

Thank you so much for the reply,
If that second smart contract could be added, would be amazing.
Iā€™m working on a cross-chain swap POC, that allows all the users to swap a token from blockchain A to blockchain B. The core of the swapping mechanism is a canister on icp which manages the whole process. Since I want to make this crosschain swap in a way that user does not need to connect or provide an ICP wallet, the tokens need to be deposited in a specific subaccount for each user in that canister.
That is one the models i though about and i found the best.
Do you have any suggestions related to it?

Is my understanding correct, that you want to ā€œbridgeā€ the tokens from external blockchains to ICP, then swap to another ck-* token and then bridge back to the destination blockchain on every such swap? If yes, that might be more slow and expensive than needed. Instead of maintaining IC liquidity pools, you could consider maintaining the liquidity in the native pools of corresponding blockchains and then use the EVM RPC canister (I assume weā€™re talking about EVM blockchains) to orchestrate them?

1 Like

The reason i am considering this way despite being slow, is cheap fees. once the token is minted in icp the fees are relatively cheaper and due to reverse gas model all the hassle related to the gas fees on EVM chains will be removed. but your point is also valid. we still have to decide on that.

This question might sound dumb, but can you explain would it be possible to use Helios instead of relying on RPC providers for minter canister?