Uzuras Crypto Reference

Plain-English answers about tokens, wallets, and how blockchains actually work

Why Do You Need ETH to Send an ERC-20 Token?

Why do you need ETH to send an ERC-20 token?

It is one of the most common surprises in crypto: you hold plenty of some ERC-20 token, you try to send it, and your wallet refuses because you have no ETH. The token balance is real — you just can't move it without a second asset. Here's why.

Tokens are ledger entries inside a contract

An ERC-20 token is not a coin sitting in your wallet; it is a balance recorded inside a smart contract on Ethereum, as the official ERC-20 documentation explains. "Sending" a token really means asking that contract to run its `transfer` function — a function every compliant token must implement, per the EIP-20 specification — subtracting from your balance and adding to the recipient's. That's a computation, and Ethereum charges for computation. (For the fuller picture of what a token is, see what is an ERC-20 token.)

Gas: the network's metering system

Every Ethereum transaction consumes gas, a unit that measures how much computational work the network performs on your behalf. The official gas documentation lays out the system: a plain ETH transfer costs a fixed 21,000 gas, while anything involving a smart contract — including every ERC-20 transfer — costs more, because the network has to execute contract code and update its storage. The fee you pay is the gas consumed multiplied by the going price per unit of gas, which rises and falls with network demand. Part of that fee (the base fee) is destroyed, and part (the priority tip) goes to the validator who includes your transaction.

The crucial rule: gas is payable only in ETH. Ether is the native asset the protocol itself understands; ERC-20 tokens are application-layer data the protocol has no way to accept as payment. So a wallet holding 500 units of some token and zero ETH is, from the network's point of view, a wallet that cannot pay for anything.

What the transaction actually looks like

When you send a token, your wallet builds a transaction addressed to the token's contract, not to the recipient. Per the transaction documentation, the ETH `value` field is typically zero, and the recipient and amount are encoded in the transaction's data field as instructions for the contract. That's also why block explorers show token transfers a little differently from ETH transfers — the human-meaningful movement happens inside the contract call.

Practical consequences

  • "Insufficient funds for gas" means exactly what it says: not enough ETH in the sending address to cover the fee, regardless of your token balance.
  • The ETH must be in the same address as the tokens. Ether in a different account of yours doesn't help; fees are paid by the sending address itself.
  • Fees don't scale with token value. Moving a huge token balance and a tiny one costs roughly the same gas, because the computation is the same.
  • Fees fluctuate. The same transfer can cost noticeably more during network congestion, since the price per unit of gas is demand-driven.
  • Other networks, same pattern. Chains modeled on Ethereum generally require their native asset for fees. Tokens on those networks face the same catch with a different native coin.

The habit that avoids the problem

Experienced users keep a cushion of ETH in any address that holds ERC-20 tokens, so the tokens never end up stranded behind an unpayable fee. If you're still getting comfortable with addresses, keys, and what a wallet actually controls, our guide to how crypto wallets work covers the foundations.

Sources