You open your wallet, see a balance of ETH on Base, type in the full amount to swap, and the transaction fails. Or your wallet's "max" button fills in a number that is slightly less than your actual balance. Both of these are normal, and both come down to the same reason: ETH is not just the asset you are swapping, it is also the asset your wallet uses to pay the network fee for the transaction itself.
ETH plays two roles on Base
On Base, as on Ethereum and every other EVM network, the native token (ETH) is used to pay gas. Gas is the fee that compensates the network for processing your transaction. Every swap, token transfer, or contract interaction costs some amount of gas, and that gas is paid in ETH, regardless of which tokens are actually involved in the swap.
This means that if you hold, for example, 0.05 ETH and you want to swap ETH for USDC, you cannot submit a transaction that spends the full 0.05 ETH as the swap amount. Some small slice of that balance has to be left over to pay the gas fee for the swap transaction. If there is nothing left over, the transaction cannot be paid for, and it fails before it ever reaches the blockchain, or it is rejected by your wallet before you even sign it.
This only applies when you are swapping ETH itself. If you are swapping an ERC-20 token like USDC for another token, you still need a small amount of separate ETH in your wallet to cover gas, but the token you are swapping is not reduced to pay for it.
What the error usually looks like
Depending on your wallet, this shows up in a few ways:
- An "insufficient funds for gas" or "insufficient balance" error when you try to confirm the transaction.
- A failed transaction that still appears in your history, sometimes after a small amount of ETH was already spent on gas for the failed attempt.
- A "max" button that fills in slightly less than your full balance automatically, because the wallet already estimated the gas cost and subtracted it for you.
That last case is the wallet doing the right thing. Many wallets, including swap interfaces on Base, calculate an estimated gas cost first and then offer you "balance minus estimated gas" as the maximum swappable amount, rather than your literal full balance. This protects you from submitting a transaction that cannot succeed.
The catch is that this is an estimate. Gas costs can shift between the moment your wallet calculates the estimate and the moment your transaction is actually included, especially if network activity changes quickly. A tight "max" calculation that worked a minute ago can occasionally fall short, which is one reason some wallets build in a small buffer rather than cutting it exactly to the estimate.
How much ETH do you actually need to reserve
On Base, gas fees are generally very low compared to Ethereum mainnet, often a small fraction of a cent to a few cents depending on network conditions, because Base batches transaction data and posts it back to Ethereum in a compressed form. Even so, "very low" is not "zero," and the exact amount moves with network demand. There is no fixed number that is always correct, so it is worth treating any amount you see quoted as an estimate rather than a guarantee.
As a practical habit, it helps to keep a small cushion of ETH in your wallet beyond whatever you plan to swap or send, rather than trying to use a wallet down to its last unit of value. This matters most for the native token itself. If you hold other assets on Base, like USDC or other ERC-20 tokens, you do not need to leave a buffer in those tokens for gas, but you do still need some ETH sitting in the same wallet to cover the fee.
If you get caught with zero ETH for gas
It is possible to end up in a wallet that holds tokens but has no ETH at all, for example if you received USDC from someone else and never funded the wallet with ETH directly. In that situation you cannot pay gas for anything, including a swap that would convert some of that USDC into ETH, because the gas for that swap also needs to be paid in ETH.
The way out is to get a small amount of ETH into that same address from somewhere else, such as sending a small amount from another wallet you control, buying it through an on-ramp that deposits directly to your address, or using a service that lets someone cover gas on your behalf for a specific transaction. Once there is even a small amount of ETH in the wallet, you can proceed with swaps as normal.
The short version
A swap transaction and the gas fee that pays for it are two separate costs, and both are usually drawn from the same native ETH balance when you are swapping ETH itself. Wallets that offer a "max" option are estimating the gas cost and subtracting it for you, but that estimate can be slightly off if network conditions change quickly. Keeping a small reserve of ETH on hand, separate from whatever amount you intend to swap, is the simplest way to avoid a failed transaction or a swap that will not go through.