メインコンテンツへスキップ

概要

ChainStream DEX WebSocket APIは、以下のデータタイプをサポートするリアルタイムデータサブスクリプションサービスを提供します:
  • ローソク足データ (Candles)
  • トークン関連 (Token Series)
  • ウォレット関連 (Wallet Series)
  • ランキング関連 (Ranking Series)
  • 取引関連 (Trade Series)
  • DEXプール関連 (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: Cargo.tomlchainstream-sdkを追加 (crates.io)

2. データのサブスクライブ

サブスクライブしたいデータタイプを選択します:
// ローソク足データのサブスクライブ例
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);
};

データサブスクリプション

ローソク足

ローソク足データ

トークンの価格推移データをリアルタイムで取得します。 サブスクリプション形式
dex-candle:{chain}_{tokenAddress}_{resolution}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
tokenAddress
string
必須
トークンコントラクトアドレス、例:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
resolution
string
必須
ローソク足期間、対応:1m, 5m, 15m, 1h, 4h, 1d
filter
string
オプションのフィルター条件。Google Common Expression Language(CEL)構文を使用。例:volume > 1000
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "o": number,    // Open price
  "c": number,    // Close price
  "h": number,    // High price
  "l": number,    // Low price
  "v": number,    // Volume
  "r": string,    // Resolution
  "t": number     // Timestamp
}

トークン関連

トークン統計

トークンのリアルタイム市場統計データを取得します。 サブスクリプション形式
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,      // Token address
  "t": number,      // Timestamp
  "b1m": number,    // Buys in 1m
  "s1m": number,    // Sells in 1m
  "be1m": number,   // Buyers in 1m
  "se1m": number,   // Sellers in 1m
  "bviu1m": number, // Buy volume in USD 1m
  "sviu1m": number, // Sell volume in USD 1m
  "p1m": number,    // Price 1m
  "oiu1m": number,  // Open price in USD 1m
  "ciu1m": number,  // Close price in USD 1m
  "b5m": number,    // Buys in 5m
  "s5m": number,    // Sells in 5m
  "be5m": number,   // Buyers in 5m
  "se5m": number,   // Sellers in 5m
  "bviu5m": number, // Buy volume in USD 5m
  "sviu5m": number, // Sell volume in USD 5m
  "p5m": number,    // Price 5m
  "oiu5m": number,  // Open price in USD 5m
  "ciu5m": number,  // Close price in USD 5m
  "b15m": number,   // Buys in 15m
  "s15m": number,   // Sells in 15m
  "be15m": number,  // Buyers in 15m
  "se15m": number,  // Sellers in 15m
  "bviu15m": number,// Buy volume in USD 15m
  "sviu15m": number,// Sell volume in USD 15m
  "p15m": number,   // Price 15m
  "oiu15m": number, // Open price in USD 15m
  "ciu15m": number, // Close price in USD 15m
  "b30m": number,   // Buys in 30m
  "s30m": number,   // Sells in 30m
  "be30m": number,  // Buyers in 30m
  "se30m": number,  // Sellers in 30m
  "bviu30m": number,// Buy volume in USD 30m
  "sviu30m": number,// Sell volume in USD 30m
  "p30m": number,   // Price 30m
  "oiu30m": number, // Open price in USD 30m
  "ciu30m": number, // Close price in USD 30m
  "b1h": number,    // Buys in 1h
  "s1h": number,    // Sells in 1h
  "be1h": number,   // Buyers in 1h
  "se1h": number,   // Sellers in 1h
  "bviu1h": number, // Buy volume in USD 1h
  "sviu1h": number, // Sell volume in USD 1h
  "p1h": number,    // Price 1h
  "oiu1h": number,  // Open price in USD 1h
  "ciu1h": number,  // Close price in USD 1h
  "b4h": number,    // Buys in 4h
  "s4h": number,    // Sells in 4h
  "be4h": number,   // Buyers in 4h
  "se4h": number,   // Sellers in 4h
  "bviu4h": number, // Buy volume in USD 4h
  "sviu4h": number, // Sell volume in USD 4h
  "p4h": number,    // Price 4h
  "oiu4h": number,  // Open price in USD 4h
  "ciu4h": number,  // Close price in USD 4h
  "b24h": number,   // Buys in 24h
  "s24h": number,   // Sells in 24h
  "be24h": number,  // Buyers in 24h
  "se24h": number,  // Sellers in 24h
  "bviu24h": number,// Buy volume in USD 24h
  "sviu24h": number,// Sell volume in USD 24h
  "p24h": number,   // Price 24h
  "oiu24h": number, // Open price in USD 24h
  "ciu24h": number, // Close price in USD 24h
  "p": number       // Current price
}

