Fee sharing hook on Robinhood Chain

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

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$57.66K
Pools using this hook
17
Swaps (24h)
0 (0 traders)
Total swaps
1,851

What it does

A Uniswap v4 hook that captures part of swap activity and reinvests it into protocol-owned liquidity managed by an external FRLM contract.

How it works step by step

  • Initializes pool and oracle state after pool creation (afterInitialize)
  • Runs custom logic before and after each swap and returns token deltas (beforeSwap, afterSwap, return-delta permissions)
  • Notifies an external manager of fees collected from swaps (notifyFee)
  • Deposits to and withdraws from a FRLM liquidity manager for protocol-owned liquidity (depositToFRLM, withdrawFromFRLM)
  • Reinvests accumulated fees into liquidity (reinvest) with an owner-controlled pause (setReinvestmentPaused)
Swap behaviour
beforeSwap and afterSwap run custom logic and return deltas, so the hook can adjust token amounts and capture a share of swap value for reinvestment.
Liquidity behaviour
Liquidity add and remove hooks are wired, and deposit/withdraw functions move liquidity through an external FRLM contract, so pool liquidity is partly managed by the hook's liquidity manager rather than purely by LPs.
Fee behaviour
Hook returns a before/after swap delta and calls notifyFee on an external manager, suggesting it takes a portion of swap fees and routes them into protocol-owned liquidity (POL share per pool); exact split logic cannot be confirmed without source.
Owner & admin controls
Owner-gated functions are present (owner() is called), including setReinvestmentPaused(bool) which toggles a pause flag on reinvestment, and deposit/withdraw paths to a FRLM (fee/reinvestment liquidity manager) contract. Owner identity and whether it can be changed cannot be confirmed from bytecode alone.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

afterInitialize initializes oracle and pool state; beforeSwap and afterSwap run fee and reinvestment logic and read per-swap mode; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take or give tokens as part of swaps, which is used to capture fees for reinvestment.

Security & trust assessment

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

Who controls it: The owner can pause reinvestment and the external policy, dynamic fee and liquidity managers the hook references may be upgradeable or privileged; a compromised key could redirect managed liquidity or alter fee routing.

Risk to user funds: The hook can move and hold pool tokens via return deltas and liquidity deposit/withdraw paths into the FRLM, so user and POL funds are exposed to the correctness and privileges of those components.

Security findings

  • [medium] Return-delta permissions: Hook has beforeSwapReturnDelta and afterSwapReturnDelta enabled, so it can take or create token amounts during swaps, altering the effective price paid by traders.
  • [low] Owner-controlled pause: An owner-only pause flag controls reinvestment; pausing stops POL reinvestment but the reinvestment state is stored in slot 0 and writable by a single owner.
  • [medium] External manager dependencies: Hook depends on external managers (poolManager, liquidityManager, policyManager, dynamicFeeManager) whose code is not verified here, so trust is extended to those contracts.

Contract details

Verified source
No
Bytecode size
9,587 bytes
Upgradeable proxy
No
Detected patterns
return-delta

Pools using Fee sharing hook