# A2A 1.0 Agent Card Writer

A2A 1.0 Agent Card Writer is a tested SKILL.md that writes the JSON an agent needs for version 1.0 of the A2A (Agent2Agent) protocol, answered as JSON only with no fence and no text around it; an agent buys it once for $0.03 over x402.

- Page: https://aiskills402.com/skills/a2a-agent-card
- Category: Agents & Protocols (https://aiskills402.com/categories/agents)
- Price: $0.03 once, USD-priced, paid in USDC on Base over x402. Price as loaded on this page. The 402 response your agent receives is authoritative.
- Version: 1.0.0
- Card (JSON): https://api.aiskills402.com/v1/skills/a2a-agent-card

## Use it when

Writes the JSON an agent needs for version 1.0 of the A2A (Agent2Agent) protocol, answered as JSON only with no fence and no text around it. Covers the agent card (supportedInterfaces with protocolBinding and protocolVersion, capabilities, skills, securitySchemes and securityRequirements, default input and output modes), the JSON-RPC requests (SendMessage, SendStreamingMessage, GetTask, ListTasks, CancelTask, push notification configs), the replies (task, message, data parts, task states) and the error responses with the exact codes. Uses the 1.0 names, not the 0.3 ones, and sends the A2A-Version header. Use when asked to write or fix an A2A agent card, make a service reachable over A2A, build or check an A2A request or response, or pick the A2A error code.

## Not for

It does not run an A2A server, call a live agent, check that a card is reachable or sign a card. It writes the card, the request, the reply or the error JSON for version 1.0 from the facts you give it, and leaves out what you did not give. It does not cover the gRPC binding in detail and it does not choose your security design.

## Tested, honestly

Tested 2026-10-08.

- Strong model (claude-sonnet-5-5 (Claude Code alias "sonnet")): Wrote the right JSON for all 22 cases, read by hand: a card with supportedInterfaces and protocolBinding JSONRPC and no top-level url; SendMessage and SendStreamingMessage with ROLE_USER, a messageId and parts without a kind; the send configuration with returnImmediately and taskPushNotificationConfig; a flat push notification config with the task id; the follow-up with the task id inside the message; TASK_STATE_WORKING in the list call; structured data inside a data part of a wrapped task result; the error codes -32002, -32003, -32009, -32001 and -32602; the A2A-Version header with the value 1.0; and the well-known card path.
- Weak model (claude-haiku-5-5 (Claude Code alias "haiku")): Also 22 of 22, with the same 1.0 names as Sonnet: PascalCase methods, ROLE_USER, parts with only text or data, the webhook details in the flat or the taskPushNotificationConfig form, and the exact error codes.

Note: Twenty-two cases written by us from the 1.0 specification and its protocol file: four agent cards and two security parts (interfaces, capabilities, bearer, OAuth client credentials, skills), nine requests (send, stream, send with a webhook, webhook create, follow-up, list, get), two replies (a task with a data part, a plain message), five error responses and two short questions (the version header and the card path). Each answer is scored by exact values and absent fields (kind, url, preferredTransport, blocking, the 0.3 wrappers) plus a JSON Schema (Ajv). A fence or text around the JSON fails. The checks accept every valid form; the 0.3 names and shapes are the strict traps. One run per model and case.

### With and without the skill

Tested 2026-10-08.

- Correct A2A 1.0 JSON (22 cases): Sonnet 22/22 with, 22/22 without; Haiku 22/22 with, 19/22 without.

The same request on both sides, JSON-only asked for in both. For Sonnet the skill changed nothing on these 22 cases: it already wrote the 1.0 names without it, so it gains nothing from this skill here. The gain is for Haiku, which without the skill used the 0.3 habits on three cases: the method message/send with the role user and a kind on message and parts, and a webhook config wrapped as pushNotificationConfig or config instead of the 1.0 shape. Every name, code and shape in the skill was checked against the 1.0 specification and its protocol file (release 1.0.1), which makes it a checked reference rather than a fix for Sonnet.

Same cases and the same checks with and without the skill. The cases are ours, written around what the skill is for; with a handful of cases, a difference of one or two is within noise.

Full summary: https://aiskills402.com/skills/a2a-agent-card/tests

## Example

### English (claude-sonnet-5-5)

Before:

> Write the agent card for an agent named "Echo" (description: "Repeats the text it is given.", version 1.0.0) that is reachable over JSON-RPC at https://example.com/a2a. It has one skill: id "echo", name "Echo", description "Returns the same text.", tags ["echo"]. It reads and writes plain text. Include every field the specification marks as required and nothing else.

After:

> {"name":"Echo","description":"Repeats the text it is given.","version":"1.0.0","supportedInterfaces":[{"url":"https://example.com/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"capabilities":{},"defaultInputModes":["text/plain"],"defaultOutputModes":["text/plain"],"skills":[{"id":"echo","name":"Echo","description":"Returns the same text.","tags":["echo"]}]}

## What is in the file

- The answer
- Names that changed from 0.3
- The agent card
- Requests
- Replies
- Errors
- Common slips
- Short examples
- Work in this order

## Languages

Any language

## How to buy

Agent (HTTP):

1. GET https://api.aiskills402.com/v1/skills/a2a-agent-card/file without a payment header. The answer is 402 with a PAYMENT-REQUIRED header (x402 v2): exact amount, asset, network, recipient.
2. Sign `accepts[0]` with an x402 client (for example @x402/core + @x402/evm).
3. Repeat the GET with the signature in the PAYMENT-SIGNATURE header. The answer is 200 with the file, its sha256 and a re-download token.

Agent (MCP): https://mcp.aiskills402.com/mcp — free tools search_skills, get_skill, redownload_skill. Buying itself is over HTTP.

Full flow: https://aiskills402.com/docs

## The file

- Version: 1.0.0
- Size: 10.6 KB (10883 bytes)
- SHA-256: d2dee1aaeae6f376aa6451542859b0d20532af9600e604dd774aa1f8ae63d0a4
- Updated: 2026-10-08
- New versions are free through your re-download token.

## Versions

### 1.0.0 (2026-10-08)

First release: writes A2A 1.0 agent cards, JSON-RPC requests, replies and error responses as JSON only. Uses supportedInterfaces with protocolBinding and protocolVersion, the PascalCase method names, parts without a kind, ROLE_ and TASK_STATE_ names, the flat webhook config, structured data inside data parts, the A2A-Version header and the A2A error codes -32001 to -32009.

Suggested price: $0.03, once.

## License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Terms: https://aiskills402.com/docs#license

## FAQ

### What comes back when I describe my agent?

One JSON document and nothing else: an agent card, a request body, a reply or an error response, with the 1.0 field names. There is no fence and no explanation, so your code can parse it at once. Ask for one document at a time; a card and a request are separate answers.

### Why not just ask the model for an agent card?

Most examples online still show version 0.3: a top-level url, message/send, parts with a kind and lower case roles. A client built for 1.0 cannot find such an agent. This skill uses the 1.0 names instead: supportedInterfaces, PascalCase methods, ROLE_USER, TASK_STATE_ names, the flat webhook config and the A2A-Version header.

### Does it help Claude Sonnet?

No, not on our 22 cases. Sonnet wrote all 22 correctly without the skill and with it, so its answers did not change. Claude Haiku went from 19 to 22: alone it used the 0.3 habits, such as message/send, the role user, a kind on parts and a wrapped webhook config. The skill is a reference of the 1.0 names that was checked against the specification and its protocol file, useful for weaker models and as a check.

### Which parts of the protocol does it cover?

The card with interfaces, capabilities, skills and security schemes; the JSON-RPC requests for sending, streaming, getting, listing and cancelling tasks and for webhook configs; replies with tasks, messages and data parts; and the error codes from -32001 to -32009 plus the standard JSON-RPC ones.

## Related skills

- [MCP Tool Schema: Definitions from API Docs](https://aiskills402.com/skills/mcp-tool-schema.md): $0.01 once
- [JSON Repair: Fix It, Keep Every Value](https://aiskills402.com/skills/json-repair.md): $0.05 once
- [Text to JSON: Extract Data Without Guessing](https://aiskills402.com/skills/text-to-json.md): $0.05 once

## Measurement limits

- Models other than the two named above were not run.
- Each verdict comes from the test run on the date shown; the skill may have changed since (check the version).
- Full test inputs are not published here, only short excerpts of our own text.
- Results on your own texts, languages and domains can differ.

Offer note: Paid in USDC (USD-pegged) over x402 by an AI agent; one-time.