トークン保有者統計

トークン保有者のリアルタイム統計情報を取得します。 サブスクリプション形式
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,      // Token address
  "h": number,      // Number of holders
  "t100a": number,  // Top 100 holders total amount
  "t10a": number,   // Top 10 holders total amount
  "t100h": number,  // Top 100 holders count
  "t10h": number,   // Top 10 holders count
  "t100r": number,  // Top 100 holders ratio
  "t10r": number,   // Top 10 holders ratio
  "ch": number,     // Creators holders count
  "ca": number,     // Creators amount
  "cr": number,     // Creators ratio
  "ts": number      // Timestamp
}

新規トークンメタデータ

新規上場トークンのリアルタイムメタデータを取得します。 サブスクリプション形式
dex-new-tokens-metadata:{chain}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
filter
string
オプションのフィルター条件。Google Common Expression Language(CEL)構文を使用。例:name == “USDC”
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,      // Token address
    "n": string,      // Name
    "s": string,      // Symbol
    "iu": string,     // Image URL
    "de": string,     // Description
    "sm": {           // Social media
      "tw": string,   // Twitter
      "tg": string,   // Telegram
      "w": string,    // Website
      "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     // Created timestamp (ms)
  }
]

新規トークン

新しく作成されたトークンの情報を取得します。 サブスクリプション形式
dex-new-token:{chain}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "a": string,      // Token address
  "n": string,      // Name
  "s": string,      // Symbol
  "dec": number,    // Decimals
  "cts": number,    // Created timestamp (ms)
  "lf": {           // Launch from information
    "pa": string,   // Program address
    "pf": string,   // Protocol family
    "pn": string    // Protocol name
  }
}

トークン供給量

トークンの供給量と時価総額のリアルタイム情報を取得します。 サブスクリプション形式
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,    // Token address
  "s": number,    // Supply
  "mc": number,   // Market cap in USD
  "ts": number    // Timestamp
}

トークン流動性

トークンのリアルタイム流動性統計を取得します。 サブスクリプション形式
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,    // Token address
  "t": string,    // Metric type
  "v": number,    // Value
  "ts": number    // Timestamp
}

トークン最大流動性

単一プール内のトークンのリアルタイム最大流動性情報を取得します。 サブスクリプション形式
dex-token-liquidity:{chain}_{tokenAddress}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
tokenAddress
string
必須
トークンコントラクトアドレス
filter
string
オプションのフィルター条件。Google Common Expression Language(CEL)構文を使用。例:liquidityInUsd > 10000
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "a": string,     // Token address
  "p": string,     // Pool address
  "liu": string,   // Liquidity in USD
  "lin": string,   // Liquidity in native token
  "ts": number     // Timestamp
}

トークン合計流動性

全プールにわたるトークンのリアルタイム合計流動性情報を取得します。 サブスクリプション形式
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,     // Token address
  "liu": string,   // Total liquidity in USD
  "lin": string,   // Total liquidity in native token
  "pc": number,    // Pool count
  "ts": number     // Timestamp
}

ランキング関連

ランキングトークン統計

