mcpField
E
erc-8004

erc-8004

github.com/tenequm開発4063 回インストール1 週間前に更新
リポジトリ

erc-8004 について

erc-8004は、組織を越えたAIエージェントのオンチェーン発見と連携を定めるERC-8004草案EIPを扱うスキルです。3種類のレジストリ、Agent0 TypeScript SDK、OASFによる分類を説明します。

主な機能

  1. 01エージェントのオンチェーンID登録
  2. 02能力や信頼条件による検索
  3. 03署名付きフィードバックの送信
  4. 043種類のスマートコントラクトレジストリ
  5. 05OASFのスキルとドメインによる分類

活用シーン

  1. 01AIエージェントのオンチェーンID作成
  2. 02MCPエンドポイントを持つエージェントの発見
  3. 03エージェント評価システムの構築
  4. 04ERC-8004コントラクトやSDKの統合

MCP 対応

エージェント登録ファイルでMCPエンドポイントとツールを公開する方法や、Agent0 SDKでMCP対応エージェントを検索する方法を説明します。

インストール

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

$npx skills add https://github.com/tenequm/skills --skill erc-8004

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

同梱ファイル

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

LICENSE.txt
references/
contracts.md
oasf-taxonomy.md
registration.md
reputation.md
sdk-typescript.md
search-discovery.md
spec.md

詳細

ERC-8004:トラストレスなエージェント

ERC-8004は、事前の信頼関係がなくても、組織の垣根を越えてAIエージェントを発見、選択し、やり取りするためのDraft EIPです。任意のEVMチェーン上にチェーンごとのシングルトンとしてデプロイされる、3つのオンチェーンレジストリを定義します。

著者: Marco De Rossi (MetaMask)、Davide Crapis (EF)、Jordan Ellis (Google)、Erik Reppel (Coinbase)

仕様全文: references/spec.md

このスキルの使用場面

  • AIエージェントをオンチェーンに登録する(ERC-721 ID)
  • エージェントの評判/フィードバックシステムを構築またはクエリする
  • 能力、信頼モデル、エンドポイントに基づいてエージェントを検索、発見する
  • Agent0 TypeScript SDK(agent0-sdk)を使用する
  • ERC-8004スマートコントラクトとの連携を実装する
  • エージェントウォレット、MCP/A2Aエンドポイント、またはOASFタクソノミーを設定する

コアアーキテクチャ

それぞれUUPSアップグレード可能なシングルトンとしてデプロイされる、3つの軽量レジストリです。

レジストリ目的コントラクト
IdentityエージェントIDと登録ファイル用のERC-721 NFTIdentityRegistryUpgradeable
Reputation署名付き固定小数点フィードバックシグナル+オフチェーンの詳細ファイルReputationRegistryUpgradeable
Validation第三者バリデーターによる証明(ステーク、zkML、TEE)ValidationRegistryUpgradeable

エージェントID = agentRegistry(文字列 eip155:{chainId}:{contractAddress})+ agentId(ERC-721のtokenId)。

各エージェントのagentURIはJSON登録ファイルを参照し、名前、説明、エンドポイント(MCP、A2A、ENS、DID、ウォレット)、OASFスキル/ドメイン、信頼モデル、x402のサポートを公開します。

参照: コントラクトのインターフェースとアドレスの全容はreferences/contracts.mdをご覧ください。

Agent0 SDK(TypeScript)を使ったクイックスタート

npm install agent0-sdk
エージェントを登録する

RPC_URL、PRIVATE_KEY、PINATA_JWTは、このスキルのmetadata.openclaw.envVarsで宣言されています。開発には使い捨てのテストネットキーを使用してください。メインネットで操作する場合は、ハードウェアウォレットまたは権限を限定した署名者を使用してください。

import { SDK } from 'agent0-sdk';

const sdk = new SDK({
  chainId: 84532,  // Base Sepolia
  rpcUrl: process.env.RPC_URL,
  privateKey: process.env.PRIVATE_KEY,
  ipfs: 'pinata',
  pinataJwt: process.env.PINATA_JWT,
});

const agent = sdk.createAgent(
  'MyAgent',
  'An AI agent that analyzes crypto markets',
  'https://example.com/agent-image.png'
);

