> ## 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.

# WebSocket API

> WebSocket API 實時資料訂閱服務

## 概述

ChainStream DEX WebSocket API 提供實時資料訂閱服務，支援以下資料型別：

* K線資料 (Candles)
* 代幣相關 (Token Series)
* 錢包相關 (Wallet Series)
* 排名相關 (Ranking Series)
* 交易相關 (Trade Series)
* 流動池相關 (DexPool Series)

**基礎 URL**

```bash theme={null}
wss://realtime-dex.chainstream.io/connection/websocket
```

## 快速開始

### 1. 建立連線

首先需要建立 WebSocket 連線。WebSocket 連線需要在 URL 中透過 `token` 查詢引數進行認證。

<Tabs>
  <Tab title="使用 SDK（推薦）">
    如果使用 Go 或 JavaScript SDK，認證已內建處理，無需手動設定：

    ```typescript theme={null}
    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);
      }
    });
    ```

    <Note>
      呼叫 `subscribeXXX` 方法時，SDK 會自動檢測連線狀態，如果未連線會自動建立連線，無需手動呼叫 `connect()`。
    </Note>

    SDK 安裝：

    * **TypeScript/JavaScript**: `npm install @chainstream-io/sdk` ([npm](https://www.npmjs.com/package/@chainstream-io/sdk))
    * **Python**: `pip install chainstream-sdk` ([PyPI](https://pypi.org/project/chainstream-sdk))
    * **Go**: `go get github.com/chainstream-io/chainstream-go-sdk` ([GitHub](https://github.com/chainstream-io/chainstream-go-sdk))
    * **Rust**: 新增 `chainstream-sdk` 到 `Cargo.toml` ([crates.io](https://crates.io/crates/chainstream-sdk))
  </Tab>

  <Tab title="使用原生 WebSocket">
    使用瀏覽器原生 WebSocket 或其他 WebSocket 庫時，需要在 URL 中拼接 `token` 引數：

    ```typescript theme={null}
    // 浏览器或 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);
    };
    ```

    <Note>
      透過 URL 引數傳遞 token，瀏覽器原生 WebSocket 和各種第三方庫均可使用，無需特殊處理請求頭。
    </Note>
  </Tab>

  <Tab title="命令列測試">
    使用 `wscat` 進行測試：

    ```bash theme={null}
    $ wscat -c "wss://realtime-dex.chainstream.io/connection/websocket?token=YOUR_ACCESS_TOKEN"
    ```
  </Tab>
</Tabs>

### 2. 訂閱資料

選擇需要的資料型別進行訂閱：

```typescript theme={null}
// 订阅K线数据示例
ws.send(JSON.stringify({
  type: "subscribe",
  channel: "dex-candle:sol_6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN_1m"
}));
```

### 3. 處理資料

```typescript theme={null}
ws.onmessage = (event) => {
  const data = JSON.parse(event.data);
  console.log('收到数据:', data);
};
```

## 資料訂閱

### K線

#### K線資料

實時獲取代幣價格走勢的K線圖資料。

**訂閱格式**

```text theme={null}
dex-candle:{chain}_{tokenAddress}_{resolution}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址，例如：6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
</ParamField>

<ParamField query="resolution" type="string" required>
  K線週期，支援：1m, 5m, 15m, 1h, 4h, 1d
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：volume > 1000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "o": number,    // 开盘价
      "c": number,    // 收盘价
      "h": number,    // 最高价
      "l": number,    // 最低价
      "v": number,    // 交易量
      "r": string,    // 周期
      "t": number     // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "open": number,       // 开盘价
      "close": number,      // 收盘价
      "high": number,       // 最高价
      "low": number,        // 最低价
      "volume": number,     // 交易量
      "resolution": string, // 周期
      "time": number       // 时间戳
    }
    ```
  </Tab>
</Tabs>

### 代幣

#### 代幣統計

實時獲取代幣的市場統計資料。

**訂閱格式**

```text theme={null}
dex-token-stats:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址，例如：6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：price > 0.01
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "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       // 当前价格
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "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            // 当前价格
    }
    ```
  </Tab>
</Tabs>

#### 代幣持有者統計

實時獲取代幣持有者統計資訊。

**訂閱格式**

```text theme={null}
dex-token-holding:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址，例如：6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：holders > 200
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "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      // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "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        // 时间戳
    }
    ```
  </Tab>
</Tabs>

#### 新代幣後設資料

獲取新上市代幣的實時後設資料資訊。

**訂閱格式**

```text theme={null}
dex-new-tokens-metadata:{chain}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：name == "USDC"
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "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     // 创建时间戳（毫秒）
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "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       // 创建时间戳（毫秒）
      }
    ]
    ```
  </Tab>
</Tabs>

#### 新代幣資訊

獲取新建立代幣的資訊。

**訂閱格式**

```text theme={null}
dex-new-token:{chain}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,      // 代币地址
      "n": string,      // 名称
      "s": string,      // 符号
      "dec": number,    // 小数位数
      "cts": number,    // 创建时间戳（毫秒）
      "lf": {           // 启动来源信息
        "pa": string,   // 程序地址
        "pf": string,   // 协议家族
        "pn": string    // 协议名称
      }
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "tokenAddress": string,     // 代币地址
      "name": string,             // 名称
      "symbol": string,           // 符号
      "decimals": number,         // 小数位数
      "createdAtMs": number,      // 创建时间戳（毫秒）
      "launchFrom": {             // 启动来源信息
        "programAddress": string, // 程序地址
        "protocolFamily": string, // 协议家族
        "protocolName": string    // 协议名称
      }
    }
    ```
  </Tab>
</Tabs>

#### 代幣供應量

實時獲取代幣的供應量和市值資訊。

**訂閱格式**

```text theme={null}
dex-token-supply:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址，例如：6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：supply > 1000000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,    // 代币地址
      "s": number,    // 供应量
      "mc": number,   // 市值（美元）
      "ts": number    // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "tokenAddress": string,    // 代币地址
      "supply": number,          // 供应量
      "marketCapInUsd": number,  // 市值（美元）
      "timestamp": number        // 时间戳
    }
    ```
  </Tab>
</Tabs>

#### 代幣流動性

實時獲取代幣的流動性統計資訊。

**訂閱格式**

```text theme={null}
dex-token-general-stat-num:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：value > 1000000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,    // 代币地址
      "t": string,    // 指标类型
      "v": number,    // 数值
      "ts": number    // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "tokenAddress": string,  // 代币地址
      "metricType": string,    // 指标类型
      "value": number,         // 数值
      "timestamp": number      // 时间戳
    }
    ```
  </Tab>
</Tabs>

#### 代幣最大流動性

實時獲取代幣在單個池子中的最大流動性資訊。

**訂閱格式**

```text theme={null}
dex-token-liquidity:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：liquidityInUsd > 10000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,     // 代币地址
      "p": string,     // 池子地址
      "liu": string,   // 美元流动性
      "lin": string,   // 原生代币流动性
      "ts": number     // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "tokenAddress": string,       // 代币地址
      "poolAddress": string,        // 池子地址
      "liquidityInUsd": string,     // 美元流动性
      "liquidityInNative": string,  // 原生代币流动性
      "timestamp": number           // 时间戳
    }
    ```
  </Tab>
</Tabs>

#### 代幣總流動性

實時獲取代幣在所有池子中的總流動性資訊。

**訂閱格式**

```text theme={null}
dex-token-total-liquidity:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：liquidityInUsd > 50000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,     // 代币地址
      "liu": string,   // 总美元流动性
      "lin": string,   // 总原生代币流动性
      "pc": number,    // 池子数量
      "ts": number     // 时间戳
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "tokenAddress": string,       // 代币地址
      "liquidityInUsd": string,     // 总美元流动性
      "liquidityInNative": string,  // 总原生代币流动性
      "poolCount": number,          // 池子数量
      "timestamp": number           // 时间戳
    }
    ```
  </Tab>
</Tabs>

### 排名

#### 排名的代幣統計資料

實時獲取排名代幣的市場統計資料。

**訂閱格式**

```text theme={null}
dex-ranking-token-stats-list:{chain}_{channelType}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="channelType" type="string" required>
  頻道型別，支援：new、trending、us\_stocks、completed、graduated
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "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       // 当前价格
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "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            // 当前价格
      }
    ]
    ```
  </Tab>
</Tabs>

#### 排名的代幣持有者統計

實時獲取排名代幣的持有者統計資訊。

**訂閱格式**

```text theme={null}
dex-ranking-token-holding-list:{chain}_{channelType}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="channelType" type="string" required>
  頻道型別，支援：new、trending、us\_stocks、completed、graduated
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "a": string,      // 代币地址
        "h": number,      // 持有者数量
        "t100a": number,  // 前100名持有者持有总量
        "t10a": number,   // 前10名持有者持有总量
        "t100h": number,  // 前100名持有者数量
        "t10h": number,   // 前10名持有者数量
        "t100r": number,  // 前100名持有者持有比例
        "t10r": number,   // 前10名持有者持有比例
        "ts": number      // 时间戳
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "tokenAddress": string,    // 代币地址
        "holders": number,         // 持有者数量
        "top100Amount": number,    // 前100名持有者持有总量
        "top10Amount": number,     // 前10名持有者持有总量
        "top100Holders": number,   // 前100名持有者数量
        "top10Holders": number,    // 前10名持有者数量
        "top100Ratio": number,     // 前100名持有者持有比例
        "top10Ratio": number,      // 前10名持有者持有比例
        "timestamp": number        // 时间戳
      }
    ]
    ```
  </Tab>
</Tabs>

#### 排名的代幣供應量資料

實時獲取排名代幣的供應量和市值資訊。

**訂閱格式**

```text theme={null}
dex-ranking-token-supply-list:{chain}_{channelType}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="channelType" type="string" required>
  頻道型別，支援：new、trending、us\_stocks、completed、graduated
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "a": string,    // 代币地址
        "s": number,    // 供应量
        "mc": number,   // 市值（美元）
        "ts": number    // 时间戳
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "tokenAddress": string,    // 代币地址
        "supply": number,          // 供应量
        "marketCapInUsd": number,  // 市值（美元）
        "timestamp": number        // 时间戳
      }
    ]
    ```
  </Tab>
</Tabs>

#### 排名的代幣流動性資料

實時獲取排名代幣的流動性統計資訊。

**訂閱格式**

```text theme={null}
dex-ranking-token-general_stat_num-list:{chain}_{channelType}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="channelType" type="string" required>
  頻道型別，支援：new、trending、us\_stocks、completed、graduated
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "a": string,    // 代币地址
        "t": string,    // 指标类型
        "v": number,    // 数值
        "ts": number    // 时间戳
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "tokenAddress": string,  // 代币地址
        "metricType": string,    // 指标类型
        "value": number,         // 数值
        "timestamp": number      // 时间戳
      }
    ]
    ```
  </Tab>
</Tabs>

#### 排名的代幣列表

實時獲取排名代幣的完整資訊列表，包括後設資料、持有者統計、供應量和市場資料。

**訂閱格式**

```text theme={null}
dex-ranking-list:{chain}_{ranking_type}
# 或者指定DEX
dex-ranking-list:{chain}_{ranking_type}_{dex}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="ranking_type" type="string" required>
  排名型別，支援：new、trending、us\_stocks、completed、graduated
</ParamField>

<ParamField query="dex" type="string" required={false}>
  可選的DEX平臺，支援：pump\_fun、raydium\_launchpad、meteora\_dynamic\_bounding\_curve、bonk\_fun、boop\_fun、moonit\_fun
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        // 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       // 当前价格
        }
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        // 代币元数据
        "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             // 当前价格
        }
      }
    ]
    ```
  </Tab>
</Tabs>

#### 排名代幣繫結曲線

實時獲取新上市代幣的繫結曲線進度。

**訂閱格式**

```text theme={null}
dex-ranking-token-bounding-curve-list:{chain}_new
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "a": string,    // 代币地址
        "pr": string    // 进度比例 (0-1)
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "tokenAddress": string,   // 代币地址
        "progressRatio": string   // 进度比例 (0-1)
      }
    ]
    ```
  </Tab>
</Tabs>

### 錢包

#### 錢包餘額

實時獲取錢包的餘額資訊。

**訂閱格式**

```text theme={null}
dex-wallet-balance:{chain}_{walletAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="walletAddress" type="string" required>
  錢包地址，例如：HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：balance > 1000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "a": string,      // 钱包地址
        "ta": string,     // 代币地址
        "tpiu": number,   // 代币美元价格
        "b": number,      // 余额
        "t": number       // 时间戳
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "walletAddress": string,    // 钱包地址
        "tokenAddress": string,     // 代币地址
        "tokenPriceInUsd": number, // 代币美元价格
        "balance": number,          // 余额
        "timestamp": number         // 时间戳
      }
    ]
    ```
  </Tab>
</Tabs>

#### 錢包盈虧資料（代幣級別）

實時獲取錢包的盈虧(PnL)統計資料。

**訂閱格式**

```text theme={null}
dex-wallet-token-pnl:{chain}_{walletAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="walletAddress" type="string" required>
  錢包地址
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：buyAmount > 1000
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "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     // 总已实现盈亏比率
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "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  // 总已实现盈亏比率
    }
    ```
  </Tab>
</Tabs>

#### 錢包盈虧資料（錢包級別）

實時獲取錢包的整體盈虧統計資料。

**訂閱格式**

```text theme={null}
dex-wallet-pnl-list:{chain}_{walletAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="walletAddress" type="string" required>
  錢包地址
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    [
      {
        "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      // 统计周期
      }
    ]
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    [
      {
        "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             // 统计周期
      }
    ]
    ```
  </Tab>
</Tabs>

### 交易

#### 代幣交易

實時獲取代幣的交易事件。

**訂閱格式**

```text theme={null}
dex-trade:{chain}_{tokenAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="tokenAddress" type="string" required>
  代幣合約地址，例如：6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
</ParamField>

<ParamField query="filter" type="string" required={false}>
  可選的過濾條件，使用Google Common Expression Language (CEL)表示式語言語法。例如：buyAmount > 100
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "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       // 交易哈希
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "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          // 交易哈希
    }
    ```
  </Tab>
</Tabs>

#### 錢包交易

實時獲取指定錢包的交易事件。

**訂閱格式**

```text theme={null}
dex-wallet-trade:{chain}_{walletAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="walletAddress" type="string" required>
  錢包地址，例如：GDekof7TtgeBKJtoVpkvzPin5mvhxSDyoUY2c1FK1T3i
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "bwa": string,     // maker地址
      "ba": number,      // 基础代币数量
      "sa": number,      // 报价代币数量
      "swa": string,     // 报价代币地址
      "bais": number,    // 美元金额
      "t": number,       // 时间戳
      "k": string,       // 事件类型
      "h": string,       // 交易哈希
      "a": string        // 代币地址
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "maker": string,        // maker地址
      "baseAmount": number,   // 基础代币数量
      "quoteAmount": number,  // 报价代币数量
      "quoteAddress": string, // 报价代币地址
      "amountInUsd": number,  // 美元金额
      "timestamp": number,    // 时间戳
      "event": string,       // 事件类型
      "txHash": string,      // 交易哈希
      "tokenAddress": string  // 代币地址
    }
    ```
  </Tab>
</Tabs>

### 流動池

#### DEX 資金池餘額

實時獲取 DEX 資金池的餘額資訊。

**訂閱格式**

```text theme={null}
dex-pool-balance:{chain}_{poolAddress}
```

**引數說明**

<ParamField query="chain" type="string" required>
  區塊鏈名稱，例如：sol
</ParamField>

<ParamField query="poolAddress" type="string" required>
  資金池地址
</ParamField>

**響應資料格式**

<Tip>
  WebSocket API 返回簡短欄位名以最佳化傳輸效率，SDK 返回完整欄位名以提高程式碼可讀性。
</Tip>

<Tabs>
  <Tab title="WebSocket API">
    ```typescript theme={null}
    {
      "a": string,     // 资金池地址
      "taa": string,   // 代币A地址
      "taliu": number, // 代币A流动性（美元）
      "tba": string,   // 代币B地址
      "tbliu": number  // 代币B流动性（美元）
    }
    ```
  </Tab>

  <Tab title="SDK">
    ```typescript theme={null}
    {
      "poolAddress": string,           // 资金池地址
      "tokenAAddress": string,         // 代币A地址
      "tokenALiquidityInUsd": number,  // 代币A流动性（美元）
      "tokenBAddress": string,         // 代币B地址
      "tokenBLiquidityInUsd": number   // 代币B流动性（美元）
    }
    ```
  </Tab>
</Tabs>

## 使用示例

```typescript theme={null}
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);
  }
});
```

### 重連策略

推薦使用指數退避演算法進行重連：

```typescript theme={null}
function reconnect(attempt) {
  const delay = Math.min(1000 * Math.pow(2, attempt), 10000);
  setTimeout(() => {
    connect();
  }, delay);
}
```

## 使用限制

| 限制項   | 限制值     | 說明     |
| ----- | ------- | ------ |
| 最大訂閱數 | 100個/連線 | 超出將被拒絕 |
| 訊息大小  | 100KB   | 超出將被截斷 |
| 心跳間隔  | 30秒     | 需定期傳送  |

## 最佳實踐

1. **連線管理**
   * 保持單個WebSocket連線
   * 實現自動重連機制
   * 定期傳送心跳

2. **錯誤處理**
   * 實現完整的錯誤處理流程
   * 記錄詳細的錯誤日誌
   * 使用指數退避重連

3. **效能最佳化**
   * 合理控制訂閱數量
   * 實現訊息佇列機制
   * 及時清理無用訂閱

## 完整示例

<Tabs>
  <Tab title="使用 SDK（推薦）">
    ```typescript theme={null}
    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();
    ```

    <Note>
      使用 SDK 時，認證、重連、心跳等都已自動處理，推薦在生產環境中使用。

      * **TypeScript/JavaScript SDK**: [@chainstream-io/sdk](https://www.npmjs.com/package/@chainstream-io/sdk)
      * **Python SDK**: [chainstream-sdk](https://pypi.org/project/chainstream-sdk)
      * **Go SDK**: [chainstream-go-sdk](https://github.com/chainstream-io/chainstream-go-sdk)
      * **Rust SDK**: [chainstream-sdk](https://crates.io/crates/chainstream-sdk)
    </Note>
  </Tab>

  <Tab title="原生 WebSocket">
    ```typescript theme={null}
    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"
    );
    ```
  </Tab>
</Tabs>
