๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ
ๅฐ้พ™่™พๅฐ้พ™่™พAI
๐Ÿค–

zeruai

Register agents on the Zeru ERC-8004 Identity Registry, manage wallets and metadata, and read on-chain state. Use when an agent needs to register on-chain, check fees, read agent info, set metadata, or manage agent wallets on Base Mainnet or Base Sepolia.

ไธ‹่ฝฝ1.1k
ๆ˜Ÿๆ ‡0
็‰ˆๆœฌ1.0.2
่ฅ้”€ๆŽจๅนฟ
ๅฎ‰ๅ…จ้€š่ฟ‡

ๆŠ€่ƒฝ่ฏดๆ˜Ž


name: zeruai description: Register agents on the Zeru ERC-8004 Identity Registry, manage wallets and metadata, and read on-chain state. Use when an agent needs to register on-chain, check fees, read agent info, set metadata, or manage agent wallets on Base Mainnet or Base Sepolia. user-invocable: true metadata: {"openclaw":{"requires":{"env":["PRIVATE_KEY"],"bins":["node","npx"]},"primaryEnv":"PRIVATE_KEY"}}

Zeru ERC-8004 Identity Registry

Register and manage AI agents on the Zeru Identity Registry. Defaults to Base Mainnet (0.0025 ETH fee). Use --chain 84532 for Base Sepolia testnet.

One-Time Setup

Run once to install dependencies:

cd {baseDir} && npm install

Agent JSON Structure (ERC-8004 registration-v1)

When registering an agent, you provide a JSON file describing the agent. The SDK auto-fills type, registrations, and defaults for x402Support/active/image if omitted.

Minimal JSON (just name + description + one service):

{
  "name": "My AI Agent",
  "description": "A helpful AI agent that does X",
  "services": [
    { "name": "web", "endpoint": "https://myagent.example.com" }
  ]
}

Full JSON (MCP + A2A + OASF + x402 payments):

{
  "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"
    },
    {
      "name": "agentWallet",
      "endpoint": "eip155:8453:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb7"
    }
  ],
  "x402Support": true,
  "active": true,
  "supportedTrust": ["reputation", "ERC-8004"]
}

All fields:

FieldTypeRequiredDefaultDescription
namestringYesโ€”Agent name (1โ€“256 chars)
descriptionstringYesโ€”What the agent does (max 2048 chars)
imagestringNoplaceholderAvatar URL (HTTPS, IPFS, or Arweave)
servicesarrayYesโ€”Service endpoints (1โ€“64 items, see below)
x402SupportbooleanNofalseSupports x402 payment protocol
activebooleanNotrueAgent is actively accepting requests
supportedTruststring[]Noโ€”Trust models: "reputation", "crypto-economic", "tee-attestation", "ERC-8004"
ownerstringNosigner addressOwner 0x address (auto-set from PRIVATE_KEY)

Service types:

nameendpointExtra fields
"web"Website URLโ€”
"MCP"MCP server URLversion, mcpTools[], mcpPrompts[], mcpResources[], capabilities[]
"A2A"Agent card URL (/.well-known/agent-card.json)version, a2aSkills[]
"OASF"OASF repo URLversion, skills[], domains[]
"agentWallet"CAIP-10 address (eip155:{chainId}:{address})โ€”
"ENS"ENS name (e.g. myagent.eth)โ€”
"email"Email addressโ€”
customAny URLdescription

Commands

/zeruai register --json <file>

Register a new agent using a full JSON file (recommended). Creates hosted agent URI, mints NFT on-chain, and updates URI with the real agentId.

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

Steps to register:

  1. Create a JSON file following the structure above (e.g. agent.json)
  2. Run: npx tsx {baseDir}/scripts/zeru.ts register --json agent.json

The SDK automatically adds type, registrations (with agentId: 0 placeholder), and defaults for missing optional fields. After minting, it updates the document with the real agentId.

/zeruai register --name <name> --description <desc> --endpoint <url>

Simple registration (single API endpoint only). For richer agents, use --json instead.

/zeruai register --name "Trading Bot" --description "AI-powered trading agent" --endpoint "https://mybot.com/api"
/zeruai register --name "Data Analyzer" --description "Analyzes datasets" --endpoint "https://analyzer.ai/api" --image "https://example.com/icon.png"
/zeruai register --name "Test Bot" --description "Testing" --endpoint "https://test.com" --chain 84532

