Skip to main content

LaunchProof Integration on Robinhood Chain

LaunchProof is a frontend and attribution layer over the official Uniswap Liquidity Launcher on Robinhood Chain. Its pools use the same Uniswap V4 PoolManager and launch strategies as launches created by other frontends, so contract addresses alone do not prove LaunchProof provenance.

Network and contracts

Treat these addresses as discovery boundaries, not attribution proof. The Instant and LBP strategies are shared official Uniswap deployments. Consume the append-only INSTANT_LAUNCH_DEPLOYMENTS registry from @uniswap/liquidity-launcher-sdk; never replace historical strategy rows when Uniswap redeploys the current stack. Validate each TokenDistributed event against that strategy’s immutable launcher() value, because historical strategies remain pinned to their historical launcher.

Attribution

Read the token’s immutable public UERC20 metadata() value. Batch that call with name(), symbol(), decimals(), and totalSupply() through Multicall3. A launch belongs to LaunchProof when its metadata contains either:
  • the exact description suffix Launched through Uniswap via launchproof.fun; or
  • an xVerificationToken in the JSON extraData field, using the same token shape accepted by the LaunchProof frontend.
Fail closed when the immutable metadata cannot be read or neither marker is present. This prevents all Robinhood Uniswap Launcher pools from being mislabeled as LaunchProof without scanning historical logs during pool resolution or extraction.

Pool discovery and ordering

Instant launches emit TokenLaunched; Crowd launches emit Migrated only when their auction graduates into the final V4 market. Validate the registered strategy and the corresponding distribution or auction state before claiming the shared event. Always derive token0 and token1 from the emitted or recovered Uniswap V4 PoolKey. Native currency is normalized from the V4 zero address to the chain-native sentinel. Never reorder the pair based on which token was launched: LaunchProof and generic Uniswap V4 resolution must produce the same ordering so historical pool-type backfills cannot invert price or reserves.

Price and liquidity

LaunchProof inherits the canonical Uniswap V4 state model. Read sqrtPriceX96, active liquidity, ticks, positions, and reserves through the existing V4 implementation. Compute the raw token1/token0 ratio as: sqrtPriceX96^2 / 2^192 Apply the token decimal adjustment once, and invert only for the requested display pair. Preserve reserve0 and reserve1 in PoolKey order. Swap handling must use the same V4 event decoder and hook-aware reserve logic as generic Uniswap V4 pools.

Bonding state

An Instant launch enters its final V4 pool immediately. In Mobula’s launchpad fields it is represented as bonded: false and bondingPercentage: 0; these values describe the absence of a completed Crowd auction, not an active AMM bonding curve. A Crowd auction is not indexed as a swappable AMM pool before migration. Once Migrated creates the final V4 pool, represent it as bonded: true and bondingPercentage: 100. There is no intermediate percentage to infer from the post-migration V4 pool.

Metadata and backfills

Use the immutable UERC20 metadata for logo, description, website, and social links. Read it in the same Multicall3 request as the standard ERC-20 metadata. The original launch receipt remains a fallback for older compatible token contracts that do not expose metadata(). During a historical backfill, classify LaunchProof before generic Uniswap Launcher, then persist the resolved pool type, token source, canonical V4 state, launch extras, bonding fields, and token metadata together. Keep the shared strategy factory rows unchanged because non-LaunchProof launches can use those same contracts. For a cold PoolManager swap, enable the fail-closed launchpad resolver only on chains where the corresponding launcher registry is deployed. Do not derive that decision from an empty protocol filter: an empty filter means all protocols. Emit a structured, counted alert whenever no exact launchpad resolver can classify the pool, and backfill the missing canonical pool before replaying its swaps.