Skip to main content
Launchpad Stream is a Multi-Events Stream mode for live swaps and new pool creations on launchpad pools. Identifier on Mobula: launchpad It only emits live WebSocket events after subscription. It does not send init, sync, or remove payloads.

WebSocket frame model

Every Launchpad Stream message is wrapped in the standard Multi-Events WebSocket frame:
FieldTypeDescription
dataLaunchpadSwapMessage | LaunchpadCreationMessageEvent payload.
chainIdstringChain identifier, for example solana:solana.
duplicateCountnumberDuplicate counter for the emitted event.
subscriptionIdstringSubscription id that matched the event.
tagstringOptional tag from the subscription payload.

Subscription fields

Use events: ["launchpad"] on the chain-specific Multi-Events endpoint.
FieldTypeDefaultDescription
chainIdsstring[]RequiredChains to subscribe to. Use ["solana:solana"] for Solana.
eventsstring[]RequiredMust include launchpad.
createdWithinMinutesnumberService defaultOnly emits swaps and creations for launchpad pools created within this window.
tokenStatebooleantrueWhen true, swap events include token-details state in data.token.
subscriptionIdstringAuto-generatedIdentifier copied into matching responses.
subscriptionTrackingbooleanfalseIncludes subscription details in response logs for debugging.
{
  "type": "stream",
  "authorization": "YOUR_API_KEY",
  "payload": {
    "chainIds": ["solana:solana"],
    "events": ["launchpad"],
    "createdWithinMinutes": 1440,
    "tokenState": true,
    "subscriptionId": "test-launchpad-solana",
    "subscriptionTracking": true
  }
}

Data shapes

tokenState changes only swap messages. Creation messages always use the creation shape.
type LaunchpadStreamFrame =
  | LaunchpadSwapWithTokenStateFrame
  | LaunchpadSwapFlatFrame
  | LaunchpadCreationFrame;

interface LaunchpadFrameBase {
  chainId: string;
  duplicateCount: number;
  subscriptionId: string;
  tag?: string;
}

interface LaunchpadSwapWithTokenStateFrame extends LaunchpadFrameBase {
  data: {
    event: 'swap';
    swap: LaunchpadSwap;
    token: TokenDetailsState | null;
  };
}

interface LaunchpadSwapFlatFrame extends LaunchpadFrameBase {
  data: LaunchpadSwap;
}

interface LaunchpadCreationFrame extends LaunchpadFrameBase {
  data: {
    event: 'creation';
    creation: PoolContextPayload;
    subscriptionId: string;
    timestamp: number;
  };
}

Swap object

data.swap is the unified fast-trade swap object. With tokenState: false, this object is sent directly as data.
interface LaunchpadSwap {
  pair: string;
  date: number;
  tokenPrice: number;
  tokenPriceVs: number;
  tokenAmount: number;
  tokenAmountVs: number;
  tokenAmountUsd?: number;
  tokenNativePrice: number;
  tokenMarketCapUSD: number;
  type: 'buy' | 'sell' | string;
  operation: 'regular' | 'arbitrage' | 'mev' | string;
  blockchain: string;
  hash: string;
  sender: string;
  tokenAmountRaw: string;
  tokenAmountRawVs: string;
  labels: string[];
  preBalanceBaseToken: string | null;
  preBalanceQuoteToken: string | null;
  postBalanceBaseToken: string | null;
  postBalanceQuoteToken: string | null;
  postBalanceRecipientBaseToken: string | null;
  platform: string | null;
  swapRecipient: string | null;
  gasFeesUSD: number | null;
  platformFeesUSD: number | null;
  mevFeesUSD: number | null;
  totalFeesUSD: number | null;
  platformMetadata: Record<string, unknown> | null;
  event: 'swap';
  subscriptionId: string;
  timestamp: number;
}

Token object

