Token hook on Robinhood Chain

Uniswap v4 Hook Contract 0x6e28a8f176b4574bb666fa9f1a280170de8aa0cc on Robinhood Chain · Token

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

What it does

This is a token-plus-hook that appears to charge every swap in its pool an unverified levy and pay the proceeds out to fixed payees, while LPs can add and withdraw liquidity freely.

This read was written for the hook 0xd0fb…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

  • The hook is also an ERC-20 token with permit support, and it hooks into its own Uniswap v4 pool.
  • On swaps it can collect a levy using swap return deltas and track the total in a 'levied' counter.
  • Collected funds appear to be held in a 'cellar' and paid out through a 'draw' function to payees indexed by slot number.
  • A one-time 'opened' flag is set when the pool is initialized, which appears to gate trading or setup.
Swap behaviour
Before and after each swap the hook updates internal counters and can change swap amounts through return deltas, most likely to take a levy. The exact levy rate and any restrictions cannot be confirmed from bytecode alone.
Liquidity behaviour
No liquidity callbacks; LPs can add and withdraw freely.
Fee behaviour
A swap levy appears to be taken via return deltas and pulled from the PoolManager. It is accumulated for later distribution to payees through draw(). The exact percentage and recipient split are unknown from bytecode.
Owner & admin controls
An owner address exists, but no obvious owner-only setter functions were decoded. draw(uint8) moves accrued funds to fixed payees, and its caller restrictions are unknown.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: sets up or opens the pool once; beforeSwap: records state and can adjust the swap input; afterSwap: can take a levy from the swap result; beforeSwapReturnDelta/afterSwapReturnDelta: let the hook take tokens from swaps.

Security & trust assessment

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

Who controls it: An owner exists, but no admin setters were identified. Payees for collected levies appear to be fixed, though this is unconfirmed.

Risk to user funds: The hook can take an unknown portion of swap amounts as a levy. LP principal cannot be locked or charged on withdrawal.

Security findings

  • [medium] Unverified swap levy: Swap return deltas are enabled and the hook pulls tokens from the PoolManager. The levy size cannot be verified without source.
  • [info] Payout via draw: Accrued levies are paid out to payees selected by index. Who can trigger this and the recipients are not verifiable from bytecode.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw.

Contract details

Verified source
No
Bytecode size
6,640 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta, self-unlock

Pools using Token hook