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