Skip to main content

ckBTC overview

Advanced
Bitcoin

What is ckBTC?

Chain-key Bitcoin (ckBTC) is an ICRC-2-compliant token that is backed 1:1 by BTC held 100% on the mainnet.

ckBTC does not rely on a centralized bridge to facilitate the conversion between BTC and ckBTC, which makes it substantially more secure when compared to other traditional 'wrapped' tokens.

ckBTC and BTC have the same value and can be swapped for one another seamlessly, however ckBTC has several advantages. ckBTC has faster transactions that are finalized within a few seconds, and ckBTC transactions on ICP are significantly cheaper than those on the Bitcoin network.

Why you should use ckBTC

Choosing ckBTC for your dapp or product can provide several advantages:

  • Trustless commerce: Bitcoin-based commerce can run natively in an ICP smart contract, allowing for custodial solutions without mitigated third-party risks.

  • Security: ckBTC is decentralized, reducing the risk of compromise or rug pulls.

  • Low fees: A set fee of 0.0000001 ckBTC, which is equivalent to less than a cent or 10 satoshis.

  • Fast transactions: ckBTC facilitates fast transactions using a local ledger, only settling transactions on the Bitcoin network when necessary.

  • Easy integration: ckBTC is compatible with the ICRC-1 and ICRC-2 token standards.

  • Verifiable: All ckBTC activity is verifiable on-chain, and ckBTC transactions go through KYT checks to ensure that no tainted bitcoin is used on ICP or transferred to tainted Bitcoin addresses.

How it works

The ckBTC functionality is provided through an interplay of two canisters:

  • The ckBTC minter.
  • The ckBTC ledger.
Canister / contractBitcoin mainnetBitcoin testnet
Mintermqygn-kiaaa-aaaar-qaadq-caiml52i-qqaaa-aaaar-qaaba-cai
Ledgermxzaz-hqaaa-aaaar-qaada-caimc6ru-gyaaa-aaaar-qaaaq-cai
Indexn5wcd-faaaa-aaaar-qaaea-caimm444-5iaaa-aaaar-qaabq-cai

The ckBTC ledger is responsible for keeping account balances and for transferring ckBTC between accounts. It provides the following functionality:

  • Enables the ckBTC minter to mint and burn ckBTC.
  • Facilitates the transfer of ckBTC among users.

The ckBTC minter is responsible for the minting and burning of ckBTC tokens. It uses the following workflow:

  • Tokens are minted when a user transfers bitcoins to a specific Bitcoin address under the ckBTC minter's control. The Bitcoin address uniquely identifies the owner of the sent bitcoins.

  • The ckBTC minter waits for confirmations of all Bitcoin transactions that affect the total supply of ckBTC (because of the lack of finality in Bitcoin).

  • For Bitcoin retrieval requests, the ckBTC minter burns ckBTC before transferring the corresponding BTC amount (minus fees) using a regular Bitcoin transaction.

A detailed description of the ckBTC minter can be found in its GitHub repository.

A simplified overview of the process to mint and transfer ckBTC is depicted in the following figure.

ckBTC overview

Learn more in the Bitcoin integration technical overview.

ckBTC use cases

  • Token swaps

  • Decentralized exchanges

  • Point of sale applications and services

  • Crowdfunding applications

  • eCommerce platforms

  • Faster and cheaper BTC transactions

ckBTC production application examples

Further reading