概述
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"
);

