Fee sharing hook on Robinhood Chain

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

Volume (24h)
$6.01K
Value locked (TVL)
$0
All-time volume
$6.01K
Pools using this hook
1
Swaps (24h)
78 (39 traders)
Total swaps
78

What it does

A Uniswap v4 hook that takes a configurable fee on swaps in pools registered by a launcher and routes the collected amounts to a treasury.

This read was written for the hook 0xdadb…20cc on Ethereum and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Registers pools through a launcher-restricted registerPool call during initialization
  • Charges a fee in basis points on swaps, capped by MAX_FEE_BPS
  • Uses return deltas so the fee is taken from the swap amounts
  • Tracks total collected fees in totalCollected
  • Forwards fee revenue to a configurable treasury address
  • Lets the owner rescue tokens and rotate the treasury and launcher
Swap behaviour
beforeSwap and afterSwap take a basis-point fee from the swap via return deltas and record it in totalCollected.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
A fee in basis points (feeBps, capped by MAX_FEE_BPS) is taken from swaps in beforeSwap/afterSwap via return deltas and accumulated in totalCollected, then routed to the treasury; exact fee math cannot be confirmed without source.
Owner & admin controls
Owner (two-step transfer via transferOwnership/acceptOwnership, renounceOwnership) can set the treasury (setTreasury), set the launcher (setLauncher) and rescue tokens (rescue). Pool registration is restricted to the launcher; the owner cannot change the fee cap MAX_FEE_BPS from the decoded functions since it appears as a constant view.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize validates or registers the pool at initialization; beforeSwap and afterSwap take a fee in the swap currency and account it; beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the swap's delta to collect that fee.

Security & trust assessment

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

Who controls it: The owner can redirect collected fees by changing the treasury, can change the launcher address that registers pools, and can rescue tokens held by the hook. Ownership is transferable and renounceable.

Risk to user funds: The hook takes tokens through return deltas during swaps and may temporarily hold collected fees before they are forwarded; the owner can rescue those tokens, so user-side value in the hook is exposed to the owner key.

Security findings

  • [info] Return-delta fee collection: Hook uses beforeSwapReturnDelta and afterSwapReturnDelta, so it can take a share of swap amounts through the pool manager's take function.
  • [medium] Owner rescue function: rescue(address,address) lets the owner move arbitrary tokens held by the hook, which may include collected fees.
  • [medium] Owner-controlled fee destination: setTreasury lets the owner redirect fee revenue to any address without a timelock visible in the bytecode.
  • [low] Launcher control over pool registration: The owner can change the launcher, which controls registerPool; a malicious launcher could register pools with arbitrary parameters.

Contract details

Verified source
No
Bytecode size
5,435 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta

Pools using Fee sharing hook