ランキングトークンのリアルタイム市場統計データを取得します。 サブスクリプション形式
dex-ranking-token-stats-list:{chain}_{channelType}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
channelType
string
必須
チャンネルタイプ、対応:new、trending、us_stocks、completed、graduated
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,      // Token address
    "t": number,      // Timestamp
    "b1m": number,    // Buys in 1m
    "s1m": number,    // Sells in 1m
    "be1m": number,   // Buyers in 1m
    "se1m": number,   // Sellers in 1m
    "bviu1m": number, // Buy volume in USD 1m
    "sviu1m": number, // Sell volume in USD 1m
    "p1m": number,    // Price 1m
    "oiu1m": number,  // Open price in USD 1m
    "ciu1m": number,  // Close price in USD 1m
    "b5m": number,    // Buys in 5m
    "s5m": number,    // Sells in 5m
    "be5m": number,   // Buyers in 5m
    "se5m": number,   // Sellers in 5m
    "bviu5m": number, // Buy volume in USD 5m
    "sviu5m": number, // Sell volume in USD 5m
    "p5m": number,    // Price 5m
    "oiu5m": number,  // Open price in USD 5m
    "ciu5m": number,  // Close price in USD 5m
    "b15m": number,   // Buys in 15m
    "s15m": number,   // Sells in 15m
    "be15m": number,  // Buyers in 15m
    "se15m": number,  // Sellers in 15m
    "bviu15m": number,// Buy volume in USD 15m
    "sviu15m": number,// Sell volume in USD 15m
    "p15m": number,   // Price 15m
    "oiu15m": number, // Open price in USD 15m
    "ciu15m": number, // Close price in USD 15m
    "b30m": number,   // Buys in 30m
    "s30m": number,   // Sells in 30m
    "be30m": number,  // Buyers in 30m
    "se30m": number,  // Sellers in 30m
    "bviu30m": number,// Buy volume in USD 30m
    "sviu30m": number,// Sell volume in USD 30m
    "p30m": number,   // Price 30m
    "oiu30m": number, // Open price in USD 30m
    "ciu30m": number, // Close price in USD 30m
    "b1h": number,    // Buys in 1h
    "s1h": number,    // Sells in 1h
    "be1h": number,   // Buyers in 1h
    "se1h": number,   // Sellers in 1h
    "bviu1h": number, // Buy volume in USD 1h
    "sviu1h": number, // Sell volume in USD 1h
    "p1h": number,    // Price 1h
    "oiu1h": number,  // Open price in USD 1h
    "ciu1h": number,  // Close price in USD 1h
    "b4h": number,    // Buys in 4h
    "s4h": number,    // Sells in 4h
    "be4h": number,   // Buyers in 4h
    "se4h": number,   // Sellers in 4h
    "bviu4h": number, // Buy volume in USD 4h
    "sviu4h": number, // Sell volume in USD 4h
    "p4h": number,    // Price 4h
    "oiu4h": number,  // Open price in USD 4h
    "ciu4h": number,  // Close price in USD 4h
    "b24h": number,   // Buys in 24h
    "s24h": number,   // Sells in 24h
    "be24h": number,  // Buyers in 24h
    "se24h": number,  // Sellers in 24h
    "bviu24h": number,// Buy volume in USD 24h
    "sviu24h": number,// Sell volume in USD 24h
    "p24h": number,   // Price 24h
    "oiu24h": number, // Open price in USD 24h
    "ciu24h": number, // Close price in USD 24h
    "p": number       // Current price
  }
]

ランキングトークン保有者統計

ランキングトークンのリアルタイム保有者統計情報を取得します。 サブスクリプション形式
dex-ranking-token-holding-list:{chain}_{channelType}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
channelType
string
必須
チャンネルタイプ、対応:new、trending、us_stocks、completed、graduated
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,      // Token address
    "h": number,      // Number of holders
    "t100a": number,  // Top 100 holders total amount
    "t10a": number,   // Top 10 holders total amount
    "t100h": number,  // Top 100 holders count
    "t10h": number,   // Top 10 holders count
    "t100r": number,  // Top 100 holders ratio
    "t10r": number,   // Top 10 holders ratio
    "ts": number      // Timestamp
  }
]

ランキングトークン供給量データ

ランキングトークンの供給量と時価総額のリアルタイム情報を取得します。 サブスクリプション形式
dex-ranking-token-supply-list:{chain}_{channelType}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
channelType
string
必須
チャンネルタイプ、対応:new、trending、us_stocks、completed、graduated
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,    // Token address
    "s": number,    // Supply
    "mc": number,   // Market cap in USD
    "ts": number    // Timestamp
  }
]

ランキングトークン流動性データ

ランキングトークンのリアルタイム流動性統計を取得します。 サブスクリプション形式
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,    // Token address
    "t": string,    // Metric type
    "v": number,    // Value
    "ts": number    // Timestamp
  }
]

ランキングトークンリスト

