Uniswap's fee switch is on across the board on Uniswap v3 (though now also on Uniswap v4). The protocol takes a share of every LP's swap fees before they are ever credited to the position: 25% on the 0.05% tier and 16.7% on the 0.3%, the two Uniswap pools in this study. We measured what that took from the LPs who were already in those pools, position by position, in our previous piece.
That answers what the fee costs existing LPs. It does not answer the question an LP asks next, which is "what is the best venue to LP at today?". A protocol take only means something next to what the pool pays before it, and on Base the same pair trades across venues whose fee mechanics have important differences: fixed fees, dynamic fees, emissions paid instead of fees, emissions paid on top of them. So we measured all of it, net of every venue's cut.
This is a like-for-like measurement of what a synthetic ETH/USDC liquidity position would have earned in each of the five largest WETH/USDC pools on Base: Uniswap v3's 0.05% and 0.3% pools, two Aerodrome Slipstream pools, and PancakeSwap v3's 0.01% pool. Same position size, same price ranges, same price path, never rebalanced, so what differs between the results is the pool rather than the LP running it.
Which pools, and why those. WETH/USDC trades on Base in dozens of them. These five cleared $23.5B between them over the last 90 days, 94.7% of the volume among the WETH/USDC pools on that network.
What each pool charges in swap fees is less obvious than it sounds. On Uniswap v3 and PancakeSwap v3 the fee is a constant of the pool: a 0.05% pool charges 0.05% on every swap, for its whole life. Aerodrome Slipstream pools set the fee per swap through a configurable fee module, so no single number describes one, and the two Aerodrome pools here did not behave alike. Over these 90 days the fee volume actually paid was 0.0110% in one of them and 0.0439% in the other: same pair, same venue, four times the rate.
Swap fees are also not the only way these pools pay, and the three venues do not pay on the same terms. On Uniswap, swap fees are the whole of it. On Aerodrome, liquidity can be staked in a gauge, which takes 100% of the position's swap fees and pays AERO emissions instead: fees or emissions, never both. On PancakeSwap, the position can be deposited in the MasterChefV3 farm, which pays CAKE and leaves the swap fees with the position, forwarding them to the staker on collect. Fees and emissions. So a staked position means a different trade at each venue, and every row below says which.
No venue's marketing would write this piece. It is not an argument that one pool is better; it is a measurement of what dynamic fees, competing liquidity, and professional market makers do to a passive LP's revenue, and it is illustrative of the different factors at play.
Window: 90 days to July 25, 2026
Network: Base
Pools: five WETH/USDC pools across three venues
Position: $10,000 at four widths, never rebalanced
Snapshot: July 25, 2026
Fee income for identical hypothetical positions. A $10,000 position at four widths (1.20x, 1.52x, 2.46x, and full range, where width is the ratio of upper to lower price bound), centered at each window's opening price and never touched. Every bound sits on the tick grid that is mintable on all five pools, whose spacings are 10, 60, 100, 50 and 1, so each simulated position is one you could actually open in any of them.
Not total return. Divergence loss is common to identical ranges on the same pair over the same price path, so it cancels out of a venue comparison and fee income is the entire difference. Your own return includes it. The fee APRs here are net of each venue's protocol take and nothing else.
Not LP skill, though other LPs still matter. Synthetic positions remove our LP's judgment from the measurement, as would be the case when comparing the real historic positions in each pool. What the synthetic positions earn still depends on how much other liquidity was active around the price at each moment, because that is what a fee share is. So what this measures is what each pool happened to offer one more passive dollar during these specific windows, not a fixed property of any venue. Run it over a different period, or against a different amount of competing liquidity, and the answer changes.
Everything comes from raw on-chain events, processed by identical code for all three venues: every swap in the window (12.2 million of them) and every liquidity addition and removal in each pool's entire life (140.5 million events, 121 million of those in the first Aerodrome pool), which together reconstruct each pool's tick-by-tick liquidity map at every moment. Each swap is then walked step by step through that map the way the pool contract executes it, splitting at every initialized tick, with fees credited to the liquidity active in each step.
The fee is not assumed anywhere. Given exact pool state, the input a swap's observed price movement would require at zero fee is computable, and whatever the trader actually paid above that is the fee the pool charged. This recovers Aerodrome's dynamic fee swap by swap, through configuration changes and any discounts, without needing a published rate at all.
Emissions are measured two ways. Where a position's own tick bounds can be read straight off the pool's reward accumulator, the reading is exact, and that covers 22 of the 36 emissions figures here. The other 14 are integrated from the reward rate and the exact time the range held the price, which is a sampled estimate rather than an exact reading.

