Let's imagine I am hosting an online shop. I sell five different items with a price of 1 BTC.

Bob buys item A and Alice buys items B. Bob is paying the bill by sending 1 BTC to my Bitcoin address. Alice decides not to pay anything.

Now here is the big question: How do I know that I have received the money from Bob and not from Alice (I don't know their wallet)? Is there some kind of optional order reference / comment field in a transaction?

1 Answer 1


Your best option is for the online shop to provide unique bitcoin addresses for each customer.

Bob clicks to buy item A and then fills out a quick form with his shipping information, after completion he is prompted to send 1 BTC to bitcoin address X. Alice at the same time clicks to buy item B and fills out a form and she is prompted to send her payment to address Y. If address X receives funds, the shop owner will know that Bob paid, and Alice did not.

  • Address reuse is bad in general anyway. Don't ruin your customers' privacy.
    – Jannes
    Oct 25, 2015 at 22:04
  • 1
    Or rather, when payment arrives on the address you gave to Bob, you know that Bob's bill was paid. You don't know (and shouldn't care) whether it was Bob himself who paid. Sep 23, 2017 at 16:05
  • Yes, that is an important distinction. All we care is which invoice/bill is paid, not which individual made the payment.
    – m1xolyd1an
    Sep 23, 2017 at 18:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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