> ## 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 RealFun on Robinhood Chain

> Complete RealFun integration guide for Robinhood Chain: contracts, ABI, Uniswap V3 pricing, liquidity tracking, locked liquidity launch, migration, and token metadata.

# RealFun Launchpad Integration on Robinhood Chain

Learn how to index and integrate the RealFun launchpad on Robinhood Chain, including contract discovery, ABI events, token pricing, liquidity, bonding state, graduation, and metadata.
RealFun launches each token directly into a locked Uniswap v3 token/WETH pool. There is no pre-migration bonding curve: the launch market is the final AMM from its first block.

## Network and contracts

| Role                  | Robinhood Chain address                      |
| --------------------- | -------------------------------------------- |
| Single-sided launcher | `0xa3A71925be892c609Ac4BE4EFe918Dc9C35fc5e8` |
| V3 factory            | `0x1f7d7550b1b028f7571e69a784071f0205fd2efa` |
| WETH                  | `0x0bd7d308f8e1639fab988df18a8011f41eacad73` |

Read `weth()` and `v3Factory()` from the launcher when possible rather than assuming configuration is immutable.

## Market discovery and ABI

Filter `TokenCreated` by the launcher address because another protocol may use the same event signature. Resolve the market through `poolOf(token)` or `launches(token)`, then verify the pool's factory and exact `token0`/`token1` values. RealFun uses a 1% V3 pool at launch.

### Relevant ABI

```solidity theme={null}
event TokenCreated(
  uint256 ts,
  address creator,
  uint256 nonce,
  address token,
  string name,
  string symbol,
  string meta
);

function poolOf(address token) view returns (address);
function launches(address token) view returns (
  address pool,
  uint256 nonce,
  uint8 mode,
  address feeWallet,
  address distributor,
  bool exists
);
function weth() view returns (address);
function v3Factory() view returns (address);
```

Also index the standard V3 `PoolCreated`, `Swap`, `Mint`, `Burn`, `Collect`, and `Flash` events.

## Launchpad architecture and AMM model

RealFun is a token launchpad built directly on top of Uniswap v3-style locked liquidity. Instead of running a separate bonding curve, it launches the token immediately into its final concentrated-liquidity market and adds creation records, ownership, locking, and metadata.

**Classification: directly Uniswap v3-like from launch.** RealFun creates a locked 1% token/WETH concentrated-liquidity pool immediately; there is no custom pre-bonding AMM and no migration between pool models.

**Shared with V3:** exact token0/token1 ordering, `slot0`, `sqrtPriceX96`, ticks, signed swap deltas, and position liquidity. **Protocol-specific:** single-sided launcher attribution, locked launch liquidity, `poolOf`/`launches` records, and metadata carried by `TokenCreated`.

## Price calculation

Read `sqrtPriceX96` from `slot0()` or the latest `Swap` event:

`raw token1/token0 = sqrtPriceX96² / 2¹⁹²`

Apply `10^(decimals0-decimals1)` to obtain the decimal-adjusted token1/token0 price. Invert only for the requested display pair. Preserve the pool's on-chain order even when the launched token is token1.

## Liquidity tracking

Track signed `Swap` deltas and V3 `Mint`, `Burn`, `Collect`, and `Flash` events. Pool token balances at a fixed block are the simplest inventory measure. To calculate position amounts from concentrated liquidity, combine each position's liquidity and tick range with the current square-root price; liquidity `L` is not itself TVL.

Because RealFun liquidity is locked and final from launch, do not create a synthetic pre-bonding reserve or later migration market.

## Launchpad state, bonding, and migration

RealFun has no bonding or migration phase. Once a valid `TokenCreated` record and its verified V3 pool exist, the token is already in its terminal market state. For systems exposing generic launchpad fields, represent this as bonded/completed with 100% progress, while clearly identifying that this means “launched directly into the final AMM,” not “a curve reached a threshold.”

## Metadata

`TokenCreated` provides creator, name, symbol, timestamp, nonce, and `meta`. The `meta` value may be:

* an HTTPS/IPFS URL to JSON;
* a direct image URL;
* protocol metadata containing image, description, website, Twitter/X, and Telegram.

Normalize decentralized-storage URLs, parse JSON when applicable, and merge it with ERC-20 `name()`, `symbol()`, `decimals()`, and `totalSupply()`. Keep the event fields as the authoritative launch context.

## Historical indexing notes

Use block-scoped reads when initializing old pools. Replay events in `(blockNumber, transactionIndex, logIndex)` order and never combine historical events with a `latest` pool snapshot.

## Related Robinhood Chain launchpad integrations

* [ApeStore launchpad integration on Robinhood Chain](/almanac/robinhood-launchpads/apestore)
* [DYOR.fun launchpad integration on Robinhood Chain](/almanac/robinhood-launchpads/dyorfun)
* [Long.xyz launchpad integration on Robinhood Chain](/almanac/robinhood-launchpads/longxyz)

For broader methodology, see [Bonding Curves Mathematics](/almanac/bonding-curves) and [Pricing Engine Deep Dive](/almanac/pricing-engine).