The first Aerodrome pool's fee spent most of the window between 0.006% and 0.03%, volume-weighted at 0.0110% overall, well below every static tier here except PancakeSwap's. Spot reads of its fee() function ranged as high as 0.2%, but volume concentrates where fees are low, given lower fee means greater arbitrage opportunities, so the rate volume actually paid is much lower than any snapshot suggests. The configuration itself changed mid-window, on-chain, on May 8 and again on July 9. The July change is the step visible in the chart: volume-weighted, that pool became roughly three times more expensive over the final 14 days, 0.028% against 0.0110% for the window as a whole.
The second Aerodrome pool ran at 0.0439% volume-weighted, four times the first, and the comparison between them is the most useful thing in this chart. It took a quarter of the first pool's volume, $2.65B against $9.66B, and collected more gross fees doing it, $1.16M against $1.06M.
Net fee APR for the same $10,000 position, after what each venue keeps (25% on the Uniswap 0.05% pool, 16.7% on the Uniswap 0.3% pool, 33% on PancakeSwap, and on Aerodrome a cut on unstaked positions only, 5% in the 0.01% pool and 10% falling to 5% partway through the window in the 0.04% pool, applied per swap from its on-chain history), with fees valued at each swap's price. Staked rows say what staking pays at that venue: on Aerodrome the gauge takes all swap fees and pays AERO instead, on PancakeSwap the farm pays CAKE and the position keeps its fees. The best figure in each width is highlighted.

The 90-day window opened at an ETH price of $2,348 and closed at $1,865, so these positions were centered high and the price fell through them.


This window opened at $1,579 and closed at $1,865: centered low, with the price rising through the ranges, which is why every narrow number here is larger than its 90-day counterpart.


This window opened at $1,806 and closed at $1,865, the quietest of the three for price.

