L2 Gas Fees Explained: Why the Same Swap Costs Cents on Base
Why a swap costs dollars on Ethereum and cents on Base or Arbitrum: how rollup fees are built, what blobs changed, and when mainnet is still the better venue.
Why the same swapcosts 100× less
Swap 500 USDC into ETH on Ethereum mainnet and the network fee might be several dollars. Do the identical swap on Base or Arbitrum and it's a fraction of a cent. Same tokens, same kind of contract, wildly different bill.
That gap isn't a promotion and it isn't a subsidy. It's a genuinely different cost structure, and once you can see how it's built, a lot of practical decisions — where to trade, when to bridge, how much to keep on which chain — stop being guesswork.
On Ethereum, you're bidding for space in a very small room
An Ethereum block holds a limited amount of computation, and every transaction on Earth that wants in that block competes for it. The base fee rises when blocks are full and falls when they're not, so your swap is priced against whatever else is happening at that moment — an NFT mint, a liquidation cascade, a market-wide selloff.
The crucial detail is what that fee is charged for. Gas pays for computation and storage, not for value. A swap costs roughly the same amount of gas whether you're moving $50 or $500,000, because it's the same contract calls either way.
Gas is a flat fee wearing a percentage costume. Twenty-five dollars on a $50,000 trade is 0.05% and you'd never notice. On a $200 trade it's 12.5%, and no routing improvement on Earth claws that back.
That single fact explains most of why small trades migrated to L2s. It wasn't ideology. It was arithmetic.
What a rollup actually changes
A rollup runs your transaction on its own chain, where a sequencer orders and executes it without competing for mainnet blockspace. Execution there is cheap because the room is much bigger and far less contested.
But a rollup is only a rollup because it still posts its data back to Ethereum — that's what lets anyone reconstruct and verify its state, and it's the reason a rollup inherits Ethereum's security rather than merely claiming it. So your L2 fee is really two things bolted together: a small execution fee on the L2, plus your share of the cost of publishing that batch to Ethereum.
For a long time the second part dominated, and L2 fees moved in lockstep with mainnet gas. Then EIP-4844 introduced blobs — a separate, cheaper, short-lived data lane priced by its own fee market. The L1 data component collapsed, and L2 transaction costs fell by an order of magnitude or more.
It also explains something that otherwise looks random: L2 fees sometimes spike together, on chains that have nothing to do with each other. Blob space has its own auction. When many rollups want to post at once, the price of that lane rises for everyone standing in it.
When mainnet is still the right venue
"Always trade on an L2" is the wrong lesson. Gas is one cost among several, and for large trades it's usually not the one that decides the outcome.
Liquidity is still deepest on Ethereum for a great many assets, particularly long-tail ERC-20s whose real market lives on mainnet. A route that saves you $30 in gas but costs you 0.4% more in price impact is a bad trade the moment your size passes about $7,500 — and on a $250,000 order that price impact difference is a thousand dollars against thirty.
- Under a few hundred dollars, gas decides. Trade where it's cheap, or the fee eats the trade.
- Into five figures and beyond, liquidity decides. Follow the depth even if the network fee is uglier.
- In between, don't guess — compare net output across both and let the number settle it. That comparison is exactly what route aggregation exists to do.
The costs almost everyone forgets
- Approvals are transactions too. An ERC-20 swap on mainnet can mean paying twice — see token approvals explained.
- Bridging isn't free. Moving to an L2 to save $18 only wins if the trip costs less than $18 and you're planning to stay a while.
- Failed transactions still cost. A swap that reverts on too-tight slippage burns the fee and delivers nothing.
- You need the native token to do anything. Every chain charges gas in its own asset, and stablecoins won't pay it for you.
A practical way to decide where to trade
- 1Frequent small swaps — keep a working balance on one L2 and stop paying mainnet gas for routine activity.
- 2Occasional large swaps — follow the liquidity, which for many Ethereum-native assets still means mainnet.
- 3Balances scattered across chains — consolidate in one deliberate move rather than paying to shuttle back and forth. Our bridge routes show the common paths.
- 4Trying a new chain — bring gas money in the same transaction, not as an afterthought.
SwapRoute ranks routes by what actually lands in your wallet, and every route carries an expandable fee breakdown — network gas, bridge fee, aggregator fee — so the cost isn't a surprise waiting at the signature screen. If a path on another chain beats staying put, it shows up in the comparison instead of staying hypothetical.
None of this requires tracking gas markets. It requires one habit: before a swap, ask whether this trade is small enough that the fee is the whole story, or large enough that liquidity is. The answer picks the chain for you.
Compare routes across Ethereum, Base, Arbitrum, and more — with the full fee breakdown, gas included, next to every route.
Explore cross-chain routes