metaplex について
SolanaのNFT、トークン、エージェントを扱うMetaplex開発向けスキルで、複数のオンチェーン標準とプロトコルをカバーします。タスクに応じて、直接操作にはmplx CLI、コード作成には適切なSDKの参照先を案内します。
主な機能
- 01Agent Registry、Genesis、Coreをカバー
- 02Token MetadataとBubblegumに対応
- 03Candy Machine開発のガイド
- 04タスクに応じてCLIまたはSDK資料へ案内
- 05NFT、トークン、エージェントウォレットの手順を解説
活用シーン
- 01Solana NFTやトークンの作成・転送
- 02NFTドロップや圧縮NFTの設定
- 03トークンローンチとボンディングカーブの開発
- 04エージェントIDの登録と実行委任
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ metaplex-foundation/ skill --skill metaplexインストール後、Claude Code で/metaplexを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/cli-agent.mdcli-bubblegum.mdcli-candy-machine.mdcli-config.mdcli-core.mdcli-genesis.mdcli-initial-setup.mdcli-token-metadata.mdcli-toolbox.mdcli-troubleshooting.mdcli.mdconcepts.mdmetadata-json.mdsdk-agent.mdsdk-bubblegum.mdsdk-core.mdsdk-das.mdsdk-genesis-low-level.mdsdk-genesis.mdsdk-token-metadata-kit.mdsdk-token-metadata.mdsdk-umi.md詳細
Metaplex 開発スキル
概要
Metaplex は、Solana 上の NFT とトークン向けの標準インフラを提供します。
- Agent Registry:MPL Core アセット向けのオンチェーンエージェント ID、ウォレット、実行委任
- Genesis:公正な分配と流動性の移行を備えたトークンローンチプロトコル
- Core:次世代 NFT 規格(新しい NFT プロジェクトに推奨)
- Token Metadata:代替可能トークンとレガシー NFT/pNFT
- Bubblegum:Merkle ツリーを使用した圧縮 NFT(cNFT)— 最小限のコストで大規模に展開できます
- Candy Machine:設定可能なミントルールを備えた NFT ドロップ
ツールの選択
直接実行する場合は SDK より CLI を優先してください。ユーザーがコードを必要としている場合にのみ SDK を使用します。
| アプローチ | 使用する場面 |
|---|---|
CLI(mplx) | 既定の選択肢 — 直接実行でき、コードは不要です |
| Umi SDK | ユーザーがコードを必要としている場合 — 既定の SDK の選択肢です。すべてのプログラム(TM、Core、Bubblegum、Genesis)をカバーします |
| Kit SDK | ユーザーが特に @solana/kit を使用している場合、または依存関係を最小限にしたい場合です。Token Metadata のみ対応しており、Core/Bubblegum/Genesis はサポートしていません |
タスクルーター
重要:コマンドの実行やコードの記述を始める前に、必ずタスクの詳細ファイルを読んでください。コマンドの構文、必須フラグ、セットアップ手順、バッチ処理のルールは、詳細ファイルにのみ記載されています。記憶を頼りにコマンドを推測しないでください。
| タスクの種類 | 読むファイル |
|---|---|
| CLI 操作全般(エージェントのガイドライン、バッチ処理、エクスプローラーリンク) | ./references/cli.md |
| CLI:Agent Registry(ID、委任、取り消し、トークン連携) | ./references/cli.md + ./references/cli-agent.md |
| CLI:Core NFT/コレクション | ./references/cli.md + ./references/cli-core.md + ./references/metadata-json.md |
| CLI:Token Metadata NFT | ./references/cli.md + ./references/cli-token-metadata.md + ./references/metadata-json.md |
| CLI:圧縮 NFT(Bubblegum) | ./references/cli.md + ./references/cli-bubblegum.md + ./references/metadata-json.md |
| CLI:Candy Machine(NFT ドロップ) | ./references/cli.md + ./references/cli-candy-machine.md + ./references/metadata-json.md |
| CLI:トークンローンチ/ボンディングカーブ(Genesis) | ./references/cli.md + ./references/cli-genesis.md |
| CLI:実行/アセット署名者ウォレット/エージェント保管庫 | ./references/cli.md + ./references/cli-core.md(実行セクション) |
| SDK:実行/アセット署名者 PDA/エージェント保管庫 | ./references/sdk-umi.md + ./references/sdk-core.md(実行セクション) |
| CLI:代替可能トークン | ./references/cli.md + ./references/cli-toolbox.md |
| SDK セットアップ(Umi) | ./references/sdk-umi.md |
| SDK:Core NFT | ./references/sdk-umi.md + ./references/sdk-core.md + ./references/metadata-json.md |
| SDK:DAS API(アセット照会、Core リスト作成ヘルパー) | ./references/sdk-umi.md + ./references/sdk-das.md |
| SDK:Token Metadata | ./references/sdk-umi.md + ./references/sdk-token-metadata.md + ./references/metadata-json.md |
| SDK:圧縮 NFT(Bubblegum) | ./references/sdk-umi.md + ./references/sdk-bubblegum.md + ./references/metadata-json.md |
| SDK:Kit を使用した Token Metadata | ./references/sdk-token-metadata-kit.md + ./references/metadata-json.md |
| SDK:Agent Registry(ID、ウォレット、委任) | ./references/sdk-umi.md + ./references/sdk-agent.md |
| SDK:トークンローンチ+ボンディングカーブスワップ(Genesis) | ./references/sdk-umi.md + ./references/sdk-genesis.md |
| SDK:低レベル Genesis(カスタムバケット、プレセール、ベスティング) | ./references/sdk-umi.md + ./references/sdk-genesis-low-level.md |
| オフチェーンメタデータの JSON 形式/スキーマ(NFT またはトークン) | ./references/metadata-json.md |
| アカウント構造、PDA、概念 | ./references/concepts.md |
| CLI エラー、ローカルネットの問題 | ./references/cli-troubleshooting.md |
CLI の機能
mplx CLI では、ほとんどの Metaplex 操作を直接実行できます。エージェント向けガイドライン(バッチ処理、JSON 出力、エクスプローラーへのリンク)については ./references/cli.md を読み、その後、プログラム固有のファイルを読んでください。
CLI v0.1.0 の破壊的変更(旧バージョンから移行するエージェント/スクリプト向け):
--json <file>(オフチェーンのメタデータファイルのパスを渡すために使用)は、--offchain <file>に変更されました。--jsonは現在、機械可読な出力のための標準 OCLIF フラグです。--jsonを指定すると、すべてのコマンドが構造化 JSON を返すようになりました。プログラムやエージェントから使用する場合は、これを利用してください。
| タスク | CLI の対応状況 |
|---|---|
| エージェントの ID を登録 | ✅ |
| エージェントのデータを取得 | ✅ |
| 実行委任を取り消す | ✅ |
| エージェントトークンを設定(Genesis リンク) | ✅(asset-signer モードが必要) |
| 代替性トークンを作成 | ✅ |
| Core NFT/Collection を作成 | ✅ |
| TM NFT/pNFT を作成 | ✅ |
| TM NFT を転送 | ✅ |
| 代替性トークンを転送 | ✅ |
| Core NFT を転送 | ✅ |
| Irys にアップロード | ✅ |
| Candy Machine のドロップ | ✅(セットアップ/設定/挿入。ミントには SDK が必要) |
| 圧縮 NFT(cNFT) | ✅(バッチ上限は約 100。より多く処理する場合は SDK を使用) |
| 実行(asset-signer ウォレット) | ✅ |
| SOL 残高の確認/エアドロップ | ✅ |
| 所有者/コレクション/グループ別にアセットを検索 | ❌ SDK のみ(DAS API。./references/sdk-das.md を参照) |
| トークンローンチ(Genesis) | ✅ |
| ボンディングカーブスワップ(Genesis) | ✅ |
プログラム ID
これらを記憶から入力し直さず、コピーしてください。 Base58 のプログラム ID はエントロピーの高い文字列であり、ソーステキストを正しく読めていても、モデルはそのまま正確に再現せず、数文字をもっともらしく見える架空のアドレスに置き換えてしまうことが頻繁にあります(Claude Sonnet 5 を含め、このブロックそのものを基準に測定)。誤ったフラグは明確にエラーになりますが、誤ったプログラム ID を使うと、存在しないアドレス、または別の実在するプログラムへトランザクションが送信されます。これらの ID が必要な場合は、このファイルから grep/cat で取り出し、記憶から入力し直さず、そのままコピーしてください。SDK コードを書く場合は、リテラルをハードコードするのではなく、定数をインポートすることを優先してください。たとえば、
@metaplex-foundation/mpl-coreのMPL_CORE_PROGRAM_ID、@metaplex-foundation/mpl-bubblegumのMPL_BUBBLEGUM_PROGRAM_ID、@metaplex-foundation/mpl-token-metadataのMPL_TOKEN_METADATA_PROGRAM_IDなどです。インポートした定数が誤って生成されることはありません。
Agent Identity: 1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p
Agent Tools: TLREGni9ZEyGC3vnPZtqUh95xQ8oPqJSvNjvB7FGK8S
Genesis: GNS1S5J5AspKXgpjz6SvKL66kPaKWAhaGRhCqPRxii2B
Core: CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d
Token Metadata: metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s
Bubblegum: BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY
Core Candy: CMACYFENjoBMHzapRXyo1JZkVS6EtaDDzkjMrmQLvr4J
MPL Account Compression: mcmt6YrQEMKw8Mw43FmpRLmf7BqRnFMKmAcbxE3xkAW
SPL Account Compression: cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK
現在の CLI/SDK で作成された Bubblegum マークルツリー(V2 命令 —
mintV2、transferV2、createTreeConfigV2など)の所有者は SPL ではなく MPL Account Compression です。V1 命令セット(mintV1、transfer、createTreeConfigなど)では引き続き SPL Account Compression が使われます。特定のツリーが実際にどのプログラムに所有されているかを確認してから判断してください。SPL と決めつけないでください。
クイック判断ガイド
自律型エージェント
MPL Core アセットのオンチェーン ID と実行委任を登録するには、Agent Registry を使用します。推奨される方法は Mint Agent API(mintAndSubmitAgent)です。これにより、Core アセットの作成と ID の登録が単一のトランザクションで行われます。既存のアセットには、registerIdentityV1 を直接使用します。すべての Core アセットには、Core の Execute フックを介して組み込みウォレット(Asset Signer PDA)がすでにあります。レジストリを使うと、発見可能な ID レコードが追加され、所有者はオフチェーンの実行者にエージェントの操作を委任できます。エージェントには、必要に応じて setAgentTokenV1 を使って Genesis トークンをリンクできます。DAS(searchAssets({ isAgent: true })。./references/sdk-das.md を参照)を使ってエージェントを検索できます。./references/cli-agent.md(CLI)または ./references/sdk-umi.md と ./references/sdk-agent.md(SDK)を読んでください。
トークンローンチ(トークン生成イベント/フェアローンチ/ボンディングカーブ)
Genesisを使用します。Launch API(genesis launch create/createAndRegisterLaunch)を推奨します。すべてを1ステップで処理できます。ローンチの種類は2つあります。
launchpool(デフォルト):割り当ての設定が可能で、48時間のデポジット期間があり、チームのベスティングに対応していますbonding-curve:即時のボンディングカーブ(定数積AMM)です。デポジット期間はなく、取引がすぐに開始され、完売すると自動的にRaydium CPMMへ移行します。クリエイター手数料、初回購入、エージェントモードに対応しています。
./references/cli.mdと./references/cli-genesis.md(CLI)、または./references/sdk-genesis.md(SDKのローンチフロー)をお読みください。カスタムバケット/プレセール/ベスティングには、./references/sdk-genesis-low-level.mdを使用してください。
NFT:CoreとToken Metadata
| 選択肢 | 使用する場合 |
|---|---|
| Core | 新しいNFTプロジェクト、低コスト(87%安価)、プラグイン、ロイヤリティの適用 |
| Token Metadata | 既存のTMコレクション、エディションが必要な場合、レガシー互換性のためのpNFT |
圧縮NFT(大規模な発行)
最小限のコストで数千個以上のNFTをミントする場合は、Bubblegumを使用します。./references/cli-bubblegum.md(CLI)または./references/sdk-bubblegum.md(SDK)をご覧ください。Bubblegum V2の継承された販売者手数料(65535センチネル+CoreコレクションのRoyaltiesプラグイン)については、CLIのミントフラグを./references/cli-bubblegum.mdで確認してください。SDKでは、mintV2のmetadataを使用してミントします(SFBPを省略し、クリエイターは空にします)。書き込みにはリーフの正規データであるgetAssetWithProof().currentMetadataを使用します。updateMetadataV2ではcurrentMetadataとして、setCollectionV2/verifyCreatorV2/unverifyCreatorV2ではmetadataとして指定します。./references/sdk-bubblegum.mdの「継承されたロイヤリティでミントする」をご覧ください。
代替可能トークン
常にToken Metadataを使用します。CLIコマンドについては、./references/cli-toolbox.mdをお読みください。
NFTドロップ
Core Candy Machineを使用します。./references/cli.mdと./references/cli-candy-machine.mdをお読みください。
Candy Machineを使わずにCoreコレクションへアプリからミントする
Coreコレクションにアセットを作成するには、コレクションの更新権限者(またはUpdateDelegate)による署名が必要です。ユーザーのウォレットでは署名できず、権限者のキーをフロントエンドに置いてはいけません。アプリには、カスタムのオンチェーンプログラム(UpdateDelegateを付与されたPDAを使い、プログラム内にミントロジックを実装する)か、ミントに署名するデリゲートのキーペアを保持するバックエンド/APIが必要です。ミントフローを設計する前に、./references/sdk-core.mdの「アプリからコレクションにミントする」セクションをお読みください。
エージェント/ボルト/ウォレットとしてのアセット(実行)
アセット(NFT、エージェント、ボルト)がSOL/トークンを保有したり、資金を送金したり、トランザクションに署名したり、ほかのアセットを所有したりする必要がある場合は、Core Executeを使用します。すべてのCoreアセットには、自律型ウォレットとして機能できる署名者PDAがあります。./references/cli-core.md(CLI)または./references/sdk-core.md(SDK)の実行セクションをお読みください。
詳細情報
タスクでスキルのリファレンスに記載されている以上の詳しい情報(エッジケース、APIの全機能、ガイド)が必要な場合は、Metaplexのドキュメントを参照してください。
- ドキュメントのトップページ:https://metaplex.com/docs
- エージェントレジストリ:https://metaplex.com/docs/agents
- Genesis:https://metaplex.com/docs/smart-contracts/genesis
- Core:https://metaplex.com/docs/smart-contracts/core
- Token Metadata:https://metaplex.com/docs/smart-contracts/token-metadata
- Bubblegum:https://metaplex.com/docs/smart-contracts/bubblegum-v2
- Candy Machine:https://metaplex.com/docs/smart-contracts/core-candy-machine
- トークン:https://metaplex.com/docs/tokens
- NFT:https://metaplex.com/docs/nfts
- CLI:https://metaplex.com/docs/dev-tools/cli
- Umi SDK:https://metaplex.com/docs/dev-tools/umi
- DAS API:https://metaplex.com/docs/dev-tools/das-api
- プロトコル手数料:https://metaplex.com/docs/protocol-fees