GraduationGateHook on Robinhood Chain

Uniswap v4 Hook Contract 0x8479d26685eb2d70dda87c72fcfea8886dc9e000 on Robinhood Chain · Access control · Verified contract

Volume (24h)
$0
Value locked (TVL)
$9.76K
All-time volume
$0
Pools using this hook
4
Swaps (24h)
0 (0 traders)
Total swaps
10,065

What it does

A Uniswap v4 hook that only allows a pool to be initialized if it pairs the launchpad payment token with a token that has graduated, so trading pools open only after a launch graduates.

How it works step by step

  • Runs only in beforeInitialize, which is the sole enabled hook permission.
  • Rejects calls not coming from the Uniswap v4 pool manager.
  • Requires exactly one currency in the pool to equal the immutable payment token.
  • Takes the other currency as the launch token and rejects a zero address.
  • Queries the graduation registry and reverts with TokenNotGraduated if the launch token has not graduated.
  • Returns the beforeInitialize selector when all checks pass.
Swap behaviour
No swap callbacks.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee; the hook does not touch fees.
Owner & admin controls
No admin controls found in the hook. Its only immutables are poolManager, paymentToken and graduationRegistry, set in the constructor; there is no owner, pause or upgrade path. The external graduationRegistry it reads is controlled by the launchpad factory, which can change graduation status.

Enabled Uniswap v4 callbacks

beforeInitialize

beforeInitialize only: reverts pool initialization unless the pool pairs the launchpad payment token with a launch token that the graduation registry reports as graduated.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: The hook has no privileged key. Gating depends on the graduation registry, which the launchpad factory controls; the factory could mark tokens as graduated or affect which tokens can be initialized in pools.

Risk to user funds: The hook does not hold, move or return tokens and has no callbacks affecting swaps or liquidity. Its only effect is to revert pool initialization for ungraduated tokens, so it cannot directly lock user funds.

Security findings

  • [info] Pool creation gated by graduation status: beforeInitialize returns the selector only if the pool contains paymentToken on one side and a graduated launch token on the other; otherwise it reverts, so non-graduated tokens cannot create gated pools.
  • [low] Dependency on external graduation registry: The hook reads graduationRegistry.isTokenGraduated at pool creation time. Graduation status is controlled by the external launchpad factory, so trust is placed in that contract.
  • [info] No fund custody or transfers: The constructor enforces that the hook address carries only the BEFORE_INITIALIZE flag, and the hook holds no token balances and has no transfer paths, so it cannot hold, move or block user funds.

Contract details

Verified source
Yes (GraduationGateHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
986 bytes
Upgradeable proxy
No
Detected patterns
launchpad

Pools using GraduationGateHook