September 16, 2026

Keeping Value in the Pool: How StablePair Hook Works

#Protocols

By: Diana Kocsis, Kite Liu, and Christian Angelopoulous


Stable pairs accounted for more than $200 billion in DEX volume in the first half of 2026. That's close to 4% of all crypto spot trading, and roughly half of DEX volume on Ethereum.

Both tokens in a stable pair are denominated in the same underlying asset: a dollar for USDC and USDT, a bitcoin for WBTC and cbBTC. Their fair exchange rate, or reference price, is known. The market price still could fluctuate a few basis points depending on market conditions.

Those windows are where LPs give up value. When a swap moves the pool away from the reference price, LPs trade at a favorable price. When a swap pulls the pool back, LPs trade at an unfavorable one, and the difference goes to whoever makes that trade. An ideal design would return that value to LPs, without removing the incentive to correct the pool's price in the first place.

A static fee can't do this, because it charges both directions the same. Set it low and the corrective trades keep pulling value out. Set it high and it penalizes the swaps that were already handing LPs a good price, so routers send that volume elsewhere.

StablePair Hook prices the two directions differently. On every swap, it recomputes the fee from two inputs: where the AMM price sits relative to the reference price, and which way the swap pushes it.

The reference rate is set at pool creation

StablePair Hook gets its dynamic fee from a constant reference price set when the pool is created. For USDC/USDT, that’s exactly 1:1. On each swap, the hook measures how far the AMM price sits from that reference and which direction the swap pushes it, using these two inputs to calculate the optimal fee.

Near parity: the virtual market maker

Each StablePair pool is configured with a symmetric band around the reference price. Inside it, the pool quotes a firm, predictable bid/ask spread exactly as wide as the band.

To do this, the pool uses a dynamic fee within the band. Each side's fee is the distance between the AMM price and that side's edge of the band, so the quoted bid and ask hold still wherever the AMM price sits.

  • If the AMM price sits above the reference, less fee is needed to hold the ask, and more to hold the bid.
  • If the AMM price sits below the reference, more fee is needed to hold the ask, and less to hold the bid.

The two always sum to the width of the band. This dynamic adjustment ensures that all buys clear exactly at the top of the band and all sells clear exactly at the bottom, before price impact, regardless of where the AMM price sits. The fee is calculated from the AMM price at the start of the block, so quotes change block to block, not within one.

Inside the band, the pool quotes a fixed spread around a known fair value. The bid and ask don't move with the pool's own price, so an aggregator sees the same quote, wherever the pool sits.

Outside the band: zero fees and the Dutch auction defense

Outside of its optimal band, the hook splits the trades into two buckets: corrective trades and non-corrective trades.

Zero fees for swaps that move further away

Some swaps push the pool's price further from the reference. Selling USDC into a pool where USDC is already cheap is one example. A swap like this hands the pool a better price than it would get inside the band.

The hook charges these swaps no fee. They already give LPs a favorable price. A fee would only suppress flow, without protecting LPs from anything.

The Dutch auction defense for corrective trades

A corrective swap that pulls the pool back toward the reference price closes the mispricing. In a static-fee pool, whoever makes that trade would capture the gap. StablePair Hook secures this value for LPs with a decaying-fee Dutch auction.

How it works:

  1. The opening price: The auction opens by quoting a corrective swap the same price an ordinary in-band swap would get: the far edge of the band. The arbitrageur is offered no benefit from the mispricing at all. From there the fee decays.
  2. The fee decays block by block: Each block the fee steps down toward a floor. The decay rate and the floor are pool parameters, so they can differ from pool to pool and chain to chain.
  3. The rebalancing trigger: The first swapper willing to accept the decaying fee triggers the trade, rebalancing the pool.

By introducing a time-based auction, the pool's price is quickly corrected, and LPs capture the vast majority of the rebalancing profit as fee revenue.

What an upgrade can and can’t change

The hook sits behind an upgradeable proxy controlled by Uniswap Governance, so its logic can improve over time as research points to better designs. Even so, governance can never change the permissions that protect LP funds.

In Uniswap v4, a hook's permissions are encoded in its address. The address never changes, so an upgrade can't expand what the hook is allowed to do. The hook has no remove-liquidity callbacks, so no upgrade can block an LP from withdrawing. And it can't return custom accounting deltas, so no upgrade can alter swap amounts to take an extra cut.

Governance holds upgrade and configuration rights after launch. Today, Uniswap Labs creates StablePair pools and sets their initial configuration, and is exploring letting anyone configure their own StablePair pool.

A new era of stable liquidity

StablePair Hook provides a new market design for assets that trade at a known reference price. By replacing static fees with a fee that responds to each swap, it gives LPs a more efficient way to provide stable pair liquidity.

LPs can concentrate liquidity around the reference price as usual in Uniswap v4, knowing the hook's fee layer is capturing the value that corrective swaps used to take.

Get started

Source: Uniswap Labs analysis of onchain data via Allium; Jan 1–Jun 30, 2026; 17 EVM chains, all DEX venues; wash-trading filtered; CoinGecko H1 2026 spot trading volume.

Share

Explore, swap and LP tokens on the world’s largest DEX.

Launch web app

Sign up for research and updates from the Uniswap Labs team