Description
This document provides examples of agent metadata formats observed in production deployments during the ERC-8004 legacy testnet phase (pre-v1, October-December 2025).
NOTE
This is a non-normative reference document. These patterns are provided for educational purposes and to help implementers understand real-world variations. For the official schema, see Agent Metadata Standard.
[!IMPORTANT]
Field Name Update (Jan 2026): Examples below have been updated to use services instead of endpoints per the official EIP-8004 January 2026 update. Historical deployments may still use the legacy endpoints field name, which parsers should continue to support for backward compatibility.
Data Source
Source: ERC-8004 Legacy Testnet (pre-v1)
Analysis Date: December 2025
Sample Size: 4,725 production agents
See Sources & References for detailed methodology.
Observed Patterns
Pattern 1: SDK Standard Format
Prevalence: High (most compliant agents)
Source: Official SDK implementations
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Agent Name",
"description": "Description...",
"image": "ipfs://CID",
"active": true,
"services": [
{
"name": "A2A",
"version": "0.3.0",
"endpoint": "https://.../.well-known/agent-card.json"
},
{
"name": "agentWallet",
"endpoint": "eip155:11155111:0x..."
}
],
"updatedAt": 1763112328,
"registrations": [
{
"agentId": 696,
"agentRegistry": "eip155:84532:0x..."
}
],
"supportedTrust": [],
"x402Support": true
}Characteristics:
- Minimal, standards-compliant
- SDK-generated
- Storage: IPFS or Data URI (base64)
Pattern 2: Extended Metadata Format
Prevalence: Medium (specific communities)
Source: Various ecosystem implementations
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Agent #12345678",
"description": "Extended agent with custom attributes",
"image": "https://example.com/avatar.jpg",
"services": [
{
"name": "Custom API",
"version": "1.0.0",
"endpoint": "https://api.example.com/v1",
"description": "Custom API endpoint"
},
{
"name": "OASF",
"version": "0.8",
"endpoint": "ipfs://...",
"skills": ["analytical_skills/data_analysis/blockchain_analysis"],
"domains": ["technology/blockchain"]
}
],
"attributes": {
"custom_field_1": "value1",
"custom_field_2": "value2"
},
"registrations": [
{
"agentId": 123,
"agentRegistry": "eip155:84532:0x..."
}
],
"supportedTrust": ["reputation", "crypto-economic"]
}Characteristics:
- Custom
attributesobject for extended data - Additional trust models possible
- Storage: HTTP(S) API endpoint
Parser Considerations:
- Accept
attributesas custom extension - Unknown fields should be preserved (forward compatibility)
Pattern 3: Non-Standard Data URI
Prevalence: Low-medium
Source: Various implementations
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Agent Name",
"description": "Agent description",
"image": "https://example.com/avatar.png",
"services": [
{
"name": "agentWallet",
"endpoint": "eip155:11155111:0x..."
}
],
"registrations": [
{
"agentId": 0,
"agentRegistry": "eip155:11155111:0x..."
}
],
"supportedTrust": ["reputation"]
}Peculiarity: Some agents store this as data:application/json;base64,{...} but the payload is NOT base64-encoded (plain JSON).
Parser Strategy: Detect { or [ at start of "base64" payload, skip base64 decode, parse directly.
Pattern 4: Minimal/Test Agents
Prevalence: Medium (development/testing)
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "Test Agent",
"description": "Minimal test agent",
"image": "https://example.com/test.png",
"services": [],
"registrations": []
}Issues:
- Empty
services(agent not reachable) - Empty
registrations(no on-chain link)
Parser Strategy: Parse successfully, log warnings for missing data.
Common Variations
Version String Formats
| Observed | Valid? | Notes |
|---|---|---|
"0.3.0" | ✓ | A2A semver format |
"0.30" | ✓ | A2A semver (though 0.3.0 preferred) |
"0.8.0" | ✓ | OASF without 'v' prefix |
"v0.8.0" | ✓ | OASF with 'v' prefix (both acceptable) |
"0.8.3" | ✓ | OASF latest 0.8.x |
"2025-06-18" | ✓ | MCP date-based versioning |
"2025-11-25" | ✓ | MCP latest spec (as of Nov 2025) |
"2026-01-29" | ✓ | MCP future spec date |
Image URL Formats
| Format | Example | Notes |
|---|---|---|
| HTTPS | https://example.com/img.png | Common, mutable |
| IPFS | ipfs://Qm... | Content-addressed, immutable |
| Data URI | data:image/png;base64,... | Inline, on-chain |
| Relative | /uploads/avatar.jpg | Requires base URL resolution |
Trust Model Values
| Value | Prevalence | Description |
|---|---|---|
reputation | ~80% | On-chain feedback system |
crypto-economic | ~50% | Stake-based validation |
tee-attestation | ~20% | TEE oracle verification |
social-graph | ~5% | Custom (non-standard) |
Migration from Custom Formats
If you have existing agent metadata in a custom format, here's how to migrate:
Field Mapping Example
Custom Format:
{
"agent_name": "MyAgent",
"agent_description": "Does things",
"avatar_url": "https://...",
"api_endpoint": "https://..."
}ERC-8004 Format:
{
"type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
"name": "MyAgent",
"description": "Does things",
"image": "https://...",
"services": [
{
"name": "MCP",
"endpoint": "https://...",
"version": "2025-06-18"
}
]
}See Also
- Agent Metadata Standard - Official schema definition
- Agent Metadata Parsing Guide - Parser implementation
- Sources & References - Data methodology