What's the best way to organize received payments?
Is the only possibility to assign a new payments address to each customer or is it possible to identify customers reliably on data payload of the transaction or any other method? (I don't want to use sender addresses for identification).
How would you organize a wallet for the payments? Is there a good secure HD wallet implementation for node.js or should I better use a non deterministic wallet? Is it possible to implement a "wallet" as a smart contract, so I don't need to store keys on server?

1 Answer 1


As I mentioned in my comment to your previous question, requiring your customers to fill the data payload would guarantee that almost nobody is able to make correct ETH payments.

The solution I'm currently implementing to accept ETH payments in a secure and scalable ways is to use Ledger Nano S as the manager for the private keys:

  • I made a script that generates tens of thousand of ETH addresses
  • I made another script that checks their ETH & ERC20 balances
  • I made another script that's able to generate a payment from one of the above addresses, sends it for signing to the Ledger Nano S and then broadcasts it.

It might not be the most elegant and user friendly way to manage these payments (the device has to be clicked for every payment that's redeemed), but it's quite secure: the hackers would need to gain physical access to the Ledger Nano S (or find out the seed words) in order to spend the funds.

  • thx. we are running an exchange, so would need to generate millions of wallets - do you know how many a hd wallet can handle (with hardened keys)? ledger is not an option - we do node.js software
    – jeff
    Commented Feb 14, 2018 at 16:17
  • from what I know, there's no limit in the number of HD addresses that can be derived. When you tell Nano S to sign a transaction, you're telling it the derivation path of the private key with which you want to sign the tx, like 44'/60'/0'/0, or 44'/60'/0'/9283742934. I'm just curios: why do you say Ledger Nano is not an option? Commented Feb 14, 2018 at 16:25
  • I don't know. I just can not imagine, you can run a whole crypto exchange with a nano, but prove me wrong. We need to organize payouts as well - can nano sign transactions aut?
    – jeff
    Commented Feb 14, 2018 at 16:47
  • It doesn't have to be a single nano. You can duplicate them by using the same seed words. When running an exchange, the most time sensitive thing (with regards to payments) is reliably identifying the incoming funds - and that doesn't depend on the Nano. But you could also make the payments from a cold wallet, stored on an air gapped computer if you want (and send the funds to that wallet from the receiving addresses using the ledger nano). Using a Nano adds overhead indeed, but a 5 years overhead is easily paid by avoiding just a single wallet theft. Commented Feb 14, 2018 at 16:55

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.