Tools/Explorers

Bitcoin Exchange Proof of Reserves: Verification Methods Compared

Compare exchange proof-of-reserve methods including Merkle trees, zk-proofs, and third-party attestations. See which exchanges use which PoR approach.

Spark TeamInvalid Date

Proof of Reserves: How Exchanges Prove Solvency

Proof of reserves (PoR) is a verification process that allows a cryptocurrency exchange to demonstrate it holds enough assets to cover all customer deposits. After the collapse of FTX in November 2022 revealed an $8 billion shortfall in customer funds, PoR became the minimum standard that users expect from any credible exchange. Within 24 hours of the FTX implosion, nine major exchanges announced they would publish Merkle tree reserve certificates.

Not all proof-of-reserve systems are equal. Methods range from basic wallet address disclosure to cryptographically sophisticated zero-knowledge proof implementations. The following table summarizes the four main approaches in use today.

MethodHow It WorksProves AssetsProves LiabilitiesUser VerificationPrivacy
Merkle Tree PoRUser balances hashed into a Merkle tree; root published alongside on-chain wallet addressesYesPartial (user can verify own inclusion)Self-service via Merkle proofModerate (balances hashed but tree structure may leak info)
zk-SNARK / zk-STARK PoRZero-knowledge proof attests that all balances sum correctly and no account is negative, without revealing individual dataYesYes (proves total liabilities via ZK circuit)Self-service via ZK verificationHigh (no balance or tree structure leaked)
Third-Party AttestationIndependent accounting firm verifies wallet holdings and customer balances at a point in timeYesDepends on scopeTrust the auditor's reportHigh (no user data published)
Public Company Audit (SEC Filing)Exchange files audited financials with regulators; external auditors verify cold storage via key signing ceremoniesYesYes (balance sheet includes liabilities)Read public filingsHigh (aggregate only)

Merkle Tree Proof of Reserves

The most common PoR method uses a Merkle proof structure. The exchange creates a binary tree where each leaf node represents a user's account balance (hashed for privacy). Parent nodes contain the combined hash of their children, and the single root hash at the top commits to every balance in the tree. If any single balance changes, the root hash changes.

Kraken pioneered third-party-audited Merkle tree PoR among major exchanges. As of March 2025, Kraken reported holding 192,091 BTC in on-chain wallets against customer balances of 167,189 BTC: a reserve ratio of 114.9%. Kraken publishes PoR quarterly, covering BTC, ETH, SOL, USDC, USDT, XRP, and ADA, with an independent accounting firm confirming that on-chain holdings exceed total client liabilities.

BitMEX takes the Merkle approach further with a Merkle sum tree based on the Maxwell Proof of Liabilities scheme. Each leaf contains a balance value in satoshis and an HMAC-based commitment. The tree structure ensures that node_value = left_value + right_value, so the root commits to the exact total of all liabilities. BitMEX open-sourced its implementation on GitHub, allowing anyone to audit the code. This makes BitMEX one of the few exchanges that proves both reserves and liabilities cryptographically.

Bitget also uses Merkle tree verification and has consistently reported reserve ratios well above 100%. In October 2025, Bitget reported a 307% BTC reserve ratio and a total reserve ratio of 186% across major assets.

Zero-Knowledge Proof of Reserves

Zero-knowledge proofs address two weaknesses of plain Merkle trees: privacy leakage (tree structure can reveal information about account distribution) and the inability to prove that no account has a negative balance. A negative balance matters because exchanges offering margin trading and lending may owe more to some users than those users deposited, and hiding negative accounts inflates apparent reserves.

Binance: zk-SNARKs

Binance deployed zk-SNARKs on top of its Merkle tree system in February 2023, partnering with Polyhedra Network for the implementation. The zk-SNARK circuit proves two properties: every leaf node's balance contributed to the claimed total, and no user has a negative net balance across spot, margin, and futures positions. Binance open-sourced the zk-SNARK verification code, enabling independent review.

OKX: zk-STARKs

OKX uses zk-STARKs combined with Merkle trees, audited by blockchain security firm Hacken. By its 37th consecutive monthly PoR report in late 2025, OKX reported over $30 billion in verified assets with BTC and USDT at 105% reserve coverage, ETH at 102%, and USDC at 100%. zk-STARKs differ from zk-SNARKs in that they require no trusted setup ceremony, trading slightly larger proof sizes for stronger security assumptions.

