Genesis Commands

Launch (API)

What You'll Do

Use the Genesis API to create and register token launches in a single command:

  • Create a complete token launch with genesis launch create
  • Register an existing genesis account with genesis launch register

Summary

The genesis launch commands provide a streamlined way to launch tokens using the Genesis API. Instead of manually creating a genesis account, adding buckets, finalizing, and registering separately, the API handles the full flow.

  • genesis launch create: All-in-one command — builds transactions via the API, signs and sends them, and registers the launch
  • genesis launch register: Registers an existing genesis account on the Metaplex platform to get a public launch page
  • metaplex.com compatible: Launches created or registered through the API appear on metaplex.com with a public launch page
  • Total supply: Currently fixed at 1,000,000,000 tokens
  • Deposit period: Currently 48 hours

Out of Scope

Manual genesis account creation, individual bucket configuration, presale setup, frontend development.

Jump to: Launch Create · Launch Register · Locked Allocations · Common Errors · FAQ

Launch Create

The mplx genesis launch create command creates a new token launch via the Genesis API. It handles the entire flow:

  1. Calls the Genesis API to build the on-chain transactions
  2. Signs and sends them to the network
  3. Registers the launch on the Metaplex platform
Create a token launch
mplx genesis launch create \
--name "My Token" \
--symbol "MTK" \
--image "https://gateway.irys.xyz/abc123" \
--tokenAllocation 500000000 \
--depositStartTime 2025-03-01T00:00:00Z \
--raiseGoal 200 \
--raydiumLiquidityBps 5000 \
--fundsRecipient <WALLET_ADDRESS>

Required Flags

