Hook 0x34ea…e0cc on Ethereum

Uniswap v4 Hook Contract 0x34ea6ccb5518802373159b63e830d315f38ee0cc on Ethereum · Other

Volume (24h)
$37.40K
Value locked (TVL)
$3.37K
All-time volume
$37.40K
Pools using this hook
1
Swaps (24h)
250 (92 traders)
Total swaps
250

What it does

A Uniswap v4 hook with fee logic, treasury transfers and holder-based accounting that charges creator and platform fees on swaps; the exact product purpose cannot be confirmed without source.

How it works step by step

  • Sets initial hook state when the pool is initialized through beforeInitialize
  • Applies creator buy and sell fees and team and platform fee splits on swaps
  • Uses return deltas to take or give tokens during swaps
  • Tracks holder checkpoints, weights and pending rewards per address
  • Moves funds to treasury and fee vault addresses via fundTreasury and related logic
  • Supports claim and purge functions that alter holder balances
Swap behaviour
beforeSwap and afterSwap run custom logic that applies creator and team fees and can take or return tokens through the return delta permissions.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity exist as hook callbacks, but their use is not fully determined from decoded bytecode; the hook appears to track holder checkpoints and weights alongside liquidity events.
Fee behaviour
Hook exposes creatorBuyFeeBps, creatorSellFeeBps, TEAM_FEE_BPS, PLATFORM_FEE_BPS, lpFee and previewTradeFees, and beforeSwap/afterSwap return fee and delta amounts, so it sets or takes trading fees in addition to the pool's fee.
Owner & admin controls
Storage slot 1 and 2 indicate an initializer guard; functions overbuy, fundTreasury and purge write to shared state, and treasury related getters (treasury, feeVault, openingTaxVault) exist, but without source the specific owner or role checks cannot be confirmed from the decoded bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize initializes the hook state for the pool; beforeSwap and afterSwap run custom trading logic and fee handling; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give tokens on swaps, which is the notable permission here.

Security & trust assessment

Risk level: high (decoded bytecode, low confidence).

Who controls it: Privileged roles could influence treasury flows and fee parameters, but the exact roles cannot be determined without verified source.

Risk to user funds: The hook can take fees and tokens through return deltas, move ERC20 balances to treasury and vault addresses, and purge or reassign holder balances, so user and pool funds can be affected.

Security findings

  • [high] Return delta permissions allow the hook to alter swap amounts: beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook can take or give tokens during swaps and alter the amounts users receive.
  • [medium] Hook moves tokens to treasury and vault addresses: Bytecode includes token transfers (transfer, transferFrom, take) and a fundTreasury function, so the hook moves ERC20 balances and may send funds to treasury or vault addresses.
  • [medium] Holder balances can be purged or reassigned by logic: Functions such as purge, sync and claim modify per-holder balances and checkpoints, and purge depends on a claim window, which could remove or redirect holder balances under certain conditions.
  • [info] Initialization guarded by an initializer flag: Reads of an initializer slot and an initialized flag exist, and the initialization path is gated, so incorrect initialization could leave the hook misconfigured; severity is unclear without source.

Contract details

Verified source
No
Bytecode size
18,644 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta

Pools using Hook 0x34ea…e0cc