validation について
validation は、validation-registry コントラクトを通じて ERC-8004 エージェントの検証を行うコマンドラインスキルです。読み取り専用の状態・集計照会に加え、アンロック済みウォレットで Stacks 上の検証リクエストや回答を送信できます。
主な機能
- 01エージェントの検証を依頼
- 02採点付きの検証回答を送信
- 03リクエスト状態とエージェント集計を照会
- 04エージェント別・検証者別の依頼一覧
- 05カーソル方式のページネーション
活用シーン
- 01エージェントの評価を検証者に依頼
- 02保留中の検証スコアを送信または更新
- 03エージェントの検証履歴を確認
- 04検証者に届いたリクエストを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aibtcdev/ skills --skill validationインストール後、Claude Code で/validationを入力して読み込まれたか確認します。
同梱ファイルAGENT.mdvalidation.ts
詳細
検証スキル
validation-registry コントラクトを使用して、ERC-8004 のオンチェーンエージェント検証操作を行います。読み取り操作(get-status、get-summary、get-agent-validations、get-validator-requests)はウォレットなしで利用できます。書き込み操作(request、respond)にはロック解除済みのウォレットが必要です。
使用方法
bun run validation/validation.ts <subcommand> [options]
サブコマンド
request
ERC-8004 検証レジストリ内のエージェントについて、バリデーターに検証をリクエストします。リクエストハッシュは、リクエストデータの 32 バイト SHA-256 ハッシュである必要があります。ロック解除済みのウォレットが必要です。
bun run validation/validation.ts request --validator <address> --agent-id <id> --request-uri <uri> --request-hash <hex> [--fee <fee>] [--sponsored]
オプション:
--validator(必須)— 検証をリクエストするバリデーターの Stacks アドレス--agent-id(必須)— 検証をリクエストするエージェント ID(0 以上の整数)--request-uri(必須)— 検証リクエストデータを指す URI--request-hash(必須)— リクエストデータの 32 バイト SHA-256 ハッシュを表す 16 進数文字列--fee(任意)— 手数料のプリセット(low、medium、high)または micro-STX の金額--sponsored(フラグ)— スポンサー付きトランザクションとして送信します
出力:
{
"success": true,
"txid": "0xabc...",
"message": "Validation requested from SP2... for agent 42.",
"validator": "SP2...",
"agentId": 42,
"requestUri": "ipfs://request...",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/0xabc..."
}
respond
保留中の検証リクエストに対する検証レスポンスを送信します。元のリクエストで指定されたバリデーターのみが実行できます。レスポンスは 0 から 100 までの整数である必要があります。段階的な更新のため、複数回実行できます。ロック解除済みのウォレットが必要です。
bun run validation/validation.ts respond --request-hash <hex> --response <value> --response-uri <uri> --response-hash <hex> [--tag <tag>] [--fee <fee>] [--sponsored]
オプション:
--request-hash(必須)— 元のリクエストの 32 バイト SHA-256 ハッシュを表す 16 進数文字列--response(必須)— 検証レスポンスのスコア(0 から 100 までの整数)--response-uri(必須)— 検証レスポンスデータを指す URI--response-hash(必須)— レスポンスデータの 32 バイト SHA-256 ハッシュを表す 16 進数文字列--tag(任意)— 検証レスポンスの分類タグ--fee(任意)— 手数料のプリセット(low、medium、high)または micro-STX の金額--sponsored(フラグ)— スポンサー付きトランザクションとして送信します
出力:
{
"success": true,
"txid": "0xdef...",
"message": "Validation response 85 submitted for request hash a3f2b1....",
"response": 85,
"responseUri": "ipfs://response...",
"tag": "security",
"network": "mainnet",
"explorerUrl": "https://explorer.hiro.so/txid/0xdef..."
}
get-status
32 バイトのリクエストハッシュで検証リクエストのステータスを取得します。バリデーター、エージェント ID、レスポンススコア、レスポンスハッシュ、タグ、最終更新ブロック、およびレスポンスが送信済みかどうかを返します。ウォレットは不要です。
bun run validation/validation.ts get-status --request-hash <hex>
オプション:
--request-hash(必須)— 検証リクエストの 32 バイト SHA-256 ハッシュを表す 16 進数文字列
出力:
{
"success": true,
"requestHash": "a3f2b1...64hex",
"validator": "SP2...",
"agentId": 42,
"response": 85,
"responseHash": "b4e9c2...64hex",
"tag": "security",
"lastUpdate": 123456,
"hasResponse": true,
"network": "mainnet"
}
get-summary
エージェントの集計済み検証サマリーを取得します。検証の合計数とレスポンススコアの平均を返します。ウォレットは不要です。
bun run validation/validation.ts get-summary --agent-id <id>
オプション:
--agent-id(必須)— 照会するエージェント ID(0 以上の整数)
出力:
{
"success": true,
"agentId": 42,
"count": 3,
"avgResponse": 88,
"network": "mainnet"
}
get-agent-validations
エージェントの検証リクエストハッシュのページ分割された一覧を取得します。リクエストハッシュは 16 進数文字列で返されます。ページサイズは 14 のカーソルベースのページネーションを使用します。ウォレットは不要です。
bun run validation/validation.ts get-agent-validations --agent-id <id> [--cursor <cursor>]
オプション:
--agent-id(必須)— 照会するエージェント ID(0 以上の整数)--cursor(任意)— ページネーションカーソル(直前のレスポンスから取得した 0 以上の整数)
出力:
{
"success": true,
"agentId": 42,
"validations": ["a3f2b1...64hex", "c5d8e4...64hex"],
"cursor": null,
"network": "mainnet"
}
get-validator-requests
バリデーターに送信された検証リクエストハッシュのページ分割された一覧を取得します。リクエストハッシュは 16 進数文字列で返されます。ページサイズは 14 のカーソルベースのページネーションを使用します。ウォレットは不要です。
bun run validation/validation.ts get-validator-requests --validator <address> [--cursor <cursor>]
オプション:
--validator(必須)— 照会するバリデーターの Stacks アドレス--cursor(任意)— ページネーションカーソル(直前のレスポンスから取得した 0 以上の整数)
出力:
{
"success": true,
"validator": "SP2...",
"requests": ["a3f2b1...64hex", "c5d8e4...64hex"],
"cursor": null,
"network": "mainnet"
}
注意事項
- 読み取り操作(get-status、get-summary、get-agent-validations、get-validator-requests)はウォレットがなくても実行できます
- 書き込み操作には、ロック解除済みのウォレットが必要です(
bun run wallet/wallet.ts unlock) --request-hashと--response-hashは、正確に32バイト(64桁の16進数)である必要があります。SHA-256を使用してください--responseのスコアは、0〜100の整数(両端を含む)である必要がありますrespondを呼び出せるのは、元の検証リクエストで指定されたバリデーターのみです- 同じリクエストに対して、段階的な更新を行うために
respondを複数回呼び出せます - ページネーションではカーソルベースのナビゲーションを使用します。あるレスポンスの
cursorを次の呼び出しに渡してください - 検証はStacks L2の操作です。書き込み呼び出しの後に
stx get-transaction-statusでトランザクションのステータスを確認してください