Swappers pay a fee sized from measured arbitrage loss. It buys cover that pays the pool's liquidity when prices swing.
Read from the Sepolia testnet, against the deployed Uniswap v4, 1inch Aqua and Chainlink contracts.
We valued every swap in the UNI/WETH 0.3% pool on Ethereum at Binance one-minute prices. Measured that way, arbitrage loss came to $10.02M against $10.74M of fees over 103 weeks (one outlier week excluded), and it lands in the weeks the market moves.
A Chainlink CRE workflow values every swap in the pool at exchange prices and reports last week's arbitrage loss on-chain.
A Uniswap v4 hook charges swappers a fee sized from that loss, capped at 0.30%. With no fresh report, it charges nothing.
The fee buys LONG claims on UNI/ETH volatility from a 1inch Aqua strategy. When a week settles, the payout is donated to the pool's in-range liquidity.
Each LONG claim pays out from the volatility of UNI/ETH over one week, sampled from every Chainlink price update in the week. Two historical weeks, replayed on a mainnet fork from real Chainlink history:
The October crash. Volatility passed the 150% cap, so LONG paid in full.
A calmer week. LONG paid 15.9% of the maximum and SHORT took the rest.
The contracts, the Chainlink workflow, the data behind every number on this page and the spec we built from are in one repository, under the MIT licence.
Swappers in the Tremor pool, through a Uniswap v4 hook fee. The fee is sized from last week's measured arbitrage loss divided by volume, halved, and capped at 0.30%. If no fresh measurement arrives, the fee drops to zero.
Nothing to claim or manage. The hook holds the cover. When a week settles, it redeems its LONG claims for WETH and donates that WETH to the liquidity in range at the time, over a few hundred blocks. That rewards current liquidity, not necessarily the LPs who took the loss.
No. Tremor runs in two places. The full demo runs on a local fork of Ethereum mainnet, against the deployed Uniswap v4 PoolManager, 1inch Aqua registry and Chainlink UNI/ETH feed, including two real weeks settled from history. It is also deployed on Sepolia, against the real v4 PoolManager and 1inch Aqua, where it settles on Chainlink ETH/USD with a test UNI token.
For average returns, you should. We ran both on the same two years: paying the same add-on straight to LPs earns about 8% more in total and swings less week to week. Spending it on Tremor cover instead cut the worst week from about -$124k to -$71k. Tremor is for LPs who want the tail cut, not a higher mean. The script is in the repo (data/benchmark_dynamic_fee.py).
The numbers are pool-wide, so a single LP can do better or worse. Liquidity that joins just for a payout and leaves within 100 blocks forfeits its share to the LPs who stayed (OpenZeppelin's liquidity penalty), but an LP that joins shortly before a payout and stays still gets a share. And the cover only works on a new v4 pool, so LPs would have to move to it.
The app reads every number straight from the contracts on a mainnet fork. Quotes work without a wallet.
Open the app