Fee sharing hook on Robinhood Chain

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

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

What it does

A fee-taking hook that skims a basis-point fee on swaps in pools it is registered to, accumulates it per pool, and routes it to a registered fee recipient.

How it works step by step

  • Registers pools with a fee recipient through registerPool
  • Computes a basis-point fee on swaps in beforeSwap and afterSwap
  • Takes the fee from swap amounts using return deltas and take()
  • Tracks accumulated fees per pool via feesTaken
  • Routes collected fees to the per-pool feeRecipient
  • Owner can transfer ownership and set the factory address
Swap behaviour
On beforeSwap and afterSwap the hook computes a fee in basis points, takes it through return deltas and take(), and records it as feesTaken for the pool.
Liquidity behaviour
Before/after add and remove liquidity callbacks exist but appear to be pass-through (view stubs); no clear liquidity manipulation identified from the decoded bytecode.
Fee behaviour
Hook takes a fee expressed in basis points (FEE_BPS, BPS selectors present) on swaps and accumulates it per pool (feesTaken). Fees are routed to a per-pool feeRecipient registered via registerPool. Exact fee rate and split cannot be confirmed without source.
Owner & admin controls
Owner (slot 0) can transfer ownership and set the factory address (setFactory). Owner-gated functions are present (NotOwner error selector found). Pool registration via registerPool sets a fee recipient per pool. No pause or upgrade mechanism identified from the selectors.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: registers or validates pool setup. beforeSwap and afterSwap: compute and take the hook fee on swaps. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a share of swap amounts through return deltas, which is how the fee is captured from the pool.

Security & trust assessment

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

Who controls it: The owner can transfer ownership and change the factory address. Changing the factory or fee-related parameters could redirect future fee flows, though no fee-rate setter has been positively identified in the selectors.

Risk to user funds: The hook can take a portion of swap output via return deltas and take() calls, so swappers pay the hook fee. Liquidity providers are not directly held by the hook. Owner configuration changes could affect where accumulated fees are sent.

Security findings

  • [medium] Hook takes currency via return deltas: Hook uses beforeSwapReturnDelta and afterSwapReturnDelta and calls take(), so it moves pool currency on every swap it handles.
  • [medium] Owner-controlled configuration: An owner key controls ownership transfer and the factory address; a compromised key could redirect fee recipients or route fees elsewhere.
  • [info] Source not verified: Without verified source, the exact fee rate, cap, and recipient logic cannot be confirmed from bytecode alone.

Contract details

Verified source
No
Bytecode size
3,814 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, ownable, return-delta

Pools using Fee sharing hook