Crypto Archives Crypto ArchivesKeeper Shen's Notebook
Proof of Reserves · a thick ledger lying open with handwritten cryptographic formulas and a Merkle tree diagram, beside stacks of silver coins and a zk-SNARK glass column
Primers · Concepts

What Is Proof of Reserves (PoR)? Learning to Verify a PoR Report From Scratch

Right now, PoR is the single most important signal of whether a centralised exchange is healthy. This piece is written for readers who have never looked at PoR before: what it can prove, what it cannot, how to read a PoR report on your own, and why zk-SNARK, a term that sounds thoroughly academic, is being used by more and more exchanges.

Introduction: a one-line test

On November 11, 2022, the day FTX filed for bankruptcy, the entire crypto world learned the same lesson at once: the coins you deposit on an exchange can be moved around by the platform however it likes, and you will never know. That same week, Changpeng Zhao (CZ), then Binance's CEO, publicly called on every exchange to publish proof of reserves.

I read that as a one-line test: an exchange either publishes proof of reserves on a regular schedule, or my advice is to stay away from it. It was the first rule the whole industry could agree on after FTX went down. This piece is about PoR itself: what it is, which problems it solves, which it does not, and how to read one on your own.

I. What PoR actually proves

Proof of Reserves is a disclosure an exchange publishes about its own holdings, sometimes checked by an outside firm and sometimes backed by cryptographic proofs that users can verify for themselves. Its purpose is to establish three things:

  1. The amount of on-chain crypto assets the exchange holds at a given point in time (verified by adding up the balances of all the exchange's publicly disclosed wallet addresses).
  2. The total the exchange actually owes its users at that same point in time (verified with a Merkle tree or a zk-SNARK proof showing that every user balance sums correctly).
  3. Assets ≥ liabilities (ideally a reserve ratio above 100%, meaning assets clearly exceed liabilities and leave a buffer).

In plain terms: a proper PoR should let any user independently check two things. First, that their own balance really is counted in the platform's total liabilities. Second, that the platform's on-chain assets really are at least equal to that total.

In its entire lifetime, FTX never published a single PoR that met this definition. Before November 2022, hardly anyone pointed that out.

II. What PoR cannot prove

This section matters more than the last one. PoR is not a certificate of safety, and its limits are very clearly drawn:

  1. PoR does not prove fiat reserves. A PoR report usually covers only the crypto side: BTC, ETH, stablecoins and the like. If what you deposited was US dollars, euros or yen, PoR has no way of showing that this money reconciles too. There is still no standard fix for that gap.
  2. PoR is a snapshot of a single moment. A PoR report dated May 1, 2026 proves only the balances at 12:00 UTC that day. Between that moment and the next report (usually a month later), the platform in theory has time to move funds out and put them back. That is why monthly matters more than quarterly, and quarterly more than annual.
  3. PoR does not prove that liabilities are complete. User liabilities are a known quantity; the platform knows how much each user has deposited. But it may also carry hidden liabilities to outside parties: money owed to a market maker, a loan commitment to an affiliated company, unsettled derivatives positions. None of that sits inside user liabilities, so PoR cannot see it.
  4. PoR does not prove the business is healthy. An exchange can pass PoR cleanly while losing money, burning cash and facing regulatory lawsuits. PoR only asks whether the users' coins are still there, not whether the exchange can keep operating.

Taken together, these four limits make PoR sound weak. And it is only a necessary condition: failing it definitely means trouble, but passing it does not mean you are absolutely safe. Mt.Gox, QuadrigaCX and FTX, three wrecks, had one thing in common: they did not even meet that necessary condition.

III. A short history of PoR

YearEvent
Early daysEarly exchanges used transfers or proof of addresses to show their holdings, which proves only the asset side
2014Kraken publishes a Merkle tree-based proof of reserves, one of the earlier attempts at a rigorous format
2014-2022PoR practice among the leading exchanges is patchy; most publish only as a stopgap in moments of pressure. FTX never published one
2022.11FTX goes down; Binance launches a Merkle tree-based PoR, and in December publishes a report by Mazars on its BTC reserves; several other large exchanges roll out PoR pages of their own
2022.12Mazars suspends all PoR work for crypto clients (citing concerns about the way these types of reports are understood by the public)
2023 onwardBinance and other exchanges bring zk-SNARKs into their proof of liabilities
2026.05Regular PoR publication has become routine among the leading exchanges; PoR is now the minimum bar for any new entrant to the industry

Mazars pulling out of crypto PoR in December 2022 was widely misread at the time, with many outlets reporting it as proof that PoR had failed. In hindsight, the more accurate reading is this: in its December 16 statement, Mazars gave as its reason concerns about the way these reports are understood by the public. What it paused was its own work producing them, which is not the same as PoR itself failing. Since then, Binance and other exchanges have leaned more on cryptographic proofs that users can check for themselves.

IV. Four steps to verify a PoR yourself

Binance is the example below. The process at the other large exchanges is similar.

Step 1: Find the PoR page

Go to the main binance.com domain and search for "Proof of Reserves", or go straight to the URL `/en/proof-of-reserves`. Elsewhere, Kraken uses `kraken.com/proof-of-reserves`; at Bybit and other exchanges, search the official site for "Proof of Reserves" to find the equivalent page.

Step 2: Check who did the verification

Check who, if anyone, verified the current report or PoR page: you are looking for an independent audit or verification firm you can actually look up, and a small outfit you have never heard of and cannot find deserves a little wariness. The Binance page used as the example here does not list a third-party verifier; it relies on the zk-SNARK proof you check yourself in Step 4. When there is no verifier to look up, Step 4 has to carry more of the weight.

Step 3: Check the asset side

A PoR report lists the wallet addresses the exchange declares it holds. Pick a few of the largest and check them independently on a block explorer (Etherscan, Mempool, Tronscan and so on): does the balance match what the report says? This step usually takes about 5 minutes.

Step 4: Check the liability-side method

This is the most rigorous step. The report should state clearly how user liabilities were verified: Merkle tree, zk-SNARK or something else. If it is zk-SNARK, logging in to your own account should let you view a proof of where your balance sits in that round of PoR. If you can click through and find the hash of your own balance, that shows your balance was counted in that round's liabilities. That is all it shows; whether the assets cover the total is what Step 3 is for.

Keeper Shen's own practice

I run Step 4 myself every three months. It takes under 10 minutes each time, and each time I finish I feel a little more settled. When nothing is wrong, it is a ritual; when something goes wrong, it is a lifeline.

V. Why zk-SNARK proofs of liabilities matter

The traditional Merkle tree PoR has a potential loophole: in theory, an exchange can slip a few fake accounts with negative balances into the tree, pulling its total liabilities down. From the outside, every user can confirm their balance is in the tree, yet the total has been faked.

zk-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) closes that gap with the mathematics of zero-knowledge proofs. In simplified form:

  • The exchange generates a mathematical proof that the sum of all user balances equals the total liabilities it has publicly declared.
  • The proof does not reveal any individual user's balance (privacy is preserved).
  • Anyone can check that the proof is correct using a public verification program.
  • The proof also requires every account balance to be non-negative; if the exchange tries to cheat (by adding negative-balance accounts, for example), the proof itself will fail verification.

