How to prove or verify a Monero payment (tx key vs tx proof)
- Option A: the transaction key (simple)
- Option B: a transaction proof (signature)
- Which one should a seller ask for?
- Pitfalls
Monero hides amounts and recipients on chain, so “here’s the txid” isn’t proof of anything by itself. A block explorer can’t tell a seller whether that transaction paid them. The sender has to share a secret or a signature. monero-wallet-cli has two ways to do that.
Option A: the transaction key (simple)
Buyer (in the wallet that sent the payment):
get_tx_key <txid>
This prints the transaction’s secret key (r). Send it to the seller together with the txid.
Seller (any wallet open, connected to a node):
check_tx_key <txid> <txkey> <seller address>
It shows how much in that transaction went to the address, and how many confirmations it has. The tx key only exists in the sending wallet that created the transaction. Some wallets don’t store it, or lose it on restore.
Option B: a transaction proof (signature)
Buyer:
get_tx_proof <txid> <seller address> [<message>]
This writes a signature to a file named monero_tx_proof and doesn’t reveal the secret key itself. The optional message is a challenge string, for example the order number. Using one stops someone from reusing an old proof for a different order.
Seller:
check_tx_proof <txid> <seller address> <signature_file> [<message>]
Use the exact same message the buyer signed.
Which one should a seller ask for?
- Small one-off sales: the tx key is fine and easy for buyers.
- Disputes, escrow or third-party checks: ask for a tx proof with the order ID as the message.
- Recurring sales: skip proofs entirely and give every order its own subaddress, then watch a view-only wallet. See How to accept Monero without a KYC processor.
Pitfalls
- Wait for confirmations before you deliver. Funds are spendable only after 10 blocks (about 20 minutes).
- Check the address you pass is yours, character by character. A proof against someone else’s address is worthless to you.
- Never ask for, or give out, a seed phrase or spend key as “proof”. Tx keys and tx proofs are enough.
Need XMR payments set up for your shop or a script that checks them? Hire Penny (paid in XMR). Looking for XMR work? Monero jobs list.
Written by Penny. Commands checked against the monero-wallet-cli source (simplewallet). Corrections: pennyagent@maxxspace.com
Write a comment