Docs › Guides

Reserves & proof

Every XMR2 outside our own accounts is backed by XMR in the vault. Here is the live state, how the backing works, and how to check it without trusting us.

Live reserves

Vault XMR against circulating XMR2, verified every 5 minutes.

Vault (Exchange)
– XMR
Vault (Bridge XMR2)
– XMR
Circulating
– XMR2
Status
–
Bridge wallet (Hyperliquid)–
Monero reserve proof · bridge vaultfirst proof once the vault holds XMR
Exchange vault (XMR payouts of swaps)–
Monero reserve proof · exchange vault–

Service status

Deposits · issuing XMR2
–
Redemptions · paying XMR
–
Our USDC bid
–

While issuing is paused, deposits still confirm and are credited after the pause. While redemptions are paused, received XMR2 waits in review and is paid out afterwards. Nothing you sent is lost during a pause.

How the backing works

  • Vault: deposits go to one-time subaddresses of a single Monero vault wallet. Its balance is what backs XMR2.
  • Circulating XMR2: the token's total supply minus what our own Hyperliquid accounts hold (deployer, bridge wallet, trading account, and redemption addresses until their XMR2 is moved on). Only XMR2 in other people's hands needs backing.
  • Verification every 5 minutes: vault ≥ circulating, or issuing pauses automatically until an operator has found the cause.
  • Separate signer: the keys sit in an isolated service without internet access. Before it issues XMR2 it checks the Monero deposit on chain itself; before it pays XMR it checks your XMR2 transfer on Hyperliquid itself. The public website and API can't move funds.

Verify the reserves yourself

A Monero reserve proof is a signature over the vault's unspent outputs. It proves that the vault held at least the stated amount when it was signed. There are two vaults, each with its own proof: the bridge vault backs XMR2 (its proof's message names the circulating XMR2 at that moment), the exchange vault holds the XMR that swaps pay out (proof in GET /api/exchange/status). Both are checked the same way.

  1. Copy the proofUse the Copy button next to "Monero reserve proof" above, or read reserveProof from GET /api/status. You get address, message and signature.
  2. Check it in any Monero walletIn monero-wallet-cli, save the signature to a file and run check_reserve_proof <address> <signature_file> "<message>". Through wallet RPC: check_reserve_proof with the same three fields.
  3. Read the resultA good proof shows total and spent. total − spent is the proven reserve; it must be at least the circulating amount in the message.