How a Liquidity Pool Prices Your Trade
Three weeks ago a friend’s company had to move 100,000 USDC into ETH on a Wednesday afternoon, before a contractor invoice went out that evening. The swap page quoted a clean rate of 3,000 USDC per ETH. The trade actually settled at 3,203, and my friend walked away with 32.26 ETH when the screen had implied 33.3 a moment earlier. About 3.3% of the position vanished into a piece of math he had never seen. That sent me back into the guts of automated market makers, and I have not looked at a swap page the same way since.
The Formula Behind the Swap Button

Every classic liquidity pool runs on one equation: x times y equals k. Picture a pool holding 1,000 ETH and 3,000,000 USDC. Multiply the two reserves and you get k, which is 3,000,000,000 in this case. The pool treats that product as sacred. Whatever you do to one side, the other side adjusts until the product comes back to k.
The implied price is just the ratio of the reserves: 3,000,000 USDC divided by 1,000 ETH gives 3,000 USDC per ETH. That is the number on the swap page. Underneath it, the pool is a machine with one dial, and every trade turns it.
When my friend added 100,000 USDC, the USDC side grew to 3,100,000. For k to stay at 3,000,000,000, the ETH side had to shrink to about 967.7, so the pool handed him 32.26 ETH and kept the rest. The new reserve ratio, 3,100,000 over 967.7, prices ETH at 3,203. The pool moved the price simply by being used. Uniswap’s documentation walks through the same constant product curve if you want it in the original form.
The design has a short history worth knowing. Bancor floated the idea of algorithmic reserves in 2017. Hayden Adams built Uniswap on the constant product curve in 2018 and shipped version 2 in May 2020, and that release is where the modern DEX market starts. Automated market makers as a category get their economics from that one line of algebra, which still amazes me given how much money now sits behind it.
Why the Price Moves Against You

Slippage is the gap between the rate you were quoted and the rate you settled at, and it grows with the size of your order. A 1,000 USDC swap into that same pool moves the price by roughly 0.03%, which nobody notices. My friend’s 100,000 USDC was 3.3% of the pool’s USDC side, and it moved the price by 3.3%. The relationship is arithmetic, and it is unforgiving: an order that is large relative to the reserves pays for that size out of the trade itself.
This is why traders talk about 2% depth, the amount of liquidity sitting within 2% of the mid price. If your order is bigger than the depth on one venue, you are trading against your own footprint. Routing through an aggregator like 1inch or through a decentralized exchange’s smart order router splits the order across several pools so each one absorbs less, and the savings are usually worth the extra click.
The Fee That Pays the Pool’s Providers

Uniswap v2 style pools take 0.3% of every trade and pass it to the people who funded the pool. If you swap 10,000 USDC, 30 USDC goes to the liquidity providers in proportion to their share. In exchange, those providers accept a risk I will get to in a moment.
The fee is also why liquidity pools exist at all. On a quiet day the pool might do 200,000 USDC of volume and hand its providers 600 USDC. On a volatile day it can do twenty times that. Volume, more than price direction, is what a liquidity provider is actually being paid to sit through.
Impermanent Loss, the Quiet Cost of the Job
Provide liquidity and you agree to sell whatever the market wants to buy. Here is the version that surprised me. Suppose you deposit into that ETH and USDC pool and ETH doubles in dollar terms over the next month. The arbitrage traders who keep the pool balanced have quietly bought ETH out of it the whole way up. You finish holding fewer ETH and more USDC than you started with, and the pool ends up worth about 5.7% less than if you had simply held the original position in a wallet.
Concretely, a provider who deposited 10 ETH and 30,000 USDC into that pool would finish the doubled-price month holding roughly 7.07 ETH and 42,400 USDC, about 5.7% behind a wallet that had simply left the original split alone. The loss is called impermanent because a price round trip erases it, and real because prices rarely round trip on schedule. High volume can bury the loss under fees, which is the entire calculation a liquidity provider makes: expected fee income against expected impermanent loss. Stable pairs, where the two assets cannot diverge much, are the low-drama end of that trade.
The Fee Tier Changes the Shape of the Trade
Version 3 pools split liquidity into fee tiers and concentrate it into price ranges. A stablecoin pair might run at 0.05%, an ordinary pair at 0.3%, and an exotic one at 1%. Providers pick a range instead of the whole curve, which multiplies their fee income inside that range and takes them out of the trade entirely when price leaves it. For a trader the tier changes the effective fee far more than it changes slippage, so it is worth checking which tier your order routed through before blaming the pool for the settlement price.
What I Check Before Using a Pool
Four numbers, in order: total value locked, 2% depth, lock status, and pool age. Total value locked tells you the size of the machine. Depth tells you how much of it is actually available near the current price. Lock status tells you whether the providers can walk away with the liquidity tomorrow, which is how most pool-based rugs end. Age tells you how much history there is to inspect.
I also set my slippage tolerance deliberately instead of accepting the default. For a large swap in a deep pool, 0.5% is plenty and anything above 1% is a signal to split the order or use a different venue.
Why I Now Read the Pool Instead of the Quote
The quote is a marketing surface. The pool is the product. Once you have seen the reserves, the depth, and the fee tier, you can predict the settlement price of a trade almost exactly, which is what my friend’s invoice day taught both of us the expensive way.
You May Also Like