A Monero wallet proof intended to show control of a set of outputs representing a reserve. Verification reports their total value and how much has been spent according to the checked chain state.
Verifying reserve outputs
The wallet RPC provides get_reserve_proof and check_reserve_proof. A request can concern all eligible wallet funds or a specified minimum for an account, within the supported wallet modes.
Verification considers the proof and its message as well as transaction and spent-status information obtained through the daemon. A response that parses is not enough: the proof result, total and spent amounts must be interpreted together.
References: Wallet RPC reference · Monero source: wallet/wallet2.cpp
A reserve is not a balance sheet
An exchange could control outputs while owing customers more than those outputs are worth. The cryptographic proof does not inventory those obligations or show whether assets are pledged elsewhere.
A unique challenge can connect the proof to the verifier's request. It does not create a continuing guarantee. Record when and against what chain state verification occurred, and avoid publishing proofs merely to show a wallet is functioning.
References: Monero source: wallet/wallet2.cpp · Wallet RPC reference
Example
A party asks for a reserve proof tied to a fresh challenge message. The verifier checks the proof, the intended address and the spent result instead of accepting a screenshot of a displayed balance.
References: Wallet RPC reference · Monero source: wallet/wallet2.cpp
Limits and cautions
A reserve proof does not reveal liabilities, prove legal ownership or lock funds for the verifier. Funds can move after verification. Creating or sharing a proof deliberately discloses information that ordinary on-chain observers do not automatically receive.
References: Wallet RPC reference · Monero source: wallet/wallet2.cpp
Related glossary terms
Practical guides
Technical baseline: v0.18.5.4. Reviewed 2026-11-09 UTC.