← All projects

Iceberg

An AMM where arbitrageurs can only reach the tip of the liquidity.

EventETHGlobal Tokyo 2026 · 1inch Aqua and Uniswap tracks
My roleTeam build · I built the frontend
Iceberg site preview
19.3%

less lost to arbitrage than a plain Uniswap v4 pool, on a replay of a real 24 hours on a Base mainnet fork

  • 17.6% less LP loss at λ = 50%
  • 19.3% at λ = 39%
  • Hook and router live on Base mainnet
  • Fork-tested against the real Base PoolManager
The problem

Liquidity providers lose money every time prices move and arbitrageurs trade the pool back to the market. A normal pool exposes all of its reserves to that, every block.

What I did

Iceberg was a team build. I built the frontend: the story site and the backtest charts that show the replay results.

SolidityUniswap v4 hook1inch SwapVMMorphoChainlinkNext.jsthree.js
How it works
  1. Split the reserves every block

    On the first trade of a block, reserves split into an active part λ·R and a passive part. The passive part is frozen for the rest of the block, so trades only see the tip.

  2. Let a keeper choose λ

    Every ten minutes a fee-aware keeper replays the last six hours of real ETH prices, simulates each λ and publishes the one with the lowest LP loss.

  3. Make idle money earn

    The frozen reserves sit in Morpho vaults earning yield, and are pulled out mid-swap only when a trade needs them.

  4. Same price on two venues

    One maths kernel runs as a Uniswap v4 hook and as a custom 1inch SwapVM instruction, and gives the same price to the wei on both.