Fee sharing hook on Robinhood Chain

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

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

What it does

This hook takes a basis-point share of liquidity added and removed from the pool and routes it to a treasury, leaving swap fees unchanged, so LPs receive less on liquidity exits while traders pay the pool's standard fee.

How it works step by step

  • Hooks afterAddLiquidity and afterRemoveLiquidity and takes a return delta on both, so part of the liquidity flow is diverted from the pool to the hook.
  • Accrues treasury revenue per address in a mapping and exposes it through treasuryRevenue(address).
  • Holds a configurable treasury share expressed in basis points (TREASURY_SHARE_BPS) against a BPS_DENOMINATOR constant.
  • Pulls funds out of the pool through the PoolManager unlock flow (unlockCallback, take, mint and burn selectors), then lets the treasury withdraw via withdrawTreasuryRevenue.
  • Uses ERC20 transfer and ERC6909 claim mechanics, so the revenue may be held as claim balances rather than plain tokens.
  • Restricts pool initialization through beforeInitialize and afterInitialize, which are part of the hook's setup path.
Swap behaviour
No swap callbacks.
Liquidity behaviour
On add and remove liquidity, the hook takes a share of the liquidity delta as a return delta and records it as treasury revenue, which changes the amounts LPs receive relative to a plain pool.
Fee behaviour
Fees are shared with a treasury at a basis-point share (TREASURY_SHARE_BPS); the pool's swap fee is not modified by the hook, and the split is taken from liquidity-change flows rather than swaps.
Owner & admin controls
withdrawTreasuryRevenue(address,uint256) is nonpayable and callable from the bytecode; the decoded bytecode does not reveal an owner check, so the caller restriction could not be confirmed. Selectors 0xa8c69caa and 0xb162fdf4 are unnamed nonpayable functions that write the state slots for the owner-like storage at slot 2; their purpose is undetermined.

Enabled Uniswap v4 callbacks

beforeInitialize, afterAddLiquidity, afterRemoveLiquidity, afterAddLiquidityReturnDelta, afterRemoveLiquidityReturnDelta

beforeInitialize and afterInitialize gate or configure pool setup; afterAddLiquidity and afterRemoveLiquidity compute the treasury cut; afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta let the hook take that cut as a return delta.

Security & trust assessment

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

Who controls it: A privileged key, if one exists in slot 2, could potentially change the treasury share or withdraw accrued revenue; the exact authority could not be confirmed from decoded bytecode.

Risk to user funds: The hook can take tokens from LP add and remove flows via return deltas and holds accrued revenue balances, so LP proceeds are partly exposed to the hook and its treasury withdrawal path.

Security findings

  • [medium] Return-delta fee capture on liquidity changes: afterAddLiquidityReturnDelta and afterRemoveLiquidityReturnDelta allow the hook to take a share of LP flows, so LP withdrawals can be reduced by the hook without LP consent.
  • [high] Withdrawal may lack caller restriction: withdrawTreasuryRevenue(address,uint256) is nonpayable and the decoded bytecode shows no clearly identifiable owner gate, so an unauthorised caller might be able to drain accrued treasury revenue if the check is absent.
  • [medium] Unnamed state-writing functions: Selectors 0xa8c69caa and 0xb162fdf4 write to storage slot 2 (the admin-like slot) and their access control could not be determined from bytecode alone.
  • [info] Currency movement via unlock flow: The hook calls take, mint and burn through the PoolManager unlock callback, so it can move pool currency and claim balances.

Contract details

Verified source
No
Bytecode size
12,157 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, fee-sharing, moves-currency, return-delta, self-unlock

Pools using Fee sharing hook