Requires PRIVATE_KEY env var. Wallet must have fee + gas (e.g. ~0.003 ETH on mainnet).

To run: npx tsx {baseDir}/scripts/zeru.ts register --name "..." --description "..." --endpoint "..."

/zeruai read <agentId>

Read an agent's on-chain data: owner, URI, wallet, name, services.

/zeruai read 16

To run: npx tsx {baseDir}/scripts/zeru.ts read 16

/zeruai fee

Check current registration fee and whether registration is open.

/zeruai fee

To run: npx tsx {baseDir}/scripts/zeru.ts fee

/zeruai set-metadata <agentId> --key <key> --value <value>

Set custom metadata on an agent. Only the owner can call.

/zeruai set-metadata 16 --key "category" --value "trading"

Requires PRIVATE_KEY.

To run: npx tsx {baseDir}/scripts/zeru.ts set-metadata 16 --key "category" --value "trading"

/zeruai unset-wallet <agentId>

Clear the agent wallet. Only the owner can call.

/zeruai unset-wallet 16

Requires PRIVATE_KEY.

To run: npx tsx {baseDir}/scripts/zeru.ts unset-wallet 16

Setup

Read-Only (no setup needed)

read and fee work without a private key.

With Wallet (for registration and writes)

Add to your OpenClaw config (~/.openclaw/openclaw.json):

{
  "skills": {
    "entries": {
      "zeruai": {
        "enabled": true,
        "env": {
          "PRIVATE_KEY": "0xYourFundedPrivateKey"
        }
      }
    }
  }
}

Optional env:

  • RPC_URL โ€” override default RPC
  • CHAIN_ID โ€” override chain (default: 8453 for Base Mainnet, use 84532 for Base Sepolia)

Contract Info

Base Mainnet (default, chainId 8453)

  • Identity Registry: 0xFfE9395fa761e52DBC077a2e7Fd84f77e8abCc41
  • Reputation Registry: 0x187d72a58b3BF4De6432958fc36CE569Fb15C237
  • Registration Fee: 0.0025 ETH
  • RPC: https://mainnet.base.org

Base Sepolia (testnet, chainId 84532)

  • Identity Registry: 0xF0682549516A4BA09803cCa55140AfBC4e5ed2E0

  • Reputation Registry: 0xaAC7557475023AEB581ECc8bD6886d1742382421

  • Registration Fee: 0.001 ETH

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

  • Source: zeru

How It Works

  1. register creates a hosted JSON document (ERC-8004 registration-v1 schema) via the Agent URI API, mints an NFT on the Identity Registry (paying the fee), then updates the document with the real agentId.
  2. read queries the on-chain contract for owner, tokenURI, and agentWallet, then fetches and parses the URI JSON.
  3. fee reads the current registrationFee() and registrationEnabled() from the contract.
  4. set-metadata calls setMetadata(agentId, key, value) on the contract.
  5. unset-wallet calls unsetAgentWallet(agentId) on the contract.

ๅฆ‚ไฝ•ไฝฟ็”จใ€Œzeruaiใ€๏ผŸ

  1. ๆ‰“ๅผ€ๅฐ้พ™่™พAI๏ผˆWeb ๆˆ– iOS App๏ผ‰
  2. ็‚นๅ‡ปไธŠๆ–นใ€Œ็ซ‹ๅณไฝฟ็”จใ€ๆŒ‰้’ฎ๏ผŒๆˆ–ๅœจๅฏน่ฏๆก†ไธญ่พ“ๅ…ฅไปปๅŠกๆ่ฟฐ
  3. ๅฐ้พ™่™พAI ไผš่‡ชๅŠจๅŒน้…ๅนถ่ฐƒ็”จใ€Œzeruaiใ€ๆŠ€่ƒฝๅฎŒๆˆไปปๅŠก
  4. ็ป“ๆžœๅณๆ—ถๅ‘ˆ็Žฐ๏ผŒๆ”ฏๆŒ็ปง็ปญๅฏน่ฏไผ˜ๅŒ–

็›ธๅ…ณๆŠ€่ƒฝ