Likely custom pricing hook on Tempo
Uniswap v4 Hook Contract 0x2929d242c6c475f78ea7ce8837c9078bcd9ca088 on Tempo · Custom pricing
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 59
What it does
Appears to be a custom-accounting hook that adjusts swap deltas and moves currency through PoolManager on pools it initializes, based only on decoded bytecode.
How it works step by step
- Records per-pool data in a mapping keyed by pool id during beforeInitialize
- Returns a delta from beforeSwap so the hook can take or settle currency
- Calls PoolManager take, settle and sync to move tokens during swaps
- Reads a token jar address and protocol fee controller, suggesting fee routing
- Exposes pseudoTotalValueLocked and quote helpers for off-chain reads
- Swap behaviour
- beforeSwap is nonpayable and, with beforeSwapReturnDelta enabled, returns a delta that settles or takes currency through PoolManager calls such as take, settle and sync.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are declared as view functions and the hook exposes pseudoTotalValueLocked(bytes32); liquidity callbacks appear to be permissioned to read state only, with no evidence of liquidity moves.
- Fee behaviour
- Not determinable from decoded bytecode; beforeSwap uses return deltas and reads a per-pool mapping keyed by pool id, and the hook calls protocolFeeController() and TOKEN_JAR(), suggesting protocol fees may be routed to a token jar, but exact fee math cannot be confirmed.
- Owner & admin controls
- Storage slot 0 holds an address that is written by selector 0x4401bb3f (nonpayable, takes an address argument), which appears to be an owner or tokenJar setter; no caller check could be confirmed from decoded bytecode, so it is unknown whether it is access-controlled. Slot 0 is also read by 0x490c98f5 (tokenJar getter) and 0x575e24b4 (beforeSwap).
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, beforeSwapReturnDelta
beforeInitialize records pool-specific data into a mapping keyed by pool id; beforeSwap is the main logic and returns a delta, and beforeSwapReturnDelta lets the hook settle or take currency on swaps, which is the mechanism the heuristic tags flag as moves-currency and return-delta; afterwards the hook calls PoolManager functions such as take, settle and sync.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A privileged key controlling the setter in slot 0 could potentially redirect the tokenJar or other external dependencies, affecting where fees or currency deltas are sent; the scope cannot be verified without source.
Risk to user funds: The hook can take and settle currency during swaps through beforeSwapReturnDelta and transfer tokens via PoolManager calls, so swap funds pass through its accounting; whether it can block swaps or withdraw pool funds beyond fee deltas is not confirmed by the decoded bytecode.
Security findings
- [medium] Hook takes currency during swaps via return delta: Selector 0x575e24b4 is nonpayable and the beforeSwapReturnDelta permission is enabled, so the hook can alter swap accounting by returning a delta and settling currency through PoolManager calls.
- [high] Possible unprotected address setter in slot 0: Selector 0x4401bb3f writes an address into storage slot 0, which is read by the tokenJar getter and by beforeSwap; if this is an unrestricted setter, a caller could redirect value flows.
- [medium] Hook moves tokens between itself and PoolManager: Decoded bytecode shows calls to take, settle, sync and balanceOf, so the hook moves tokens; this is expected for return-delta hooks but means user and pool funds pass through hook logic.
- [info] Source not verified: No verified source is available, so behaviour is inferred from selectors and storage access patterns only and may be incomplete.
Contract details
- Verified source
- No
- Bytecode size
- 13,185 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using Likely custom pricing hook
- pathUSD / USDC.e (0.05% fee) — 24h volume $0, TVL $0, 0 swaps today