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
16mo
EulerSwapA custom-curve AMM hook for Uniswap v4 that executes swaps entirely within beforeSwap, routing assets through Euler Finance vaults. Uses a proprietary curve invariant instead of CLAMM; blocks direct liquidity provision and donations to prevent unproductive positions and irrecoverable funds.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA custom curve AMM hook that routes swaps through Euler Finance lending vaults, implementing the EulerSwap bonding curve invariant. On each swap, the hook takes input tokens into an Euler vault and withdraws output tokens from another, verifying the curve invariant after each trade. Standard CLAMM liquidity provision and donations are intentionally blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA custom AMM hook that replaces Uniswap v4 concentrated liquidity with a proprietary curve-based mechanism backed by Euler vaults. All swap execution occurs in beforeSwap, which deposits input tokens to and withdraws output tokens from Euler vaults while enforcing a curve invariant, with the full delta returned to the pool manager via beforeSwapReturnsDelta.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapEulerSwap is a Uniswap v4 hook implementing a custom AMM curve backed by Euler Finance vaults. It fully handles swap execution in beforeSwap by depositing input tokens into Euler vaults and withdrawing output tokens from Euler vaults, enforcing a custom pricing curve invariant. Native concentrated liquidity positions are blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA Uniswap v4 hook implementing a custom curve AMM backed by Euler Finance vaults. Each pool instance is a delegatecall proxy with immutable parameters; swap logic is fully handled in beforeSwap by taking input tokens into and withdrawing output tokens from Euler vaults, validated against a custom bonding curve.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapCustom-curve AMM hook that uses Euler vault positions as its liquidity layer. In beforeSwap, it computes amounts via a bonding curve, deposits input tokens to an Euler vault, withdraws output tokens from another Euler vault, and verifies the curve invariant — fully replacing the standard Uniswap v4 CLAMM. Reverts on direct liquidity additions and donations to prevent unproductive positions.
Ethereum
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA Uniswap v4 hook implementing EulerSwap, a custom curve AMM backed by Euler Finance vault positions. Intercepts all swaps via beforeSwapReturnsDelta to route token flows through Euler vaults using a proprietary bonding curve, replacing the standard concentrated liquidity mechanism entirely.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA Uniswap v4 hook implementing a custom AMM curve backed by Euler vault collateral. In beforeSwap, it fully handles swap accounting by depositing input tokens into and withdrawing output tokens from Euler vaults, returning a BeforeSwapDelta while verifying a proprietary curve invariant.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA custom curve Uniswap v4 hook implementing EulerSwap's AMM backed by Euler Finance lending vaults. In beforeSwap, it fully overrides the swap by taking input tokens into Euler vaults and withdrawing output tokens from them, enforcing a custom curve invariant rather than using Uniswap's CLAMM.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
LimitOrderHookA Uniswap v4 hook that enables on-chain limit orders by recording the current tick before each swap (via transient storage) and triggering execution of crossed limit orders through an external LimitOrderManager after each swap. A privileged fee manager role can update the pool's dynamic LP fee via poolManager.updateDynamicLPFee().
Arbitrum
beforeSwapafterSwap
1
16mo
EulerSwapEulerSwap implements a custom AMM curve as a Uniswap v4 hook, routing swap liquidity through Euler vault deposits and withdrawals. It fully handles token accounting via BeforeSwapDelta, blocking standard concentrated liquidity additions and enforcing a custom bonding curve invariant on each swap.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapCustom AMM hook that routes swaps through Euler Protocol vaults using a proprietary bonding curve. Input tokens are deposited into an Euler vault and output tokens are withdrawn from another. Standard Uniswap v4 liquidity positions and donations are intentionally blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
EulerSwapA custom-curve AMM hook backed by Euler Finance lending vaults. Each instance is a delegatecall proxy with immutable pool parameters; swaps are fully handled in `beforeSwap` by taking input tokens into an Euler vault and withdrawing output tokens from another, returning a `BeforeSwapDelta` to the pool manager. Standard concentrated-liquidity positions are blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
16mo
LimitOrderHookA Uniswap v4 hook that records the current tick before each swap via transient storage, then triggers limit order execution in afterSwap based on tick movement. Includes a privileged role that can update the pool's dynamic LP fee via poolManager.updateDynamicLPFee().
Arbitrum
beforeSwapafterSwap
1
17mo
FeeCollectHookTracks swap activity per registered LP token position on authorized pools by incrementing trade counters in afterSwap. Designed to trigger fee processing via an external LeveragedLPManager contract, though the actual fee collection call is currently commented out.
Base
afterSwap
1
17mo
FeeCollectHookAn afterSwap hook that tracks per-LP-token trade counts for authorized pools, designed to trigger fee collection on an external LeveragedLPManager contract after each swap. The actual fee processing call is currently commented out, making the hook effectively a trade counter and event emitter only.
Base
afterSwap
1
17mo
EulerSwapA Uniswap v4 hook implementing a custom AMM curve backed by Euler Finance lending vaults. It intercepts swaps in `beforeSwap`, deposits input tokens into an Euler vault, withdraws output tokens from another vault, and enforces a bonding curve invariant, returning a BeforeSwapDelta to handle all swap accounting.
Ethereum
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
EulerSwapA Uniswap v4 hook implementing a custom AMM backed by Euler vault liquidity. All swap accounting is handled entirely within beforeSwap via BeforeSwapReturnsDelta: input tokens are taken into Euler vaults and output tokens withdrawn from them, with a custom curve invariant verified after each swap to enforce pricing. Standard CLAMM liquidity positions, direct donations, and external pool initialization are all blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
EulerSwapA custom-curve AMM hook that routes swaps through Euler Finance lending vaults instead of standard Uniswap concentrated liquidity positions. In beforeSwap, it computes quotes against a custom invariant curve, takes input tokens into the appropriate Euler vault, and withdraws output tokens from the other vault, returning the full delta to the pool manager.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
FeeCollectHookAfter each swap, decodes an LP token ID from hookData, increments a per-token trade counter, and every 10 swaps collects fees from the Uniswap V4 position manager and forwards them to a leveraged LP manager contract for processing.
Base
afterSwap
1
17mo
EulerSwapA custom curve AMM hook backed by Euler Protocol vaults. Intercepts swaps via beforeSwapReturnsDelta, deposits input tokens into Euler vaults, and withdraws output tokens from Euler vaults according to a configurable bonding curve, bypassing Uniswap's native concentrated liquidity entirely.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
EulerSwapA Uniswap v4 hook implementing a custom AMM curve that routes all swaps through Euler Finance vaults. The beforeSwap callback computes quotes using its own curve invariant, deposits input tokens into an Euler vault, and withdraws output tokens from another vault, bypassing v4's concentrated liquidity entirely. Liquidity additions and donations are intentionally blocked.
Unichain
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
CabalcoinHookCharges a fixed fee (initially 3%, reducible by the Cabalcoin owner) on each swap via afterSwapReturnsDelta, converting non-ETH fees to ETH through an internal nested swap. Gates pool initialization and liquidity addition to a controlled loadingLiquidity phase enforced by the Cabalcoin token contract; afterSwap also requires the caller to implement IValidRouter.
Ethereum
beforeInitbeforeAddLiqafterSwapafterSwapDelta
1
17mo
EulerSwapCustom-curve AMM hook integrating with Euler Finance vaults. In beforeSwap, it computes quotes using its own invariant curve, deposits input tokens into and withdraws output tokens from Euler vaults, and returns a BeforeSwapDelta — fully bypassing Uniswap v4 concentrated liquidity. Liquidity additions and donations revert by design.
Ethereum
beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1
1
17mo
SpotA Uniswap v4 hook that applies dynamic LP fees computed from a truncated geometric oracle (with a surge component) and collects a configurable protocol share of each swap fee, minting it as ERC-6909 credits to a FullRangeLiquidityManager for optional automatic reinvestment into full-range liquidity.
Unichain
afterInitbeforeSwapafterSwapswapDelta+1
1
17mo
BaseHookMockA minimal BaseHook mock implementation for Uniswap v4 that stubs beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, and afterSwap as no-ops. The beforeSwap returns a hardcoded fee value (4000) without the OVERRIDE_FEE_FLAG set, so it has no effect on swap execution.
Arbitrum
beforeAddLiqbeforeRemoveLiqbeforeSwapafterSwap
1
17mo
Aegis v1 Hook (Unichain)A dynamic fee hook that uses a truncated geometric oracle to compute adaptive swap fees based on market volatility. Protocol fees are collected from swaps (both exact-in and exact-out) and automatically reinvested into full-range liquidity positions via an integrated liquidity manager.
Unichain
afterInitbeforeSwapafterSwapswapDelta+1
1
18mo
WETHHookA Uniswap v4 hook that enables seamless wrapping and unwrapping of ETH and WETH in a dedicated zero-fee pool, intercepting swaps to perform 1:1 ETH↔WETH conversion while blocking direct liquidity operations.
Arbitrum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
18mo
WETHHookWETHHook turns a v4 pool into an ETH / WETH wrapper. Swaps mint or burn WETH 1:1 against native ETH via the WETH9 contract. Deposits take ETH from the PoolManager and settle the minted WETH back; withdrawals unwrap and return native ETH. Direct liquidity provision is disabled.
Unichain
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
18mo
WETHHookA 1:1 ETH/WETH wrapper hook that allows users to swap between ETH and WETH within Uniswap V4 pools. It intercepts swaps to perform native wrapping and unwrapping, blocks direct liquidity operations, and requires pools to be initialized with zero fee.
Base
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
18mo
WstETHHookA Uniswap v4 hook that enables seamless wrapping and unwrapping between stETH and wstETH during swaps, applying the dynamic stETH/wstETH exchange rate in beforeSwap and settling token deltas directly with the pool manager. Liquidity additions are blocked; all exchange is handled exclusively through the hook.
Ethereum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
18mo
WETHHookWETHHook turns a v4 pool into an ETH / WETH wrapper. Swaps mint or burn WETH 1:1 against native ETH via the WETH9 contract. Deposits take ETH from the PoolManager and settle the minted WETH back; withdrawals unwrap and return native ETH. Direct liquidity provision is disabled.
Ethereum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
19mo
Slippage Fee Hook (Arbitrum)Dynamically computes LP fees before each swap based on the simulated price impact (tick difference between current and post-swap price), charging higher fees for larger swaps to reduce impermanent loss for liquidity providers. Requires pools to use dynamic fees and reverts any swap that would cause slippage exceeding 5%.
Arbitrum
afterInitbeforeSwap
1
19mo
ExponentialLiquidityHookA bonding curve hook that deploys new ERC20/WBTC pools with exponentially-distributed liquidity across tick segments. After each swap, checks if the price has crossed the bonding curve endpoint; if so, removes all liquidity and transfers accumulated WBTC to the token contract, enabling "pack opening" on the associated PackERC20.
Base
beforeInitafterSwap
1
19mo
ExponentialLiquidityHookA bonding curve hook that deploys ERC20 tokens paired with WBTC, distributing liquidity across multiple tick ranges. When a swap moves the pool price past a configured threshold, the hook automatically removes all liquidity, transfers the accumulated WBTC via the pool manager, and calls enablePackOpening() on the deployed token contract.
Base
beforeInitafterSwap
1
19mo
UnimonHookMints ERC-721 NFTs (Unimons) to swappers proportional to their ETH input, restricted to allowlisted routers and native-currency-input pools. Includes game mechanics for hatching and leveling NFTs by burning a companion ERC-20 energy token (UnimonEnergy).
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
UnimonHookA Uniswap v4 hook that mints Unimon NFTs (ERC-721) to swappers proportional to their ETH input amount, restricted to an allowlist of verified routers. NFTs can be hatched and leveled up by burning UnimonEnergy tokens in a separate game mechanic.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
MEVTaxTestInProdImplements a priority-fee-proportional MEV tax as a dynamic LP fee. On each swap, the fee is scaled proportionally to the transaction's priority fee relative to the highest priority fee observed in the previous block, with owner-configurable minimum and maximum bounds.
Unichain
beforeInitbeforeSwap
1
19mo
YieldSwapHookA custom AMM hook for Uniswap v4 that implements a time-decaying yield pricing curve for SY (Standardized Yield) and PT (Principal Token) pairs. Swap amounts are computed via a logarithmic formula whose rate scalar and anchor decay linearly from epoch start to zero at epoch end, with reserves managed internally by the hook.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
UnimonHookMints ERC-721 Unimon NFTs to swappers proportional to native currency input (1 NFT per 0.00000111 ETH), restricted to verified routers and native-currency-as-input swaps. Liquidity addition is restricted to a single event. NFTs can be hatched post-mint by burning a companion ERC-20 energy token to assign a pseudo-random level.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
UnimonHookMints ERC721 Unimon NFTs to swappers proportional to their native token input amount, enforcing an allowlisted router and native-currency-only swaps. Includes an on-chain game where NFT holders burn UnimonEnergy ERC20 tokens to hatch and level up their Unimon via pseudo-random seed generation.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
UnimonHookAn ERC721 hook that mints Unimon NFTs to swappers proportional to the native currency amount swapped, restricted to allowlisted routers. After minting, NFT owners can burn ERC20 UnimonEnergy tokens to "hatch" their Unimons, assigning them a pseudo-randomly calculated level.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
UnimonHookA Uniswap v4 hook that mints ERC721 NFTs (Unimons) to swappers on each swap through a verified-router allowlist, requiring ETH as the input currency and calculating mint quantity based on swap size. NFT holders can hatch their Unimons by burning ERC20 energy tokens to receive a pseudo-randomly determined level.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
YieldSwapHookA custom AMM hook for yield products (SY and PT tokens) that implements a time-weighted pricing formula using a logarithmic curve. Supports only unidirectional (SY→PT), exact-input swaps; price decays linearly from epoch start to end. Liquidity is managed via ERC-20 shares using a Uniswap V2-style formula.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
YieldSwapHookCustom AMM hook for yield token pairs (SY and PT), implementing a time-weighted pricing formula with a decaying rate anchor (Pendle-style curve). Supports only exact-input SY-to-PT swaps; LP shares are issued as ERC20 tokens managed by the hook itself.
Arbitrum
beforeInitbeforeAddLiqbeforeRemoveLiqbeforeSwap+1
1
19mo
PredicateHookGates swaps against off-chain Predicate service policies: non-authorized users must supply a signed PredicateMessage in hookData, while owner-managed allowlists of users and LPs can bypass the check. Liquidity additions are restricted to an owner-managed LP allowlist.
Ethereum
beforeInitbeforeAddLiqbeforeSwap
1
19mo
AutoWrapperA ghost pool hook that intercepts swaps between a base currency (e.g. USDC) and USDL, routing them through a liquid wUSDL/baseCurrency pool while automatically wrapping and unwrapping USDL↔wUSDL via an ERC4626 vault. Liquidity cannot be added to the ghost pool; only the configured router may initiate swaps.
Ethereum
beforeInitbeforeAddLiqbeforeSwapswapDelta
1
19mo
TestHookA hook that restricts swaps to an owner-managed allowlist of verified routers and requires native currency as input, minting ERC721 NFTs to swappers proportional to the ETH swapped. Liquidity can only be added once, and the pool can only be initialized once.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
TestHookA hook that mints ERC721 NFTs to swappers proportional to their native-currency input amount. Swaps are restricted to native (ETH) input only and require a minimum of 0.000001 ETH; each increment of MINT_PRICE mints one NFT up to a cap of 100. Liquidity addition is one-time only.
Unichain
beforeInitbeforeAddLiqbeforeSwapafterSwap
1
19mo
BlackListHookA beforeSwap hook that blocks blacklisted addresses from swapping on a per-pool basis. The swapper's address must be ABI-encoded in hookData; the pool owner manages the blacklist via setBlackListStatusForAddress. Swaps from unlisted addresses proceed normally.
Arbitrum
beforeSwap
1