Documentation Index
Fetch the complete documentation index at: https://docs.chainstream.io/llms.txt
Use this file to discover all available pages before exploring further.
概述
ChainStream DEX WebSocket API 提供實時資料訂閱服務,支援以下資料型別:- K線資料 (Candles)
- 代幣相關 (Token Series)
- 錢包相關 (Wallet Series)
- 排名相關 (Ranking Series)
- 交易相關 (Trade Series)
- 流動池相關 (DexPool Series)
wss://realtime-dex.chainstream.io/connection/websocket
快速開始
1. 建立連線
首先需要建立 WebSocket 連線。WebSocket 連線需要在 URL 中透過token 查詢引數進行認證。
- 使用 SDK(推薦)
- 使用原生 WebSocket
- 命令列測試
如果使用 Go 或 JavaScript SDK,認證已內建處理,無需手動設定:SDK 安裝:
import { ChainStreamClient } from '@chainstream-io/sdk';
import { Resolution } from '@chainstream-io/sdk/openapi';
const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');
// 直接订阅即可,SDK 会自动处理 WebSocket 连接和认证
client.stream.subscribeTokenCandles({
chain: 'sol',
tokenAddress: '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN',
resolution: Resolution._1m,
callback: (data) => {
console.log('收到数据:', data);
}
});
呼叫
subscribeXXX 方法時,SDK 會自動檢測連線狀態,如果未連線會自動建立連線,無需手動呼叫 connect()。使用瀏覽器原生 WebSocket 或其他 WebSocket 庫時,需要在 URL 中拼接
token 引數:// 浏览器或 Node.js 均可使用
const token = 'YOUR_ACCESS_TOKEN';
const ws = new WebSocket(
`wss://realtime-dex.chainstream.io/connection/websocket?token=${token}`
);
ws.onopen = () => {
console.log('连接成功');
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('收到数据:', data);
};
透過 URL 引數傳遞 token,瀏覽器原生 WebSocket 和各種第三方庫均可使用,無需特殊處理請求頭。
使用
wscat 進行測試:$ wscat -c "wss://realtime-dex.chainstream.io/connection/websocket?token=YOUR_ACCESS_TOKEN"
2. 訂閱資料
選擇需要的資料型別進行訂閱:// 订阅K线数据示例
ws.send(JSON.stringify({
type: "subscribe",
channel: "dex-candle:sol_6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN_1m"
}));
3. 處理資料
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('收到数据:', data);
};
資料訂閱
K線
K線資料
實時獲取代幣價格走勢的K線圖資料。 訂閱格式dex-candle:{chain}_{tokenAddress}_{resolution}
區塊鏈名稱,例如:sol
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
K線週期,支援:1m, 5m, 15m, 1h, 4h, 1d
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:volume > 1000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"o": number, // 开盘价
"c": number, // 收盘价
"h": number, // 最高价
"l": number, // 最低价
"v": number, // 交易量
"r": string, // 周期
"t": number // 时间戳
}
{
"open": number, // 开盘价
"close": number, // 收盘价
"high": number, // 最高价
"low": number, // 最低价
"volume": number, // 交易量
"resolution": string, // 周期
"time": number // 时间戳
}
代幣
代幣統計
實時獲取代幣的市場統計資料。 訂閱格式dex-token-stats:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:price > 0.01
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"t": number, // 时间戳
"b1m": number, // 1分钟内买入次数
"s1m": number, // 1分钟内卖出次数
"be1m": number, // 1分钟内买入人数
"se1m": number, // 1分钟内卖出人数
"bviu1m": number, // 1分钟内买入美元金额
"sviu1m": number, // 1分钟内卖出美元金额
"p1m": number, // 1分钟价格
"oiu1m": number, // 1分钟内开盘价格
"ciu1m": number, // 1分钟内收盘价格
"b5m": number, // 5分钟内买入次数
"s5m": number, // 5分钟内卖出次数
"be5m": number, // 5分钟内买入人数
"se5m": number, // 5分钟内卖出人数
"bviu5m": number, // 5分钟内买入美元金额
"sviu5m": number, // 5分钟内卖出美元金额
"p5m": number, // 5分钟价格
"oiu5m": number, // 5分钟内开盘价格
"ciu5m": number, // 5分钟内收盘价格
"b15m": number, // 15分钟内买入次数
"s15m": number, // 15分钟内卖出次数
"be15m": number, // 15分钟内买入人数
"se15m": number, // 15分钟内卖出人数
"bviu15m": number,// 15分钟内买入美元金额
"sviu15m": number,// 15分钟内卖出美元金额
"p15m": number, // 15分钟价格
"oiu15m": number, // 15分钟内开盘价格
"ciu15m": number, // 15分钟内收盘价格
"b30m": number, // 30分钟内买入次数
"s30m": number, // 30分钟内卖出次数
"be30m": number, // 30分钟内买入人数
"se30m": number, // 30分钟内卖出人数
"bviu30m": number,// 30分钟内买入美元金额
"sviu30m": number,// 30分钟内卖出美元金额
"p30m": number, // 30分钟价格
"oiu30m": number, // 30分钟内开盘价格
"ciu30m": number, // 30分钟内收盘价格
"b1h": number, // 1小时内买入次数
"s1h": number, // 1小时内卖出次数
"be1h": number, // 1小时内买入人数
"se1h": number, // 1小时内卖出人数
"bviu1h": number, // 1小时内买入美元金额
"sviu1h": number, // 1小时内卖出美元金额
"p1h": number, // 1小时价格
"oiu1h": number, // 1小时内开盘价格
"ciu1h": number, // 1小时内收盘价格
"b4h": number, // 4小时内买入次数
"s4h": number, // 4小时内卖出次数
"be4h": number, // 4小时内买入人数
"se4h": number, // 4小时内卖出人数
"bviu4h": number, // 4小时内买入美元金额
"sviu4h": number, // 4小时内卖出美元金额
"p4h": number, // 4小时价格
"oiu4h": number, // 4小时内开盘价格
"ciu4h": number, // 4小时内收盘价格
"b24h": number, // 24小时内买入次数
"s24h": number, // 24小时内卖出次数
"be24h": number, // 24小时内买入人数
"se24h": number, // 24小时内卖出人数
"bviu24h": number,// 24小时内买入美元金额
"sviu24h": number,// 24小时内卖出美元金额
"p24h": number, // 24小时价格
"oiu24h": number, // 24小时内开盘价格
"ciu24h": number, // 24小时内收盘价格
"p": number // 当前价格
}
{
"address": string, // 代币地址
"timestamp": number, // 时间戳
"buys1m": number, // 1分钟内买入次数
"sells1m": number, // 1分钟内卖出次数
"buyers1m": number, // 1分钟内买入人数
"sellers1m": number, // 1分钟内卖出人数
"buyVolumeInUsd1m": number, // 1分钟内买入美元金额
"sellVolumeInUsd1m": number,// 1分钟内卖出美元金额
"price1m": number, // 1分钟价格
"openInUsd1m": number, // 1分钟内开盘价格
"closeInUsd1m": number, // 1分钟内收盘价格
"buys5m": number, // 5分钟内买入次数
"sells5m": number, // 5分钟内卖出次数
"buyers5m": number, // 5分钟内买入人数
"sellers5m": number, // 5分钟内卖出人数
"buyVolumeInUsd5m": number, // 5分钟内买入美元金额
"sellVolumeInUsd5m": number,// 5分钟内卖出美元金额
"price5m": number, // 5分钟价格
"openInUsd5m": number, // 5分钟内开盘价格
"closeInUsd5m": number, // 5分钟内收盘价格
"buys15m": number, // 15分钟内买入次数
"sells15m": number, // 15分钟内卖出次数
"buyers15m": number, // 15分钟内买入人数
"sellers15m": number, // 15分钟内卖出人数
"buyVolumeInUsd15m": number,// 15分钟内买入美元金额
"sellVolumeInUsd15m": number,// 15分钟内卖出美元金额
"price15m": number, // 15分钟价格
"openInUsd15m": number, // 15分钟内开盘价格
"closeInUsd15m": number, // 15分钟内收盘价格
"buys30m": number, // 30分钟内买入次数
"sells30m": number, // 30分钟内卖出次数
"buyers30m": number, // 30分钟内买入人数
"sellers30m": number, // 30分钟内卖出人数
"buyVolumeInUsd30m": number,// 30分钟内买入美元金额
"sellVolumeInUsd30m": number,// 30分钟内卖出美元金额
"price30m": number, // 30分钟价格
"openInUsd30m": number, // 30分钟内开盘价格
"closeInUsd30m": number, // 30分钟内收盘价格
"buys1h": number, // 1小时内买入次数
"sells1h": number, // 1小时内卖出次数
"buyers1h": number, // 1小时内买入人数
"sellers1h": number, // 1小时内卖出人数
"buyVolumeInUsd1h": number, // 1小时内买入美元金额
"sellVolumeInUsd1h": number,// 1小时内卖出美元金额
"price1h": number, // 1小时价格
"openInUsd1h": number, // 1小时内开盘价格
"closeInUsd1h": number, // 1小时内收盘价格
"buys4h": number, // 4小时内买入次数
"sells4h": number, // 4小时内卖出次数
"buyers4h": number, // 4小时内买入人数
"sellers4h": number, // 4小时内卖出人数
"buyVolumeInUsd4h": number, // 4小时内买入美元金额
"sellVolumeInUsd4h": number,// 4小时内卖出美元金额
"price4h": number, // 4小时价格
"openInUsd4h": number, // 4小时内开盘价格
"closeInUsd4h": number, // 4小时内收盘价格
"buys24h": number, // 24小时内买入次数
"sells24h": number, // 24小时内卖出次数
"buyers24h": number, // 24小时内买入人数
"sellers24h": number, // 24小时内卖出人数
"buyVolumeInUsd24h": number,// 24小时内买入美元金额
"sellVolumeInUsd24h": number,// 24小时内卖出美元金额
"price24h": number, // 24小时价格
"openInUsd24h": number, // 24小时内开盘价格
"closeInUsd24h": number, // 24小时内收盘价格
"price": number // 当前价格
}
代幣持有者統計
實時獲取代幣持有者統計資訊。 訂閱格式dex-token-holding:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:holders > 200
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"h": number, // 持有者数量
"t100a": number, // 前100名持有者持有总量
"t10a": number, // 前10名持有者持有总量
"t100h": number, // 前100名持有者数量
"t10h": number, // 前10名持有者数量
"t100r": number, // 前100名持有者持有比例
"t10r": number, // 前10名持有者持有比例
"ch": number, // 创建者持有者数量
"ca": number, // 创建者持有量
"cr": number, // 创建者持有比例
"ts": number // 时间戳
}
{
"tokenAddress": string, // 代币地址
"holders": number, // 持有者数量
"top100Amount": number, // 前100名持有者持有总量
"top10Amount": number, // 前10名持有者持有总量
"top100Holders": number, // 前100名持有者数量
"top10Holders": number, // 前10名持有者数量
"top100Ratio": number, // 前100名持有者持有比例
"top10Ratio": number, // 前10名持有者持有比例
"creatorsHolders": number, // 创建者持有者数量
"creatorsAmount": number, // 创建者持有量
"creatorsRatio": number, // 创建者持有比例
"timestamp": number // 时间戳
}
新代幣後設資料
獲取新上市代幣的實時後設資料資訊。 訂閱格式dex-new-tokens-metadata:{chain}
區塊鏈名稱,例如:sol
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:name == “USDC”
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"n": string, // 名称
"s": string, // 符号
"iu": string, // 图片URL
"de": string, // 描述
"sm": { // 社交媒体
"tw": string, // Twitter
"tg": string, // Telegram
"w": string, // 网站
"tt": string, // TikTok
"dc": string, // Discord
"fb": string, // Facebook
"gh": string, // GitHub
"ig": string, // Instagram
"li": string, // LinkedIn
"md": string, // Medium
"rd": string, // Reddit
"yt": string, // YouTube
"bb": string // BitBucket
},
"cts": number // 创建时间戳(毫秒)
}
]
[
{
"tokenAddress": string, // 代币地址
"name": string, // 名称
"symbol": string, // 符号
"imageUrl": string, // 图片URL
"description": string, // 描述
"socialMedia": { // 社交媒体
"twitter": string, // Twitter
"telegram": string, // Telegram
"website": string, // 网站
"tiktok": string, // TikTok
"discord": string, // Discord
"facebook": string, // Facebook
"github": string, // GitHub
"instagram": string, // Instagram
"linkedin": string, // LinkedIn
"medium": string, // Medium
"reddit": string, // Reddit
"youtube": string, // YouTube
"bitbucket": string // BitBucket
},
"createdAtMs": number // 创建时间戳(毫秒)
}
]
新代幣資訊
獲取新建立代幣的資訊。 訂閱格式dex-new-token:{chain}
區塊鏈名稱,例如:sol
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"n": string, // 名称
"s": string, // 符号
"dec": number, // 小数位数
"cts": number, // 创建时间戳(毫秒)
"lf": { // 启动来源信息
"pa": string, // 程序地址
"pf": string, // 协议家族
"pn": string // 协议名称
}
}
{
"tokenAddress": string, // 代币地址
"name": string, // 名称
"symbol": string, // 符号
"decimals": number, // 小数位数
"createdAtMs": number, // 创建时间戳(毫秒)
"launchFrom": { // 启动来源信息
"programAddress": string, // 程序地址
"protocolFamily": string, // 协议家族
"protocolName": string // 协议名称
}
}
代幣供應量
實時獲取代幣的供應量和市值資訊。 訂閱格式dex-token-supply:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:supply > 1000000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"s": number, // 供应量
"mc": number, // 市值(美元)
"ts": number // 时间戳
}
{
"tokenAddress": string, // 代币地址
"supply": number, // 供应量
"marketCapInUsd": number, // 市值(美元)
"timestamp": number // 时间戳
}
代幣流動性
實時獲取代幣的流動性統計資訊。 訂閱格式dex-token-general-stat-num:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:value > 1000000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"t": string, // 指标类型
"v": number, // 数值
"ts": number // 时间戳
}
{
"tokenAddress": string, // 代币地址
"metricType": string, // 指标类型
"value": number, // 数值
"timestamp": number // 时间戳
}
代幣最大流動性
實時獲取代幣在單個池子中的最大流動性資訊。 訂閱格式dex-token-liquidity:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:liquidityInUsd > 10000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"p": string, // 池子地址
"liu": string, // 美元流动性
"lin": string, // 原生代币流动性
"ts": number // 时间戳
}
{
"tokenAddress": string, // 代币地址
"poolAddress": string, // 池子地址
"liquidityInUsd": string, // 美元流动性
"liquidityInNative": string, // 原生代币流动性
"timestamp": number // 时间戳
}
代幣總流動性
實時獲取代幣在所有池子中的總流動性資訊。 訂閱格式dex-token-total-liquidity:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:liquidityInUsd > 50000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"liu": string, // 总美元流动性
"lin": string, // 总原生代币流动性
"pc": number, // 池子数量
"ts": number // 时间戳
}
{
"tokenAddress": string, // 代币地址
"liquidityInUsd": string, // 总美元流动性
"liquidityInNative": string, // 总原生代币流动性
"poolCount": number, // 池子数量
"timestamp": number // 时间戳
}
排名
排名的代幣統計資料
實時獲取排名代幣的市場統計資料。 訂閱格式dex-ranking-token-stats-list:{chain}_{channelType}
區塊鏈名稱,例如:sol
頻道型別,支援:new、trending、us_stocks、completed、graduated
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"t": number, // 时间戳
"b1m": number, // 1分钟内买入次数
"s1m": number, // 1分钟内卖出次数
"be1m": number, // 1分钟内买入人数
"se1m": number, // 1分钟内卖出人数
"bviu1m": number, // 1分钟内买入美元金额
"sviu1m": number, // 1分钟内卖出美元金额
"p1m": number, // 1分钟价格
"oiu1m": number, // 1分钟内开盘价格
"ciu1m": number, // 1分钟内收盘价格
"b5m": number, // 5分钟内买入次数
"s5m": number, // 5分钟内卖出次数
"be5m": number, // 5分钟内买入人数
"se5m": number, // 5分钟内卖出人数
"bviu5m": number, // 5分钟内买入美元金额
"sviu5m": number, // 5分钟内卖出美元金额
"p5m": number, // 5分钟价格
"oiu5m": number, // 5分钟内开盘价格
"ciu5m": number, // 5分钟内收盘价格
"b15m": number, // 15分钟内买入次数
"s15m": number, // 15分钟内卖出次数
"be15m": number, // 15分钟内买入人数
"se15m": number, // 15分钟内卖出人数
"bviu15m": number,// 15分钟内买入美元金额
"sviu15m": number,// 15分钟内卖出美元金额
"p15m": number, // 15分钟价格
"oiu15m": number, // 15分钟内开盘价格
"ciu15m": number, // 15分钟内收盘价格
"b30m": number, // 30分钟内买入次数
"s30m": number, // 30分钟内卖出次数
"be30m": number, // 30分钟内买入人数
"se30m": number, // 30分钟内卖出人数
"bviu30m": number,// 30分钟内买入美元金额
"sviu30m": number,// 30分钟内卖出美元金额
"p30m": number, // 30分钟价格
"oiu30m": number, // 30分钟内开盘价格
"ciu30m": number, // 30分钟内收盘价格
"b1h": number, // 1小时内买入次数
"s1h": number, // 1小时内卖出次数
"be1h": number, // 1小时内买入人数
"se1h": number, // 1小时内卖出人数
"bviu1h": number, // 1小时内买入美元金额
"sviu1h": number, // 1小时内卖出美元金额
"p1h": number, // 1小时价格
"oiu1h": number, // 1小时内开盘价格
"ciu1h": number, // 1小时内收盘价格
"b4h": number, // 4小时内买入次数
"s4h": number, // 4小时内卖出次数
"be4h": number, // 4小时内买入人数
"se4h": number, // 4小时内卖出人数
"bviu4h": number, // 4小时内买入美元金额
"sviu4h": number, // 4小时内卖出美元金额
"p4h": number, // 4小时价格
"oiu4h": number, // 4小时内开盘价格
"ciu4h": number, // 4小时内收盘价格
"b24h": number, // 24小时内买入次数
"s24h": number, // 24小时内卖出次数
"be24h": number, // 24小时内买入人数
"se24h": number, // 24小时内卖出人数
"bviu24h": number,// 24小时内买入美元金额
"sviu24h": number,// 24小时内卖出美元金额
"p24h": number, // 24小时价格
"oiu24h": number, // 24小时内开盘价格
"ciu24h": number, // 24小时内收盘价格
"p": number // 当前价格
}
]
[
{
"address": string, // 代币地址
"timestamp": number, // 时间戳
"buys1m": number, // 1分钟内买入次数
"sells1m": number, // 1分钟内卖出次数
"buyers1m": number, // 1分钟内买入人数
"sellers1m": number, // 1分钟内卖出人数
"buyVolumeInUsd1m": number, // 1分钟内买入美元金额
"sellVolumeInUsd1m": number,// 1分钟内卖出美元金额
"price1m": number, // 1分钟价格
"openInUsd1m": number, // 1分钟内开盘价格
"closeInUsd1m": number, // 1分钟内收盘价格
"buys5m": number, // 5分钟内买入次数
"sells5m": number, // 5分钟内卖出次数
"buyers5m": number, // 5分钟内买入人数
"sellers5m": number, // 5分钟内卖出人数
"buyVolumeInUsd5m": number, // 5分钟内买入美元金额
"sellVolumeInUsd5m": number,// 5分钟内卖出美元金额
"price5m": number, // 5分钟价格
"openInUsd5m": number, // 5分钟内开盘价格
"closeInUsd5m": number, // 5分钟内收盘价格
"buys15m": number, // 15分钟内买入次数
"sells15m": number, // 15分钟内卖出次数
"buyers15m": number, // 15分钟内买入人数
"sellers15m": number, // 15分钟内卖出人数
"buyVolumeInUsd15m": number,// 15分钟内买入美元金额
"sellVolumeInUsd15m": number,// 15分钟内卖出美元金额
"price15m": number, // 15分钟价格
"openInUsd15m": number, // 15分钟内开盘价格
"closeInUsd15m": number, // 15分钟内收盘价格
"buys30m": number, // 30分钟内买入次数
"sells30m": number, // 30分钟内卖出次数
"buyers30m": number, // 30分钟内买入人数
"sellers30m": number, // 30分钟内卖出人数
"buyVolumeInUsd30m": number,// 30分钟内买入美元金额
"sellVolumeInUsd30m": number,// 30分钟内卖出美元金额
"price30m": number, // 30分钟价格
"openInUsd30m": number, // 30分钟内开盘价格
"closeInUsd30m": number, // 30分钟内收盘价格
"buys1h": number, // 1小时内买入次数
"sells1h": number, // 1小时内卖出次数
"buyers1h": number, // 1小时内买入人数
"sellers1h": number, // 1小时内卖出人数
"buyVolumeInUsd1h": number, // 1小时内买入美元金额
"sellVolumeInUsd1h": number,// 1小时内卖出美元金额
"price1h": number, // 1小时价格
"openInUsd1h": number, // 1小时内开盘价格
"closeInUsd1h": number, // 1小时内收盘价格
"buys4h": number, // 4小时内买入次数
"sells4h": number, // 4小时内卖出次数
"buyers4h": number, // 4小时内买入人数
"sellers4h": number, // 4小时内卖出人数
"buyVolumeInUsd4h": number, // 4小时内买入美元金额
"sellVolumeInUsd4h": number,// 4小时内卖出美元金额
"price4h": number, // 4小时价格
"openInUsd4h": number, // 4小时内开盘价格
"closeInUsd4h": number, // 4小时内收盘价格
"buys24h": number, // 24小时内买入次数
"sells24h": number, // 24小时内卖出次数
"buyers24h": number, // 24小时内买入人数
"sellers24h": number, // 24小时内卖出人数
"buyVolumeInUsd24h": number,// 24小时内买入美元金额
"sellVolumeInUsd24h": number,// 24小时内卖出美元金额
"price24h": number, // 24小时价格
"openInUsd24h": number, // 24小时内开盘价格
"closeInUsd24h": number, // 24小时内收盘价格
"price": number // 当前价格
}
]
排名的代幣持有者統計
實時獲取排名代幣的持有者統計資訊。 訂閱格式dex-ranking-token-holding-list:{chain}_{channelType}
區塊鏈名稱,例如:sol
頻道型別,支援:new、trending、us_stocks、completed、graduated
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"h": number, // 持有者数量
"t100a": number, // 前100名持有者持有总量
"t10a": number, // 前10名持有者持有总量
"t100h": number, // 前100名持有者数量
"t10h": number, // 前10名持有者数量
"t100r": number, // 前100名持有者持有比例
"t10r": number, // 前10名持有者持有比例
"ts": number // 时间戳
}
]
[
{
"tokenAddress": string, // 代币地址
"holders": number, // 持有者数量
"top100Amount": number, // 前100名持有者持有总量
"top10Amount": number, // 前10名持有者持有总量
"top100Holders": number, // 前100名持有者数量
"top10Holders": number, // 前10名持有者数量
"top100Ratio": number, // 前100名持有者持有比例
"top10Ratio": number, // 前10名持有者持有比例
"timestamp": number // 时间戳
}
]
排名的代幣供應量資料
實時獲取排名代幣的供應量和市值資訊。 訂閱格式dex-ranking-token-supply-list:{chain}_{channelType}
區塊鏈名稱,例如:sol
頻道型別,支援:new、trending、us_stocks、completed、graduated
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"s": number, // 供应量
"mc": number, // 市值(美元)
"ts": number // 时间戳
}
]
[
{
"tokenAddress": string, // 代币地址
"supply": number, // 供应量
"marketCapInUsd": number, // 市值(美元)
"timestamp": number // 时间戳
}
]
排名的代幣流動性資料
實時獲取排名代幣的流動性統計資訊。 訂閱格式dex-ranking-token-general_stat_num-list:{chain}_{channelType}
區塊鏈名稱,例如:sol
頻道型別,支援:new、trending、us_stocks、completed、graduated
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"t": string, // 指标类型
"v": number, // 数值
"ts": number // 时间戳
}
]
[
{
"tokenAddress": string, // 代币地址
"metricType": string, // 指标类型
"value": number, // 数值
"timestamp": number // 时间戳
}
]
排名的代幣列表
實時獲取排名代幣的完整資訊列表,包括後設資料、持有者統計、供應量和市場資料。 訂閱格式dex-ranking-list:{chain}_{ranking_type}
# 或者指定DEX
dex-ranking-list:{chain}_{ranking_type}_{dex}
區塊鏈名稱,例如:sol
排名型別,支援:new、trending、us_stocks、completed、graduated
可選的DEX平臺,支援:pump_fun、raydium_launchpad、meteora_dynamic_bounding_curve、bonk_fun、boop_fun、moonit_fun
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
// TokenMetadata (t)
"t": {
"a": string, // 代币地址
"n": string, // 名称
"s": string, // 符号
"iu": string, // 图片URL
"de": string, // 描述
"dec": number, // 小数位数
"cts": number, // 创建时间戳(毫秒)
"lf": { // 启动来源信息
"pa": string, // 程序地址
"pf": string, // 协议家族
"pn": string // 协议名称
},
"mt": { // 迁移目标信息
"pa": string, // 程序地址
"pf": string, // 协议家族
"pn": string // 协议名称
},
"sm": { // 社交媒体
"tw": string, // Twitter
"tg": string, // Telegram
"w": string, // 网站
"tt": string, // TikTok
"dc": string, // Discord
"fb": string, // Facebook
"gh": string, // GitHub
"ig": string, // Instagram
"li": string, // LinkedIn
"md": string, // Medium
"rd": string, // Reddit
"yt": string, // YouTube
"bb": string // BitBucket
}
},
// TokenBondingCurve (bc)
"bc": {
"pr": number // 进度比例
},
// TokenHolder (h)
"h": {
"a": string, // 代币地址
"h": number, // 持有者数量
"t100a": number, // 前100名持有者持有总量
"t10a": number, // 前10名持有者持有总量
"t100h": number, // 前100名持有者数量
"t10h": number, // 前10名持有者数量
"t100r": number, // 前100名持有者持有比例
"t10r": number, // 前10名持有者持有比例
"ts": number // 时间戳
},
// TokenSupply (s)
"s": {
"a": string, // 代币地址
"s": number, // 供应量
"mc": number, // 市值(美元)
"ts": number // 时间戳
},
// TokenStat (ts)
"ts": {
"a": string, // 代币地址
"t": number, // 时间戳
"b1m": number, // 1分钟内买入次数
"s1m": number, // 1分钟内卖出次数
"be1m": number, // 1分钟内买入人数
"se1m": number, // 1分钟内卖出人数
"bviu1m": number, // 1分钟内买入美元金额
"sviu1m": number, // 1分钟内卖出美元金额
"p1m": number, // 1分钟价格
"oiu1m": number, // 1分钟内开盘价格
"ciu1m": number, // 1分钟内收盘价格
"b5m": number, // 5分钟内买入次数
"s5m": number, // 5分钟内卖出次数
"be5m": number, // 5分钟内买入人数
"se5m": number, // 5分钟内卖出人数
"bviu5m": number, // 5分钟内买入美元金额
"sviu5m": number, // 5分钟内卖出美元金额
"p5m": number, // 5分钟价格
"oiu5m": number, // 5分钟内开盘价格
"ciu5m": number, // 5分钟内收盘价格
"b15m": number, // 15分钟内买入次数
"s15m": number, // 15分钟内卖出次数
"be15m": number, // 15分钟内买入人数
"se15m": number, // 15分钟内卖出人数
"bviu15m": number,// 15分钟内买入美元金额
"sviu15m": number,// 15分钟内卖出美元金额
"p15m": number, // 15分钟价格
"oiu15m": number, // 15分钟内开盘价格
"ciu15m": number, // 15分钟内收盘价格
"b30m": number, // 30分钟内买入次数
"s30m": number, // 30分钟内卖出次数
"be30m": number, // 30分钟内买入人数
"se30m": number, // 30分钟内卖出人数
"bviu30m": number,// 30分钟内买入美元金额
"sviu30m": number,// 30分钟内卖出美元金额
"p30m": number, // 30分钟价格
"oiu30m": number, // 30分钟内开盘价格
"ciu30m": number, // 30分钟内收盘价格
"b1h": number, // 1小时内买入次数
"s1h": number, // 1小时内卖出次数
"be1h": number, // 1小时内买入人数
"se1h": number, // 1小时内卖出人数
"bviu1h": number, // 1小时内买入美元金额
"sviu1h": number, // 1小时内卖出美元金额
"p1h": number, // 1小时价格
"oiu1h": number, // 1小时内开盘价格
"ciu1h": number, // 1小时内收盘价格
"b4h": number, // 4小时内买入次数
"s4h": number, // 4小时内卖出次数
"be4h": number, // 4小时内买入人数
"se4h": number, // 4小时内卖出人数
"bviu4h": number, // 4小时内买入美元金额
"sviu4h": number, // 4小时内卖出美元金额
"p4h": number, // 4小时价格
"oiu4h": number, // 4小时内开盘价格
"ciu4h": number, // 4小时内收盘价格
"b24h": number, // 24小时内买入次数
"s24h": number, // 24小时内卖出次数
"be24h": number, // 24小时内买入人数
"se24h": number, // 24小时内卖出人数
"bviu24h": number,// 24小时内买入美元金额
"sviu24h": number,// 24小时内卖出美元金额
"p24h": number, // 24小时价格
"oiu24h": number, // 24小时内开盘价格
"ciu24h": number, // 24小时内收盘价格
"p": number // 当前价格
}
}
]
[
{
// 代币元数据
"metadata": {
"tokenAddress": string, // 代币地址
"name": string, // 名称
"symbol": string, // 符号
"imageUrl": string, // 图片URL
"description": string, // 描述
"decimals": number, // 小数位数
"createdAtMs": number, // 创建时间戳(毫秒)
"launchFrom": { // 启动来源信息
"programAddress": string, // 程序地址
"protocolFamily": string, // 协议家族
"protocolName": string // 协议名称
},
"migratedTo": { // 迁移目标信息
"programAddress": string, // 程序地址
"protocolFamily": string, // 协议家族
"protocolName": string // 协议名称
},
"socialMedia": { // 社交媒体
"twitter": string, // Twitter
"telegram": string, // Telegram
"website": string, // 网站
"tiktok": string, // TikTok
"discord": string, // Discord
"facebook": string, // Facebook
"github": string, // GitHub
"instagram": string, // Instagram
"linkedin": string, // LinkedIn
"medium": string, // Medium
"reddit": string, // Reddit
"youtube": string, // YouTube
"bitbucket": string // BitBucket
}
},
// 绑定曲线信息
"bondingCurve": {
"progressRatio": number // 进度比例
},
// 持有者统计
"holder": {
"tokenAddress": string, // 代币地址
"timestamp": number, // 时间戳
"holders": number, // 持有者数量
"top100Amount": number, // 前100名持有者持有总量
"top10Amount": number, // 前10名持有者持有总量
"top100Holders": number, // 前100名持有者数量
"top10Holders": number, // 前10名持有者数量
"top100Ratio": number, // 前100名持有者持有比例
"top10Ratio": number // 前10名持有者持有比例
},
// 供应量信息
"supply": {
"tokenAddress": string, // 代币地址
"timestamp": number, // 时间戳
"supply": number, // 供应量
"marketCapInUsd": number // 市值(美元)
},
// 市场统计数据
"stat": {
"address": string, // 代币地址
"timestamp": number, // 时间戳
"buys1m": number, // 1分钟内买入次数
"sells1m": number, // 1分钟内卖出次数
"buyers1m": number, // 1分钟内买入人数
"sellers1m": number, // 1分钟内卖出人数
"buyVolumeInUsd1m": number, // 1分钟内买入美元金额
"sellVolumeInUsd1m": number,// 1分钟内卖出美元金额
"price1m": number, // 1分钟价格
"openInUsd1m": number, // 1分钟内开盘价格
"closeInUsd1m": number, // 1分钟内收盘价格
"buys5m": number, // 5分钟内买入次数
"sells5m": number, // 5分钟内卖出次数
"buyers5m": number, // 5分钟内买入人数
"sellers5m": number, // 5分钟内卖出人数
"buyVolumeInUsd5m": number, // 5分钟内买入美元金额
"sellVolumeInUsd5m": number,// 5分钟内卖出美元金额
"price5m": number, // 5分钟价格
"openInUsd5m": number, // 5分钟内开盘价格
"closeInUsd5m": number, // 5分钟内收盘价格
"buys15m": number, // 15分钟内买入次数
"sells15m": number, // 15分钟内卖出次数
"buyers15m": number, // 15分钟内买入人数
"sellers15m": number, // 15分钟内卖出人数
"buyVolumeInUsd15m": number,// 15分钟内买入美元金额
"sellVolumeInUsd15m": number,// 15分钟内卖出美元金额
"price15m": number, // 15分钟价格
"openInUsd15m": number, // 15分钟内开盘价格
"closeInUsd15m": number, // 15分钟内收盘价格
"buys30m": number, // 30分钟内买入次数
"sells30m": number, // 30分钟内卖出次数
"buyers30m": number, // 30分钟内买入人数
"sellers30m": number, // 30分钟内卖出人数
"buyVolumeInUsd30m": number,// 30分钟内买入美元金额
"sellVolumeInUsd30m": number,// 30分钟内卖出美元金额
"price30m": number, // 30分钟价格
"openInUsd30m": number, // 30分钟内开盘价格
"closeInUsd30m": number, // 30分钟内收盘价格
"buys1h": number, // 1小时内买入次数
"sells1h": number, // 1小时内卖出次数
"buyers1h": number, // 1小时内买入人数
"sellers1h": number, // 1小时内卖出人数
"buyVolumeInUsd1h": number, // 1小时内买入美元金额
"sellVolumeInUsd1h": number,// 1小时内卖出美元金额
"price1h": number, // 1小时价格
"openInUsd1h": number, // 1小时内开盘价格
"closeInUsd1h": number, // 1小时内收盘价格
"buys4h": number, // 4小时内买入次数
"sells4h": number, // 4小时内卖出次数
"buyers4h": number, // 4小时内买入人数
"sellers4h": number, // 4小时内卖出人数
"buyVolumeInUsd4h": number, // 4小时内买入美元金额
"sellVolumeInUsd4h": number,// 4小时内卖出美元金额
"price4h": number, // 4小时价格
"openInUsd4h": number, // 4小时内开盘价格
"closeInUsd4h": number, // 4小时内收盘价格
"buys24h": number, // 24小时内买入次数
"sells24h": number, // 24小时内卖出次数
"buyers24h": number, // 24小时内买入人数
"sellers24h": number, // 24小时内卖出人数
"buyVolumeInUsd24h": number,// 24小时内买入美元金额
"sellVolumeInUsd24h": number,// 24小时内卖出美元金额
"price24h": number, // 24小时价格
"openInUsd24h": number, // 24小时内开盘价格
"closeInUsd24h": number, // 24小时内收盘价格
"price": number // 当前价格
}
}
]
排名代幣繫結曲線
實時獲取新上市代幣的繫結曲線進度。 訂閱格式dex-ranking-token-bounding-curve-list:{chain}_new
區塊鏈名稱,例如:sol
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 代币地址
"pr": string // 进度比例 (0-1)
}
]
[
{
"tokenAddress": string, // 代币地址
"progressRatio": string // 进度比例 (0-1)
}
]
錢包
錢包餘額
實時獲取錢包的餘額資訊。 訂閱格式dex-wallet-balance:{chain}_{walletAddress}
區塊鏈名稱,例如:sol
錢包地址,例如:HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:balance > 1000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 钱包地址
"ta": string, // 代币地址
"tpiu": number, // 代币美元价格
"b": number, // 余额
"t": number // 时间戳
}
]
[
{
"walletAddress": string, // 钱包地址
"tokenAddress": string, // 代币地址
"tokenPriceInUsd": number, // 代币美元价格
"balance": number, // 余额
"timestamp": number // 时间戳
}
]
錢包盈虧資料(代幣級別)
實時獲取錢包的盈虧(PnL)統計資料。 訂閱格式dex-wallet-token-pnl:{chain}_{walletAddress}
區塊鏈名稱,例如:sol
錢包地址
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:buyAmount > 1000
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 钱包地址
"ta": string, // 代币地址
"tpiu": number, // 代币美元价格
"t": number, // 时间戳
"ot": number, // 开仓时间
"lt": number, // 最后交易时间
"ct": number, // 平仓时间
"ba": number, // 买入数量
"baiu": number, // 买入美元金额
"bs": number, // 买入次数
"bs30d": number, // 30天买入次数
"bs7d": number, // 7天买入次数
"sa": number, // 卖出数量
"saiu": number, // 卖出美元金额
"ss": number, // 卖出次数
"ss30d": number, // 30天卖出次数
"ss7d": number, // 7天卖出次数
"hdts": number, // 持仓时长时间戳
"abpiu": number, // 平均买入美元价格
"aspiu": number, // 平均卖出美元价格
"upiu": number, // 未实现美元盈亏
"upr": number, // 未实现盈亏比率
"rpiu": number, // 已实现美元盈亏
"rpr": number, // 已实现盈亏比率
"trpiu": number, // 总已实现美元盈亏
"trr": number // 总已实现盈亏比率
}
{
"walletAddress": string, // 钱包地址
"tokenAddress": string, // 代币地址
"tokenPriceInUsd": number, // 代币美元价格
"timestamp": number, // 时间戳
"opentime": number, // 开仓时间
"lasttime": number, // 最后交易时间
"closetime": number, // 平仓时间
"buyAmount": number, // 买入数量
"buyAmountInUsd": number, // 买入美元金额
"buyCount": number, // 买入次数
"buyCount30d": number, // 30天买入次数
"buyCount7d": number, // 7天买入次数
"sellAmount": number, // 卖出数量
"sellAmountInUsd": number, // 卖出美元金额
"sellCount": number, // 卖出次数
"sellCount30d": number, // 30天卖出次数
"sellCount7d": number, // 7天卖出次数
"heldDurationTimestamp": number, // 持仓时长时间戳
"averageBuyPriceInUsd": number, // 平均买入美元价格
"averageSellPriceInUsd": number, // 平均卖出美元价格
"unrealizedProfitInUsd": number, // 未实现美元盈亏
"unrealizedProfitRatio": number, // 未实现盈亏比率
"realizedProfitInUsd": number, // 已实现美元盈亏
"realizedProfitRatio": number, // 已实现盈亏比率
"totalRealizedProfitInUsd": number, // 总已实现美元盈亏
"totalRealizedProfitRatio": number // 总已实现盈亏比率
}
錢包盈虧資料(錢包級別)
實時獲取錢包的整體盈虧統計資料。 訂閱格式dex-wallet-pnl-list:{chain}_{walletAddress}
區塊鏈名稱,例如:sol
錢包地址
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
[
{
"a": string, // 钱包地址
"bs": number, // 买入次数
"ba": number, // 买入数量
"baiu": number, // 买入美元金额
"abpiu": number, // 平均买入美元价格
"sa": number, // 卖出数量
"saiu": number, // 卖出美元金额
"ss": number, // 卖出次数
"ws": number, // 盈利次数
"wr": number, // 胜率
"piu": number, // 美元盈亏
"apiu": number, // 平均美元盈亏
"pr": number, // 盈亏比率
"pd": number, // 盈利天数
"ld": number, // 亏损天数
"ts": number, // 交易代币数
"r": string // 统计周期
}
]
[
{
"walletAddress": string, // 钱包地址
"buys": number, // 买入次数
"buyAmount": number, // 买入数量
"buyAmountInUsd": number, // 买入美元金额
"averageBuyPriceInUsd": number, // 平均买入美元价格
"sellAmount": number, // 卖出数量
"sellAmountInUsd": number, // 卖出美元金额
"sells": number, // 卖出次数
"wins": number, // 盈利次数
"winRatio": number, // 胜率
"pnlInUsd": number, // 美元盈亏
"averagePnlInUsd": number, // 平均美元盈亏
"pnlRatio": number, // 盈亏比率
"profitableDays": number, // 盈利天数
"losingDays": number, // 亏损天数
"tokens": number, // 交易代币数
"resolution": string // 统计周期
}
]
交易
代幣交易
實時獲取代幣的交易事件。 訂閱格式dex-trade:{chain}_{tokenAddress}
區塊鏈名稱,例如:sol
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
可選的過濾條件,使用Google Common Expression Language (CEL)表示式語言語法。例如:buyAmount > 100
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 代币地址
"t": number, // 时间戳
"k": string, // 交易类型
"ba": number, // 买入数量
"baiu": number, // 买入美元金额
"btma": string, // 买入代币地址
"btn": string, // 买入代币名称
"bts": string, // 买入代币符号
"bwa": string, // 买入钱包地址
"sa": number, // 卖出数量
"saiu": number, // 卖出美元金额
"stma": string, // 卖出代币地址
"stn": string, // 卖出代币名称
"sts": string, // 卖出代币符号
"swa": string, // 卖出钱包地址
"h": string // 交易哈希
}
{
"tokenAddress": string, // 代币地址
"timestamp": number, // 时间戳
"kind": string, // 交易类型
"buyAmount": number, // 买入数量
"buyAmountInUsd": number, // 买入美元金额
"buyTokenAddress": string, // 买入代币地址
"buyTokenName": string, // 买入代币名称
"buyTokenSymbol": string, // 买入代币符号
"buyWalletAddress": string,// 买入钱包地址
"sellAmount": number, // 卖出数量
"sellAmountInUsd": number,// 卖出美元金额
"sellTokenAddress": string,// 卖出代币地址
"sellTokenName": string, // 卖出代币名称
"sellTokenSymbol": string,// 卖出代币符号
"sellWalletAddress": string,// 卖出钱包地址
"txHash": string // 交易哈希
}
錢包交易
實時獲取指定錢包的交易事件。 訂閱格式dex-wallet-trade:{chain}_{walletAddress}
區塊鏈名稱,例如:sol
錢包地址,例如:GDekof7TtgeBKJtoVpkvzPin5mvhxSDyoUY2c1FK1T3i
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"bwa": string, // maker地址
"ba": number, // 基础代币数量
"sa": number, // 报价代币数量
"swa": string, // 报价代币地址
"bais": number, // 美元金额
"t": number, // 时间戳
"k": string, // 事件类型
"h": string, // 交易哈希
"a": string // 代币地址
}
{
"maker": string, // maker地址
"baseAmount": number, // 基础代币数量
"quoteAmount": number, // 报价代币数量
"quoteAddress": string, // 报价代币地址
"amountInUsd": number, // 美元金额
"timestamp": number, // 时间戳
"event": string, // 事件类型
"txHash": string, // 交易哈希
"tokenAddress": string // 代币地址
}
流動池
DEX 資金池餘額
實時獲取 DEX 資金池的餘額資訊。 訂閱格式dex-pool-balance:{chain}_{poolAddress}
區塊鏈名稱,例如:sol
資金池地址
WebSocket API 返回簡短欄位名以最佳化傳輸效率,SDK 返回完整欄位名以提高程式碼可讀性。
- WebSocket API
- SDK
{
"a": string, // 资金池地址
"taa": string, // 代币A地址
"taliu": number, // 代币A流动性(美元)
"tba": string, // 代币B地址
"tbliu": number // 代币B流动性(美元)
}
{
"poolAddress": string, // 资金池地址
"tokenAAddress": string, // 代币A地址
"tokenALiquidityInUsd": number, // 代币A流动性(美元)
"tokenBAddress": string, // 代币B地址
"tokenBLiquidityInUsd": number // 代币B流动性(美元)
}
使用示例
import { ChainStreamClient } from '@chainstream-io/sdk';
import { Resolution } from '@chainstream-io/sdk/openapi';
const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');
// 直接订阅即可,SDK 会自动检测连接状态并建立连接
client.stream.subscribeTokenCandles({
chain: 'sol',
tokenAddress: '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN',
resolution: Resolution._1m,
callback: (data) => {
console.log('K线数据:', data);
}
});
// 订阅钱包余额
client.stream.subscribeWalletBalance({
chain: 'sol',
walletAddress: 'YOUR_WALLET_ADDRESS',
callback: (data) => {
console.log('钱包余额:', data);
}
});
重連策略
推薦使用指數退避演算法進行重連:function reconnect(attempt) {
const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
setTimeout(() => {
connect();
}, delay);
}
使用限制
| 限制項 | 限制值 | 說明 |
|---|---|---|
| 最大訂閱數 | 100個/連線 | 超出將被拒絕 |
| 訊息大小 | 100KB | 超出將被截斷 |
| 心跳間隔 | 30秒 | 需定期傳送 |
最佳實踐
-
連線管理
- 保持單個WebSocket連線
- 實現自動重連機制
- 定期傳送心跳
-
錯誤處理
- 實現完整的錯誤處理流程
- 記錄詳細的錯誤日誌
- 使用指數退避重連
-
效能最佳化
- 合理控制訂閱數量
- 實現訊息佇列機制
- 及時清理無用訂閱
完整示例
- 使用 SDK(推薦)
- 原生 WebSocket
import { ChainStreamClient } from '@chainstream-io/sdk';
import { Resolution } from '@chainstream-io/sdk/openapi';
const client = new ChainStreamClient('YOUR_ACCESS_TOKEN');
// 直接订阅即可,SDK 会自动检测连接状态并建立连接
const subscription = client.stream.subscribeTokenCandles({
chain: 'sol',
tokenAddress: '6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN',
resolution: Resolution._1m,
callback: (data) => {
console.log('K线数据:', data);
}
});
// 取消订阅
subscription.unsubscribe();
使用 SDK 時,認證、重連、心跳等都已自動處理,推薦在生產環境中使用。
- TypeScript/JavaScript SDK: @chainstream-io/sdk
- Python SDK: chainstream-sdk
- Go SDK: chainstream-go-sdk
- Rust SDK: chainstream-sdk
class DexWebSocket {
private ws: WebSocket;
private reconnectAttempts = 0;
private maxReconnectAttempts = 5;
private subscriptions = new Set<string>();
constructor(
private baseUrl: string,
private accessToken: string
) {
this.connect();
}
private connect() {
// 在 URL 中拼接 token 参数进行认证
const url = `${this.baseUrl}?token=${this.accessToken}`;
this.ws = new WebSocket(url);
this.ws.onopen = () => {
console.log('WebSocket 连接成功');
this.reconnectAttempts = 0;
// 重新订阅之前的频道
this.resubscribe();
};
this.ws.onmessage = (event) => {
this.handleMessage(JSON.parse(event.data));
};
this.ws.onclose = () => {
console.log('WebSocket 连接关闭');
this.reconnect();
};
this.ws.onerror = (error) => {
console.error('WebSocket 错误:', error);
};
}
private reconnect() {
if (this.reconnectAttempts < this.maxReconnectAttempts) {
const delay = Math.min(1000 * Math.pow(2, this.reconnectAttempts), 10000);
this.reconnectAttempts++;
console.log(`${delay}ms 后尝试重连...`);
setTimeout(() => this.connect(), delay);
}
}
private resubscribe() {
this.subscriptions.forEach(channel => {
this.send({ type: "subscribe", channel });
});
}
private handleMessage(data: any) {
// 处理消息
}
private send(data: any) {
if (this.ws.readyState === WebSocket.OPEN) {
this.ws.send(JSON.stringify(data));
}
}
public subscribe(channel: string) {
this.subscriptions.add(channel);
this.send({ type: "subscribe", channel });
}
public unsubscribe(channel: string) {
this.subscriptions.delete(channel);
this.send({ type: "unsubscribe", channel });
}
}
// 使用示例
const client = new DexWebSocket(
"wss://realtime-dex.chainstream.io/connection/websocket",
"YOUR_ACCESS_TOKEN"
);

