dflow-market-data について
Solana 現物市場データを WebSocket で読み取り専用配信するスキルです。リアルタイムの気配値、板の深さ、優先手数料の推定値を扱い、ブラウザー向けのプロキシと再接続も説明します。
主な機能
- 01最良気配値のリアルタイム配信
- 02板の片側10段の深さを提供
- 03優先手数料推定値の配信
- 04複数ペアの購読を多重化
- 05プロキシ転送と再接続の説明
活用シーン
- 01Solana ペアの価格表示
- 02板の深さビューの構築
- 03ポーリングなしで優先手数料を監視
- 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に該当します。