custody

Bitcoin Proof of Reserves: How to Verify Your Custodian Actually Holds Your Bitcoin

Proof of reserves lets Bitcoin custodians cryptographically prove they hold the assets attributed to customers. This guide explains how Merkle tree PoR works, its limitations, which custodians provide it, and how to verify your own balance.

bitcoin proof of reservesbitcoin custody proof of reservesbitcoin custodian auditmerkle proof reservesbitcoin custodian verification

The FTX collapse in 2022 was the starkest demonstration of what happens when a custodian does not actually hold the assets it claims. FTX's customers believed their Bitcoin was safely held. It was not. The lesson: never trust a custodian's word about reserves — verify it.

Proof of reserves is the cryptographic mechanism that allows Bitcoin custodians to prove they hold the assets attributed to customers. This guide explains how it works, what the limitations are, and how to check whether your custodian provides meaningful reserves verification.

What Is Proof of Reserves?

Proof of reserves (PoR) is a cryptographic audit technique that allows a custodian to demonstrate:

  1. The total Bitcoin balance across all customer accounts
  2. That specific customer balances are included in that total
  3. That the custodian controls Bitcoin addresses worth at least the claimed total

The key insight: Bitcoin's public blockchain means that on-chain balances are verifiable by anyone. The question is linking those on-chain balances to specific customer account claims.

How Proof of Reserves Works

Step 1: Build a Merkle Tree of Customer Balances

The custodian takes all customer account balances and constructs a Merkle tree — a cryptographic data structure where each node is a hash of its children.

The leaf nodes represent individual customer accounts (typically: hash of the customer ID and their balance). The root node is a single hash that represents the entire dataset.

Key property: Any change to any single customer balance would change the Merkle root. The root is a commitment to the entire customer balance dataset.

Step 2: Publish the Merkle Root

The custodian publicly publishes the Merkle root. This is the "total liability" claim — the sum of all customer balances is committed to in this hash.

Step 3: Prove On-Chain Holdings

The custodian signs a message with the private keys controlling Bitcoin addresses that collectively hold at least as much Bitcoin as the total customer liabilities.

This on-chain proof demonstrates the custodian actually holds Bitcoin — not just that they claim to.

Step 4: Customer Verification

Each customer can verify their balance is included in the Merkle tree by receiving a "Merkle proof" — a set of hash values allowing them to independently verify their account is a leaf in the published Merkle tree.

If your balance is in the tree, and the tree's root matches the published commitment, and the on-chain proof shows the custodian holds at least that total, then your balance is verifiably covered.

The Critical Limitation: Liabilities

Proof of reserves proves assets. It does not prove liabilities.

A custodian could have $1 billion in Bitcoin on-chain (verifiable) while owing $2 billion to customers (not shown in the PoR). The custodian is insolvent but the proof of reserves technically passes.

To address this, meaningful proof of reserves should be paired with a proof of liabilities — a verifiable attestation of the total customer balances. When combined:

  • Proof of reserves: we hold X Bitcoin on-chain
  • Proof of liabilities: customers are owed Y Bitcoin
  • If X ≥ Y: the custodian is solvent

Not all custodians publish both. Exchanges that publish only proof of assets without proof of liabilities provide incomplete assurance.

Which Custodians Provide Proof of Reserves?

Kraken: Was among the first to implement proof of reserves (2014) and has continued providing cryptographic PoR audits. Kraken's audit includes a third-party accountant verification.

BitGo: Provides proof of reserves through monthly attestations and third-party audits. A leading institutional custodian.

Coinbase: As a publicly traded company, Coinbase provides financial audits. Their public company status and GAAP financial statements provide a different form of accountability.

Binance: Provides Merkle tree proof of reserves on their website. Customers can verify their balances.

OKX: Provides public proof of reserves with Merkle tree verification.

Gemini: SOC 2 Type II audits and annual financial audits. Does not provide continuous PoR but has strong institutional audit infrastructure.

How to Verify Your Own Balance

Exchanges that support individual verification provide instructions for customers to verify their inclusion in the Merkle tree. The general process:

  1. Log into the exchange
  2. Navigate to proof of reserves or audit section
  3. The exchange provides your Merkle proof
  4. Use the exchange's verification tool or open-source tools to verify your inclusion
  5. Compare the Merkle root against the publicly published root

This is genuinely verifiable by ordinary users — you do not need to be a cryptographer. The tools are designed to be accessible.

Third-Party Audits vs. Self-Attestation

Self-published proof of reserves (custodian runs the audit themselves) is better than nothing but weaker than third-party verification.

Third-party PoR audits: Firms like Armanino (before their 2022 issues), KPMG, and Grant Thornton have provided PoR attestation services. A third-party audit adds the auditor's reputation to the claim.

Caution: Audit quality varies significantly. An auditor that provides a report without independently verifying the Merkle tree construction or on-chain signature provides weaker assurance than a thorough technical audit.

The Self-Custody Alternative

Proof of reserves is a partial solution to a problem that does not exist with self-custody. When you hold your own Bitcoin keys, proof of reserves is irrelevant — you do not need to verify someone else holds your Bitcoin because you hold it yourself.

For long-term Bitcoin storage, self-custody with a hardware wallet eliminates custodian risk entirely. Proof of reserves matters only when you genuinely need to use a custodian — for trading, lending, IRA accounts, or institutional requirements.

Frequently Asked Questions

Does proof of reserves guarantee my Bitcoin is safe? No. PoR proves the custodian holds at least the claimed Bitcoin at a point in time. It does not prevent future insolvency, fraud, or hacking. Self-custody is the only way to eliminate custodian risk entirely.

Did FTX have proof of reserves? FTX published a limited reserves report days before its collapse that was widely criticized as misleading. It did not constitute genuine proof of reserves with customer verification capability.

How often should custodians publish proof of reserves? Monthly is standard for leading custodians. Real-time or continuous PoR is technically possible and more valuable — some exchanges are moving toward this.

Can a custodian fake proof of reserves? A custodian could temporarily borrow Bitcoin to pass a snapshot audit, then return it — a known attack called "short-term borrowing." Continuous PoR and audits with random timing reduce this risk. Third-party auditors with access to historical data can detect borrowing patterns.

Stay Up to Date on Bitcoin

Get our free Beginners Guide to Buying Bitcoin plus weekly insights for long-term holders.

Related Posts