Third-Party Attestations and Public Audits

Some exchanges rely on independent auditors rather than cryptographic self-verification. This approach trades trustlessness for regulatory familiarity: the user trusts the auditor rather than verifying a proof themselves.

Coinbase, as a publicly traded company (NASDAQ: COIN), files audited financial statements with the SEC. External auditors verify cold storage holdings by randomly sampling wallet addresses and requiring the exchange to demonstrate ownership through key signing ceremonies. Coinbase also publishes dedicated proof of reserves for wrapped assets like cbBTC and cbXRP, confirming 1:1 backing.

Hacken has emerged as the leading third-party PoR auditor in the crypto industry, conducting regular audits for OKX, Bybit, Gate.io, and Crypto.com. Bybit's latest Hacken-verified audit in February 2025 confirmed reserve ratios exceeding 100% across all tracked assets. Armanino, previously a major crypto auditor, exited the space in December 2022 following the FTX fallout, with its crypto team later founding The Network Firm.

Exchange PoR Methods Compared

The following table shows the specific PoR approach used by each major exchange, along with their reported reserve ratios and audit frequency.

ExchangePoR MethodAuditor / VerifierBTC Reserve RatioFrequencyOpen Source
BinanceMerkle tree + zk-SNARKsSelf-published (open-source code)100%+PeriodicYes
CoinbaseSEC-audited financials + key signingDeloitte (financial auditor)N/A (balance sheet)Quarterly (SEC filings)No
KrakenMerkle tree + independent attestationIndependent accounting firm~115%QuarterlyNo
OKXMerkle tree + zk-STARKsHacken~105%MonthlyYes
BybitMerkle tree + third-party attestationHacken100%+MonthlyNo
BitgetMerkle treeSelf-published~307%MonthlyNo
BitMEXMerkle sum tree (Maxwell scheme)Self-published (open-source code)100%+Periodic snapshotsYes

What Proof of Reserves Does Not Prove

Understanding the limitations of PoR is as important as understanding the methods. A proof of reserves report confirms that an exchange controls certain on-chain assets at a specific point in time. It does not, on its own, guarantee solvency.

Key limitations:

  • PoR proves assets but not necessarily liabilities. An exchange could hold $1 billion in BTC while owing $3 billion in off-chain obligations, and a basic PoR would not reveal the gap.
  • Snapshots are point-in-time. An exchange could borrow assets for the snapshot window and return them afterward. Continuous or high-frequency attestation reduces this risk but does not eliminate it.
  • On-chain proof does not cover off-chain liabilities such as corporate debt, legal settlements, or obligations to institutional counterparties.
  • Wallet ownership verification varies. Some exchanges simply list addresses; others prove ownership via digital signatures. Without cryptographic proof of control, listed addresses may not belong to the exchange.
  • Rehypothecation risk: PoR does not reveal whether the same assets have been pledged as collateral elsewhere.

The Zondacrypto collapse in April 2026 illustrated these gaps. The Polish exchange's Bitcoin hot wallet balances dropped to near zero while the platform continued claiming solvency, becoming Europe's most significant exchange failure since FTX.

Proof of Reserves vs. Proof of Solvency

True solvency verification requires proving both sides of the balance sheet: Proof of Solvency = Proof of Assets + Proof of Liabilities. Most PoR implementations focus on the asset side. Only a few exchanges approach full solvency proof:

  • BitMEX's Merkle sum tree proves total liabilities alongside reserves, and users can compare the two values directly.
  • Binance's zk-SNARK circuit proves no negative balances exist, which is a partial liability proof: it ensures the exchange is not hiding accounts that owe more than they hold.
  • Coinbase's SEC filings include full balance sheets with both assets and liabilities, audited by Deloitte under PCAOB standards.

For users evaluating exchange safety, a PoR that includes liability verification is significantly more meaningful than one that only shows wallet balances. For a broader comparison of exchange security practices beyond PoR, see our crypto exchange security comparison.

What to Look for When Evaluating Exchange PoR