When tokenState is true, data.token is the full token-details state fetched right before the message is sent. It can be null if token state cannot be loaded. The token object is not reduced for Launchpad Stream. The live example below includes the full token state returned for that event. Complete data.token field inventory from the full response example: address, chainId, symbol, name, decimals, id priceUSD, priceToken, priceTokenString, approximateReserveUSD, approximateReserveTokenRaw, approximateReserveToken totalSupply, circulatingSupply, marketCapUSD, marketCapDilutedUSD, logo, originLogoUrl exchange, factory, source, sourceMetadata, sourceFactoryMetadata, liquidityUSD liquidityMaxUSD, bonded, bondingPercentage, preBondingFactory, poolAddress, top10HoldingsPercentage top50HoldingsPercentage, top100HoldingsPercentage, top200HoldingsPercentage, devHoldingsPercentage, insidersHoldingsPercentage, bundlersHoldingsPercentage snipersHoldingsPercentage, proTradersHoldingsPercentage, freshTradersHoldingsPercentage, smartTradersHoldingsPercentage, insidersCount, bundlersCount snipersCount, proTradersCount, freshTradersCount, smartTradersCount, smartTradersBuys, freshTradersBuys proTradersBuys, blockchain, type, tokenType, deployer, bondedAt athUSD, atlUSD, athDate, atlDate, priceChange1minPercentage, priceChange5minPercentage priceChange1hPercentage, priceChange4hPercentage, priceChange6hPercentage, priceChange12hPercentage, priceChange24hPercentage, poolPriceChange1minPercentage poolPriceChange5minPercentage, poolPriceChange1hPercentage, poolPriceChange4hPercentage, poolPriceChange6hPercentage, poolPriceChange12hPercentage, poolPriceChange24hPercentage liquidityBurnPercentage, volume1minUSD, volume5minUSD, volume15minUSD, volume1hUSD, volume4hUSD volume6hUSD, volume12hUSD, volume24hUSD, volumeBuy1minUSD, volumeBuy5minUSD, volumeBuy15minUSD volumeBuy1hUSD, volumeBuy4hUSD, volumeBuy6hUSD, volumeBuy12hUSD, volumeBuy24hUSD, volumeSell1minUSD volumeSell5minUSD, volumeSell15minUSD, volumeSell1hUSD, volumeSell4hUSD, volumeSell6hUSD, volumeSell12hUSD volumeSell24hUSD, trades1min, trades5min, trades15min, trades1h, trades4h trades6h, trades12h, trades24h, buys1min, buys5min, buys15min buys1h, buys4h, buys6h, buys12h, buys24h, sells1min sells5min, sells15min, sells1h, sells4h, sells6h, sells12h sells24h, buyers1min, buyers5min, buyers15min, buyers1h, buyers4h buyers6h, buyers12h, buyers24h, sellers1min, sellers5min, sellers15min sellers1h, sellers4h, sellers6h, sellers12h, sellers24h, traders1min traders5min, traders15min, traders1h, traders4h, traders6h, traders12h traders24h, feesPaid1minUSD, feesPaid5minUSD, feesPaid15minUSD, feesPaid1hUSD, feesPaid4hUSD feesPaid6hUSD, feesPaid12hUSD, feesPaid24hUSD, totalFeesPaidUSD, totalFeesPaidNativeRaw, organicTrades1min organicTrades5min, organicTrades15min, organicTrades1h, organicTrades4h, organicTrades6h, organicTrades12h organicTrades24h, organicTraders1min, organicTraders5min, organicTraders15min, organicTraders1h, organicTraders4h organicTraders6h, organicTraders12h, organicTraders24h, organicVolume1minUSD, organicVolume5minUSD, organicVolume15minUSD organicVolume1hUSD, organicVolume4hUSD, organicVolume6hUSD, organicVolume12hUSD, organicVolume24hUSD, organicVolumeBuy1minUSD organicVolumeBuy5minUSD, organicVolumeBuy15minUSD, organicVolumeBuy1hUSD, organicVolumeBuy4hUSD, organicVolumeBuy6hUSD, organicVolumeBuy12hUSD organicVolumeBuy24hUSD, organicVolumeSell1minUSD, organicVolumeSell5minUSD, organicVolumeSell15minUSD, organicVolumeSell1hUSD, organicVolumeSell4hUSD organicVolumeSell6hUSD, organicVolumeSell12hUSD, organicVolumeSell24hUSD, organicBuys1min, organicBuys5min, organicBuys15min organicBuys1h, organicBuys4h, organicBuys6h, organicBuys12h, organicBuys24h, organicSells1min organicSells5min, organicSells15min, organicSells1h, organicSells4h, organicSells6h, organicSells12h organicSells24h, organicBuyers1min, organicBuyers5min, organicBuyers15min, organicBuyers1h, organicBuyers4h organicBuyers6h, organicBuyers12h, organicBuyers24h, organicSellers1min, organicSellers5min, organicSellers15min organicSellers1h, organicSellers4h, organicSellers6h, organicSellers12h, organicSellers24h, trendingScore1min trendingScore5min, trendingScore15min, trendingScore1h, trendingScore4h, trendingScore6h, trendingScore12h trendingScore24h, createdAt, latestTradeDate, holdersCount, description, socials security, twitterReusesCount, twitterRenameCount, twitterRenameHistory, deployerMigrationsCount, deployerTokensCount securityScore, securityScoreUpdatedAt, dexscreenerListed, dexscreenerHeader, dexscreenerAdPaid, dexscreenerAdPaidDate dexscreenerPendingAt, dexscreenerSocialPaid, dexscreenerSocialPaidDate, rank, liveStatus, liveThumbnail livestreamTitle, liveReplyCount, dexscreenerBoosted, dexscreenerBoostedDate, dexscreenerBoostedAmount, dexScreenerEnhanced cexs, i18n, isMayhemMode, isCashbackCoin, isAgentMode, isOGCoin

