Loading...
Loading...
Register AI agents on Ethereum mainnet using ERC-8004 (Trustless Agents). Use when the user wants to register their agent identity on-chain, create an agent profile, claim an agent NFT, set up agent reputation, or make their agent discoverable. Handles bridging ETH to mainnet, IPFS upload, and on-chain registration.
npx skill4agent add bankrbot/openclaw-skills erc-8004| Chain | Identity Registry | Reputation Registry |
|---|---|---|
| Ethereum Mainnet | | |
| Sepolia Testnet | | |
# 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 API JWT for IPFS uploads | No (only for IPFS) |
| Agent display name | No (defaults to wallet ENS or address) |
| Agent description | No |
| Avatar URL | No |
REGISTRATION_URL="https://myagent.xyz/agent.json" ./scripts/register-http.shPINATA_JWT="your-jwt" ./scripts/register.sh./scripts/register-onchain.sh{
"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)npm install agent0-sdkimport { 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}`);