Standards

ARD is now an IETF Internet-Draft

2 November 2026 · 8 min read

A precise arrangement of metal tokens on black, a few lit along one edge

On 30 October 2026 Agentic Resource Discovery was submitted to the IETF as three Internet-Drafts, under the name Agent Resource Discovery. The format did not change. How a manifest is served did: the drafts give it a media type of its own, and a client may ignore a manifest without it. We checked every domain we know publishes one. Of 179 serving /.well-known/ard.json, none used it.

What was submitted

On 30 October 2026 three Internet-Drafts were submitted to the IETF's DAWN effort (Discovery of Agents With Names), by authors at Google and Ericsson. Together they restate the ARD specification as IETF text and split it into three parts.

DraftWhat it specifies
draft-bu-dawn-ard-architecture-00 Roles (publisher, consumer, registry, domain owner), the three deployment settings (local network, private network, Internet), seven design principles and a trust model that spans three administrative domains.
draft-jimenez-dawn-ard-initial-contact-00 How a client finds a manifest from a domain name: the well-known URI (mandatory), an SVCB record at _index._agents, DNS-SD under _ard._tcp, a Link: rel="ard" header, and Multicast DNS on a local network.
draft-bu-dawn-ard-discovery-00 The entry and manifest format with a CDDL grammar, the search, explore and list endpoints, error responses, federation, and the IANA registrations for application/ard+json, application/ai-registry+json and the urn:air namespace.

These are individual drafts, version 00, valid until 3 May 2027. They are not an RFC and not yet working group documents. The registration interface, how a publisher pushes entries into a registry, is left to a later document.

One protocol, two names

The drafts call it Agent Resource Discovery. The specification site still says Agentic Resource Discovery. They are the same thing: the same /.well-known/ard.json path, the same urn:air:<publisher>:<namespace>:<name> identifiers, the same entry fields and the same JSON-LD base context at agenticresourcediscovery.org/context/v1. A manifest valid under v0.91 of the specification is still a manifest under the drafts.

Nothing you published is invalid. Two things about how it is served now matter more than they did.

What changed for publishers

What changed for registries

We measured who is ready

Our crawler knows 460 domains that have published an ARD manifest. On 2 November 2026 we requested each one again and checked it against the new text.

CheckDomains
Serve a manifest at /.well-known/ard.json today179
Serve one only at the older /.well-known/ai-catalog.json241
Answer at neither path any more40
Of the 179, served as application/ard+json0
Of the 179, served as application/json170
Send Link: rel="ard" on the root34
Publish an SVCB record at _index._agents50
... whose target serves a manifest at the well-known path14
Publish a DNS-SD record under _ard._tcp0

These numbers are now re-measured every day on the ARD IETF readiness tracker, with the data as JSON and CSV.

Not one manifest in the sample, ours included, was served with the media type the draft defines. The nine that were not plain JSON used names of their own: application/ai-catalog+json eight times and application/ard-manifest+json once. The SVCB records mostly come from the DNS-AID proposal and point at agent endpoints rather than at a manifest, which is why only 14 of 50 lead to one. Seven apparent DNS-SD records were wildcard answers, not real ones, so the count is zero.

Check your own domain

curl -sI https://example.com/.well-known/ard.json | grep -i content-type
# want: content-type: application/ard+json

curl -sI https://example.com/ | grep -i '^link'
# want: link: </.well-known/ard.json>; rel="ard"

dig +short _index._agents.example.com TYPE64
# optional: 1 example.com. alpn="h2"

On nginx, the media type and the header are two lines each:

location = /.well-known/ard.json {
    types { } default_type application/ard+json;
}
location = / {
    add_header Link '</.well-known/ard.json>; rel="ard"; type="application/ard+json"' always;
    # ... your existing root configuration
}

A client that only understands JSON still reads application/ard+json, because it ends in +json. Changing the type breaks nothing that worked.

What we changed today

Neuronto now serves its manifest as application/ard+json, sends Link: rel="ard" on the root, publishes an SVCB record at _index._agents.neuronto.com, gives its registry entry a base URL, answers discovery errors as Problem Details, pages search results with nextPageToken, and asks other registries for their local results only, so a query never travels more than one hop. The specification's own conformance tool still reports PASS, 0 errors, 0 warnings for both the manifest and the registry. The code is open on GitHub.

One thing we did not ship yet: DNS-SD. The SVCB record already gives a client the same entry point, and DNS-SD earns its keep mainly where a domain has several manifests to enumerate.

Use Neuronto from your agent

One call searches this index and every other public ARD registry. No key, no signup. Or install it as an MCP server and let the agent search from the interface it already speaks.

curl -s https://neuronto.com/search \
  -H 'content-type: application/json' \
  -d '{"query":{"text":"scrape a website"},"federation":"auto"}'
claude mcp add --transport http neuronto https://neuronto.com/mcp

Keep reading