Explore hooks
Every hook that has been attached to at least one Uniswap v4 pool.
AgeHookChainPermissionsPools
36d
0x1110…28ccRuns code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation
Ethereum
beforeInitbeforeAddLiqbeforeSwapafterSwap+2
19
13mo
NFTStrategyHookRuns code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation
Ethereum
beforeInitbeforeAddLiqbeforeSwapafterSwap+1
19
21mo
BunniHookBunni v2 hook that implements a custom AMM in Uniswap v4, handling swaps entirely in `beforeSwap` via custom liquidity density functions (LDF), TWAP oracles, surge fees, and am-AMM for MEV recapture. Supports auto-rebalancing via FloodPlain and optional per-pool hooklet extensions.
Ethereum
afterInitbeforeAddLiqbeforeSwapswapDelta
19
14d
0xa176…2888Runs code on every swap · Can take tokens from swaps · Sets its own swap fee · Gates who can add liquidity · Runs at pool creation
Ethereum
beforeInitbeforeAddLiqbeforeSwapswapDelta
18
31d
HalcyonHookRuns code on every swap · Sets its own swap fee · Gates who can add liquidity · Runs at pool creation
Ethereum
afterInitbeforeAddLiqbeforeSwapafterSwap
18
2mo
LaunchHookSingleton hook for token launch pools created by a LaunchFactory. Takes trading fees on the stock side (currency0) on every swap and splits them 30% to a platform treasury, a creator-chosen share to the pool creator recipient, and the remainder to token holders via a pull-based FeeDistributor. Exact-output sells are not supported.
Ethereum
beforeInitbeforeSwapafterSwapswapDelta+1
18
5mo
V4SellBlockHookBlocks all token-to-ETH swaps (sells) by reverting in beforeSwap when zeroForOne is false, while permitting ETH-to-token swaps (buys). Intended for use as a honeypot mechanism, deployed once via CREATE2 and reused across pools to prevent holders from selling their tokens.
Ethereum
beforeSwap
18
2mo
TripoolsAntiSnipeHookAnti-snipe and dynamic-fee tax hook serving all TripoolsLaunchFactory pools. Enforces a 6-second anti-snipe window with a flat 50% tax on non-whitelisted buys (100% to protocol treasury), and a cycling tiered tax schedule on ordinary buys and sells, split 20%/80% between protocol treasury and token creator, always collected in ETH via BeforeSwapDelta and AfterSwapDelta.
Ethereum
beforeSwapafterSwapswapDeltaafterSwapDelta
17
18d
EtherealFactoryRuns code on every swap · Can take tokens from swaps · Runs at pool creation
Ethereum
beforeInitbeforeSwapafterSwapswapDelta+1
16
29d
HookVolveHookV4Runs 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 · Handles donations to LPs
Ethereum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+4
16
3mo
LaunchpadHookA launchpad hook that collects configurable swap fees on registered token pools, splits fees between token creators and a platform treasury, distributes cuts through a three-tier referral chain, and records quote volume to a factory contract for graduation tracking.
Ethereum
beforeSwapafterSwapswapDeltaafterSwapDelta
16
4mo
ClankerHookStaticFeeV2A Clanker platform hook that enforces per-pool static LP fees with separate buy/sell rates for the Clanker token, collects a protocol fee on each swap via beforeSwap/afterSwap return deltas, and supports an optional MEV-protection module that temporarily raises fees on newly created pools.
Ethereum
beforeInitbeforeAddLiqbeforeSwapafterSwap+2
16
24d
ReplicaWhitelistHookA Uniswap v4 hook that restricts swaps to whitelisted addresses. It checks `tx.origin` against an external `ISwapWhitelist` contract in `beforeSwap`, reverting with `SwapperNotWhitelisted` for non-whitelisted callers. No modification to swap execution occurs beyond access control.
Ethereum
beforeSwap
15
56d
GweiFeeHookThe shared Uniswap v4 hook for the gwei.fun token launchpad. On every swap it takes a fee in beforeSwap via BeforeSwapDelta — composed of a platform fee plus a per-pool creator tax with an optional linearly-decaying anti-snipe rate — and splits the proceeds between the pool creator and a protocol buyback vault, accumulating them as ERC-6909 claims redeemable lazily.
Ethereum
beforeInitbeforeSwapswapDelta
15
2mo
0x1030…4088Runs code on every swap · Can take tokens from swaps · Sets its own swap fee
Ethereum
beforeSwapswapDelta
15
3mo
NFTXV4HookNFTX's Uniswap v4 hook for NFT collection token pools, managing pool lifecycle (register, initialize, deregister), dynamic LP fees with per-address exemptions, an additional AMM fee credited to a beneficiary, deferred LP fee donations, and a truncated price oracle. Each pool is tied to one NFT collection.
Ethereum
beforeInitbeforeAddLiqafterAddLiqbeforeRemoveLiq+4
15
3mo
SaturnOmnichainV4HookA hook with only the afterInitialize permission bit set, where the callback itself is a no-op. The contract exposes an initializePools() function that calls an external ISaturnOmnichainLiquidityBootstrapper to obtain and store the initial tick, but this is independent of the hook callback.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that holds only the afterInitialize permission but performs no logic within that callback. Pool initialization is delegated to an external LiquidityBootstrapper contract via initializePools(), which records the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Saturn Omnichain project hook that registers the afterInitialize callback (implemented as a no-op). Exposes an initializePools() function callable by anyone, which delegates to an external LiquidityBootstrapper contract to bootstrap liquidity and record the initial pool tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers an afterInitialize callback (no-op) and exposes an initializePools() function that delegates to an external liquidity bootstrapper contract to seed initial pool positions.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain protocol with only an afterInitialize permission. The afterInitialize callback is a no-op; actual pool setup is handled externally via initializePools(), which calls a LiquidityBootstrapper contract and records the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project with only afterInitialize enabled as a no-op stub. Liquidity bootstrapping is delegated to an external ISaturnOmnichainLiquidityBootstrapper contract called via initializePools(), which records the initial tick. Has no swap-related logic.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookMinimal hook for Saturn Omnichain that implements only afterInitialize as a no-op. Pool bootstrapping is performed via a separate ISaturnOmnichainLiquidityBootstrapper contract that sets initial tick and liquidity; the hook records initialTick and a poolInitialized flag.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that holds an afterInitialize permission (callback is a no-op) and exposes an initializePools() entry point that delegates liquidity bootstrapping to an external contract and records the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers an afterInitialize permission (the callback is a no-op). Pool initialization and liquidity bootstrapping are performed via a separate `initializePools()` function that calls an external LiquidityBootstrapper contract to set the initial tick and pool positions.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers the afterInitialize permission but performs no action in that callback. Pool initialization and initial tick recording are handled externally via the initializePools() function, which delegates to an immutable LiquidityBootstrapper contract. All hook callbacks are passive no-ops.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookMinimal hook for the Saturn Omnichain project that only registers an afterInitialize permission. The afterInitialize callback is a no-op; pool initialization and liquidity bootstrapping are handled externally via a separate LiquidityBootstrapper contract.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project that records pool initialization state via an external liquidity bootstrapper contract. Only afterInitialize is active; no swap or liquidity callbacks modify swap behavior.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that records initial tick data. Implements only afterInitialize (a no-op returning the selector), while a separate initializePools() function triggers an external bootstrapper contract to seed liquidity and store the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that only implements afterInitialize. It delegates liquidity bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract and records the initial tick. No swap, fee, or liquidity logic is active.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that records the pool's initial tick after initialization, delegating liquidity setup to an external bootstrapper contract. No swap, liquidity modification, or fee logic is implemented.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for Saturn Omnichain that registers only the afterInitialize permission but performs no action in the callback. The contract separately exposes an initializePools() function that calls an external ISaturnOmnichainLiquidityBootstrapper to coordinate initial liquidity bootstrapping.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol with an afterInitialize callback that is a no-op stub. The contract exposes an initializePools() function that calls an external liquidity bootstrapper and stores the resulting initial tick and initialization status on-chain.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only `afterInitialize` is enabled (as a no-op returning the selector). Liquidity bootstrapping is delegated to an external `ISaturnOmnichainLiquidityBootstrapper` contract via the `initializePools()` function. All swap and liquidity callbacks are pure no-ops.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project with only the afterInitialize permission enabled (implemented as a no-op stub returning the selector). Pool initialization is bootstrapped via an external ISaturnOmnichainLiquidityBootstrapper contract through a separate initializePools() call; the hook does not modify swap or liquidity behavior.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that records the initial tick after pool initialization via an external liquidity bootstrapper contract. Has no swap-time logic.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project. The afterInitialize callback is a no-op. The contract separately exposes an initializePools() function that calls an external liquidity bootstrapper and stores the returned tick as initialTick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol. Registers the `afterInitialize` permission but the callback is a no-op. Pool state (initial tick, initialized flag) is recorded by the separate `initializePools()` function which delegates to a `LiquidityBootstrapper` contract.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol. Only the afterInitialize flag is set; its callback is a pure no-op returning the selector. Pool initialization is delegated to an external ISaturnOmnichainLiquidityBootstrapper contract via the public initializePools() function.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project that only implements afterInitialize. All swap, liquidity, and donate callbacks are no-ops. Provides an initializePools() function that delegates to an external ISaturnOmnichainLiquidityBootstrapper to bootstrap liquidity and record the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers an afterInitialize permission but performs no logic in the callback. Pool initialization and initial tick recording are handled separately via the `initializePools()` function, which calls an external `ISaturnOmnichainLiquidityBootstrapper` contract. All other hook callbacks (swap, liquidity, donate) are no-ops.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only the afterInitialize permission is set, but the afterInitialize callback is a no-op (returns selector only). A separate permissionless initializePools() function calls ISaturnOmnichainLiquidityBootstrapper.bootstrap() to bootstrap liquidity and records the returned initial tick. All swap, liquidity, and donate callbacks are no-ops.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only the afterInitialize flag is active; the callback is a no-op returning only the selector. The contract also exposes an `initializePools()` function (separate from the hook callback) that delegates to an external liquidity bootstrapper to bootstrap liquidity and record an initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookThe afterInitialize hook does nothing — it is a pure stub returning only the selector. The contract separately exposes an initializePools() function that calls an external LiquidityBootstrapper to record an initial tick, but this is unrelated to the hook callback.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that only implements afterInitialize. All swap and liquidity callbacks are pure no-ops. Pool initialization is bootstrapped via an external LiquidityBootstrapper contract that sets the initial tick.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that sets the afterInitialize permission bit but performs no logic in the callback. Pool initialization and tick recording are handled externally via the `initializePools()` function, which calls the liquidity bootstrapper contract.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project with only the afterInitialize permission enabled (no-op callback). Provides an external initializePools() function that delegates to a liquidity bootstrapper contract to set the initial tick and seed liquidity.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project with only afterInitialize enabled (as a no-op). Exposes an initializePools() function that delegates liquidity bootstrapping to a separate ISaturnOmnichainLiquidityBootstrapper contract. No swap or liquidity-modification logic is active.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain protocol. Only implements afterInitialize, delegating pool bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract, which returns the initial tick that is stored on-chain. Has no swap or liquidity logic.
Ethereum
afterInit
15
3mo
SaturnOmnichainV4HookA hook for the Saturn Omnichain project with an afterInitialize permission flag, though the afterInitialize callback is a no-op. The contract exposes a separate `initializePools()` function that calls an external liquidity bootstrapper to record the initial tick in storage. All hook callbacks are no-ops.
Ethereum
afterInit
15