I'm building a crypto payment processor, and once of the "hindrances" is in moving ERC20 tokens around.

For reference, the current payment pipeline looks as follows:

  1. User requests ETH address
  2. User sends ERC20 to ETH address
  3. System forwards ERC20 from ETH address to cold wallet.

The issue here being step step 3 requires there to be ETH in the ETH address for the ERC20 to be sent to the cold wallet.

The current solution I'm looking at is sending a small amount of ETH from the hot wallet to the ETH address any time an ERC20 token lands in the account - only if there isn't sufficient ETH already in the account.

This seems slightly wasteful as it requires the system to "guess" how much ETH will be needed to cover the transaction, and it's also expensive since it requires two transactions to be made and ETH fees are quite ridiculous..

Is there any possibility that the hot wallet would be able to "forward" the ERC20 token by means of a contract and pay the gas fee? I.e. is there any way to overcome ETH address needing ETH to handle ERC20 tokens?

I've seen relay networks but from my understanding they would require custom contracts to be deployed for the ERC20 tokens meaning I couldn't accept any ERC20 on the ETH network.

  • 1
    This question was asked previously, several times. The last one indicates that it should be possible if you take advantage of flashbots and queue several transactions, it would probably be more expensive than regular transactions.
    – Ismael
    Commented Jul 31, 2021 at 19:08

1 Answer 1


This already exists actually. You could integrate GSN (Gas Station Network) in order to pay the gas for user transactions. Usually, it is the company or the smart contract owner who pays all the gas fees for all user transactions on the system. You could make your own rules of how the transaction gas is paid. You could read more about it here: https://docs.opengsn.org

  • Also, here: medium.com/zastrin/… Commented Jul 31, 2021 at 5:17
  • Thanks for the information. Just need to read that medium article, but I'm going to assume the way it is implemented is that a smart contract is generated for each user, the user then deposits into the smart contract (being ERC20 or ETH), and then the hot wallet that created the smart contract could then call transfer the assets out of the smart contract, thereby covering the cost of gas?
    Commented Jul 31, 2021 at 16:44
  • I have just taken a look at the medium article, unfortunately it isn't helpful for my situation - however I believe what I proposed above should be an option.
    Commented Jul 31, 2021 at 16:46

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.