Fee sharing hook on Robinhood Chain

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

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

What it does

This hook takes a fee on swaps in this pool, which it accumulates for a fee recipient to withdraw, though exactly which trades pay more or less could not be confirmed from the bytecode.

How it works step by step

  • Acts as an ERC20-style token launchpad hook: exposes name, symbol, decimals, totalSupply, balances and allowances, plus a launcher address and metadata URI.
  • Sets a fee in basis points (feeBps) and a fixed pool fee (POOL_FEE) and tracks fees accrued and pending for a fee recipient.
  • On beforeSwap and afterSwap it can take a share of swap amounts through return deltas, accumulating fees in storage slots 8 and 9.
  • Allows the fee recipient or privileged caller to withdraw accumulated fees via withdrawFees, tracking totalWithdrawn.
  • Has an unlockCallback path that calls the pool manager unlock and take functions to move currency during swaps.
  • Includes BURN_ADDRESS, BURN_SUPPLY and LP_SUPPLY constants suggesting a burn or supply split mechanic tied to the launched token.
Swap behaviour
beforeSwap and afterSwap are both enabled with return-delta permissions, so the hook can alter the amounts a swap settles and take a fee from the swap; the exact direction (which trades pay more or less) cannot be determined from decoded bytecode alone.
Liquidity behaviour
beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity are present as view-selector entries, and no liquidity hook permission is enabled, so liquidity callbacks are not invoked on the pool.
Fee behaviour
Fee is a configurable feeBps value with fees accrued into storage and withdrawable by the fee recipient; the pool itself uses a POOL_FEE value.
Owner & admin controls
A fee recipient can withdraw accumulated fees via withdrawFees; no explicit owner, pause or upgrade function was identified from the decoded selectors.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize sets canonical pool id and initialization flag; beforeSwap and afterSwap apply fee logic and update fee accounting; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take currency from swap deltas.

Security & trust assessment

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

Who controls it: Whoever controls the fee recipient or withdrawal authority can collect accumulated fees; if the fee rate is adjustable, that key could raise the fee charged on swaps.

Risk to user funds: The hook can take currency from swaps through return deltas and holds accrued fee balances in its own storage/token balance, so user swap proceeds are exposed to fee capture.

Security findings

  • [medium] Return-delta fee capture: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the hook moves currency via take and unlock, so it can skim value from every swap on this pool.
  • [medium] Privileged fee withdrawal: withdrawFees(uint256) lets a privileged caller pull accumulated fees; the access check could not be confirmed from bytecode.
  • [info] Fee rate parameter: feeBps is stored and readable; whether it can be changed by an admin could not be determined from the decoded functions.
  • [info] Unverified source: No verified source is available, so access control and fee bounds are inferred only from selectors and storage.

Contract details

Verified source
No
Bytecode size
7,428 bytes
Upgradeable proxy
No
Detected patterns
erc20, fee-sharing, launchpad, moves-currency, return-delta, self-unlock

Pools using Fee sharing hook