Hook 0x3493…2ac0 on Robinhood Chain

Uniswap v4 Hook Contract 0x3493b97fbf6917c91cab8e2ba9c871d31aa82ac0 on Robinhood Chain · Other

Volume (24h)
$154.60K
Value locked (TVL)
$11.30K
All-time volume
$154.60K
Pools using this hook
34
Swaps (24h)
2,014 (270 traders)
Total swaps
2,014

What it does

A Uniswap v4 hook with swap and liquidity gating plus admin-controlled routing and gas policy, whose exact trader and LP effects cannot be confirmed without verified source.

How it works step by step

  • Gates swaps through beforeSwap and afterSwap, with checks on trusted routers and a global pause flag
  • Gates liquidity additions and removals, with third-party liquidity possibly blocked
  • Restricts pool initialization to authorized initializers
  • Enforces a gas policy (minimum gas before and after canonical execution and at entry)
  • Manages residue and float balances with withdraw, sweep and take functions
  • Uses a self-unlock callback to run pool-manager operations
Swap behaviour
beforeSwap and afterSwap are implemented and call the pool manager unlock and currency-moving functions; swaps are likely restricted to trusted routers and subject to pause and gas-policy checks.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are implemented; they appear to gate liquidity (a ThirdPartyLiquidityBlocked error suggests third-party liquidity may be restricted). Exact logic cannot be confirmed without source.
Fee behaviour
Could not determine from decoded bytecode; fee-related selectors such as fee() appear only as external calls. Assume the pool's static fee unless the hook overrides it, which cannot be confirmed here.
Owner & admin controls
Admin address (slot 0) can set admin, set global pause, set residue recipient, set trusted routers, trusted quoters and keepers, configure gas policy (setGasPolicy), and sweep tokens via sweep(address,address). No upgrade proxy pattern detected.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap

beforeInitialize restricts initialization (UnauthorizedInitializer error). beforeAddLiquidity and beforeRemoveLiquidity likely gate liquidity actions. beforeSwap and afterSwap run routing, gas and accounting logic for swaps, including a self-unlock pattern through unlockCallback.

Security & trust assessment

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

Who controls it: The admin key can pause the hook globally, change trusted routers and quoters, grant keeper roles, change gas policy, redirect residue to a chosen recipient and sweep tokens held by the contract. These are powerful controls over funds the hook holds.

Risk to user funds: The hook has custody-like functions (sweep, take, transferFrom, withdrawFloat) and can move tokens during swap and liquidity callbacks. Admin-controlled pause and sweep could block or drain value held by the hook.

Security findings

  • [high] Admin token sweep and residue redirection: sweep(address,address) and setResidueRecipient let the admin move tokens the hook holds, and residue accounting can route value to a chosen address.
  • [medium] Global pause and router allowlist: setGlobalPaused and trusted router allowlisting can block or restrict swaps and liquidity actions for all users.
  • [medium] Hook moves currency during swaps: The hook calls poolManager unlock and take/transfer selectors inside swap callbacks, so it moves currency during pool operations. Behaviour depends on unverified logic.
  • [info] Unverified source: No source is available, so the exact fee, rebalancing and pricing logic could not be verified.

Contract details

Verified source
No
Bytecode size
24,572 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, self-unlock

Pools using Hook 0x3493…2ac0