Next funding settles in --:--:--Same $10,000 SOL long, one week: $49 more on Bybit than on BitgetOpen Bitget →

· four exchange APIs · rebuilt daily

What a proof of reserves exchange report leaves out

What a proof of reserves exchange report leaves out

The finding

A cryptographic proof of reserves exchange report verifies 100% of included wallet balances, but it ignores off-chain debt and temporary flash-loans.

It confirms that specific public addresses hold a stated quantity of tokens at one block height.

It does not prove that those assets exceed total venue liabilities or that the assets belong permanently to the venue.

Merkle tree inclusion and liability suppression

A standard proof of reserves exchange report uses a Merkle tree to let you check if your account balance was included in the audit aggregate. The exchange hashes your account ID and balance into a leaf node, then combines leaf nodes upwards to form a root hash. If your balance is present, your leaf mathematically contributes to that published root hash.

This process proves asset presence, but it relies on complete liability disclosure. The total asset figure published by an exchange is only valid if every single user account is included in the aggregate sum. If an exchange omits accounts with large positive balances, or includes fictitious accounts with negative balances to offset real liabilities, the resulting Merkle root understates total user deposits.

If an exchange holds 10,000 BTC in custody wallets but owes 15,000 BTC to depositors, it can publish a Merkle tree that excludes 5,000 BTC of user accounts. The remaining user accounts will verify their balances against the root successfully, even though the venue is insolvent by 33%.

Worth knowing

Merkle tree verification only proves that your balance is part of the listed sum. It cannot prove that the listed sum represents total exchange liabilities.

Snapshot timing and temporary liquidity

Public proofs of reserve are static snapshots taken at a single block timestamp. They do not track continuous asset control over time. An exchange can temporarily inflate its address balances immediately before the snapshot is taken, then move those funds back after the block is finalized.

To execute this balance manipulation, a venue borrows assets from institutional lenders, decentralized finance pools, or sister entities right before the target block height. The borrowed tokens arrive in the exchange wallets, generating an on-chain address snapshot showing full coverage. Once the cryptographic snapshot completes, the venue returns the borrowed tokens along with interest.

The published report reflects wallet balances that existed for only a few minutes. If a venue borrows 2,000 BTC for a two-hour window to pass a monthly snapshot, the resulting attestation shows 2,000 BTC of assets that are no longer present when you open a perpetual trade the following day.

Where this goes wrong

A single-block snapshot allows an exchange to present borrowed funds as permanent reserves, masking an actual asset shortfall.

Venue execution costs and live funding comparisons

While proof of reserves addresses long-term balance sheet risks, daily holding costs impact your margin balances immediately. Exchanges charge baseline maker and taker fees alongside periodic funding payments for perpetual contracts.

The table below shows the default baseline taker fees alongside the current 8-hour funding rates for SOL perpetual contracts across four venues.

ExchangeFutures Taker FeeSOL 8h Funding RateCheapest SOL Long Venue
bitget0.0300%-0.0132%Yes
okx0.0500%-0.0080%No
mexc0.0200%-0.0074%No
bybit0.0550%+0.0100%No

A negative funding rate means short position holders pay long position holders. Holding a long position on bitget earns 0.0132% per 8-hour interval while carrying a baseline taker fee of 0.0300%. On bybit, holding that same long position costs 0.0100% per 8-hour interval alongside a higher baseline taker fee of 0.0550%.

What a complete financial audit requires

A cryptographic attestation is an automated script execution, not a financial audit. An independent accountant checking a venue balance sheet must evaluate three distinct categories that a Merkle tree snapshot cannot touch.

First, an audit requires verified access to off-chain bank accounts containing fiat currencies. Merkle trees only verify native blockchain tokens. Second, an audit requires inspecting legal liabilities, including corporate debts, outstanding venture loans, and collateralized line-of-credit agreements. Third, an auditor must confirm who holds the private keys to the wallet addresses. If an exchange holds assets in a wallet where a third-party custodian has primary withdrawal authority, those assets are encumbered by contract.

What to do instead

Treat proof of reserves as a confirmation of on-chain wallet addresses, while managing leverage under the assumption that exchange liabilities remain unverified.

Identifying weak attestations

You can evaluate the strength of a published proof of reserves by looking at three specific technical disclosures in the report documentation.

First, check if the report includes a Zero-Knowledge proof mechanism. Standard Merkle trees allow an exchange to hide negative balance accounts within the tree structure. Zero-Knowledge proofs mathematically prevent any node from containing a negative value, ensuring that no accounts are used to artificially suppress total listed liabilities.

Second, check whether the audit covers third-party borrowing data. If the attestation provider does not cross-examine corporate debt registries and institutional lending platforms, the asset total remains vulnerable to temporary snapshot borrowing.

Third, confirm whether the exchange updates its Merkle root continuously or on a scheduled delay. A monthly attestation leaves 720 hours of unverified wallet movements between snapshots. Continuous or daily cryptographic updates significantly raise the cost of temporary liquidity borrowing for the exchange.

What does a proof of reserves exchange report prove?

It proves that specific public wallet addresses contained a stated quantity of cryptographic assets at a single block height. It also confirms whether your specific account balance was included in that snapshot sum.

Can an exchange pass a proof of reserves test while insolvent?

Yes. An exchange can pass if it omits user account liabilities from the Merkle tree, relies on borrowed assets during the snapshot window, or carries off-chain corporate debt that exceeds its on-chain holdings.

How do negative balances hide liabilities in a Merkle tree?

If an exchange does not use Zero-Knowledge proofs, it can insert fake accounts with negative balances into the tree structure. These negative values offset real user balances, lowering the published sum of total liabilities.

Read next

Tax Hubs and Live Funding Spreads Direct Crypto Wealth LocationZero tax jurisdictions attract physical capital while exchange funding spreads up to 0.0131…Direct Crypto Car Purchases Trigger Tax Events and Fee DragExchanging crypto for a vehicle triggers an immediate capital gain disposal event while…Asian Regulatory Divergence Drives Perpetual Funding Rate SpreadsAsia-based retail perpetual traders facing local derivatives restrictions incur significant…