mcpField
I
identity

identity

github.com/aibtcdevエージェントワークフロー11190 回インストール1 日前に更新
リポジトリ

identity について

identityは、ERC-8004 identity-registryコントラクトでオンチェーンのエージェントIDを管理するスキルです。ウォレット不要の読み取り操作と、アンロック済みウォレットが必要な書き込み操作を提供します。

主な機能

  1. 01エージェントIDの登録と移転
  2. 02ID情報と最新IDの照会
  3. 03URIとメタデータの読み取り・更新
  4. 04オペレーター承認の設定・解除
  5. 05エージェントウォレットの設定・解除

活用シーン

  1. 01新しいオンチェーンIDの登録
  2. 02所有者とメタデータの確認
  3. 03オペレーターによる情報更新の許可
  4. 04ID移転後のウォレット関連付け変更

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aibtcdev/skills --skill identity

インストール後、Claude Code で/identityを入力して読み込まれたか確認します。

同梱ファイルAGENT.mdidentity.ts

詳細

Identity Skill

identity-registry コントラクトを使用して、ERC-8004 オンチェーンエージェントの ID 操作を行います。読み取り操作(get、get-metadata、get-last-id)はウォレットなしで実行できます。書き込み操作(register、set-uri、set-metadata、set-approval、set-wallet、unset-wallet、transfer)にはロック解除されたウォレットが必要です。

Usage

bun run identity/identity.ts <subcommand> [options]

Subcommands

register

ERC-8004 identity registry を使用して、新しいエージェント ID をオンチェーンに登録します。トランザクション ID が返されます。割り当てられたエージェント ID を取得するには、トランザクションの結果を確認してください。ロック解除されたウォレットが必要です。

bun run identity/identity.ts register [--uri <uri>] [--metadata <json>] [--fee <fee>] [--sponsored]

Options:

  • --uri (任意) — エージェントのメタデータを指す URI(IPFS、HTTP など)
  • --metadata (任意) — {"key": "...", "value": "<hex>"} のペアを含む JSON 配列(値は 16 進数でエンコードされたバッファーです)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xabc...",
  "message": "Identity registration transaction submitted. Check transaction result to get your agent ID.",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xabc..."
}
get

ERC-8004 identity registry からエージェント ID 情報を取得します。所有者アドレス、URI、設定されている場合はウォレットが返されます。

bun run identity/identity.ts get --agent-id <id>

Options:

  • --agent-id (必須) — 検索するエージェント ID(0 以上の整数)

Output:

{
  "success": true,
  "agentId": 42,
  "owner": "SP1...",
  "uri": "ipfs://...",
  "wallet": "SP2...",
  "network": "mainnet"
}
set-uri

エージェント ID の URI を更新します。呼び出し元はエージェントの所有者または承認済みのオペレーターである必要があります。ロック解除されたウォレットが必要です。

bun run identity/identity.ts set-uri --agent-id <id> --uri <uri> [--fee <fee>] [--sponsored]

Options:

  • --agent-id (必須) — 更新するエージェント ID(0 以上の整数)
  • --uri (必須) — エージェントのメタデータを指す新しい URI(IPFS、HTTP など)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xdef...",
  "message": "Identity URI update transaction submitted.",
  "agentId": 42,
  "uri": "ipfs://newuri...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xdef..."
}
set-metadata

エージェント ID のメタデータのキーと値のペアを設定します。値は 16 進数でエンコードされたバッファーである必要があります(最大 512 バイト)。キー agentWallet は予約済みのため、コントラクトによって拒否されます。呼び出し元はエージェントの所有者または承認済みのオペレーターである必要があります。ロック解除されたウォレットが必要です。

bun run identity/identity.ts set-metadata --agent-id <id> --key <key> --value <hex> [--fee <fee>] [--sponsored]

Options:

  • --agent-id (必須) — 更新するエージェント ID(0 以上の整数)
  • --key (必須) — メタデータのキー(文字列)
  • --value (必須) — 16 進数でエンコードされたバッファー形式のメタデータ値(例:"alice" を表す 616c696365)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xghi...",
  "message": "Metadata set transaction submitted.",
  "agentId": 42,
  "key": "name",
  "valueHex": "616c696365",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xghi..."
}
set-approval

エージェント ID のオペレーターを承認または取り消します。承認されたオペレーターは、所有者に代わって URI、メタデータ、ウォレットを更新できます。NFT の所有者のみが呼び出せます。ロック解除されたウォレットが必要です。

