Block's new Bitkey is a 2-of-3 multi signature wallet (https://bitkey.world/en-US)

I've been reading their white paper, which is a good summary of their intentions, but doesn't really go into technical details.

Basically, you need 2 of 3 (phone app "mobile key", hard wallet "hardware key", their web service "server key") in order to approve a bitcoin transaction. As I understand it, n-of-m multisignature transactions is natively (and originally) supported by the BTC blockchain.

However, Bitkey also says that you cannot authorize transactions over a personal set spending limit without the hard wallet. (That is, even though "mobile key"+"server key" would be 2-of-3, the transaction still wouldn't be authorized if it was over my set spending limit).

Is this functionality that is natively supported by the blockchain? If not (and is just a policy set of Block/Bitkey), in what ways could it fail or be exploited by a malicious actor? Could someone hack/manipulate Block/Bitkey's servers so that you could still send BTC over the transaction limit without the hard key?

(PS Sorry for the newbie question. I'm a dev but never worked with blockchains before. I'm learning. If there is more technical tutorial/guide on how I could implement multisig wallets with transaction limits in python, I would enjoy learning about that as well).

Thank you.

1 Answer 1


A construction that allows placing limits on what you're allowed to do in a transaction that spends a specific UTXO (such as constraining payment amounts or destinations) is called a covenant. Bitcoin doesn't currently support covenants (though they are a hotly debated topic) so that's not what Bitkey uses for spending limits.

From reading through the website it seems the bitcoins are locked with standard 2-of-3 multisig scripts where the keys are (mobile key, hardware key, server key). The How It Works section on their website says this about the server key:

Cannot sign payments over your personalized limit without your hardware

I believe this is slightly misleading and actually just means the server will not sign payments over the limit, but there's no cryptography or script magic actually preventing it. It also says the server key

Helps recover your money if you lose your phone or hardware, or both

so (mobile key, server key) is enough to recover all your funds. Specifically:

This triggers a 7-day security waiting period, and you'll receive security notifications via SMS or email to confirm you’ve requested hardware recovery.

  • Wow! This is a great answer and perfectly satisfied my curiosity. Thank you :) Mar 15 at 3:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.