mcpField
Z
zscore

zscore

github.com/zerufinanceエージェントワークフロー043 回インストール34 週間前に更新
リポジトリ

zscore について

zscoreは、zScore Identity RegistryでAIエージェントを登録・管理するスキルで、ERC-8004のID情報を公開するユーザー向けです。対話形式の入力確認と個別の承認により、JSON作成とオンチェーン操作を制御します。

主な機能

  1. 01エージェント登録とID NFTの発行
  2. 02オンチェーンのエージェント情報取得
  3. 03登録料と受付状態の確認
  4. 04カスタムメタデータの設定
  5. 05エージェントウォレットの解除

活用シーン

  1. 01Base Mainnetでのエージェント登録
  2. 02Base Sepoliaテストネットでの登録
  3. 03エージェントの所有者とサービス情報の確認
  4. 04所有するエージェントのメタデータやウォレットの更新

MCP 対応

登録情報にMCPサービスのエンドポイント、ツール、プロンプト、リソースを含められます。このスキル自体はID情報の登録と管理を行います。

インストール

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

$npx skills add https://github.com/zerufinance/zscore --skill zscore

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
README.md
package.json
lib/
abi.js
agent-wallet.js
config.js
create-agent-uri.js
errors.js
get-agent.js
index.js
metadata.js
register-agent.js
schema.js
scripts/
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. 検証して要約する(実行予定の内容を提示する)。
  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 — 検証と要約(まだファイルを作成しない)

必須項目がすべて指定され(任意項目も指定済み、または明示的にスキップ済みになり)次第、次の手順を実行します。

  1. 「Agent JSON Structure」の完全な構造を使用して、メモリ上に JSON オブジェクトを構築します。

  2. 次の項目を検証します。

    • nameが存在し、1~256文字である
    • descriptionが存在し、2048文字以下である
    • servicesに少なくとも1項目がある
    • 各サービスが、そのタイプ固有の形式に一致している
  3. 書き込む内容の簡潔な要約(名前、説明の文字数、サービス一覧、チェーンの選択、手数料)を提示します。

  4. 拒否されるまで先に進まない確認質問で、明示的な承認を求めます。 「この内容でagent.jsonを書き込むことを承認しますか?(yes/no)」 ユーザーがyesと言わない場合は、そこで停止してください。

フェーズ 3 — ファイルの作成と登録の実行(承認後のみ)

ユーザーが明示的に承認した場合に限り、次の手順を実行します。

  1. JSON をファイル(例:agent.json)に書き込みます。

  2. 最終的な明示的許可を求めます。 「今すぐオンチェーン登録を実行しますか?(yes/no)」 yesでない場合は、そこで停止してください。

  3. 登録を実行します。

    • Base Mainnet(デフォルト): npx tsx ./scripts/zscore.ts register --json agent.json
    • Base Sepolia: npx tsx ./scripts/zscore.ts register --json agent.json --chain 84532

すべての確認要件が満たされ、次の両方についてユーザーが承認するまで、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"]
}

すべてのフィールド:

フィールド型必須デフォルト説明
namestringはい—エージェント名(1~256 文字)
descriptionstringはい—エージェントの機能(最大 2048 文字)
imagestringいいえ指定がない場合は省略アバター URL(HTTPS、IPFS、または Arweave)
servicesarrayはい—サービスのエンドポイント(1~64 項目。下記参照)
x402Supportbooleanいいえ指定がない場合は省略x402 決済プロトコルをサポートするかどうか
activebooleanいいえ指定がない場合は省略エージェントがリクエストを積極的に受け付けているかどうか
supportedTruststring[]いいえ指定がない場合は省略信頼モデル:"reputation"、"crypto-economic"、"tee-attestation"、"ERC-8004"
ownerstringいいえ署名者のアドレス署名者から常に設定します(PRIVATE_KEY)。ユーザーに尋ねないでください。API でミント後に更新できるよう、スクリプトが設定します。

サービスの種類:

nameendpoint追加フィールド
"web"ウェブサイト URL—
"MCP"MCP サーバー URLversion、mcpTools[]、mcpPrompts[]、mcpResources[]、capabilities[]
"A2A"エージェントカード URL(/.well-known/agent-card.json)version、a2aSkills[]
"OASF"OASF リポジトリ URLversion、skills[]、domains[]
カスタム任意の URLdescription

コマンド

/zscore register --json <file>

JSON ファイルのみを使用して、新しいエージェントを登録します。フラグを使った登録(--name/--description/--endpoint)はできません。ホストされたエージェント URI を作成し、NFT をオンチェーンでミントして、URI を実際の agentId で更新します。

/zscore register --json agent.json
/zscore register --json agent.json --chain 84532

必須の承認手順(必ず順番どおりに実行してください):

  1. 必須入力を収集します:name、description、タイプ固有のフィールドをすべて含むサービスを少なくとも 1 つ、および PRIVATE_KEY の提供方法を確認します。
  2. 各オプションフィールドについて、任意の入力または明示的な「スキップ」の決定を収集します。
  3. 書き込む正確な JSON を検証し、要約します。
  4. agent.json を書き込むことについて、明示的な承認(はい/いいえ)を得ます。
  5. agent.json を書き込みます。
  6. オンチェーンで登録することについて、明示的な承認(はい/いいえ)を得ます。
  7. 登録コマンドを実行します。

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

  • RPC: https://sepolia.base.org

  • ソース: zscore

仕組み

  1. register は、Agent URI API を介してホストされた JSON ドキュメント(ERC-8004 registration-v1 スキーマ)を作成し、手数料を支払って Identity Registry 上で NFT をミントした後、実際の agentId でドキュメントを更新します。
  2. read は、オンチェーンコントラクトから所有者、tokenURI、agentWallet を照会し、その後 URI の JSON を取得して解析します。
  3. fee は、コントラクトから現在の registrationFee() と registrationEnabled() を読み取ります。
  4. set-metadata は、コントラクト上で setMetadata(agentId, key, value) を呼び出します。
  5. unset-wallet は、コントラクト上で unsetAgentWallet(agentId) を呼び出します。

コメント