sui-sdks について
sui-sdksは、Sui SDKを扱うエージェントや開発者向けのリファレンススキルです。公式・コミュニティSDKやバージョンの違いを整理し、用途別資料とインストール済みのバージョン対応ドキュメントへ案内します。
主な機能
- 01公式SDKとコミュニティSDKの比較
- 02TypeScript SDK v1とv2の区別
- 03モジュール型Rust SDKクレートの参照
- 04SDK間の操作マッピング
- 05インストール済みLLMドキュメントの確認
- 06質問を専門資料へルーティング
活用シーン
- 01SuiプロジェクトでSDKを選ぶ
- 02TypeScriptまたはRustコードの作成・移行
- 03異なる言語のSDK間で操作を移植する
- 04インストール済み資料でAPIの詳細を確認する
MCP 対応
利用可能な場合、回答の検証や資料にない情報の確認に、SuiドキュメントMCPサーバー https://sui.mcp.kapa.ai を照会するよう推奨しています。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mystenlabs/ skills --skill sui-sdksインストール後、Claude Code で/sui-sdksを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
community.mdllm-docs.mdmapping.mdrust.mdtypescript.mdevals/code-evals.jsonevals.json詳細
Sui SDK
MCP ツール: お使いの環境で利用可能な場合は、最新の回答を得るために Sui ドキュメント MCP サーバー(
https://sui.mcp.kapa.ai)にも問い合わせてください。回答の検証や、これらのリファレンスファイルに記載されていない詳細の確認に使用してください。
多くの AI エージェントは、Sui SDK について紛らわしい回答や古い回答、または情報を混同した回答をします。このスキルでは、最もよくある次の 3 つの問題を解決します。
- コミュニティ SDK を公式 SDK のように推奨してしまう。 Mysten Labs が保守している SDK は、TypeScript(
@mysten/sui)と Rust(sui-rust-sdkファミリーのクレート)の 2 つだけです。それ以外はすべてコミュニティによって保守されています。 - TypeScript SDK の世代を混同してしまう。 旧パッケージの
@mysten/sui.jsは v1.0 で@mysten/suiに名称変更されました。v2 のクライアント API(client.core.*、show*の代わりにincludeを使用、SuiClientをSuiGrpcClientに置き換え)は v1 とは異なります。 - インストール済みの LLM ドキュメントを使用しない。 すべての
@mysten/*パッケージには、docs/llms-index.mdとトピック別の Markdown ファイルが含まれており、node_modulesにインストールされます。これらはインストール済みのバージョンと確実に一致するため、エージェントは回答する前に参照してください。
このスキルのすべてのパターンは、以下を基にしています。
- https://docs.sui.io/references/sui-sdks(公式 SDK 一覧)
- https://sdk.mystenlabs.com/sui(TypeScript SDK リファレンス)
- https://sdk.mystenlabs.com/sui/llm-docs(同梱 LLM ドキュメントの規約)
- https://github.com/MystenLabs/sui-rust-sdk(Rust SDK のソース)
- https://docs.rs/sui-transaction-builder(Rust PTB ビルダー)
特定の SDK の API について不明な点がある場合は、別の SDK の API をもとに推測せず、該当するドキュメントページから情報を取得してください。
リファレンスファイル
typescript — TypeScript SDK(@mysten/sui v2)
パス: typescript.md
読み込むタイミング: @mysten/sui をインポートする TypeScript/JavaScript コードの作成、レビュー、移行時、TS で PTB を構築する場合、SuiGrpcClient と SuiGraphQLClient のどちらを使うか選ぶ場合、v2 Core API を使用する場合、または SDK v1(@mysten/sui.js)から移行する場合。
内容: インストール、インポート、クライアントクラスとそれぞれの使いどころ、v2 Core API、PTB の構築、pure/object 入力、残高とコインのインテント、実行とステータスの確認、waitForTransaction、キーペア、オフラインでの構築、スポンサー付きトランザクション、v1 から v2 への移行表、kiosk/suins/deepbook/walrus/seal/zksend 用の $extend パターン。
rust — Rust SDK(sui-* クレート)
パス: rust.md
読み込むタイミング: CLI ツール、バックエンドサービス、バリデーター、インデクサーなど、Sui と連携する Rust コードを作成する場合。また、新しいモジュール式クレートと、モノレポ内のレガシーな sui-sdk クレートのどちらを選ぶか検討する場合。
内容: 5 つのクレート(sui-sdk-types、sui-crypto、sui-rpc、sui-graphql、sui-transaction-builder)、エンドツーエンドの例を含む TransactionBuilder API、sui-crypto による署名、sui-rpc の gRPC クライアント、レガシーな sui-sdk クレートとの関係、「intents」機能フラグ(高レベルの Coin/Balance インテント)。
community — コミュニティ SDK(Python、Go、Dart、Kotlin、Swift、Vue)
パス: community.md
読み込むタイミング: ユーザーが TypeScript でも Rust でもない SDK について質問したり、それを使用したりしている場合。また、言語選択に伴うリスク(メンテナーの対応状況、公式 SDK と比べた機能の不足)を評価する場合。
内容: 各コミュニティ SDK について、リポジトリ、メンテナー、インストール方法、サポートされている機能とサポートされていない機能、注意点、または FFI ラッパーから Rust/TS SDK を呼び出す方法のどちらを推奨するか。
mapping — SDK 間の操作対応表
パス: mapping.md
読み込むタイミング: ある SDK から別の SDK にコードを移植する場合、複数言語に対応したリファレンスを作成する場合、または「SDK Y で X を行うにはどうすればよいか」という質問に回答する場合。
内容: TS SDK と Rust SDK における、Sui の主要な操作約 10 種(PTB の構築、ガスの分割、moveCall、転送、署名と実行、待機、オブジェクト/所有オブジェクト/残高の照会、ドライラン)を構文上の対応関係とともに示す対照表。
llm-docs — node_modules にバンドルされたドキュメントの使用
パス: llm-docs.md
読み込むタイミング: コードを書く前に、エージェントがバージョンに合った信頼できる TypeScript API ドキュメントを必要とするとき。node_modules/@mysten/*/docs/llms-index.md が存在する場合は、必ず最初に確認してください。
対象範囲: docs/llms-index.md の規約、それを含む @mysten/* パッケージ、インデックスと対象ページの読み方、プロジェクトの AGENTS.md / CLAUDE.md への組み込み方。
ルーティングガイド
| タスク | 読み込むもの |
|---|---|
| 「どの SDK を使えばよいですか?」 | (このファイル)+マッピング |
| Sui を対象とする TS/JS コードの作成 | typescript + llm-docs |
| Sui を対象とする Rust コードの作成 | rust |
| pysui / ksui / suikit / sui-go / mofalabs/sui の使用 | community |
| ユーザーが Go / Python / Dart / Kotlin / Swift / Vue に言及する場合(「私のチームは Go を使っています」のように何気ない言及でも) | community(常に読み込みます。言語の制約はパフォーマンスに関する推奨事項より優先されます) |
| 言語間の移植 | mapping +(対象 SDK のファイル) |
@mysten/sui.js / SDK v1 からの移行 | typescript |
| フロントエンド / React との統合 | まず frontend-apps スキルに案内します(React フック、ウォレット接続、クエリパターンを網羅)。次に、Transaction の構築についてこの typescript ファイルを参照します |
| PTB のセマンティクスを詳しく調べる | ptbs スキルに案内し、次にここにある言語固有のファイルを参照します |
| データアクセスパターン(gRPC と GraphQL とインデクサー) | accessing-data スキルに案内します |
| プロジェクト全体のセットアップ | すべてのリファレンスファイル(または SDK 固有のファイル + llm-docs) |
| コードレビュー | すべてのリファレンスファイル |
スキルの内容
重要な概念
- 公式にサポートされている SDK は 2 つです。 TypeScript(
@mysten/sui)と Rust(sui-rust-sdkクレート)です。どちらも Mysten Labs が保守しており、プロトコルの変更に合わせて更新されます。Rust 以外の言語でパフォーマンスが重要な処理を行う場合は、FFI(Foreign Function Interface)を介して Python、Go、Swift などからsui-rust-sdkを呼び出せます。これにより、コミュニティ製のラッパーに頼らず、各言語から公式 SDK を利用できます。 - それ以外はすべてコミュニティ製です。 Python(
pysui)、Go(block-vision/sui-go-sdk)、Dart(mofalabs/sui)、Kotlin(mcxross/ksui)、Swift(opendive/suikit)、Vue(SuiFansCN/suiue)があります。これらは通常、プロトコルの更新に遅れがあり、機能の網羅状況にもばらつきがあります。ベストエフォートとして扱ってください。 - TS SDK には 2 世代のクライアントがあります。 v1 では
SuiClientと@mysten/sui.jsを使用していました。v2 では@mysten/suiのSuiGrpcClient/SuiJsonRpcClient/SuiGraphQLClientを使用します。JSON-RPC は非推奨であり、新規コードでは gRPC がデフォルトです。 - Rust SDK には 2 世代あります。 新しいモジュール式クレート(
sui-sdk-types、sui-crypto、sui-rpc、sui-transaction-builder)が推奨されるインターフェースです。「legacy Rust SDK」は sui モノレポ内の単一のsui-sdkクレートです。JSON-RPC(非推奨)を使用するため、新規コードでの使用は推奨されません。 - すべての
@mysten/*パッケージには、LLM で利用できるドキュメントが含まれています。node_modules/@mysten/sui/docs/llms-index.mdを探し、API についてユーザーに確認を求める前に、記載された参照先をたどってください。インストール済みのバージョンに正確に対応しています。 - SDK の上位にあるフレームワーク。
@mysten/dapp-kit-react(React のウォレット統合。Vue / vanilla / Svelte / Web Components には@mysten/dapp-kit-core)、@mysten/kiosk、@mysten/suins、@mysten/deepbook-v3、@mysten/walrus、@mysten/seal、@mysten/zksend、@mysten/enokiは、いずれも@mysten/suiの薄いレイヤーです。Mysten の拡張機能は v2 のclient.$extend(...)パターンで統合されますが、dApp Kit はこの方式を使いません(クライアント拡張機能ではなく React フレームワークです。frontend-appsスキルを参照してください)。@mysten/dapp-kitという単独のパッケージ名は、非推奨の JSON-RPC 専用の前身です。
ルール
- 基本的には TypeScript または Rust を推奨しますが、言語の制約を尊重してください。 新しい Sui プロジェクトでは、ユーザーが言語(Go、Python、Dart、Kotlin、Swift、Vue)を指定した場合、または「チームでは X を使っています」と述べた場合を除き、TypeScript(
@mysten/sui)または Rust(sui-rust-sdkクレート)を推奨してください。その場合はcommunity.mdを参照し、標準的なコミュニティ SDK(Go ならblock-vision/sui-go-sdk、Python ならpysuiなど)を紹介し、古くなるリスクを明示したうえで、代替策として Rust との FFI を提案してください。ユーザーがチームの使用言語を明示した場合、その言語の代わりに TypeScript や Rust を推奨してはいけません。 たとえば、ユーザーが「チームでは Go を使っています」と言った場合、TypeScript への書き換えは提案せず、Go のコミュニティ SDK、および/または FFI 経由の Rust を推奨してください。 - TypeScript では常に
@mysten/suiを使用し、@mysten/sui.jsは使用しないでください。.jsが付いたパッケージは v1 で凍結されており、更新されません。これを使っているレガシーコードは移行する必要があります。 - TypeScript v2 では、デフォルトで
SuiGrpcClientを使用してください。SuiJsonRpcClientはレガシー互換性のために存在しますが、JSON-RPC は非推奨です。SuiGraphQLClientは、特化したリレーショナルクエリのフロー向けです。選択方法についてはtypescript.mdを参照してください。 - Rust では、レガシーなモノレポの
sui-sdkよりsui-rust-sdkクレートを優先してください。sui-transaction-builder、sui-sdk-types、sui-crypto、sui-rpcを個別にインポートし、使用するものだけを利用してください。 - TS コードを書く前に
node_modules/@mysten/*/docs/llms-index.mdを確認してください。 プロジェクトに@mysten/suiがインストールされている場合、これらのドキュメントが、使用中のバージョンに対応する信頼できる情報源です。インデックスを読み、次に対象のページを確認してください。 - v1 と v2 の TS パターンを混在させないでください。
SuiClient、TransactionBlock、getFullnodeUrl、options: { showEffects }、signAndExecuteTransactionBlock、またはresult.effects?.status?.statusを使用するコードは v1 です。全面的に移行するか、すべて v1 のままにしてください。半端に移行されたファイルはバグの温床になります。 - コミュニティ SDK に関する注意事項は必ず記載してください。 コミュニティ SDK を推奨または使用する場合は、コミュニティによって保守されており、プロトコルの更新に遅れる可能性があることを伝えてください。利用を決める前に、リポジトリの最終コミットと、最新の Sui バージョンへの対応状況を確認してください。
- フレームワークは v2 の
$extend()を通じて統合してください。client.$extend(suins(), deepbook({ address }))が v2 のパターンです。SuinsClientやDeepBookClientを直接インスタンス化しないでください。これは v1 のスタイルです。 - フロントエンドに関する質問は
frontend-appsスキルに案内してください。 ユーザーが React フック、ウォレット接続、または dApp Kit のクエリパターンについて尋ねた場合は、フックの詳細についてfrontend-appsスキルを参照するよう明示してください。このスキルの対象は SDK の選択とTransactionの構築のみです。 - 不明な場合はドキュメントを参照してください。 公式の TS SDK ドキュメントは
sdk.mystenlabs.comにあります。SDK の一覧はdocs.sui.io/references/sui-sdksにあります。Rust SDK のドキュメントはdocs.rs(クレートごと)およびmystenlabs.github.io/sui-rust-sdk/<crate_name>/(例:/sui_transaction_builder/)にあります。
よくある間違い
- コミュニティ製 SDK を、あたかも公式であるかのように「Python SDK」や「Go SDK」と呼ぶ。 公式の Python SDK や Go SDK はありません。具体的なパッケージ名(
pysui、block-vision/sui-go-sdk)を挙げ、コミュニティ製であることを明記してください。 SuiClientを推奨クライアントとして案内する。 それは v1 の話です。v2 ではSuiGrpcClientを使用します(または、非推奨の移行時の暫定策としてSuiJsonRpcClientを使用します)。@mysten/sui.jsを推奨する。 非推奨のパッケージ名です。必ず@mysten/suiを使用してください。- 2 つの Rust SDK を混同する。 新しい
sui-rust-sdkクレート(crates.io上でsui-sdk-types/sui-transaction-builder/sui-rpcのような個別のクレートとして提供)は、sui モノレポ内のレガシーなsui-sdkクレートとは別物です。新しいコードでは前者を使用してください。 - ローカルにインストール済みの TS ドキュメントを、ウェブから取得する。 プロジェクトに
@mysten/suiがインストールされている場合は、代わりにnode_modules/@mysten/sui/docs/llms-index.mdを読んでください。インストール済みのバージョンに対応した内容です。 - 特定の SDK バージョンを固定して案内する。 SDK の API は進化します。バージョンを指定して案内するのではなく、「最新の
@mysten/suiをインストールする」よう勧めたうえで、同梱のドキュメントを参照してください。 - バックエンドコードに
@mysten/dapp-kitを推奨する。 dApp Kit は React 向けのフロントエンドフレームワークです。バックエンドや CLI のコードでは、@mysten/suiを直接使用してください。 frontend-appsスキルを案内せず、React フックの詳細を説明する。 ユーザーが React フック、ウォレット接続のパターン、dApp Kit のクエリパターンについて尋ねた場合、このスキルのフックレベルのコードで回答しないでください。代わりに、「React フックの詳細については、frontend-appsスキルを参照してください」と明確に伝えてください。このスキルが扱うのは SDK の選択とTransactionの構築のみです。フックレベルのガイダンスはfrontend-appsスキルにあります。- あらゆるクライアントのデフォルトとして JSON-RPC を使用する。 JSON-RPC は非推奨です。Sui Foundation のメインネットフルノードでは、2026 年 7 月 27 日の週に無効化されます。デフォルトでは gRPC(またはリレーショナルクエリには GraphQL)を使用してください。
SuiJsonRpcClientは移行用に引き続き存在しますが、デフォルトにすべきではありません。