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.

Filters 1
Type
Safety
Activity
Permissions
Hooks with all of the selected permissions:
Sort
AgeHookChainPermissionsPools
3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only the afterInitialize flag is set (no-op implementation). Exposes 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 that records pool initialization state and delegates initial liquidity bootstrapping to an external contract. The hook itself has no swap, liquidity modification, or donate logic; only afterInitialize is flagged, and its implementation is a no-op stub. Base afterInit 10 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project that holds afterInitialize permission but performs no action in the callback. Exposes an initializePools() function that calls an external ISaturnOmnichainLiquidityBootstrapper contract to bootstrap initial liquidity and record the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that registers the afterInitialize permission (callback is a no-op). Pool initialization is performed via the separate `initializePools()` function, which delegates liquidity bootstrapping to an `ISaturnOmnichainLiquidityBootstrapper` contract and records the initial tick and initialized state. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project with only the afterInitialize flag enabled. The afterInitialize callback is a no-op; initial liquidity is bootstrapped separately via an external ISaturnOmnichainLiquidityBootstrapper contract called through the initializePools() function, which records the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook with only the afterInitialize permission set, but performing no logic in that callback. Exposes an initializePools() function that calls an external ISaturnOmnichainLiquidityBootstrapper contract to record an initial tick and mark the pool as initialized. All swap, liquidity, and donate callbacks are no-op stubs. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain protocol. Only afterInitialize is enabled, but its callback is a pure no-op. The contract also exposes an `initializePools()` function that calls an external liquidity bootstrapper to record an initial tick, but this is independent of the hook mechanism. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol that sets the afterInitialize permission (callback is a no-op). Pool tick initialization is performed externally via initializePools(), which calls an external liquidity bootstrapper contract. No swap flags are set and swap behavior is entirely vanilla. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that uses only the afterInitialize permission (as a no-op) and exposes an initializePools() function that delegates liquidity bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract, recording the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project with only afterInitialize active (as a no-op selector return). Provides an initializePools() function that calls an external liquidity bootstrapper contract to record the initial tick and mark the pool as initialized. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain protocol that responds to pool initialization. The afterInitialize callback is a no-op; the hook exposes an initializePools() function that delegates to an external LiquidityBootstrapper contract to set initial liquidity and records the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that implements only afterInitialize as a no-op. Pool setup is coordinated externally via initializePools(), which calls an ISaturnOmnichainLiquidityBootstrapper contract to bootstrap liquidity and records the initial tick and poolInitialized flag. Base afterInit 10 3mo SaturnOmnichainV4HookAn omnichain hook for the Saturn protocol that records the initial tick after pool initialization and coordinates liquidity bootstrapping via an external bootstrapper contract. The hook has no swap-time logic; all swap callbacks are no-ops. Base afterInit 10 3mo SaturnOmnichainV4HookMinimal hook for the Saturn Omnichain project with only afterInitialize enabled; the hook callback performs no action beyond returning its selector. A separate initializePools() function delegates liquidity bootstrapping to an ISaturnOmnichainLiquidityBootstrapper contract and records the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookMinimal hook with only an afterInitialize permission (no-op callback). Exposes an initializePools() function that delegates to an external liquidity bootstrapper to seed pool liquidity and records the resulting initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project that enables only afterInitialize (as a no-op) and provides an initializePools() function that delegates to an external liquidity bootstrapper contract to set up initial liquidity positions and record the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol that holds only the afterInitialize permission (a no-op). Provides an initializePools() function that calls an external liquidity bootstrapper contract to record the initial tick and mark the pool as initialized. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that implements only afterInitialize as a no-op stub. All swap, liquidity, and donate callbacks return their selectors with zero deltas. An external initializePools() function calls a LiquidityBootstrapper contract to record the initial tick and mark the pool as initialized. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only the afterInitialize flag is set (passthrough). Provides an initializePools() function that calls an external LiquidityBootstrapper contract to set an initial tick and mark the pool as initialized; no swap-path logic is present. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain protocol that registers afterInitialize but performs no logic in that callback. Liquidity bootstrapping and pool state initialization are handled externally via initializePools(), which calls an ISaturnOmnichainLiquidityBootstrapper contract. Base afterInit 10 3mo SaturnOmnichainV4HookMinimal hook for the Saturn Omnichain project with only afterInitialize enabled (a no-op callback). Provides a separate initializePools() function that delegates liquidity bootstrapping to an external ISaturnOmnichainLiquidityBootstrapper contract and records the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project with only afterInitialize permission enabled. All hook callbacks are no-ops; pool initialization is delegated to an external ISaturnOmnichainLiquidityBootstrapper contract that sets the initial tick and liquidity positions. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project. Only the afterInitialize permission is active; the callback itself is a no-op. Pool setup is handled externally via initializePools(), which calls a LiquidityBootstrapper contract and records the initial tick. Base afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that records the initial tick via an external liquidity bootstrapper contract. Only afterInitialize is enabled; swap behavior is entirely vanilla. Base afterInit 10 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that subscribes only to afterInitialize (as a no-op selector return) and exposes an initializePools() function that delegates to a liquidity bootstrapper contract to record the pool's initial tick. Base afterInit 10 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 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 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 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 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 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 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 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 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 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 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 3mo ClankerHookDynamicFeeV2Clanker token launch hook that computes a volatility-responsive dynamic LP fee from tick movement between swaps, takes protocol fees on swaps via BeforeSwapDelta/AfterSwapDelta, and supports optional MEV protection modules and pool extensions. Base beforeInitbeforeAddLiqbeforeSwapafterSwap+2 9 4mo OriginFeeHookA shared Uniswap v4 hook for native ETH/TOKEN pools that charges a configurable 1.5–3.5% fee on every exact-input swap, with optional linear anti-sniper fee decay from 80% down to the base rate. Fees are collected in native ETH via BeforeSwapDelta (buys) and AfterSwapDelta (sells); exact-output swaps are blocked. Base beforeSwapafterSwapswapDeltaafterSwapDelta 9 8mo ClankerHookStaticFeeV2A Uniswap v4 hook for Clanker-launched token pools that enforces directional static LP fees (separate rates for buying vs. selling the Clanker token) via updateDynamicLPFee, deducts protocol fees from each swap using return deltas, optionally integrates a MEV protection module, and supports pool extensions via external callbacks. Base beforeInitbeforeAddLiqbeforeSwapafterSwap+2 9 15mo BondingCurveHookRoutes swaps through a custom bonding curve during the token's bonding phase by intercepting beforeSwap and executing buys/sells via the BondkitToken contract. After migration to DEX phase, collects LP fees from the hook-owned position in afterSwap and distributes them via a DexPhaseSplitter contract. Base beforeInitafterInitbeforeSwapafterSwap+2 9 15mo BoardHookA full-featured token launch and fee-management hook that enforces a fair launch phase with optional Merkle whitelist, blocking sells and liquidity modifications during the launch window. Captures custom swap fees via hook deltas and distributes them among protocol, creator, referrer, and inspired parties. Base beforeInitbeforeAddLiqafterAddLiqbeforeRemoveLiq+6 9 17mo TokenFabToken launch factory hook that creates ERC-20 tokens with bonding curve pools. Blocks external liquidity modifications and manages supply internally. When bonding curve supply is exhausted, automatically migrates liquidity to a standard AMM pool. Takes a 1% fee on each swap, split equally between the token creator and the platform. Base beforeInitbeforeAddLiqbeforeRemoveLiqafterSwap+1 9 17mo ZoraV4CoinHookA Zora v4 coin hook that creates multiple liquidity positions on pool initialization and, on every swap, collects accrued LP fees from all positions, converts them to a backing currency via multi-hop swap, and distributes rewards to creators, referrers, and the protocol. Base afterInitafterSwap 9 17mo ZoraV4CoinHookA hook for Zora Coin v4 pools that initializes multi-curve LP positions on pool creation, then after each swap collects LP fees and distributes them as market rewards to creators, platform referrers, optional trade referrers (passed via hookData), the protocol, and Doppler. Also emits detailed swap events. Base afterInitafterSwap 9 18mo TokenFabToken launch factory hook implementing a bonding curve for newly deployed ERC20 tokens. Liquidity is distributed across multiple tick ranges; when the bonding curve supply threshold is reached, liquidity is removed and migrated to a new full-range AMM pool. Collects a 1% swap fee on the base-token side, split equally between the token creator and the platform. Base beforeInitbeforeAddLiqafterSwapafterSwapDelta 9 19mo TWAMMA Time-Weighted Average Market Maker (TWAMM) hook that enables users to submit long-running token swap orders executed gradually over time. Before each swap, liquidity addition, or removal, the hook executes pending virtual orders by performing nested swaps against the pool via poolManager.swap(). Base beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap 9 20mo NGUHookAttempts to enforce a 30-minute initial buy limit of 0.5 ETH after pool deployment and a 20% fee on sell swaps transferred to a fixed fee recipient. The temporal buy limit is never enforced (poolDeploymentTime is never set), and the sell fee transfer is likely non-functional (no afterSwapReturnsDelta claimed). Base beforeInitafterInitbeforeSwapafterSwap 9