An institution asked to provide liquidity to a pool, or to route a trade through one, is being asked to accept a pricing rule instead of a counterparty. There is no book of resting orders and no market maker on the other side who can be assessed for credit or intent. There is a formula, some reserves, and whoever else is looking at the same reserves at the same moment. What follows sets out what that formula does to price, who is paid for watching it, and where the arrangement fails. None of it is tax, legal, accounting or investment advice.
Four designs, and what each one is for
The original design, used by Uniswap's v2 pools, is the constant product formula. Uniswap's documentation states it as x * y = k, where x and y are the two reserve balances and k must stay constant or increase after each trade, so a trade that removes some of one asset must add enough of the other to keep the product intact. The same documentation describes the consequence plainly: larger trades relative to pool depth move the price more, while smaller trades execute closer to the current spot price.
Curve's StableSwap design is built for assets meant to trade near parity, such as two stablecoins. Curve's documentation describes it as integrating features of both the constant sum and the constant product formulas, adjusting between them according to the balance of assets in the pool. Near balance the curve behaves close to constant sum, which keeps slippage low; as the pool becomes significantly imbalanced it moves towards constant product, so a real depeg still produces slippage rather than letting one asset be drained at par.
Balancer generalises in another direction. Its documentation describes weighted pools whose invariant extends the constant product formula to tokens held in weights other than 50/50, such as an 80/20 pool, and states that the spot price between any two tokens is the ratio of their balances normalised by their weights. A pool can therefore hold most of its value in one asset while still offering two-sided liquidity.
Uniswap's v3 pools introduced concentrated liquidity. Rather than spreading capital across every price from zero to infinity, a liquidity provider chooses a price range and deposits only within it. Uniswap's documentation illustrates why: the v2 DAI/USDC pair used only about 0.50% of its total capital for trading between $0.99 and $1.01, the range where most volume occurs, so capital concentrated in that band can offer the same depth with a small fraction of the funds. The cost, in the documentation's words, is that when the price exits a position's interval, the liquidity is no longer active and no longer earns fees. A concentrated position is an active view on where price will trade, not a passive stake in the pair.
How depth sets price and slippage
In each design, price is not quoted; it is derived from what remains in the pool after a trade. Slippage, the gap between the price of the first unit of an order and the average price paid across all of it, follows from how much liquidity sits near the current price relative to the size of the order. A large trade against a shallow pool, or one that pushes through the edge of concentrated positions, pays for its own price impact. This is why comparing pools on headline fee alone is incomplete: if a 0.05% pool is shallow and a 0.30% pool on the same pair is deep, the higher fee can still be the cheaper execution for a large order once price impact is counted.
Fees and fee tiers
According to Uniswap's documentation, every v2 pool charges a flat 0.30% fee that is added to the pool's reserves, so it accrues to liquidity providers in proportion to their share. In v3 the standard tiers are 0.05%, 0.30% and 1%, letting a stable pair run at a low fee and a volatile pair, riskier for the provider on the wrong side of a large move, run at a higher one. In v3 and v4, fees are collected separately and must be redeemed by the position owner rather than compounding in the pool. Uniswap v4 drops the fixed menu: pool creators can set any fee from 0% to 100% in increments of 0.0001%. The same documentation records that, following governance approval in December 2025, a protocol fee is active on all v2 pools and selected v3 pools, set at launch to roughly one sixth of the swap fee on the pools where it is enabled. What a liquidity provider actually receives is worth checking pool by pool rather than assuming from the headline fee.
Impermanent loss and loss-versus-rebalancing measure different things
Impermanent loss compares the value of a liquidity position at a given moment against simply holding the starting assets outside the pool. It is the cost of the pool having sold the asset that rose and bought the one that fell as its price moved to track the market. It is impermanent only in the sense that it can shrink if prices return to where they started; a provider who withdraws while prices remain moved has realised it. Angeris, Kao, Chiang, Noyes and Chitra's 2019 analysis of Uniswap markets showed the other side of that mechanism: under some common conditions, these markets must closely track the reference market price, because a stale pool price is profitable to trade against.
A 2022 paper by Milionis, Moallemi, Roughgarden and Zhang named the resulting transfer loss-versus-rebalancing, or LVR. Where impermanent loss is measured against a portfolio that bought once and never traded, LVR is measured against a rebalancing strategy that holds the same amount of the risky asset as the pool but makes all its trades at centralised exchange prices. The gap is the provider's adverse-selection loss to arbitrageurs who pick off the pool's stale quotes, and the paper derives it as depending only on the instantaneous variance of the asset's price and the pool's marginal liquidity. The authors argue that the fixed-start impermanent loss measure remains polluted by market risk and recommend against using it. In their study of the Uniswap v2 ETH-USDC pool from August 2021 to July 2022, fees minus LVR was positive. For an institution sizing a liquidity commitment, the useful point is the framing: the return that is specific to providing liquidity is fees minus LVR, and LVR rises with volatility and with the liquidity committed at the margin, so fee income has to be tested against it rather than assumed to cover it.
Arbitrage is the mechanism, not a side effect
A pool's price matches the wider market only because someone is paid to correct it when it does not. When a pool's implied price drifts from the price available on a centralised exchange or another venue, an arbitrageur trades against the pool to bring it back and keeps the difference. A December 2021 Bank for International Settlements Quarterly Review article on automated market makers put the provider's side of this plainly: liquidity providers can suffer losses if the relative price of the two cryptoassets on other exchanges diverges substantially from that implied by the bonding curve.
Who keeps the arbitrage profit is a live research question. An April 2026 working paper on CEX-DEX arbitrage on Ethereum by Ladóczki, Rásonyi and Tapolcai suggests the arbitrage market may be saturated: because block builders can choose among many competing arbitrageurs, those arbitrageurs are forced to rebate a large fraction of their profits. The authors' model estimated arbitrage on the Uniswap v2 ETH-USDT pool at a daily average of about $1,454 of profit against about $1.88 million of volume over 13–29 September 2025, estimates they report as closely matching empirical observations. How that auction divides value between searcher, builder and validator is covered in our explainer on MEV and order flow.
For the institution providing the liquidity that arbitrageurs trade against, this means fee income is partly compensation for taking the losing side of better-informed trades. That is the adverse-selection problem every market maker manages, discussed for discretionary firms in our market-makers explainer; a pool simply cannot choose whom it quotes to.
Where a pool becomes an attack surface
A pool's reserves are public, and any system that reads them as a price is exposed to whoever can move them, even briefly. A well-documented example is the second of two attacks on the lending protocol bZx in February 2020. As CoinDesk reported, the attacker used a flash loan to buy enough sUSD, a synthetic dollar, on Kyber, the exchange bZx relied on for pricing, to push its price to about 2.5 times the prevailing $1 rate, borrowed against collateral valued at that inflated price, and was left with a profit of 2,378 ETH after repaying the loan. The usual defence, a time-weighted average price in place of the instantaneous spot price, and its limits are set out in our piece on how price oracles work and fail; a longer window resists single-transaction manipulation but lags a genuinely fast market, so the window is itself a risk decision.
A pool is also a smart contract, and its liquidity is only as safe as that contract and the tools that built it. On 30 July 2023, as The Block reported, attackers drained several Curve pools by exploiting a reentrancy vulnerability associated with Vyper compiler versions 0.2.15, 0.2.16 and 0.3.0. JPEG'd's pETH-ETH, Metronome's sETH-ETH and Alchemix's alETH-ETH pools lost more than $26 million between them, and the security firm BlockSec estimated total outflows at about $41 million, figures reported on the day. The flaw sat in the compiler that produced the contracts rather than in the pool's pricing formula, which is the shape of contract risk here: assessing a pool means assessing its whole dependency chain, compiler version included.
Uniswap v4's hooks add a deliberately open-ended layer. A hook is an external contract a pool can call before and after initialisation, liquidity additions and removals, swaps and donations; Uniswap's documentation lists uses such as dynamic fees, gating who can add or remove liquidity, and custom pricing curves. Each hook is its own contract with its own code and review history, and a hook that changes swap behaviour or fee capture does so only as reliably as it was written. It is where a pool's customisation lives, and so where the diligence has to go, much as it does for the strategy contracts behind the vaults in our piece on where DeFi lending and vault yield comes from.