Read the three tables as three separate entries rather than one position watched over time: each window's positions are freshly centered at that window's opening price, so differences between windows carry entry timing and market path as much as venue. Fees are valued as they accrue; valuing the accumulated fee tokens at end-of-window prices instead moves APRs by up to 1.95 percentage points, the extreme case being the 30-day narrow position in the pool with the highest realized fee. Both conventions are in the published results.
Four things stand out. No venue won. That is why this piece does not end by naming one.
The pool decides, not the venue. What you take home is the best instrument the venue offers: swap fees on Uniswap, fees or AERO on Aerodrome, fees plus CAKE on PancakeSwap. On that measure the 0.04% Aerodrome pool took the 30-day window and three of the four 90-day cells, PancakeSwap took the 14-day window and the 90-day narrow range, and neither Uniswap pool won any of the twelve. Strip the staked rows out and compare swap fees alone and the picture inverts: the 0.04% Aerodrome pool takes eleven of twelve, PancakeSwap's 6.5% in the 90-day narrow cell is the lowest of the five, and Uniswap's 0.3% pool wins that one cell at 8.0%. Which comparison you run decides who wins, so the tables mark what an LP takes home. The other Aerodrome pool, the one that traded 5.8 times the Uniswap 0.05% pool's volume and collected more fee dollars than it, was the worst of the five over 30 days and second worst over 90.
The volume, fee dollars and TVL numbers are each half an argument. Uniswap's 0.3% pool collected $18.3M in fees over the window, twenty-two times what the 0.05% pool collected, and paid a $10,000 position about what that pool paid, because the position is one twenty-fifth of the slice there. PancakeSwap is the mirror image: the thinnest book of the five, where the same position is about twice the slice it would be in Uniswap's 0.05% pool, and the smallest fee pot, $348k, a third of which the protocol keeps. It finishes last. Neither pool's volume number tells you what it paid: the one with the most fee dollars and the one with the thinnest book came within four tenths of a point of each other.
Staking is a different instrument at each venue, and the ranking is not settled by it. On Aerodrome, emissions valued as they accrued beat that pool's own unstaked fees at every width in every window, which is the whole point of a gauge; against the other venues they win some widths and lose others, and which ones depends on how AERO is valued. On PancakeSwap that is not an issue: the farm pays CAKE and leaves the swap fees with the position, so staking there is additive: over the 90 days a staked position is simply the unstaked one plus 1.1 to 5.7 points,
Emissions are paid in a token whose price moves, and that is an important price risk staker LPs are exposed to. AERO fell about 11% across the 90 days. Valuing each day's accrual on the day it accrued gives the staked figures above; valuing the same tokens at the window's close costs the 90-day staked figures up to 1.1 points and the 30-day ones up to 5.8, and it changes the answer to whether staking beat holding the fees: over the last 14 days the 0.01% pool's staked position goes from ahead of its own unstaked fees at every width to behind them at every width, and the 0.04% pool's lead over its own fees shrinks to 1.25 points at the narrow width and a twentieth of a point at full range. Fee income is not risk-free either, since it accrues in the two assets you already hold, but staking swaps part of that for exposure to a third one.
Those figures assume the AERO sits unclaimed until the end, which is the worst case in a window where it fell 11%. Auto-compounding it would have improved these returns even above what is shown in the tables and charts: harvesting converts each day's rewards at that day's price, so the price going down stops eating the revenue, and the harvested amount earns fees alongside the original capital. That is what we automate at Revert, and worth considering if you are a staker.
Every number above is net of what the venue keeps, and the venues keep very different amounts: a quarter of LP fees in the Uniswap 0.05% pool, a sixth in the 0.3% pool, a third on PancakeSwap, and on Aerodrome a cut on unstaked positions only. That cut is not a constant either, and it is somewhat confusing: their own docs claims it is between 10% and 50% for unstaked liquidity, however in practice the 0.01% pool charged 5% throughout, while the 0.04% pool charged 10% until 20 May and 5% after, which works out to 5.6% of the fees the pool collected over the window. PancakeSwap's is the largest cut of the five and it is not a published number we took on trust: its slot0.feeProtocol reads 3300 per side against a 10,000 denominator, which is neither Uniswap's 1/n encoding nor a percentage, so we measured it from the protocol-fee fields its own Swap events carry. It comes to 0.330000 of every fee paid, identical across twelve sample regions spanning the window.
Add every venue's protocol fee back and compare fee income only, with no staking and no emissions on either side, and the order changes completely:
90 days, fee income gross of every venue take | narrow | mid | wide | full |
|---|---|---|---|---|
Uniswap 0.05% | 10.1% | 9.4% | 16.4% | 3.3% |
PancakeSwap 0.01% | 9.7% | 8.3% | 13.5% | 2.7% |
Uniswap 0.3% | 9.6% | 8.4% | 14.4% | 2.9% |
Aerodrome 0.04% dynamic | 8.5% | 8.0% | 14.0% | 2.8% |
Aerodrome 0.01% dynamic | 6.9% | 6.4% | 9.6% | 2.0% |
Gross of the protocol fee, Uniswap's 0.05% pool earns the most at every width, and PancakeSwap moves off the bottom: second at the narrowest width, third at the next, fourth at the two widest.

