Messages
{
"op": "subscribed",
"id": "tok-1",
"channel": "token-updates"
}{
"op": "event",
"id": "tok-1",
"channel": "token-updates",
"data": {
"priceNative": "0.000000028472524478",
"priceUsd": 0.0000021952461580276,
"marketCapUsd": 2195.24,
"fdvUsd": 2195.24,
"liquidityUsd": 2348.64,
"launchpad": {
"migrated": false,
"bondingProgress": 38.6,
"graduatedAt": null
},
"stats24h": {
"volumeUsd": 16738.29,
"buys": 412,
"sells": 389,
"priceChangePct": -71.5
}
},
"asOf": 1787097303652
}{
"op": "subscribe",
"channel": "token-updates",
"id": "tok-1",
"params": {
"chain": "solana",
"address": "CBZq5ycLcr6mnYvjFTPuYSuhgS3ujsiTrT4sqatBpump"
}
}Streams
Token Updates Stream
Live refresh of the mutable Token Details fields - price, market cap, liquidity, bonding progress, 24h stats. Throttled to at most one event per second per token; fields you already parse from /v1/token.
WS channel: token-updates
Live refresh of the mutable Token Details fields - price, market cap, liquidity, bonding progress, 24h stats. Throttled to at most one event per second per token; fields you already parse from /v1/token.
string
required
Public chain id -
evm:<id> or solana. Example: solanastring
required
Token address. Example:
CBZq5ycLcr6mnYvjFTPuYSuhgS3ujsiTrT4sqatBpumpThe refresh runs server-side through the same engine as
/v1/token, so stats24h carries the identical fields and numbers as the REST snapshot - re-parse events with the code you already wrote.Close codes
| Code | Meaning |
|---|---|
4401 | Auth - key missing, invalid, or revoked. Live connections are dropped the moment a key is revoked. |
4402 | Monthly credit quota exhausted (the WebSocket mirror of REST 402). |
1008 | Policy - subscription limits, flooding, or a blocked socket. |
1001 | Idle timeout - no ping within the keepalive window. |
{
"op": "subscribe",
"channel": "token-updates",
"id": "tok-1",
"params": {
"chain": "solana",
"address": "CBZq5ycLcr6mnYvjFTPuYSuhgS3ujsiTrT4sqatBpump"
}
}
{
"op": "subscribed",
"id": "tok-1",
"channel": "token-updates"
}
{
"op": "event",
"id": "tok-1",
"channel": "token-updates",
"data": {
"priceNative": "0.000000028472524478",
"priceUsd": 0.0000021952461580276,
"marketCapUsd": 2195.24,
"fdvUsd": 2195.24,
"liquidityNative": "30.466812",
"liquidityUsd": 2348.64,
"launchpad": {
"migrated": false,
"bondingProgress": 38.6,
"graduatedAt": null,
"launchpadPoolAddress": "CBZq5ycLcr6mnYvjFTPuYSuhgS3ujsiTrT4sqatBpump"
},
"stats24h": {
"volumeNative": 217.201948,
"volumeUsd": 16738.29,
"buys": 412,
"sells": 389,
"buyVolumeNative": 112.043901,
"sellVolumeNative": 105.158047,
"txns": 792,
"priceChangePct": -71.5
}
},
"asOf": 1787097303652
}
Messages
{
"op": "subscribed",
"id": "tok-1",
"channel": "token-updates"
}{
"op": "event",
"id": "tok-1",
"channel": "token-updates",
"data": {
"priceNative": "0.000000028472524478",
"priceUsd": 0.0000021952461580276,
"marketCapUsd": 2195.24,
"fdvUsd": 2195.24,
"liquidityUsd": 2348.64,
"launchpad": {
"migrated": false,
"bondingProgress": 38.6,
"graduatedAt": null
},
"stats24h": {
"volumeUsd": 16738.29,
"buys": 412,
"sells": 389,
"priceChangePct": -71.5
}
},
"asOf": 1787097303652
}{
"op": "subscribe",
"channel": "token-updates",
"id": "tok-1",
"params": {
"chain": "solana",
"address": "CBZq5ycLcr6mnYvjFTPuYSuhgS3ujsiTrT4sqatBpump"
}
}Ack
type:object
Server acknowledgement: the subscription is live.
Update
type:object
Server push frame (Update).
Subscribe
type:object
Client frame opening the subscription (additive, ack is explicit).