Swap message with token state

tokenState defaults to true. In this mode, data.event is swap, data.swap is the unified fast-trade swap payload, and data.token is the full token-details state fetched just before the payload is sent. The example below is not abbreviated.
{
  "data": {
    "event": "swap",
    "swap": {
      "pair": "CyHKMgQUqathJoFXHNmwULwW6rQCDupuabEw4vnuWtM2",
      "date": 1780877914613,
      "tokenPrice": 0,
      "tokenPriceVs": 0,
      "tokenAmount": 50678309.12766,
      "tokenAmountVs": 0.839097327,
      "tokenAmountUsd": 55.543780038760936,
      "tokenNativePrice": 0,
      "tokenMarketCapUSD": 0,
      "type": "sell",
      "operation": "mev",
      "blockchain": "Solana",
      "hash": "3x7RdppKRbydDdSgmwJKCDLuAzbDyaZ1zUJP6dVUU49rrw5ZntKcxHRGpCABijskKDxy1Kvz55Ny7nXutYriUSgC",
      "sender": "Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA",
      "tokenAmountRaw": "50678309127660",
      "tokenAmountRawVs": "839097327",
      "labels": [],
      "preBalanceBaseToken": "0",
      "preBalanceQuoteToken": "0",
      "postBalanceBaseToken": "0",
      "postBalanceQuoteToken": "0",
      "postBalanceRecipientBaseToken": "0",
      "platform": null,
      "swapRecipient": "Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA",
      "gasFeesUSD": 0.0017872563918280074,
      "platformFeesUSD": 0,
      "mevFeesUSD": 0,
      "totalFeesUSD": 0.0017872563918280074,
      "platformMetadata": null,
      "event": "swap",
      "subscriptionId": "test-launchpad-solana",
      "timestamp": 1780877915727
    },
    "token": {
      "address": "CiQx7YJKgs6fHNbPKivHzHinb1jWfH5VjEmLaNzjrtWb",
      "chainId": "solana:solana",
      "symbol": "GRIND",
      "name": "GRIND",
      "decimals": 6,
      "id": 0,
      "priceUSD": 8.583804321194622e-7,
      "priceToken": 1.2967342254868688e-8,
      "priceTokenString": "0.00000001296734225486868779643256",
      "approximateReserveUSD": 826.4803145707567,
      "approximateReserveTokenRaw": "962836853736356",
      "approximateReserveToken": 962836853.736356,
      "totalSupply": 1000000000,
      "circulatingSupply": 1000000000,
      "marketCapUSD": 858.3804321194622,
      "marketCapDilutedUSD": 858.3804321194622,
      "logo": "https://metadata.mobula.io/assets/logos/solana_solana_CiQx7YJKgs6fHNbPKivHzHinb1jWfH5VjEmLaNzjrtWb.webp",
      "originLogoUrl": "https://api.vortexdeployer.com/image/863b4e69-9ae5-43ac-be0d-31af39357402.webp",
      "exchange": {
        "name": "PumpFun",
        "logo": "https://dd.dexscreener.com/ds-data/dexes/pumpfun.png"
      },
      "factory": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
      "source": "pumpfun",
      "sourceMetadata": {
        "name": "PumpFun",
        "logo": "https://dd.dexscreener.com/ds-data/dexes/pumpfun.png"
      },
      "sourceFactoryMetadata": {
        "name": "PumpFun",
        "logo": "https://dd.dexscreener.com/ds-data/dexes/pumpfun.png"
      },
      "liquidityUSD": 826.4803145707567,
      "liquidityMaxUSD": 1937.1871904771463,
      "bonded": false,
      "bondingPercentage": 13.89019622539957,
      "preBondingFactory": "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P",
      "poolAddress": "CyHKMgQUqathJoFXHNmwULwW6rQCDupuabEw4vnuWtM2",
      "top10HoldingsPercentage": 12.5606031151896,
      "top50HoldingsPercentage": 12.5606031151896,
      "top100HoldingsPercentage": 12.5606031151896,
      "top200HoldingsPercentage": 12.5606031151896,
      "devHoldingsPercentage": 12.5606031151896,
      "insidersHoldingsPercentage": 0,
      "bundlersHoldingsPercentage": 0,
      "snipersHoldingsPercentage": 0,
      "proTradersHoldingsPercentage": 12.5606031151896,
      "freshTradersHoldingsPercentage": 0,
      "smartTradersHoldingsPercentage": 0,
      "insidersCount": 0,
      "bundlersCount": 0,
      "snipersCount": 0,
      "proTradersCount": 1,
      "freshTradersCount": 0,
      "smartTradersCount": 0,
      "smartTradersBuys": 0,
      "freshTradersBuys": 0,
      "proTradersBuys": 1,
      "blockchain": "Solana",
      "type": "pumpfun",
      "tokenType": "2022",
      "deployer": "popsP556X4XMXK5m8P39axrL7QayAGPDU8AKYVE8kxS",
      "bondedAt": null,
      "athUSD": 0.000002120249752553076,
      "atlUSD": 0.000002120249752553076,
      "athDate": "2026-06-08T00:18:17.356Z",
      "atlDate": "2026-06-08T00:18:17.356Z",
      "priceChange1minPercentage": -52.633825148060076,
      "priceChange5minPercentage": -52.633825148060076,
      "priceChange1hPercentage": -52.633825148060076,
      "priceChange4hPercentage": -52.633825148060076,
      "priceChange6hPercentage": -52.633825148060076,
      "priceChange12hPercentage": -52.633825148060076,
      "priceChange24hPercentage": -52.633825148060076,
      "poolPriceChange1minPercentage": 0,
      "poolPriceChange5minPercentage": 0,
      "poolPriceChange1hPercentage": 0,
      "poolPriceChange4hPercentage": 0,
      "poolPriceChange6hPercentage": 0,
      "poolPriceChange12hPercentage": 0,
      "poolPriceChange24hPercentage": 0,
      "liquidityBurnPercentage": null,
      "volume1minUSD": 813.8668634152958,
      "volume5minUSD": 813.8668634152958,
      "volume15minUSD": 813.8668634152958,
      "volume1hUSD": 813.8668634152958,
      "volume4hUSD": 813.8668634152958,
      "volume6hUSD": 813.8668634152958,
      "volume12hUSD": 813.8668634152958,
      "volume24hUSD": 813.8668634152958,
      "volumeBuy1minUSD": 444.8868111282737,
      "volumeBuy5minUSD": 444.8868111282737,
      "volumeBuy15minUSD": 444.8868111282737,
      "volumeBuy1hUSD": 444.8868111282737,
      "volumeBuy4hUSD": 444.8868111282737,
      "volumeBuy6hUSD": 444.8868111282737,
      "volumeBuy12hUSD": 444.8868111282737,
      "volumeBuy24hUSD": 444.8868111282737,
      "volumeSell1minUSD": 368.98005228702215,
      "volumeSell5minUSD": 368.98005228702215,
      "volumeSell15minUSD": 368.98005228702215,
      "volumeSell1hUSD": 368.98005228702215,
      "volumeSell4hUSD": 368.98005228702215,
      "volumeSell6hUSD": 368.98005228702215,
      "volumeSell12hUSD": 368.98005228702215,
      "volumeSell24hUSD": 368.98005228702215,
      "trades1min": 32,
      "trades5min": 32,
      "trades15min": 32,
      "trades1h": 32,
      "trades4h": 32,
      "trades6h": 32,
      "trades12h": 32,
      "trades24h": 32,
      "buys1min": 20,
      "buys5min": 20,
      "buys15min": 20,
      "buys1h": 20,
      "buys4h": 20,
      "buys6h": 20,
      "buys12h": 20,
      "buys24h": 20,
      "sells1min": 12,
      "sells5min": 12,
      "sells15min": 12,
      "sells1h": 12,
      "sells4h": 12,
      "sells6h": 12,
      "sells12h": 12,
      "sells24h": 12,
      "buyers1min": 2,
      "buyers5min": 2,
      "buyers15min": 2,
      "buyers1h": 2,
      "buyers4h": 2,
      "buyers6h": 2,
      "buyers12h": 2,
      "buyers24h": 2,
      "sellers1min": 1,
      "sellers5min": 1,
      "sellers15min": 1,
      "sellers1h": 1,
      "sellers4h": 1,
      "sellers6h": 1,
      "sellers12h": 1,
      "sellers24h": 1,
      "traders1min": 2,
      "traders5min": 2,
      "traders15min": 2,
      "traders1h": 2,
      "traders4h": 2,
      "traders6h": 2,
      "traders12h": 2,
      "traders24h": 2,
      "feesPaid1minUSD": 0.9430137649966145,
      "feesPaid5minUSD": 0.9430137649966145,
      "feesPaid15minUSD": 0.9430137649966145,
      "feesPaid1hUSD": 0.9430137649966145,
      "feesPaid4hUSD": 0.9430137649966145,
      "feesPaid6hUSD": 0.9430137649966145,
      "feesPaid12hUSD": 0.9430137649966145,
      "feesPaid24hUSD": 0.9430137649966145,
      "totalFeesPaidUSD": 0.9327674241022644,
      "totalFeesPaidNativeRaw": "15493638",
      "organicTrades1min": 9,
      "organicTrades5min": 9,
      "organicTrades15min": 9,
      "organicTrades1h": 9,
      "organicTrades4h": 9,
      "organicTrades6h": 9,
      "organicTrades12h": 9,
      "organicTrades24h": 9,
      "organicTraders1min": 1,
      "organicTraders5min": 1,
      "organicTraders15min": 1,
      "organicTraders1h": 1,
      "organicTraders4h": 1,
      "organicTraders6h": 1,
      "organicTraders12h": 1,
      "organicTraders24h": 1,
      "organicVolume1minUSD": 265.26004317815915,
      "organicVolume5minUSD": 265.26004317815915,
      "organicVolume15minUSD": 265.26004317815915,
      "organicVolume1hUSD": 265.26004317815915,
      "organicVolume4hUSD": 265.26004317815915,
      "organicVolume6hUSD": 265.26004317815915,
      "organicVolume12hUSD": 265.26004317815915,
      "organicVolume24hUSD": 265.26004317815915,
      "organicVolumeBuy1minUSD": 265.26004317815915,
      "organicVolumeBuy5minUSD": 265.26004317815915,
      "organicVolumeBuy15minUSD": 265.26004317815915,
      "organicVolumeBuy1hUSD": 265.26004317815915,
      "organicVolumeBuy4hUSD": 265.26004317815915,
      "organicVolumeBuy6hUSD": 265.26004317815915,
      "organicVolumeBuy12hUSD": 265.26004317815915,
      "organicVolumeBuy24hUSD": 265.26004317815915,
      "organicVolumeSell1minUSD": 0,
      "organicVolumeSell5minUSD": 0,
      "organicVolumeSell15minUSD": 0,
      "organicVolumeSell1hUSD": 0,
      "organicVolumeSell4hUSD": 0,
      "organicVolumeSell6hUSD": 0,
      "organicVolumeSell12hUSD": 0,
      "organicVolumeSell24hUSD": 0,
      "organicBuys1min": 9,
      "organicBuys5min": 9,
      "organicBuys15min": 9,
      "organicBuys1h": 9,
      "organicBuys4h": 9,
      "organicBuys6h": 9,
      "organicBuys12h": 9,
      "organicBuys24h": 9,
      "organicSells1min": 0,
      "organicSells5min": 0,
      "organicSells15min": 0,
      "organicSells1h": 0,
      "organicSells4h": 0,
      "organicSells6h": 0,
      "organicSells12h": 0,
      "organicSells24h": 0,
      "organicBuyers1min": 1,
      "organicBuyers5min": 1,
      "organicBuyers15min": 1,
      "organicBuyers1h": 1,
      "organicBuyers4h": 1,
      "organicBuyers6h": 1,
      "organicBuyers12h": 1,
      "organicBuyers24h": 1,
      "organicSellers1min": 0,
      "organicSellers5min": 0,
      "organicSellers15min": 0,
      "organicSellers1h": 0,
      "organicSellers4h": 0,
      "organicSellers6h": 0,
      "organicSellers12h": 0,
      "organicSellers24h": 0,
      "trendingScore1min": 0,
      "trendingScore5min": 0,
      "trendingScore15min": 0,
      "trendingScore1h": 0,
      "trendingScore4h": 0,
      "trendingScore6h": 0,
      "trendingScore12h": 0,
      "trendingScore24h": 0,
      "createdAt": "2026-06-08T00:18:18.000Z",
      "latestTradeDate": "2026-06-08T00:18:34.613Z",
      "holdersCount": 3,
      "description": null,
      "socials": {
        "twitter": "https://x.com/humanevolvd/status/2063752344190226442?s=46",
        "website": null,
        "telegram": null,
        "others": {
          "showName": true,
          "createdOn": "https://pump.fun"
        }
      },
      "security": {
        "buyTax": "0",
        "sellTax": "0",
        "isFreezable": false,
        "transferTax": "0",
        "isBlacklisted": false,
        "noMintAuthority": true,
        "transferPausable": false
      },
      "twitterReusesCount": 0,
      "twitterRenameCount": 0,
      "twitterRenameHistory": [],
      "deployerMigrationsCount": 7,
      "deployerTokensCount": 817,
      "securityScore": null,
      "securityScoreUpdatedAt": null,
      "dexscreenerListed": false,
      "dexscreenerHeader": null,
      "dexscreenerAdPaid": false,
      "dexscreenerAdPaidDate": null,
      "dexscreenerPendingAt": null,
      "dexscreenerSocialPaid": false,
      "dexscreenerSocialPaidDate": null,
      "rank": null,
      "liveStatus": null,
      "liveThumbnail": null,
      "livestreamTitle": null,
      "liveReplyCount": null,
      "dexscreenerBoosted": false,
      "dexscreenerBoostedDate": null,
      "dexscreenerBoostedAmount": 0,
      "dexScreenerEnhanced": null,
      "cexs": [],
      "i18n": null,
      "isMayhemMode": true,
      "isCashbackCoin": false,
      "isAgentMode": null,
      "isOGCoin": null
    }
  },
  "chainId": "solana:solana",
  "duplicateCount": 1,
  "subscriptionId": "test-launchpad-solana"
}

