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
- ETH / Bucket (1.00% fee) — 24h volume $6.47K, TVL $159.39K, 85 swaps today