Launchpad tokens go through a series of stages before they become fully tradeable on a DEX. This guide explains each stage, how to detect them with the Codex API, and which events fire along the way.This complements the Launchpads recipe which covers building a launchpad discovery UI.
The Stages
Tokens on bonding-curve launchpads (Pump.fun, Four.meme, LaunchLab, etc.) progress through these stages:| Stage | What’s happening | Key fields |
|---|---|---|
| Deployed | Token contract discovered on-chain | eventType: Deployed |
| Created | Metadata populated (name, symbol, image) | eventType: Created |
| Bonding | Trading on bonding curve, graduationPercent rising from 0→100 | eventType: Updated, graduationPercent < 100 |
| Completed | Bonding curve filled — waiting for migration | completed: true, migrated: false |
| Migrated | Liquidity moved to DEX pool — fully tradeable | migrated: true, migratedPoolAddress set |
Completed vs Migrated:
completed means the bonding curve is full. migrated means liquidity has actually moved to a DEX. For monitoring graduations via subscriptions, use Migrated events — Completed events are a legacy state and will be deprecated.Detecting Token State
Use thelaunchpad field on the token query to check a token’s current lifecycle stage.
Check a token's launchpad state
Check a token's launchpad state
Filtering by Stage
UsefilterTokens with launchpad filters to query tokens at each stage. These are the same filters that power the columns in the Launchpads recipe.
Tokens currently bonding (not yet graduated)
Tokens currently bonding (not yet graduated)
Recently migrated (graduated) tokens
Recently migrated (graduated) tokens
Filter by specific launchpad
Filter by specific launchpad
Use
launchpadName or launchpadProtocol to narrow down to a specific launchpad.Real-Time Lifecycle Events
Subscribe toonLaunchpadTokenEventBatch to receive events as tokens progress through each stage. Filter by eventType to listen for specific transitions.
New token creations
New token creations
Token stat updates (bonding curve activity)
Token stat updates (bonding curve activity)
Updated events fire as tokens trade on the bonding curve. These include statistics like price, volume, and holder counts — fields that aren’t available on Created or Migrated events.Token graduations (migrations)
Token graduations (migrations)
Subscribe to
Migrated events to detect when a token graduates from its bonding curve and moves to a DEX pool.Track a specific token's lifecycle
Track a specific token's lifecycle
Use
onLaunchpadTokenEvent with an address to follow a single token through all its stages.Event Types Reference
| Event Type | When it fires | Stats available? |
|---|---|---|
Deployed | Token contract discovered on-chain | No |
Created | Token metadata populated | No |
Updated | Token stats change (trades, price, holders) | Yes — price, volume, holders, sniper/bundler counts |
Completed | Bonding curve filled (legacy — use Migrated) | No |
Migrated | Liquidity moved to DEX pool | No |
UnconfirmedDeployed | Token discovered before finalization | No |
UnconfirmedMetadata | Metadata processed before finalization | No |
Statistics fields (
price, volume1, holders, sniperCount, etc.) are only populated on Updated events. Other event types signal a state change but don’t include these metrics.After Migration
Once a token migrates, it behaves like any other DEX token. You can switch from launchpad subscriptions to the standard Codex endpoints:| Data | Endpoint |
|---|---|
| Price & volume | pairMetadata using the migratedPoolAddress |
| Live price | onPairMetadataUpdated |
| Trades | getTokenEvents |
| Live trades | onTokenEventsCreated |
| Chart | getTokenBars |
| Live chart | onTokenBarsUpdated |
Protocols Without Bonding Curves
Some launchpad protocols don’t use bonding curves. Tokens on these protocols are created and immediately tradeable — they skip the bonding, completed, and migrated stages entirely.| Protocol | Has bonding curve? |
|---|---|
| Pump.fun | Yes |
| Four.meme | Yes |
| LaunchLab | Yes |
| Meteora DBC | Yes |
| boop.fun | Yes |
| Zora | No |
| Clanker | No |
| Baseapp | No |
| Virtuals | No |
launchpad fields graduationPercent, completed, completedAt, migrated, migratedAt, and migratedPoolAddress will be absent. These tokens will only emit Created and Updated events.
Check out the related endpoints and types:
- filterTokens — query tokens by launchpad stage
- token — get a token’s launchpad data
- onLaunchpadTokenEvent — single token lifecycle events
- onLaunchpadTokenEventBatch — batched lifecycle events
- LaunchpadTokenProtocol — supported protocols
- Launchpads recipe — building a launchpad discovery UI