Swap message without token state

Set tokenState to false to skip the token-details lookup. In this mode, data is the flat unified fast-trade swap object.
{
  "data": {
    "event": "swap",
    "pair": "CyHKMgQUqathJoFXHNmwULwW6rQCDupuabEw4vnuWtM2",
    "date": 1780877914613,
    "tokenPrice": 0,
    "tokenPriceVs": 0,
    "tokenAmount": 50678309.12766,
    "tokenAmountVs": 0.839097327,
    "tokenAmountUsd": 55.543780038760936,
    "tokenNativePrice": 0,
    "tokenMarketCapUSD": 0,
    "type": "sell",
    "operation": "mev",
    "blockchain": "Solana",
    "hash": "3x7RdppKRbydDdSgmwJKCDLuAzbDyaZ1zUJP6dVUU49rrw5ZntKcxHRGpCABijskKDxy1Kvz55Ny7nXutYriUSgC",
    "sender": "Gygj9QQby4j2jryqyqBHvLP7ctv2SaANgh4sCb69BUpA",
    "tokenAmountRaw": "50678309127660",
    "tokenAmountRawVs": "839097327",
    "subscriptionId": "test-launchpad-solana",
    "timestamp": 1780877915727
  },
  "chainId": "solana:solana",
  "duplicateCount": 1,
  "subscriptionId": "test-launchpad-solana"
}

