UniHooks

Every Uniswap v4 hook, live

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

AgeHookChainPermissionsPools
3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol that records the initial pool tick after initialization via an external liquidity bootstrapper contract. All hook callbacks are no-ops; no swap-time logic is implemented. Base afterInit 10 3mo SaturnOmnichainV4HookUniswap v4 hook for the Saturn Omnichain project that activates only on pool initialization (afterInitialize). It delegates liquidity bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract and records the initial tick. No swap or liquidity modification logic is active. Robinhood afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that enables afterInitialize but performs no logic in any hook callback. Pool initialization tick is recorded externally via a separate liquidity bootstrapper contract called through initializePools(). Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that implements only afterInitialize as a pass-through. Provides an initializePools() function that delegates to an external ISaturnOmnichainLiquidityBootstrapper to bootstrap liquidity and record the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project with only the afterInitialize flag active (implemented as a no-op). Includes a separate initializePools() function that delegates to an external LiquidityBootstrapper to record the initial tick. Swap behavior is entirely vanilla. Robinhood afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol that only sets the afterInitialize flag (as a no-op selector return). Holds pool configuration constants and delegates liquidity bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract via initializePools(). Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers afterInitialize permission to validate hook address constraints at deployment. The afterInitialize callback is a no-op; actual pool setup is performed via initializePools(), which delegates liquidity bootstrapping to a separate ISaturnOmnichainLiquidityBootstrapper contract. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project that registers an afterInitialize callback (no-op) and provides an `initializePools()` function for bootstrapping initial liquidity and recording the pool tick via an external liquidity bootstrapper contract. Robinhood afterInit 10 3mo SaturnOmnichainV4HookA minimal hook with only afterInitialize enabled (as a no-op). Provides an initializePools() function that delegates liquidity bootstrapping to an external LiquidityBootstrapper contract and records the initial tick. No swap logic or access control. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook with a no-op afterInitialize callback. Pool initialization is triggered externally via initializePools(), which calls an ISaturnOmnichainLiquidityBootstrapper contract to bootstrap liquidity and records the resulting initial tick and pool initialization status on-chain. Ethereum afterInit 10 3mo SaturnOmnichainV4HookMinimal Uniswap v4 hook for the Saturn Omnichain protocol. Only implements the afterInitialize flag (as a no-op callback). Pool initialization and initial tick recording are handled externally via `initializePools()`, which calls an external `ISaturnOmnichainLiquidityBootstrapper` contract. Robinhood afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for Saturn Omnichain that hooks only into afterInitialize. Pool initialization is delegated to an external liquidity bootstrapper contract, whose returned tick is stored on-chain. All swap, liquidity, and donate callbacks are no-ops. Base afterInit 10 3mo SaturnOmnichainV4HookHook for the Saturn Omnichain project that records the initial tick after pool initialization via an external liquidity bootstrapper. Only afterInitialize is active; all swap and liquidity callbacks are no-ops that return their selectors unchanged. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project that enables the afterInitialize permission (as a no-op callback), with pool bootstrapping performed via a separate initializePools() function that calls a dedicated ISaturnOmnichainLiquidityBootstrapper to record the initial pool tick. Robinhood afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol that records the initial tick after liquidity bootstrapping. The afterInitialize callback is a no-op; liquidity initialization is triggered externally via initializePools(), which calls an ISaturnOmnichainLiquidityBootstrapper contract to bootstrap pools and store the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that implements afterInitialize as a no-op and exposes an initializePools() function that calls an external liquidity bootstrapper and records the initial tick and poolInitialized flag. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for Saturn Omnichain that enables only the afterInitialize callback (a no-op returning only the selector) and exposes an initializePools() function that delegates liquidity bootstrapping to a separate contract and records the initial tick. All swap, liquidity, and donate callbacks are no-ops. Robinhood afterInit 10 3mo SaturnOmnichainV4HookHook for the Saturn Omnichain protocol that records the initial tick after pool initialization via an external liquidity bootstrapper contract. All hook callbacks are no-ops; the only active flag is afterInitialize, which returns the selector without modifying state. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that only implements afterInitialize to support pool setup. It stores the initial tick and a poolInitialized flag when called via initializePools(), which delegates to an external liquidity bootstrapper. No swap-side logic is present. Ethereum afterInit 10 3mo SaturnOmnichainV4HookUniswap v4 hook for the Saturn Omnichain project that only uses afterInitialize. All swap and liquidity callbacks are no-ops. On pool initialization, it delegates to an external LiquidityBootstrapper to bootstrap liquidity and records the initial tick. Robinhood afterInit 10 3mo SaturnOmnichainV4HookHook with only afterInitialize permission. Exposes an initializePools() function that delegates to an external LiquidityBootstrapper contract to set up liquidity positions, recording the initial tick and marking the pool as initialized. All swap, liquidity, and donate callbacks are pure no-op stubs. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that registers afterInitialize (as a no-op callback) and exposes an initializePools() function that delegates to an external ISaturnOmnichainLiquidityBootstrapper to bootstrap liquidity and record the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain protocol that registers afterInitialize permission but performs no swap-modifying logic. Exposes an initializePools() function that delegates to an external LiquidityBootstrapper contract to set up initial liquidity and record the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project with only the afterInitialize flag set. The afterInitialize callback is a pure no-op (returns selector only). Pool initialization is triggered externally via initializePools(), which delegates to a LIQUIDITY_BOOTSTRAPPER contract to bootstrap liquidity and record the initial tick. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project that implements only afterInitialize (returning the selector as a no-op). All swap, liquidity, and donate callbacks are pure stubs. Pool initialization is managed externally via a LiquidityBootstrapper contract called through initializePools(). Robinhood afterInit 10 3mo Rivers LaunchHookSingleton Uniswap v4 hook for Rivers protocol launch pools, managing a pre/post-graduation lifecycle. During pre-launch phases, liquidity and swaps are restricted to the pool controller. After graduation, public swaps are enabled with protocol and creator fees taken as BeforeSwapDelta/AfterSwapDelta values and a dynamic LP fee override returned from beforeSwap. Robinhood beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+3 10 3mo BagsV4HookA shared Uniswap v4 hook for Bags platform pools that enforces full-range, permanently locked liquidity, overrides LP fees to 0, and charges a 2% fee on the WETH leg of every swap, split 50/50 between the Bags vault and a per-pool creator fee share recipient. Robinhood beforeInitbeforeAddLiqafterAddLiqbeforeRemoveLiq+4 10 4mo BasedBidHookRuns code on every swap · Can take tokens from swaps · Sets its own swap fee · Runs at pool creation Robinhood afterInitbeforeSwapafterSwapswapDelta+1 10 5mo 0xd689…4088Runs code on every swap · Can take tokens from swaps Unichain beforeSwapswapDelta 10 5mo 0x4726…8088Runs code on every swap · Can take tokens from swaps Base beforeSwapswapDelta 10 5mo LivoSwapHookSingleton Uniswap v4 hook for tokens graduated via the Livo launchpad that collects a 0.5% LP fee (split 50/50 between creator and treasury) on all swaps, plus an optional time-limited buy/sell tax configurable per token. Swaps are blocked before token graduation. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 10 5mo BondingCurveHookA bonding curve hook for memecoin launchpad pools. Pre-graduation, it overrides all swap math via beforeSwapReturnsDelta using a constant-product curve; post-graduation, swaps fall through to standard V4 math. Includes a block-number anti-snipe gate and blocks external LP additions until graduation. Base beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+2 10 5mo 0xfeb3…d0ccRuns code on every swap · Can take tokens from swaps · Sets its own swap fee · Runs at pool creation Base afterInitbeforeSwapafterSwapswapDelta+1 10 5mo 0xfa50…4088Runs code on every swap · Can take tokens from swaps Arbitrum beforeSwapswapDelta 10 5mo 0xa9b5…dfccRuns code on every swap · Can take tokens from swaps · Sets its own swap fee · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Base afterInitbeforeAddLiqafterAddLiqbeforeRemoveLiq+5 10 6mo 0x0c80…1fccRuns code on every swap · Can take tokens from swaps · Sets its own swap fee · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Base afterInitbeforeAddLiqafterAddLiqbeforeRemoveLiq+5 10 7mo EMADynamicFeeHookEMA-based dynamic fee hook for Uniswap V4. Calculates swap fees using Exponential Moving Average of price, with 30-step fee schedule (0.01%-3.00%) and 300-block anti-JIT protection via tx.origin. No owner, no admin functions, fully immutable. Unichain afterInitbeforeAddLiqbeforeRemoveLiqafterRemoveLiq+2 10 7mo 0xcb1a…3a80Runs code on every swap · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Base beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+1 10 7mo BVCC Dynamic Fee Hook (Arbitrum)Dynamically adjusts LP fees per-swap based on current gas price tiers and penalizes high-frequency traders, while collecting an additional protocol fee in afterSwap from the swap output. Arbitrum afterInitbeforeSwapafterSwapafterSwapDelta 10 7mo TokiHookUniswap v4 custom curve hook implementing Pendle-style fixed-rate yield trading for Principal Tokens. Uses a custom AMM curve with optional ERC4626 rehypothecation to boost LP yields, maintains a TWAP oracle for logarithmic implied rates, and enforces curator-controlled pool lifecycle with pause and maturity expiry. Ethereum afterInitbeforeAddLiqbeforeSwapswapDelta 10 8mo XDHookA launchpad hook that collects swap fees (initially 2%) via ERC-6909 claims, preferring WETH when possible. Pre-graduation, pool initialization, liquidity, and swaps are restricted to allowlisted actors via an authority registry; post-graduation, access control is lifted and the fee is capped at 0.15%. Base beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+3 10 9mo SpawnHookStaticFeeV2A Uniswap v4 hook for the Spawn token-launch platform that applies directional static LP fees (different rates for buying vs selling the spawn token, configured at pool initialization). Protocol fees are explicitly disabled (PROTOCOL_FEE_NUMERATOR = 0). The hook also supports a temporary MEV-protection module that can raise LP fees during the first hour after pool creation. Base beforeInitbeforeAddLiqbeforeSwapafterSwap+2 10 9mo UPeg HookCalls `start()` on a configured token when the first liquidity is added to that token's pool, and updates an internal random seed on each swap involving the configured token. Both actions are no-ops when no token is configured or for pools not involving the token. Ethereum afterAddLiqafterSwap 10 10mo 0xd6c6…7a44Runs code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity · Runs at pool creation Ethereum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+2 10 13mo 0xe3e3…0888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity Unichain beforeAddLiqbeforeSwapswapDelta 10 18mo BackGeoOracleAn oracle hook for Uniswap v4 that records TWAP price observations and executes backrun protection after large swaps. When tick movement exceeds a threshold, the hook performs an inverse counter-swap and credits recovered value to the user as ERC-6909 tokens via the router's `msgSender()` interface. Ethereum beforeInitafterInitbeforeAddLiqbeforeRemoveLiq+3 10 18mo TokenFabToken launchpad hook that deploys new ERC-20 tokens with a configurable bonding curve pool. Blocks external pool initialization and liquidity additions, reserving those operations for its own factory flow. On each swap it collects a 1% fee (split 50/50 between creator and platform via afterSwapReturnsDelta), and automatically migrates liquidity to a new full-range AMM pool once the bonding curve supply is exhausted. Base beforeInitbeforeAddLiqafterSwapafterSwapDelta 10 18mo PolitiswapA political meme token trading hook that deploys ETH/POL token pools and tracks daily net ETH inflows per pool. Takes a 2% fee on all swaps (ETH→POL in beforeSwap, POL→ETH in afterSwap), forwards fees to a collector address, and records flows to determine each day's highest-inflow pool. Holders of the winning pool's token can claim governance token rewards. Base beforeSwapafterSwapswapDeltaafterSwapDelta 10 19mo 0xaf2b…0880Runs code on every swap · Gates who can add liquidity Arbitrum beforeAddLiqbeforeSwap 10 19h 0xe349…1880Runs code on every swap · Gates who can add liquidity · Runs at pool creation Base afterInitbeforeAddLiqbeforeSwap 9