quick mode
{
"type": "subscribe",
"mode": "all"
}This page shows the public request messages, system messages, real response formats, and what a client can safely rely on.
| Level | Meaning |
|---|---|
| Key present | The property is included in every object of that family. |
| Value reliable | The client can treat the value as reliable on the current public message path. |
| Value conditional | The key is present, but the value can still be null or depend on the pool, event type, or current message path. |
{
"type": "subscribe",
"mode": "all"
}{
"type": "subscribe",
"mode": "mints",
"create": {
"detail": "mid"
}
}{
"type": "subscribe",
"events": ["create", "trade"],
"pools": ["letsbonk.fun"],
"create": {
"detail": "min"
}
}{
"type": "unsubscribe",
"events": ["trade"],
"pools": ["letsbonk.fun"]
}{
"type": "current_state"
}mode is present, the server expands it into the internal filter automatically.all, mints, trades, migrations, and pools.events or pools in the same message.events are omitted, the request means all currently deliverable events.pools are omitted, the request means all currently available pools.trade is an alias that expands to buy plus sell.create.detail affects only create events and accepts min, mid, and full. If omitted, the server uses full.{
"type": "service",
"name": "handshake",
"state": {
"status": "connected",
"availablePools": ["bags.fm", "pump.fun", "pump.swap", "raydium.amm", "raydium.cpmm", "meteora.dlmm", "letsbonk.fun", "meteora.damm-v1", "meteora.damm-v2"],
"availableEvents": ["create", "trade", "buy", "sell", "migration", "createPool", "addLiquidity", "removeLiquidity", "burn"],
"supportedModes": ["all", "mints", "trades", "migrations", "pools"],
"supportedMessages": ["subscribe", "unsubscribe", "current_state"],
"effectiveFilter": {
"mode": "none",
"subscriptions": {},
"createDetail": "full",
"graceActive": true
},
"subscriptionGraceMs": 3000
}
}{
"type": "service",
"name": "subscription_ack",
"action": "subscribe",
"state": {
"availablePools": ["bags.fm", "pump.fun", "pump.swap", "raydium.amm", "raydium.cpmm", "meteora.dlmm", "letsbonk.fun", "meteora.damm-v1", "meteora.damm-v2"],
"availableEvents": ["create", "trade", "buy", "sell", "migration", "createPool", "addLiquidity", "removeLiquidity", "burn"],
"supportedModes": ["all", "mints", "trades", "migrations", "pools"],
"supportedMessages": ["subscribe", "unsubscribe", "current_state"],
"effectiveFilter": {
"mode": "all",
"subscriptions": {},
"createDetail": "mid",
"graceActive": false
}
}
}{
"type": "service",
"name": "current_state",
"state": {
"availablePools": ["bags.fm", "pump.fun", "pump.swap", "raydium.amm", "raydium.cpmm", "meteora.dlmm", "letsbonk.fun", "meteora.damm-v1", "meteora.damm-v2"],
"availableEvents": ["create", "trade", "buy", "sell", "migration", "createPool", "addLiquidity", "removeLiquidity", "burn"],
"supportedModes": ["all", "mints", "trades", "migrations", "pools"],
"supportedMessages": ["subscribe", "unsubscribe", "current_state"],
"effectiveFilter": {
"mode": "custom",
"subscriptions": {
"create": ["bags.fm", "letsbonk.fun", "pump.fun"],
"createPool": ["bags.fm", "pump.swap"]
},
"createDetail": "min",
"graceActive": false
}
}
}{
"type": "service",
"name": "error",
"state": {
"availablePools": ["bags.fm", "pump.fun", "pump.swap", "raydium.amm", "raydium.cpmm", "meteora.dlmm", "letsbonk.fun", "meteora.damm-v1", "meteora.damm-v2"],
"availableEvents": ["create", "trade", "buy", "sell", "migration", "createPool", "addLiquidity", "removeLiquidity", "burn"],
"supportedModes": ["all", "mints", "trades", "migrations", "pools"],
"supportedMessages": ["subscribe", "unsubscribe", "current_state"],
"effectiveFilter": {
"mode": "none",
"subscriptions": {},
"createDetail": "full",
"graceActive": true
}
},
"error": {
"code": "invalid_subscription",
"message": "Unknown create detail level.",
"details": {
"invalidCreateDetail": "wide",
"supportedCreateDetails": ["min", "mid", "full"]
}
}
}| Name | Purpose |
|---|---|
| handshake | Initial connection state and available public messages. |
| subscription_ack | Confirmation after subscribe or unsubscribe changes. |
| current_state | Snapshot of the current filter. |
| error | Structured error response for invalid requests or rejected actions. |
| Level | What it keeps | Best fit |
|---|---|---|
| min | Launch identity: signature, mint, signer, pool, short token metadata, block and timestamp. | Fast mint feeds, watchlists, and low-bandwidth routing. |
| mid | Everything from min plus market, metadata, supply, and risk fields. | Ranking, alerting, and UI cards that need context but not the full reserve block. |
| full | Everything from min and mid plus reserves, fees, pool mechanics, and extended create diagnostics. | Deep analytics, execution logic, and debugging real create paths. |
| Family | Signature / source | What it validates |
|---|---|---|
| Create | 2i4j3aNSP4y6usMHwf4k8Gf5v8Cir6TcNiS7NK8CQsfcdwAGqXkrWKRPthCw7T9JpjsNo9hhzYzqDEYS6n4cMi6n | The live create shape contains more than marketing-level core fields. |
| Trade | 5GL8LJGm6gcRFRRCd6ss5eyHLV1yipJnovh6zQWUASJTdUJVE2ZKRmJ2KpDxRwTdPmCUeZGzCmd11WwjeqfbHv8V | Trade schema is transport-sensitive and keeps nullable values nullable. |
| Migration | pump-migration-test | Migration is resolved from parsed transaction, not flattened into logs-only. |
| CreatePool | 4ViJScYg612DtdnV1iZKBDc2ZVnWwX1QAfurTcHNNNGkAoR3E2FnWdXXo34MAvk3TK8ux2mXKZPs5RHnhKN9uN4d | Pool-side lifecycle events are already first-class in the public contract. |
| Liquidity | 29VK4NCy6Z9V4p5FfMfRkrBbAUuqohM94FFMKZyGBk3TcZMMvfTSVPAZAhjZVLwqyA9dbHxysr5zg6RAgxURjAet | Remove liquidity payload is real; add liquidity still has an honest gap. |
| Burn | Reserved contract only | The public docs stay honest and do not invent burn production payloads. |
type, name, and txType. Treat null as a valid result for conditional fields, read effectiveFilter.createDetail from system messages, and do not guess undocumented pool families from other pages.