Curriculum·G101 Querying On-Chain Data·about 30 min
What a query cannot tell you
By the end of this lesson you can
- →State the boundary of on-chain querying: it shows assets and flows, not liabilities, intent, or off-chain facts
- →Explain why post-FTX proof of reserves showed assets on-chain and still could not prove solvency
- →Compute why reserves without liabilities is only half a balance sheet, and how a snapshot can be dressed
- →Pair an on-chain query with the off-chain information it needs before drawing a conclusion
Graduate · enrolled learners
This lesson opens with Proof of reserves after FTX, late 2022.
- What happened
- After FTX collapsed, exchanges rushed to publish on-chain proof of reserves: cryptographic attestations, often Merkle trees, showing they controlled wallets holding customer-scale assets. It was meant to reassure, and read carelessly it did. But analysts and cryptographers, including Ethereum's Vitalik Buterin, pointed out the missing half: proof of reserves shows assets and says nothing about liabilities, so an exchange can prove it holds a billion dollars while owing customers two billion, and the on-chain query cannot see the difference. Worse, a reserve snapshot can be dressed: an entity can borrow assets shortly before the attested block and return them after, or two exchanges can pass the same funds between them, so that the wallet looks full at the instant measured. Every reserve number was a true on-chain fact and none of them, alone, proved solvency, because solvency is assets minus liabilities and the chain shows only the first term.
- The decision point
- Proof of reserves is the clean statement of this course's boundary. The query was honest: those wallets really held those assets at that block. The conclusion people drew, therefore the exchange is solvent, did not follow, because the thing that decides solvency, what the exchange owes, lives off-chain and no query can retrieve it. This is the fourth and final skill of learning to query: knowing exactly what the answer does and does not cover. The chain shows what an entity holds and what has moved; it does not show what it owes, why it acted, or what it agreed off-chain, and a snapshot can be arranged for the moment it is taken. An analyst who stops at the on-chain half and reports solvency has overstated the evidence. The discipline is to state the query's answer precisely and name the off-chain information still required before any conclusion rests on it.
What you will be able to answer
- →Why can't proof of reserves prove solvency?
- →How can a reserve snapshot be dressed?
- →What does an on-chain query fundamentally not show?
- →How do you report a query's result honestly?
Orientation and Year One are open: anyone can read them without an account. From Year Two onward the lessons are for enrolled learners, because progress through the later years only means anything if it is tracked against a record.
It is free. We do not sell the list and there is nothing to buy at the end of it.
Sources and review
- https://vitalik.eth.limo/general/2022/11/19/proof_of_solvency.html
- https://www.kraken.com/proof-of-reserves
- https://www.coindesk.com/learn/what-is-proof-of-reserves-and-can-it-build-back-trust/
Confidence high·Volatility medium·Reviewed 2026-09-15·Owner unassigned
Contested
Proof-of-reserves methods vary; some pair a Merkle-tree proof of assets with an attested proof of liabilities to approach a solvency proof, which addresses part of the critique. The lesson's point is that reserves alone do not prove solvency, which holds regardless of method.
The snapshot-dressing concern (borrowing assets before an attested block) is a documented critique of point-in-time attestations, not an accusation against a specific exchange here.
