Fee sharing hook on Robinhood Chain

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

Volume (24h)
$17.38K
Value locked (TVL)
$508.41K
All-time volume
$53.07M
Pools using this hook
11
Swaps (24h)
112 (35 traders)
Total swaps
92,982

What it does

Charges a fixed basis-point fee on swaps in pools using this hook and sends the fee to a treasury address.

How it works step by step

  • Reads swap parameters in beforeSwap and afterSwap callbacks
  • Computes a fee as FEE_BPS basis points of the swap amount
  • Adjusts the swap return delta so the fee is withheld from the trader
  • Withdraws the fee currency from the pool manager with take()
  • Forwards the collected fee to the treasury address
  • Leaves liquidity add and remove callbacks as no-ops
Swap behaviour
On beforeSwap and afterSwap the hook adjusts the swap delta, taking a FEE_BPS fee and moving it to the treasury via take().
Liquidity behaviour
Liquidity add and remove callbacks are present as view stubs and appear to take no action on positions.
Fee behaviour
Takes a fixed fee expressed in basis points (FEE_BPS) on swaps and routes it to a treasury address via take(); the pool's static fee is otherwise unchanged.
Owner & admin controls
A treasury() getter exists and FEE_BPS() is a constant-style view; no owner setter or pause selector was decoded, so no admin controls found.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeSwap and afterSwap are used to read swap parameters and move currency; beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the swap's delta so it can take a cut of the swap amount.

Security & trust assessment

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

Who controls it: No privileged setter was decoded, so the treasury address and fee rate appear fixed; a proxy or upgrade path could not be ruled out from bytecode alone.

Risk to user funds: The hook can take a fee from swap amounts and forward it to the treasury through return deltas, so swappers receive less than the raw pool output; it does not appear to hold LP principal.

Security findings

  • [info] Hook takes currency from swaps: Permissions include beforeSwapReturnDelta and afterSwapReturnDelta, so the hook can take tokens from swaps via return deltas and the take(address,address,uint256) call.
  • [low] Currency movement in swap path: The bytecode contains take(address,address,uint256) and a SafeCastOverflow error, indicating currency is withdrawn from the pool manager and sent onward during swaps.
  • [info] Unverified source: No source is available, so the exact fee logic, treasury handling and any edge cases cannot be fully verified from bytecode.

Contract details

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

Pools using Fee sharing hook