Programs

エージェントアイデンティティ

Last updated March 12, 2026

エージェントアイデンティティプログラムは、MPL CoreアセットのオンチェーンアイデンティティレコードをPDAとして登録します。

Summary

エージェントアイデンティティプログラム(1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p)はMPL CoreアセットのPDAベースのアイデンティティレコードを作成し、Transfer、Update、Executeのライフサイクルフックを持つAgentIdentityプラグインをアタッチします。

  • 単一インストラクションRegisterIdentityV1が1つのトランザクションでPDA作成、アカウント初期化、プラグインアタッチを処理します
  • 40バイトのアカウントAgentIdentityV1 PDAはディスクリミネーター、バンプ、アセット公開鍵のみを保存します
  • ライフサイクルフック — プラグインはTransfer、Update、Executeイベントのapprove、listen、rejectチェックを登録します
  • 決定論的PDA — オンチェーンルックアップのためにシード["agent_identity", <asset_pubkey>]から派生します

プログラムID

ネットワークアドレス
メインネット1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p
デブネット1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p

インストラクション:RegisterIdentityV1

PDAを作成し、Transfer、Update、Executeのライフサイクルフックを持つAgentIdentityプラグインをMPL Coreアセットにアタッチすることでエージェントアイデンティティを登録します。

アカウント

アカウント書き込み可能署名者オプション説明
agentIdentityはいいいえいいえ作成されるPDA(アセットから自動派生)
assetはいいいえいいえ登録するMPL Coreアセット
collectionはいいいえはいアセットのコレクション
payerはいはいいいえアカウントレンタルと手数料を支払います
authorityいいえはいはいコレクション権限者(デフォルトはpayer
mplCoreProgramいいえいいえいいえMPL Coreプログラム
systemProgramいいえいいえいいえシステムプログラム

引数

引数説明
agentRegistrationUristringオフチェーンのエージェント登録メタデータを指すURI

動作内容

  1. シード["agent_identity", <asset>]からPDAを派生します
  2. AgentIdentityV1アカウント(40バイト)を作成して初期化します
  3. MPL CoreにCPIして、提供されたURIとAgentIdentityプラグインをアセットにアタッチします
  4. TransferUpdateExecuteイベント(approve、listen、reject)のライフサイクルチェックを登録します

ライフサイクルチェック

AgentIdentityプラグインは3つのライフサイクルイベントにフックを登録します。

イベントApproveListenReject
Transferはいはいはい
Updateはいはいはい
Executeはいはいはい

つまり、アイデンティティプラグインはアセットへのTransfer、Update、Executeの承認、観察、または拒否に参加できます。

PDA派生

シード: ["agent_identity", <asset_pubkey>]

import { findAgentIdentityV1Pda } from '@metaplex-foundation/mpl-agent-registry';
const pda = findAgentIdentityV1Pda(umi, { asset: assetPublicKey });
// [publicKey, bump]を返します

アカウント:AgentIdentityV1

40バイト、8バイトアライン、bytemuck経由のゼロコピー。

オフセットフィールドサイズ説明
0keyu81アカウントディスクリミネーター(1 = AgentIdentityV1)
1bumpu81PDAバンプシード
2_padding[u8; 6]6アライメントパディング
8assetPubkey32このアイデンティティにバインドされているMPL Coreアセット

アカウントの取得

import {
fetchAgentIdentityV1,
safeFetchAgentIdentityV1,
fetchAgentIdentityV1FromSeeds,
fetchAllAgentIdentityV1,
getAgentIdentityV1GpaBuilder,
} from '@metaplex-foundation/mpl-agent-registry';
// PDAアドレスで取得(見つからない場合はthrow)
const identity = await fetchAgentIdentityV1(umi, pda);
// セーフフェッチ(見つからない場合はnullを返す)
const identity = await safeFetchAgentIdentityV1(umi, pda);
// シードで取得(内部でPDAを派生)
const identity = await fetchAgentIdentityV1FromSeeds(umi, { asset });
// バッチ取得
const identities = await fetchAllAgentIdentityV1(umi, [pda1, pda2]);
// GPAクエリ
const results = await getAgentIdentityV1GpaBuilder(umi)
.whereField('asset', assetPublicKey)
.get();

エラー

コード名前説明
0InvalidSystemProgramシステムプログラムのアカウントが正しくありません
1InvalidInstructionDataインストラクションデータが不正です
2InvalidAccountDataPDA派生がアセットと一致しません
3InvalidMplCoreProgramMPL Coreプログラムのアカウントが正しくありません
4InvalidCoreAssetアセットが有効なMPL Coreアセットではありません

Metaplexが管理 · 2026年3月最終確認 · GitHubでソースを表示