Fee sharing hook on Tempo

Uniswap v4 Hook Contract 0x715913322287d4adb9f125ed29ac95700e2ee888 on Tempo · Fee sharing

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

What it does

A Uniswap v4 hook that appears to skim part of swap value into a token jar, with limited confidence because no verified source is available.

How it works step by step

  • Stores a token jar address in slot 0 and exposes it via tokenJar()
  • Maps pool IDs to tokens via poolIdToTokens and pseudoTotalValueLocked
  • beforeInitialize writes pool-specific state into mapping slots 2 and 3
  • beforeSwap returns a delta (beforeSwapReturnDelta) to take value from swaps
  • pollTokenJar is a nonpayable function that likely triggers collection or forwarding of accumulated tokens
  • Liquidity add and remove hooks are dispatched, but their logic cannot be confirmed from the decoded input
Swap behaviour
beforeSwap is nonpayable and returns a delta, so the hook can take a portion of each swap into a token jar before the pool executes it.
Liquidity behaviour
beforeAddLiquidity is dispatched and can be used to gate or account for liquidity additions; beforeRemoveLiquidity and afterAddLiquidity/afterRemoveLiquidity are present as dispatched selectors, with no clear logic determined from input.
Fee behaviour
Hook takes a return delta in beforeSwap, indicating it skims part of swap flow to a token jar address; exact fee rate cannot be determined from decoded input.
Owner & admin controls
Owner-style storage slot 0 (address) is written by pollTokenJar and beforeInitialize paths; no explicit owner setter decoded. Token jar address is stored in slot 0 and read by tokenJar(). Changes to admin config cannot be confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize records pool-to-token mapping state; beforeAddLiquidity gates or inspects liquidity additions; beforeSwap returns a delta (beforeSwapReturnDelta) that can take a portion of swap value; no afterSwap logic confirmed.

Security & trust assessment

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

Who controls it: A privileged key appears able to call pollTokenJar and possibly alter the token jar destination, redirecting hook-taken value.

Risk to user funds: The hook can take a portion of swap output through return deltas and direct it to a token jar address, so traders may receive less than the pool price implies; it does not appear to hold LP principal directly from decoded input.

Security findings

  • [medium] Swap return delta taken by hook: beforeSwapReturnDelta is enabled and beforeSwap is nonpayable, so the hook can take value from swaps via return deltas, which affects amounts received by traders.
  • [medium] Token jar accounting controlled by stored address: Token jar address is stored in slot 0 and readable via tokenJar(); pollTokenJar is a nonpayable state-changing function, implying an off-chain or privileged trigger affecting fee flows.
  • [info] Unverified access control: No source available, so access control on pollTokenJar and any setter is unverified.

Contract details

Verified source
No
Bytecode size
12,385 bytes
Upgradeable proxy
No
Detected patterns
return-delta

Pools using Fee sharing hook