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

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.

Primary documentation