Publish Your Own
Publishing AgentRoot for a domain you own is three steps: host a zone file, add a DNS TXT record, verify resolution. After that, your domain's AI capabilities are discoverable by any tool that speaks the protocol.
Prerequisites
You own a domain.
You can publish a static file at
https://<your-domain>/.well-known/agentroot.json(any web host).You can edit DNS records at your registrar / DNS provider (e.g. Cloudflare, Route 53, Squarespace, GoDaddy).
The three steps
Step 1: Host a zone file
Create agentroot.json declaring whatever capabilities your domain offers. Refer to the Zone File Reference for the full schema.
A minimum viable zone with one skill record:
{
"domain": "<your-domain>",
"records": [
{
"type": "skill",
"id": "my-skill",
"name": "My First Skill",
"description": "What this skill does in one sentence.",
"skill_md": "https://<your-domain>/.well-known/skills/my-skill/SKILL.md"
}
]
}Save the file at:
<your-web-root>/.well-known/agentroot.jsonConfirm it's reachable:
curl -sf https://<your-domain>/.well-known/agentroot.json | headIt must return HTTP 200 and Content-Type: application/json.
Step 2: Add a DNS TXT record
At your DNS provider, create a TXT record:
Name / Host
_agentroot
Type
TXT
Value
v=ar1 zone=https://<your-domain>/.well-known/agentroot.json
TTL
3600 (default is fine)
The full record is _agentroot.<your-domain>.
Wait for DNS propagation (usually under a minute, occasionally up to your TTL).
Step 3: Verify resolution
Confirm the TXT record is published:
dig +short TXT _agentroot.<your-domain>Expected output:
"v=ar1 zone=https://<your-domain>/.well-known/agentroot.json"Then run the AgentRoot resolver end-to-end:
npx agent-root resolve <your-domain>Expected: a JSON object containing your declared records. If the command errors with "no TXT record found" or "zone fetch failed", recheck the TXT value and the zone URL.
That's it. Done. Your domain's capabilities are now discoverable.
Alternative: inline mode (no zone file)
For domains with one or two capabilities, the entire record can live in the DNS TXT value (no web hosting needed). This is the pattern tokenized domains use to advertise a single skill plus a payment endpoint.
; Single capability inline
_agentroot.<your-domain> IN TXT "v=ar1 type=mcp name=My\ Tools endpoint=https://<your-domain>/mcp transport=sse"
; Multiple capabilities = multiple TXT records on the same name
_agentroot.<your-domain> IN TXT "v=ar1 skill=https://<your-domain>/.well-known/skills/my-skill/SKILL.md"
_agentroot.<your-domain> IN TXT "v=ar1 type=payment id=my-pay endpoint=https://pay.<your-domain> protocols=mpp methods=tempo assets=USDC"Inline records skip Step 1 (no zone file) and replace Step 2 (the TXT value carries the full record). See Zone File Reference → Inline mode for the full wire format and parsing rules.
Optional: submit to the agentroot.io directory
Submission is not required. Your zone resolves for any agent that knows your domain whether or not it appears in any directory. Submitting to agentroot.io only adds discoverability for agents browsing the catalog.
To submit, visit agentroot.io and use the submit flow to provide:
Your domain (apex)
Optional: a category / tags
Optional: contact email for verification follow-ups
The directory verifies your zone and indexes its records. Updates propagate hourly.
Optional: host SKILL.md files alongside your zone
If you advertised a skill record with skill_md, you also need to publish that file. The convention is:
For the SKILL.md format itself, see the Skills overview. Doma's published skills are good reference implementations:
Updating your zone
Resolvers cache zone fetches for the TXT record's TTL (default 3600s = 1 hour). To force a refresh:
Update the file at
.well-known/agentroot.json.Bump the TXT record TTL to a low value (e.g. 60s) before edits if you need fast iteration; restore to 3600 once stable.
Removing or renaming a skill id is a breaking change for anyone with the skill installed. Prefer adding new IDs over mutating existing ones.
What's next
Zone File Reference: full schema for everything you can publish.
Skills overview:
SKILL.mdformat and how to author your own skills.
Last updated