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. The only encoded permission is afterInitialize, which is a no-op returning the selector without executing logic. Pool bootstrapping is handled separately through an external initializePools() function that calls a LiquidityBootstrapper contract to set the initial liquidity and tick. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA contract for the Saturn Omnichain project that enables initialization of Uniswap v4 pools; initializePools() calls an external liquidity bootstrapper and stores the resulting initial tick. The afterInitialize permission is enabled but the callback is a no-op. All other hook callbacks are also no-ops. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA Uniswap v4 hook for Saturn Omnichain that holds afterInitialize permission but the callback is a no-op. Pool setup is performed via the external initializePools() function, which calls a LiquidityBootstrapper contract and records the initial tick. No swap-phase permissions are active. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project. The afterInitialize callback is a no-op; the hook exposes an initializePools() function that delegates to an external ISaturnOmnichainLiquidityBootstrapper contract to bootstrap initial liquidity positions across pools. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that uses only the afterInitialize permission as a no-op callback. Liquidity setup is delegated to an external bootstrapper contract via initializePools(), which records the initial tick. No swap logic is implemented. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that implements afterInitialize as a no-op. Exposes an initializePools() function that delegates to an external LiquidityBootstrapper contract to bootstrap liquidity and record the initial tick. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn omnichain project that implements only afterInitialize (as a no-op) and exposes an initializePools() function that delegates liquidity bootstrapping to an external contract. No swap-time logic is active. 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. Only `afterInitialize` is active (as a no-op selector return); no swap, liquidity, or donate hooks are enabled. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project with a single afterInitialize permission flag; the callback is a no-op. Includes a permissionless initializePools() function that calls an external liquidity bootstrapper to record the initial tick after pool creation. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA minimal hook for the Saturn Omnichain project that registers only the afterInitialize permission as a no-op. Exposes an initializePools() function that delegates to an external liquidity bootstrapper contract and records the initial tick and pool initialization state. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook that records the initial tick after pool initialization via an external liquidity bootstrapper contract. The afterInitialize callback is a no-op; the hook's main entry point is initializePools(), which delegates liquidity setup to an ISaturnOmnichainLiquidityBootstrapper. No swap logic is implemented. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project with only `afterInitialize` permission enabled (the callback is a no-op that returns the selector). A separate `initializePools()` function calls a liquidity bootstrapper contract to seed initial liquidity and record the starting tick. Ethereum afterInit 15 3mo SaturnOmnichainV4HookMinimal hook for the Saturn Omnichain project that records the initial pool tick via an external `initializePools()` call to a liquidity bootstrapper contract. The `afterInitialize` callback is a no-op; no swap logic is executed. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project that registers an afterInitialize callback (no-op). Actual liquidity bootstrapping is performed via a separate initializePools() call that delegates to an external LiquidityBootstrapper contract, which sets up POOL_COUNT positions and records the initial tick. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project that registers an afterInitialize callback (currently a no-op). Exposes an initializePools() function that calls an external liquidity bootstrapper contract to seed initial liquidity and record the initial tick. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project with only afterInitialize enabled (as a no-op returning the selector). Exposes an initializePools() function that delegates to an external liquidity bootstrapper contract and records the initial tick and initialized state on-chain. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain project that implements only the afterInitialize permission as a no-op callback. Liquidity bootstrapping is performed via a separate initializePools() function that calls an external ISaturnOmnichainLiquidityBootstrapper contract to record the initial tick. No swap, liquidity, or donate hook logic is present. Ethereum afterInit 15 3mo SaturnOmnichainV4HookA minimal Uniswap v4 hook for the Saturn Omnichain project. Only uses afterInitialize (a no-op returning the selector). Liquidity bootstrapping is handled externally via a separate LiquidityBootstrapper contract. No swap interception or dynamic fee logic. Ethereum afterInit 15 12mo Token Flow Tax Hook (Ethereum)A Uniswap v4 hook that applies configurable taxes on TOKEN/ETH swaps, collecting native ETH taxes on both inflows and outflows. Supports multiple tokens sharing one hook, with a configurable owner cut of all taxes collected. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 15 2mo OmniHookTakes a 10 bps fee on every swap's output (or specified input), split among five hardcoded addresses via a pull-payment ledger. Uses beforeSwap and afterSwap deltas to capture fees in-unlock; no owner, no admin controls, no hookData required. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 14 2mo EthCreatorFeeHookV4Charges immutable directional buy/sell fees on native ETH/token pools, splitting fees between the token creator's registered split vault and a fixed launcher fee recipient. Fee rates (between 0.1% and 10%) are configured per pool at registration by the token creator and cannot be changed afterward. Ethereum beforeInitbeforeSwapafterSwapswapDelta+1 13 3mo Uni20HookA beforeSwap-only Uniswap v4 hook that automatically triggers LP fee harvesting via an immutable IUni20FeeLocker contract before each registered pool swap. Harvesting failures are caught with try/catch so they cannot block user trades. No hookData is required and no swap deltas are modified. Ethereum beforeSwap 13 6mo V4GasDetectHookA honeypot hook that unconditionally allows buy swaps (zeroForOne=true) but blocks real sell transactions by reverting when gasleft() is below 55M. Simulated sells (which use the full block gas limit) appear to succeed, deceiving users into buying tokens they cannot sell in real transactions. Ethereum beforeSwap 13 6mo InuPegHookA Uniswap v4 hook that imposes a trade tax on each swap — 2.5% on buys (2% to a rewards vault, 0.5% to a deployer address) and 2% on sells (ETH forwarded to the vault) — via afterSwapReturnsDelta. On buys it mints NFTs for the recipient per whole INU token unit received (capped at 3 per swap); on sells it burns NFTs LIFO from the seller's inventory. Ethereum beforeSwapafterSwapafterSwapDelta 13 10mo Auto Liquidity Generator HookLiquidityGenHook collects configurable buy and sell WETH taxes on swaps via BeforeSwapDelta and AfterSwapDelta, accumulates them, and automatically re-invests into the pool as full-range liquidity once a threshold is reached. A platform fee is taken before the liquidity add. Ethereum beforeInitafterAddLiqafterRemoveLiqbeforeSwap+3 13 11mo NFTStrategyHookManages ETH/token pools for NFTStrategy NFT collections on Uniswap v4. Takes a time-decreasing buy fee (starting at 99%, decreasing 100 bps/minute to a floor of 10%) and a fixed 10% sell fee via afterSwapReturnsDelta, distributing proceeds 80% to the NFT collection, 10% to a protocol token buyback, and 10% to a fee address. Ethereum beforeInitafterAddLiqafterSwapafterSwapDelta 13 20mo FairTradeHookA Uniswap v4 hook that blocks swaps from addresses on an owner-maintained blocklist; beforeAddLiquidity and beforeRemoveLiquidity are implemented as pass-throughs with no additional logic. Ethereum beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap 13 2mo EchoHookA token launch hook for factory-registered tokens that charges configurable buy fees and sell drain fees (defaulting to 100%) in the quote currency, taken via BeforeSwapDelta and AfterSwapDelta. Accumulated fees are tracked per token creator and claimable via claimFees or claimAllFees. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 12 2mo StonkHookAfter-swap fee hook for StonkPad that charges platform fees (100–200 bps) plus dev-configured taxes (marketing, rewards, burn) on each swap's unspecified currency via afterSwapReturnsDelta, and tracks cumulative volume to unlock a 5% $STONK airdrop for instant-listed pools. Ethereum afterSwapafterSwapDelta 12 4mo Sa1tHookV2A bonding-curve launchpad hook serving every SA1T token pool through three phases: CURVE (custom constant-product AMM via ERC-6909 claims, fully NoOp'd against the pool), REFUND_WINDOW (optional money-back sells at average entry price), and AMM (full-range liquidity locked in LPLocker with TWAP oracle). Applies a 1.5% fee split between protocol and creator, plus an optional mechanic fee, on both buys and sells across all phases. Ethereum beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+3 12 5mo BracketHookBracketHook is the central contract for the TheCup protocol, managing 48 country-token pools across two AMM regimes: a bonding curve phase (hook handles all swap math via custom virtual-reserve AMM and a 1% protocol fee) and a graduated phase (standard v4 AMM with 1% protocol fee plus an optional 9% elimination tax on sells of knocked-out country tokens). A per-block price-impact cap (5%) is enforced as a sandwich protection mechanism. Ethereum beforeAddLiqbeforeRemoveLiqbeforeSwapswapDelta 12 7mo LivoSwapHookSingleton hook for Livo Launchpad tokens that charges a 1% LP fee (split 50/50 between creator and treasury) on all swaps, plus a configurable time-limited sell tax on both buys and sells. Blocks swaps until the token has graduated from the launchpad's bonding curve. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 12 2mo FiverHookA swap-fee levy hook that deducts a configurable percentage (levy rate, default 1%, max 5%) of each swap's quote-token amount from registered token pools, using beforeSwap and afterSwap return deltas to extract the toll and accrue it to the token issuer's claimable stash. Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 11 6mo OneTimeLaunchHookTemplateA launch hook that restricts pool initialization and liquidity addition to a single occurrence per token. In afterSwap, when enabled via the permissionless zero() function, reverts non-zeroForOne (buy) swaps if tx.origin is not in a deployer-managed allowlist, creating asymmetric swap access control. Ethereum beforeInitbeforeAddLiqafterSwap 11 6mo Unipump Fee HookSingleton Uniswap v4 hook that collects a configurable fee (50–1000 bps) from the unspecified token of each swap in Unipump pools. Splits fees 60% to the pool creator and 40% to a fixed platform wallet; only factory-registered pools may use this hook. Ethereum beforeInitafterSwapafterSwapDelta 11 21mo Cork AMM (Ethereum)Cork AMM is a custom Uniswap v4 hook for the Cork Protocol that implements a specialized AMM for depeg-swap token pairs (RA and CT). It replaces the standard Uniswap price curve with its own pricing logic, gates all native liquidity modifications through the hook's own interface, and supports optional flash swaps via a CorkSwapCallback pattern. Ethereum beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1 11 2mo SimHookDynamic-fee Uniswap v4 hook that prices each swap based on cumulative directional price impact with time decay, simulating the swap first to estimate impact before execution. Includes JIT liquidity protection via block-based position locks and takes a governance-controlled protocol fee split from the dynamic LP fee. Ethereum beforeInitafterInitbeforeAddLiqafterAddLiq+4 10 2mo ForgeHookV4A Uniswap v4 hook for controlled token launches that enforces launchManager authorization for pool initialization and liquidity provision. Collects configurable buy/sell fees via swap deltas and distributes fee shares across platform, creator, rewards, and utility recipients. Remove liquidity and donations are permanently disabled. Ethereum beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+4 10 3mo BallisticFeeHookV3Directional quote-currency fee hook with configurable per-pool buy/sell fee rates, a time-decaying opening fee schedule, and a 10 bps platform floor. Fees are split between a per-pool creator allocation vault and a platform treasury collector. The hook bypasses fees for the registered allocation vault address. Ethereum beforeInitbeforeSwapafterSwapswapDelta+1 10 3mo SaturnOmnichainV4HookHook for the Saturn Omnichain project with only the afterInitialize flag set. All hook callbacks are pure no-ops returning the selector. An external initializePools() function delegates to an ISaturnOmnichainLiquidityBootstrapper contract to bootstrap liquidity and records the resulting initial tick on-chain. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain protocol that records the initial pool tick after initialization via a separate liquidity bootstrapper contract. Only afterInitialize is enabled; all swap hooks are no-op stubs, making swap behavior entirely vanilla. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA hook for the Saturn Omnichain project that records the initial tick after pool initialization via an external liquidity bootstrapper contract. All swap and liquidity callbacks are no-ops. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for the Saturn Omnichain protocol with the afterInitialize permission enabled. The afterInitialize callback performs no action. A separate initializePools() function (not invoked via the hook mechanism) calls a LiquidityBootstrapper to record the initial tick and set a poolInitialized flag. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA v4 hook with only an afterInitialize permission, which performs no action in the callback (returns selector only). Exposes an initializePools() function that delegates to an external ISaturnOmnichainLiquidityBootstrapper contract to bootstrap initial liquidity and record the pool's initial tick. Ethereum afterInit 10 3mo SaturnOmnichainV4HookSaturn Omnichain V4 hook with an afterInitialize flag set (callback is a no-op). The initial tick is recorded via the separate `initializePools()` function, which calls the liquidity bootstrapper contract to seed initial positions. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA pass-through Uniswap v4 hook for the Saturn Omnichain project. Only afterInitialize is enabled, but the callback performs no logic. A separate initializePools() function bootstraps liquidity via an external contract and records the initial tick. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook that implements only the afterInitialize permission, recording an initial tick from a separate liquidity bootstrapper contract. All hook callbacks are no-ops; swap behavior is identical to a standard pool. Ethereum afterInit 10 3mo SaturnOmnichainV4HookMinimal Uniswap v4 hook for the Saturn Omnichain project. Only `afterInitialize` is enabled (as a no-op). Exposes an `initializePools()` function that calls an external liquidity bootstrapper contract to record the initial tick and mark the pool as initialized. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA minimal hook with only the afterInitialize permission bit set. The afterInitialize callback is a no-op (returns the selector only). Liquidity bootstrapping and initial tick recording are performed via a separate initializePools() call that delegates to an external ISaturnOmnichainLiquidityBootstrapper contract. No swap, liquidity, or donate hooks are active. Ethereum afterInit 10 3mo SaturnOmnichainV4HookA Uniswap v4 hook for Saturn Omnichain token pools that registers an afterInitialize callback (which is a no-op) and exposes an initializePools() function that delegates liquidity bootstrapping to a separate LiquidityBootstrapper contract to set initial tick positions. Ethereum afterInit 10