mcpField
D
dflow-market-data

dflow-market-data

github.com/dflowprotocolその他039 回インストール3 週間前に更新
リポジトリ

dflow-market-data について

Solana 現物市場データを WebSocket で読み取り専用配信するスキルです。リアルタイムの気配値、板の深さ、優先手数料の推定値を扱い、ブラウザー向けのプロキシと再接続も説明します。

主な機能

  1. 01最良気配値のリアルタイム配信
  2. 02板の片側10段の深さを提供
  3. 03優先手数料推定値の配信
  4. 04複数ペアの購読を多重化
  5. 05プロキシ転送と再接続の説明

活用シーン

  1. 01Solana ペアの価格表示
  2. 02板の深さビューの構築
  3. 03ポーリングなしで優先手数料を監視
  4. 04バックエンド経由でブラウザーに配信

MCP 対応

ストリームのスキーマを確認する参照先として DFlow docs MCP を挙げています。実装前に、この MCP 経由で該当ドキュメントを読み込むよう案内します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dflowprotocol/dflow-skills --skill dflow-market-data

インストール後、Claude Code で/dflow-market-dataを入力して読み込まれたか確認します。

詳細

DFlow マーケットデータ(ストリーミング)

Solana のスポットペア向けリアルタイムマーケットデータを WebSocket で提供します。読み取り専用で、表示や分析用に価格、板情報、手数料の推定値をストリーミングします。スワップを実行するには、dflow-spot-trading を使用してください。

3 種類のストリーム

すべて、DFlow Trade API の WebSocket ホスト(本番環境 wss://quote-api.dflow.net、開発環境 wss://dev-quote-api.dflow.net)上のパスです。接続は 1 つで、ペアごとにサブスクライブします。

ストリームパス提供内容
気配値/quote-streamペアの最良買い気配値/最良売り気配値をリアルタイムで提供
オーダーブック/book-stream片側あたり 10 段の板情報
優先手数料/priority-fees/stream優先手数料の推定値をリアルタイムで提供(ポーリング不要)

キーはバックエンドに保管する(ストリームをプロキシする)

セキュリティのベストプラクティスとして、DFlow API キーはバックエンドに保管し、誰でも読み取れるブラウザーコードには含めないでください。キーを保持して DFlow に接続し、メッセージをブラウザーに中継するバックエンドプロキシを経由してストリーミングします。

サーバーサイドアプリ(Node/CLI、ブラウザーなし)はすでに信頼できるバックエンドなので、x-api-key ヘッダーにキーを指定して直接接続します。

// Backend relay (Node, `ws`). The browser connects to THIS; the backend holds the key.
import { WebSocketServer, WebSocket } from "ws";
const wss = new WebSocketServer({ server });          // same origin as your app
wss.on("connection", (client) => {
  const up = new WebSocket(`${process.env.DFLOW_TRADE_API_WS_URL}/book-stream`,
    { headers: { "x-api-key": process.env.DFLOW_API_KEY } });
  const q = [];
  up.on("open", () => { q.forEach((m) => up.send(m)); q.length = 0; });
  up.on("message", (d) => client.readyState === 1 && client.send(d.toString()));
  client.on("message", (m) => up.readyState === 1 ? up.send(m.toString()) : q.push(m.toString()));
  client.on("close", () => up.close()); up.on("close", () => client.close());
});

前提条件

  • DFlow docs MCP(https://pond.dflow.net/mcp):このスキルは手順書で、MCP はリファレンスです。特定のストリームを接続する前に、/resources/trading-api/websockets/{overview,quote-stream,book-stream,priority-fees-stream} のメッセージスキーマのページを search_d_flow/query_docs_filesystem_d_flow で読み込んでください。フィールド名を推測しないでください。
  • DFlow API キー(「確認する項目」を参照)。

本番環境では、気配値ストリームとオーダーブックストリームへのアクセスはキーごとに付与されます。/order で使用できるキーでも、ストリームへのアクセスを有効にする必要がある場合があります。そのため、有効なキーでもチームが有効化するまではストリームで拒否されることがあります。優先手数料ストリームにはアクセス制限がありません。

サブスクライブしてフレームを処理する(気配値とオーダーブック)

  • サブスクライブ: Base58 のミントを使用し、シンボルではなく { "op": "subscribe", "base_mint": "<mint>", "quote_mint": "<mint>" } を送信します。unsubscribe も同様です。1 つの接続で複数のペアを多重化できます。
  • フレームはスロットごとにバッチ化されます: { u: <slot>, ts, updates: [ { sb, sq, ... } ] }。updates[] の各エントリは対象のミント(sb/sq)で識別されます。ペアごとのエラーは { e: <code>, sb, sq } としてインラインで届くため、フィード全体を終了せずに処理できます。レベルごとの正確なフィールド(b/a、mid、tick、cumulative_size_human など)は、ストリームのドキュメントページを読み込んでください。
  • 再接続して再サブスクライブします。 WebSocket 接続は切断されることがあります。再接続したら、すべてのサブスクリプションをバックオフ付きで再送してください。スロット u(およびストリームが追いついているときに 0 となる skipped)を追跡して、欠落を検出します。

優先手数料ストリーム

優先手数料ストリームは気配値やオーダーブックとは異なり、サブスクライブメッセージは不要で、接続して読み取るだけです。各メッセージはフラットな { mediumMicroLamports, highMicroLamports, veryHighMicroLamports } オブジェクト(GET /priority-fees と同じ形式)で、このストリームにアクセス制限はありません。詳細は、docs MCP を使って /resources/trading-api/websockets/priority-fees-stream を読み込んでください。

注意事項:期待値を適切に設定する

板情報と気配値の各レベルは概算です。板情報はダイレクトルートのみ(10 段)で、気配値はダイレクトルートと 1 ホップルートを対象に、およそ 10 ドル相当の USDC で往復する場合を計算しています。取引時の実際の /order 気配値とは異なる場合があります。取引所水準のオーダーブックや約定可能価格として提示しないでください。ユーザーが実際に得る価格を確認するには、/order を照会してください(dflow-spot-trading を参照)。

確認する項目

  • API キー。 中立的に「DFlow API キーをお持ちですか?」と尋ねます。DFlow 全体で 1 つのキーを使用します(REST API と WebSocket ストリームで同じ x-api-key を使います)。はいの場合:本番環境 wss://quote-api.dflow.net。いいえの場合:開発環境 wss://dev-quote-api.dflow.net(レート制限あり、テスト用)。本番用キー:https://pond.dflow.net/get-started/api-key。
  • 実行環境。 ブラウザーですか、それともサーバーサイドですか?ブラウザーアプリはバックエンド経由でプロキシします(上記参照)。サーバーサイドアプリはヘッダーを付けて直接接続します。

当てはまらない場合

ストリームごとのメッセージスキーマ、ping/キープアライブ、優先手数料のフィールドについては、docs MCP(/resources/trading-api/websockets/*)を参照してください。実行可能なリファレンスとして、DFlow のオーダーブック可視化デモ(/book-stream とプロキシの完全なビルド)と、docs のレシピ /spot/recipes/stream-order-book および /spot/recipes/stream-quotes があります。

関連スキル

  • dflow-spot-trading:スワップを実行する場合、またはビルダープラットフォーム手数料を受け取る場合に使用します。「リアルタイム価格/オーダーブック/深度を表示する」タスクはこちらに該当し、「購入/スワップ/変換する」タスクは dflow-spot-trading に該当します。

コメント