Fee sharing hook on Robinhood Chain

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

Volume (24h)
$6.47K
Value locked (TVL)
$159.39K
All-time volume
$4.16M
Pools using this hook
1
Swaps (24h)
85 (30 traders)
Total swaps
31,599

What it does

Appears to take a fixed fee on swaps through return-delta accounting and direct it to a treasury, with liquidity callbacks passing through unchanged.

How it works step by step

  • Reads a fixed fee rate in basis points exposed as FEE_BPS()
  • Intercepts swaps in beforeSwap and afterSwap and adjusts settled amounts via return deltas
  • Routes the collected fee to an address returned by treasury()
  • Mints ERC-6909 claim tokens via mint(address,uint256,uint256) as part of accounting
  • Passes liquidity add, remove and donate callbacks through without decoded logic
Swap behaviour
beforeSwap and afterSwap run on every swap and use return deltas to skim a fee-bps share of the swap amount to the hook, likely routed to the treasury.
Liquidity behaviour
Liquidity add and remove callbacks are present as view stubs with no decoded state changes; liquidity handling appears to be pass-through.
Fee behaviour
A fixed fee in basis points is exposed via FEE_BPS(); the hook can take a share of swap output through afterSwap return deltas and forward it to a treasury address returned by treasury().
Owner & admin controls
No admin controls found in decoded selectors; treasury() and FEE_BPS() are read-only getters, no owner or setter selectors were decoded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize are used to validate or set up pool state; beforeSwap and afterSwap run custom swap logic; beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the swap amounts it settles, which is how a fee or treasury skim would be taken; beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, beforeDonate and afterDonate are present as view stubs.

Security & trust assessment

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

Who controls it: No owner or upgrade selector was decoded, so no privileged key was identified. The treasury address is read from a getter and could be fixed or set by logic not visible in the selectors.

Risk to user funds: The hook can hold and move swap tokens through return deltas and minted claim balances. The amount is set by FEE_BPS, which appears not to be changeable from decoded selectors, so exposure is bounded by that fixed fee rate, though this is unverified.

Security findings

  • [medium] Hook takes swap value via return deltas: The hook has return deltas enabled before and after swaps, so it can take a portion of swap amounts and settle them to itself or a treasury address.
  • [info] ERC-6909 claim minting: The bytecode references mint(address,uint256,uint256) with an ERC-6909 claims tag, so the hook may mint claim tokens to itself as part of fee accounting.
  • [info] Parameters appear immutable from selectors: No setter or access-control selectors were decoded, so the fee rate and treasury appear fixed, but this is inferred from selectors alone without source.

Contract details

Verified source
No
Bytecode size
7,243 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, return-delta

Pools using Fee sharing hook