Proof of reserves is a cryptographic check that answers one narrow question: does a crypto exchange or custodian actually hold the digital assets it says it holds for its customers? A report pairs on-chain verification of wallet balances against a privacy-preserving tally of what the platform owes users, and if reserves meet or exceed liabilities, the report passes. That is genuinely useful. It is also much narrower than most people assume, and the gap between what these reports prove and what they quietly leave out is where informed trust ends and false confidence begins.
What the Report Confirms
A proof of reserves report tries to demonstrate that the custodian’s on-chain digital asset holdings are at least equal to the total balances owed to customers. If an exchange claims to hold 100,000 Bitcoin for users, the report verifies that wallets under the exchange’s control contain at least that amount. The target is a 1:1 reserve ratio: every token a customer sees in their account corresponds to a real token sitting in a verifiable wallet.
That sounds reassuring, and it is, as far as it goes. The report does not cover the exchange’s other debts, does not evaluate whether reserve assets could actually be sold at their stated value, and reflects only a single moment in time. It is a photograph of a wallet, not a portrait of a business.
How the Asset Side Is Verified
Verifying the asset side means proving the exchange controls specific blockchain wallets and confirming how much those wallets hold. Balances are public, so anyone can look up how much Bitcoin sits at a given address. The hard part is proving who controls the wallet.
The exchange demonstrates control by signing a challenge message with the private key associated with each wallet. This works the same way you would prove you own an email account by responding to a verification link. The signed message typically includes a timestamp and a unique random value, called a nonce, so the signature cannot be reused from a prior audit. If the cryptographic signature checks out against the wallet’s public key, ownership is confirmed for that moment.
An auditor or the public can then independently verify the wallet balance on the blockchain. The total across all verified wallets becomes the “reserves” figure. This part of the process is genuinely robust. Blockchain math does not lie about balances, and cryptographic signatures are essentially impossible to forge. The manipulation risks live elsewhere.
How the Liability Side Is Verified
The liability side is harder and more trust-dependent. The exchange needs to prove how much it owes all customers combined, without revealing any individual balance. The standard tool is a Merkle tree, a data structure that lets you verify a piece of data belongs to a larger set without seeing the rest of the set.
The exchange takes every customer’s balance, hashes it into an irreversible string, and pairs those hashes together. Each pair gets hashed again, and the results get paired and hashed again, layer after layer, until a single hash sits at the top. That top hash is the Merkle root, a cryptographic fingerprint of every customer balance in the tree. The sum of those balances is the platform’s total reported liability.
The auditor compares total liabilities against total reserves. If reserves cover liabilities, the report passes.
The Merkle Tree’s Blind Spot
The exchange builds the Merkle tree from its own internal database. If the exchange omits accounts, fabricates negative balances to reduce reported liabilities, or simply lies about what customers are owed, the tree will faithfully reflect that fraudulent data. A Merkle root proves internal consistency, not honesty. The auditor can verify the math; verifying that the inputs are complete and truthful is a different question.
Some platforms now pair Merkle trees with zero-knowledge proofs, specifically zk-SNARKs, to close part of this gap. A zero-knowledge proof lets the exchange prove that every account balance in the tree is non-negative and that the sum is correct, without publishing any underlying balances. This prevents the negative-balance trick. Individual balances stay private while the mathematical constraints are verifiable by anyone. It is a meaningful improvement, though it still depends on the exchange providing a complete customer list.
What Proof of Reserves Does Not Cover
The procedure’s narrow scope creates several gaps that can make a passing report dangerously misleading.
Off-Chain Liabilities
A proof of reserves report covers only on-chain customer balances. It says nothing about bank loans, vendor obligations, corporate bonds, intercompany transfers, or margin obligations. An exchange could control $500 million in Bitcoin while owing $600 million to creditors, and the report would show everything as fully backed. It shows asset coverage against customer deposits. It does not reveal solvency.
Asset Quality
Reserves are counted at face value. If 40% of the reserves consist of the exchange’s own proprietary token, an illiquid altcoin, or assets locked in a staking contract with a six-month withdrawal period, the report treats them identically to Bitcoin or stablecoins. In a bank run scenario, those reserves might be worth a fraction of their stated value or simply unavailable. Proof of reserves confirms quantity, not liquidity.
Snapshot Timing
Every report reflects a single moment. The exchange’s position could change dramatically minutes afterward. This creates a well-known gaming opportunity: borrow assets before the snapshot, pass the audit, return them after. The industry calls this window dressing, and it is essentially undetectable from the report alone. A quarterly or even monthly snapshot gives no assurance about the other 29 days. Continuous on-chain verification systems, such as Chainlink’s Proof of Reserve feeds, address this by publishing verified reserve data in near real time rather than at defined intervals.1Chainlink. Proof of Reserve
Borrowed or Encumbered Assets
A related problem: the process does not distinguish between assets the exchange owns outright and assets it has borrowed, rehypothecated, or pledged as collateral. Wallets verified through cryptographic signing prove control at that moment, not unencumbered ownership. An exchange could be showing you assets it is obligated to return to a lender next week.
Why the Auditor Matters
Most proof of reserves engagements are structured as agreed-upon procedures, a type of accounting engagement where the auditor performs only the specific tests the client asks for. The auditor does not express an opinion on whether the financial picture is fair or complete. They confirm only that the math they were asked to check adds up.
There are currently no established professional audit standards specifically governing proof of reserves. The scope is whatever the exchange and auditor negotiate, so two reports carrying the same label can cover very different ground.
The fragility of this arrangement became visible in late 2022, when Mazars Group paused all proof of reserves engagements with crypto clients after conducting work for Binance that examined only the reserves side without vetting liability claims. Binance later said it had approached the Big Four accounting firms, all of which were unwilling to conduct this work for a private crypto company. That reluctance from established auditors is itself a signal about the professional risk these engagements carry.
How This Compares to a Financial Audit
People sometimes treat a proof of reserves report as roughly equivalent to a financial audit. It is not.
A traditional financial audit covers the whole picture: balance sheet, income statement, cash flows, all assets and liabilities on-chain and off, and the internal controls the company uses to produce its financial reports. The auditor evaluates whether the books, taken as a whole, fairly represent the company’s financial position. Proof of reserves covers one slice: do these specific wallets hold at least as much as these specific customer balances?
A full financial audit provides reasonable assurance that the statements are free from material misstatement, the highest level of confidence an auditor offers. A proof of reserves engagement typically provides limited assurance at most, and many provide none at all. The auditor simply reports findings from the specific tests performed without drawing broader conclusions.
Publicly traded companies are required to file audited financial statements with the SEC, including annual reports on Form 10-K containing an independent auditor’s report.2SEC.gov. All About Auditors: What Investors Need to Know Those audits follow Generally Accepted Accounting Principles and are examined by auditors registered with the Public Company Accounting Oversight Board. For most crypto exchanges, proof of reserves remains entirely voluntary.
Where Reserve Verification Is Now Legally Required
While proof of reserves for general-purpose crypto exchanges remains voluntary, the GENIUS Act (Guiding and Establishing National Innovation for U.S. Stablecoins Act) introduces mandatory reserve verification for stablecoin issuers. The law requires permitted payment stablecoin issuers to publish a monthly composition report of their reserves, and each month’s report must be examined by a registered public accounting firm.3Federal Register. Implementing the Guiding and Establishing National Innovation for US Stablecoins Act for the Issuance of Stablecoins by Entities Subject to the Jurisdiction of the Office of the Comptroller of the Currency The CEO and CFO must personally certify each report’s accuracy.
Stablecoin issuers with more than $50 billion in outstanding stablecoins face an additional requirement: annual GAAP-compliant financial statements audited under PCAOB standards, the same framework governing publicly traded companies.3Federal Register. Implementing the Guiding and Establishing National Innovation for US Stablecoins Act for the Issuance of Stablecoins by Entities Subject to the Jurisdiction of the Office of the Comptroller of the Currency A proposed SEC framework for payment stablecoins goes further, requiring that at least 30% of reserves be convertible to cash within 24 hours, another 30% within seven days, and the remainder within 30 days.4SEC.gov. Full Stablecoin Regulatory Framework
The GENIUS Act applies to stablecoin issuers, not to exchanges holding Bitcoin, Ethereum, or other volatile assets on behalf of traders. For those custodians, publishing a report is a marketing decision, not a regulatory obligation.
How to Check Your Own Balance Is Included
If an exchange publishes a report, you can usually check whether your balance was included in the liability calculation. The exchange provides two pieces of data: your leaf hash, a cryptographic representation of your account balance, and a Merkle path, a set of intermediate hashes connecting your leaf to the published root. You combine your leaf hash with the first hash in the path, run them through the same hash function the tree uses, and repeat at each level. If your final computed hash matches the published Merkle root, your balance was in the total.
Most exchanges that offer this verification provide an in-app tool that runs the computation with one click. Open-source scripts are also available for most major implementations if you want to verify independently. The important detail: you are confirming that your balance was included in the tree, not that the tree is complete. Other accounts could still be missing. Individual verification proves your inclusion, not the report’s overall accuracy.
What to Look For in a Report
The label alone tells you very little. When evaluating a report, the details that matter most are often buried in footnotes or simply absent.
- Who performed the audit. A registered public accounting firm carries more weight than an unnamed internal team or a blockchain analytics company. If no auditor is named, treat the report skeptically.
- What assets were included. A report covering only Bitcoin while the exchange holds dozens of tokens leaves most of the picture out. Look for coverage across all major assets the platform custodies.
- Whether liabilities were independently verified. Some reports verify only the asset side and take the exchange’s word on liabilities. That is half an audit at best.
- Whether user verification is available. If the exchange does not offer a way for you to check your own Merkle proof, the liability side is essentially unverifiable by anyone outside the engagement.
- What is excluded. Read scope limitations carefully. Exclusions for “certain asset types,” “assets held by affiliated entities,” or “balances subject to pending transactions” can hide significant gaps.
A proof of reserves report is a useful data point when you understand its boundaries. It confirms that specific wallets hold specific amounts and that a stated set of customer balances falls within that coverage. Treat it as one input alongside the exchange’s regulatory status, insurance coverage, corporate structure, and track record. The exchanges that collapsed did not fail because their reserve reports were wrong. They failed because the things a reserve report does not measure were catastrophically broken.