i am developing an exchanger as a hobby project in next js. I am just starting to learn about blockchain. I am generating new deposit ethereum addresses for every user. Now my main confusion is, when user send erc-20 token to that address, who will pay the gas fee to move those tokens to company’s hot wallet ? If suppose user sends several time tokens, do company will pay several time gas fees ? I am super confused, :( how to solve these all .. plz help

2 Answers 2


I've notived at least 2 different ways of doing it.

Binance will send and keep a small Eth balance in the deposit address. They will use that Eth to send the tokens from the deposit wallet to the exchange hot wallet.

Kraken uses contracts as deposits accounts instead of EOA. There is no Eth balance in those deposit contracts. Edit: The hot wallet calls a function on the deposit contract that transfers the tokens from the contract to the hot wallet.

In both cases, the exchange pays the gas fee to send the tokens to the hot wallet. That's why the exchange sets a "Minimum deposit" amount. Under that amount, it is not worth paying the gas fee to move the tokens to the hot wallet.

For withdrawals, exchanges charge a fee to the user to cover for the gas fee.

  • Thanks for your reply. Perhaps my follow up question is a little late but are you aware how Coinbase handles this? Thanks!
    – S.O.S
    Commented Sep 5, 2021 at 21:23
  • I don't know, I don't use Coinbase. You could try to guess by watching a deposit address on etherscan.
    – Undead8
    Commented Sep 5, 2021 at 23:12
  • > Binance will send and keep a small Eth balance | can you link to some transaction/account which exhibits this behavior? the approach seems costly since they also have to spend some to send eth. during peak congestion, it can easily cost above 70-100$ per cycle so do they have a dynamic minimum threshold, and do they document it anywhere? is it absolutely free for users to deposit supported erc20? what is the frequency at which binance moves to the hot wallet? > Kraken uses contracts as deposit accounts instead of EOA | do they have separate contracts dedicated to each user or universal?
    – hack3r-0m
    Commented May 18, 2022 at 17:02
  • Look for any transaction of erc20 to a hot wallet (easily identified in explorers) and you will see the users deposit addresses. Kraken has a separate contract for each user (cots like 200$ to deploy). I am always amazed by how much it must cost them, but it is what it is.
    – Undead8
    Commented May 18, 2022 at 18:04

Depends. What i get from reading your question is that the tokens are supposed to go from the user wallet to its address in your exchange ( generated by your website) and then to your company wallet. If the wallet generated by your website is a smart contract that automatically forwards the transfer to your company wallet then the user will pay for gas. If the wallet generated by your website is just a standard EOA then you'll have to make a transaction manually (or offchain using js) to send the tokens to your company wallet and in that case you'll have to pay the gas by yourself.

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.