I created an address with a local copy of MoneroAddress.org (based on a custom entropy string, which I stored securely) and I want to send some XMR there.

The sending client asks for the address and a payment ID. In earlier cases, whenever sending Monero the recipient specified their payment ID but now I have to create one myself.

Note: I don't need to receive more XMR (or be able to distinguish different sources) on this address than just this one transaction.

Can I just specify any random payment ID there? Payment IDs seems to be 256 bit hex strings, can I just take the sha256 of some random gibberish input and use that?

Do I need to save the payment ID in order to spend my funds later?

4 Answers 4


A random 256 bit hex string is fine, it is simply random data that can help differentiate it from other transactions that are sent to the same receiver.

This question, should have more info on generating a payment id.


Payment IDs are not required if it is your own wallet address.

Payment IDs are only required if sending to a custodial wallet because most custodians only have one XMR address thus the need for a unique payment ID which the custodian will provide to you.

You can however always set any payment ID you want either 16 or 64 characters hex (0 thru 9, A, B, C, D, E and F) to your own wallet address.

Examples of custodians requiring payment IDs: poloniex.com, monerodice.net, shapeshift.io


Payments IDs are simply a note attached to a transaction, similar to you jotting down a note on a cheque to let the person you're sending it to know what it's for, or a reference number on a bank's direct debit.

They're typically optional, so I'm guessing the payment id field you're referencing is optional too. But if you think it might go awry if you leave it blank, you can make up any, as you suspected.

That payment id is not needed to spend the money later. In the same way as a reference number on a direct debit, or a handwritten note on a cheque, the money paid has no need for that payment id for later spending.

An easy way to get a payment id is: echo "doesn't matter" | sha256sum

Note that 256 bit payment IDs are in clear on the chain, and so you'll want to not use the same one all the time, lest somone can deduce those payments are to the same person. New style payment IDs are encrypted, but they're not widely supported yet.


You can use this site to generate a payment id, 64 random hex chars:


Just copy from the first box on the page.

Your Answer

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

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