Creation message

Creation events are emitted when a new launchpad pool payload is received. tokenState does not affect creation events. data.creation is forwarded from the new pool payload:
interface PoolContextPayload {
  chainId: string;
  pool: EnrichedPoolData;
  token: EnrichedTokenData;
  justCreated: boolean;
  poolFull?: PoolFull;
  tokenFull?: TokenFull;
}
{
  "data": {
    "event": "creation",
    "creation": {
      "chainId": "solana:solana",
      "justCreated": true,
      "pool": {
        "address": "CyHKMgQUqathJoFXHNmwULwW6rQCDupuabEw4vnuWtM2",
        "type": "pumpfun",
        "createdAt": "2026-06-08T00:18:18.000Z"
      },
      "token": {
        "address": "CiQx7YJKgs6fHNbPKivHzHinb1jWfH5VjEmLaNzjrtWb",
        "chainId": "solana:solana",
        "symbol": "GRIND",
        "name": "GRIND"
      }
    },
    "subscriptionId": "test-launchpad-solana",
    "timestamp": 1780877915727
  },
  "chainId": "solana:solana",
  "duplicateCount": 1,
  "subscriptionId": "test-launchpad-solana"
}

Field notes

  • data.swap is the same unified fast-trade swap format used by Mobula fast-trade streams.
  • data.token is the token-details state, not a pool creation payload.
  • data.creation is the new pool payload forwarded by the stream service.
  • createdWithinMinutes filters against the launchpad pool createdAt.