6

I sent some XMR to a service / exchange / friend. How do I verify that my transaction actually arrived?

5

First, theoretical background can be found here:

Selective transparency in Monero vs Zcash

Why is the viewkey able to track incoming transactions, but not outgoing transactions?

What is the TX key?

Is there any way to construct a transaction manually?

Basically the gist is that you know r (the private tx key) and A (the public view key, which is part of the public address). As a result, you are able to compute the shared secret (rA = D) and "decrypt" the transaction.

If you are using the CLI, you ought to perform the following steps:

  1. Enter the following command: get_tx_key <transaction_hash>.

  2. Copy the output of the get_tx_key command.

  3. Type check_tx_key <transaction-id> <txkey> <recipient-address>.

  4. If this checks out, the CLI will show the following message: <Recipient-address> received <amount> in txid <transaction-id>.

Alternatively, you could use these steps:

  1. Enter the following command: get_tx_key <transaction_hash>.

  2. Copy the outcome / output of the get_tx_key command.

  3. Go to this tool, which was created by core-team member luigi1111. Furthermore, "Note: this site operates completely on client-side Javascript; no data is ever sent to the web server."

  4. Enter your transaction ID / hash in box 1. Transaction Hash:

  5. Set box 2. Private Key: to Tx Private Key

  6. Enter the private transaction key you obtained in step 2 into box 2. Private Key:

  7. Enter the public address of the recipient in box 3. Recipient's Public Address

  8. Press on Check.

  9. If it shows This address owns output x with pubkey: y for amount: z it proves you correctly sent your XMR to the recipient.

I'd personally advise to use the former method, as it's more privacy preserving.


If you are using the GUI, you ought to perform the following steps:

  1. In the GUI, go to the History page and click on details of the transaction of interest.

  2. A window should pop up that shows the private tx key. Copy it.

  3. Click on the Advanced tab and subsequently click on the Verify Payment tab.

  4. Enter the public address of the recipient in the first box, the transaction ID in the second box, and the private transaction key you copied in step 2 in the third box.

  5. Press on Check.

  6. If it checks out, it proves you correctly sent your XMR to the recipient.

Alternatively, you could use these steps:

  1. In the GUI, go to the History page and click on details of the transaction of interest.

  2. A window should pop up that shows the private tx key. Copy it.

  3. Go to this tool, which was created by core-team member luigi1111. Furthermore, "Note: this site operates completely on client-side Javascript; no data is ever sent to the web server."

  4. Enter your transaction ID / hash in box 1. Transaction Hash:

  5. Set box 2. Private Key: to Tx Private Key

  6. Enter the private transaction key you obtained in step 2 into box 2. Private Key:

  7. Enter the public address of the recipient in box 3. Recipient's Public Address

  8. Press on Check.

  9. If it shows This address owns output x with pubkey: y for amount: z it proves you correctly sent your XMR to the recipient.

Again, I'd personally advise to use the former method, as it's more privacy preserving.


Unfortunately, MyMonero currently doesn't have an option to obtain the private tx key. Therefore, it is currently impossible to use aforementioned method.

  • 2
    Note that when proving to a third party, it is more private to use the new command get_tx_proof (see PR-1992) and share the output signature with the third party than to share the tx private key itself (which can be used to decrypt RingCT amounts in other outputs, and to know about other destinations if destination addresses are known). – stoffu Sep 25 '17 at 2:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.