Uniswap’s 0.2% Auto-Compounding Proposal: The Keeper Fee Hidden in the Yield

SamWolf Altcoins

Hook

Hayden Adams just turned Uniswap LP positions into a public bounty board. The proposal: anyone can trigger auto-compounding on an LP position by adding liquidity equal to 0.2% of its size. The triggerer then walks away with all unclaimed fees sitting in that position. It is going on the roadmap. There is no audit. There is no code. There is no testnet date and no explanation of how that 0.2% is priced on-chain. Speed is the only currency that doesn’t inflate. Right now, this is a claim waiting for a contract.

Context

The problem being solved is real. LP fees arrive as a stream, not a salary. They sit inside the position contract until a user claims them and manually puts them back to work. Uniswap’s core engine never handled that step. A full wrapper industry emerged to fill the gap: Beefy, Yearn, Arrakis, Gamma and a dozen copycat vaults. Those systems use custodial vaults, strategists and management fees. The LP’s money is only as safe as the auditor’s report and the multisig’s discipline. Adams’s announcement flips that trust model. No vault manager. A permissionless keeper market supplies the labor.

He described the design as his personal contribution to pools.trade. That is a meaningful detail. It suggests the first live implementation may appear inside pools.trade before it enters any official Uniswap roadmap. Or it means the roadmap in question is the pools.trade roadmap, not Uniswap’s. The announcement does not clarify. In crypto, that ambiguity is normal. And in crypto, speed is the only currency that doesn’t inflate. The protocol is late compared with the wrapper layer but early compared with native infrastructure. The question is what the native version will actually do.

Core

Let’s model the game before celebrating. An LP deposits a V3 or V4 position into a jar contract. Fees accumulate inside the jar. The jar waits. At some point the unclaimed fee balance grows big enough for a keeper to act. The keeper adds new liquidity equal to 0.2% of the position’s value to that LP’s position and then withdraws every unclaimed fee generated by the position. If the accumulated fee is 0.5% of position value, the keeper inputs 0.2% and extracts 0.5%, netting 0.3%. The LP keeps a position 0.2% larger but loses 0.5% of cashable yield. Net, the LP is down 0.3% before future fees are even counted. That is the arithmetic most early reactions skip.

This is not free compounding. It is an implicit service fee. The fee equals all accrued yield minus the 0.2% that gets added back as an illiquid position. For a user who would otherwise never claim, dust becomes a working asset. For a user who manually compounds once a week on an L2, this is a tax on attention. The 0.2% number is both a minimum compounding granularity and a bait threshold. It determines who holds the extraction rights.

Based on the stress-testing I did after Terra, three details worry me more than the headline. Valuation is the starting problem. How does a contract know what 0.2% of a position is worth? Uniswap positions do not have a clean market price. The jar needs an oracle, a TWAP feed, or a constant-product formula. All three can be manipulated or go stale. Range status is next. If the current price sits outside the LP’s range, adding liquidity to a stale range is not the same transaction as adding to an active range. Does the contract skip those jars? The announcement does not say. And then there is MEV. A keeper’s trigger reveals where a fee pool lives. Bots can front-run the call, sandwich the transaction, or race to trigger the jar themselves. The design assumes rational keepers; the mempool is full of rational extractors. None of these are edge cases. They are the product.

The 0.2% threshold also interacts with fee tiers differently. A 0.30% pool reaches the trigger after roughly one full turnover. A 0.01% pool needs $2 million of volume to produce $200 of fees on a $100,000 position. Volatile, low-fee, or out-of-range positions will simply sit dormant. That is not a bug; it is a filter. The system will auto-compound the deepest, most liquid ranges and ignore everyone else.

The mention of a jar is also not random. Uniswap V4 introduced hook-based fee accounting, and a jar is a natural container for yield that has not yet been reinvested. But hooks are a developer feature, not a user feature. V4’s flexibility is programmable Lego; most teams will not build custom hooks. A native jar mechanism is the rare simple idea that could be implemented on top. That also means the complexity tax is real: the layer that makes this possible is the same layer that scares away nine out of ten developers.

Contrarian

The market will read this as a competitive strike against third-party vaults. The simple compounding segment will indeed get squeezed. But the more important implication is darker. Uniswap is floating a mechanism where LPs auction their unclaimed income to strangers. The keeper is not doing a favor. The keeper is collecting a bounty. If the triggerer truly receives 100% of fees for a fixed 0.2% injection, then the keeper’s profit is the LP’s loss. The only offsets are saved gas and avoided vault carry. On Ethereum mainnet, that math can work. On an L2, it is a direct transfer to keeper bots.

Governance experience teaches the same lesson. I spent 72 hours tracing wallets during the 2021 Sushiswap governance war. Whoever controls the parameter controls the exit. A 0.2% threshold is not neutral plumbing. It is the pricing mechanism for a new extraction market. Set it too low, and every small jar gets griefed. Set it too high, and no keeper ever triggers. The design needs a cap on the keeper’s share, or a mechanism that reinvests the excess back into the position. Otherwise LPs are paying yield they never saw to people who watched the mempool harder. Third-party vaults will not die. They will pivot to active range management and leave raw compounding to a protocol default with an unresolved fee curve.

Also think about the market condition. In a bull run, a hidden 0.3% leak is concealed by price appreciation. In a sideways market, that leak is the whole alpha. This report lands in a chop market; the timing matters.

Takeaway

Ignore the price reaction. Watch the roadmap. The milestones that matter are testnet availability, an audit, and a parameter proposal with a mathematical appendix. If the final model only works at high gas, it will become an L2-native feature or fade. If it favors keepers, expect a new species of MEV bot bidding for jar rights. Trade those events, not the announcement. Speed is the only currency that doesn’t inflate. But yield that gets drained before it compounds is just speed in the wrong direction.