Fee sharing hook on Robinhood Chain
Uniswap v4 Hook Contract 0xabffb8900046fd281e3441aae7399c7f5bac60cc on Robinhood Chain · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- $12
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 38 (14 traders)
- Total swaps
- 38
What it does
This hook takes a buy or sell fee on swaps in this pool and holds the collected fees for a recipient to claim, with the exact direction that pays more not determined from the bytecode.
How it works step by step
- Registers pool initialization via beforeInitialize, reading stored pool parameters for a launch pool
- Applies a buy fee and a sell fee in basis points, read from storage slot 5 (buyFeeBps and sellFeeBps)
- Takes a fee from swaps through beforeSwapReturnDelta and afterSwapReturnDelta, so the hook receives currency during swaps
- Accumulates collected fees in storage (totalCollected and accrued) and tracks them per pool id
- Forwards accrued fees to a recipient address through claimFees, which calls transfer on an ERC20 token
- Decodes bytecode consistent with a launchpad fee-sharing hook that reads a launcher address and a poolId
- Swap behaviour
- Swaps call beforeSwap and afterSwap. The hook takes a buy or sell fee in basis points, depending on swap direction, and records it through return deltas. Which direction pays the higher fee is not determined from the decoded bytecode alone.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Fees are taken as buyFeeBps and sellFeeBps, which are read from storage. Fee collected is accumulated in totalCollected and accrued, and claimFees transfers accrued amounts to the recipient.
- Owner & admin controls
- No owner or pause selector was decoded. The contract stores a launcher address, a recipient address and fee values, but whether any setter exists could not be determined from the decoded functions.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize validates or records the pool at creation. beforeSwap and afterSwap apply and account for the fee on each swap. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take a share of the swap amounts as a return delta.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The stored launcher and recipient addresses control where fee revenue goes. If fees are adjustable or the recipient can be changed, a privileged key could redirect fee income. This cannot be confirmed from decoded bytecode.
Risk to user funds: The hook takes a portion of each swap through return deltas and holds accrued fee tokens until claimFees is called, so user swap amounts are affected by the fee.
Security findings
- [medium] Return-delta fee capture: Both beforeSwapReturnDelta and afterSwapReturnDelta are enabled, so the hook takes currency from swaps and can change the amounts the trader receives or pays.
- [low] Fee values in storage: buyFeeBps and sellFeeBps are read from packed storage slot 5. If a setter exists, the fee could be changed after launch; no setter was decoded, so this cannot be confirmed.
- [low] Fund transfer to recipient: claimFees transfers accrued tokens to a stored recipient address. The recipient and the claim authorisation rules were not decoded.
Contract details
- Verified source
- No
- Bytecode size
- 3,465 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, fee-sharing, launchpad, moves-currency, return-delta
Pools using Fee sharing hook
- ABYSS / BLACK (0.30% fee) — 24h volume $0, TVL $12, 38 swaps today