Bitcoin Proof of Reserves Explained
How exchanges prove they hold the Bitcoin they claim to, what Merkle-tree audits actually verify, and the limits of the current proof-of-reserves model.
Signing a message with a Bitcoin private key is the closest thing the network has to a notarized signature. Almost no beginners know how it works. Almost every advanced user has done it — usually under stress.
Bitcoin message signing is one of those features that is genuinely useful, technically straightforward, and almost completely invisible to beginners. The first time most people encounter it is in a high-stakes situation: an exchange asks them to prove ownership of an address, an OTC desk wants verification before transferring six figures, or a customer support ticket bounces back because the agent on the other end needs cryptographic confirmation that you are who you claim to be.
This is the calm version of that conversation. Below is what message signing actually is, when it matters, the standards involved (yes, there is more than one), and the exact steps for signing and verifying with the three most common tools: a hardware wallet, Sparrow, and Electrum. If you have never signed a message and are not sure what one is, this is a 10-minute read that will save you a frantic 45-minute Google session later.
In Bitcoin, the same math that lets you spend coins also lets you prove you own the key that controls them, without spending anything. The mechanism is called a digital signature, and the rough idea is this: you take a message (literally any text you want), you apply your private key to it via a one-way mathematical function, and the result is a short blob of base64 characters. Anyone in the world who has your public Bitcoin address can plug the message, your address, and the signature into a verifier and the verifier will return a clean yes or no — did the private key behind this address actually sign this exact message?
The two important properties:
The closest analogy is a notarized statement. A signed message is “I, the holder of this address, attest to the following text.” If you wanted to write a contract that referenced a specific Bitcoin holding, you could sign “On 2026-05-11, I, [name], pledge the Bitcoin at address bc1q… toward [purpose]” and produce a signature that anyone could verify, forever.
Five common cases, in order of how often they come up.
Larger exchanges (Coinbase Prime, Kraken Institutional) and most OTC desks (we covered them in Bitcoin OTC Desks Explained) ask for proof-of-ownership when you provide a withdrawal address. They will give you a randomly generated message to sign with the private key of the destination wallet. This prevents you from accidentally sending to an address that does not actually belong to you, and it prevents an attacker who has compromised your exchange login from redirecting withdrawals to their own address.
If you want to prove to a counterparty — a partner, a court, an insurance company — that you control a specific amount of Bitcoin, signing a message from the controlling address is the canonical way. Exchanges use the same mechanism at scale: a proof-of-reserves audit involves the exchange signing a fresh message from each of its hot and cold wallets, demonstrating control of those funds at a specific moment in time. (We covered exchange-side proof of reserves in Bitcoin Proof of Reserves Explained.)
If you ever send Bitcoin to an address you no longer have records of — an old exchange that has since closed, a wallet whose seed you lost — the only way to prove a claim against an insolvency estate or bankruptcy trustee is to demonstrate that you actually had control of the receiving wallet at the time. Signing a message from that address is the gold-standard evidence. This is exactly how customers proved claims in the Mt. Gox, FTX, and Celsius proceedings.
Some Lightning custodial services, Bitcoin-native social networks (Nostr is the prominent 2026 example), and certain decentralized markets use signed-message login as an alternative to passwords. You sign a fresh challenge each time you log in, proving you still hold the private key, without ever transmitting the key itself.
Donation campaigns, charitable causes, and high-profile transparency exercises sometimes sign a public statement from a specific address. This lets supporters verify that the address belongs to the entity it claims to belong to, before they send funds.
There are unfortunately more than one. They are mostly compatible in practice, but the labels matter.
1…). Every wallet supports verifying these.bc1q…). De-facto interoperable across most modern wallets, but technically nonstandard.bc1p…). As of 2026, supported by Sparrow, Bitcoin Core, Trezor, and Coldcard. Some older verifier websites still do not handle it.Practical guidance: if you are signing from a legacy address (1…), use whatever your wallet offers; the result will verify essentially everywhere. If you are signing from a SegWit address (bc1q…) or taproot (bc1p…) — the formats covered in Bitcoin Address Types Explained — use BIP-322 if both sides support it; fall back to Electrum-style if not.
Sparrow uses BIP-322 by default for SegWit and taproot addresses, falling back to legacy format for older addresses.
Electrum uses its own legacy-style format. Most verifiers handle it, but BIP-322-only verifiers might not.
The big advantage of hardware-wallet message signing: the private key never leaves the device. Even when signing for an OTC desk that wants tens of millions of dollars of proof, you are never typing or copying the actual key.
The receiving side of message signing is just as important. If someone signs a message and sends it to you, you need three pieces to verify:
Plug all three into Sparrow’s Verify Message tool or Bitcoin Core’s verifymessage RPC. A green “verified” is conclusive: the address controller did sign that message. A red “invalid” could mean three things — wrong message, wrong signature, or address-type mismatch with the verifier (legacy signature being tested by a SegWit-only tool, or vice versa). If you get an invalid result, try one or two alternative verifiers before assuming fraud; signature standard mismatches account for the vast majority of false negatives.