Prove one Monero payment, not your whole wallet.
A transaction ID proves that a transaction exists. Because Monero hides recipients and amounts from public observers, it does not prove who was paid. Use a proof scoped to the transaction and recipient.
1. Prefer a signed transaction proof
The sender generates a proof in monero-wallet-cli, binding a unique order reference as the message:
get_tx_proof TXID ADDRESS "order-1234"
The CLI writes a proof to a signature file. Send the verifier that file together with the transaction ID, recipient address, and exact message.
The verifier checks all four values in an up-to-date wallet:
check_tx_proof TXID ADDRESS SIGNATURE_FILE "order-1234"
The result states whether the proof is valid, the amount paid to that address, pool status, and confirmations.
2. Use a transaction key only as a fallback
get_tx_key TXID check_tx_key TXID TXKEY ADDRESS
This flow discloses a secret key for that transaction. It may also reveal change returned to the sender when the verifier knows the sender's address. It works only if the wallet retained transaction information.
Never send wallet-wide secrets for this
- mnemonic seed or private spend key
- wallet file or wallet password
- private view key for the whole wallet
- unrelated transaction keys or key images
A valid proof shows what one transaction paid to one address. It does not prove that the output is still spendable; the recipient's synchronized wallet remains the source of truth.