> For the complete documentation index, see [llms.txt](https://docs.doma.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.doma.xyz/agentic-commerce/agentroot.md).

# AgentRoot

**The open protocol for the agentic web.** Live spec and registry: [agentroot.io](https://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

<figure><img src="/files/1itTVERD8KM8NpgAbVdK" alt="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."><figcaption></figcaption></figure>

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

| Piece                               | Where it lives    | Purpose                                                             |
| ----------------------------------- | ----------------- | ------------------------------------------------------------------- |
| 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:

| Type      | Purpose                               | Required fields                                                                                 |
| --------- | ------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `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](/agentic-commerce/agentroot/zone-file-reference.md).

## Two ways to publish

| Mode                        | When to use                                                                                                                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **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](/agentic-commerce/agentroot/zone-file-reference.md#inline-mode) for the wire format.

## Design principles

1. **DNS is the source of truth.** A TXT record proves domain ownership. No accounts needed.
2. **One domain, many records.** Any number of capabilities, any types, one zone file.
3. **Subdomains are first-class.** Each gets its own zone. Parent zones can reference children but each subdomain's DNS is authoritative.
4. **Types are extensible.** The five built-ins are conventions; any string is a valid type.
5. **Keep it simple.** Two required fields on a zone, four required fields on a record, everything else optional.
6. **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](/agentic-commerce/agentroot/discover-and-use.md): install AgentRoot in your AI agent and resolve / install skills from any domain.
* [Zone File Reference](/agentic-commerce/agentroot/zone-file-reference.md): full `agentroot.json` schema, inline-mode TXT format, optional base fields, validation rules.
* [Publish Your Own](/agentic-commerce/agentroot/publish-your-own.md): three steps to put your domain on the agentic web.

For the full protocol specification, the live registry, and reference implementations, see [agentroot.io](https://agentroot.io).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.doma.xyz/agentic-commerce/agentroot.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
