Fee sharing hook on Robinhood Chain

Uniswap v4 Hook Contract 0x3e06d91f6706b72fe22e0bdf6f83d01600c40044 on Robinhood Chain · Fee sharing

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

This hook skims a fee from swaps in the pool and routes it to a designated fee recipient for a project token.

How it works step by step

  • Runs afterSwap on every swap and computes a fee in basis points against TOTAL_BIPS
  • Takes the fee currency from the pool manager via take and records a return delta
  • Forwards the collected fee to the address returned by feeRecipient()
  • Exposes projectToken() to identify the token the fee is associated with
  • Registers liquidity and donate callbacks, but no custom liquidity accounting is visible
Swap behaviour
After each swap, afterSwap computes a fee using FEE_BIPS, takes that amount from the pool currency, and returns a delta so the swap settlement reflects the fee.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are dispatched, but the bytecode shows no clear custom liquidity logic beyond these entry points.
Fee behaviour
A fee is computed in afterSwap using FEE_BIPS against TOTAL_BIPS, and the resulting amount is taken and sent to feeRecipient() via the poolManager take call.
Owner & admin controls
No admin controls found in dispatched functions; feeRecipient() and projectToken() are exposed as views only, with no visible setter selectors.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap is used to take a fee from the swap output; afterSwapReturnDelta lets the hook return a delta so the fee is settled against the pool's currency flows.

Security & trust assessment

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

Who controls it: feeRecipient() determines where the hook fee is sent; if it is an EOA or a mutable address the holder controls fee proceeds, though no setter was identified in the decoded selectors.

Risk to user funds: The hook can take a portion of swap output currency through afterSwap and the return delta, so traders receive less than the pool's raw output, and the taken amount is routed to feeRecipient.

Security findings

  • [medium] Hook takes currency on swaps via return delta: afterSwapReturnDelta lets the hook alter the amounts settled after a swap, and afterSwap calls take to move currency, so the hook actively takes tokens from swap flows.
  • [info] Unverified source limits analysis: No source is verified, so the actual fee rate, recipient mutability and any upgrade or pause path cannot be confirmed from the bytecode alone.
  • [info] Fee recipient and project token exposed: The hook exposes feeRecipient and projectToken, indicating a fee split to a designated recipient tied to a project token.

Contract details

Verified source
No
Bytecode size
2,631 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Fee sharing hook