In plain terms: on the liability side, you no longer have to rely on trusting whoever signed off; you can check the maths instead. Maths cannot be bought, and it does not soften its conclusions under PR pressure. That is why more and more exchanges are adopting zk-SNARK PoR.

Binance first launched zk-SNARK PoR in February 2023. With an exchange that does not use a zk proof on the liability side, it is worth asking one more question when you read its report: how exactly were the liabilities checked?

VI. Five red flags in a PoR report

If you run into any one of the following, mark that exchange's PoR down a notch:

  1. The reporting cadence suddenly drops. Monthly becomes quarterly, quarterly becomes annual, or the reports simply stop. This is the strongest negative signal there is.
  2. The verifier suddenly changes. A switch may be purely commercial, but it calls for caution, especially when a large independent audit firm is replaced by an outfit that does not sound like an audit firm at all.
  3. Only the asset side is verified, not liabilities. This was a common flaw in early PoR, and today it is no longer enough.
  4. Liabilities are checked with a Merkle tree alone, with no zk-SNARK-style proof. This one is softer. A Merkle tree is not ruled out as such, but on its own it cannot stop the negative-balance trick, and some exchanges already close that gap with zk-SNARKs. If an exchange has stayed with a Merkle tree alone, ask one more question when you read its report: what actually guarantees the total liabilities?
  5. There is neither outside verification nor a way to check it yourself. A missing third-party signature does not mean something is wrong on its own: letting users check a zk-SNARK proof and their Record ID themselves is another way of verifying. But a "PoR" with no outside verifier and no means for users to check anything themselves is essentially a statement the exchange wrote about itself, and it carries almost no weight.

The point of this piece is not to talk you into any particular exchange. It is to give you the basic ability to read a PoR for yourself. The next time an exchange puts out a press release boasting about industry-leading transparency, you will be able to reach your own conclusion within 10 minutes.

On the practical side, I use Binance myself as the exchange where I keep most of my holdings, and this is what I can confirm on its PoR page: PoR published on a regular basis ✓, a zk-SNARK proof on the liability side ✓, users able to check their own balance with a Record ID ✓. The page does not list a third-party verifier, and I keep that in mind. That is the personal choice I made after that anxious stretch at the end of 2022, once I had screened several exchanges.

Keeper's Notes

In the stretch right after FTX went down, I read through the PoR pages of the leading exchanges one by one. There was not much to read. Most of what was up had been posted in a hurry while the pressure was at its worst, and once the panic passed it stopped being updated.

The change showed itself slowly. The leading exchanges moved from publishing once, at a moment of pressure, to publishing on a cycle, and the pages themselves went from a single snapshot to a standing fixture, with a Merkle tree attached so a reader can check whether their own balance was counted. The exchanges that could not produce a PoR page back then are, for the most part, no longer on the lists anyone brings up.

I read all of that as one criterion: whether an exchange keeps publishing when nobody is pressing it says more than anything it says while the spotlight is on.

Keeper Shen, by lamplight

Primary sources
  1. Vitalik Buterin, "Having a safe CEX: proof of solvency and beyond", blog post, November 19, 2022.
  2. Mazars Group, "Statement on Crypto Public Interest Engagements", announcement dated December 16, 2022.
  3. Binance Proof of Reserves page (binance.com/en/proof-of-reserves), viewed September 2026.

If you spot a factual error in this file, please write to [email protected] — I will issue a public correction and credit you by name. The full correction history lives at /corrections.html. Editorial standards are at /editorial.html.