UniHooks

Every Uniswap v4 hook, live

Every hook attached to at least one Uniswap v4 pool, graded and explained in plain English, with the pools that use it.

AgeHookChainPermissionsPools
5mo 0x74de…0101Takes a cut when LPs withdraw Unichain afterRemoveLiqremoveLiqDelta 1 5mo 0x4d8f…0044Runs code on every swap · Can take tokens from swaps Unichain afterSwapafterSwapDelta 1 5mo 0xae1b…c044Runs code on every swap · Can take tokens from swaps Unichain afterSwapafterSwapDelta 1 5mo 0x431b…c044Runs code on every swap · Can take tokens from swaps Unichain afterSwapafterSwapDelta 1 5mo SpireTracks per-address "horn length" (HORN token balance weighted by holding tenure) after each swap, accumulating reward weight for a UNI distribution system. Periodically harvests LP fees from a HORN/UNI pool to burn HORN and distribute UNI to holders proportionally; includes a "monarch" mechanic where the highest horn-length holder can claim a crown pot after a cooldown. Unichain afterSwap 1 5mo 0xbd62…c040Runs code on every swap Unichain afterSwap 1 5mo 0xd750…c044Runs code on every swap · Can take tokens from swaps Unichain afterSwapafterSwapDelta 1 5mo 0x8c19…d4ceRuns code on every swap · Can take tokens from swaps · Adjusts deposit amounts · Runs at pool creation Unichain afterInitafterAddLiqbeforeSwapafterSwap+3 1 5mo 0x3bbb…54ceRuns code on every swap · Can take tokens from swaps · Adjusts deposit amounts · Runs at pool creation Unichain afterInitafterAddLiqbeforeSwapafterSwap+3 1 6mo 0xd733…00c0Runs code on every swap Unichain beforeSwapafterSwap 1 6mo AsyncSwapConverts exact-input swaps into async limit orders: the maker's input is escrowed in beforeSwap via BeforeSwapDelta, bypassing the pool AMM entirely. A pre-authorized filler later settles by delivering at least the maker's specified minimum output. Supports order cancellation and limit-price updates; full-fill only in v1. Unichain beforeInitbeforeAddLiqbeforeSwapswapDelta 1 6mo AsyncSwapAsync order book that intercepts exact-input swaps — the maker's input is taken as a 6909 claim and an open order is created at a limit price. A filler later settles by delivering the minimum output amount directly to the maker, bypassing the AMM entirely. Unichain beforeInitbeforeAddLiqbeforeSwapswapDelta 1 6mo 0x14aa…e080Runs code on every swap · Runs at pool creation Unichain beforeInitbeforeSwap 1 6mo CounterA simple counter hook that increments per-pool counters on beforeSwap, afterSwap, beforeAddLiquidity, and beforeRemoveLiquidity. Each callback only records call counts with no access control, fee logic, or swap modification. Unichain beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap 1 6mo PointsHookAwards ERC20 loyalty points to users who buy a paired token using TOKEN_A through allowlisted routers. In afterSwap, mints points proportional to the TOKEN_A amount spent; non-allowlisted routers can still swap but receive no points. Unichain afterSwap 1 7mo 0x3a3a…4080Runs code on every swap Unichain beforeSwap 1 7mo 0x7480…00ccRuns code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDeltaafterSwapDelta 1 7mo 0x94ae…d540Runs code on every swap · Runs at pool creation Unichain afterInitafterAddLiqafterRemoveLiqafterSwap 1 7mo LimitOrderHookRuns code on every swap Unichain afterSwap 1 7mo 0xaafe…0ac8Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity Unichain beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap+1 1 7mo LogCumHookA dynamic fee hook that sets swap fees proportional to cumulative logarithmic price impact with time decay. It tracks directional market imbalance across swaps and charges higher fees when swaps increase imbalance, using a configurable illiquidity metric and min/max fee bounds. Unichain beforeInitafterInitbeforeSwapafterSwap 1 7mo 0x1112…28c4Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation Unichain beforeInitbeforeAddLiqbeforeSwapafterSwap+1 1 7mo 0xd2ab…0a00Can block LP withdrawals · Gates who can add liquidity Unichain beforeAddLiqbeforeRemoveLiq 1 7mo 0x8922…ca00Can block LP withdrawals · Gates who can add liquidity Unichain beforeAddLiqbeforeRemoveLiq 1 7mo 0x308a…cac8Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity Unichain beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap+1 1 7mo 0xd376…4ac8Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity Unichain beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap+1 1 7mo 0xca5d…30c0Runs code on every swap · Sets its own swap fee · Runs at pool creation Unichain beforeInitafterInitbeforeSwapafterSwap 1 7mo 0x8987…d3c0Runs code on every swap · Sets its own swap fee · Can block LP withdrawals · Runs at pool creation Unichain afterInitbeforeRemoveLiqafterRemoveLiqbeforeSwap+1 1 7mo EnhancedFeeDistributionHookV2Captures swap fees via afterSwapReturnsDelta (pool must have fee=0), buffers them per token, and converts to a single configured reward token via a nested V4 pool swap when a buffer threshold is met. Rewards are distributed to in-range liquidity providers using ERC-6909 accounting and tick-based reward growth tracking, with claims settled through PositionManager NFT ownership. Unichain beforeAddLiqafterAddLiqbeforeRemoveLiqafterRemoveLiq+3 1 8mo DynamicFeeHookAdjusts LP swap fees dynamically based on on-chain price volatility using EWMA of sqrt price changes; collects a configurable owner-controlled protocol fee share from the spread above the base fee into a treasury address. In practice, the afterInitialize flag is absent from the address bitmask, so pool configs are never populated and the hook always returns a hardcoded 3000 bps fallback fee. Unichain beforeInitbeforeSwapafterSwap 1 8mo 0xc1e1…80c0Runs code on every swap · Sets its own swap fee Unichain beforeSwapafterSwap 1 8mo 0x3771…0040Runs code on every swap Unichain afterSwap 1 9mo 0x376f…8040Runs code on every swap Unichain afterSwap 1 9mo VolatilityFeeHookA Uniswap v4 hook that combines two fee mechanisms: a dynamic LP fee set by an owner/operator (via off-chain volatility signals) overriding the pool's swap fee each trade, and an additional protocol fee taken as a percentage of each swap's output amount accumulated as ERC-6909 claims for the hook owner. Unichain afterInitbeforeSwapafterSwapafterSwapDelta 1 9mo VolatilityDynamicFeeLimitOrderHookA Unilaunch singleton hook that adjusts LP fees dynamically based on a volatility oracle with configurable surge multipliers (activated during high-volatility periods), enforces a one-block trading delay on pool launch, and triggers limit order execution via ILimitOrderManager on every swap. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookUnilaunch singleton hook that implements volatility-responsive dynamic LP fees: applies a base fee plus a surge multiplier when large tick movements are detected in afterSwap, decaying it over a configurable duration. Blocks trading for one block after pool initialization as an anti-sandwich measure. Integrates with an external limit order manager for limit order execution. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookSingleton hook for Unilaunch pools that dynamically adjusts LP fees based on volatility, applying surge fee multipliers after high-volatility CAP events detected by an on-chain oracle. Executes limit orders via an external LimitOrderManager after each swap, and gates trading until a configured block number. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookRuns code on every swap · Sets its own swap fee · Runs at pool creation Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookAdjusts LP fees dynamically based on a configurable base fee plus a time-decaying surge fee triggered by volatility cap events detected via a VolatilityOracle. Also executes on-chain limit orders through a LimitOrderManager on each swap, and temporarily blocks trading until a configured block number to prevent launch sniping. Unichain beforeInitbeforeSwapafterSwap 1 9mo 0xaed7…80c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0xede6…82c8Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals Unichain beforeRemoveLiqbeforeSwapafterSwapswapDelta 1 9mo 0x56eb…80c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0x5902…00c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0x3b58…c0ccRuns code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDeltaafterSwapDelta 1 9mo 0x75ac…80ccRuns code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDeltaafterSwapDelta 1 9mo 0x0ec6…00c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0x15ad…40c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0x52b8…00c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0x9926…80c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1 9mo 0xe06b…00c8Runs code on every swap · Can take tokens from swaps Unichain beforeSwapafterSwapswapDelta 1