Hook 0x78ff…b0cc on Robinhood Chain

Uniswap v4 Hook Contract 0x78ff9be3fb54e1a0cafc4b8515822ff95173b0cc on Robinhood Chain · Other

Volume (24h)
$16.32K
Value locked (TVL)
$44.21K
All-time volume
$518.55K
Pools using this hook
1
Swaps (24h)
84 (66 traders)
Total swaps
1,280

What it does

A Uniswap v4 hook that tracks pool registration, routes swap-derived fees and reflections into reward and LP sinks, and lets the owner pause trading and configure those sinks.

How it works step by step

  • Registers pools at initialization and stores pool configuration
  • Applies a per-pool fee on swaps (currentFeeBps)
  • Takes a share of swap output through return-delta accounting
  • Routes skimmed value to reflection, LP and royalty sinks
  • Lets the owner pause and unpause trading
  • Supports funding and withdrawing rewards and LP balances
Swap behaviour
beforeSwap and afterSwap run custom logic that reads pool state, applies a fee and takes a share of swap flow through return deltas, and can revert when swaps are paused or trading is not open.
Liquidity behaviour
afterInitialize and beforeInitialize hooks register and configure pools; liquidity-related functions (pullLp, lpPot, lpSink) suggest liquidity is routed into LP sinks, but the mechanics cannot be confirmed without source.
Fee behaviour
Fee is read per pool through currentFeeBps and set during pool registration (registerPool) and beforeSwap; the exact fee formula cannot be determined from the decoded bytecode alone.
Owner & admin controls
Owner (slot 0) can transfer ownership, set creator, configure and seal sinks, configure canonical router, pause or unpause swaps via setPaused, and can call pullLp/pullReflections style withdrawals through the sink configuration; the implementation is upgradeable through a proxy and initialize-style setup is present, so the implementation logic can be changed by whoever controls the proxy admin.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize run pool setup and registration checks; beforeSwap and afterSwap run fee and reflection logic and accounting; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take or give tokens on swaps, which is how fee and reflection amounts are skimmed from swap flow.

Security & trust assessment

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

Who controls it: The owner controls pausing, sink configuration, router configuration and pool-related settings; a compromised owner or proxy admin could redirect sink funds, pause trading indefinitely, or replace the implementation with malicious logic.

Risk to user funds: The hook can take and redirect swap tokens through return deltas and holds sink balances that owner-controlled functions can withdraw or reroute; a malicious or compromised owner or upgrade could divert user-related funds or block swaps.

Security findings

  • [medium] Return-delta swap accounting: The hook uses return deltas on beforeSwap and afterSwap, so it can take or modify swap amounts and tokens flowing through the pool.
  • [medium] Owner pause and sink reconfiguration: Owner can pause swaps through setPaused and change sink and router addresses, which can block trading or redirect fees.
  • [medium] Upgradeable proxy: The hook sits behind an upgradeable proxy, so the implementation can be replaced by the proxy admin without a pool-level migration.
  • [medium] Custodial balances in hook: The contract holds and moves ETH and token balances for reflections, LP and royalty sinks, with pullLp and pullReflections style withdrawals.
  • [info] Unverified source: No verified source is available, so behaviour is inferred from selectors and storage only.

Contract details

Verified source
No
Bytecode size
127 bytes
Upgradeable proxy
Yes
Detected patterns
moves-currency, ownable, pausable, return-delta, upgradeable

Pools using Hook 0x78ff…b0cc