Uniswap fees vary by pool, and gas can outweigh trading charges on small swaps
Uniswap fees vary by pool, while a wallet-submitted swap also carries a separate network charge. A pool’s percentage charge scales with its swap input; gas reflects the work and pricing of network execution. On a small trade, gas can cost more than the pool fee. The quote can also reflect price impact, multiple pools or custom v4 charges. UniswapX uses a different payment arrangement: fillers cover settlement gas and include that expense in their offered exchange rate.
Pool charges enter the quote before network execution
Pool fees affect the swap’s exchange calculation, while network costs arise from executing the transaction that carries it. The Uniswap app’s swap details show fees alongside estimated network costs, routing information and price impact, while the expected output of a fixed-input trade reflects the calculations in each selected pool along its route. When the wallet pays gas in the network token, its balance of that token falls. An onchain token approval also consumes gas when existing permission doesn’t cover the requested spending. It authorizes token use without completing a swap. An offchain signature doesn’t itself incur gas, although the transaction that uses it consumes network resources.
The permission mechanism and wallet’s execution method determine which charges apply, so an approval prompt alone doesn’t establish the transaction count.
Pool swaps and UniswapX require the same cost basis
Pool swaps and UniswapX orders need a common valuation basis for a fair cost comparison. When both quotes cover the same input token, input amount, output token and network, compare the value received after applicable pool or service charges, converting separately paid expenses into the same valuation unit as the output.
A filler submits a UniswapX order’s settlement and incorporates its execution costs into the offered exchange rate. Initial onchain approvals and required native-token wrapping can still create separate expenses for the swapper. For an ordinary pool swap, the transaction sender funds gas; eligible sponsorship can cover that cost.
| Swap option | Trading-charge structure | Settlement gas payer | Fee and execution conditions |
|---|---|---|---|
| Uniswap v2 pool | Fixed 0.3% pool fee | Transaction sender | The core pool fee remains fixed |
| Uniswap v3 pool | The selected pool’s fixed tier | Transaction sender | The factory must enable the tier |
| Uniswap v4 fixed-fee pool | Fixed liquidity provider (LP) fee with applicable additional charges | Transaction sender | Protocol or hook charges can remain separate |
| Uniswap v4 dynamic-fee pool | Variable LP fee with any applicable additional charges | Transaction sender | The hook can update or override the LP fee |
| UniswapX order | Offered exchange rate incorporates filler execution costs | Filler | Quotes depend on network support, trade eligibility and filler participation |
| Pool settings determine trading charges; the execution arrangement determines who pays settlement gas. | |||
The cheaper quote leaves greater value after separately paid expenses, provided both options satisfy the same trade constraints. Don’t subtract filler gas again when its price already incorporates that expense. A quoted advantage can disappear if liquidity, network pricing or applicable order terms change before execution.
After execution, a successful settlement transaction and the recipient’s actual token credit establish what completed. For an ordinary Ethereum pool swap, its receipt supplies gas usage and the effective gas price that establish the execution expense. Signing an order or submitting a transaction alone doesn’t confirm a completed exchange.
Fixed pool tiers in v2 and v3
Uniswap v2 pools apply a fixed 0.3% swap fee to the input that reaches the pool. This charge enters the pool’s exchange calculation.
Each v3 pool has a fixed fee tier. Established tiers include 0.01%, 0.05%, 0.3% and 1%, with additional enabled tiers depending on the factory. The selected pool’s fee identifies the percentage relevant to that swap, and factory owners can enable additional tiers, so those familiar values don’t define the complete menu for every deployment.
The tier belongs to a particular pool. Several pools for the same token pair can therefore charge different percentages.
A fee amount in input-token units measures the tokens taken for that pool’s charge. Its value in another currency changes with conversion prices, even while the percentage stays fixed. Comparing charges across different tokens requires a consistent valuation basis.
When can gas cost more than the pool fee?
Gas outweighs the pool charge when its value exceeds the fee amount on the same valuation basis, and smaller inputs reduce a fixed percentage charge without necessarily reducing the transaction’s computational work. There’s no universal trade-size threshold because both network pricing and the pool’s fee affect that boundary.
On Ethereum, execution gas costs equal gas used multiplied by the effective gas price. Gas units measure computational work, while the price per unit reflects the transaction’s network fee terms, including its base fee and priority fee. A wallet’s estimate concerns anticipated execution; the settled transaction supplies the actual charge.
Splitting one trade into separately submitted swaps can repeat execution overhead and change price impact, so its combined cost needs a comparison of all execution expenses and resulting token outputs. Waiting for lower network pricing changes the gas input, while changes in liquidity or token prices can change the quote during the same interval.
Uniswap v4 pools can use changing LP fees
Uniswap v4 lets pool creators choose fixed or dynamic liquidity-provider fees, including configurations with a zero LP fee. A dynamic fee can respond to the pool’s hook logic, changing the trading charge independently of the network’s gas price.
Fixed and dynamic LP fees
A Uniswap v4 pool’s dynamic-fee status is fixed when the pool is created. A dynamic pool can change its fee value through permitted hook mechanisms, whereas a fixed-fee pool keeps its LP percentage.
Updates to the stored fee
The pool’s hook can update its stored LP fee through PoolManager. The hook’s logic determines how often the rate changes, which conditions trigger updates and how it calculates the new percentage.
Overrides for an individual swap
A dynamic-fee hook can override the stored LP rate for an individual swap through beforeSwap, changing the charge for that execution.
Additional hook charges
Some hooks impose custom charges through their own accounting, separate from LP fees and protocol fees. A zero LP percentage therefore doesn’t establish a zero-cost route when another charge applies.
Routing and price movement change the amount received
A route’s fee percentages explain only part of its output because liquidity and price movement also affect the exchange calculation. A lower-fee pool can produce a worse quote if the available liquidity creates greater price impact.
Multi-pool routes
Sequential hops apply each pool’s charge to the tokens entering that step. Split routes divide the starting input among different paths, with each pool charging only the amount that passes through its path. Simply adding displayed percentages can misrepresent the fee burden when the route uses different input bases.
Price impact
Price impact is the price movement that the trade itself causes, reflecting its size relative to liquidity at the prices it crosses. It can reduce the output without representing another fee paid to an application. More available liquidity generally reduces this effect for a comparable trade.
Slippage limits
Slippage describes the difference between quoted and executed exchange terms. A tolerance sets an acceptable boundary, such as minimum output for a fixed-input swap or maximum input for a fixed-output swap. Increasing that tolerance permits worse execution terms; it doesn’t lower the pool’s fee. A swap that fails either limit check during onchain execution reverts, but the gas used remains payable.
Protocol fees and interface charges have different recipients
Protocol fees direct revenue to protocol collection contracts, while LP fees compensate liquidity supplied to pools. The December 2025 governance rollout activated protocol collection in v2 and selected v3 pools on Ethereum mainnet. For these versions, an enabled protocol fee redirects part of the existing pool swap charge, with governance-controlled settings determining the applicable collection configuration. In v4, an active protocol fee follows a different calculation: the core takes its protocol portion from the input first, then applies the LP fee to the remaining amount. Adding both percentages directly would overlook their different bases. Custom hook accounting can introduce another charge.
Uniswap Labs removed its interface fee on December 27, 2025, leaving pool fees and network costs intact. Other applications can charge their own service fees, including fees deducted from output tokens. A service charge belongs in the cost comparison separately from the pool’s LP fee.
Liquidity earnings also carry management costs
Liquidity providers incur network costs when adding, removing or managing capital unless another party covers them; standard v3 and v4 positions keep earned fees separate from liquidity principal, so collecting earnings can also consume gas. In these pools, only active liquidity earns new swap fees. In v2, fee revenue remains in reserves and increases the claim represented by LP tokens. Gross fee income doesn’t measure net profitability because position value also changes with token prices. Frequent collections become more expensive relative to earnings when network costs rise or accrued fees remain small.
Common questions, answered
Can a token charge its own fee on top of the pool fee?
A token contract can impose a buy, sell or transfer fee in addition to the pool’s trading charge. The token’s own fee rules determine that deduction; it isn’t a Uniswap LP fee. Transfer-fee behavior can also affect route compatibility and the tokens that reach the recipient, so the pool percentage alone may understate the swap’s deductions.
Is the wallet’s maximum network fee my final transaction cost?
The maximum fee shown for an Ethereum transaction is a spending ceiling, not necessarily the final charge. Execution costs depend on actual gas usage and the effective gas price. Unused gas capacity doesn’t automatically become an expense. A maximum network estimate also doesn’t replace the separate calculation of pool charges or service fees.
Does a multi-pool route require a separate transaction for every pool?
A multi-pool route can execute within a single transaction. The Universal Router can compose swaps across v2, v3 and v4 without requiring a transaction for each pool. Each fee-bearing pool swap still contributes its applicable trading charge. The transaction’s gas expense reflects the combined execution work, with any additional network-specific fee components.
Do an approval and a swap always produce separate gas bills?
A supported wallet can batch approval and swap actions into one blockchain transaction. Existing allowances can also remove the need for a new onchain approval. When the wallet submits the actions separately, each transaction consumes gas. Batching doesn’t remove the pool’s trading fee or guarantee the same cost across wallet methods.
Can an unfilled UniswapX order still leave me with a network expense?
Network costs from a completed approval or wrapping transaction remain payable even if a subsequent UniswapX order never fills. The filler covers the order’s settlement gas, and an unfilled order doesn’t itself charge the swapper settlement gas.
When does a smart wallet qualify for sponsored swap gas?
Uniswap Labs’ gas sponsorship requires an eligible wallet that supports ERC-4337 and a transaction that the sponsor chooses to cover. Supporting the standard doesn’t guarantee coverage for every swap. Uniswap Labs can change which transactions it sponsors, so a previous sponsored transaction doesn’t establish the payment arrangement for a later one.
Will swapping back refund the fee from my earlier trade?
The v2, v3 and v4 core contracts don’t automatically refund an earlier pool fee when you trade back. A reverse swap is another trade with its own applicable charges and execution costs. Changes in liquidity or token prices can also change the amount returned, even when both trades use the same pool.
Updated ·