Skip to main content

ckBTC FAQ

Advanced
FAQ

The following questions and answers are from the POV of a developer who wants to know things such as "how does a canister send ckBTC?".

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 ckBTC?

The best place to start is to follow the ckBTC and Bitcoin integration developer tutorial. This tutorial will guide you through the process of creating a smart contract that uses ckBTC or integrates with Bitcoin.

What is the purpose of ckBTC?

Chain-key Bitcoin (ckBTC) is a token on the Internet Computer that is backed 1:1 by bitcoin (BTC). It is designed to integrate Bitcoin with the Internet Computer Protocol (ICP) and decentralized finance (DeFi) applications. ckBTC is an ICP-native token that uses chain-key cryptography to own and control all underlying bitcoin, extending the ICP protocol stack so the blockchain behaves like a faster, less expensive, and more environmentally sustainable solution than the Bitcoin network.

ckBTC facilitates bitcoin holders to participate in the DeFi ecosystem, activating the world’s largest crypto economy. It offers a secure and scalable environment to use bitcoin in DeFi applications, including lending, borrowing, asset management, decentralized exchanges, and more.

ckBTC is not a bridged or wrapped token; it is a direct link between the Bitcoin network and the Internet Computer, reducing the risks tied to bridges. This approach not only tackles security concerns but also launches Bitcoin into a world of better adaptability and user experiences.

ckBTC also offers the first bonafide use case for bringing smart contracts to BTC. Building DeFi on ICP is more secure, faster, environmentally friendly, and cost-effective.

Additional reading

What specific problem does ckBTC aim to solve within the Bitcoin ecosystem?

ckBTC aims to solve the following problems:

  1. Lack of programmability: The Bitcoin blockchain lacks a programmable layer that is expressive enough to build complex decentralized applications in the form of smart contracts

  2. Intermediary dependence: Self-custody solutions are cumbersome and not ideal for non-technical people but the alternative relies on trusted parties such as custody providers, which is not ideal, either.

  3. Limited integration with DeFi: Bitcoin has been largely unable to integrate smoothly with decentralized finance (DeFi) applications. ckBTC, being an ICP-native token backed 1:1 with real BTC and governed on chain by ICP smart contracts, facilitates bitcoin holders to participate in the DeFi ecosystem.

  4. High latency and fees: Every Bitcoin transaction is processed with the same low throughput, high latency, and high fees native to the Bitcoin network. ckBTC, being a digital bitcoin twin created by chain-key cryptography and canister smart contracts, can be sent with 2–5 second finality and negligible fees.

  5. Security concerns with bridges: ckBTC gets rid of the need for bridges, reducing the risks tied to them.

Additional reading

How does ckBTC relate to Bitcoin?

The Internet Computer integrates with the Bitcoin network at a protocol level, allowing ICP canister smart contracts to create Bitcoin addresses and send and receive bitcoin directly on the Bitcoin network. This integration is made up of two key building blocks: network integration and chain-key ECDSA. With these building blocks, canisters can directly and securely hold, receive, and send bitcoin seamlessly as if the Internet Computer and the Bitcoin network were one blockchain source.

Additional reading

How is ckBTC transaction different from a regular Bitcoin transaction?

ckBTC is different from regular Bitcoin transactions in several ways:

  1. Speed and cost: ckBTC can be sent with 1-2 second finality and negligible fees, making it much faster and cheaper than regular Bitcoin transactions which can take roughly an hour and have high fees.

  2. Smart contract integration: Canister smart contracts can programmatically hold and transfer ckBTC, making it possible to develop fully on-chain Layer-2 applications for Bitcoin. This is not possible with regular Bitcoin transactions.

  3. Fixed transaction fees: ckBTC transaction fees are fixed. Bitcoin transaction fees depend on the size of the transaction and the current backlog of transactions in the Bitcoin network (if the load is high, the fee rate is high).

Additional reading

Why should I choose ckBTC for my application or service?

Choosing ckBTC for your application or service comes with several advantages:

  1. Trustless Bitcoin-based commerce: ckBTC allows Bitcoin-based commerce to run natively on Internet Computer Protocol (ICP) smart contracts, enabling custodial solutions where the custodian is a decentralized application, mitigating the third-party risk.

  2. Security: ckBTC is truly decentralized, potentially reversing the negative DeFi trend caused by large scale hacks and rug pulls.

  3. Low fees and fast transactions: ckBTC acts as a local ledger facilitating fast transactions with low fees (10 satoshis), and only settles transactions on the Bitcoin network when necessary.

  4. Easy integration: Compatible with the ICRC-1 token standard, and now also ICRC-2, ckBTC is easy to integrate into dapps running on the Internet Computer.

  5. Verifiable: All transfer activity and metrics of the ckBTC ledger and ckBTC minter are verifiable on chain. Issuing and redeeming ckBTC also goes through Know Your Transaction (KYT) checks to protect end users by ensuring no tainted bitcoin enters the Internet Computer blockchain or is transferred out to tainted Bitcoin addresses.

