Custom pricing hook on Robinhood Chain

Uniswap v4 Hook Contract 0x6d781dbec3aa280d12415f45595f7fd9fd8c60cc on Robinhood Chain · Custom pricing

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

What it does

This hook charges a levy on swaps through return deltas, collects it inside the hook, and lets a designated moneyer draw it out, so swaps may pay more than the base pool fee, but the exact direction and rate cannot be confirmed without source.

How it works step by step

  • Acts as a custom-accounting hook that is itself an ERC20 token (name, symbol, balanceOf, transfer, approve) with a total supply, minted and burned through the pool manager claims flow (mint, burn, take, unlock).
  • Uses beforeInitialize to record a pool setup (a stored bool flag and a uint256 at slot 7 are written there) and uses afterInitialize-style setup to hold a home tick spacing and a fixed rate parameter.
  • On swaps, beforeSwap and afterSwap read and update a levy-related counter (slot 9) and a draw/till accounting slot (slots 10 and 11), and can take a levy in currency through return deltas.
  • Exposes a draw(uint256) function that moves accumulated levy-related balance out for a moneyer address, with a levy-drawn counter tracked on chain.
  • Implements liquidity callbacks (beforeAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity, afterAddLiquidity) that are present as pure stubs and do not change accounting.
  • Carries Ownable administration (owner, renounceOwnership, transferOwnership) and a lit/home/struckAt/till/levy view surface.
Swap behaviour
beforeSwap and afterSwap are both enabled and can return deltas, so the hook can take a levy from swap amounts on swaps (levy is tracked in levyCollected and levyDrawn); the exact trade direction and rate cannot be confirmed without source, so which trades pay more is unclear.
Liquidity behaviour
Liquidity add and remove callbacks exist as pure stubs in the dispatch table; no liquidity accounting or return deltas are evident from the decoded bytecode.
Fee behaviour
A levy in basis points (LEVY_BPS) is taken from swap flow and accumulated in the hook, with a rateBps value; the hook does not appear to use a dynamic LP fee override.
Owner & admin controls
Owner (Ownable) can renounce or transfer ownership; the draw function moves levy balance to the moneyer; the owner-controlled till/moneyer roles and any parameter setting cannot be fully determined without source.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize sets initial pool state; beforeSwap and afterSwap take levy and read or write accounting slots with return deltas; beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the net amounts settled for swaps.

Security & trust assessment

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

Who controls it: The owner and moneyer roles can control the levy accounting and withdraw accumulated levy; a compromised key could drain collected levy balance.

Risk to user funds: The hook can take currency from swaps through return deltas and holds accumulated levy and claim balances, so it can move pool-related funds; with no verified source the exact conditions are unconfirmed.

Security findings

  • [medium] Return-delta levy on every swap: beforeSwap and afterSwap return deltas let the hook take a levy from swap amounts, so the hook can extract value from traders on each swap.
  • [medium] Owner-controlled draw of levy balance: draw(uint256) lets a moneyer address withdraw accumulated levy, and ownership controls who holds that role.
  • [medium] Ownable administration without verified source: Owner can transfer or renounce ownership, and privileged parameter roles cannot be verified because no source is available.
  • [info] Custom token inside hook: The hook is itself an ERC20 with mint and burn via the pool manager, which adds a second asset users may hold.

Contract details

Verified source
No
Bytecode size
8,078 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, moves-currency, ownable, return-delta, self-unlock

Pools using Custom pricing hook