FlagDescription
--name <string>Token name (1–32 characters)
--symbol <string>Token symbol (1–10 characters)
--image <string>Token image URL (currently must start with https://gateway.irys.xyz/)
--tokenAllocation <integer>Launch pool token allocation (portion of 1B total supply)
--depositStartTime <string>Deposit start time (ISO date string or unix timestamp)
--raiseGoal <integer>Raise goal in whole units (e.g. 200 for 200 SOL)
--raydiumLiquidityBps <integer>Raydium liquidity in basis points (2000–10000, i.e. 20%–100%)
--fundsRecipient <string>Funds recipient wallet address

Optional Flags

FlagDescriptionDefault
--description <string>Token description (max 250 characters)
--website <string>Project website URL
--twitter <string>Project Twitter URL
--telegram <string>Project Telegram URL
--lockedAllocations <path>Path to JSON file with locked allocation configs
--quoteMint <string>Quote mint (currently supports SOL or USDC)SOL
--network <string>Network override: solana-mainnet or solana-devnetAuto-detected
--apiUrl <string>Genesis API base URLhttps://api.metaplex.com

Examples

  1. Basic launch with SOL:
Basic launch
mplx genesis launch create \
--name "My Token" \
--symbol "MTK" \
--image "https://gateway.irys.xyz/abc123" \
--tokenAllocation 500000000 \
--depositStartTime 2025-03-01T00:00:00Z \
--raiseGoal 200 \
--raydiumLiquidityBps 5000 \
--fundsRecipient <WALLET_ADDRESS>
  1. With USDC as quote mint:
Launch with USDC
mplx genesis launch create \
--name "My Token" \
--symbol "MTK" \
--image "https://gateway.irys.xyz/abc123" \
--tokenAllocation 500000000 \
--depositStartTime 1709251200 \
--raiseGoal 200 \
--raydiumLiquidityBps 5000 \
--fundsRecipient <WALLET_ADDRESS> \
--quoteMint USDC
  1. With metadata and locked allocations:
Full launch with metadata and allocations
mplx genesis launch create \
--name "My Token" \
--symbol "MTK" \
--image "https://gateway.irys.xyz/abc123" \
--description "A community token for builders" \
--website "https://example.com" \
--twitter "https://x.com/myproject" \
--telegram "https://t.me/myproject" \
--tokenAllocation 500000000 \
--depositStartTime 2025-03-01T00:00:00Z \
--raiseGoal 200 \
--raydiumLiquidityBps 5000 \
--fundsRecipient <WALLET_ADDRESS> \
--lockedAllocations allocations.json

Output

On success, the command prints:

  • Genesis Account address
  • Mint Address of the new token
  • Launch ID and Launch Link on the Metaplex platform
  • Token ID
  • Transaction signatures with explorer links

Launch Register

The mplx genesis launch register command registers an existing genesis account with the Metaplex platform. Use this when you created a genesis account using the low-level CLI commands (genesis create, bucket add-launch-pool, etc.) and want a public launch page.

Register a genesis account
mplx genesis launch register <GENESIS_ACCOUNT> --launchConfig launch.json

Arguments

ArgumentDescriptionRequired
genesisAccountGenesis account address to registerYes

Flags

FlagDescriptionRequiredDefault
--launchConfig <path>Path to JSON file with the launch configurationYes
--network <string>Network override: solana-mainnet or solana-devnetNoAuto-detected
--apiUrl <string>Genesis API base URLNohttps://api.metaplex.com

Launch Config Format

The launch config JSON file uses the same format as the launch create input:

launch.json
{
"wallet": "<WALLET_ADDRESS>",
"token": {
"name": "My Token",
"symbol": "MTK",
"image": "https://gateway.irys.xyz/abc123",
"description": "Optional description",
"externalLinks": {
"website": "https://example.com",
"twitter": "https://x.com/myproject"
}
},
"launchType": "project",
"launch": {
"launchpool": {
"tokenAllocation": 500000000,
"depositStartTime": "2025-03-01T00:00:00Z",
"raiseGoal": 200,
"raydiumLiquidityBps": 5000,
"fundsRecipient": "<WALLET_ADDRESS>"
}
},
"quoteMint": "SOL"
}

Examples

  1. Register with default network detection:
Register launch
mplx genesis launch register <GENESIS_ACCOUNT> --launchConfig launch.json
  1. Register on devnet:
Register on devnet
mplx genesis launch register <GENESIS_ACCOUNT> \
--launchConfig launch.json \
--network solana-devnet

Output

On success, the command prints:

  • Launch ID and Launch Link on the Metaplex platform
  • Token ID and Mint Address

If the account was already registered, the command reports that and shows the existing launch details.

Locked Allocations

Locked allocations let you reserve a portion of the token supply with vesting schedules. Provide them as a JSON array file via --lockedAllocations.

allocations.json
[
{
"name": "Team",
"recipient": "<WALLET_ADDRESS>",
"tokenAmount": 200000000,
"vestingStartTime": "2025-04-01T00:00:00Z",
"vestingDuration": { "value": 1, "unit": "YEAR" },
"unlockSchedule": "MONTH",
"cliff": {
"duration": { "value": 3, "unit": "MONTH" },
"unlockAmount": 50000000
}
}
]

Fields

FieldTypeDescription
namestringName for this allocation
recipientstringWallet address of the recipient
tokenAmountnumberNumber of tokens to allocate
vestingStartTimestringISO date string for when vesting begins
vestingDurationobjectDuration with value (number) and unit
unlockSchedulestringHow often tokens unlock
cliffobjectOptional cliff with duration and unlockAmount

Valid Time Units

SECOND, MINUTE, HOUR, DAY, WEEK, TWO_WEEKS, MONTH, QUARTER, YEAR

Common Errors

ErrorCauseFix
API request failedNetwork issue or invalid inputCheck the error response details — the command shows the API response body on validation errors
Locked allocations file not foundWrong file pathVerify the path to your allocations JSON file
Must contain a JSON arrayAllocations file is not an arrayEnsure the JSON file contains an array [...], not an object
raydiumLiquidityBps out of rangeValue outside 2000–10000Use a value between 2000 (20%) and 10000 (100%)
Launch config missing required fieldsIncomplete config for registerEnsure your launch config JSON has token, launch, and launchType: "project"

FAQ

What is the difference between genesis launch create and the manual flow? The genesis launch create command is an all-in-one flow that calls the Genesis API to build transactions, signs and sends them, and registers the launch on the Metaplex platform — all in a single command. The manual flow requires separate create, bucket add-launch-pool, finalize, and register steps.

When should I use genesis launch register? Use genesis launch register when you've already created a genesis account using the low-level CLI commands (genesis create, bucket add-launch-pool, etc.) and want to register it on the Metaplex platform to get a public launch page.

What network does the launch command use? The network is auto-detected from your configured RPC endpoint. You can override it with the --network flag (solana-mainnet or solana-devnet).

Can I use a custom quote mint? The API currently supports SOL (default) and USDC. Pass --quoteMint USDC to use USDC.

What is the total token supply? The total supply is currently fixed at 1,000,000,000 tokens when using the API flow.

Previous
Overview