✓ Verified 💻 Development ✓ Enhanced Data

Zeruai

Register agents on the Zeru ERC-8004 Identity Registry, manage wallets and metadata, and read on-cha

Rating
4.1 (213 reviews)
Downloads
997 downloads
Version
1.0.0

Overview

Register agents on the Zeru ERC-8004 Identity Registry, manage wallets and metadata, and read on-chain state.

Complete Documentation

View Source →

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:

bash
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):

json
{
  "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):

json
{
  "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
namestringYesAgent name (1–256 chars)
descriptionstringYesWhat the agent does (max 2048 chars)
imagestringNoplaceholderAvatar URL (HTTPS, IPFS, or Arweave)
servicesarrayYesService endpoints (1–64 items, see below)
x402SupportbooleanNofalseSupports x402 payment protocol
activebooleanNotrueAgent is actively accepting requests
supportedTruststring[]NoTrust 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

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.

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

Steps to register:

  • Create a JSON file following the structure above (e.g. agent.json)
  • 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 --description --endpoint

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

text
/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

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

text
/zeruai read 16

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

/zeruai fee

Check current registration fee and whether registration is open.

text
/zeruai fee

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

/zeruai set-metadata --key --value

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

text
/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

Clear the agent wallet. Only the owner can call.

text
/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):

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

  • 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.
  • read queries the on-chain contract for owner, tokenURI, and agentWallet, then fetches and parses the URI JSON.
  • fee reads the current registrationFee() and registrationEnabled() from the contract.
  • set-metadata calls setMetadata(agentId, key, value) on the contract.
  • unset-wallet calls unsetAgentWallet(agentId) on the contract.

Installation

Terminal bash

openclaw install zeruai
    
Copied!

💻Code Examples

cd {baseDir} && npm install

cd-basedir--npm-install.txt
## 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):**

}

.txt
**All fields:**

| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `name` | string | Yes | — | Agent name (1–256 chars) |
| `description` | string | Yes | — | What the agent does (max 2048 chars) |
| `image` | string | No | placeholder | Avatar URL (HTTPS, IPFS, or Arweave) |
| `services` | array | Yes | — | Service endpoints (1–64 items, see below) |
| `x402Support` | boolean | No | `false` | Supports x402 payment protocol |
| `active` | boolean | No | `true` | Agent is actively accepting requests |
| `supportedTrust` | string[] | No | — | Trust models: `"reputation"`, `"crypto-economic"`, `"tee-attestation"`, `"ERC-8004"` |
| `owner` | string | No | signer address | Owner 0x address (auto-set from PRIVATE_KEY) |

**Service types:**

| `name` | `endpoint` | Extra fields |
|--------|-----------|--------------|
| `"web"` | Website URL | — |
| `"MCP"` | MCP server URL | `version`, `mcpTools[]`, `mcpPrompts[]`, `mcpResources[]`, `capabilities[]` |
| `"A2A"` | Agent card URL (`/.well-known/agent-card.json`) | `version`, `a2aSkills[]` |
| `"OASF"` | OASF repo URL | `version`, `skills[]`, `domains[]` |
| `"agentWallet"` | CAIP-10 address (`eip155:{chainId}:{address}`) | — |
| `"ENS"` | ENS name (e.g. `myagent.eth`) | — |
| `"email"` | Email address | — |
| custom | Any URL | `description` |

## 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 --chain 84532

zeruai-register---json-agentjson---chain-84532.txt
**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 "Test Bot" --description "Testing" --endpoint "https://test.com" --chain 84532

zeruai-register---name-test-bot---description-testing---endpoint-httpstestcom---chain-84532.txt
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

zeruai-read-16.txt
To run: `npx tsx {baseDir}/scripts/zeru.ts read 16`

### `/zeruai fee`

Check current registration fee and whether registration is open.

/zeruai fee

zeruai-fee.txt
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"

zeruai-set-metadata-16---key-category---value-trading.txt
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

zeruai-unset-wallet-16.txt
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`):
example.json
{
  "name": "My AI Agent",
  "description": "A helpful AI agent that does X",
  "services": [
    { "name": "web", "endpoint": "https://myagent.example.com" }
  ]
}
example.json
{
  "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"]
}

Tags

#coding_agents-and-ides #data

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author elitex45
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install zeruai