StablePair fee rules risk mispricing and raise LP exposure
Uniswap’s StablePair uses a stored reference and a block‑cached pool price to set directional fees. Those mechanisms can misclassify trades, increase LP inventory exposure and leave fees insufficient to cover losses.
Uniswap Labs launched StablePair, a Uniswap v4 hook, and announced two Ethereum pools, USDC/USDT and USDC/USDG, on Sept. 10 with documentation posted on Sept. 16. The hook changes how swaps are charged by comparing a pool price cached from the first swap in each block with a reference rate held in the hook configuration. Fees are set on whether a trade moves the cached price toward or away from that reference.
Inside a narrow band around the reference, the fee varies by swap direction to keep a consistent bid‑ask around price impact; when the pool sits exactly at the reference both sides pay an optimal fee, cited in documentation as an example of one basis point (0.01%). When the pool moves outside the band, trades classified as pushing the price further from the reference pay zero liquidity‑provider (LP) fee, while trades classified as moving back toward the reference face a decaying fee schedule that becomes more favorable as blocks pass.
The first issue is the use of a fixed, configured reference rate. The hook uses the stored parity value to classify trades and does not consult an external market price feed or test issuer solvency. If market participants treat two tokens as unequal, the stored one‑for‑one reference can lag the external market. A swap that appears to move the pool away from the stored reference may reflect external price discovery rather than a temporary imbalance.
The second issue is block caching of the pool price. The hook reads the pool price from the first swap in each block and reuses that value for fee classification for the remainder of the block. OpenZeppelin’s February 2026 review of a predecessor mechanism noted same‑block fee splitting as a risk and the cached approach addresses that concern; however, if the live market price crosses the reference mid‑block, later swaps in the block will be classified using the stale cached price until the next block updates the value.
The third issue concerns directional fee rules and LP inventory risk. Fee revenue from corrective trades does not restore a decline in a token’s market value. For example, if an LP holds 10,000 units of a token that falls from $1.00 to $0.90, the inventory value drops to $9,000 before any fees are collected. Selling the weakening token into the pool removes stronger tokens from the LP position and increases the share of the weaker asset. Trades classified as moving away from the reference and charged zero LP fees generate no LP fee revenue to offset the higher exposure to the weaker token.
On Sept. 30, Uniswap’s interface showed the USDC/USDT StablePair with about $6.1 million in total value locked (TVL) and $117.9 million in 24‑hour volume around 15:59 UTC. The USDC/USDG StablePair displayed roughly $2.6 million TVL and $8.7 million in 24‑hour volume around 15:57 UTC. For comparison, an Ethereum USDC/USDT v3 pool charging 0.01% displayed about $34.2 million TVL, $15 million in 24‑hour volume and approximately $1,100 in reported 24‑hour fees near 16:02 UTC. These timestamps were not synchronized and the pools have different fee rules and liquidity conditions, so volume alone does not provide a direct measure of LP performance or realized position‑level returns.
Documentation and on‑chain permissions place governance in control of live fee configuration, implementation upgrades and role administration for the hook. Deployment notes instruct integrators to read the hook’s live configuration because governance can change parameters. The hook’s permanent address permissions exclude remove‑liquidity callbacks and certain custom accounting deltas. Security documents state that upgrades cannot block withdrawals or alter swap amounts for the purpose of skimming additional fees. Uniswap’s deployment notes also reference an OpenZeppelin review in February 2026 that addressed same‑block fee splitting; the later upgradeability and role model were outside that review.
StablePair changes how fees are calculated and how trades are classified for liquidity providers. Documentation and on‑chain data show different fee treatment and liquidity profiles compared with legacy pools.








