エージェント

POSTエージェントのミント

Last updated August 1, 2026

エージェント用の MPL Core アセットをミントし、そのアイデンティティを Agent Registry に登録する処理を1ステップで行うトランザクションを構築します。API はエージェントメタデータをオフチェーンに保存し、ウォレットが支払者として共同署名するための部分署名済みトランザクションを返します。

Summary

これはエージェントのミントガイドの背後にあるエンドポイントです。

  • Core アセットの作成と registerIdentity の呼び出しを単一のトランザクションで実行
  • アセットのキーペアはサーバー側で生成・事前署名されるため、レスポンスには最終的な assetAddress が含まれます
  • EIP-8004 メタデータとホストされた A2A AgentCard(自作のもの、またはメタデータから合成されたもの)を保存
  • 呼び出し元のウォレットが支払者として署名し、トランザクションを送信します

Quick Reference

項目値
メソッドPOST
パス/agents/mint
認証不要
レスポンスシリアライズ済みトランザクション + assetAddress

エンドポイント

POST /agents/mint

リクエストボディ

フィールド型必須説明
walletstringはいエージェントの支払いとオーナーとなるウォレット(base58)。
networkstringはいsolana-mainnet または solana-devnet。
namestringはいCore アセットのエージェント名。
uristringはいアセットのオフチェーン JSON メタデータの URI。
agentMetadataobjectはいEIP-8004 エージェント登録 JSON(name、description、image、services、registrations、active、…)。
collectionAddressstringいいえエージェントをミントする Core コレクション。
a2aCardobjectいいえ事前に構築した A2A AgentCard。省略した場合は agentMetadata から合成されます。

リクエスト例

curl -X POST "https://api.metaplex.com/v1/agents/mint" \
-H "Content-Type: application/json" \
-d '{
"wallet": "4Nd1mYvJ9jVexjIXG5oJhanoGWyF7Cz6XkY8dEc4RsyG",
"network": "solana-devnet",
"name": "Example Agent",
"uri": "https://example.com/agent-metadata.json",
"agentMetadata": {
"name": "Example Agent",
"description": "An autonomous trading agent.",
"active": true,
"services": [],
"registrations": []
}
}'

レスポンス

{
"success": true,
"tx": "<base64-encoded partially signed transaction>",
"blockhash": {
"blockhash": "9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM",
"lastValidBlockHeight": 123456789
},
"assetAddress": "7nE9GvcwsqzYcPUYfm5gxzCKfmPqi68FM7gPaSfG6EQN"
}

署名と送信

返されたトランザクションにはアセットキーペアによる署名が既に付与されています。ウォレットが支払者として共同署名し、送信します:

import { base64 } from "@metaplex-foundation/umi/serializers";
const res = await fetch("https://api.metaplex.com/v1/agents/mint", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(input),
});
const result = await res.json();
if (!result.success) throw new Error(result.error);
const tx = umi.transactions.deserialize(base64.serialize(result.tx));
const signed = await umi.identity.signTransaction(tx);
await umi.rpc.sendTransaction(signed);

エラー

ステータスボディ意味
400{ "success": false, "error": "Invalid input data", "details": [...] }リクエストボディがバリデーションに失敗。details に問題点が列挙されます。
400{ "success": false, "error": "<message>" }構築の失敗(例:コレクションが見つからない)。
500{ "success": false, "error": "Failed to prepare mint agent" }サーバーエラー。

Notes

  • Metaplex レジストリエントリ(solana:101:metaplex)は agentMetadata.registrations の先頭に自動的に追加されます。
  • EIP-8004 のコンシューマーが AgentCard エンドポイントを発見できるよう、ホストされた A2A サービスエントリが services[] に挿入されます。既に自分で作成済みの場合は何も行われません。
  • エージェントレコードはこのエンドポイントの呼び出し時に保存されますが、署名済みトランザクションが確認されインデックスされるまで エージェント一覧 には表示されません。
  • SDK を使ったガイド付きのウォークスルーはエージェントのミントをご参照ください。