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
14mo 0xce0f…8080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 14mo 0x5857…0080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 14mo 0x7059…6dc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0xa093…adc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x7880…edc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0xe062…edc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x19e3…edc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x0b2c…6dc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0xb94a…6dc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x28f7…8080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 14mo 0x50bd…6dc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x2707…adc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0x50ee…edc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0xf680…6dc1Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+3 1 14mo 0xf70c…edc3Runs code on every swap · Takes a cut when LPs withdraw · Gates who can add liquidity · Adjusts deposit amounts · Runs at pool creation Arbitrum beforeInitbeforeAddLiqafterAddLiqafterRemoveLiq+4 1 14mo 0x1d3c…4a80Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity Arbitrum beforeAddLiqbeforeRemoveLiqbeforeSwap 1 14mo ArbitrageHookAfter each swap, queries an oracle to determine if the pool price has deviated from a target; if so, withdraws funds from a companion INexArbitrage contract and executes a rebalancing swap via poolManager.swap() to push the pool price back toward the oracle-derived target. Arbitrum afterSwap 1 15mo 0x9fb5…ca80Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity Arbitrum beforeAddLiqbeforeRemoveLiqbeforeSwap 1 15mo 0x20b5…8a80Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity Arbitrum beforeAddLiqbeforeRemoveLiqbeforeSwap 1 15mo 0xa642…4a80Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity Arbitrum beforeAddLiqbeforeRemoveLiqbeforeSwap 1 15mo EulerSwapA custom curve AMM hook for Uniswap v4 that routes swaps entirely through Euler Finance EVaults, using its own pricing curve (CurveLib/QuoteLib) and reserve tracking instead of Uniswap's CLMM. The hook returns a BeforeSwapDelta to override pool accounting, deposits input tokens into Euler vaults, and withdraws output tokens from Euler vaults. Each hook instance is a minimal proxy delegating to a shared EulerSwap implementation; native CLMM liquidity and direct pool initialization are blocked. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom AMM hook for Euler Finance that handles full swap execution via beforeSwap: it computes amounts using a concentration-based price curve, deposits input tokens into Euler lending vaults, withdraws output tokens from Euler vaults, and returns a BeforeSwapDelta so the pool manager performs no additional swap math. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom curve AMM hook backed by Euler Finance vaults. Swaps are handled entirely in beforeSwap using a custom bonding curve, with input tokens deposited into and output tokens withdrawn from Euler vaults; beforeSwapReturnsDelta bypasses standard Uniswap v4 pool accounting. Prevents standard liquidity additions, donations, and external pool initialization. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA Uniswap v4 hook implementing a custom AMM using a bonding curve backed by Euler lending vaults. Replaces standard concentrated liquidity: beforeSwap handles the entire swap by depositing input tokens into an Euler vault and withdrawing output tokens, then verifies a custom curve invariant, returning a full BeforeSwapDelta to the pool manager. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook that routes swaps through Euler Finance lending vaults. Each instance is a factory-deployed proxy managing a pair of Euler vaults; swaps are priced via a bespoke curve invariant and settled by depositing input tokens into and withdrawing output tokens from the corresponding vaults. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook for Uniswap v4 that routes swaps through Euler Finance lending vaults. It fully handles swap execution in beforeSwap via BeforeSwapDelta, implementing its own bonding curve invariant, and blocks native concentrated liquidity positions by reverting on beforeAddLiquidity and beforeDonate. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo 0x15e2…5540Runs code on every swap · Runs at pool creation Arbitrum afterInitafterAddLiqafterRemoveLiqafterSwap 1 15mo DynamicFeeHookA Uniswap v4 hook that records the pre-swap tick in transient storage and calls a LimitOrderManager to execute limit orders triggered by tick crossings after each swap. The contract owner can also update the pool's LP fee dynamically via updateDynamicLPFee(). Arbitrum beforeSwapafterSwap 1 15mo LimitOrderHookRecords the pre-swap tick via transient storage in beforeSwap, then in afterSwap calls an external LimitOrderManager to execute any limit orders whose tick range was crossed during the swap. Arbitrum beforeSwapafterSwap 1 15mo EulerSwapCustom AMM hook backed by Euler Protocol vaults implementing a concentrated-style curve. On each swap, input tokens are deposited into an Euler vault and output tokens are withdrawn from another vault; the hook processes the full swap via beforeSwap return delta, bypassing Uniswap's CLAMM, and verifies the curve invariant after every trade. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapEulerSwap is a custom-curve AMM hook that routes swaps through Euler Finance vault positions. Rather than using Uniswap v4 concentrated liquidity, it deposits input tokens into and withdraws output tokens from Euler vaults, enforcing a configurable bonding curve in beforeSwap with delta returns. Standard liquidity positions and donations are blocked. Arbitrum beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo 0x199c…d540Runs code on every swap · Runs at pool creation Arbitrum afterInitafterAddLiqafterRemoveLiqafterSwap 1 15mo 0x459d…8080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo VTSwapHookA custom-curve Uniswap v4 hook that implements an AMM for swapping between a Vesting Token (VT) and its underlying token (T), delegating pricing to an external helper contract. Provides its own LP token (ERC-20) and manages reserves directly, replacing the standard concentrated liquidity curve. Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo VTSwapHookA custom-curve AMM hook for swapping between a Vesting Token (VT) and its underlying Token (T). Implements reserve-based pricing via an external helper contract, issues ERC-20 LP tokens, and fully overrides Uniswap v4 swap execution via beforeSwapReturnsDelta. Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo 0xf79f…7a88Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo 0x6d01…1540Runs code on every swap · Runs at pool creation Arbitrum afterInitafterAddLiqafterRemoveLiqafterSwap 1 15mo 0xe0ac…ba88Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo 0x471f…9540Runs code on every swap · Runs at pool creation Arbitrum afterInitafterAddLiqafterRemoveLiqafterSwap 1 15mo 0x055d…7a88Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo 0x6405…fa88Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 1 15mo 0xb5db…e888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation Arbitrum beforeInitbeforeAddLiqbeforeSwapswapDelta 1 15mo 0x61b1…a540Runs code on every swap · Runs at pool creation Arbitrum beforeInitafterAddLiqafterRemoveLiqafterSwap 1 15mo 0xb820…c080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo 0xbb77…4080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo 0xbf67…c080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo 0x0046…4080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo 0xe16e…1540Runs code on every swap · Runs at pool creation Arbitrum afterInitafterAddLiqafterRemoveLiqafterSwap 1 15mo 0x6558…c080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1 15mo 0x8d14…0080Runs code on every swap · Sets its own swap fee Arbitrum beforeSwap 1