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
15mo
0x7ac0…8080Runs code on every swap · Sets its own swap fee
Arbitrum
beforeSwap
1
15mo
0x5d51…c080Runs code on every swap · Sets its own swap fee
Arbitrum
beforeSwap
1
15mo
0x5df3…8080Runs code on every swap · Sets its own swap fee
Arbitrum
beforeSwap
1
15mo
0x902e…6540Runs code on every swap · Runs at pool creation
Arbitrum
beforeInitafterAddLiqafterRemoveLiqafterSwap
1
15mo
0x86be…6888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation
Arbitrum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
15mo
0x43b1…2540Runs code on every swap · Runs at pool creation
Arbitrum
beforeInitafterAddLiqafterRemoveLiqafterSwap
1
15mo
0xb0b9…e888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation
Arbitrum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
16mo
TestHookA minimal test hook that increments an on-chain counter and emits events on beforeInitialize and beforeAddLiquidity calls. Has no swap hooks and does not modify swap execution.
Arbitrum
beforeInitbeforeAddLiq
1
16mo
0xeec2…4840Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqafterSwap
1
16mo
0x260f…8840Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqafterSwap
1
16mo
0x4f43…8840Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqafterSwap
1
16mo
LimitOrderHookUniswap v4 hook that records the pre-swap tick in transient storage and triggers limit order execution via an external LimitOrderManager after each swap, filling orders whose price range was crossed. Supports role-gated dynamic LP fee updates via updateDynamicLPFee().
Arbitrum
beforeSwapafterSwap
1
16mo
LimitOrderHookA Uniswap v4 hook that enables on-chain limit orders by recording the current tick before each swap (via transient storage) and triggering execution of crossed limit orders through an external LimitOrderManager after each swap. A privileged fee manager role can update the pool's dynamic LP fee via poolManager.updateDynamicLPFee().
Arbitrum
beforeSwapafterSwap
1
16mo
LimitOrderHookA Uniswap v4 hook that records the current tick before each swap via transient storage, then triggers limit order execution in afterSwap based on tick movement. Includes a privileged role that can update the pool's dynamic LP fee via poolManager.updateDynamicLPFee().
Arbitrum
beforeSwapafterSwap
1
16mo
0x8581…0ac0Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap
1
16mo
0x6d43…0ac0Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap
1
17mo
0xfb79…00c0Runs code on every swap · Sets its own swap fee
Arbitrum
beforeSwapafterSwap
1
17mo
BaseHookMockA minimal BaseHook mock implementation for Uniswap v4 that stubs beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, and afterSwap as no-ops. The beforeSwap returns a hardcoded fee value (4000) without the OVERRIDE_FEE_FLAG set, so it has no effect on swap execution.
Arbitrum
beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap
1
18mo
0x3c5d…4044Runs code on every swap · Can take tokens from swaps
Arbitrum
afterSwapafterSwapDelta
1
18mo
0xccc7…48c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xee0e…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x3fba…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xf30e…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x7e19…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xfb33…08c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x808a…08c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x80ff…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x776c…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xbf11…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xac8b…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x3337…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x767f…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xd7be…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
WETHHookA Uniswap v4 hook that enables seamless wrapping and unwrapping of ETH and WETH in a dedicated zero-fee pool, intercepting swaps to perform 1:1 ETH↔WETH conversion while blocking direct liquidity operations.
Arbitrum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
18mo
0x1fac…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0xd423…c8c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
18mo
0x037b…00ccRuns code on every swap · Can take tokens from swaps
Arbitrum
beforeSwapafterSwapswapDeltaafterSwapDelta
1
18mo
0x3589…88c0Runs code on every swap · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapafterSwap
1
19mo
0xac63…00ccRuns code on every swap · Can take tokens from swaps
Arbitrum
beforeSwapafterSwapswapDeltaafterSwapDelta
1
19mo
Slippage Fee Hook (Arbitrum)Dynamically computes LP fees before each swap based on the simulated price impact (tick difference between current and post-swap price), charging higher fees for larger swaps to reduce impermanent loss for liquidity providers. Requires pools to use dynamic fees and reverts any swap that would cause slippage exceeding 5%.
Arbitrum
afterInitbeforeSwap
1
19mo
0xa9db…c540Runs code on every swap
Arbitrum
afterAddLiqafterRemoveLiqafterSwap
1
19mo
YieldSwapHookA custom AMM hook for Uniswap v4 that implements a time-decaying yield pricing curve for SY (Standardized Yield) and PT (Principal Token) pairs. Swap amounts are computed via a logarithmic formula whose rate scalar and anchor decay linearly from epoch start to zero at epoch end, with reserves managed internally by the hook.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
0xb974…c440Runs code on every swap
Arbitrum
afterAddLiqafterSwap
1
19mo
YieldSwapHookA custom AMM hook for yield products (SY and PT tokens) that implements a time-weighted pricing formula using a logarithmic curve. Supports only unidirectional (SY→PT), exact-input swaps; price decays linearly from epoch start to end. Liquidity is managed via ERC-20 shares using a Uniswap V2-style formula.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
YieldSwapHookCustom AMM hook for yield token pairs (SY and PT), implementing a time-weighted pricing formula with a decaying rate anchor (Pendle-style curve). Supports only exact-input SY-to-PT swaps; LP shares are issued as ERC20 tokens managed by the hook itself.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
0x9c53…4888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity
Arbitrum
beforeAddLiqbeforeSwapswapDelta
1
19mo
BlackListHookA beforeSwap hook that blocks blacklisted addresses from swapping on a per-pool basis. The swapper's address must be ABI-encoded in hookData; the pool owner manages the blacklist via setBlackListStatusForAddress. Swaps from unlisted addresses proceed normally.
Arbitrum
beforeSwap
1
19mo
0x4b01…00c0Runs code on every swap
Arbitrum
beforeSwapafterSwap
1
19mo
0xc13c…c0c0Runs code on every swap
Arbitrum
beforeSwapafterSwap
1
19mo
0xfbb2…00c0Runs code on every swap
Arbitrum
beforeSwapafterSwap
1