How to Prove a Monero Transaction
Monero (XMR) is built for privacy. Transactions on the Monero blockchain are confidential by default — sender, recipient, and amount are all hidden from outside observers. But sometimes you need to prove that you sent a payment: a support dispute, a purchase confirmation, or a legal requirement. This guide explains how.
Why Proving XMR Transactions Is Harder Than BTC
With Bitcoin, anyone can verify a transaction on a public explorer by looking up the TXID. The sender address, recipient address, and amount are all visible. Monero works differently:
- Stealth addresses: The recipient's real address is never recorded on-chain — a one-time address is used per transaction
- Ring signatures: The transaction appears to come from one of several possible senders
- Confidential amounts: The amount is cryptographically hidden using RingCT
Despite this, Monero provides built-in cryptographic tools to prove a transaction while revealing only the minimum necessary information.
Method 1: OutProof (Recommended for Most Cases)
An OutProof proves that a specific transaction ID sent a specific amount to a specific address. This is the tool most useful when resolving a support dispute with an exchange — it proves you sent XMR to their deposit address.
Using Monero GUI Wallet
- Open your Monero GUI wallet and go to the Prove/Check tab (in the left sidebar)
- Click Prove Transaction
- Enter the Transaction ID (TXID) of your outgoing transaction (found in your wallet's history)
- Enter the recipient's address (the address you sent to)
- Optionally add a message (e.g., the order number)
- Click Generate — you receive a proof string
Send this proof string to the recipient or support team. They can verify it using the Prove/Check tab on their end (or any Monero wallet).
Using monero-wallet-cli
In the CLI wallet, run:
get_tx_proof <TXID> <recipient_address> [message]The command returns a proof string starting with OutProofV2...
Method 2: SpendProof
A SpendProof proves that your wallet created (signed) a specific transaction — without revealing who the recipient was or how much was sent. Useful when you need to prove you were the sender but cannot disclose the amount.
Using monero-wallet-cli
get_spend_proof <TXID> [message]Returns a proof string starting with SpendProofV1...
Using Monero GUI
- Go to Prove/Check → Prove Transaction
- Enter the TXID
- Leave the address field empty — GUI will generate a SpendProof
How to Verify a Proof
To verify a proof that someone has given you:
- In the GUI, go to Prove/Check → Check Transaction
- Enter the TXID, the address the funds were sent to, and paste the proof string
- Click Check
A valid OutProof will display: "Transaction X sent Y XMR to address Z." A valid SpendProof will display confirmation that the transaction was signed by the prover's wallet.
Verification can also be done via CLI:
check_tx_proof <TXID> <address> <proof_string>What to Do If Your XMR Didn't Arrive at FixedFloat
If you sent XMR to a FixedFloat order and it was not credited, provide our support team with:
- Your order ID
- Your Monero transaction ID (TXID)
- An OutProof generated for the FixedFloat deposit address and your TXID
This allows us to verify the payment cryptographically without compromising your wallet privacy.
Key Takeaways
- OutProof: Proves you sent a specific amount to a specific address — best for support disputes
- SpendProof: Proves you signed a transaction without revealing recipient or amount
- Both proofs are built into Monero — no third-party tools needed
- Verification requires only the TXID, the proof string, and optionally the recipient address
Exchange XMR on FixedFloat