Skip to content

Real-World Agent Metadata Examples

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

json
{
  "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

json
{
  "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 attributes object for extended data
  • Additional trust models possible
  • Storage: HTTP(S) API endpoint

Parser Considerations:

  • Accept attributes as custom extension
  • Unknown fields should be preserved (forward compatibility)

Pattern 3: Non-Standard Data URI ​

Prevalence: Low-medium
Source: Various implementations

json
{
  "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)

json
{
  "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 ​

ObservedValid?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 ​

FormatExampleNotes
HTTPShttps://example.com/img.pngCommon, mutable
IPFSipfs://Qm...Content-addressed, immutable
Data URIdata:image/png;base64,...Inline, on-chain
Relative/uploads/avatar.jpgRequires base URL resolution

Trust Model Values ​

ValuePrevalenceDescription
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:

json
{
  "agent_name": "MyAgent",
  "agent_description": "Does things",
  "avatar_url": "https://...",
  "api_endpoint": "https://..."
}

ERC-8004 Format:

json
{
  "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 ​