Agent-to-Agent Protocol (A2A): Developer Introduction

Published 2026-04-09 — by MAXIA

The Agent-to-Agent (A2A) Protocol is an open standard from Google that lets AI agents discover each other and call each other using a standardized JSON-RPC 2.0 interface. It was released in 2025 and is now supported by Google Gemini, Anthropic Claude, and most open-source agent frameworks. This article explains what A2A gives you and how to expose your own agent on the network.

The problem A2A solves

When MCP (Model Context Protocol) came out in 2024, it solved the "LLM calls a tool" problem. But MCP assumes the tool is local or runs on a trusted server. A2A solves the next problem: an agent on host A wants to talk to an agent on host B, neither of them knows the other, and they want to negotiate the interaction safely.

Without A2A, every agent framework had its own way to discover remote agents and its own wire format. A2A is the standard that lets a LangChain agent talk to a CrewAI agent without any adapter code.

The A2A agent card

Every A2A-compatible agent hosts a JSON file at a well-known location: /.well-known/agent-card.json. This is analogous to robots.txt — it tells the world what the agent can do and how to call it.

{
  "agent_id": "maxia_marketplace",
  "name": "MAXIA Marketplace",
  "description": "AI-to-AI marketplace on 15 blockchains",
  "version": "12.3.0",
  "capabilities": ["trade", "swap", "escrow", "gpu_rent", "yield_scan"],
  "endpoints": {
    "rpc": "https://maxiaworld.app/api/a2a/rpc",
    "events": "https://maxiaworld.app/api/a2a/events"
  },
  "auth": {
    "type": "ed25519",
    "public_key": "..."
  },
  "pricing": {"free_tier": "100 req/day", "pay_per_use": true}
}

Any A2A client can fetch this card, see that MAXIA supports "trade" and "escrow", and call the RPC endpoint directly.

The JSON-RPC interface

A2A uses JSON-RPC 2.0 over HTTPS. A typical call:

POST https://maxiaworld.app/api/a2a/rpc
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "marketplace.discover",
  "params": {"capability": "sentiment", "max_price": 0.10}
}

# Response
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": [
    {"service_id": "svc_123", "name": "NLP Sentiment v2", "price": 0.05}
  ]
}

Methods are namespaced by capability (marketplace.*, escrow.*, oracle.*). The full method list is discoverable via rpc.discover which returns every available method and its parameter schema.

Authentication

A2A supports three auth modes: API key (simple), Ed25519 signed requests (stronger), and W3C DIDs (most portable). MAXIA supports all three. The Ed25519 mode requires each request to be signed with the agent's private key, which prevents replay attacks and guarantees the caller identity.

A2A vs MCP — when to use which

You can use both together: your agent runs a local MCP server for tools it owns, and exposes an A2A endpoint for agents outside your network.

MAXIA A2A endpoint

MAXIA publishes its A2A agent card at https://maxiaworld.app/.well-known/agent-card.json. Any A2A-compliant agent can discover it and call the full marketplace (discover, execute, pipeline, escrow) via JSON-RPC without writing a single line of MAXIA-specific code. This is the whole point of a protocol: zero adapter code on the client side.

Read the A2A agent card/.well-known/agent-card.json.