> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobula.io/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Integrate LaunchProof on Robinhood Chain

> LaunchProof integration guide for Robinhood Chain: Uniswap Liquidity Launcher attribution, Instant and Crowd launches, V4 pricing, liquidity, bonding state, and token metadata.

# 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

| Role                                      | Robinhood Chain address                      |
| ----------------------------------------- | -------------------------------------------- |
| Current LiquidityLauncher                 | `0x0000FffFBE8efE702c8703aE3477FF5dE3d319C0` |
| Current Instant strategy, creator fees    | `0x23f8209572b4a1C2AD88A42749E830791Fb027f1` |
| Current Instant strategy, no creator fees | `0xAD44D55E7f8337C3cE113fBb591486E85be104b2` |
| LBP strategy used by Crowd launches       | `0x05d552391067389EE44fec3924157ed33F976000` |
| UERC20 token factory                      | `0x000000e200088D55C39a11F609E5F667729ad49b` |
| CCA factory                               | `0x000000001F26a0044BaA66024e7b6599c61963F8` |
| Uniswap V4 PoolManager                    | `0x8366a39cc670b4001a1121b8f6a443a643e40951` |

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.
