ckETH overview
What is ckETH?
Chain-key Ethereum (ckETH) is an ICRC-2-compliant token that is backed 1:1 by ETH held 100% on the mainnet.
Like ckBTC, ckETH does not rely on a centralized bridge to facilitate the conversion between ETH and ckETH, which makes it substantially more secure when compared to other traditional 'wrapped' tokens.
ckETH has the same attributes and advantages as ckBTC, but corresponding to ETH instead of BTC. ckETH and ETH have the same value and can be swapped for one another seamlessly, and ckETH has faster and cheaper transactions than ETH.
How it works
The ckETH functionality is provided through an interplay of a suite of canisters on ICP, and a helper contract on Ethereum:
The ckETH minter is responsible for the minting and burning of ckETH tokens. It uses the following workflow:
Tokens are minted when a user calls the
deposit
function of the helper contract on Ethereum with some ETH attached. The deposit function takes the receiver's principal as an argument and emits aReceivedEth
event with thesender
,value
, andreceiver
as payload.The ckETH minter listens to the
ReceivedEth
event by periodically fetching logs from multiple Ethereum JSON RPC cloud providers and mints the corresponding amount of ckETH to the receiver's account on the ckETH ledger.Users can withdraw ETH by creating an ICRC-2 approval on the ledger and calling
withdraw_eth
with a receiver ETH address as an argument on the minter.The minter will then burn the ckETH on the ledger and create an Ethereum transaction and submit it to the Ethereum network.
A detailed description of the ckETH minter can be found in its GitHub repository.
The ckETH ledger and ckETH index canisters are regular ICRC-1 compliant canisters. A guide on how to interact with these canisters can be found in the using the ICRC-1 ledger section.
ckETH use cases
ckETH has many of the same use cases as ckBTC, such as:
Token swaps
Decentralized exchanges
Point of sale applications and services
Crowdfunding applications
eCommerce platforms
Faster and cheaper ETH transactions
ckETH production application examples
Further reading
ckETH JavaScript library.