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
7mo LogCumHookA dynamic fee hook that sets swap fees proportional to cumulative logarithmic price impact with time decay. It tracks directional market imbalance across swaps and charges higher fees when swaps increase imbalance, using a configurable illiquidity metric and min/max fee bounds. Unichain beforeInitafterInitbeforeSwapafterSwap 1 8mo EnhancedFeeDistributionHookV2Captures swap fees via afterSwapReturnsDelta (pool must have fee=0), buffers them per token, and converts to a single configured reward token via a nested V4 pool swap when a buffer threshold is met. Rewards are distributed to in-range liquidity providers using ERC-6909 accounting and tick-based reward growth tracking, with claims settled through PositionManager NFT ownership. Unichain beforeAddLiqafterAddLiqbeforeRemoveLiqafterRemoveLiq+3 1 8mo DynamicFeeHookAdjusts LP swap fees dynamically based on on-chain price volatility using EWMA of sqrt price changes; collects a configurable owner-controlled protocol fee share from the spread above the base fee into a treasury address. In practice, the afterInitialize flag is absent from the address bitmask, so pool configs are never populated and the hook always returns a hardcoded 3000 bps fallback fee. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityFeeHookA Uniswap v4 hook that combines two fee mechanisms: a dynamic LP fee set by an owner/operator (via off-chain volatility signals) overriding the pool's swap fee each trade, and an additional protocol fee taken as a percentage of each swap's output amount accumulated as ERC-6909 claims for the hook owner. Unichain afterInitbeforeSwapafterSwapafterSwapDelta 1 9mo VolatilityDynamicFeeLimitOrderHookA Unilaunch singleton hook that adjusts LP fees dynamically based on a volatility oracle with configurable surge multipliers (activated during high-volatility periods), enforces a one-block trading delay on pool launch, and triggers limit order execution via ILimitOrderManager on every swap. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookUnilaunch singleton hook that implements volatility-responsive dynamic LP fees: applies a base fee plus a surge multiplier when large tick movements are detected in afterSwap, decaying it over a configurable duration. Blocks trading for one block after pool initialization as an anti-sandwich measure. Integrates with an external limit order manager for limit order execution. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookSingleton hook for Unilaunch pools that dynamically adjusts LP fees based on volatility, applying surge fee multipliers after high-volatility CAP events detected by an on-chain oracle. Executes limit orders via an external LimitOrderManager after each swap, and gates trading until a configured block number. Unichain beforeInitbeforeSwapafterSwap 1 9mo VolatilityDynamicFeeLimitOrderHookAdjusts LP fees dynamically based on a configurable base fee plus a time-decaying surge fee triggered by volatility cap events detected via a VolatilityOracle. Also executes on-chain limit orders through a LimitOrderManager on each swap, and temporarily blocks trading until a configured block number to prevent launch sniping. Unichain beforeInitbeforeSwapafterSwap 1 11mo AssetToAssetSwapHookForERC4626Periphery hook that automatically converts ERC20 assets to/from ERC4626 vault wrapper shares when swapping, enabling users to trade underlying assets against yield-harvesting hook pools without manual vault conversion. Supports per-swap vault overrides via hookData, with owner-configurable per-pool defaults. Unichain beforeAddLiqbeforeSwapswapDelta 1 12mo EZKLDynFeeHookDynamic fee hook for Uniswap v4 that uses EZKL ZK proofs (Halo2Verifier) to compute LP fees off-chain. Fees are verified on-chain via a Lit Network signature and then published to pools via `poolManager.updateDynamicLPFee()`. The `beforeInitialize` hook enforces that only dynamic-fee pools (fee = 0x800000) can use this hook. Unichain beforeInit 1 13mo EulerSwapA custom AMM hook that replaces Uniswap v4's standard concentrated liquidity with a proprietary curve backed by Euler lending vaults. In beforeSwap, it computes swap output via a curve invariant (CurveLib), deposits input tokens into an Euler vault, and withdraws output tokens from another vault, fully handling the exchange itself. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 13mo AssetToAssetSwapHookForERC4626Periphery hook for pools using ERC4626 vault wrapper tokens. In beforeSwap, converts input ERC20 assets to vault wrapper shares, performs a nested swap in the corresponding vault wrapper pool via poolManager.swap(), then redeems output shares back to underlying assets. Handles both exact-input and exact-output swaps. Vault wrappers can be supplied via hookData or configured as per-pool defaults by the owner. Unichain beforeAddLiqbeforeSwapswapDelta 1 13mo YoyoStrategyHookA fee-taking hook that charges a time-decaying fee (starting at 26%, decreasing 200 bps every 25 blocks) on all swaps, taken from the output token via afterSwapReturnsDelta. When the fee currency is WETH, a 100% fee is applied instead. Non-ETH fees are converted to ETH via a nested pool swap and forwarded to a designated fee address. Unichain beforeInitafterSwapafterSwapDelta 1 13mo TornadoHookA privacy-preserving hook implementing Tornado Cash-style anonymous deposits and withdrawals. Users deposit ERC-20 tokens by adding liquidity with a cryptographic commitment, and withdraw by submitting a ZK proof (Circom Groth16 or Noir Honk) against a Merkle tree root, with fees redistributed to the pool. Unichain beforeAddLiqafterAddLiqafterRemoveLiqaddLiqDelta+1 1 13mo BaseStrategyHookAn automated liquidity management (ALM) hook that acts as the exclusive liquidity provider for a single authorized pool. In beforeSwap it deposits liquidity at active tick boundaries, and in afterSwap removes all liquidity and settles token balances, with a dynamic LP fee updated on rebalance and a price-deviation circuit breaker that reverts swaps exceeding a configured threshold. Unichain afterInitbeforeAddLiqbeforeSwapafterSwap 1 14mo EulerSwapA custom-curve AMM hook backed by Euler Finance lending vaults. Instead of using Uniswap v4's concentrated liquidity, it routes swaps entirely through its own bonding curve: depositing input tokens into an Euler vault and withdrawing output tokens from another, then verifying the resulting reserves satisfy the curve invariant. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom AMM hook that routes swaps through Euler Finance vaults. It fully overrides Uniswap v4 swap execution via beforeSwapReturnsDelta: input tokens are deposited into an Euler vault and output tokens are withdrawn from another, with reserves tracked against a custom bonding curve invariant verified by CurveLib. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA Uniswap v4 hook implementing a custom AMM backed by Euler lending vault positions. In beforeSwap, it intercepts every swap, computes amounts via a configurable price curve, and routes funds through Euler vaults, returning a BeforeSwapDelta to bypass pool-native pricing. Adding CLAMM liquidity and donations are blocked to protect against unproductive positions. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom AMM hook that implements single-LP pools backed by Euler Finance lending vaults. In beforeSwap, it fully processes each swap by depositing input tokens into and withdrawing output tokens from Euler vaults, returning a BeforeSwapDelta to bypass Uniswap's native liquidity math. Reverts on direct liquidity additions and donations to enforce the custom curve invariant. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo AssetToAssetSwapHookForERC4626Converts raw ERC20 assets to/from ERC4626 vault wrapper shares in beforeSwap, then executes a nested swap on the corresponding vault wrapper pool via poolManager.swap(), returning a BeforeSwapDelta so users can trade underlying assets directly without manually managing vault shares. Falls back to owner-configured default vault wrappers when no hookData is provided. Unichain beforeSwapswapDelta 1 14mo EulerSwapCustom curve AMM hook backed by Euler Finance lending vaults. Executes swaps entirely in beforeSwap using a proprietary invariant curve, depositing input tokens into and withdrawing output tokens from Euler vaults via beforeSwapReturnsDelta. Reverts on beforeAddLiquidity and beforeDonate to prevent unproductive liquidity positions and irrecoverable donations. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapCustom AMM hook that routes swaps through Euler lending vaults using a custom pricing curve. On each swap, it takes input tokens into the relevant Euler vault and withdraws output tokens from the other vault, verifying the curve invariant. Blocks native LP positions and donations to prevent loss of funds. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom AMM hook that routes swaps entirely through Euler Finance vaults. In beforeSwap, it computes quotes via a custom bonding curve (CurveLib), takes input tokens from the PoolManager, deposits them into an Euler vault, withdraws output tokens from the counterpart vault, and returns a BeforeSwapDelta for accounting. Native concentrated liquidity positions and donations are blocked. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom curve AMM hook backed by Euler Finance EVC vaults. In beforeSwap, it takes input tokens from the PoolManager, deposits them into an Euler vault, withdraws output tokens from the counterpart vault, and enforces a custom price curve invariant, fully replacing Uniswap's native swap math via BeforeSwapDelta. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom-curve AMM hook that uses Euler Finance lending vaults as liquidity sources. In beforeSwap, it computes quotes against a custom bonding curve, deposits input tokens into and withdraws output tokens from Euler vaults, and validates the curve invariant. Standard concentrated liquidity provision and donations are blocked via revert. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom AMM hook that integrates with Euler Finance vaults, routing all swap assets through Euler vault deposits and withdrawals while enforcing a custom bonding curve (CurveLib). It handles full swap accounting via BeforeSwapDelta, bypassing Uniswap v4 native concentrated liquidity entirely and blocking direct liquidity additions and donations. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom-curve AMM hook that fully handles swap execution by routing funds through Euler Finance EVC-collateralized vaults. It intercepts swaps via beforeSwap with delta returns, computes quotes against a custom price curve, and manages reserves directly—bypassing standard Uniswap v4 concentrated liquidity. Standard LP positions and donations are blocked via revert. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA Uniswap v4 hook implementing a custom bonding-curve AMM backed by Euler lending vaults. In beforeSwap, it computes swap amounts via a custom curve (CurveLib), deposits input tokens into one Euler vault and withdraws output tokens from another, fully replacing Uniswap's concentrated liquidity mechanism with single-sided vault-backed liquidity. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom-curve AMM hook backed by Euler Finance lending vaults. All swap accounting is handled in beforeSwap: input tokens are deposited into and output tokens withdrawn from Euler vaults, with trades validated against a proprietary asymmetric liquidity curve. Standard concentrated liquidity additions and donations are blocked via intentional reverts. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA Uniswap v4 hook implementing a custom AMM that routes swaps through Euler lending vaults: input tokens are deposited into an Euler vault and output tokens are withdrawn from another, with swap accounting handled entirely via a BeforeSwapDelta return and a custom invariant curve (CurveLib) enforcing reserve bounds. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA custom AMM hook that routes swaps through Euler Finance vaults, depositing input tokens and withdrawing output tokens while enforcing a custom bonding curve invariant. Bypasses Uniswap v4 concentrated liquidity; reverts on standard liquidity additions and donations to protect users from non-productive positions. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo Panoptic Oracle Hook (Unichain)Records price observations on each swap and initializes oracle state on pool initialization, exposing a Uniswap V3-compatible oracle interface with both standard and truncated tick adapters deployed per pool. Unichain afterInitbeforeSwap 1 14mo EulerSwapA Uniswap v4 hook implementing a custom AMM curve backed by Euler lending vaults. Swaps are executed by depositing input tokens into and withdrawing output tokens from Euler vaults, with the exchange rate governed by a configurable bonding curve verified on every swap. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 14mo EulerSwapA Uniswap v4 hook implementing a custom AMM that routes swaps through Euler lending vaults. On each swap, input tokens are deposited into the paired Euler vault and output tokens are withdrawn from the other vault, with amounts verified against a custom bonding curve. Liquidity addition and donations are blocked to prevent non-productive positions. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook for Uniswap v4 that routes swaps entirely through paired Euler Finance vaults, bypassing Uniswap's concentrated liquidity. Each pool is an EIP-1167 minimal proxy; beforeSwap computes quotes via a custom bonding curve, moves tokens through Euler vaults, and verifies the curve invariant before returning a BeforeSwapDelta. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA Uniswap v4 hook implementing a custom AMM curve backed by Euler Finance vaults. Swaps are handled entirely in beforeSwap via BeforeSwapDelta — input tokens are deposited into and output tokens withdrawn from Euler lending vaults, while enforcing a custom invariant curve. Standard concentrated liquidity is blocked; the hook is deployed per-pool as an immutable delegatecall proxy. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook backed by Euler vault positions. `beforeSwap` handles swaps end-to-end: it deposits input tokens into and withdraws output tokens from Euler lending vaults, enforcing a bespoke price curve invariant instead of Uniswap's standard concentrated liquidity. Standard liquidity addition and donations are intentionally blocked. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook for Uniswap v4 that routes swaps through Euler Finance lending vaults. In beforeSwap, it deposits input tokens into and withdraws output tokens from Euler vaults, enforces a custom pricing curve invariant, and returns a BeforeSwapDelta to settle accounting directly with the pool manager, bypassing traditional concentrated liquidity. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA Uniswap v4 hook that implements a custom AMM curve backed by Euler vault collateral. Swaps are handled entirely in beforeSwap: input tokens are deposited into an Euler vault and output tokens are withdrawn from another vault, with a custom curve constraint verified on each trade. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom-curve AMM hook for Uniswap v4 that routes swap funds through Euler lending vaults. Implements its own price curve (via CurveLib) and fully handles swaps in beforeSwap using BeforeSwapDelta, bypassing Uniswap's standard CLAMM mechanics. Each pool instance is deployed as a minimal delegatecall proxy to the EulerSwap implementation singleton. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapCustom AMM hook backed by Euler lending vaults. In beforeSwap, input tokens are deposited into an Euler vault and output tokens withdrawn from another, with pricing governed by a custom bonding curve (CurveLib). Standard concentrated liquidity (beforeAddLiquidity) and donations (beforeDonate) are blocked to protect users from creating idle positions or losing funds. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapEulerSwap is a custom-curve AMM hook backed by Euler Protocol vaults: during each swap, input tokens are deposited into and output tokens are withdrawn from Euler lending vaults. The hook handles all swap accounting via BeforeSwapDelta using a configurable invariant curve, bypassing standard Uniswap v4 concentrated liquidity entirely. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapCustom-curve Uniswap v4 hook that routes swaps through Euler Finance lending vaults using an asymmetric configurable bonding curve. Intercepts swaps in beforeSwap to handle token deposits and withdrawals directly from Euler vaults, returning a BeforeSwapDelta to override standard pool AMM pricing. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo LiquidityPenaltyHookA JIT (Just-in-Time) liquidity protection hook that withholds LP fees when liquidity is added and removed within a configurable block window. Fees collected during rapid add/remove cycles are penalized proportionally and donated to in-range liquidity providers, disincentivizing JIT attacks. Unichain afterAddLiqafterRemoveLiqaddLiqDeltaremoveLiqDelta 1 15mo EulerSwapCustom AMM hook backed by Euler vaults that implements its own swap curve. In beforeSwap, input tokens are deposited into an Euler vault and output tokens are withdrawn, with a custom curve invariant enforced in place of Uniswap's concentrated liquidity. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA Uniswap v4 hook implementing a custom AMM curve backed by Euler Finance lending vaults. Each instance routes swaps directly through two Euler vaults using a configurable bonding curve invariant, bypassing standard concentrated liquidity. Deployed as delegatecall proxy clones from a shared implementation. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapCustom-curve AMM hook that routes swaps through Euler Finance lending vaults. Implements a proprietary bonding curve (EulerSwap v1) to quote and settle trades; input tokens are deposited into and output tokens withdrawn from paired Euler vaults, bypassing standard Uniswap v4 pool AMM math entirely. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA Uniswap v4 hook implementing a custom AMM backed by Euler lending vaults. In beforeSwap, the hook fully manages the trade: it takes input tokens into an Euler vault, withdraws output tokens from another Euler vault, enforces a custom curve invariant, and returns the full swap delta to the pool manager — bypassing Uniswap's concentrated liquidity entirely. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapCustom-curve AMM hook backed by Euler Finance vaults. beforeSwap handles all swap accounting directly: takes input tokens into an EVC-managed vault and withdraws output tokens, returning a BeforeSwapDelta to bypass standard pool liquidity. Standard concentrated liquidity positions and donations are intentionally blocked. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1 15mo EulerSwapA custom AMM hook that routes swaps through Euler Finance vault positions, bypassing Uniswap v4 concentrated liquidity. It implements a configurable bonding curve, taking input tokens into Euler vault deposits and withdrawing output tokens directly from vaults, while enforcing a curve invariant on reserves. Add-liquidity and donate are blocked to prevent idle or irrecoverable funds. Unichain beforeInitbeforeAddLiqbeforeSwapbeforeDonate+1 1