Production WS
wss://corto.fun/data-stream
Free public stream. One IP can keep one active connection open at a time.
This page shows what the public WebSocket sends today, what can still be null or missing, and what your client should not assume.
wss://corto.fun/data-stream
Free public stream. One IP can keep one active connection open at a time.
subscribe, unsubscribe, current_state
You change filters by sending messages, not by reconnecting every time.
min, mid, full
You can choose how much data create messages return without opening a separate stream.
The public WebSocket endpoint is /data-stream.
A field can always be present, but its value can still be optional, conditional, or null. Do not assume that every field is always filled.
Handshake, subscription acknowledgement, current state, and structured errors tell you the connection status and which filters are active.
Launch and pool events are sent only when they match the current filter.
| Level | What it keeps | Typical use |
|---|---|---|
| min | Launch identity, short token metadata, block, and timestamp. | Fast mint feeds and watchlists. |
| mid | Everything from min plus market, metadata, supply, and risk fields. | Rankers, UI cards, and alerting. |
| full | Everything from min and mid plus reserves, fees, pool mechanics, and extended create diagnostics. | Deep analytics and production parsing. |
create.detail is carried inside the same subscribe message.full.effectiveFilter.createDetail.| Family | Current state | Main boundary |
|---|---|---|
| Create | Live public payloads observed. | Some economics stay family-specific and must not be universalized. |
| Trade | Live on pump-fun and letsbonk-fun paths. | Transport differs by family; nullable values stay nullable. |
| Migration | Live through lifecycle detection plus parsed transaction resolution. | No logs-only simplification. |
| CreatePool | Observed payload exists. | Lineage and some liquidity values are conditional. |
| Liquidity | Observed remove payload exists. | Real add payload is still pending capture. |
| Burn | Reserved contract only. | No observed production public payload yet. |
create.detail changes only how much data create messages return.null is valid when a field is marked as conditional.Burn is already listed as a public event, but real public burn messages have not been seen yet.
creatorFeeAddress can be null on a cold server or cache miss. That is a valid result.
Pool-side values like lineage, LP mint, liquidity totals, or price should only be treated as strong when proven by the current transaction.
| Family | Signature / example source | Why it matters |
|---|---|---|
| Create | 2i4j3aNSP4y6usMHwf4k8Gf5v8Cir6TcNiS7NK8CQsfcdwAGqXkrWKRPthCw7T9JpjsNo9hhzYzqDEYS6n4cMi6n | Shows current create contract with risk and token metadata fields. |
| Trade | 5GL8LJGm6gcRFRRCd6ss5eyHLV1yipJnovh6zQWUASJTdUJVE2ZKRmJ2KpDxRwTdPmCUeZGzCmd11WwjeqfbHv8V | Shows the current public buy/sell schema and transport-specific values. |
| Migration | pump-migration-test | Shows parsed-tx migration shape and what is intentionally excluded. |
| CreatePool | 4ViJScYg612DtdnV1iZKBDc2ZVnWwX1QAfurTcHNNNGkAoR3E2FnWdXXo34MAvk3TK8ux2mXKZPs5RHnhKN9uN4d | Shows pool-side create contract with initial liquidity fields. |
| Liquidity | 29VK4NCy6Z9V4p5FfMfRkrBbAUuqohM94FFMKZyGBk3TcZMMvfTSVPAZAhjZVLwqyA9dbHxysr5zg6RAgxURjAet | Shows current observed remove payload and honest addLiquidity status. |
| Burn | Reserved contract only | Documents the intended shape without inventing a fake production example. |
Control messages, system messages, quick modes, and error format.
Open contractCreate messages, field groups, and what is currently reliable.
Open create schemaCurrent transport split and nullable boundaries that must be preserved by clients.
Open trade schemaLifecycle detection plus parsed-tx migration resolution.
Open migration schemaThe moment a target pool account is created on the public path.
Open createPool schemaShared add/remove schema with the currently observed remove payload.
Open liquidity schemaReserved schema with an explicit honesty boundary until production examples exist.
Open burn schema