I sent some XMR to a service / exchange / friend. How do I verify that my transaction actually arrived?
1 Answers
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?
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:
Enter the following command:
get_tx_key <transaction_hash>
.Copy the output of the
get_tx_key
command.Type
check_tx_key <transaction-id> <txkey> <recipient-address>
.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:
Enter the following command:
get_tx_key <transaction_hash>
.Copy the outcome / output of the
get_tx_key
command.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."
Enter your transaction ID / hash in box
1. Transaction Hash:
Set box
2. Private Key:
toTx Private Key
Enter the private transaction key you obtained in step 2 into box
2. Private Key:
Enter the public address of the recipient in box
3. Recipient's Public Address
Press on
Check
.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:
In the GUI, go to the
History
page and click on details of the transaction of interest.A window should pop up that shows the private tx key. Copy it.
Click on the
Advanced
tab and subsequently click on theVerify Payment
tab.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.
Press on
Check
.If it checks out, it proves you correctly sent your XMR to the recipient.
Alternatively, you could use these steps:
In the GUI, go to the
History
page and click on details of the transaction of interest.A window should pop up that shows the private tx key. Copy it.
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."
Enter your transaction ID / hash in box
1. Transaction Hash:
Set box
2. Private Key:
toTx Private Key
Enter the private transaction key you obtained in step 2 into box
2. Private Key:
Enter the public address of the recipient in box
3. Recipient's Public Address
Press on
Check
.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.

- 15,227
- 17
- 57
- 114
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 02:14