.agt Manifest Specification
Version: 3.0 · Status: In use on the AGT Registry (Polygon mainnet) · Updated: 2026-09-12 · View as Markdown
Abstract
The .agt manifest is a signed JSON document describing an AI agent's identity, capabilities, endpoints, keys, and payments. For names on the AGT Registry it is the v3 manifest: the wallet that owns the name signs it, and the registry holds the on-chain pointer to it. Any client can verify authorship without trusting any intermediary registry, gateway, or directory.
v3 changes where authority comes from. The trust root is the AGT Registry — verification checks that the signer, the manifest's declared owner, and the registry's current owner all agree. The pointer to the manifest lives on-chain; the DNS TXT record is a projection of it. Two earlier formats — v1 (inline DNS TXT) and v2 (signed JSON on IPFS, "agt": "2.0") — remain readable for names that predate the registry (§11).
1. Where the manifest lives
On the AGT Registry the manifest pointer is stored on-chain against the name. The pointer URI is one of:
ipfs://<cid>— content-addressed; resolvers verify the fetched bytes hash to the CID.https://…— a hosted document.data:application/json;base64,…— the manifest inlined.
The DNS TXT agt-manifest=<uri> record is a downstream projection of the on-chain pointer, for DNS-based readers. Resolvers read the pointer from the registry first.
2. Manifest Document
{
"agt": "3.0",
"name": "exampleagent.agt",
"owner": "0x912D39E13b0bDAe2C5Cf5D0E2f9F4B38aE9c7f6a",
"updated": "2026-09-07T05:00:00Z",
"description": "Research and source citation agent.",
"icon": "https://exampleagent.example/icon.png",
"website": "https://exampleagent.example",
"keys": [
{ "id": "sig-1", "purpose": "agent-auth", "type": "secp256k1", "publicKey": "0x04...", "revoked": false }
],
"endpoints": [
{ "protocol": "mcp", "url": "https://exampleagent.example/mcp", "version": "2025-11-05" },
{ "protocol": "a2a", "url": "https://exampleagent.example/.well-known/agent.json" },
{ "protocol": "http", "url": "https://exampleagent.example/api/v1" }
],
"capabilities": [
{
"id": "research",
"description": "Searches sources and synthesizes a cited summary.",
"input": { "type": "object", "properties": { "query": { "type": "string" } }, "required": ["query"] },
"output": { "type": "object", "properties": { "summary": { "type": "string" }, "sources": { "type": "array" } } }
},
{ "id": "summarization" }
],
"pricing": {
"model": "freemium",
"free_tier": "10 queries/day",
"paid": { "currency": "USDC", "amount": "0.01", "unit": "per_request", "chain": "polygon" }
},
"payments": [ { "rail": "x402", "chain": "polygon", "address": "0x912D...7f6a", "token": "USDC" } ],
"delegation": { "principal": "0xABC...", "scope": ["read", "quote"], "expires": "2027-01-01T00:00:00Z" },
"registrations": [ { "standard": "erc-8004", "chainId": 137, "registry": "0x8004...", "agentId": "42" } ],
"signature": "0x7f3e8d4c..."
}3. Fields
| Field | Required | Description |
|---|---|---|
agt | yes | Spec version. MUST be "3.0". |
name | yes | The .agt name. Lowercase. |
owner | yes | Owner address. MUST equal the registry owner of the name at verification time. |
updated | yes | ISO 8601 timestamp. Resolvers prefer the newest pointer from the registry. |
description, icon, website | no | Human-facing identity fields. |
keys | no | Agent public keys; each has id, purpose, type, publicKey, revoked. |
endpoints | no | One per protocol: protocol, url, optional version. |
capabilities | no | Capability ids with optional description and JSON Schema input/output. |
pricing | no | model (free/freemium/paid/contact), optional free_tier, paid. |
payments | no | Accepted rails: rail, chain, address, token. |
delegation | no | principal, scope, optional expires. |
registrations | no | Interop identities (erc-8004, did, ens). |
signature | yes | EIP-191 signature over the canonical serialization (§4). |
4. Canonical Serialization & Signing
- Build the manifest object without the
signaturefield. - Serialize with keys sorted lexicographically at every level, no insignificant whitespace, UTF-8 (JCS-lite; RFC 8785 for full conformance).
- Sign per EIP-191 (
personal_sign) with the wallet that owns the name. The key never leaves the wallet. - Place the resulting hex signature (65 bytes, r‖s‖v,
0xprefixed) in thesignaturefield.
5. Verification
- Remove
signature; canonicalize the remainder. - Recover the signer from the signature and the canonical bytes.
- The signer MUST equal the manifest's
owner. - The
ownerMUST equal the current owner of the name in the AGT Registry. - When the pointer is
ipfs://, the fetched bytes MUST hash to the CID.
On any failure a resolver surfaces verified: false with reasons; clients MUST NOT trust an unverified manifest.
6. Resolution Algorithm
function resolve(name):
tokenId = tokenIdOf(name)
owner, active, pointer = AGTRegistry.read(tokenId) // ownerOf, status, manifest pointer
if pointer:
bytes = fetch(pointer) // ipfs:// | https:// | data:
if pointer is ipfs and cidOf(bytes) != cid: REJECT
m = parse(bytes)
verified = recover(m.signature) == m.owner == owner
return { name, owner, active, manifest: m, verified }
// legacy fallback for names that predate the registry
txt = dnsTxt(name)
if txt.has("agt-manifest="): return readV2Json(txt)
if txt.has("agt-version=1"): return readV1Inline(txt) // unverified
return { name, owner, active, manifest: null }7. Protocol Vocabulary
| ID | Description |
|---|---|
mcp | Model Context Protocol (Anthropic). |
a2a | Agent-to-Agent Protocol (Google). |
http | REST or RPC over HTTP/HTTPS. |
ws | WebSocket. |
grpc | gRPC. |
Custom protocol IDs are permitted. Lowercase, hyphenated.
8. Payment Rails
| Rail | Description |
|---|---|
x402 | HTTP 402 pay-per-request settlement. |
evm | Direct EVM token transfer. |
lightning | Bitcoin Lightning. |
Custom rails are permitted.
9. Capability Vocabulary (Reference)
70 reference capabilities across 8 categories. Custom IDs permitted — this list is non-exhaustive.
Language
| ID | Description |
|---|---|
research | Gathers, synthesizes, and cites information from multiple sources. |
summarization | Condenses long-form content into concise summaries. |
translation | Translates text between natural languages. |
content-writing | Generates articles, blog posts, documentation, or other long-form written content. |
copywriting | Produces marketing copy, ad text, taglines, and promotional content. |
editing | Proofreads, corrects grammar, and improves style and clarity. |
paraphrasing | Restates text in different words while preserving meaning. |
extraction | Pulls structured data from unstructured text (entities, dates, amounts). |
classification | Categorizes text by topic, sentiment, intent, or other criteria. |
question-answering | Answers questions using provided context or general knowledge. |
fact-checking | Verifies claims against authoritative sources. |
reasoning | Performs multi-step logical reasoning and problem solving. |
brainstorming | Generates creative ideas, alternatives, and divergent options. |
Code
| ID | Description |
|---|---|
code-generation | Writes source code from natural language specifications. |
code-review | Analyzes code for bugs, style issues, and improvement opportunities. |
code-explanation | Explains what code does in plain language. |
debugging | Identifies and fixes software bugs. |
testing | Writes or executes tests and reports results. |
refactoring | Restructures code for clarity or performance without changing behavior. |
code-documentation | Generates docstrings, READMEs, and technical reference for code. |
database-query | Generates, optimizes, or explains SQL and database queries. |
code-completion | Provides inline code suggestions and autocompletion. |
Data
| ID | Description |
|---|---|
data-analysis | Performs statistical analysis and extracts insights from structured data. |
data-visualization | Creates charts, graphs, dashboards, and visual data representations. |
data-cleaning | Normalizes, deduplicates, and corrects data quality issues. |
data-transformation | Converts data between formats, schemas, or structures (ETL). |
math | Solves mathematical problems and performs symbolic or numeric computation. |
forecasting | Builds predictive models and generates time-series forecasts. |
anomaly-detection | Identifies outliers and unexpected patterns in data. |
reporting | Generates structured reports and executive summaries from data. |
embedding | Generates vector embeddings for text, images, or other inputs. |
clustering | Groups similar items together based on features or content. |
ranking | Scores and prioritizes items by relevance, quality, or other criteria. |
Search & Retrieval
| ID | Description |
|---|---|
search | Looks up records, names or resources by query in a specific corpus or registry. |
web-search | Searches the public internet for information. |
semantic-search | Retrieves results based on meaning rather than keyword matching. |
document-search | Searches across document collections, PDFs, or knowledge bases. |
knowledge-retrieval | Queries structured knowledge bases or performs retrieval-augmented generation. |
citation | Finds, formats, and verifies references and source attributions. |
Media
| ID | Description |
|---|---|
image-generation | Creates images from text prompts or other inputs. |
image-editing | Modifies, enhances, or transforms existing images. |
image-analysis | Extracts information, labels, or descriptions from images. |
video-generation | Creates video content from text, images, or other inputs. |
video-analysis | Extracts information, scenes, or transcripts from video. |
audio-transcription | Converts spoken audio into text. |
audio-generation | Produces speech, music, or sound effects from text or other inputs. |
ocr | Extracts text from images, scans, or documents via optical character recognition. |
design | Creates UI mockups, graphics, layouts, or other visual design work. |
3d-modeling | Generates or manipulates three-dimensional models and scenes. |
Communication
| ID | Description |
|---|---|
chat | Engages in real-time conversational interaction with users or other agents. |
email-drafting | Composes, formats, and suggests email messages. |
meeting-notes | Transcribes, summarizes, and extracts action items from meetings. |
presentation | Creates slides, pitch decks, and structured visual presentations. |
tutoring | Provides educational instruction, explanations, and guided learning. |
customer-support | Handles support queries, troubleshooting, and issue resolution. |
negotiation | Facilitates structured dialogue toward agreement or compromise. |
Automation
| ID | Description |
|---|---|
web-scraping | Extracts structured data from web pages. |
api-integration | Connects to and orchestrates third-party APIs. |
workflow-automation | Automates multi-step business or technical workflows. |
scheduling | Manages time-based tasks, reminders, and calendar operations. |
monitoring | Observes systems, services, or data streams and reports on status changes. |
deployment | Manages CI/CD pipelines, releases, and software deployments. |
file-management | Organizes, converts, moves, and manages files and directories. |
notification | Sends alerts, messages, and notifications across channels. |
data-entry | Fills forms, inputs data, and automates manual entry tasks. |
Security
| ID | Description |
|---|---|
vulnerability-scanning | Assesses systems and code for security weaknesses. |
compliance-checking | Verifies adherence to policies, regulations, and standards. |
threat-detection | Identifies potential security threats and suspicious activity. |
access-control | Manages permissions, roles, and authentication policies. |
encryption | Handles data encryption, decryption, and key management. |
10. Security Considerations
- Public gateways are untrusted. Resolvers MUST verify the IPFS CID matches the fetched content.
- On-chain ownership is the ground truth. A signature proves authorship at signing time; always resolve the current pointer and owner from the registry. A signature from a previous owner is invalid after transfer.
- Key rotation. Set
keys[].revokedand publish a new signed manifest. - Manifests are public and permanent. Never include secrets, API keys, or private data.
- Untrusted input. Treat all manifest text as untrusted in agent prompts (prompt-injection surface).
- Endpoint TLS. Endpoints SHOULD use HTTPS; clients SHOULD warn before connecting to plain HTTP.
11. Legacy manifests
Names that predate the AGT Registry may carry one of two older formats, both read-only:
- v1 (inline TXT). One DNS TXT record per field, with an
agt-version=1sentinel and no signature. Resolvers parse these into a manifest-shaped object marked unverified. - v2 (JSON on IPFS). A signed JSON document with
"agt": "2.0", pointed to by a DNSagt-manifest=TXT record.
Writers MUST NOT generate new v1 or v2 manifests; new names write v3.
12. References
- RFC 8785 — JSON Canonicalization Scheme (JCS)
- RFC 8259 — JSON Data Interchange Format
- EIP-191 — Signed Data Standard
- EIP-55 — Mixed-case checksum address encoding
- ENSIP-9 — Multichain address resolution
- ERC-8004 — Agent identity registration
- JSON Schema Draft 2020-12
- IPFS CIDv1 — multibase, multihash, multicodec