ERC-8004 agents can advertise multiple service endpoints. This guide covers all 7 service types, when to use each, and how Pinata fits in.Documentation Index
Fetch the complete documentation index at: https://docs.pinata.cloud/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Services are listed in theservices[] array of your agent card. Each service has:
name— Service type identifier (required)endpoint— Where to reach the service (required)version— Protocol version (recommended)
Web
Purpose: Agent’s public website or landing page.- Must be HTTPS
- Should be human-readable
MCP (Model Context Protocol)
Purpose: Expose tools, prompts, and resources to LLM applications.- Must be HTTPS
- Implements MCP server protocol
- Version should match MCP spec date
A2A (Agent-to-Agent)
Purpose: Direct communication between agents via the A2A protocol.- Must be HTTPS
- Points to A2A agent card (often at
.well-known/agent-card.json) - Implements A2A protocol for task lifecycle
OASF (Open Agent Services Framework)
Purpose: Standardized skills and domain classification.- Can be IPFS or HTTPS
- Optional
skills[]anddomains[]arrays for classification
Use Pinata for OASF manifests. OASF manifests are static JSON documents — perfect for IPFS. Upload via Pinata and use the CID as your endpoint.
ENS (Ethereum Name Service)
Purpose: Human-readable name for your agent.- Must be a valid
.ethname - You should control the ENS name
DID (Decentralized Identifier)
Purpose: W3C-standard decentralized identity.did:web:domain.com— Web-based DIDdid:ethr:0x...— Ethereum-based DIDdid:key:z...— Key-based DID
Service Selection Guide
| If your agent… | Include these services |
|---|---|
| Has a landing page | web |
| Provides tools to LLMs | MCP |
| Talks to other agents | A2A |
| Uses OASF taxonomy | OASF |
| Has an ENS name | ENS |
| Has a DID | DID |
| Needs human contact | email |
web and one protocol endpoint (MCP or A2A).
Using Pinata with ERC-8004
Pinata handles IPFS storage for several parts of your agent registration. The ERC-8004 spec explicitly recommends IPFS: “we suggest using IPFS for full data”Agent URI (Token URI)
The most important use — your agent’s identity document lives on IPFS, making it censorship-resistant and permanently verifiable.Agent Image
The agent’s avatar. Images don’t change often, making them perfect for content-addressing.OASF Manifests
Static skill/domain definitions are ideal for IPFS:Reputation Feedback
When storing feedback details on IPFS, thefeedbackHash parameter is optional because the CID already guarantees integrity:
.well-known via IPFS Gateway
Serve your domain verification file from IPFS using a Cloudflare Worker:About agentWallet (On-Chain Metadata)
Payment wallet is not a service endpoint — it’s on-chain metadata managed by the Identity Registry contract. How it works:- When you register,
agentWalletis initially set to your owner address - To change it, call
setAgentWallet()with an EIP-712 signature (EOA) or ERC-1271 signature (smart contract wallet) - When the agent NFT is transferred,
agentWalletis automatically cleared