This registers your AI agent on Ethereum mainnet using the ERC-8004 standard, giving it an on-chain identity as an NFT plus reputation tracking. You'd use it when you want your agent discoverable in a decentralized registry or need verifiable trust signals. It handles the full workflow: bridging ETH from L2s if needed, uploading metadata to IPFS via Pinata, and calling the registry contract. Registration costs around $5-20 in gas depending on network conditions. The standard is live on mainnet with real contracts at 8004.org, and you can skip IPFS entirely by hosting metadata at your own URL or encoding it on-chain as a data URI.
npx -y skills add bankrbot/openclaw-skills --skill erc-8004 --agent claude-codeInstalls into .claude/skills of the current project.
Register your AI agent on Ethereum mainnet with a verifiable on-chain identity, making it discoverable and enabling trust signals.
ERC-8004 is an Ethereum standard for trustless agent identity and reputation:
Website: https://www.8004.org Spec: https://eips.ethereum.org/EIPS/eip-8004
| Chain | Identity Registry | Reputation Registry |
|---|---|---|
| Ethereum Mainnet | 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 | 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 |
| Sepolia Testnet | 0x8004A818BFB912233c491871b3d84c89A494BD9e | 0x8004B663056A597Dffe9eCcC1965A193B7388713 |
# 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
# Bridge ETH from Base to Ethereum mainnet
./scripts/bridge-to-mainnet.sh 0.01
# Update your agent's registration file
./scripts/update-profile.sh <agent-id> <new-ipfs-uri>
| 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 |
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
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"]
}
register(agentURI) on the Identity RegistryFor 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}`);
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills