Bitcoin canister certification

Will the Bitcoin canister support, or could it potentially support, adding certification to the bitcoin_get_utxos_query function, similar to how the asset canister certifies the returned data?

Hi

You might be looking for bitcoin_get_utxos, which is an update call and therefore signed by the subnet.

bitcoin_get_utxos_query is the fast, but less trusted version and there is no plan to change it.

Alright, since requesting the Bitcoin canister from a fiduciary subnet results in significant latency, often exceeding 10 seconds, I want to directly request the Bitcoin canister’s get_utxos method from the frontend, and then verify the returned UTXOs by checking the certification within my canister. It would be great if this could be supported.

I want to directly request the Bitcoin canister’s get_utxos method from the frontend,

and then verify the returned UTXOs by checking the certification within my canister.

Just to be clear, if you get the utxo data + certification into the frontend, it’s your frontend code that checks the certification (not the canister backend as implied in the second line).


A common trick is to perform the query and also the upgrade in the background, and act on discrepancies later, if necessary. But whether that makes sense depends on your use case.

We don’t currently have plans to make change the endpoint in question. It may be theoretically possible to use certified data to achieve what you want. But it’s not clear how simple that is, and what the cost would be given the existing state of the canister.

2 Likes