ランキングトークンの完全な情報リストをリアルタイムで取得します。メタデータ、保有者統計、供給量、市場データを含みます。 サブスクリプション形式
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,      // Token address
      "n": string,      // Name
      "s": string,      // Symbol
      "iu": string,     // Image URL
      "de": string,     // Description
      "dec": number,    // Decimals
      "cts": number,    // Created timestamp (ms)
      "lf": {           // Launch from information
        "pa": string,   // Program address
        "pf": string,   // Protocol family
        "pn": string    // Protocol name
      },
      "mt": {           // Migrated to information
        "pa": string,   // Program address
        "pf": string,   // Protocol family
        "pn": string    // Protocol name
      },
      "sm": {           // Social media
        "tw": string,   // Twitter
        "tg": string,   // Telegram
        "w": string,    // Website
        "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      // Progress ratio
    },
    // TokenHolder (h)
    "h": {
      "a": string,      // Token address
      "h": number,      // Number of holders
      "t100a": number,  // Top 100 holders total amount
      "t10a": number,   // Top 10 holders total amount
      "t100h": number,  // Top 100 holders count
      "t10h": number,   // Top 10 holders count
      "t100r": number,  // Top 100 holders ratio
      "t10r": number,   // Top 10 holders ratio
      "ts": number      // Timestamp
    },
    // TokenSupply (s)
    "s": {
      "a": string,    // Token address
      "s": number,    // Supply
      "mc": number,   // Market cap in USD
      "ts": number    // Timestamp
    },
    // TokenStat (ts)
    "ts": {
      "a": string,      // Token address
      "t": number,      // Timestamp
      "b1m": number,    // Buys in 1m
      "s1m": number,    // Sells in 1m
      "be1m": number,   // Buyers in 1m
      "se1m": number,   // Sellers in 1m
      "bviu1m": number, // Buy volume in USD 1m
      "sviu1m": number, // Sell volume in USD 1m
      "p1m": number,    // Price 1m
      "oiu1m": number,  // Open price in USD 1m
      "ciu1m": number,  // Close price in USD 1m
      "b5m": number,    // Buys in 5m
      "s5m": number,    // Sells in 5m
      "be5m": number,   // Buyers in 5m
      "se5m": number,   // Sellers in 5m
      "bviu5m": number, // Buy volume in USD 5m
      "sviu5m": number, // Sell volume in USD 5m
      "p5m": number,    // Price 5m
      "oiu5m": number,  // Open price in USD 5m
      "ciu5m": number,  // Close price in USD 5m
      "b15m": number,   // Buys in 15m
      "s15m": number,   // Sells in 15m
      "be15m": number,  // Buyers in 15m
      "se15m": number,  // Sellers in 15m
      "bviu15m": number,// Buy volume in USD 15m
      "sviu15m": number,// Sell volume in USD 15m
      "p15m": number,   // Price 15m
      "oiu15m": number, // Open price in USD 15m
      "ciu15m": number, // Close price in USD 15m
      "b30m": number,   // Buys in 30m
      "s30m": number,   // Sells in 30m
      "be30m": number,  // Buyers in 30m
      "se30m": number,  // Sellers in 30m
      "bviu30m": number,// Buy volume in USD 30m
      "sviu30m": number,// Sell volume in USD 30m
      "p30m": number,   // Price 30m
      "oiu30m": number, // Open price in USD 30m
      "ciu30m": number, // Close price in USD 30m
      "b1h": number,    // Buys in 1h
      "s1h": number,    // Sells in 1h
      "be1h": number,   // Buyers in 1h
      "se1h": number,   // Sellers in 1h
      "bviu1h": number, // Buy volume in USD 1h
      "sviu1h": number, // Sell volume in USD 1h
      "p1h": number,    // Price 1h
      "oiu1h": number,  // Open price in USD 1h
      "ciu1h": number,  // Close price in USD 1h
      "b4h": number,    // Buys in 4h
      "s4h": number,    // Sells in 4h
      "be4h": number,   // Buyers in 4h
      "se4h": number,   // Sellers in 4h
      "bviu4h": number, // Buy volume in USD 4h
      "sviu4h": number, // Sell volume in USD 4h
      "p4h": number,    // Price 4h
      "oiu4h": number,  // Open price in USD 4h
      "ciu4h": number,  // Close price in USD 4h
      "b24h": number,   // Buys in 24h
      "s24h": number,   // Sells in 24h
      "be24h": number,  // Buyers in 24h
      "se24h": number,  // Sellers in 24h
      "bviu24h": number,// Buy volume in USD 24h
      "sviu24h": number,// Sell volume in USD 24h
      "p24h": number,   // Price 24h
      "oiu24h": number, // Open price in USD 24h
      "ciu24h": number, // Close price in USD 24h
      "p": number       // Current price
    }
  }
]

ランキングトークンボンディングカーブ

新規上場トークンのリアルタイムボンディングカーブ進捗を取得します。 サブスクリプション形式
dex-ranking-token-bounding-curve-list:{chain}_new
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,    // Token address
    "pr": string    // Progress ratio (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,      // Wallet address
    "ta": string,     // Token address
    "tpiu": number,   // Token price in USD
    "b": number,      // Balance
    "t": number       // Timestamp
  }
]

ウォレットPnLデータ(トークンレベル)

