Direct Integration with Bitcoin

Can we skip to the parts when all icp holder are millionaires and icp is The internet ? Btw i dont want to skip life, just want that part to come sooner! :crazy_face:

1 Like

Thank you for your continued faith and support. We will not let you down.

Feel free to join our Chinese Telegram group. Our Asia team is managing that directly. Telegram: Join Group Chat . We’ll keep you updated on the progress of our roadmap and other ecosystem development news.


Hi there, In Asia for the Chinese crowd, we’ve been talking about BTC-ICP direct integration with the community a lot.



There are many steps - but not too many remaining.
After syncing and verifying the blockchain state, getting the threshold ECDSA feature ready and testing will be the biggest remaining task.


We can, following legal practice, only use public communication channels like press releases, forum posts, Twitter, blogs etc. to announce features.

We are actively working on it and making each step public on Twitter, the forum, and other comms channels.


We have been making good progress with this feature in the recent weeks. Let me outline the next steps you can expect for this feature and threshold ECDSA, which both together allow for a full Bitcoin integration:

  • The API for Bitcoin testnet being opened up to the public on IC mainnet (~late May, early June)
  • Bitcoin mainnet being synced on IC mainnet (~late May, early June)
  • Threshold ECDSA being activated on IC mainnet (on a 13-node subnet, not a subnet of the size for the production deployment) with a test key that will be deleted later on (~late May, early June)
    Once the Bitcoin testnet API is open and threshold ECDSA is available with a test key, everything you need to develop dApps against is available in a testing environment.

DFINITY need to gain more operational experience on IC mainnet for both features before we can go live as everything needs to be bulletproof and we need high assurance of the correctness of both the feature before we allow everybody to store value with the feature. Such a conservative, security driven, approach should be in the interest of everybody interested in the feature. A lot of time now is being spent on assuring that everything is working as expected and ironing out minor issues in the code.

Further towards production, the following needs to be executed:

Once those steps have been performed, people can switch their smart contracts over from the testing environment (Bitcoin testnet API, threshold ECDSA test key) over to the production environment (Bitcoin mainnet API, threshiold ECDSA prod key). We expect this around late June or first half of July if no unforeseen difficulties come up.


Very interesting ! Thank you for having let me know !

It’s an honor to let you parti cipate in the reply. Thank you. As you know, the software here is not allowed. :sweat_smile:

In fact, he has told you the correct answer. The rocket is ready to take off.


If a subnet hosts BTC mainnet, does it become a BTC node?

Is an IC subnet more like a Bitcoin full node or a lightweight node? Storing the 350+ GB of blockchain data as a full node seems quite costly.

I think it’s dine compared to the data that the IC already storing, each canister has a 300gb limit and ic nodes are data centres.

It’s somewhere in between. The IC, at least for now, will not be storing all 350+ GB of Bitcoin state. Instead, it uses these blocks to compute the UTXO set, and then discards them to save space. The UTXO set takes a relatively small amount of space (~15GiB).

We do store some of the recent blocks though to allow us to:

  1. Detect forks.
  2. Compute the UTXO set at different confirmations.

Short answer: No.

Long answer: It acts like a BTC node in many ways (and looks like one to the other BTC nodes) in that it connects to other BTC nodes, synchronizes with their view of the Bitcoin blockchain, sends transactions out to Bitcoin nodes, and validates blocks and transactions. However, it does not serve blocks to other nodes because we don’t keep the blocks, but only the extracted UTXOs for reasons of not storing 100s of GBs. Acting completely like a full node would not be the purpose it needs to serve.


Thank you for clarifying this.

@dieter.sommer I tried bitcoin-developer-preview but it’s Regtest network.
Could i get example to sync Bitcoin testnet from my local ? I don’t know how to use latest updates from

Thank you so much !

First of all, @ktoanlba, welcome to the Developer Forum!

I don’t recommend you to try to sync Bitcoin testnet locally because it might take days but if you are really interested, here is how:

If you use the Manual Setup:

  1. use testnet=1 instead of regtest=1 in bitcoin.conf as in Setting up a local Bitcoin network
  2. use bitcoin/adapter/tests/sample/testnet.config.json instead of bitcoin/adapter/tests/sample/regtest.config.json as in Running the IC-Bitcoin Adapter

If you use the Docker Setup:

  1. use testnet=1 instead of regtest=1 in docker/bitcoind/conf/bitcoin.conf
  2. use testnet instead of regtest in docker/adapter/regtest.json

If you use testnet instead of regtest, make sure to change Regtest to Testnet in:

We are working on making the bitcoin-developer-preview working with the latest updates from


One subnet on IC mainnet started syncing Bitcoin mainnet on Friday!


All the team deserve a drink or two! Dfinity Prof of Work :wink:. I will drink a beer for this! Eva and the team must start working on promoting now, i hope will do a great job.

1 Like

Is there a link to see the syncing progress? :sweat_smile::sweat_smile::sweat_smile: