mcpField
S
sui-sdks

sui-sdks

github.com/mystenlabs開発19438 回インストール今日更新
リポジトリ

sui-sdks について

sui-sdksは、Sui SDKを扱うエージェントや開発者向けのリファレンススキルです。公式・コミュニティSDKやバージョンの違いを整理し、用途別資料とインストール済みのバージョン対応ドキュメントへ案内します。

主な機能

  1. 01公式SDKとコミュニティSDKの比較
  2. 02TypeScript SDK v1とv2の区別
  3. 03モジュール型Rust SDKクレートの参照
  4. 04SDK間の操作マッピング
  5. 05インストール済みLLMドキュメントの確認
  6. 06質問を専門資料へルーティング

活用シーン

  1. 01SuiプロジェクトでSDKを選ぶ
  2. 02TypeScriptまたはRustコードの作成・移行
  3. 03異なる言語のSDK間で操作を移植する
  4. 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.md
llm-docs.md
mapping.md
rust.md
typescript.md
evals/
code-evals.json
evals.json

詳細

Sui SDK

MCP ツール: お使いの環境で利用可能な場合は、最新の回答を得るために Sui ドキュメント MCP サーバー(https://sui.mcp.kapa.ai)にも問い合わせてください。回答の検証や、これらのリファレンスファイルに記載されていない詳細の確認に使用してください。

多くの AI エージェントは、Sui SDK について紛らわしい回答や古い回答、または情報を混同した回答をします。このスキルでは、最もよくある次の 3 つの問題を解決します。

  1. コミュニティ SDK を公式 SDK のように推奨してしまう。 Mysten Labs が保守している SDK は、TypeScript(@mysten/sui)と Rust(sui-rust-sdk ファミリーのクレート)の 2 つだけです。それ以外はすべてコミュニティによって保守されています。
  2. TypeScript SDK の世代を混同してしまう。 旧パッケージの @mysten/sui.js は v1.0 で @mysten/sui に名称変更されました。v2 のクライアント API(client.core.*、show* の代わりに include を使用、SuiClient を SuiGrpcClient に置き換え)は v1 とは異なります。
  3. インストール済みの LLM ドキュメントを使用しない。 すべての @mysten/* パッケージには、docs/llms-index.md とトピック別の Markdown ファイルが含まれており、node_modules にインストールされます。これらはインストール済みのバージョンと確実に一致するため、エージェントは回答する前に参照してください。

このスキルのすべてのパターンは、以下を基にしています。

特定の 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 専用の前身です。
ルール
  1. 基本的には 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 を推奨してください。
  2. TypeScript では常に @mysten/sui を使用し、@mysten/sui.js は使用しないでください。 .js が付いたパッケージは v1 で凍結されており、更新されません。これを使っているレガシーコードは移行する必要があります。
  3. TypeScript v2 では、デフォルトで SuiGrpcClient を使用してください。 SuiJsonRpcClient はレガシー互換性のために存在しますが、JSON-RPC は非推奨です。SuiGraphQLClient は、特化したリレーショナルクエリのフロー向けです。選択方法については typescript.md を参照してください。
  4. Rust では、レガシーなモノレポの sui-sdk より sui-rust-sdk クレートを優先してください。 sui-transaction-builder、sui-sdk-types、sui-crypto、sui-rpc を個別にインポートし、使用するものだけを利用してください。
  5. TS コードを書く前に node_modules/@mysten/*/docs/llms-index.md を確認してください。 プロジェクトに @mysten/sui がインストールされている場合、これらのドキュメントが、使用中のバージョンに対応する信頼できる情報源です。インデックスを読み、次に対象のページを確認してください。
  6. v1 と v2 の TS パターンを混在させないでください。 SuiClient、TransactionBlock、getFullnodeUrl、options: { showEffects }、signAndExecuteTransactionBlock、または result.effects?.status?.status を使用するコードは v1 です。全面的に移行するか、すべて v1 のままにしてください。半端に移行されたファイルはバグの温床になります。
  7. コミュニティ SDK に関する注意事項は必ず記載してください。 コミュニティ SDK を推奨または使用する場合は、コミュニティによって保守されており、プロトコルの更新に遅れる可能性があることを伝えてください。利用を決める前に、リポジトリの最終コミットと、最新の Sui バージョンへの対応状況を確認してください。
  8. フレームワークは v2 の $extend() を通じて統合してください。 client.$extend(suins(), deepbook({ address })) が v2 のパターンです。SuinsClient や DeepBookClient を直接インスタンス化しないでください。これは v1 のスタイルです。
  9. フロントエンドに関する質問は frontend-apps スキルに案内してください。 ユーザーが React フック、ウォレット接続、または dApp Kit のクエリパターンについて尋ねた場合は、フックの詳細について frontend-apps スキルを参照するよう明示してください。このスキルの対象は SDK の選択と Transaction の構築のみです。
  10. 不明な場合はドキュメントを参照してください。 公式の 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 は移行用に引き続き存在しますが、デフォルトにすべきではありません。

コメント