// Configure endpoints and capabilities
await agent.setMCP('https://mcp.example.com', '2025-06-18', true);  // auto-fetches tools
await agent.setA2A('https://example.com/.well-known/agent-card.json', '0.3.0', true);
agent.setENS('myagent.eth');
agent.setActive(true);
agent.setX402Support(true);
agent.setTrust(true, false, false);  // reputation only

// Add OASF taxonomy
agent.addSkill('natural_language_processing/natural_language_generation/summarization', true);
agent.addDomain('finance_and_business/investment_services', true);

// Register on-chain (mints NFT + uploads to IPFS).
// Sends a real transaction signed with PRIVATE_KEY - confirm chainId, signer, and balance before running.
const tx = await agent.registerIPFS();
const { result } = await tx.waitConfirmed();
console.log(`Registered: ${result.agentId}`);  // e.g. "84532:42"
エージェントを検索する
const sdk = new SDK({ chainId: 84532, rpcUrl: process.env.RPC_URL });

// Search by capabilities
const agents = await sdk.searchAgents({
  hasMCP: true,
  active: true,
  x402support: true,
  mcpTools: ['financial_analyzer'],
  supportedTrust: ['reputation'],
});

// Get a specific agent
const agent = await sdk.getAgent('84532:42');

// Semantic search
const results = await sdk.searchAgents(
  { keyword: 'crypto market analysis' },
  { sort: ['semanticScore:desc'] }
);
フィードバックを送る
// Prepare optional off-chain feedback file
const feedbackFile = await sdk.prepareFeedbackFile({
  text: 'Accurate market analysis',
  capability: 'tools',
  name: 'financial_analyzer',
  proofOfPayment: { txHash: '0x...', chainId: '8453', fromAddress: '0x...', toAddress: '0x...' },
});

// Submit feedback (value=85 out of 100). On-chain tx; same caveats as `registerIPFS()` above.
const tx = await sdk.giveFeedback('84532:42', 85, 'starred', '', '', feedbackFile);
await tx.waitConfirmed();

// Read reputation summary
const summary = await sdk.getReputationSummary('84532:42');
console.log(`Average: ${summary.averageValue}, Count: ${summary.count}`);

参照: SDK APIの全リファレンスはreferences/sdk-typescript.mdをご覧ください。

登録ファイルの形式

すべてのエージェントのagentURIは、次のJSON構造を参照します。

{
  "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
  "name": "MyAgent",
  "description": "What it does, pricing, interaction methods",
  "image": "https://example.com/agent.png",
  "services": [
    { "name": "MCP", "endpoint": "https://mcp.example.com", "version": "2025-06-18", "mcpTools": ["tool1"] },
    { "name": "A2A", "endpoint": "https://example.com/.well-known/agent-card.json", "version": "0.3.0" },
    { "name": "OASF", "endpoint": "https://github.com/agntcy/oasf/", "version": "v0.8.0",
      "skills": ["natural_language_processing/summarization"],
      "domains": ["finance_and_business/investment_services"] },
    { "name": "ENS", "endpoint": "myagent.eth", "version": "v1" },
    { "name": "agentWallet", "endpoint": "eip155:8453:0x..." }
  ],
  "registrations": [
    { "agentId": 42, "agentRegistry": "eip155:84532:0x8004A818BFB912233c491871b3d84c89A494BD9e" }
  ],
  "supportedTrust": ["reputation", "crypto-economic", "tee-attestation"],
  "active": true,
  "x402Support": true
}

registrationsフィールドは、双方向の暗号学的リンクを作成します。NFTがこのファイルを参照し、このファイルがNFTを参照します。これにより、/.well-known/agent-registration.jsonを使ったエンドポイントドメインの検証が可能になります。

参照: ベストプラクティス(4つの黄金律)とフィールドの完全なリファレンスはreferences/registration.mdをご覧ください。

コントラクトアドレス

すべてのレジストリは、CREATE2(SAFE Singleton Factory)を通じて決定論的なバニティアドレスにデプロイされます。

