Likely fee sharing hook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
$16.44K
All-time volume
$1.55M
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
9,613

What it does

A fee-sharing hook that skims a protocol revenue share from pool swaps and routes the accumulated fees to a recipient and acquisition vault.

How it works step by step

  • Validates or records the pool when it is initialized
  • Takes a fixed protocol share of swap fees via beforeSwap and afterSwap return deltas
  • Accumulates the taken amounts as pending fees held in the hook
  • Mints and burns ERC6909 claims and uses the pool manager unlock and take flow to settle balances
  • Flushes accumulated fees to protocolRevenueRecipient or acquisitionVault
  • Exposes liquidity and donate callbacks whose exact effects are not confirmed from bytecode
Swap behaviour
beforeSwap and afterSwap run on every swap and use return deltas to take a protocol fee share from the swap amounts.
Liquidity behaviour
Has beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity callbacks, which are decoded but whose internal behaviour cannot be fully determined from the bytecode alone.
Fee behaviour
Exposes LP_FEE, FEE_BPS, PROTOCOL_REVENUE_BPS and BPS constants and a pendingFees view, which indicates the hook skims a protocol share of swap fees into pending balances and routes them to protocolRevenueRecipient or acquisitionVault; exact split logic cannot be confirmed without source.
Owner & admin controls
No admin controls found. No owner, pause or upgrade selectors were decoded; the only storage slot is two uint8 flags used by beforeSwap and flush, so admin control cannot be determined from the decoded functions alone.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize validate or record the pool at creation; beforeSwap and afterSwap run custom logic around swaps; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or supply a share of swap amounts; liquidity and donate callbacks are decoded but their purpose is only partially known.

Security & trust assessment

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

Who controls it: Constants such as FEE_BPS and PROTOCOL_REVENUE_BPS are exposed as views, suggesting fixed parameters; a privileged address controlling protocolRevenueRecipient or acquisitionVault could redirect accumulated fee revenue, but no setter selectors were decoded to confirm this.

Risk to user funds: The hook can take a share of swap amounts through return deltas and holds accumulated fee balances (pendingFees) until flush distributes them to the revenue recipient and acquisition vault; it does not appear to block swaps from decoded selectors, but full exposure cannot be verified without source.

Security findings

  • [medium] Hook takes swap amounts via return deltas: The hook sets return deltas in beforeSwap and afterSwap, meaning it can take a share of swap amounts from users or the pool before the swap settles.
  • [medium] Hook moves and holds currency: The hook calls poolManager unlock, take, mint and burn and uses ERC6909 claims, so it moves and holds protocol-owned balances inside the pool manager.
  • [low] Fees accumulate in the hook before distribution: A pendingFees view and flush function indicate accumulated fees are held by the hook until flushed to recipients, so funds sit in the hook contract between flushes.
  • [info] Recipient and split parameters not verifiable: Recipient addresses are read from storage and fee split is fixed by constants; without source, whether these can be changed by an owner is unknown.

Contract details

Verified source
No
Bytecode size
8,090 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, moves-currency, return-delta, self-unlock

Pools using Likely fee sharing hook