跳轉到主要內容

概述

ChainStream DEX WebSocket API 提供即時資料訂閱服務,支援以下資料類型:
  • K線資料 (Candles)
  • 代幣相關 (Token Series)
  • 錢包相關 (Wallet Series)
  • 排名相關 (Ranking Series)
  • 交易相關 (Trade Series)
  • 流動池相關 (DexPool Series)
基礎 URL
wss://realtime-dex.chainstream.io/connection/websocket

快速開始

1. 建立連線

首先需要建立 WebSocket 連線。WebSocket 連線需要在 URL 中透過 token 查詢參數進行認證。
如果使用 Go 或 JavaScript 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()
SDK 安裝:
  • TypeScript/JavaScript: npm install @chainstream-io/sdk (npm)
  • Python: pip install chainstream-sdk (PyPI)
  • Go: go get github.com/chainstream-io/chainstream-go-sdk (GitHub)
  • Rust: 新增 chainstream-sdkCargo.toml (crates.io)

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}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
resolution
string
必填
K線週期,支援:1m, 5m, 15m, 1h, 4h, 1d
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:volume > 1000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "o": number,    // 開盤價
  "c": number,    // 收盤價
  "h": number,    // 最高價
  "l": number,    // 最低價
  "v": number,    // 交易量
  "r": string,    // 週期
  "t": number     // 時間戳
}

代幣

代幣統計

即時取得代幣的市場統計資料。 訂閱格式
dex-token-stats:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:price > 0.01
回應資料格式
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       // 當前價格
}

代幣持有者統計

即時取得代幣持有者統計資訊。 訂閱格式
dex-token-holding:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:holders > 200
回應資料格式
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      // 時間戳
}

新代幣元資料

取得新上市代幣的即時元資料資訊。 訂閱格式
dex-new-tokens-metadata:{chain}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:name == “USDC”
回應資料格式
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     // 建立時間戳(毫秒)
  }
]

新代幣資訊

取得新建立代幣的資訊。 訂閱格式
dex-new-token:{chain}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,      // 代幣地址
  "n": string,      // 名稱
  "s": string,      // 符號
  "dec": number,    // 小數位數
  "cts": number,    // 建立時間戳(毫秒)
  "lf": {           // 啟動來源資訊
    "pa": string,   // 程式地址
    "pf": string,   // 協議家族
    "pn": string    // 協議名稱
  }
}

代幣供應量

即時取得代幣的供應量和市值資訊。 訂閱格式
dex-token-supply:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:supply > 1000000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,    // 代幣地址
  "s": number,    // 供應量
  "mc": number,   // 市值(美元)
  "ts": number    // 時間戳
}

代幣流動性

即時取得代幣的流動性統計資訊。 訂閱格式
dex-token-general-stat-num:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:value > 1000000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,    // 代幣地址
  "t": string,    // 指標類型
  "v": number,    // 數值
  "ts": number    // 時間戳
}

代幣最大流動性

即時取得代幣在單一池子中的最大流動性資訊。 訂閱格式
dex-token-liquidity:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:liquidityInUsd > 10000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,     // 代幣地址
  "p": string,     // 池子地址
  "liu": string,   // 美元流動性
  "lin": string,   // 原生代幣流動性
  "ts": number     // 時間戳
}

代幣總流動性

即時取得代幣在所有池子中的總流動性資訊。 訂閱格式
dex-token-total-liquidity:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:liquidityInUsd > 50000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,     // 代幣地址
  "liu": string,   // 總美元流動性
  "lin": string,   // 總原生代幣流動性
  "pc": number,    // 池子數量
  "ts": number     // 時間戳
}

排名

排名的代幣統計資料

即時取得排名代幣的市場統計資料。 訂閱格式
dex-ranking-token-stats-list:{chain}_{channelType}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
channelType
string
必填
頻道類型,支援:new、trending、us_stocks、completed、graduated
回應資料格式
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       // 當前價格
  }
]

排名的代幣持有者統計

即時取得排名代幣的持有者統計資訊。 訂閱格式
dex-ranking-token-holding-list:{chain}_{channelType}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
channelType
string
必填
頻道類型,支援:new、trending、us_stocks、completed、graduated
回應資料格式
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      // 時間戳
  }
]

排名的代幣供應量資料

即時取得排名代幣的供應量和市值資訊。 訂閱格式
dex-ranking-token-supply-list:{chain}_{channelType}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
channelType
string
必填
頻道類型,支援:new、trending、us_stocks、completed、graduated
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
[
  {
    "a": string,    // 代幣地址
    "s": number,    // 供應量
    "mc": number,   // 市值(美元)
    "ts": number    // 時間戳
  }
]