メインネット(Ethereum、Base、Polygon、Arbitrum、Optimismなど)
レジストリアドレス
Identity0x8004A169FB4a3325136EB29fA0ceB6D2e539a432
Reputation0x8004BAa17C55a88189AE136b182e5fdA19dE9b63
Validation0x8004Cb1BF31DAf7788923b405b754f57acEB4272
テストネット(Sepolia、Base Sepoliaなど)
レジストリアドレス
Identity0x8004A818BFB912233c491871b3d84c89A494BD9e
Reputation0x8004B663056A597Dffe9eCcC1965A193B7388713
Validation0x8004Cb1BF31DAf7788923b405b754f57acEB4272

同じプロキシアドレスを使用するチェーン:Ethereum、Base、Arbitrum、Avalanche、Celo、Gnosis、Linea、Mantle、MegaETH、Optimism、Polygon、Scroll、Taiko、Monad、BSC、および各テストネット。

評判システム

フィードバックでは、符号付き固定小数点数を使用します。value(int128)+valueDecimals(uint8、0-18)です。

tag1測定対象例valuevalueDecimals
starred品質 0-10087/100870
reachableエンドポイントの稼働状況(二値)true10
uptime稼働率 %99.77%99772
successRate成功率 %89%890
responseTimeレイテンシー ms560ms5600

Sybil 攻撃対策:getSummary() には空でない clientAddresses 配列が必要です(呼び出し元は信頼できる評価者のリストを指定する必要があります)。自己フィードバックは拒否されます(エージェントの所有者/運営者は、自身のエージェントにフィードバックを送信できません)。

参照: フィードバックシステム、オフチェーンファイル形式、集計の詳細については、references/reputation.md を参照してください。

OASF 分類体系(v0.8.0)

Open Agentic Schema Framework は、エージェントの分類に使用する標準化されたスキル(136 種類)とドメイン(204 種類)を提供します。

最上位のスキルカテゴリー: natural_language_processing、images_computer_vision、audio、analytical_skills、multi_modal、agent_orchestration、advanced_reasoning_planning、data_engineering、security_privacy、evaluation_monitoring、devops_mlops、governance_compliance、tool_interaction、retrieval_augmented_generation、tabular_text

最上位のドメインカテゴリー: technology、finance_and_business、healthcare、legal、education、life_science、agriculture、energy、environmental_science、government、manufacturing、transportation など。

スラッシュ区切りのパスを使用します:agent.addSkill('natural_language_processing/natural_language_generation/summarization', true)。

主な概念

用語意味
agentRegistryeip155:{chainId}:{contractAddress} - グローバルに一意なレジストリー識別子
agentIdERC-721 tokenId - オンチェーンの数値識別子(SDK での形式:"chainId:tokenId")
agentURIエージェント登録ファイルを指す URI(IPFS/HTTPS)
agentWallet検証済みの支払いアドレス用に予約されたオンチェーンメタデータキー(EIP-712/ERC-1271)
feedbackIndexclientAddress が agentId に送ったフィードバックの 1 始まりのカウンター
supportedTrust配列:"reputation"、"crypto-economic"、"tee-attestation"
x402SupportCoinbase x402 HTTP 決済プロトコルのサポートを示すブール値フラグ
OASFOpen Agentic Schema Framework - エージェントのスキル/ドメインに関する標準化された分類体系
MCPModel Context Protocol - ツール、プロンプト、リソース、補完
A2AAgent2Agent - AgentCard による認証とスキル、タスクのオーケストレーション

リファレンス一覧

リファレンス内容
spec.mdERC-8004 仕様全文(EIP テキスト)
contracts.mdスマートコントラクトのインターフェース、ストレージレイアウト、デプロイ
sdk-typescript.mdAgent0 TypeScript SDK の全 API
registration.md登録ファイル形式、4 つのゴールデンルール、ドメイン検証
reputation.mdフィードバックシステム、オフチェーンファイル、値のエンコード、集計
search-discovery.mdエージェント検索、サブグラフクエリ、マルチチェーン検索
oasf-taxonomy.mdOASF v0.8.0 の分類体系全文:スラッグ付きの全 136 スキルと 204 ドメイン

公式リソース

コメント