You have probably scrolled past a "proof of reserves" badge without stopping to check what it actually verifies. It sits next to a headline percentage, presented like a stamp of approval.
Proof of reserves has become one of the most repeated phrases in crypto without becoming one of the most understood. It sounds like an audit. In practice, it behaves more like a photograph: accurate for the exact moment it was taken, and silent on everything before and after.
This piece stays vendor-neutral on purpose. The mechanics of a proof of reserves work the same way no matter who publishes one — a centralized exchange, a lending protocol, or an on-chain prop trading firm listing its own wallet addresses as part of its transparency commitments. What a snapshot can and cannot tell you does not change with the logo on the page.
Key Takeaways
- A proof of reserves is a snapshot of assets under a custodian's control at one moment — not a running guarantee.
- It proves assets sat at a given address on a given date. It does not say what the custodian owes anyone.
- Without a matching liabilities disclosure, a reserves number cannot show solvency — only that some assets exist somewhere.
- A Merkle-tree proof lets you check that your own balance was actually counted; a bare address list cannot do that.
- Funds can move in right before a snapshot and move out again right after — timing is the gap most proofs leave open.
What a proof of reserves actually is
At its simplest, a proof of reserves is a custodian showing you what it currently holds — not a claim in a press release, but an on-chain or cryptographically checkable record that a specific set of assets sits under a specific set of addresses, as of a specific date.
The idea borrows its logic from a much older practice: a bank opening its vault to convince depositors their money is actually there. On-chain, the vault is public by default. You can look at a wallet address and see its balance. No permission needed. That is what makes a crypto-native proof of reserves possible in a way a traditional bank statement is not. The ledger itself is the evidence. Not a claim layered on top of it.
That single property — a balance you can check without trusting whoever reports it — is the entire reason proof of reserves exists as a category. Trust used to mean taking a custodian's word for it. Verification means checking the chain yourself, and a proof of reserves is the format built to let you do exactly that.
Two ways a proof gets built
Not every proof of reserves is built the same way, and the difference changes what you can actually learn from it.
The simplest version is an address list: a custodian publishes the wallets it controls, and you can add up the balances yourself with a block explorer. It is transparent and easy to check, but it has an obvious weak point — it shows a total, and nothing ties that total to what any individual customer is actually owed.
A cryptographic proof closes part of that gap. The custodian builds a Merkle tree — a structure that commits every customer's balance to a single published root hash. No customer balance appears in the clear. You can still check an individual proof that your own balance was included in that root. That is a meaningfully different guarantee. Not just "the custodian holds some assets," but "your specific balance was part of what was counted."
Both formats answer the same underlying question — does the custodian hold what it claims to hold, right now — but a Merkle-based proof lets you verify your own inclusion, while a simple address list asks you to trust that the total was collected honestly and completely.
What a proof of reserves actually proves
Strip away the marketing language, and a proof of reserves proves one thing well: a set of assets existed under the custodian's control at a specific point in time, verifiable by anyone with access to the chain.
That is a real thing to be able to check. Worth taking seriously. It rules out the crudest failure mode — a custodian claiming to hold assets that simply are not there. An address list or Merkle root you can verify independently is a stronger claim than a percentage on a marketing page. That page gives you no way to check it yourself.
But "assets exist somewhere" is a narrower claim than it sounds. It does not say the assets are unencumbered. It does not say they have not been borrowed against or pledged elsewhere. It does not say the custodian will still hold them tomorrow. It proves a snapshot, not a state.
What it doesn't prove: the liabilities gap
The gap that matters most in a published proof of reserves is the side that usually stays hidden: what the custodian actually owes.
A reserves figure only becomes meaningful once you can compare it to liabilities — the total balance the custodian owes its customers. A custodian holding a large pile of assets while owing an even larger pile of customer claims is not well-backed just because the asset number looks impressive on its own. Reserves without a liabilities disclosure answer "does something exist," not "is everyone covered."
This is the step most publicized reserves announcements skip. Publishing an asset list is comparatively easy — it is information the custodian already controls. Publishing a complete liabilities figure means opening the books on what every customer is actually owed, a different and far less comfortable kind of transparency. A reserves ratio built only from the asset side answers only part of the question.
The timing problem: a snapshot is not a guarantee
Even a well-built proof with a real liabilities disclosure attached only describes one instant. Nothing in the format stops a custodian from borrowing assets specifically to pass the check and returning them the moment the snapshot closes.
This is not a hypothetical edge case. It follows directly from what a snapshot is. A photograph taken at one moment cannot tell you what happened five minutes before the shutter clicked. Or five minutes after. A single point-in-time reserves check works the same way: no visibility into what the balance looked like the day before, or the day after.
Closing that gap has less to do with building one better snapshot and more to do with frequency and continuity. A custodian that publishes reserves once and moves on invites exactly the kind of short-term window dressing described above. A custodian whose addresses stay public and checkable at any time does not. You can look at the chain today, and again next month, instead of waiting for an announcement. That continuous view makes temporary dressing up far harder to pull off unnoticed.
Reading a proof of reserves like a trader
Three questions separate a meaningful disclosure from a number that only looks like one.
Start with whether it includes a liabilities side, not only assets. A number with no liabilities attached tells you something exists. Not that anyone is covered.
Is it a one-time snapshot, or a continuously checkable position? An address you can verify today and again next week is a stronger commitment than a single dated report.
Can you check it yourself, or does the format ask you to trust the custodian's own arithmetic? A published address list or a Merkle proof with an individual inclusion check both let you confirm the number independently. A percentage in a blog post does not.
None of this requires special tooling beyond a block explorer and some spare time. What it requires is treating a reserves announcement as a starting point for your own check, not as the check itself.
What this looks like for an on-chain prop trading firm
The same logic applies to a funded-trading platform holding capital for its evaluation and funded traders, not just to an exchange holding customer deposits.
CarrotFunding routes 50% of every evaluation fee into its vault through smart contracts, rather than an internal ledger entry you would have to take on faith. Payout approvals run through a 2-of-4 multisig held by the team rather than a single signer — a small piece of the same idea driving proof of reserves: moving control away from one party's unverifiable word and toward a mechanism an outside observer can check.
Neither of those is itself a formal proof of reserves, and neither should be read as one. They are the same underlying principle applied to a different corner of the business: replace a claim with something the chain can confirm. For the full picture of what CarrotFunding publishes and how the vault is structured, the vault documentation covers the mechanics in detail.
Fazit
A proof of reserves outweighs a marketing claim, yet falls short of an audit. It rules out the crudest kind of dishonesty — assets that were not there at all — but a single asset-side snapshot cannot tell you whether a custodian is solvent, whether funds were borrowed briefly to pass the check, or whether tomorrow's balance will look anything like today's.
The disclosures worth trusting are the ones built to survive scrutiny rather than avoid it: a liabilities side next to the assets, a format you can verify without taking anyone's word for the total, and a position you can check again next week instead of waiting for the next scheduled announcement. Ask yourself those three questions before a reserves percentage changes your mind.
FAQ
Is a proof of reserves the same thing as a financial audit?
No. An audit typically examines both assets and liabilities, tests internal controls, and is carried out by an independent outside reviewer under professional standards. A proof of reserves usually covers only the asset side and is often published by the custodian itself, so you should not treat the two terms as interchangeable.
Can a custodian pass a proof of reserves and still be insolvent?
Yes. A reserves check confirms assets existed at a point in time. It does not reveal the scale of what the custodian owes, so a custodian can hold real assets on the day of the snapshot while still owing more overall than it holds.
What does a Merkle tree add that a simple address list doesn't?
It lets you verify that your own specific balance was included in the total, using a short cryptographic proof, without the custodian publishing every customer's balance in the clear. An address list only shows you a total; it cannot show you your own inclusion. That individual proof also stays short regardless of how many other customers the custodian serves — the tree structure means your proof does not grow just because the customer base does.
Why doesn't every custodian publish a liabilities figure alongside its reserves?
Publishing assets is straightforward because the custodian already controls that information privately. A liabilities figure means opening up exactly what every customer is owed — a more sensitive and operationally harder disclosure to produce and keep current, and the piece most reserves announcements leave out.
How often should a meaningful reserves disclosure be updated?
There is no fixed interval that applies everywhere, but the underlying principle is continuity over a single event. Addresses that stay public and checkable at any time carry more weight than one dated snapshot, because you can look for yourself instead of waiting for the next announcement.