I want to receive crypto-payments from my clients in such a way that they'll be able to send them to an address directly and from any type wallet they may have. Namely, I don't want to have them sign into a wallet via my website whether it be via MetMask, or a popup with a list of supported wallets.

That is, there'll be no smart contract a user will interract with.

Therefore, I'll have to a) generate key pair for all of my users b) keep the private keys somewhere, in a safe place.

(1) I won't have to store the private keys on my server, right? I could store them locally.

(2) Whenever I need to transfer coins from a user's wallet to the mine, the central one, I'll simply run a script on my local computer, where the private keys will be saved at. A script will iterate over all the wallets checking the balance of each one and, if it's greater than zero, it'll transfer coins to my main central wallet, right?

In this solution I won't be able to transfer the coins to my wallet once a user tops up his wallet, that is, immediatelly, unless I run a script every 5 minutes. However, receiving payments once a day, or even once a week, won't hurt me.

Question are there any downsides to this scheme that I haven't taken into account?

2 Answers 2


The main issue of this scheme is that you will have to pay to move your funds out of the "user-assigned" account to the one where you'll collect your revenue.

This might not be a big deal if each customer is transferring you thousands of dollars at a time, but knowing that even today each transfer costs a few dollars, these might add up quickly.

  • The main issue of this scheme is that you will have to pay to move your funds out of the "user-assigned" account to the one where you'll collect your revenue. --> 1) one would have to funds in other scheme anyway 2) it doesn't a few dollars, rather it's a few cents or a few dozens of cents
    – Kum
    Commented Nov 27, 2022 at 17:25
  • 1) If you have only one wallet, your customers will be transferring their funds to you directly, there is only one on-chain transaction. If you want them to pay into an account that is assigned to them but managed by you, there will be two transactions involved. The first when they transfer to their "managed" wallet, the second when you cash out those funds to your "actual wallet". 2) As of today (Nov 28th, 2022), the ETH transfer is averaging $0.37. Transfers of ERC20 tokens are even higher.
    – lullis
    Commented Nov 28, 2022 at 14:19
  • 1) there will be two transactions involved. -- there won't be. There could be 2) One doesn't have to use the average rate, one may use the lowest and slowest one
    – Kum
    Commented Nov 30, 2022 at 2:55
  • 1) If you are not counting for the transaction from the customer to you, then yes, it's only one transaction that you will be paying per customer. But in a system where customers pay directly to your wallet, the total number of transactions you will be paying is zero. 2) After EIP-1159, there is very little difference between "average" and "lowest" cost.
    – lullis
    Commented Nov 30, 2022 at 9:12

Adding to lullis's answer, in case of ERC20 tokens it's actually 3 transfers just to collect the payment. You'd need to (1) fund the user's wallet with ETH, (3) transfer tokens to your actual wallet and (3) move the remaining ETH back from the user's wallet.

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.