bun run identity/identity.ts set-approval --agent-id <id> --operator <address> [--approved] [--fee <fee>] [--sponsored]

Options:

  • --agent-id (必須) — 更新するエージェント ID(0 以上の整数)
  • --operator (必須) — 承認または取り消しの対象となるオペレーターの Stacks アドレス
  • --approved (フラグ) — 承認を付与します(指定しない場合は取り消します)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xjkl...",
  "message": "Operator SP3... approved for agent 42.",
  "agentId": 42,
  "operator": "SP3...",
  "approved": true,
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xjkl..."
}
set-wallet

ID に紐づくエージェントウォレットを tx-sender(アクティブなウォレットアドレス)に設定します。別途署名を行わずに、アクティブな Stacks アドレスをエージェント ID に紐づけます。呼び出し元はエージェントの所有者または承認済みのオペレーターである必要があります。ロック解除されたウォレットが必要です。

bun run identity/identity.ts set-wallet --agent-id <id> [--fee <fee>] [--sponsored]

Options:

  • --agent-id (必須) — 更新するエージェント ID(0 以上の整数)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xmno...",
  "message": "Agent wallet set to tx-sender (SP1...) for agent 42.",
  "agentId": 42,
  "wallet": "SP1...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xmno..."
}
unset-wallet

エージェント ID からエージェントウォレットの紐づけを解除します。呼び出し元はエージェントの所有者または承認済みのオペレーターである必要があります。ロック解除されたウォレットが必要です。

bun run identity/identity.ts unset-wallet --agent-id <id> [--fee <fee>] [--sponsored]

Options:

  • --agent-id (必須) — 更新するエージェント ID(0 以上の整数)
  • --fee (任意) — 手数料のプリセット(low、medium、high)または micro-STX の金額
  • --sponsored (フラグ) — スポンサー付きトランザクションとして送信します

Output:

{
  "success": true,
  "txid": "0xpqr...",
  "message": "Agent wallet cleared for agent 42.",
  "agentId": 42,
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xpqr..."
}
transfer

エージェント ID NFT を新しい所有者に移転します。アクティブなウォレット(tx-sender)は現在の所有者と一致している必要があります。移転すると、エージェントのウォレットとの関連付けは自動的に解除されます。ウォレットのロック解除が必要です。

bun run identity/identity.ts transfer --agent-id <id> --recipient <address> [--fee <fee>] [--sponsored]

オプション:

  • --agent-id(必須) — 移転するエージェント ID(トークン ID)(0 以上の整数)
  • --recipient(必須) — 新しい所有者の Stacks アドレス
  • --fee(任意) — 手数料プリセット(low、medium、high)またはマイクロ STX 単位の金額
  • --sponsored(フラグ) — スポンサー付きトランザクションとして送信します

出力:

{
  "success": true,
  "txid": "0xstu...",
  "message": "Identity NFT transfer submitted for agent 42.",
  "agentId": 42,
  "sender": "SP1...",
  "recipient": "SP4...",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/0xstu..."
}
get-metadata

ERC-8004 ID レジストリから、キーを指定してメタデータ値を読み取ります。生のバッファ値を 16 進数文字列として返します。ウォレットは不要です。

bun run identity/identity.ts get-metadata --agent-id <id> --key <key>

オプション:

  • --agent-id(必須) — 照会するエージェント ID(0 以上の整数)
  • --key(必須) — 読み取るメタデータキー

出力:

{
  "success": true,
  "agentId": 42,
  "key": "name",
  "valueHex": "616c696365",
  "network": "mainnet"
}
get-last-id

ERC-8004 ID レジストリから、最後にミントされたエージェント ID を取得します。エージェントが登録されていない場合は null を返します。ウォレットは不要です。

bun run identity/identity.ts get-last-id

出力:

{
  "success": true,
  "lastAgentId": 99,
  "network": "mainnet"
}

注意事項

  • 読み取り操作(get、get-metadata、get-last-id)はウォレットなしで実行できます
  • 書き込み操作には、ロック解除済みのウォレットが必要です(bun run wallet/wallet.ts unlock)
  • エージェント ID は登録時にコントラクトによって割り当てられます。割り当てられた ID を確認するには、トランザクション結果を確認してください
  • オペレーターの承認により、委任先アドレスがエージェントの URI、メタデータ、ウォレットを更新できます
  • 移転すると、エージェントのウォレットとの関連付けは自動的に解除されます。必要に応じて、移転後に set-wallet を使用してください
  • agentWallet キーは予約済みです。代わりに set-wallet/unset-wallet サブコマンドを使用してください

コメント