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
- WETH / USDC (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / PLAY (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ROLL (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- BIO / WETH (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- VIRTUAL / USDC (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- ZORA / WETH (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / USDC (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / USDC (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- VIRTUAL / WETH (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / WELL (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / RIVER (0.25% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ICNT (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / ZEN (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- VIRTUAL / WETH (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / DEGEN (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / AERO (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / USDbC (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today
- XPE / USDC (0.01% fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / OPG (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- VIRTUAL / OPG (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today