ウォレットのリアルタイム損益(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,      // Wallet address
  "ta": string,     // Token address
  "tpiu": number,   // Token price in USD
  "t": number,      // Timestamp
  "ot": number,     // Open time
  "lt": number,     // Last time
  "ct": number,     // Close time
  "ba": number,     // Buy amount
  "baiu": number,   // Buy amount in USD
  "bs": number,     // Buy count
  "bs30d": number,  // Buy count 30d
  "bs7d": number,   // Buy count 7d
  "sa": number,     // Sell amount
  "saiu": number,   // Sell amount in USD
  "ss": number,     // Sell count
  "ss30d": number,  // Sell count 30d
  "ss7d": number,   // Sell count 7d
  "hdts": number,   // Held duration timestamp
  "abpiu": number,  // Average buy price in USD
  "aspiu": number,  // Average sell price in USD
  "upiu": number,   // Unrealized profit in USD
  "upr": number,    // Unrealized profit ratio
  "rpiu": number,   // Realized profit in USD
  "rpr": number,    // Realized profit ratio
  "trpiu": number,  // Total realized profit in USD
  "trr": number     // Total realized profit ratio
}

ウォレットPnLデータ(ウォレットレベル)

ウォレットのリアルタイム全体損益統計を取得します。 サブスクリプション形式
dex-wallet-pnl-list:{chain}_{walletAddress}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
walletAddress
string
必須
ウォレットアドレス
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
[
  {
    "a": string,     // Wallet address
    "bs": number,    // Number of buys
    "ba": number,    // Buy amount
    "baiu": number,  // Buy amount in USD
    "abpiu": number, // Average buy price in USD
    "sa": number,    // Sell amount
    "saiu": number,  // Sell amount in USD
    "ss": number,    // Number of sells
    "ws": number,    // Number of wins
    "wr": number,    // Win ratio
    "piu": number,   // PnL in USD
    "apiu": number,  // Average PnL in USD
    "pr": number,    // PnL ratio
    "pd": number,    // Profitable days
    "ld": number,    // Losing days
    "ts": number,    // Number of tokens traded
    "r": string      // Resolution
  }
]

取引関連

トークン取引

トークンのリアルタイム取引イベントを取得します。 サブスクリプション形式
dex-trade:{chain}_{tokenAddress}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
tokenAddress
string
必須
トークンコントラクトアドレス、例:6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN
filter
string
オプションのフィルター条件。Google Common Expression Language(CEL)構文を使用。例:buyAmount > 100
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "a": string,      // Token address
  "t": number,      // Timestamp
  "k": string,      // Trade type
  "ba": number,     // Buy amount
  "baiu": number,   // Buy amount in USD
  "btma": string,   // Buy token address
  "btn": string,    // Buy token name
  "bts": string,    // Buy token symbol
  "bwa": string,    // Buy wallet address
  "sa": number,     // Sell amount
  "saiu": number,   // Sell amount in USD
  "stma": string,   // Sell token address
  "stn": string,    // Sell token name
  "sts": string,    // Sell token symbol
  "swa": string,    // Sell wallet address
  "h": string       // Transaction hash
}

ウォレット取引

ウォレットのリアルタイム取引イベントを取得します。 サブスクリプション形式
dex-wallet-trade:{chain}_{walletAddress}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
walletAddress
string
必須
ウォレットアドレス、例:GDekof7TtgeBKJtoVpkvzPin5mvhxSDyoUY2c1FK1T3i
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "bwa": string,     // Maker address
  "ba": number,      // Base token amount
  "sa": number,      // Quote token amount
  "swa": string,     // Quote token address
  "bais": number,    // USD amount
  "t": number,       // Timestamp
  "k": string,       // Event type
  "h": string,       // Transaction hash
  "a": string        // Token address
}

DEXプール関連

DEXプール残高

DEXプールのリアルタイム残高情報を取得します。 サブスクリプション形式
dex-pool-balance:{chain}_{poolAddress}
パラメータ
chain
string
必須
ブロックチェーン名、例:sol
poolAddress
string
必須
プールアドレス
レスポンスデータ形式
WebSocket APIは転送効率を最適化するために短縮フィールド名を返し、SDKはコードの可読性を向上させるために完全なフィールド名を返します。
{
  "a": string,     // Pool address
  "taa": string,   // Token A address
  "taliu": number, // Token A liquidity in USD
  "tba": string,   // Token B address
  "tbliu": number  // Token B liquidity in USD
}

使用例

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('ローソク足データ:', 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('ローソク足データ:', data);
  }
});

// サブスクリプション解除
subscription.unsubscribe();
SDKを使用する場合、認証、再接続、ハートビートなどはすべて自動的に処理されます。本番環境での使用を推奨します。