ckETH FAQ
The following questions and answers are from the POV of a developer.
For questions from the POV of a user who wishes to know how to hold, send, receive these tokens, please see the user FAQs.
How do I write a smart contract that uses ckETH?
At high-level:
ckETH complies with the ICRC-1 ledger token standard.
You can write a smart contract that works with ckETH just like you would for any other
ICRC-1
-compliant token.You can find all the ICRC-1 ledger endpoints here.
Requests for balances and transfers must be sent to the ckETH ledger, which has the canister ID
ss2fx-dyaaa-aaaar-qacoq-cai
.
For detailed information and potential code examples, check out out the ICP documentation, the DFINITY forum, and the ckETH minter documentation.
What is the best place to start to write contracts that handle ckETH?
Examples of using the dfx CLI to:
What is the purpose of ckETH? What specific problem does ckETH aim to solve within the ETH ecosystem?
ckETH, or chain-key Ether, is an Internet Computer (ICP)-native token that represents Ether (ETH), the native token of Ethereum. It serves as a digital twin of ETH on the Internet Computer blockchain. The purpose of ckETH is to address some of the challenges associated with using Ethereum, particularly in terms of usability and transaction costs.
One of the main issues it addresses is the high transaction fees (or "gas fees") on the Ethereum network. By allowing Ethereum holders to interact with ckETH on the Internet Computer, which has significantly lower gas fees, users can enjoy fast and cheap transactions. They can then convert back to Ethereum whenever they want to transact on the Ethereum network.
Another problem that ckETH aims to solve is the complexity and friction involved in using blockchain systems, particularly for mainstream users who are not familiar with the intricacies of tokens and wallets. The process of acquiring and using ckETH is designed to be straightforward and user-friendly, removing many of the barriers that can deter people from engaging with blockchain technology.
Furthermore, ckETH enables direct interaction between ICP canister smart contracts and Ethereum, bypassing potential attack vectors by directly calling Ethereum RPCs through HTTPS outcalls.
In summary, ckETH aims to enhance the usability of the Ethereum ecosystem by providing a more accessible, cost-effective, and secure way for users to engage with blockchain technology.
How does ckETH relate to ETH? How is ckETH different from a regular ETH transaction? Can I use ckETH just like I would use ETH?
The main difference between a ckETH transaction and a regular ETH transaction lies in the transaction fees and the blockchain they operate on. Regular ETH transactions occur on the Ethereum network and are subject to Ethereum's gas fees, which can be quite high. On the other hand, ckETH transactions occur on the Internet Computer blockchain, which has significantly lower transaction fees.
Yes, you can use ckETH just like you would use ETH, but within the Internet Computer ecosystem. You can deposit your ETH to a specific function in the ckETH helper contract on Ethereum, which then triggers the ICP ckETH canister smart contract to mint the same amount of ckETH to the specified ICP principal. This ckETH can then be used natively on the Internet Computer, and can be converted back to ETH at any time.
However, it's important to note that while ckETH can be used in a similar manner to ETH, the platforms and services that accept ckETH might be different from those that accept ETH, as they are operating on different blockchains.
What are the benefits of using ckETH over traditional Ethereum transactions?
The benefits of using ckETH over traditional Ethereum transactions primarily revolve around transaction speed, cost, and interoperability with the ICP ecosystem.
Lower transaction fees: One of the main advantages of using ckETH is the significantly lower transaction fees compared to Ethereum. Ethereum transactions can sometimes be expensive, especially during periods of high network congestion. On the other hand, ckETH transactions occur on the Internet Computer blockchain, which has significantly lower transaction fees.
Faster transaction speed: The ICP blockchain has a faster transaction speed compared to the Ethereum network. This means that transactions using ckETH can be processed more quickly, providing a smoother and more efficient user experience.
Interoperability: ckETH allows for seamless interaction between the Ethereum and ICP ecosystems. This interoperability can potentially unlock new use cases and applications, such as decentralized finance (DeFi) platforms that span multiple blockchains.
Usability: The process of acquiring and using ckETH is designed to be straightforward and user-friendly, removing many of the barriers that can deter people from engaging with blockchain technology.
However, it's important to note that while ckETH provides these benefits, it's not a direct replacement for ETH. Each has its own unique features and use cases, and the choice between them will depend on your specific needs and circumstances.
Why should I choose ckETH for my application or service?
Choosing ckETH for your application or service can provide several benefits:
Lower transaction fees: Ethereum holders can interact with ckETH on the Internet Computer, which has significantly lower gas fees than on Ethereum. This allows for more cost-effective transactions.
Manage an Ethereum wallet directly in an ICP canister: ICP canister smart contracts can create and manage an Ethereum wallet address using threshold ECDSA. This provides a seamless way to manage Ethereum wallets.
Seamless conversion: ckETH allows you to enjoy the benefits of fast and cheap transactions and higher security on the Internet Computer, while still being able to seamlessly convert back to your ETH anytime.
Multi-chain environment: ICP enables a multi-chain environment where centralized bridges are obsolete and smart contracts can seamlessly communicate across blockchains. This provides increased asset liquidity, expanded market access, improved scalability and throughput, and access to ICP’s unique capabilities.
Gasless token swaps: Using ckETH, users can swap tokens for a few cents with 0 gas fees.
Web2 integration: Connect smart contracts to the world outside blockchain. Fetch real-time price data and more from Web2.
In summary, ckETH provides a secure, cost-effective, and efficient way to interact with the Ethereum blockchain, making it a great choice for your application or service.
What advantages does ckETH offer in terms of speed, fees, and security?
ckETH offers several advantages in terms of speed, fees, and security:
Speed: ckETH transactions on ICP have significantly lower latency compared to Ethereum. They can be transferred with 1-2 seconds finality, making them almost instant .
Fees: Ethereum holders can interact with ckETH on ICP, which has significantly lower fees than on Ethereum. Users can swap tokens for a few cents with 0 gas fees .
Security: ckETH bypasses attack vectors by directly calling Ethereum RPCs through HTTPS outcalls, a feature that enables ICP canister smart contracts to call API requests directly. This minimizes the risk of data leaks, hacks, and breaches.
How can I integrate ckETH into my existing applications or platforms?
To integrate ckETH into your existing applications or platforms, you can follow these steps:
- Obtain an ICP principal or wallet address.
- Deposit your ETH: Ethereum holders can deposit Ether to the deposit function in the ckETH helper contract on Ethereum and specify their ICP principal or wallet address where they want their minted ckETH to appear.
- Mint ckETH: The ICP ckETH canister smart contract will then mint the same amount of ckETH to the indicated ICP principal or wallet address.
- Use ckETH: The ICP principal or wallet address can now use ckETH natively on the Internet Computer.
- Convert back to ETH any time: When the ICP principal wants to convert ckETH back to ETH, they can request the ckETH canister smart contract with the ETH amount and Ethereum address to which they want to send the ETH.
Please note that the ckETH integration is part of a larger Ethereum integration on ICP. Learn more about the Ethereum integration on ICP.
Also, remember that the Internet Computer makes it possible to build almost any online service fully on-chain, in a full stack decentralization model. This is because canister smart contracts can hold up to 400GiB of memory each, and run in parallel with great efficiency. Moreover, they can directly serve interactive web-based user experiences to users by processing HTTP requests, thanks to ICP’s reverse-gas model (canister smart contracts pay for their own execution using “cycles” that they have been charged with). Now they can also be trustlessly combined with DeFi and other functionality Ethereum hosts in a World Computer paradigm.
What are the technical requirements for developers to work with ckETH?
How does ckETH ensure the security of the funds it handles?
ckETH ensures the security of the funds it handles in several ways:
No need for bridges: ckETH uses a feature called HTTPS outcalls that enables ICP canister smart contracts to call API requests directly. This bypasses attack vectors by directly calling Ethereum RPCs, eliminating the need for potentially insecure bridges.
Managing an Ethereum wallet directly in an ICP canister: ICP canister smart contracts can create and manage an Ethereum wallet address using threshold ECDSA. This means that the ICP ckETH minter canister smart contract can generate an address that holds ETH and signs transactions, adding an extra layer of security.
NNS DAO governance: The development of ckETH includes measures to guarantee long-term maintenance and provide more security to ETH through NNS DAO governance. This ensures that the management and development of ckETH are in the hands of a decentralized community, reducing the risk of malicious actions by a single party.
Chain-key signatures: ICP has the ability to sign native transactions on other blockchains without using risky bridges. This feature is used in the operation of ckETH, further enhancing its security.
Remember, while these features enhance the security of ckETH, it's always important to exercise caution and good security practices when dealing with cryptocurrencies.
Can I trust that my funds are safe when using ckETH?
Yes, you can trust that your funds are safe when using ckETH. ICP offers several features that enhance the security and trustworthiness of its canister smart contracts, such as ckETH.
However, as with any blockchain technology, it's important to do your own research and understand the risks involved.
Can I build smart contracts that interact with ckETH? What kind of functionalities can these smart contracts provide?
Yes, you can build smart contracts that interact with ckETH on the Internet Computer. These smart contracts, also known as canisters, can provide a wide range of functionalities. Here are some of the key capabilities:
Minting ckETH: When you deposit your ETH to the ckETH helper contract on Ethereum, the ICP ckETH canister smart contract will mint the same amount of ckETH to your specified ICP principal or wallet address.
Using ckETH: Once the ckETH is minted, it can be used natively on the Internet Computer. This means that your smart contracts can interact with ckETH just like they would with any other token on the Internet Computer.
Converting ckETH back to ETH: If you want to convert your ckETH back to ETH, you can do so by requesting the ckETH canister smart contract with the ETH amount and Ethereum address to which you want to send the ETH.
Interacting with Ethereum smart contracts: ICP canisters can interact with Ethereum smart contracts. This is made possible by the Internet Computer's ability to make HTTPS outcalls to Ethereum APIs to securely query and send transactions to the Ethereum network.
Managing an Ethereum wallet: ICP canister smart contracts can create and manage an Ethereum wallet address using threshold ECDSA. This means that your smart contracts can hold ETH and sign transactions.
Processing and storing large volumes of data: Smart contracts can process and store large volumes of data at a relatively stable cost that is a tiny fraction of that on a traditional blockchain.
Serving web experiences directly to end users: Smart contracts on ICP can serve web experiences directly to end users, providing end-to-end blockchain security.
Creating and managing other Ethereum asset twins: In addition to ckETH, you can also create and manage "twins" of other Ethereum ERC-20 tokens.
Please note that the ICP ETH integration is still in development, and more functionalities will be added in the future.
What are the transaction fees associated with ckETH?
The transaction fees are 0.000002 ckETH.
How quickly can transactions be finalized?
ICP is designed to finalize transactions very quickly. Specifically, it can finalize transactions that update canister smart contract state in 1–2 seconds. This is a significant improvement over traditional blockchains like Bitcoin and Ethereum, which can take much longer to finalize transactions.
In addition, ICP splits canister function execution into two types: "update calls" and "query calls". Update calls take 1–2 seconds to finalize their execution. On the other hand, query calls work differently because any changes they make to state are discarded after they run. This allows query calls to execute in milliseconds.
ICP is capable of processing up to over 30 thousand transactions per second (as of November 2023), executed with an average 1-second finality on dapp subnets and a 2-second finality on the Network Nervous System (NNS) subnet.
Who controls the development and governance of ckETH?
Like many ICP canisters, the development and governance of ckETH is managed by the ICP ecosystem.
Software updates to the ckETH canisters are voted on by the NNS DAO.
Can you provide examples of current applications that utilize ckETH?
View sample projects that use ckETH
What is the current state of ckETH project?
ckETH is live on the Internet Computer mainnet. It has been added to the ICP dashboard. However, with the current ckETH integration, you cannot withdraw to ETH directly from the ICRC-1 wallet.
The integration is being carried out in phases. Phase 0, which enables chain-key signing and HTTPS outcalls, is already complete. Phase 1 is being built to allow ETH API calls by accessing Web-2 based API providers through HTTPS outcalls. This phase also includes designing and building ckETH and ckERC-20 tokens. The final phase, Phase 2, will revolve around native ETH integration.
For more information on the current state of the ckETH project, you can join the forum discussion or check out the Ethereum integration page on the ICP website.
Additional reading
- A data driven exploration of ckETH.
- Developer Journey: 5.2: ICP ETH tutorial.
- Dfinity - Global R&D: May 2023 Edition - ETH Integration: Status update.
- Ethereum + ICP > Multi-chain DeFi
- Extend Bitcoin, Ethereum and other blockchains
- How does ckETH work?
- How to Acquire ckETH
- ICP Ethereum integration explained.
- Internet Computer Blog - ckETH: now live!.
- Internet Computer for Ethereum Developers
- Internet Computer Wiki - Decentralization
- Learn more about how ckETH works.
- Multi-chain DeFi
- The Purposes of the Internet Computer
- Trustless multi-chain on ICP