Additional reading

What advantages does ckBTC offer in terms of speed, fees, and security?

Chain-key Bitcoin (ckBTC) offers several advantages in terms of speed, fees, and security:

Speed: ckBTC transactions are finalized within seconds, which is a significant speed-up compared to traditional Bitcoin transactions that can take up to an hour or more for 6 confirmations.

Fees: The transaction fees for ckBTC are fixed and negligible, costing only 0.0000001 ckBTC. This is approximately two orders of magnitude lower than traditional Bitcoin miner fees.

Security: ckBTC is backed 1:1 by Bitcoin (BTC), meaning 1 ckBTC can always be redeemed for 1 BTC and vice versa. Unlike other tokens pegged to Bitcoin, ckBTC does not rely on a third-party bridge for conversion between BTC and ckBTC, making it a more secure alternative. The security of ckBTC has been assessed for potential risks, including double-spending of funds, denial-of-service attacks, and insufficient access controls.

Furthermore, ckBTC is issued and redeemed via canister smart contracts that are verifiable by anyone at any time, eliminating centralized custodians, bridges, and traditional cloud providers that could act as attack vectors.

How can I integrate ckBTC into my existing applications or platforms?

To integrate ckBTC into your existing applications or platforms, you can follow the developer documentation. Here are some resources that you might find useful:

  1. ckBTC developer documentation page: This page provides detailed information about ckBTC, including its functionality and how it works.

  2. ckBTC minter GitHub repository: This repository contains the code for the ckBTC minter, which is responsible for minting and burning ckBTC.

  3. Creating a ckBTC point of sale dapp: This is another sample code for a ckBTC point of sale dapp.

If you need further assistance, you can also ask questions in the Internet Computer Developer Forum.

Additional reading

What are the technical requirements for developers to work with ckBTC?

For more specific technical requirements, developers may want to refer to the ckBTC API reference and the GitHub repository for ckBTC. They might also find it helpful to follow the developer journey for ckBTC and Bitcoin integration and to look at examples of deploying a Bitcoin dapp and creating a ckBTC point of sale dapp.

How does ckBTC ensure the security of the funds it handles?

ckBTC ensures the security of the funds it handles through several measures:

  1. No third-party bridges: ckBTC does not rely on any third-party bridges for the conversion between BTC and ckBTC. This eliminates the vulnerabilities associated with bridge hacks, which have been a prime target for hackers due to their easy-to-compromise architecture.

  2. Security assessment: The security of ckBTC was a high priority for DFINITY and its community. A third party security assesment was performed by Trail of Bits. The assessment covered testing the possible risks including double-spending of funds, denial-of-service attacks, and insufficient access controls.

  3. KYT checks: Cross-chain transactions go through Know Your Transaction (KYT) checks to protect honest users. KYT is a process that monitors and tracks financial transactions in order to detect and prevent fraudulent or criminal activity.

  4. Trustless process: The conversion of ckBTC back to BTC and vice versa is controlled at the Internet Computer protocol-level in a decentralized manner.

  5. Decentralized process: Every step of converting BTC to ckBTC and back is decentralized, meaning there are no centralized custodians, no bridges and no traditional cloud providers that could act as attack vectors.

  6. 1:1 pegging: Securing ckBTC 1:1 with BTC is crucial as it eliminates the risk of depegging.

Additional reading

How does ckBTC handle transactions across multiple blockchains?

ICP nodes communicate with Bitcoin nodes to download the Bitcoin network’s blocks and maintain its Unspent Transaction Output (UTXO) set. Using this information, the Internet Computer acts as a sidechain and hosts a trustless “bitcoin twin” called ckBTC that can be directly processed by canister smart contract logic and transferred with 1-3 seconds finality at near zero cost.

To create ckBTC, a user transfers their bitcoin to a specific Bitcoin address (under the ckBTC minter’s control), which then triggers the minting of ckBTC for the user. The NNS dapp facilitates the conversion (in both directions).

In the future, ckBTC will be available on other networks like Ethereum – also directly, and without bridges, thanks to chain-key cryptography integrations.

