Uniswap Fees on Base and Arbitrum: What a Swap Actually Costs
A swap has four costs, not one
Most people judge a swap's cost by the single gas number the wallet shows. That's only one piece. When I actually tally a Uniswap trade on Base or Arbitrum, the receipt breaks into four parts: the liquidity pool fee, the gas, a one-time token approval, and slippage. The gas is the cheapest of the four, which is why "L2 swaps are nearly free" is both true and slightly misleading.
Let me walk through what you're really paying.
The pool fee (the part that isn't gas)
Uniswap charges a fee baked into the price, set by the liquidity pool you trade against. The three common tiers:
- 0.05% — stable-to-stable pairs (USDC/USDT, etc.). Tiny.
- 0.3% — the standard ETH and major-token pairs. The one most people use.
- 1% — volatile or newer tokens where liquidity providers demand more reward.
On a $1,000 ETH swap on the 0.3% tier, that's $3. This doesn't show up as a separate charge — it's just a slightly worse execution price. It's identical on Base and Arbitrum, and it completely dwarfs the gas, which is the punchline most fee guides miss. Saving $0.02 in gas while not noticing a $3 pool fee is missing the forest.
The actual gas per swap
Here's the gas itself on an ordinary day in 2026:
- Base: a swap runs roughly $0.002 to $0.05. Often it's literally the small change you ignore in the balance.
- Arbitrum: roughly $0.005 to $0.30. Slightly higher, and it climbs when Ethereum mainnet is congested because Arbitrum's L1 data fee follows mainnet.
For comparison, the same swap on Ethereum mainnet is $5 to $40 depending on the week. The 100x mainnet comparison has the full receipts. On L2 the gas is so small that the difference between Base and Arbitrum is rounding error for any single trade — I tend to use whichever chain has more liquidity for the pair, rather than picking by gas.
Don't forget the approval (the first time)
If it's the first time trading a particular token, you get two prompts: an Approve and then the swap. The approval is a separate transaction and costs its own gas — about $0.01 to $0.05 on Base, $0.05 to $0.30 on Arbitrum. It happens once per token, then future swaps are single transactions.
Modern setups using Permit2 (Uniswap's app defaults to it) can sometimes fold this into a signed message that costs zero gas, which is a nice touch — if you see a "Sign" prompt instead of a full confirm, that's the free path. Either way, the approval is a one-time rounding error on L2. I've written more on it in the approval fee guide.
Slippage — the silent one
Slippage isn't a fee, but it's money you don't get. If you set slippage too low during volatile moments the swap reverts (and you still pay gas — infuriating). Too high and you get filled at a worse price. On Base or Arbitrum, blocks are 1 to 2 seconds, so prices move fast. My habit: 0.5% to 1% for normal major-pair trades, bumped to 2% on macro days (FOMC, CPI).
During a big move I once got reverted three times in a row at 0.5% and burned gas on every failed attempt. Bumping to 2% cost me a worse fill but at least the trade landed. The revert cost more than the slippage would have. Lesson: on wild days, widen the slippage and stop donating gas to failed transactions.
Putting it together before you trade
So the honest total on a $1,000 swap: around $3 to the pool (on the 0.3% tier), plus a few cents in gas, plus maybe a one-time approval, plus slippage. The Base calculator and Arbitrum calculator pin down the live gas in your local currency, and the home tracker tells you if fees are spiking before you start. For the protocol-side view, the Base saving guide covers approvals, timing, and batching. Bottom line: on L2 the gas is basically free — it's the pool fee and slippage that actually move money, so those are the two worth paying attention to.