2026-10-01, 7:25 AM

Three hidden flaws in Uniswap’s StablePair hook drain LP returns

Uniswap’s StablePair fee hook is designed to keep more of the value from rebalancing stablecoin pools with liquidity providers.

Yet the rule deciding which trade counts as a correction depends on a configured reference rate.

StablePair is a Uniswap v4 hook, a contract that changes a pool’s behavior. Its fee logic compares a cached pool price with a reference stored in the hook’s configuration. The design prices trades around that benchmark, leaving providers exposed if a token’s economic value moves away.

Uniswap Labs announced the two Ethereum pools, USDC/USDT and USDC/USDG, on Sept. 10. Its Sept. 16 explanation noted that Providers allocating capital now are choosing a fee mechanism alongside the token inventory it requires them to hold.

What the dynamic fee captures

The deployment documentation lists one-for-one reference rates for both pools. The implementation’s fee path uses that stored reference and the pool’s price, without consulting an external market-price feed.

Inside a narrow band around the reference, the fee varies by swap direction to target a consistent bid and ask before price impact. When the pool sits exactly at the reference, both directions pay the configured optimal fee. As it moves toward an edge, the fee in one direction falls while the other rises.

For a simple illustration, assume an optimal fee of one basis point (0.01%). At the reference, a swap with 10,000 input units would pay one input unit in LP fees.

Outside the band, the fee rules split trades by direction. A swap classified as moving farther from the reference pays zero LP fee, while a swap classified as pulling the pool toward it faces a decaying fee.

A trade pushing the pool away can give LPs a favorable price relative to that benchmark. The reverse trade lets an arbitrageur capture the gap by restoring the pool’s price. A single static fee rate charges both directions equally.

StablePair instead offers progressively better terms for the corrective trade as blocks pass.

If a trader accepts the fee, LPs collect it while the trade rebalances the pool. Uniswap Labs says the design captures the “vast majority” of rebalancing profit.

Related Reading

Malicious Uniswap v4 hooks are baiting DeFi traders with fake swap quotes


StablePair fee flow compares a configured reference, cached pool price and swap direction. Outside the band, away-from-reference swaps pay zero LP fee and toward-reference swaps face a decaying fee; conditional loss of parity can leave active LPs holding more of the weaker asset.
StablePair can adjust LP fees around a configured parity, but it cannot protect liquidity providers if a token loses its peg.

The first swap in each block caches the pool price used for later fee calculations. That removes the same-block fee advantage from splitting corrective swaps, but later trades can face stale inputs. If the live price crosses the reference mid-block, the cached classification can assign fees to the opposite directions until the next block.

Inventory risk and the evidence on returns

The boundary appears when the outside market stops treating the two coins as equal.

Consider a conditional issuer shock that reduces one coin’s external value while the configured reference still assumes one-for-one exchange. Selling that weakening coin for the stronger coin can move the pool farther from the reference while moving its price closer to the outside market.

A trade the fee rule classifies as moving away from the reference may then reflect price discovery, rather than a temporary imbalance.

The fee logic cannot verify issuer solvency or restore redemption value. This scenario is hypothetical and should not be read as a report of a current depeg, exploit, or loss in either StablePair pool.

If an LP holds 10,000 hypothetical coins and their external value falls from $1 to $0.90 each, that inventory is worth $9,000, a $1,000 decline before fees. Capturing income from rebalancing trades does not by itself reimburse that change in token value.

Trades can also change what the provider owns. Selling the weaker coin into available liquidity removes the stronger coin and leaves active LP positions with more of the weaker asset. An away-from-reference trade charged zero LP fee contributes no LP fee to offset that added exposure.

The amount exchanged still depends on available liquidity, the provider’s chosen range, and price impact. StablePair’s zero-fee classification also depends on the cached price, so it should not be read as a rule that every sale of a weakening coin is always free.

On Sept. 30, the Uniswap interface’s Stats panels showed the USDC/USDT StablePair pool with about $6.1 million in total value locked and $117.9 million in 24-hour volume around 15:59 UTC. The USDC/USDG pool displayed about $2.6 million and $8.7 million, respectively, around 15:57 UTC.

A same-pair reference was available: the Ethereum USDC/USDT v3 pool charging 0.01% displayed about $34.2 million in TVL, $15 million in 24-hour volume, and $1,100 in 24-hour fees around 16:02 UTC.

The observations were not synchronized, the pools have different fee rules and liquidity conditions, and the StablePair panels supplied no comparable absolute fee total or realized position-level return.

In economic terms, testing that return claim would require comparable periods and active liquidity ranges, fee income, and inventory valuation. Volume alone cannot show how much better an LP did than in another pool or by holding the assets.

Governance controls the benchmark, with limits on the hook

Under Uniswap’s documented role model, governance controls live fee configurations, implementation upgrades, and role administration.

Changing the reference changes the benchmark used to classify and charge swaps. The deployment page directs integrators to read live configuration from the hook because governance can change parameters.

Separate limits apply to what an upgrade can do. The hook’s permanent address permissions exclude remove-liquidity callbacks and custom accounting deltas.

According to Uniswap’s security documentation, upgrades cannot use those capabilities to block LP withdrawals or alter swap amounts to skim additional fees. The ability to withdraw does not guarantee the market value of the tokens received.

Uniswap says OpenZeppelin reviewed a non-upgradeable predecessor’s core fee mechanism from Feb. 9 to 13, 2026, and resolved the splitting issue through block caching. The later upgradeability and role model were outside that review.

For LPs, StablePair changes the price of supplying liquidity for rebalancing. The remaining economic decision is whether the assets still justify the reference around which that liquidity is supplied, and whether earned fees compensate for the inventory ultimately held.

com”>CryptoSlate.

Standard Chartered says Ethena’s ENA could crush Bitcoin and Ethereum returns by 2028 Treasury will let states file for stablecoin approval before finishing their rules