Fee sharing hook on Ethereum

Uniswap v4 Hook Contract 0xcf264853b8dd44734e40c0409e5e1ce0df7500cc on Ethereum · Fee sharing

Volume (24h)
$17
Value locked (TVL)
$15.67K
All-time volume
$292.78K
Pools using this hook
1
Swaps (24h)
1 (1 traders)
Total swaps
1,049

What it does

Takes a fee on swaps through the pool manager and routes it to a fee recipient, based on decoded bytecode without verified source.

How it works step by step

  • Runs logic in beforeSwap before each swap executes
  • Uses beforeSwapReturnDelta and afterSwapReturnDelta to adjust swap settlement amounts
  • Calls take() on the pool manager to move a currency amount out of the pool
  • Exposes feeBps() and feeRecipient() getters that define the fee and its destination
  • Carries no-op or pass-through liquidity and donate callbacks
Swap behaviour
beforeSwap and afterSwap run on every swap and use return deltas to take a basis-point fee routed to feeRecipient via the pool manager.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present, but the decoded bytecode shows no clear state-changing logic for them.
Fee behaviour
Exposes feeBps() and feeRecipient() getters; beforeSwap/afterSwap appear to take a fee in basis points and route it to a recipient via the pool manager take() call. Exact fee math cannot be confirmed without source.
Owner & admin controls
No admin controls found.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap: runs before each swap and can adjust the swap via a return delta. afterSwap: runs after each swap, likely to settle or take a fee amount. beforeSwapReturnDelta: lets the hook alter the amounts the pool settles for the swap. afterSwapReturnDelta: lets the hook take or credit an additional amount after the swap.

Security & trust assessment

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

Who controls it: No owner or admin selector was decoded, so no privileged key is evident from the bytecode. The fee recipient is a stored address that cannot be confirmed as immutable without storage analysis.

Risk to user funds: Because the hook can take currency through return deltas during swaps, it can skim a portion of swap flow to the fee recipient. Liquidity callbacks do not appear to block withdrawals, but this is not confirmed.

Security findings

  • [medium] Hook moves currency via return deltas: The hook has beforeSwapReturnDelta and afterSwapReturnDelta enabled and calls take(), so it can move pool tokens and change swap amounts.
  • [info] Swap accounting checks present: The bytecode contains the IncompleteSwap and SafeCastOverflow errors, indicating internal checks on swap accounting, but their conditions cannot be verified without source.
  • [low] Unverified source: No verified source is available, so the fee logic and any hidden owner controls cannot be fully confirmed from decoded selectors alone.

Contract details

Verified source
No
Bytecode size
3,718 bytes
Upgradeable proxy
No
Detected patterns
fee-sharing, moves-currency, return-delta

Pools using Fee sharing hook