AgentRoot
The open protocol for the agentic web. Live spec and registry: agentroot.io.
AgentRoot lets any domain declare its AI capabilities (agents, MCP servers, skills, A2A endpoints, payment endpoints, anything else) using a DNS TXT record and a JSON zone file. Like DNS resolves domain names to IP addresses, AgentRoot resolves domain names to agent capabilities.
No gatekeepers. No API keys. Just DNS and JSON.
Domains are the identity layer for the agentic web. AgentRoot is the DNS of that layer.
How discovery works
![AgentRoot discovery sequence. The AI agent queries DNS for the TXT record at _agentroot.[domain]; DNS returns v=ar1 zone=https://.../agentroot.json; the agent fetches the zone file at /.well-known/agentroot.json; the web server returns a records array containing agent, mcp, skill, a2a, and payment records. The agent then picks the record matching user intent and installs it locally.](https://docs.doma.xyz/~gitbook/image?url=https%3A%2F%2F3605822629-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fte9OGCgBObOj1vn0919Q%252Fuploads%252Fgit-blob-f8b7e8f66f734124d539659381a20101447ecd06%252Fagentroot-discovery-sequence.png%3Falt%3Dmedia&width=768&dpr=3&quality=100&sign=865a3a97&sv=2)
Discovery is open by design: any domain can publish a zone, any agent can resolve it, no central registry sits in the middle. AgentRoot is general-purpose; this section uses Doma as the example, but the same flow discovers capabilities published at any domain.
The two pieces
TXT record at _agentroot.<domain>
Your DNS provider
Points discoverers to the zone file URL. Format: v=ar1 zone=<url>
.well-known/agentroot.json
Your web server
The actual list of records the domain offers
Record types
Five types are built into the protocol:
agent
Stand-alone AI agent endpoint
endpoint, protocol, capabilities
mcp
Model Context Protocol server
endpoint (or install for stdio), transport (stdio / sse / streamable-http), tools
skill
A SKILL.md collection (one or many)
One of: index URL, skill_md URL, or inline skills array
a2a
Agent-to-Agent communication endpoint
endpoint, capabilities
payment
Payment endpoint (e.g. MPP, x402)
endpoint, protocols, methods, assets
Custom types are welcome. Any string is a valid type. The five above are conventions, not a closed set. Publish whatever your domain offers.
For the full schema (including optional base fields like auth, pricing, category, docs), see Zone File Reference.
Two ways to publish
Zone file (recommended)
Most domains. One JSON file at .well-known/agentroot.json describes everything.
Inline TXT
Single-capability domains, or tokenized domains advertising one skill plus one payment endpoint with no infrastructure to host JSON. The whole record lives in the TXT record value.
A single _agentroot name can also carry multiple TXT records (one skill + one payment + one MCP, for example). The resolver indexes each as a separate record. See Zone File Reference → Inline Mode for the wire format.
Design principles
DNS is the source of truth. A TXT record proves domain ownership. No accounts needed.
One domain, many records. Any number of capabilities, any types, one zone file.
Subdomains are first-class. Each gets its own zone. Parent zones can reference children but each subdomain's DNS is authoritative.
Types are extensible. The five built-ins are conventions; any string is a valid type.
Keep it simple. Two required fields on a zone, four required fields on a record, everything else optional.
Open and forkable. The protocol is DNS + JSON. Works without AgentRoot the registry. Works without any registry at all.
What's next
Discover & Use Skills: install AgentRoot in your AI agent and resolve / install skills from any domain.
Zone File Reference: full
agentroot.jsonschema, inline-mode TXT format, optional base fields, validation rules.Publish Your Own: three steps to put your domain on the agentic web.
For the full protocol specification, the live registry, and reference implementations, see agentroot.io.
Last updated