Why AMMs can't quote liquid assets
The constant-product AMM is the most successful financial primitive ever shipped on a blockchain. xy=k bootstrapped DeFi, made on-chain price discovery possible, and let anyone become a market maker by pasting two tokens into a pool.
It also cannot quote a liquid asset.
This is not a market-cycle observation. It is a structural property of any pricing function whose state only updates when someone trades against it. For an asset whose reference price is moving on Binance, Coinbase, Hyperliquid, and a dozen perp venues at the same time, an AMM curve is, by construction, stale between every block — and the cost of that staleness has a closed form.
What “liquid” means here
Liquid, in this post, means: there is an external reference price for the asset, that reference price moves continuously, and arbitrageurs can observe both the reference and the AMM in the same block. SOL/USDC, the major LSTs, jitoSOL, BTC and ETH wrappers, the top fifty Solana tokens. Anything with a CEX listing and a sub-second price feed.
Long-tail tokens are the opposite — no reference price, no keeper, no arb. The argument below does not apply to them. They are the residual case where AMMs still function, and we’ll come back to that.
The pricing function only moves when someone hits it
A passive AMM curve has no opinion about the outside world. It quotes a price derived entirely from its current reserves. The reserves only change when a trade lands.
So the sequence on every liquid pair is:
- Reference price moves on the CEX.
- AMM curve does not move.
- An arbitrageur trades against the AMM until its quoted price matches the reference.
- The arbitrageur keeps the difference. The LP is now holding the wrong inventory at the new price.
That last step is the entire problem. The LP did not get paid for providing liquidity to an informed counterparty — they got picked off by one. The fee on the trade is a small tax the arbitrageur pays for the privilege of taking the LP’s inventory at a stale price.
LVR is the closed form of that loss
Loss-Versus-Rebalancing (Milionis, Moallemi, Roughgarden, Zhang, 2022) gave the rate at which this leak happens for a constant-product pool:
LVR rate = σ² / 8 (per unit time, as fraction of pool value)
For SOL at ~60% annualized vol, that’s 4.5% per year extracted from the pool by arbitrageurs. For ETH at ~50%, ~3.1%. For a long-tail memecoin at 200% vol, ~50% per year — which is why those pools hemorrhage so visibly, on the rare occasion someone does run an arb against them.
The crucial property of LVR: it is a lower bound on what arbitrageurs extract, and it does not depend on whether anyone uninformed shows up. Toxic flow finds the pool whether or not retail does.
So the LP equation collapses to:
LP PnL = (fees from uninformed flow) - (LVR) - (impermanent loss realized at exit)
For a liquid asset, the LVR term is fixed by σ. The only thing the LP can hope to win on is the first term — fees from uninformed swaps that happen to land in the pool. And on a liquid pair, that flow has been routed elsewhere.
Concentrated liquidity does not help
Orca Whirlpools, Raydium CLMM, and Meteora DLMM were sold as “capital-efficient AMMs.” They are. They are also LVR-efficient — the same concentration that lets an LP earn 10× the fees on a tighter range exposes 10× the inventory to adverse selection on that range.
The math is symmetric. Concentration multiplies both sides. The advertised APY is gross of LVR; the realized APY is net of it. On SOL/USDC and the major LST pairs, the net number has been negative for active CLMM positions through most of 2024 and 2025 unless the LP was running their own off-chain hedging — at which point they are no longer a passive LP, they are a prop shop with worse infrastructure than the prop shops.
CrocSwap, Ambient, and the other “smart” passive curves don’t fix this either. They reshape the inventory profile. They do not change the fact that the curve is stale relative to the reference market.
The retail flow that used to subsidize this is gone
The argument “AMMs still earn fees from retail swaps on liquid pairs” relied on retail swaps actually landing in the pool. They don’t anymore.
On Solana, Jupiter routes ~70%+ of all DEX volume. Jupiter’s job is to find the best execution — which, on any liquid pair where a prop AMM has a vault, is the prop AMM. The retail swap that used to hit Raydium now hits HumidiFi, Obric, or ZeroFi. The Raydium pool sees only:
- The arb leg, when the pool has drifted from the keeper-quoted price.
- The occasional direct swap from a wallet that didn’t route through Jupiter.
The first one is pure LVR. The second is shrinking every quarter as wallets default to aggregator routing.
DFlow and Titan are doing the same kind of routing layer alongside Jupiter — the long-run state on Solana is one or two aggregators internalizing the spread to professional market makers before flow ever touches the pool. The pool is the venue of last resort.
What a venue that can quote a liquid asset looks like
The architecture is not novel. Lifinity shipped oracle-priced AMMs in January 2022. The thing that changed is that the cost of running one fell below the LVR savings.
A prop AMM keeper has to do exactly what the passive curve cannot:
- Read external prices (Binance, Coinbase, other DEXes).
- Push an oracle update on-chain frequently enough to keep the curve fresh.
- Out-bid arbitrageurs for inclusion when the price moves fast.
On Solana in 2026, an oracle update on HumidiFi costs ~143 CU. A swap costs ~150,000 CU. The keeper can quote-update at a rate that makes the LVR window narrow enough that the spread (1–3 bps on SOL/USDC) covers what’s left. The vault captures the flow that would have been LVR against a passive pool, and captures the spread on retail flow that aggregators route in.
The economics are not subtle. A prop AMM on SOL/USDC keeps roughly the spread on every retail trade and gives up roughly nothing to arbitrage, because the keeper is faster than the arb. A passive AMM on the same pair gives up the LVR (which is real, measurable, and ~4.5%/yr at SOL vol) and now collects fees from the residual flow that aggregators didn’t route elsewhere.
For a liquid asset, there is no version of this where the passive AMM wins.
The objections worth taking seriously
“LVR is a worst-case bound; real LPs underperform it less than the formula suggests.” True — the σ²/8 formula assumes continuous arb and no fees. With fees and discrete arb, the realized leak is some fraction of the bound. But the fraction is not small enough to flip the sign on liquid pairs. Realized LP underperformance on SOL/USDC CLMM positions has run in the 50–80% range of analytical LVR through 2024 and 2025. That’s still a structurally negative trade after fees on most days.
“Just-in-time liquidity, MEV-aware AMMs, and auctioned block flow can recapture the LVR.” They can recapture some of it for the protocol — by auctioning the right to be the arb, the protocol gets paid instead of the searcher. But this routes the same money through a different intermediary; it does not return it to passive LPs unless the protocol redistributes it. McAMM, Sorella’s Angstrom, and the various LVR-rebate designs are interesting protocol-level fixes; they are not a defense of passive LPing on liquid assets. They are an admission that passive curves cannot quote liquid assets at competitive prices, and a proposal to fix it by making the AMM less passive.
“AMMs work fine on stablecoin pairs.” This is the one place a passive curve genuinely still functions on a liquid asset, because σ is tiny and LVR is correspondingly tiny. Curve’s StableSwap and the various stable-only AMMs on Solana (e.g. Saber’s lineage, Stable.fun) are real businesses. But “AMMs work for stablecoin-stablecoin” is not a defense of passive curves on liquid assets in general — it’s a statement that when σ ≈ 0, the staleness penalty is also ≈ 0. Push σ up and the model breaks again.
“What about long-tail tokens?” This is the real residual use case. Long-tail pools work because there is no reference price for the keeper to track in the first place — the AMM curve is the price discovery mechanism, not a stale shadow of one. No prop AMM bothers to deploy a vault, volume is too low to justify a keeper, and volatility is high enough that fees can occasionally outrun LVR. But “long-tail” is the opposite of “liquid.” When a token grows up — meaningful volume, a CEX listing, a price feed worth tracking — it stops being long-tail and the same prop-AMM dynamic takes over within weeks.
Where this leaves things
The honest read of where this is going:
- Liquid pairs (SOL/USDC, the major LSTs, BTC and ETH wrappers, top-50 Solana tokens) will be ~100% prop AMM and RFQ within 12–18 months. Passive AMM TVL on these pairs will keep bleeding to vaults and to LPs giving up.
- Long-tail bootstrapping stays in passive AMMs, because there is no external price for the curve to be stale against. This is the residual use case.
- Stablecoin pairs stay in specialized stable-AMM curves where σ is small enough that staleness doesn’t matter.
- Aggregator-level competition (Jupiter vs. DFlow vs. Titan vs. whoever ships next) will be the actual market structure layer for liquid assets. The aggregator picks the venue; the venues compete on quote quality; the user never thinks about which curve they hit.
- Protocols that today brand themselves as “AMMs” on liquid pairs will rebrand as “liquidity layers” or “vault platforms” or pivot to running their own keepers. Some will succeed at this; most won’t, because keeper infra is a real engineering organization, not a smart contract.
The thing being mourned is not the math. xy=k still works as a pricing function for an asset with no external reference. It’s the assumption that a stateless curve can quote against a continuously-priced asset that’s gone. Anyone telling you otherwise is either selling LP positions on a liquid pair or running a long-tail protocol where the analogy still holds.
AMMs were the right answer to the 2018 question — how do you make markets when there is no reference price on-chain and no professional flow? For liquid assets in 2026, the question changed. The curve didn’t.