.meme
Loading is taking longer. Reload page
← Mooning
BUILD ON MOONING

Mooning API

Discover public launches and build wallet-signed Solana and multichain flows with the same proof checks used by Mooning.

API base URLhttps://mooning.meme/api/public/v1
Public reads

No API key is needed. Only publicly listed Mainnet launches are returned.

Wallet control

Sign a one-time message to authenticate. Transactions are signed and submitted by the user's wallet.

Verified state

A launch or trade appears after its signature is confirmed and checked against the Mooning contract.

Try the API

Read public data. No wallet connection or API key required.

curl 'https://mooning.meme/api/public/v1/tokens?pageSize=5'

Run a request to see the live JSON response.

Legacy Solana API: read data

Responses use {"data": ...}. Listings are paginated. The market fields are saved snapshots and can lag activity outside Mooning.

MethodPathWhat it does
GET/tokensPublic coins. Search with q; filter with status=curve|near|graduated, creator, sort=newest|progress, page and pageSize (max 50).
GET/tokens/{id}Public coin by Mooning ID or mint address.
GET/tokens/{id}/tradesConfirmed trades recorded by Mooning. limit up to 100; use nextBefore as the next page's before cursor.
GET/pairsQuote assets supported by the current launch contract.
GET/statsPublic coin counts and current curve target.

Multichain technology and status

Mooning implements these protocols independently. Their names describe technical compatibility, not a partnership, endorsement, or claim that a deployment is live. The public /api/multichain-capabilities response reports configuration coverage only; each launch still needs its own canonical deployment, pool, liquidity, route, and finality proofs.

LayerZero V2 OFT

Route-specific burn/mint messaging with sealed peers, endpoint IDs, execution options, and separate source and destination confirmation.

Official technical reference ↗
Uniswap v4

Direct EVM liquidity pools whose PoolManager, pool key, hook, price, liquidity, and lock evidence must be verified on-chain.

Official technical reference ↗
Meteora DAMM v2 (CP-AMM)

Direct Solana liquidity pools with canonical pool, position, opening price, and permanent or timed custody evidence.

Official technical reference ↗

LayerZero source confirmation and destination delivery are separate states. Mooning never asks for wallet seed phrases or private keys; users review, sign, and broadcast wallet transactions.

MethodPathWhat it does
GET/multichain-launchesPublic live multichain launches with public-safe chain, pool, fee, and canonical readiness summaries.
GET/multichain-launches/{id}Launch detail with per-chain pool and route proof summaries. An unavailable market value is never represented as zero.
POST/multichain-launches/{id}/trade/quotePrepare a proof-bound unsigned Uniswap v4 or Meteora trade plan for a canonically verified pool.
POST/multichain-launches/{id}/bridge/quotePrepare a proof-bound unsigned standard OFT transfer. Token bridge fee and LayerZero native message fee are separate.
POST/multichain-launches/{id}/bridge/observeSubmit the wallet-broadcast source transaction hash for canonical observation; this does not prove destination delivery.
GET/multichain-launches/{id}/bridge/status?planId={planId}Read source confirmation, destination delivery, observer progress, and safe recovery guidance for one exact plan.

Operator setup boundary

  1. Configure one environment's canonical chain IDs, LayerZero endpoint IDs, and server-only RPC connections.
  2. Configure required contract or program identities and pinned runtime hashes for every selected chain.
  3. Configure the signed quote provider and snapshot signer before accepting launch payments.
  4. Run canonical observers. Configuration alone never marks a chain, pool, or bridge route verified.

Legacy Solana API: create and trade

Authenticate with a Solana wallet, upload a logo, create a draft, prepare the launch transaction, sign and send it on Mainnet, then confirm the signature. Trading follows the same prepare, sign, send and confirm sequence.

  1. POST /auth/challenge with {"wallet":"YOUR_SOLANA_ADDRESS"}.
  2. Sign the returned data.message bytes with the wallet. POST /auth/verify with id and a base58 signature.
  3. Send the returned token in Authorization: Bearer YOUR_TOKEN. Upload the logo using multipart form data.
  4. POST /launches with name, ticker and image (the upload ID). description is optional. This creates a draft only. Supply settings to select a liquidity policy and pool; omitted settings use the 85 SOL Burn & Earn plan.
  5. POST /launches/{id}/prepare with {}. Decode the returned base64 transaction, review and sign it with the creator wallet, submit it to Solana, wait for confirmation, then POST /launches/{id}/confirm with its signature.
  6. For trading, GET /launches/{id}/quote?side=buy&amount=0.01, then POST /launches/{id}/trades/prepare with {"side":"buy","amount":"0.01","slippageBps":100,"minimumRaw":"FROM_QUOTE"}. Sign, submit, and confirm as above.

The creator or trader pays Solana network costs. Never send seed phrases or private keys to this API. The prepared transaction must be reviewed before signing. A prepare request can be unavailable when a contract or service is not configured for the chosen settings.

MethodPathWhat it does
POST/auth/challengeRequest a one-time message for a Solana wallet.
POST/auth/verifyVerify the wallet signature; receive a 24-hour bearer token.
POST/mediaAuthorize direct media upload with JSON action=authorize, kind, mime and size. POST the file to the returned Pinata signedUrl, then register it with action=complete, ticket and fileId. Returns an image ID.
POST/launchesCreate a public draft with name, ticker, image ID, and optional description and settings.
GET/launches/{id}Read a draft or launch owned by the signed-in wallet.
POST/launches/{id}/preparePrepare the launch transaction for the creator to sign and submit.
GET/launches/{id}/quoteGet a live curve trade estimate using side=buy|sell, amount and optional slippageBps.
POST/launches/{id}/trades/preparePrepare a buy or sell transaction for the wallet to sign and submit.
POST/launches/{id}/confirmAfter network confirmation, send {signature} to verify the launch or trade and update Mooning.

Limits and coverage

Rate limits

Public reads: 1200 requests/minute per client IP. Live quotes: 600/minute per client IP. Trade preparation and confirmation: 300/minute each per wallet. Draft creation and launch preparation: 30/minute each per wallet. Logo uploads: 60/minute per wallet. Sign-in: 60/minute per IP and 30 challenges/minute per wallet. No daily request quota. Each limit has its own counter. A 429 response includes Retry-After; wait before retrying.

Authentication

The challenge expires in 5 minutes. Bearer tokens expire after 24 hours. Store them server-side when possible; never put them in URLs.

Trade history

The trades endpoint contains transactions confirmed through Mooning. It is not a complete index of external pool trading.

Write endpoints reuse Mooning's launch and transaction validation. Their successful responses have the same JSON shape as the website endpoints; errors return an error message. Public read responses use data.