Are you trying to transfer tokens but receiving an error message stating “Not enough ETH to send”? Well, it actually means you do not have enough ETH to cover the gas cost.
Recently after our MetaMask wallet tutorial an user made a token deposit and they had trouble sending it from their wallet. It’s because they had insufficient ETH balance in their account.
MetaMask, My Ether Wallet, Ledger, Exodus or whichever wallet it is. To send tokens you need to have ETH in your wallet. This is to cover the transaction fees.
It’s alright to pay ETH in fees when transferring Ethereum. But why ETH is needed to send tokens? Can I not pay the fees in tokens that I am transferring?
If you are just getting started with Ethereum and ERC 20 tokens then this may seem confusing. Here, let us understand the need of Ether to transfer tokens.
Transaction fees on Ethereum
Let’s first assume there was no transaction fees at all. Everybody is free to send a transaction on the Ethereum network. What happens? Obviously the network would be spammed with millions of transactions and it will eventually get clogged. To avoid this we need to introduce transaction fee. Transaction fee is the only motivation for miners to include your transaction into the block.
Whatever the network state change is; Whether you are transferring Ether, transferring tokens, deploying a smart contract or executing smart contract functions you need to pay fees in Ether. It’s because in Ethereum the transact fee is measured in units of Gas, a fraction of Ether.
Now this brings up to the following question. Do I need ETH to receive ETH and Tokens?
Do I need ETH to receive?
No, To receive Ethereum or any ERC-20 tokens to your wallet you don’t need to hold ETH. However to send ETH or to transfer tokens out of your wallet you’ll need ETH for gas. The fees for transaction is only paid by the sender and not the receiver.
Say for example you are sending tokens from one wallet to another then’ you’ll be paying fees. If somebody is sending token to your Ethereum address then the sender will cover the fees.
So to store tokens in your wallet you don’t need any ETH. But make sure you have small amounts of Ethereum in your wallet for the gas cost. Just in case in future if you wish to transfer those tokens out of your wallet.
But, why ETH? Can I not pay in tokens that I am transferring?
Why Ether is needed to send ERC-20 tokens?
Allowing people to pay fees in ERC-20 tokens makes sense. However that is not how it works.
ERC-20 is a blockchain asset. Just like Bitcoin and other cryptocurrencies they can hold and transact value. However the major difference is that they don’t have their own blockchain.
ERC-20 tokens are Ethereum based tokens. Meaning they are created and hosted on the Ethereum blockchain. Tether (USDT), Chain Link (LINK), Aave (LEND), OMG, Maker (MKR), 0x (ZRX), Basic Attention Token (BAT), Compound, DAI and YFI are some of the popular tokens that runs on Ethereum blockchain.
As of today there are 1000s of Ethereum powered (ERC-20) tokens that coexists on Ethereum blockchain and they all benefit from the same technology.
Since ERC 20 token runs on Ethereum blockchain they are stored on Ethereum address and all of their transactions occurs only on the Ethereum network. Since these tokens operates on Ethereum blockchain transaction fees are only paid in Ethereum and not in tokens.
ETH transactions require Gas
Each and every operation that takes part on the Ethereum blockchain requires some amount of gas. Whether it be regular Ethereum transaction or a smart contract execution. To execute any transaction one will require Gas. This gas is paid in ETH, usually a fraction of Ether is called Gas.
Now understanding Gas, Gas Price (GWEI) and Gas limit in Ethereum can get quite complex and is out of scope for this article. We’ll make a separate guide covering that.
For now all you need to understand is that if your Ethereum balance is zero or if it is too low then your token transfer won’t go through. So have a little bit of Ether in your wallet to cover the transaction cost.
You can use the this service (https://ethgasstation.info/) to check the current recommended transaction fee.