Three hidden flaws in Uniswap’s StablePair hook reduce LP yields

The StablePair fee hook from Uniswap aims to retain a greater portion of value when liquidity providers rebalance stablecoin pools.

However, the rule that determines which trade qualifies as a correction relies on a preset reference rate.

As a Uniswap v4 hook—a contract designed to modify pool behavior—StablePair compares a cached pool price against a reference stored directly in its configuration. This setup prices trades around that specific benchmark, exposing providers if the economic value of a token drifts away.

Uniswap Labs launched two Ethereum pools, USDC/USDT and USDC/USDG, on Sept. 10. A Sept. 16 explanation pointed out that providers committing capital are selecting both a fee mechanism and the specific token inventory it demands.

What the dynamic fee captures

Deployment documentation outlines one-for-one reference rates for both pools. The fee mechanism executes using this stored reference alongside the pool price, omitting external market-price feeds.

Within a tight band surrounding the reference, the fee shifts based on swap direction to target a balanced bid and ask before price impact. When the pool aligns precisely with the reference, both directions incur the configured optimal fee. As it drifts toward an edge, the fee drops in one direction while climbing in the other.

For a basic example, suppose an optimal fee is set at one basis point (0.01%). At the reference point, a swap involving 10,000 input units incurs one input unit in LP fees.

Beyond this band, the fee structure divides trades directionally. Swaps categorized as moving further from the reference incur zero LP fees, whereas trades pulling the pool back toward the benchmark face a decaying fee rate.

A trade pushing the pool away can supply LPs with a favorable price relative to that benchmark. Conversely, the opposing trade allows an arbitrageur to capture the price gap by returning the pool to the reference. A standard static fee charges both directions identically.

Instead, StablePair provides increasingly favorable terms for corrective trades as time passes across blocks.

Should a trader accept the fee, LPs collect it while the trade rebalances the pool. Uniswap Labs states that this configuration captures the “vast majority” of rebalancing profits.

Related Reading

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

The initial swap of each block caches the pool price utilized for subsequent fee calculations. While this prevents splitting corrective swaps to gain an advantage within the same block, later trades can encounter stale inputs. If the live price crosses the reference midway through a block, the cached classification may assign fees to opposing directions until the following block begins.

Inventory risk and the evidence on returns

The boundary surfaces when external markets cease treating the two assets as equivalent.

Take a conditional issuer shock that diminishes one coin’s external value while the configured reference continues to assume a one-for-one exchange rate. Selling that weakening coin in exchange for the stronger alternative can drive the pool further from the reference while pushing its price closer to external market reality.

Consequently, a trade classified by the fee rules as moving away from the reference may actually represent price discovery instead of a temporary imbalance.

The fee logic lacks the capacity to verify issuer solvency or restore redemption values. This scenario remains hypothetical and should not be interpreted as reporting any active depeg, exploit, or loss within either StablePair pool.

If an LP holds 10,000 hypothetical coins and their external value drops from $1 to $0.90 each, that inventory values at $9,000, representing a $1,000 drop prior to fees. Generating income from rebalancing trades does not inherently offset this shift in token value.

Trades can also alter what providers actually own. Selling a weaker coin into available liquidity drains the stronger coin, leaving active LP positions concentrated in a higher proportion of the weaker asset. Away-from-reference trades charged zero LP fees fail to generate any fee revenue to compensate for this elevated exposure.

The volume exchanged remains subject to available liquidity, the provider’s chosen range, and price impact. Furthermore, StablePair’s zero-fee classification relies on the cached price, meaning it should not be assumed that every sale of a depreciating coin is guaranteed to be free.

On Sept. 30, Stats panels on the Uniswap interface recorded the USDC/USDT StablePair pool holding roughly $6.1 million in total value locked alongside $117.9 million in 24-hour volume around 15:59 UTC. The USDC/USDG pool registered approximately $2.6 million and $8.7 million respectively around 15:57 UTC.

A corresponding pair reference was accessible: the Ethereum USDC/USDT v3 pool featuring a 0.01% fee displayed roughly $34.2 million in TVL, $15 million in 24-hour volume, and $1,100 in 24-hour fees near 16:02 UTC.

These observations lacked synchronization, the pools operated under distinct fee structures and liquidity conditions, and the StablePair panels provided no comparable aggregate fee figures or realized position-level returns.

Economically speaking, verifying such return claims would demand matching timeframes, active liquidity ranges, fee earnings, and inventory valuations. Volume metrics alone cannot prove whether an LP outperformed an alternative pool or simply holding the underlying assets.

Governance controls the benchmark, with limits on the hook

Within Uniswap’s outlined operational model, governance oversees active fee configurations, implementation upgrades, and role management.

Modifying the reference alters the benchmark applied for classifying and charging swaps. The deployment guide instructs integrators to fetch live configurations straight from the hook since governance retains the ability to adjust parameters.

Distinct boundaries restrict upgrade capabilities. The hook’s permanent address permissions explicitly bar remove-liquidity callbacks and custom accounting deltas.

According to Uniswap security documentation, upgrades cannot leverage these functions to restrict LP withdrawals or manipulate swap amounts to siphon extra fees. Retaining the ability to withdraw, however, does not guarantee the market value of the tokens received.

Uniswap reports that OpenZeppelin audited a non-upgradeable predecessor’s core fee mechanism between Feb. 9 and 13, 2026, successfully resolving the splitting issue via block caching. Subsequent upgradeability features and role structures fell outside the scope of that audit.

For LPs, StablePair shifts the economics of supplying liquidity for rebalancing. The ultimate decision rests on whether the underlying assets justify the reference benchmark guiding that liquidity provision, and whether the fees collected adequately cover the inventory held in the end.

Leave a Reply

Your email address will not be published. Required fields are marked *