How to link payments to customers / external information? Trying to accept GRIN as payment!

Hey everyone,

I’m looking for some help on how to accept GRIN as payment. I have an online shop and I want to accept GRIN, mainly out of curiosity and experimentation but also just because I love GRIN :).

Anyways, I’ve been trying to figure out how to link grin transactions to certain customers or ID’s or something like that. I want my program to automatically recognize when a grin wallet receives GRIN for a specific order and execute some kind of action upon receipt. I also don’t want the customer to have to go through a bunch of steps and copy pastes back and forth to achieve this.

Should I just have the customers include some kind of Order ID in their grin “message” parameter? And then once I receive a transaction with said message then it verifies the order? Or just generate a new GRIN wallet/address for each transaction, and upon that wallet receiving the specified number of GRIN it pushes through their order?

Really want to figure this out, advice would be appreciated. This is also something that needs to be simplified in the future if we want merchants to accept grin! If I wasn’t already a diehard grin fan I would’ve given up a long time ago.

Thanks in advance!


I think you should uses RSR (invoice) flow, so that your shop builds and publishes the final payment tx, and can expect it to confirm soon.
I assume that when you set the message in the first slatepack sent to the customer, that it will also be in their response slatepack, so you know what order that is for.

In the future, when we add new payment proofs, you can use its memo field as orderID as well.