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
Type
Safety
Activity
Permissions
Hooks with all of the selected permissions:
Sort
AgeHookChainPermissionsPools
6mo BurnHookRuns code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation Ethereum beforeInitbeforeAddLiqbeforeSwapswapDelta 2 6mo 0x3cc8…6888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation Base beforeInitbeforeAddLiqbeforeSwapswapDelta 2 6mo 0xe0c9…0488Runs code on every swap · Can take tokens from swaps Ethereum afterAddLiqbeforeSwapswapDelta 2 6mo TheoryHookRuns code on every swap · Can take tokens from swaps Ethereum afterSwapafterSwapDelta 2 6mo UniDogeBuybackHookCollects a 0.5% fee on ETH/UniDoge pool swaps via afterSwapReturnsDelta, accumulates the ETH fees, and periodically executes automated buyback swaps to purchase UniDoge tokens, which are then burned. Ethereum afterInitafterSwapafterSwapDelta 2 6mo 0x397f…8145Runs code on every swap · Can take tokens from swaps · Sets its own swap fee · Takes a cut when LPs withdraw Base afterRemoveLiqafterSwapafterSwapDeltaremoveLiqDelta 2 6mo 0x1e91…0080Runs code on every swap Ethereum beforeSwap 2 6mo TaxHookApplies dynamic LP fee overrides on every swap, delegating buy/sell tax calculations to a configurable external IAntiBotModule contract. Records each user's first buy block to support anti-bot fee tiers; hookData optionally overrides the caller address for fee computation. Ethereum beforeSwap 2 6mo ButeA bonding-curve ERC-20 token (BUTE) that uses beforeSwap to intercept ETH-in swaps: it mints BUTE via a multi-factor curve (temporal decay, burn echo, peak bonus) and returns a BeforeSwapDelta, routing buys through the hook's own ETH reserve. Sell-side swaps pass through unmodified; selling BUTE is handled via a direct sell() function. Base beforeSwapswapDelta 2 6mo FloraHookRuns code on every swap · Can take tokens from swaps · Gates who can add liquidity · Runs at pool creation Ethereum beforeInitbeforeAddLiqbeforeSwapswapDelta 2 6mo WhitelistTaxHookA beforeSwap hook that applies dynamic LP fee overrides based on buy/sell direction and a whitelist. Whitelisted addresses swap fee-free; non-whitelisted buyers pay a configurable buyTaxRate, and sellers pay a configurable sellTaxRate (reduced after 10 blocks since the user's first buy). Ethereum beforeSwap 2 6mo 0x5638…80ccRuns code on every swap · Can take tokens from swaps Ethereum beforeSwapafterSwapswapDeltaafterSwapDelta 2 6mo HookFeeA fee-collecting hook that charges a configurable basis-point fee on currency0 output from one-for-zero swaps, routing proceeds to a fixed feeRecipient via afterSwap delta. The fee rate is owner-controlled and capped at 10,000 bps. Ethereum afterSwapafterSwapDelta 2 6mo HomelanderUniV4PluginA Uniswap v4 hook that dynamically overrides the LP fee in beforeSwap (zero for a privileged MEV executor, configurable for all others) and runs on-chain arbitrage in afterSwap by delegating to an external MEV router and executor, distributing captured profits via a configurable profit distributor. Base afterInitbeforeSwapafterSwap 2 6mo PumpFeeHookA Uniswap v4 hook for token launches that applies tiered creator and protocol fees on each swap based on the token's current market cap (derived from the pool's spot price), alongside a dynamic LP fee override. Only factory-registered bonding curve pools can register with this hook; fees accumulate and are distributed to the creator and protocol via a separate skim function. Ethereum afterInitbeforeSwapafterSwapswapDelta+1 2 6mo 0x7985…0145Runs code on every swap · Can take tokens from swaps · Takes a cut when LPs withdraw Base afterRemoveLiqafterSwapafterSwapDeltaremoveLiqDelta 2 6mo 0x952f…00c4Runs code on every swap · Can take tokens from swaps Ethereum beforeSwapafterSwapafterSwapDelta 2 6mo 0xac68…00c4Runs code on every swap · Can take tokens from swaps Ethereum beforeSwapafterSwapafterSwapDelta 2 6mo OracleHookA TWAP oracle hook that writes tick observations on every swap via a V3-style ring buffer, applies a dynamic LP fee scaling linearly with price drift from a reference sqrt price, and gates all liquidity operations to an authorized Stabilizer contract via a magic sentinel in hookData. Ethereum afterInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1 2 6mo SurtHookETH/SURT bonding curve hook implementing a SATO-style pricing model with dynamic sell-side burn (2–8% of fair SURT, volume/TVL-linked) and an idle jackpot mechanism (1% of each buy credited to pot; paid to prior buyer after 1 hour of inactivity). Liquidity additions are forbidden; requires the real swapper address ABI-encoded in hookData. Ethereum beforeInitbeforeAddLiqbeforeSwapswapDelta 2 6mo FaunaHookUUPS-upgradeable hook for the FAUNA NFT pool that notifies a renderer contract after each swap to trigger butterfly reveal mechanics. No access control on swaps; only afterSwap is active and solely performs an external notification call. Ethereum afterSwap 2 6mo 0x8e59…4145Runs code on every swap · Can take tokens from swaps · Sets its own swap fee · Takes a cut when LPs withdraw Base afterRemoveLiqafterSwapafterSwapDeltaremoveLiqDelta 2 6mo 0xad1d…0442Runs code on every swap · Adjusts deposit amounts Ethereum afterAddLiqafterSwapaddLiqDelta 2 6mo 0xc14f…8044Runs code on every swap · Can take tokens from swaps Base afterSwapafterSwapDelta 2 6mo LaunchHookFee-splitting hook that skims a fixed 1% platform fee plus a configurable creator fee (0–20%) from every exact-input swap via BeforeSwapDelta, forwarding creator fees directly to the token contract. Pool initialization is gated to a factory address; exact-output swaps are unconditionally rejected. Base beforeInitbeforeSwapswapDelta 2 6mo LifeA Uniswap v4 hook combined with an ERC-20 token (LIFE) that runs Conway's Game of Life on a 64×64 toroidal grid. Each swap advances the simulation 1–10 generations, collects a 3% fee split between cell-owners and an immutable protocol recipient, and places or kills grid cells based on ETH↔LIFE swap activity and token transfers. Ethereum beforeSwapafterSwapafterSwapDelta 2 6mo 0x3e2e…4488Runs code on every swap · Can take tokens from swaps Ethereum afterAddLiqbeforeSwapswapDelta 2 6mo 0xb9e8…4accRuns code on every swap · Can take tokens from swaps · Can block LP withdrawals · Gates who can add liquidity Ethereum beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap+2 2 6mo 0x98de…4488Runs code on every swap · Can take tokens from swaps Ethereum afterAddLiqbeforeSwapswapDelta 2 6mo UnipixelHookA Uniswap v4 afterSwap hook for the Unipixel collaborative pixel canvas. On $uPIXEL token sells, it reads the seller address from hookData and calls the canvas contract to reconcile the seller's pixel allocation to their new token balance. Reconciliation is best-effort via try/catch; swaps always proceed regardless of canvas state. Ethereum afterSwap 2 6mo BpegHookCalls `start` on a configured ERC token when the first liquidity is added to its pool, and updates an on-chain random seed (using block entropy) on each swap involving that token. Base afterAddLiqafterSwap 2 6mo 0x2fb1…8488Runs code on every swap · Can take tokens from swaps Ethereum afterAddLiqbeforeSwapswapDelta 2 6mo DynopegHookApplies a flat 3% ETH tax on every swap involving native ETH: on the buy side, reduces the swap input via BeforeSwapDelta and mints ERC-6909 claims; on the sell side, extracts ETH via poolManager.take() in afterSwap. Also advances a rolling per-swap entropy seed each call. Anyone can call normalize() to convert accumulated claims to physical ETH and push them to the DynopegToken reward distributor. Ethereum beforeSwapafterSwap 2 6mo Unilaunch Fee HookSingleton v4 hook for Unilaunch pools that skims a configurable per-pool fee (50–1000 bps) from each swap and splits it 60% to the pool creator and 40% to a fixed platform wallet. Only pools registered by the factory can initialize with this hook. Ethereum beforeInitafterSwapafterSwapDelta 2 6mo BpegHookSyncs BPEG token holder NFT counts after swaps by calling syncSwap() on the BPEG contract in afterSwap, and sets the pool address on the BPEG contract in afterAddLiquidity when the first liquidity is added. Base afterAddLiqafterSwap 2 6mo 0x8ccd…8080Runs code on every swap Base beforeSwap 2 6mo DynoPEGHookCalls `start` on a configured token contract when the first liquidity is added to its pool; updates an internal random seed after each swap involving the token, supporting on-chain NFT/SVG generation. Ethereum afterAddLiqafterSwap 2 6mo 0x5041…d0ccRuns code on every swap · Can take tokens from swaps · Runs at pool creation Ethereum afterInitbeforeSwapafterSwapswapDelta+1 2 6mo 0x570a…c044Runs code on every swap · Can take tokens from swaps Base afterSwapafterSwapDelta 2 6mo 0x2948…4888Runs code on every swap · Can take tokens from swaps · Gates who can add liquidity Base beforeAddLiqbeforeSwapswapDelta 2 6mo 0xdfe9…0080Runs code on every swap · Sets its own swap fee Ethereum beforeSwap 2 6mo 0x3eb1…2a88Runs 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 Ethereum beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1 2 6mo PepeHookCalls `start` on a configured token contract when the first liquidity is added to a pool involving that token. On each swap involving that token, updates an internal random seed using block entropy (timestamp, prevrandao, block number). Ethereum afterAddLiqafterSwap 2 6mo 0x75dc…40c0Runs code on every swap Base beforeSwapafterSwap 2 6mo 0x326e…80c0Runs code on every swap Base beforeSwapafterSwap 2 6mo 0x3c39…0080Runs code on every swap Ethereum beforeSwap 2 6mo 0x9ad6…c044Runs code on every swap · Can take tokens from swaps Base afterSwapafterSwapDelta 2 6mo LiquidGuardUniswap v4 hook that skims a configurable fee (in RARE tokens) from every swap in RARE-paired pools, routing the fee to a distributor contract. When RARE is the specified currency, fees are deducted in beforeSwap; when unspecified, in afterSwap. Pool initialization is restricted to owner-approved initializer addresses. Ethereum beforeInitbeforeSwapafterSwapswapDelta+1 2 6mo 0x6d72…0044Runs code on every swap · Can take tokens from swaps Base afterSwapafterSwapDelta 2 6mo 0xe486…14ccRuns code on every swap · Can take tokens from swaps · Sets its own swap fee · Runs at pool creation BNB afterInitafterAddLiqbeforeSwapafterSwap+2 2