Additional reading

Can I build smart contracts that interact with ckBTC?

Yes, you can build smart contracts that interact with ckBTC on the Internet Computer.

Additional reading

What kind of functionalities can these smart contracts provide?

Smart contracts on ICP, also known as canisters, can provide a wide range of functionalities. Here are some key capabilities:

  1. Orthogonal persistence: Data lives in persistent memory pages, making managing data much easier.

  2. Actor model: This gives dapps a time-tested model for concurrency that scales, allowing deterministic parallelism, both internally and externally.

  3. Access to system APIs: Dapps get access to system APIs uncommon in Ethereum smart contracts, such as unpredictable randomness.

  4. Integration with other blockchains: In addition to Bitcoin, canisters can interact with not only Ethereum smart contracts but also smart contracts on other EVM-based blockchains.

  5. Multi-block transactions: ICP can stretch the execution of a single transaction across multiple blocks, allowing long-running smart contract computations to be initiated.

  6. Daemon contracts: Canister smart contracts can be configured so that they are automatically activated by the network itself at specified intervals.

  7. Serve web content: Canister smart contracts can process HTTP requests, enabling them to host frontends of dapps, making them directly accessible through web browsers.

  8. Interoperability with Ethereum: Canisters can directly call into smart contracts on Ethereum.

What are the transaction fees associated with ckBTC?

The transaction fees for ckBTC on the Internet Computer are designed to be minimal. It is set at 0.0000001 ckBTC, which is equivalent to less than a cent or 10 satoshis. Users only need to pay the transaction fees of the Bitcoin network when converting Bitcoins to ckBTC or vice versa. See: How ckBTC Solves the Dilemma of Blockchain Bridges.

In addition, there is a fee when bitcoins are retrieved. The formula 246*in + 7*out + 52 is used to determine the ckBTC minter’s fee in satoshi. Since transactions to redeem bitcoin usually have two inputs and outputs, the fee is typically 558 satoshi but can be lower if multiple retrieval requests are handled together.. See Chain-key_Bitcoin wiki.

There is also a Know Your Transaction (KYT) fee (currently 2000 satoshi) when converting BTC to ckBTC and vice versa. See Chain-key_Bitcoin wiki.

How quickly can ckBTC transactions be finalized?

ckBTC transactions can be finalized very quickly. They achieve a near-instant transaction finality with transaction confirmation within 1–2 seconds. This rapid finality can increase throughput and efficiency, facilitating more scalability for blockchain applications.

Who controls the development and governance of ckBTC?

ckBTC has two main canister smart contracts (ckBTC minter and ckBTC ledger). Both are controlled by the NNS DAO, updated via community proposals and run on the pzp6e subnet.

The conversion of ckBTC back to BTC and vice versa is controlled at the Internet Computer protocol-level. This process is completely trustless and managed by automated software programs (smart contracts).

Additional reading

Is there a community-driven approach to decision-making?

Yes, the Internet Computer blockchain employs a community-driven approach to decision-making. This is facilitated by the Network Nervous System (NNS), which is a decentralized algorithmic authority that oversees the network's operations and evolution.

Each node provider is verified and voted in by token holders via the NNS. This means that the community of token holders has a say in the governance of the Internet Computer, including admitting new node providers to the network and assigning them to subnets based on community member votes.

This approach ensures that the Internet Computer remains decentralized and that decisions are made collectively by the community, rather than being controlled by a single entity.

Additional reading

Can you provide examples of current applications that utilize ckBTC?

Yes, there are several decentralized applications (dapps) on the Internet Computer that already support ckBTC. Here are some of them:

  1. PlethoraGame
  2. OpenChat
  3. DSCVR
  4. ICLighthouse
  5. DistriktApp
  6. Hot Or Not dapp
  7. infinity_swap
  8. catalyze_one

You can follow these projects on Twitter to stay updated on their latest developments.

Additional reading

Does ckBTC incorporate KYT?

Yes, cross-chain transactions go through KYT checks to protect honest users. Know Your Transaction (KYT) is a process that monitors and tracks financial transactions in order to detect and prevent fraudulent or criminal activity, such as money laundering or terrorist financing.

If ckBTC were to operate without a KYT implementation, there would be a risk of 'tainted' bitcoin entering the Internet Computer, that an honest user could unknowingly withdraw. Such bitcoin may be rejected by CEXs, which means honest users could potentially lose their bitcoin when trying to sell.

KYT is an important security component of ckBTC. Read more about how ckBTC implements KYT and the motivation behind it in this forum post.