はじめに

エージェントを登録

Last updated March 12, 2026

MPL CoreアセットにIDレコードを紐付けて、Metaplex 014エージェントレジストリにエージェントを登録します。

概要

registerIdentityV1命令は、オンチェーンIDレコードをMPL Coreアセットに紐付け、検出可能なPDAを作成し、Transfer、Update、Executeのライフサイクルフックをアタッチします。

  • アセットの公開鍵から派生したPDAを作成し、オンチェーンでの検出を可能にします
  • AgentIdentityプラグインとライフサイクルフックをCoreアセットにアタッチします
  • エージェントメタデータのためにERC-8004に準拠したオフチェーン登録ドキュメントにリンクします
  • 既存のMPL Coreアセットと@metaplex-foundation/mpl-agent-registry SDKが必要です

クイックスタート

  1. 前提条件 — MPL Coreアセットを取得し、SDKをインストール
  2. エージェントを登録registerIdentityV1を呼び出してIDを紐付け
  3. エージェント登録ドキュメント — オフチェーンメタデータJSONを作成
  4. 登録を確認 — IDがアタッチされたことを確認
  5. 完全な例 — エンドツーエンドのコードサンプル

学べること

このガイドでは、以下を含むエージェントの登録方法を説明します:

  • MPL CoreアセットにリンクされたIDレコード
  • エージェントをオンチェーンで検出可能にするPDA(Program Derived Address)
  • Transfer、Update、Executeのライフサイクルフックを持つAgentIdentityプラグイン

前提条件

登録前にMPL Coreアセットが必要です。まだお持ちでない場合は、NFTを作成をご覧ください。IDプログラム自体の詳細については、MPL Agent Registryドキュメントをご覧ください。

エージェントを登録

登録により、アセットの公開鍵から派生したPDAが作成され、Transfer、Update、Executeのライフサイクルフックを持つAgentIdentityプラグインがアタッチされます。PDAによりエージェントが検出可能になります。誰でもアセットアドレスからPDAを派生させ、登録済みIDがあるかどうかを確認できます。

import { createUmi } from '@metaplex-foundation/umi-bundle-defaults';
import { mplAgentIdentity } from '@metaplex-foundation/mpl-agent-registry';
import { registerIdentityV1 } from '@metaplex-foundation/mpl-agent-registry';
const umi = createUmi('https://api.mainnet-beta.solana.com')
.use(mplAgentIdentity());
await registerIdentityV1(umi, {
asset: assetPublicKey,
collection: collectionPublicKey,
agentRegistrationUri: 'https://example.com/agent-registration.json',
}).sendAndConfirm(umi);

パラメータ

パラメータ説明
asset登録するMPL Coreアセット
collectionアセットのコレクション(オプション)
agentRegistrationUriオフチェーンのエージェント登録メタデータを指すURI
payerレントと手数料を支払う(デフォルトはumi.payer
authorityコレクション権限(デフォルトはpayer

エージェント登録ドキュメント

agentRegistrationUriは、エージェントのID、サービス、メタデータを記述するJSONドキュメントを指します。フォーマットはSolana向けに適応されたERC-8004に準拠しています。JSONファイル(および関連画像)をArweaveなどの永続ストレージプロバイダーにアップロードして公開アクセス可能にしてください。プログラムによるアップロードについては、このガイドをご覧ください。

{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Plexpert",
"description": "An informational agent providing help related to Metaplex protocols and tools.",
"image": "https://arweave.net/agent-avatar-tx-hash",
"services": [
{
"name": "web",
"endpoint": "https://metaplex.com/agent/<ASSET_PUBKEY>"
},
{
"name": "A2A",
"endpoint": "https://metaplex.com/agent/<ASSET_PUBKEY>/agent-card.json",
"version": "0.3.0"
},
{
"name": "MCP",
"endpoint": "https://metaplex.com/agent/<ASSET_PUBKEY>/mcp",
"version": "2025-06-18"
}
],
"active": true,
"registrations": [
{
"agentId": "<MINT_ADDRESS>",
"agentRegistry": "solana:101:metaplex"
}
],
"supportedTrust": [
"reputation",
"crypto-economic"
]
}

フィールド

フィールド必須説明
typeはいスキーマ識別子。https://eips.ethereum.org/EIPS/eip-8004#registration-v1を使用。
nameはい人が読めるエージェント名
descriptionはいエージェントの自然言語による説明 — 何をするか、どう動くか、どう操作するか
imageはいアバターまたはロゴのURI
servicesいいえエージェントが公開するサービスエンドポイントの配列(以下参照)
activeいいえエージェントが現在アクティブかどうか(true/false
registrationsいいえエージェントのIDにリンクバックするオンチェーン登録の配列
supportedTrustいいえエージェントがサポートする信頼モデル(例:reputationcrypto-economictee-attestation

サービス

各サービスエントリは、エージェントとのやり取り方法を記述します:

フィールド必須説明
nameはいサービスタイプ — 例:webA2AMCPOASFDIDemail
endpointはいサービスに到達できるURLまたは識別子
versionいいえプロトコルバージョン
skillsいいえこのサービスを通じてエージェントが公開するスキルの配列
domainsいいえエージェントが動作するドメインの配列

登録

各登録エントリは、オンチェーンIDレコードにリンクバックします:

フィールド必須説明
agentIdはいエージェントのミントアドレス
agentRegistryはい固定のレジストリ識別子 — solana:101:metaplexを使用

登録を確認

import { fetchAsset } from '@metaplex-foundation/mpl-core';
const assetData = await fetchAsset(umi, assetPublicKey);
// Check the AgentIdentity plugin
const agentIdentity = assetData.agentIdentities?.[0];
console.log(agentIdentity?.uri); // your registration URI
console.log(agentIdentity?.lifecycleChecks?.transfer); // truthy
console.log(agentIdentity?.lifecycleChecks?.update); // truthy
console.log(agentIdentity?.lifecycleChecks?.execute); // truthy

完全な例

import { generateSigner } from '@metaplex-foundation/umi';
import { create, createCollection } from '@metaplex-foundation/mpl-core';
import { registerIdentityV1 } from '@metaplex-foundation/mpl-agent-registry';
// 1. Create a collection
const collection = generateSigner(umi);
await createCollection(umi, {
collection,
name: 'Agent Collection',
uri: 'https://example.com/collection.json',
}).sendAndConfirm(umi);
// 2. Create an asset
const asset = generateSigner(umi);
await create(umi, {
asset,
name: 'My Agent',
uri: 'https://example.com/agent.json',
collection,
}).sendAndConfirm(umi);
// 3. Register identity
await registerIdentityV1(umi, {
asset: asset.publicKey,
collection: collection.publicKey,
agentRegistrationUri: 'https://example.com/agent-registration.json',
}).sendAndConfirm(umi);

注意事項

  • 登録はアセットごとに1回限りの操作です。すでに登録済みのアセットに対してregisterIdentityV1を呼び出すと失敗します。
  • agentRegistrationUriは永続的にホストされたJSON(例:Arweave)を指す必要があります。URIにアクセスできなくなっても、オンチェーンIDは存在し続けますが、クライアントはエージェントのメタデータを取得できなくなります。
  • collectionパラメータはオプションですが推奨されます。登録時のコレクションレベルの権限チェックを有効にします。
  • Transfer、Update、Executeのライフサイクルフックは自動的にアタッチされます。これらのフックにより、IDプラグインがアセットに対する操作の承認または拒否に参加できます。

Metaplexが管理 · 2026年3月検証済み · GitHubでソースを見る