There is no one-venue that really comes out ont op. These five pools competed for your liquidity over the same 90 days and no single one of them was the answer. Which pool paid you the most depends on the window and on whether you staked taking on the implied price risk. On swap fees alone the 0.04% Aerodrome pool takes eleven of twelve cells; allow staking and PancakeSwap's fees-plus-CAKE takes the 14-day window outright. One pool changed its fee twice inside the window, and another halved its cut. At the tightest width over the last 14 days, three of the five finish within three quarters of a point of each other.
So the job is not picking a venue. It is monitoring the different factors, and moving when they change:
the realized fee rate, not the label. A dynamic-fee pool has a fee history rather than a fee, and the two Aerodrome pools here ran 0.0110% and 0.0439% on the same pair over the same window.
how much of the tick is yours at the moments fees are paid. That is the other half of every result above, and it is why the pool with the most fee dollars did not pay a $10,000 position the most. Short-lived ultra-concentrated liquidity it not good for more passive LPs.
what the venue keeps, from a 5% cut on Aerodrome to a quarter on Uniswap's 0.05% pool and a third on PancakeSwap. It is also mutable: one of these pools halved its cut inside the window.
whether staking is additive or a swap. On PancakeSwap the farm pays CAKE and leaves your fees alone. On Aerodrome the gauge takes all of them and pays AERO, which is a real trade with a reward-token risk attached. And how exposed you are to the reward token's price risk.
All four move. None of them is visible from a TVL number or a headline APR, and by the time a pool reaches a leaderboard the flow has usually already arrived.
Check what your own positions actually earned, after each venue's cut, from your Revert dashboard.
Volume follows execution price, and at 0.0110% the first Aerodrome pool was very cheap to trade in. Then it stopped being so cheap. Its fee module was reconfigured on July 9, the realized rate went from 0.8 bips to 2.9 over the following week, and volume fell 65%, from $88M a day to $30M. Over the same days the other four pools moved by -14%, -2%, -4% and +21%, so that decline is far larger than anything else happening in the pair, and it is consistent with flow responding to the fee.
Part of that relationship is mechanical rather than a matter of trader preference. A pool's fee is the threshold an arbitrageur has to clear, so the cheaper the pool, the smaller the price divergence that is already worth trading against. Lower the fee and you get more arbitrage volume, mechanically, with no change in anyone's demand for the pair.
What is measured here is the fee series, the volumes, and the pool's response to its own fee change.

PancakeSwap volume numbers highlight an import caveat, because the cheapest fee did not get the most volume. It charges the same one-bip fee the first Aerodrome pool averaged over the window, and it had about a third of that pool's volume. The difference is what a trade pays besides the fee. Price impact is set by the liquidity standing at the price, and Aerodrome's book at the price is about four times deeper, much of it short-lived positions, posted at the active tick.

What an LP position earns is the product of exactly two things: the fee dollars the pool paid out to liquidity on each swap, and the slice of the active tick your position was at the moments the swaps happened.
A swap only pays the liquidity standing in the tick it is trading through, so your fee income is your liquidity divided by the liquidity in that active tick, summed over every step of every swap. Liquidity parked in ranges the price never reaches earns nothing and dilutes nobody. So the quantity that matters is not the pool's average liquidity or its TVL, it is how large a slice you were of the active tick at the moments fees were actually paid.
So the question is not why one pool's fees were low. It is who you are splitting them with. Aerodrome pools have a considerable amount of volume, however for normal LPs much of its diluted by an equally considerable amount of "short lived liquidity", or "bots" that reposition very extremely narrow-range liquidity every few blocks.
Because arbitrage volume will increase or decrease along with liquidity this ultra concentrated liquidity will actually have a more important impact in diluting reward revenue. This is something we have studied previously in the context for Uniswapv3 staker rewards. If Aerodrome were to prevent this type of strategy it should have a big positive impact on regular staked LPs performance.
The five pool addresses in this study: Uniswap v3 0.05% 0xd0b53d92, Uniswap v3 0.3% 0x6c561b44, Aerodrome Slipstream 0.01% 0xb2cc224c, Aerodrome Slipstream 0.04% 0x3fe04a59, PancakeSwap v3 0.01% 0x72ab388e, all on Base.
