zscore について
zscoreは、zScore Identity RegistryでAIエージェントを登録・管理するスキルで、ERC-8004のID情報を公開するユーザー向けです。対話形式の入力確認と個別の承認により、JSON作成とオンチェーン操作を制御します。
主な機能
- 01エージェント登録とID NFTの発行
- 02オンチェーンのエージェント情報取得
- 03登録料と受付状態の確認
- 04カスタムメタデータの設定
- 05エージェントウォレットの解除
活用シーン
- 01Base Mainnetでのエージェント登録
- 02Base Sepoliaテストネットでの登録
- 03エージェントの所有者とサービス情報の確認
- 04所有するエージェントのメタデータやウォレットの更新
MCP 対応
登録情報にMCPサービスのエンドポイント、ツール、プロンプト、リソースを含められます。このスキル自体はID情報の登録と管理を行います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ zerufinance/ zscore --skill zscoreインストール後、Claude Code で/zscoreを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreREADME.mdpackage.jsonlib/abi.jsagent-wallet.jsconfig.jscreate-agent-uri.jserrors.jsget-agent.jsindex.jsmetadata.jsregister-agent.jsschema.jsscripts/zscore.ts詳細
zScore ERC-8004 Identity Registry
zScore Identity Registry に AI エージェントを登録して管理します。デフォルトでは Base Mainnet(手数料 0.0025 ETH)を使用します。Base Sepolia テストネットを使用する場合は、--chain 84532 を指定してください。
このスキルをインストールする
公式リポジトリから、このスキルの最新バージョンをインストールします。
npx skills add zerufinance/zscore -y
このコマンドでは、スキルエコシステム(例:skills.sh)で公開されているものと同じスキルがインストールされます。スキルの更新時に、このコマンドを使って最新情報を取得してください。
初回セットアップ
スキルをインストールした後、依存関係をインストールするために一度だけ実行してください(スキルディレクトリから実行します。例:.cursor/skills/zscore/ または ~/.cursor/skills/zscore/)。
npm install
絶対遵守のルール:ユーザー入力なしでは先に進まない
このスキルでは、必ず対話形式で進めてください。
- ユーザーが必要な入力をすべて提供する(または許可されている場合は明示的に省略する)まで、JSON ファイルを作成してはいけません。
- 値(名前、説明、URL、バージョン、ツール一覧、スキル、ドメイン、信頼モデルなど)を推測したり、作り出したりしてはいけません。
- 使用するデフォルト値それぞれについて、ユーザーが明示的に同意しない限り、「デフォルトを使用」して先に進んではいけません。
- 過去のチャット、メモリ、以前の実行からデータを再利用してはいけません。ユーザーが改めて提供した場合(例:前回の JSON を貼り付ける、または正確な値を確認する)は除きます。
- 必要な値が不足している場合は、ユーザーに確認して停止してください。不完全な JSON を生成したり、ファイルを書き込んだり、コマンドを実行したりしてはいけません。
これが安全性と品質を守るための中核となるゲートです。入力が不足している場合、ワークフローを進めてはいけません。
エージェントへの指示:登録フロー(厳格なゲート付き)
ユーザーがエージェントの登録を希望する場合、以下のゲート付きフローに従う必要があります。ワークフローは次の 3 つのフェーズで構成されます。
- 入力を収集する(質問して、回答を待つ)。
- 検証して要約する(実行予定の内容を提示する)。
- 明示的な承認を得てからのみ進める(ファイルを作成してから、登録を実行する)。
フェーズ 1 — 入力を収集する(質問して、停止する)
以下の入力をユーザーに確認してください。各項目が確定するまで、フェーズ 2 に進んではいけません。
必須入力(提供必須)
| 入力 | 必須? | ゲートの動作 |
|---|---|---|
| 名前 | はい | 次のように質問します:「エージェント名は何にしますか?」(1~256 文字)。提供されない場合は停止します。 |
| 説明 | はい | 次のように質問します:「エージェントにはどのような説明を付けますか?」(最大 2048 文字)。提供されない場合は停止します。 |
| サービス | はい | 次のように質問します:「公開するサービスの種類は何ですか?」続けて、少なくとも 1 つのサービスについてすべての詳細を収集します。提供されない場合は停止します。 |
任意の入力項目(明示的に指定するか、明示的にスキップする必要があります)
任意の項目ごとに、設定するかどうかを必ずユーザーに確認してください。ユーザーが明示的にskip(または同等の表現)と言った場合に限り、省略として扱ってください。
| 入力項目 | 必須? | 確認する内容 |
|---|---|---|
| Image | いいえ | 「画像 URL(アバター/ロゴ)を含めますか?含める場合は貼り付けてください。含めない場合は「skip」と入力してください。」 |
| x402Support | いいえ | 「エージェントは x402 決済に対応していますか?(true/false)または「skip」と入力してください。」 |
| active | いいえ | 「エージェントをアクティブとしてマークしますか?(true/false)または「skip」と入力してください。」 |
| supportedTrust | いいえ | 「どの信頼モデルを記載しますか?(例:reputation、ERC-8004、crypto-economic、tee-attestation)または「skip」と入力してください。」 |
Owner: 所有者のアドレスをユーザーに尋ねてはいけません。所有者は常に署名者(PRIVATE_KEYを保持するウォレット)から導出されます。スクリプトが自動的に設定します。API は、ミント後に同じウォレットでドキュメントを更新できるよう、ドキュメントの所有者が署名者と一致することを要求します。
秘密鍵/資金に関する確認(登録の実行前に必ず解決すること)
-
登録手数料: Base Mainnet(デフォルト):0.0025 ETH。Base Sepolia:0.001 ETH。
-
ウォレットにはガス代に十分な ETH も必要です(メインネットでは合計約 0.003 ETH を推奨します)。
-
秘密鍵: 登録にはウォレットが必要です。次のいずれかをユーザーに確認してください。
- 「
PRIVATE_KEYはすでに環境変数/OpenClaw の設定にあります」 - 「この実行時に
PRIVATE_KEYを提供します」
- 「
-
秘密鍵をファイルに書き込んではいけません。秘密鍵をそのまま表示してはいけません。
ユーザーがPRIVATE_KEYの提供方法を確認しない場合は、そこで停止してください。
フェーズ 2 — 検証と要約(まだファイルを作成しない)
必須項目がすべて指定され(任意項目も指定済み、または明示的にスキップ済みになり)次第、次の手順を実行します。
-
「Agent JSON Structure」の完全な構造を使用して、メモリ上に JSON オブジェクトを構築します。
-
次の項目を検証します。
nameが存在し、1~256文字であるdescriptionが存在し、2048文字以下であるservicesに少なくとも1項目がある- 各サービスが、そのタイプ固有の形式に一致している
-
書き込む内容の簡潔な要約(名前、説明の文字数、サービス一覧、チェーンの選択、手数料)を提示します。
-
拒否されるまで先に進まない確認質問で、明示的な承認を求めます。 「この内容で
agent.jsonを書き込むことを承認しますか?(yes/no)」 ユーザーがyesと言わない場合は、そこで停止してください。
フェーズ 3 — ファイルの作成と登録の実行(承認後のみ)
ユーザーが明示的に承認した場合に限り、次の手順を実行します。
-
JSON をファイル(例:
agent.json)に書き込みます。 -
最終的な明示的許可を求めます。 「今すぐオンチェーン登録を実行しますか?(yes/no)」 yesでない場合は、そこで停止してください。
-
登録を実行します。
- Base Mainnet(デフォルト):
npx tsx ./scripts/zscore.ts register --json agent.json - Base Sepolia:
npx tsx ./scripts/zscore.ts register --json agent.json --chain 84532
- Base Mainnet(デフォルト):
すべての確認要件が満たされ、次の両方についてユーザーが承認するまで、register コマンドを実行してはいけません。
- JSON ファイルの書き込み
- オンチェーン登録の実行
エージェント JSON 構造(ERC-8004 registration-v1)
登録には JSON ファイルのみ使用できます。ユーザー入力を収集してファイルを作成する際は、以下の完全な構造を使用してください。最小限の構造をデフォルトとして使用しないでください。
完全な JSON(MCP + A2A + OASF + web + x402):
{
"name": "DataAnalyst Pro",
"description": "Enterprise-grade blockchain data analysis agent. Performs on-chain forensics, wallet profiling, and transaction pattern detection.",
"image": "https://cdn.example.com/agents/analyst.png",
"services": [
{
"name": "MCP",
"endpoint": "https://api.dataanalyst.ai/mcp",
"version": "2025-06-18",
"mcpTools": ["analyze_wallet", "trace_transactions", "detect_anomalies"],
"capabilities": []
},
{
"name": "A2A",
"endpoint": "https://api.dataanalyst.ai/.well-known/agent-card.json",
"version": "0.3.0",
"a2aSkills": ["analytical_skills/data_analysis/blockchain_analysis"]
},
{
"name": "OASF",
"endpoint": "https://github.com/agntcy/oasf/",
"version": "0.8.0",
"skills": ["analytical_skills/data_analysis/blockchain_analysis"],
"domains": ["technology/blockchain"]
},
{
"name": "web",
"endpoint": "https://dataanalyst.ai"
}
],
"x402Support": true,
"active": true,
"supportedTrust": ["reputation", "ERC-8004"]
}
すべてのフィールド:
| フィールド | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
name | string | はい | — | エージェント名(1~256 文字) |
description | string | はい | — | エージェントの機能(最大 2048 文字) |
image | string | いいえ | 指定がない場合は省略 | アバター URL(HTTPS、IPFS、または Arweave) |
services | array | はい | — | サービスのエンドポイント(1~64 項目。下記参照) |
x402Support | boolean | いいえ | 指定がない場合は省略 | x402 決済プロトコルをサポートするかどうか |
active | boolean | いいえ | 指定がない場合は省略 | エージェントがリクエストを積極的に受け付けているかどうか |
supportedTrust | string[] | いいえ | 指定がない場合は省略 | 信頼モデル:"reputation"、"crypto-economic"、"tee-attestation"、"ERC-8004" |
owner | string | いいえ | 署名者のアドレス | 署名者から常に設定します(PRIVATE_KEY)。ユーザーに尋ねないでください。API でミント後に更新できるよう、スクリプトが設定します。 |
サービスの種類:
name | endpoint | 追加フィールド |
|---|---|---|
"web" | ウェブサイト URL | — |
"MCP" | MCP サーバー URL | version、mcpTools[]、mcpPrompts[]、mcpResources[]、capabilities[] |
"A2A" | エージェントカード URL(/.well-known/agent-card.json) | version、a2aSkills[] |
"OASF" | OASF リポジトリ URL | version、skills[]、domains[] |
| カスタム | 任意の URL | description |
コマンド
/zscore register --json <file>
JSON ファイルのみを使用して、新しいエージェントを登録します。フラグを使った登録(--name/--description/--endpoint)はできません。ホストされたエージェント URI を作成し、NFT をオンチェーンでミントして、URI を実際の agentId で更新します。
/zscore register --json agent.json
/zscore register --json agent.json --chain 84532
必須の承認手順(必ず順番どおりに実行してください):
- 必須入力を収集します:name、description、タイプ固有のフィールドをすべて含むサービスを少なくとも 1 つ、および
PRIVATE_KEYの提供方法を確認します。 - 各オプションフィールドについて、任意の入力または明示的な「スキップ」の決定を収集します。
- 書き込む正確な JSON を検証し、要約します。
agent.jsonを書き込むことについて、明示的な承認(はい/いいえ)を得ます。agent.jsonを書き込みます。- オンチェーンで登録することについて、明示的な承認(はい/いいえ)を得ます。
- 登録コマンドを実行します。
SDK は type、agentId: 0 のプレースホルダーを含む registrations、および不足しているオプションフィールドのデフォルト値を自動的に追加します。ミント後、ドキュメントを実際の agentId で更新します。
/zscore read <agentId>
エージェントのオンチェーンデータ(所有者、URI、ウォレット、名前、サービス)を読み取ります。
/zscore read 16
実行方法:npx tsx ./scripts/zscore.ts read 16
/zscore fee
現在の登録手数料と、登録が受け付けられているかを確認します。
/zscore fee
実行方法:npx tsx ./scripts/zscore.ts fee
/zscore set-metadata <agentId> --key <key> --value <value>
エージェントにカスタムメタデータを設定します。呼び出せるのは所有者のみです。
/zscore set-metadata 16 --key "category" --value "trading"
PRIVATE_KEY が必要です。
実行方法:npx tsx ./scripts/zscore.ts set-metadata 16 --key "category" --value "trading"
/zscore unset-wallet <agentId>
エージェントのウォレットをクリアします。呼び出せるのは所有者のみです。
/zscore unset-wallet 16
PRIVATE_KEY が必要です。
実行方法:npx tsx ./scripts/zscore.ts unset-wallet 16
セットアップ
読み取り専用(セットアップ不要)
read と fee は、プライベートキーなしで動作します。
ウォレットを使用(登録と書き込み用)
OpenClaw の設定(~/.openclaw/openclaw.json)に追加します。
{
"skills": {
"entries": {
"zscore": {
"enabled": true,
"env": {
"PRIVATE_KEY": "0xYourFundedPrivateKey"
}
}
}
}
}
任意の環境変数:
RPC_URL— デフォルトの RPC を上書きしますCHAIN_ID— チェーンを上書きします(デフォルト:Base Mainnet の8453。Base Sepolia を使用する場合は84532)
コントラクト情報
Base Mainnet(デフォルト、chainId 8453)
- Identity Registry:
0xFfE9395fa761e52DBC077a2e7Fd84f77e8abCc41 - Reputation Registry:
0x187d72a58b3BF4De6432958fc36CE569Fb15C237 - 登録手数料: 0.0025 ETH
- RPC: https://mainnet.base.org
Base Sepolia(テストネット、chainId 84532)
-
Identity Registry:
0xF0682549516A4BA09803cCa55140AfBC4e5ed2E0 -
Reputation Registry:
0xaAC7557475023AEB581ECc8bD6886d1742382421 -
登録手数料: 0.001 ETH
-
ソース:
zscore
仕組み
- register は、Agent URI API を介してホストされた JSON ドキュメント(ERC-8004 registration-v1 スキーマ)を作成し、手数料を支払って Identity Registry 上で NFT をミントした後、実際の agentId でドキュメントを更新します。
- read は、オンチェーンコントラクトから所有者、tokenURI、agentWallet を照会し、その後 URI の JSON を取得して解析します。
- fee は、コントラクトから現在の
registrationFee()とregistrationEnabled()を読み取ります。 - set-metadata は、コントラクト上で
setMetadata(agentId, key, value)を呼び出します。 - unset-wallet は、コントラクト上で
unsetAgentWallet(agentId)を呼び出します。