Install
openclaw skills install zeruaiRegister 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.
openclaw skills install zeruaiRegister and manage AI agents on the Zeru Identity Registry. Defaults to Base Mainnet (0.0025 ETH fee). Use --chain 84532 for Base Sepolia testnet.
Run once to install dependencies:
cd {baseDir} && npm install
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:
| 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 |
/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:
agent.json)npx tsx {baseDir}/scripts/zeru.ts register --json agent.jsonThe 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 feeCheck 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
read and fee work without a private key.
Add to your OpenClaw config (~/.openclaw/openclaw.json):
{
"skills": {
"entries": {
"zeruai": {
"enabled": true,
"env": {
"PRIVATE_KEY": "0xYourFundedPrivateKey"
}
}
}
}
}
Optional env:
RPC_URL — override default RPCCHAIN_ID — override chain (default: 8453 for Base Mainnet, use 84532 for Base Sepolia)0xFfE9395fa761e52DBC077a2e7Fd84f77e8abCc410x187d72a58b3BF4De6432958fc36CE569Fb15C237Identity Registry: 0xF0682549516A4BA09803cCa55140AfBC4e5ed2E0
Reputation Registry: 0xaAC7557475023AEB581ECc8bD6886d1742382421
Registration Fee: 0.001 ETH
Source: zeru
registrationFee() and registrationEnabled() from the contract.setMetadata(agentId, key, value) on the contract.unsetAgentWallet(agentId) on the contract.