Likely custom pricing hook on Base

Uniswap v4 Hook Contract 0x937c03f5320506f72e7d25f85ff782466730e888 on Base · Access control

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
89
Swaps (24h)
0 (0 traders)
Total swaps
51

What it does

A custom swap hook that enforces its own fee and routes collected value to a token jar, while blocking direct liquidity additions.

How it works step by step

  • Records pool-specific state at initialization through beforeInitialize mappings
  • Applies a hook-managed fee parameter during swaps and quotes
  • Returns a before-swap delta so the hook can take or settle currency
  • Forwards collected value to a token jar address via take/settle/sync calls
  • Blocks liquidity additions through beforeAddLiquidity
Swap behaviour
beforeSwap is implemented and returns a delta, so the hook can take or supply tokens and apply its own fee logic during swaps.
Liquidity behaviour
beforeAddLiquidity is present and reverts with LiquidityNotAllowed in the bytecode, indicating liquidity additions are likely restricted; beforeRemoveLiquidity and afterRemoveLiquidity are present but not enabled by permissions.
Fee behaviour
A uint24 stored in slot 0 (offset 20) is written by selector 0xc5cda8d2 and read during quote and beforeSwap, suggesting a hook-managed fee; whether it is applied as an override or as a return delta could not be fully confirmed.
Owner & admin controls
Storage slot 0 holds an address (likely admin) that is read by admin() and gated by OnlyAdmin; pollTokenJar() is callable and the uint24 at slot 0 offset 20 (likely a fee) can be set through selector 0xc5cda8d2. Exact access checks could not be confirmed without source, so the scope of admin power is uncertain.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize records pool-related state in mappings keyed by pool data; beforeAddLiquidity is used to gate liquidity provision; beforeSwap runs custom swap logic and returns a delta, enabling the hook to take or supply currency during swaps.

Security & trust assessment

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

Who controls it: A privileged admin key appears to control the fee parameter and token jar polling, and may be able to alter pool behaviour without user consent.

Risk to user funds: The hook can take and settle currency through beforeSwapReturnDelta and forwards collected value to a token jar; an admin could redirect or alter flows, so user funds in pools using this hook are exposed to that logic.

Security findings

  • [high] Return delta permission enables currency movement: beforeSwapReturnDelta is enabled, so the hook can take or supply currency during swaps; this is a significant custody-adjacent capability.
  • [medium] Admin-settable fee parameter: Selector 0xc5cda8d2 writes a fee-like uint24 that is read in swap paths; an admin could change swap pricing after users deposit.
  • [medium] Token jar fund routing: The contract exposes a token jar and calls take/settle/sync/transfer on the pool manager, so it can move tokens to an external jar address.
  • [info] Unverified source: Contract is not verified and behaviour is inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
11,643 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Likely custom pricing hook