Every chain charges a fee for transactions. The fee must be paid in a specific token — the gas token for that chain. If you have plenty of USDC on Ethereum but zero ETH, you cannot send the USDC, because the transaction's gas must be paid in ETH.
This is the #1 cause of "stuck funds" support tickets.
The gas-token map
| Chain | Gas token | Notes |
|---|---|---|
| Ethereum L1 | ETH | Tx fees can be high (€5-30+ in normal conditions) |
| Arbitrum, Optimism, Base | ETH | L2s also use ETH; fees are 10-100× lower |
| Polygon | POL (formerly MATIC) | Renamed in 2024 |
| BNB Chain | BNB | |
| Avalanche | AVAX | |
| Solana | SOL | Very low fees (~$0.001) |
| Cosmos Hub | ATOM (uatom) | ~€0.001 |
| Osmosis | OSMO (uosmo) | Some other denoms accepted |
| Polkadot | DOT (planck) | |
| Bitcoin | BTC (sats) | Variable fees |
| XRPL | XRP | Burned, not paid to validators |
You need a small balance of the right gas token on every chain you operate on.
How much do you need
A rough table:
| Chain | Min gas reserve |
|---|---|
| Ethereum L1 | €30 (one tx in moderate fee conditions) |
| Arbitrum / Optimism / Base | €5 |
| Polygon | €1 |
| Solana | €1 |
| Cosmos Hub | €0.50 |
| Osmosis | €1 |
| Polkadot | 2 DOT (existential deposit + buffer) |
| Bitcoin | 5000 sats (one med-priority tx) |
The wallet's dashboard widgets show your gas-token balance per chain. Below the threshold, the per-chain widget turns yellow with a "Top up gas" CTA.
How to top up gas
Three patterns:
- Bridge from a chain where you have funds. Slow but trust-minimised.
- Use a faucet (testnet only) or a CEX deposit (mainnet).
- Use a gas-token-paying meta-tx. Some protocols let you pay gas in USDC; the protocol covers the actual gas. Not universal.
For Polkadot specifically, the existential deposit (1 DOT minimum balance) means you need to keep ≥2 DOT — see iter-G's polkadot.101.
Cross-chain gas planning
Before you do anything ambitious:
- Check gas balances per chain in the wallet dashboard.
- Top up the ones below threshold.
- Then execute the actual operation.
The wallet's bridge picker checks destination-side gas balance before showing routes. If you're bridging USDC to Polygon but have €0 POL, you'll see a "You'll need POL to use this USDC" warning + a one-click bridge-some-POL prompt.
The "stuck on the wrong chain" pattern
Happens to everyone once. Common scenarios:
- You bridge 1000 USDC to Arbitrum but have €0 ETH there. You can see the USDC, you can't move it.
- You receive an airdrop on a chain you've never used. No gas; can't claim.
- You move all your ETH off Ethereum L1 to save fees, then need to do one more L1 thing.
Fix in each case: send some ETH/POL/SOL/whatever from another wallet you control to your address on the stuck chain. Or use a "gas faucet" service that delivers gas for a small fee in another token.
The wallet's emergency-gas service (planned for iter-I+1) addresses this directly: lets you spend $5 of USDC on Polygon to mint $5 of POL on Polygon, paid for through a meta-tx.
Pay attention to chain-specific quirks
- Ethereum L1 gas swings. Same operation can cost €3 at 3am UTC and €40 at peak hours. Wait for off-peak when you can.
- Solana priority fees. Beyond the base fee, congestion drives optional priority fees. Iter-D's solana.101 covers this.
- Cosmos minimum gas price. Validators set a chain-wide minimum. Underpaying = tx rejected at the mempool.
The wallet handles these abstractly — you just see "fee: €4" — but the underlying complexity exists.
Next
Portfolio thinking across chains — concentration, diversification, operational hygiene.