The ckBTC minter and the ckBTC ledger are already controlled by the NNS (more specifically, by the NNS root canister).
This does not mean that the functionality is ready yet. Once it is ready, proposals will be required to make ckBTC available.
The ckBTC minter and the ckBTC ledger are already controlled by the NNS (more specifically, by the NNS root canister).
This does not mean that the functionality is ready yet. Once it is ready, proposals will be required to make ckBTC available.
Thanks @free and @Severin for the answers. I get a much better understanding (hence appreciation) about BTC integration and ckBTC now.
It’s gonna be an exciting time for the IC network and crypto as a whole.
Now that proposal Proposal: 105128 - IC Dashboard passed, the index canister is also installed, so all ckBTC canisters are now in place.
The mainnet ckBTC canister ids are:
{
"index": {
"ic": "n5wcd-faaaa-aaaar-qaaea-cai"
},
"ledger": {
"ic": "mxzaz-hqaaa-aaaar-qaada-cai"
},
"minter": {
"ic": "mqygn-kiaaa-aaaar-qaadq-cai"
}
}
Note that converting BTC to ckBTC is still restricted to only one principal controlled by DFINITY, but everything else is live.
What is the URL to access the minter?
The ckBTC canisters are now all installed, and the first ckBTC has been minted after depositing BTC today! Some useful links to follow the activity:
Note that converting BTC into ckBTC is still restricted for now. This will be lifted with a future proposal.
When can we officially trade CKBTC?
Might need to have this edited as it would come across as contradictory?
Isn’t this a common understanding of wrapped assets? WETH for example on Ethereum.
A few members of the community have expressed some concerns about ckBTC whitelisting for minting. This post is to bring some clarity around DFINITY’s ckBTC rollout strategy.
Summary:
Timeline:
Integrating ckBTC into a dapp
The ckBTC ledger is fully launched and ready to be integrated into dapps on the Internet Computer today. As ckBTC uses the ICRC-1 standard, implementation is fairly straightforward.
However, as with any other token with value there are risks involved, so developers should incorporate ckBTC with caution. To enable developers to safely develop and test ckBTC applications, ck-TEST-BTC will remain available for anyone to test in dapps before launching with ckBTC. We encourage developers to take advantage of the ckTESTBTC canister as it is technically equivalent to the real ckBTC canister, except it uses testBTC.
Whitelisting ckBTC minting & initial rollout
ckBTC is not a token created by DFINITY but is a digital twin of BTC with 1:1 equivalent value. This is ensured by anyone being able to redeem ckBTC for BTC on the BTC network and also conversely convert BTC to ckBTC.
However to control risk, the release of ckBTC follows a staggered and controlled rollout. As a first step, a DFINITY principal was whitelisted to issue an initial batch of ckBTC before opening up ckBTC issuance to the public.
To stress test and to prime the wider ecosystem for ckBTC adoption, we wanted to get ckBTC into the hands of as many end users as possible. To this goal we selected a limited number of projects, based on user metrics and the capacity to implement ckBTC into their in-dapp wallets to help distribute ckBTC to their end users via fun and engaging promotional activities (not an airdrop). We selected a diversity of dapps from various categories such as GameFi, SocFi and DeFi to help.
As the ICP community has shown great enthusiasm for the BTC Integration and ckBTC, whitelisting was a way to launch ckBTC in a controlled way in production. Sending ckBTC for the teams to distribute onwards was a way to involve the community and provide initial liquidity. If there are other projects in the ecosystem who are planning to develop ckBTC use cases, and broaden the user base of ckBTC, we are happy to learn more about how we can help your launch.
We are happy to see the hype around BTC Integration and ckBTC, and look forward to more dapps integrating ckBTC. Feel free to reach out to us with your feedback and technical questions.
Happy Hacking!
See documentation: Internet Computer Content Validation Bootstrap
Small correction: I wrote that “It is possible today via dfx for anyone to redeem their ckBTC for BTC on the Bitcoin network” in the previous post, but this was incorrect, this is currently also restricted to a single DFINITY-controlled principal. Proposal Proposal: 107903 - IC Dashboard will make it so that everybody can convert ckBTC into BTC. Sorry for the confusion!
Proposal Proposal: 107903 - IC Dashboard has been executed and now anybody can convert ckBTC into BTC.
Where exactly to go for this? I’m on the NNS but don’t see an option to convert it over.
Currently, you have to use the command line and dfx
for this, see the steps at ic/rs/bitcoin/ckbtc/minter at master · dfinity/ic · GitHub. The plan is that the NNS FE dapp will also support this flow in the coming weeks, which would be a bit more user friendly.
(
variant {
Err = variant {
TemporarilyUnavailable = "BTC deposits are temporarily restricted"
}
},
)
I’m assuming this is on purpose?
Edit: I might have misunderstood your post, ckBTC to BTC is open for public, but minting is still restricted? Thanks!
Yeah, BTC to ckBTC minting is still restricted, according to his post.
Hello everyone,
I am facing an issue while trying to build and deploy canisters locally. The canisters are building successfully, but I am having trouble deploying the “minter” and “ledger” canisters.
When I try to deploy the “minter” canister, I am getting the following error message: “Error: Failed while trying to deploy canisters. Caused by: Failed while trying to deploy canisters. Failed while trying to install all canisters. Failed to install wasm module to canister ‘minter’. Failed to create argument blob. Invalid data: Unable to serialize Candid values: record field mode not found.”
Similarly, when I try to deploy the “ledger” canister, I am seeing the following error message: “Error: Failed while trying to deploy canisters. Caused by: Failed while trying to deploy canisters. Failed while trying to install all canisters. Failed to install wasm module to canister ‘ledger’. Failed to create argument blob. Invalid data: Unable to serialize Candid values: type mismatch: record { token_symbol = “ckTESTBTC”; transfer_fee = 10; metadata = vec {}; minting_account = record { owner = principal “ml52i-qqaaa-aaaar-qaaba-cai” }; initial_balances = vec {}; archive_options = record { num_blocks_to_archive = 1000; trigger_threshold = 2000; max_message_size_bytes = null : null; cycles_for_archive_creation = opt 1000000000000; node_max_memory_size_bytes = opt 3221225472; controller_id = principal “mf7xa-laaaa-aaaar-qaaaa-cai”; }; token_name = “Chain key testnet Bitcoin”; } cannot be of type variant { Upgrade : opt UpgradeArgs; Init : InitArgs }.”
The “index” and “archive” canisters deploy and work fine, but the “minter” and “ledger” canisters are not deploying and giving the error message that the wasm file is missing, even though I can see it in the “.dfx” directory.
I have tried reinstalling the canisters and clearing the cache, but the issue persists.
This sounds like it may be an issue with the install args, are you passing install arguments? See here how we installed the ckTESTBTC canisters.
I did everything the same way as in that file, I deployed with the same arguments.
Hey @DGDG, thanks for the ping. Could you provide more detail? Do you know which tx exactly were taking longer? Which parts of the dashboard aren’t updating? Is there anything that you think is currently not up to date?
One thing that I could imagine is that some retrieve BTC requests took longer because the minter had no UTXOs available. If you make a retrieve BTC request now, that uses one UTXO, and because the minter uses super conservative settings waiting for 72 confirmations, the “change” only comes back to the minter after a long time. So currently it can be the case that a retrieve BTC request has to wait for UTXOs to become available. This problem would go away if the minter uses less conservative settings or if it has more UTXOs.