What it means
A transaction must pay for two things from the same native balance: the amount you are sending, if you are sending the native asset, and the fee, which is the gas limit multiplied by the gas price you are offering. The error says the account holds less than those two added together.
The phrasing gas * price + value is the calculation itself. If you are sending a token rather than the native asset, value is zero and the shortfall is entirely the fee.
Why it happens
You hold tokens, but no native asset
This is the most common case by a distance. Tokens cannot pay their own transfer fee. USDC on Ethereum needs ETH; a token on Polygon PoS needs POL; a token on BNB Smart Chain needs BNB. An account holding a five-figure token balance and no native asset can receive but cannot send.
See why you need ETH to send USDC for the underlying reason.
You are on the wrong network
The second most common case, and the one that feels most like a bug. You hold ETH, you can see it, and the wallet still refuses. The ETH is on Ethereum mainnet and the transaction is on Base or Arbitrum One, where it cannot pay.
The same address exists on every EVM network but the balances do not travel with it. Check which network the wallet is actually set to before anything else.
You are sending the entire balance
Sending your whole native balance leaves nothing for the fee. The wallet needs the amount plus the fee, so a "send max" that does not reserve gas will fail this check.
The fee rose between the estimate and the send
On a busy network the quoted fee can move while you are reading it. A balance that covered the fee a minute ago may not now.
How to fix it
- Check which network the wallet is set to. Confirm the native asset for that network — the gas token finder names it.
- Look at the native balance on that specific network, not the total across networks.
- Send a small amount of the native asset to the address, on that network, from an exchange or another wallet you control.
- If you are sending the native asset, reduce the amount so it leaves room for the fee.
- Retry, and read the fee estimate before confirming.
How to avoid it
Keep a small native balance on every network you use, funded in advance rather than in an emergency. Treat it as the cost of using the network. When you bridge or withdraw to a new network, move a little of the gas asset at the same time, before you need it.
Frequently asked
I have ETH but still get this error. Why?
Almost always because the ETH is on a different network from the transaction. ETH on Ethereum mainnet cannot pay for a transaction on Base, Arbitrum One or OP Mainnet. Check the network selector, then check the balance on that network specifically.
Can I pay the fee with the token I am sending?
Not by default. Some wallets support conditional arrangements on specific networks that let a supported transaction be paid through an eligible token. Check your wallet’s own documentation rather than assuming it applies to your case.
Does this error cost me anything?
No. The transaction was never broadcast, so no fee was charged. This check happens in your wallet before anything reaches the network.
Sources & further reading
- MetaMask: fix insufficient funds or a greyed-out confirm button
The wallet-level explanation and the checks it recommends.
- Ethereum: gas and fees
Gas units, limits and the fee calculation.
- MetaMask: user guide to error codes
Wallet-level explanations of the error strings surfaced to users.
- Ethereum: transactions
Transaction fields including nonce, gas limit and fee caps.
Sources checked on 18 September 2026. Network features and platform support can change; check the relevant provider before acting.
AI-assisted editorial content; no independent expert review is claimed. Error behaviour varies between wallets, networks and client versions. This is educational information, not investment advice. Read our editorial policy.