Fee sharing hook on Robinhood Chain

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

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

What it does

Swaps through this pool pay a fixed inbound or outbound toll, at rates not readable from bytecode, that the hook collects and forwards to a keeper, while LPs can add and withdraw liquidity freely.

This read was written for the hook 0xe6f2…a0cc on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Charges a toll on swaps through its pool, with separate inbound and outbound toll rates that are fixed constants in the code (exact values not readable from bytecode).
  • Collects the toll from swap amounts using return deltas and holds it in the hook until it is sent on to a keeper address.
  • Runs a check when a pool is created and can refuse to initialize pools that do not match its expected setup.
  • Can hold a Uniswap v4 LP position NFT under a time lock, with functions to extend, release, or dissolve that lock and to skim yield from it.
Swap behaviour
On every swap the hook can take a toll from the input before the swap or from the output after it, depending on swap direction. The rates come from fixed inbound and outbound constants whose exact percentages could not be confirmed from bytecode.
Liquidity behaviour
No liquidity callbacks are enabled, so ordinary LPs can add and withdraw freely. The hook may separately hold its own locked LP position NFT, which only affects that position.
Fee behaviour
A direction-based swap toll, set by hard-coded inbound and outbound rates (exact values unknown from bytecode), is collected by the hook and later forwarded through a remit function to the keeper address.
Owner & admin controls
A keeper address can appoint a new keeper, receive remitted tolls, and manage the hook's own locked LP position (engage, extend, release, dissolve, skim yield). A recover function exists but refuses protected pool assets; toll rates appear to be constants and not changeable.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: validates and records the single allowed pool; beforeSwap: tracks the swap and can take a toll from the input; afterSwap: settles or takes the toll from the output; beforeSwapReturnDelta and afterSwapReturnDelta: let the hook deduct the toll from swap amounts.

Security & trust assessment

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

Who controls it: A single keeper address receives accumulated tolls and manages the hook's locked LP position and token recovery. It does not appear able to change toll rates or touch other LPs' funds.

Risk to user funds: The hook can take a toll from each swap's input or output at fixed but unverified rates; other LPs' principal cannot be locked or taken because withdrawal callbacks are disabled.

Security findings

  • [medium] Swap toll via return deltas: The hook deducts a toll from swap input or output using return deltas. The rates are constants, but their exact size cannot be verified from unverified bytecode.
  • [info] Keeper-managed locked position: The keeper controls an LP NFT held by the hook under a time lock; this concerns only the hook's own position, not other LPs.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook cannot block or charge LP withdrawals.

Contract details

Verified source
No
Bytecode size
9,286 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, return-delta, self-unlock

Pools using Fee sharing hook