Fee sharing hook on Robinhood Chain

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

Volume (24h)
$0.95
Value locked (TVL)
$73.14K
All-time volume
$14.69M
Pools using this hook
32
Swaps (24h)
3 (3 traders)
Total swaps
165,605

What it does

A Uniswap v4 hook that intercepts swaps to take a developer or treasury share of fees while registering and tracking pools.

How it works step by step

  • Registers pools on initialization and tracks them by token and index mappings
  • Intercepts swaps in beforeSwap and afterSwap to run custom accounting
  • Uses return deltas to take a configured share of swap flows
  • Sends collected currency to a treasury address via PoolManager take
  • Exposes a configurable devShareRate and fixed LP_FEE for pool setup
Swap behaviour
beforeSwap and afterSwap run custom logic and use return deltas to skim a share of swap amounts to the treasury.
Liquidity behaviour
Callbacks beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity exist in the selector table but are not in the enabled hook permissions, so they are not invoked by the PoolManager.
Fee behaviour
The hook exposes devShareRate, LP_FEE and FEE_DENOMINATOR getters and a treasury address, suggesting a portion of swap fees is redirected to a developer/treasury share via return deltas. The exact split logic and owner-adjustable rate could not be confirmed from bytecode alone.
Owner & admin controls
Owner (slot 0) can transfer or renounce ownership, set the treasury address (0x8b869b3b), set the config manager (0xe09562fc), and call 0x54d32f4e / 0x62595e0e which write to slots 3 and 4 (likely fee-share rate and pool registration). Owner or manager can call 0x0cf2178d and 0x05ac0784 (pool registration). Exact parameter effects are not confirmed without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: registers and validates pool setup (reads pool mapping). beforeSwap: runs custom logic on swaps and may return a delta. afterSwap: post-swap accounting or fee handling. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a share of the swap amounts directly, which is how a developer fee would be collected.

Security & trust assessment

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

Who controls it: The owner controls the treasury address and config manager, and can transfer or renounce ownership. A compromised owner key could redirect the developer/treasury share of fees to an attacker-controlled address or change the fee share rate.

Risk to user funds: The hook can take tokens from swaps through return deltas and transfers collected currency to a treasury address via PoolManager take calls. Users' swap proceeds are reduced by the developer share; pool principal is not directly withdrawable by the hook based on the selectors seen.

Security findings

  • [medium] Return-delta fee extraction: Hook is enabled with beforeSwapReturnDelta and afterSwapReturnDelta, so it can take a portion of swap amounts from users and pool flows.
  • [medium] Owner-controlled treasury destination: Owner can set the treasury address via selector 0x8b869b3b and the config manager via 0xe09562fc; a malicious or compromised owner could redirect collected fees.
  • [low] Single owner key, no timelock detected: Contract uses Ownable with transferOwnership and renounceOwnership, and an OwnableUnauthorizedAccount error, indicating single-key control with no timelock detected.
  • [info] Hook moves currency: Bytecode references take(address,address,uint256) on the PoolManager, so the hook moves currency out of the pool to the treasury or other recipients.
  • [info] No upgradeability detected: No proxy or upgrade selectors were detected, so the logic appears immutable, but this is inferred from selectors only.

Contract details

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

Pools using Fee sharing hook