When assessing an exchange's proof of reserves, consider these criteria:

  1. Does the PoR cover liabilities, not just assets? Exchanges that prove only wallet balances without addressing what they owe provide incomplete assurance.
  2. Can you verify your own inclusion? Merkle-tree-based systems let individual users confirm their balance is part of the total. If the exchange only publishes an aggregate number, you are trusting their claim.
  3. How frequently is PoR published? Monthly reports (OKX, Bitget) provide more assurance than sporadic snapshots. Quarterly reports (Kraken, Coinbase) are the minimum standard for regulated platforms.
  4. Is the verification code open source? Binance, OKX, and BitMEX have published their PoR code for public review. Open-source implementations allow independent security researchers to find flaws.
  5. Who performs the audit? Independent third-party auditors like Hacken or regulated financial auditors like Deloitte provide stronger assurance than self-published reports. After Armanino and Mazars exited crypto auditing in late 2022, the pool of qualified auditors narrowed considerably.
  6. Does the PoR cover all asset types? Some exchanges only prove reserves for BTC and ETH while holding significant user deposits in other tokens. Comprehensive PoR should cover all major assets on the platform.

Self-custody remains the most reliable way to eliminate exchange counterparty risk entirely. For users who prefer to hold their own keys, solutions like Spark enable self-custodial Bitcoin and stablecoin management without relying on exchange solvency. See our Bitcoin custody solutions comparison for a deeper analysis of custody tradeoffs.

Frequently Asked Questions

What is proof of reserves in crypto?

Proof of reserves is a verification process where a cryptocurrency exchange demonstrates that it holds sufficient assets to cover all customer deposits. It typically involves publishing on-chain wallet addresses to prove asset holdings and using a cryptographic structure like a Merkle tree to prove total customer liabilities, allowing individual users to verify their balance is included without seeing other accounts.

Which crypto exchanges have proof of reserves?

Major exchanges with active PoR programs include Binance (zk-SNARKs + Merkle tree), Kraken (Merkle tree with independent audit), OKX (zk-STARKs + Merkle tree), Bybit (Hacken-audited), Bitget (Merkle tree), and BitMEX (Merkle sum tree). Coinbase proves reserves through SEC-audited financial statements. See the comparison table above for specific methods and frequencies used by each exchange.

Can proof of reserves prevent another FTX-style collapse?

PoR reduces the risk but does not eliminate it. FTX never published any form of PoR, and its collapse stemmed from misappropriation of customer funds and hidden liabilities. A robust PoR system that includes liability verification and frequent attestation would make such fraud harder to conceal. However, PoR snapshots can still be gamed, and off-chain liabilities remain invisible to on-chain proofs. PoR is one layer of protection alongside regulation, insurance, and self-custody.

What is the difference between proof of reserves and proof of solvency?

Proof of reserves demonstrates that an exchange controls specific on-chain assets. Proof of solvency goes further by verifying that total assets exceed total liabilities: PoSolvency = PoAssets + PoLiabilities. Most exchange PoR systems prove only the asset side. BitMEX and Binance (via zk-SNARKs) are among the few that incorporate liability proofs. Coinbase achieves solvency proof through traditional audited financial statements.

How do zk-SNARKs improve proof of reserves?

zk-SNARKs allow an exchange to mathematically prove that all user balances sum to the claimed total and that no account carries a negative balance, without revealing any individual account data. This solves two problems with plain Merkle trees: it eliminates the risk of balance information leaking through the tree structure, and it prevents exchanges from hiding negative-balance accounts that would artificially inflate apparent reserves.

How often should exchanges publish proof of reserves?

Monthly publication is the emerging industry standard, used by OKX, Bitget, and Bybit. Kraken and Coinbase publish quarterly. More frequent attestation provides stronger assurance because it narrows the window in which an exchange could temporarily borrow assets for a snapshot. Real-time or continuous PoR remains a goal but is not yet widely implemented due to computational and privacy constraints.

Can I verify my own exchange balance in a proof of reserves?

On exchanges that use Merkle tree or zk-proof-based PoR (Binance, Kraken, OKX, BitMEX, Bitget), yes. The exchange provides you with a unique Merkle proof or verification hash for your account. You can use the exchange's verification tool or open-source code to confirm that your specific balance was included in the published total. On exchanges that rely solely on third-party attestation, individual verification is not possible: you trust the auditor's report.

This tool is for informational purposes only and does not constitute financial advice. Reserve ratios and PoR methods are based on publicly available data as of early 2026 and may change. Always verify current PoR reports directly on each exchange's website before making custody decisions.

Build with Spark

Integrate bitcoin, Lightning, and stablecoins into your app with a few lines of code.

Read the docs →