erc-8004
SKILL.md
ERC-8004: Trustless Agents
Register your AI agent on Ethereum mainnet with a verifiable on-chain identity, making it discoverable and enabling trust signals.
What is ERC-8004?
ERC-8004 is an Ethereum standard for trustless agent identity and reputation:
- Identity Registry - ERC-721 based agent IDs (your agent gets an NFT!)
- Reputation Registry - Feedback and trust signals from other agents/users
- Validation Registry - Third-party verification of agent work
Website: https://www.8004.org Spec: https://eips.ethereum.org/EIPS/eip-8004
Contract Addresses
| Chain | Identity Registry | Reputation Registry |
|---|---|---|
| Ethereum Mainnet | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 |
0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 |
| Sepolia Testnet | 0x8004A818BFB912233c491871b3d84c89A494BD9e |
0x8004B663056A597Dffe9eCcC1965A193B7388713 |
Quick Start
1. Register Your Agent
# Full registration (creates profile, uploads to IPFS, registers on-chain)
./scripts/register.sh
# Or with custom values
NAME="My Agent" \
DESCRIPTION="An AI agent that does cool stuff" \
IMAGE="https://example.com/avatar.png" \
./scripts/register.sh
2. Bridge ETH to Mainnet (if needed)
# Bridge ETH from Base to Ethereum mainnet
./scripts/bridge-to-mainnet.sh 0.01
3. Update Agent Profile
# Update your agent's registration file
./scripts/update-profile.sh <agent-id> <new-ipfs-uri>
Environment Variables
| Variable | Description | Required |
|---|---|---|
PINATA_JWT |
Pinata API JWT for IPFS uploads | No (only for IPFS) |
AGENT_NAME |
Agent display name | No (defaults to wallet ENS or address) |
AGENT_DESCRIPTION |
Agent description | No |
AGENT_IMAGE |
Avatar URL | No |
Registration Options
Option 1: Use 8004.org frontend (easiest) Visit https://www.8004.org and register through the UI — handles IPFS automatically.
Option 2: HTTP URL (no IPFS needed) Host your registration JSON at any URL:
REGISTRATION_URL="https://myagent.xyz/agent.json" ./scripts/register-http.sh
Option 3: IPFS via Pinata
PINATA_JWT="your-jwt" ./scripts/register.sh
Option 4: Data URI (fully on-chain) Encode your registration as base64 — no external hosting needed:
./scripts/register-onchain.sh
Registration File Format
Your agent's registration file (stored on IPFS) follows this structure:
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "My Agent",
"description": "An AI assistant for various tasks",
"image": "https://example.com/avatar.png",
"services": [
{
"name": "web",
"endpoint": "https://myagent.xyz/"
},
{
"name": "A2A",
"endpoint": "https://myagent.xyz/.well-known/agent-card.json",
"version": "0.3.0"
}
],
"x402Support": false,
"active": true,
"registrations": [
{
"agentId": 123,
"agentRegistry": "eip155:1:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432"
}
],
"supportedTrust": ["reputation"]
}
Workflow
- Bridge ETH (if needed) - Use Bankr to bridge ETH from Base/L2 to mainnet
- Create Profile - Generate a registration JSON file with agent info
- Upload to IPFS - Pin the file via Pinata (or other provider)
- Register On-Chain - Call
register(agentURI)on the Identity Registry - Update Profile - Set metadata, wallet, or update URI as needed
Costs
- Gas:
100-200k gas for registration ($5-20 depending on gas prices) - IPFS: Free tier available on Pinata (1GB)
Using the SDK
For more advanced usage, install the Agent0 SDK:
npm install agent0-sdk
import { SDK } from 'agent0-sdk';
const sdk = new SDK({
chainId: 1, // Ethereum Mainnet
rpcUrl: process.env.ETH_RPC_URL,
privateKey: process.env.PRIVATE_KEY,
ipfs: 'pinata',
pinataJwt: process.env.PINATA_JWT
});
const agent = sdk.createAgent('My Agent', 'Description', 'https://image.url');
const result = await agent.registerIPFS();
console.log(`Registered: Agent ID ${result.agentId}`);
Links
Weekly Installs
65
Repository
bankrbot/openclaw-skillsFirst Seen
Feb 2, 2026
Security Audits
Installed on
openclaw64
opencode47
replit46
claude-code46
codex41
gemini-cli39