排名的代幣流動性資料

即時取得排名代幣的流動性統計資訊。 訂閱格式
dex-ranking-token-general_stat_num-list:{chain}_{channelType}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
channelType
string
必填
頻道類型,支援:new、trending、us_stocks、completed、graduated
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
[
  {
    "a": string,    // 代幣地址
    "t": string,    // 指標類型
    "v": number,    // 數值
    "ts": number    // 時間戳
  }
]

排名的代幣列表

即時取得排名代幣的完整資訊列表,包括元資料、持有者統計、供應量和市場資料。 訂閱格式
dex-ranking-list:{chain}_{ranking_type}
# 或者指定DEX
dex-ranking-list:{chain}_{ranking_type}_{dex}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
ranking_type
string
必填
排名類型,支援:new、trending、us_stocks、completed、graduated
dex
string
可選的DEX平台,支援:pump_fun、raydium_launchpad、meteora_dynamic_bounding_curve、bonk_fun、boop_fun、moonit_fun
回應資料格式
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       // 當前價格
    }
  }
]

排名代幣綁定曲線

即時取得新上市代幣的綁定曲線進度。 訂閱格式
dex-ranking-token-bounding-curve-list:{chain}_new
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
[
  {
    "a": string,    // 代幣地址
    "pr": string    // 進度比例 (0-1)
  }
]

錢包

錢包餘額

即時取得錢包的餘額資訊。 訂閱格式
dex-wallet-balance:{chain}_{walletAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
walletAddress
string
必填
錢包地址,例如:HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:balance > 1000
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
[
  {
    "a": string,      // 錢包地址
    "ta": string,     // 代幣地址
    "tpiu": number,   // 代幣美元價格
    "b": number,      // 餘額
    "t": number       // 時間戳
  }
]

錢包盈虧資料(代幣級別)

即時取得錢包的盈虧(PnL)統計資料。 訂閱格式
dex-wallet-token-pnl:{chain}_{walletAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
walletAddress
string
必填
錢包地址
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:buyAmount > 1000
回應資料格式
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     // 總已實現盈虧比率
}

錢包盈虧資料(錢包級別)

即時取得錢包的整體盈虧統計資料。 訂閱格式
dex-wallet-pnl-list:{chain}_{walletAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
walletAddress
string
必填
錢包地址
回應資料格式
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      // 統計週期
  }
]

交易

代幣交易

即時取得代幣的交易事件。 訂閱格式
dex-trade:{chain}_{tokenAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
tokenAddress
string
必填
代幣合約地址,例如:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
filter
string
可選的篩選條件,使用Google Common Expression Language (CEL)表達式語言語法。例如:buyAmount > 100
回應資料格式
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       // 交易雜湊
}

錢包交易

即時取得指定錢包的交易事件。 訂閱格式
dex-wallet-trade:{chain}_{walletAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
walletAddress
string
必填
錢包地址,例如:GDekof7TtgeBKJtoVpkvzPin5mvhxSDyoUY2c1FK1T3i
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "bwa": string,     // maker地址
  "ba": number,      // 基礎代幣數量
  "sa": number,      // 報價代幣數量
  "swa": string,     // 報價代幣地址
  "bais": number,    // 美元金額
  "t": number,       // 時間戳
  "k": string,       // 事件類型
  "h": string,       // 交易雜湊
  "a": string        // 代幣地址
}

流動池

DEX 資金池餘額

即時取得 DEX 資金池的餘額資訊。 訂閱格式
dex-pool-balance:{chain}_{poolAddress}
參數說明
chain
string
必填
區塊鏈名稱,例如:sol
poolAddress
string
必填
資金池地址
回應資料格式
WebSocket API 回傳簡短欄位名以最佳化傳輸效率,SDK 回傳完整欄位名以提高程式碼可讀性。
{
  "a": string,     // 資金池地址
  "taa": string,   // 代幣A地址
  "taliu": number, // 代幣A流動性(美元)
  "tba": string,   // 代幣B地址
  "tbliu": 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秒需定期發送

最佳實踐

  1. 連線管理
    • 保持單一WebSocket連線
    • 實作自動重連機制
    • 定期發送心跳
  2. 錯誤處理
    • 實作完整的錯誤處理流程
    • 記錄詳細的錯誤日誌
    • 使用指數退避重連
  3. 效能最佳化
    • 合理控制訂閱數量
    • 實作訊息佇列機制
    • 及時清理無用訂閱

完整範例

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 時,認證、重連、心跳等都已自動處理,推薦在正式環境中使用。