Token hook on BNB Chain

Uniswap v4 Hook Contract 0xd3f1eae45332d3904f6d4a93b0a9ec7ebc008088 on BNB Chain · Token

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

What it does

A Uniswap v4 hook on BSC that appears to charge a toll on swaps in the pool by taking currency through return deltas, though the source is unverified and the details are inferred from bytecode.

How it works step by step

  • Runs logic in beforeSwap on every swap in its pool.
  • Returns a delta from beforeSwap to alter the swap's effective amounts.
  • Calls take() to move currency out of the pool manager as part of the swap.
  • Reads and writes three storage slots, including a uint128 value and two uint256 values, to track state across swaps.
  • Exposes a view tollLedger() function, suggesting toll amounts are recorded on-chain.
Swap behaviour
beforeSwap runs before each swap, can take currency via take(), and returns a delta to adjust the swap amounts, which looks like a toll or tax on swappers.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
beforeSwap is non-view and takes currency via take(address,address,uint256) and returns a delta, so the hook appears to levy a toll on swaps (heuristic tag 'tax'); the exact rate and recipient cannot be determined from the decoded bytecode.
Owner & admin controls
No admin controls found.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap: runs before each swap and gates or taxes it, updating storage slots 1 and 2; beforeSwapReturnDelta: lets the hook return a delta that alters the swap amounts, consistent with the toll mechanism.

Security & trust assessment

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

Who controls it: No owner or admin selectors were decoded, so no privileged key was identified; the reveal() selector and the uint128/uint256 storage writes in c88c9a7b suggest a state-setting path whose access control could not be verified.

Risk to user funds: The hook can take currency from swaps through take() and return-delta adjustments, so swappers may pay an amount set by logic that cannot be fully verified; the hook does not hold LP liquidity directly.

Security findings

  • [medium] Hook takes tokens from swaps via return deltas: beforeSwap combines return-delta permission with take() calls, so the hook can extract tokens from every swap routed through the pool.
  • [medium] Unverified state-writing function: Selector 0xc88c9a7b (two uint256 arguments) is non-view and writes storage slot 0, but its caller restrictions were not visible in the decoded input.
  • [low] Unidentified reveal function: A reveal() selector is present, which may gate or unlock behaviour; without source its effect and access control are unknown.

Contract details

Verified source
No
Bytecode size
1,084 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta, tax

Pools using Token hook