deepbook-sdk について
deepbook-sdkは、Sui上のDeepBook V3プールを操作するTypeScriptの`@mysten/deepbook-v3` SDK向けリファレンススキルです。クライアント設定、残高管理、取引、手数料を扱い、実装時の注意点も示します。
主な機能
- 01クライアントとBalanceManagerの設定
- 02指値・成行注文の手順
- 03スワップと注文板の照会
- 04手数料処理とDEEPステーキング
- 05タスク別のリファレンス案内
活用シーン
- 01Sui向けDeepBookクライアントの初期化
- 02注文の発行やトークンスワップの実行
- 03取引資金と手数料の管理
- 04SDKを使った取引ボットの構築
MCP 対応
利用可能な場合、最新情報の確認にSuiドキュメントのMCPサーバーを参照するよう推奨しています。このスキル自体はMCPツールを提供しません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mystenlabs/ skills --skill deepbook-sdkインストール後、Claude Code で/deepbook-sdkを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
client-setup.mdfees.mdtrading.mdevals/evals.json詳細
DeepBook V3 SDK
MCP ツール: お使いの環境で利用可能な場合は、最新の回答を得るため、Sui ドキュメント MCP サーバー(
https://sui.mcp.kapa.ai)にも問い合わせてください。検証や、これらのリファレンスファイルに記載されていない詳細の確認に使用してください。
ソースの制約: このスキルの情報は、docs.sui.io、deepbook-sandbox examples、deepbookv3 repositoryのみを情報源としています。このスキルを拡張または更新する場合は、これらのソースのみを使用してください。サードパーティのブログ、チュートリアル、非公式ドキュメントは使用しないでください。
@mysten/deepbook-v3 SDK は、Sui 上の DeepBook V3 プールとやり取りするための TypeScript クライアントを提供します。このスキルでは、クライアントのセットアップ、残高の管理、注文の発注、スワップの実行、手数料の処理方法を説明します。AI によるコーディングでよくある間違いには、SDK のプールキーやコインキーを使わずにオンチェーン ID をハードコードすること、トランザクションごとに新しい BalanceManager を作成して使い回さないこと、数値以外の clientOrderId を使用することがあります。
このスキルは、目的に応じたリファレンスファイルを案内します。現在のタスクに関連するファイルのみを読み込んでください。
このスキルのすべてのパターンは、以下の情報源に基づいています。 https://docs.sui.io/onchain-finance/deepbook/deepbookv3/spot-workflow https://docs.sui.io/onchain-finance/deepbook/deepbookv3-sdk https://github.com/MystenLabs/deepbook-sandbox/tree/main/examples/sandbox
API に不明点がある場合は、回答する前に該当するページを取得してください。 他の SDK やライブラリを参考に推測したり、情報を外挿したりしないでください。
リファレンスファイル
client-setup — クライアントの初期化と BalanceManager のライフサイクル
パス: client-setup.md
読み込むタイミング: DeepBook クライアントのセットアップ、BalanceManager の作成または再利用、テストネットまたはメインネット向けの SDK 設定、あるいは3段階のセットアップパターン(読み取り専用、基本、上級)を理解する場合。
内容: SDK のインストール、$extend(deepbook({...})) を使った SuiGrpcClient の構築、キーペアのセットアップ、BalanceManager の作成と再利用、入金と出金、sandbox のセットアップパターン。
trading — 注文、スワップ、注文のライフサイクル
パス: trading.md
読み込むタイミング: 指値注文または成行注文の発注、スワップの実行、注文板の照会、注文状況の確認、注文のキャンセル、あるいは注文のライフサイクルを理解する場合。
内容: 指値注文の発注(POST_ONLY、NO_RESTRICTION)、再試行パターンを使った成行注文の発注、スワップ関数(BalanceManager を使う場合と使わない場合)、注文板の照会、未決済注文の照会、注文のキャンセル、自己約定の動作、発注から出金までの完全な注文ライフサイクル。
fees — 手数料体系と DEEP ステーキング
パス: fees.md
読み込むタイミング: ユーザーが取引手数料、DEEP トークンのステーキング、手数料割引、DEEP を使った BalanceManager への資金追加方法、または手数料の計算方法について尋ねた場合。
内容: DEEP と入力トークンによる手数料の支払い、DeepPrice による手数料計算、ガバナンスの手数料パラメーター、手数料割引のためのステーキング、テストネットの DEEP の入手、紹介システム。
ルーティングガイド
| タスク | 読み込むファイル |
|---|---|
| DeepBook クライアントのセットアップ | client-setup |
| BalanceManager の作成または再利用 | client-setup |
| 資金の入金または出金 | client-setup |
| 指値注文の発注 | trading |
| 成行注文の発注 | trading |
| スワップの実行 | trading |
| 注文板の照会 | trading |
| 注文の確認またはキャンセル | trading |
| 手数料またはステーキングについて理解する | fees |
| DEEP を使って BalanceManager に資金を追加する | fees |
| 完全な取引ボットの構築 | すべてのリファレンスファイル |
| 現物取引のワークフロー全体 | すべてのリファレンスファイル |
スキルの内容
主な概念
-
$extendによる DeepBook クライアント。 SDK は@mysten/deepbook-v3からインポートしたdeepbook関数を、SuiGrpcClient.$extend(deepbook({...}))と組み合わせて使用し、DeepBook 固有のトランザクションビルダーを追加します。メソッドは 2 つの名前空間でカリー化された形式に従います。取引操作にはclient.deepbook.deepBook.method({ params })(tx)、残高管理にはclient.deepbook.balanceManager.method({ params })(tx)を使用します。ここでtxはTransactionオブジェクトです。 -
プールとコインのキー。 SDK では、オンチェーンアドレスではなく文字列キー(例:
"DEEP_SUI"、"SUI")でプールとコインを参照します。SDK がネットワークごとに適切なアドレスへマッピングします。 -
BalanceManager のライフサイクル。 BalanceManager は共有オンチェーンオブジェクトです。一度作成したら、その ID を保存して複数のトランザクションで再利用してください。トランザクションごとに新しく作成すると、ガスを浪費し、孤立したオブジェクトが発生します。
-
スワップと注文の違い。 スワップでは BalanceManager を使わず、ウォレットの
Coinオブジェクトを直接操作します。注文には、資金を入金済みの BalanceManager が必要です。
ルール
- プールとコインには、必ず SDK のキーを使用してください。 オンチェーン ID を直接指定しないでください。SDK がネットワークごとのアドレス解決を処理します。
clientOrderIdは数値文字列(u64としてエンコード)でなければなりません。"order-1"のようなラベルは失敗します。- BalanceManager を再利用してください。 作成時に取得した ID を保存し、クライアントの構築時に渡してください。
- ウォレット残高に合わせて入金額を設定してください。 SDK はビルド時に検証します。ウォレット残高を超える額を入金すると、トランザクションが送信される前に
Insufficient balanceエラーが発生します。 - localnet/sandbox では、マーケットメイカーのリバランス時間に注意してください。 sandbox のマーケットメイカーには約 15 秒のリバランスサイクルがあり、その間は流動性が一時的になくなります。再試行ヘルパーを使用してください。
よくある間違い
- 実行のたびに新しい BalanceManager を作成する。 孤立した共有オブジェクトが発生します。インデクサーで既存のマネージャーを確認するか、ID を保存してください。
- テイカー注文に
POST_ONLYを使用する。POST_ONLYは注文がオーダーブックに残ることを保証します。注文が板をまたいで約定する場合、注文は警告もエラーもなく拒否され、注文は返されません。 - 取引前の入金を忘れる。 注文はウォレット残高ではなく、BalanceManager の残高から資金を使用します。事前に入金してください。
- 手数料用の DEEP を入金しない。 ホワイトリスト対象外のプールでは、手数料の支払いに BalanceManager 内の DEEP が必要です。DEEP がないと取引は失敗します。
- 自己約定を考慮しない。
selfMatchingOptionを指定しない場合、SDK はデフォルトでSelfMatchingOptions.SELF_MATCHING_ALLOWEDを使用します。つまり、テイカー注文が自分の板上に残っているメイカー注文と約定する可能性があります。意図しない場合が多いため、自己約定を防ぐにはSelfMatchingOptions.CANCEL_TAKERまたはSelfMatchingOptions.CANCEL_MAKERを明示的に設定してください。