Internet-Draft ANS v2 October 2026
Courtney, et al. Expires 29 April 2027 [Page]
Workgroup:
Independent Submission
Internet-Draft:
draft-narajala-courtney-ansv2-02
Published:
Intended Status:
Informational
Expires:
Authors:
S. Courtney
GoDaddy
V. S. Narajala
OWASP
K. Huang
DistributedApps.ai
I. Habler
OWASP
A. Sheriff
Cisco Systems

Agent Name Service v2 (ANS): A Domain-Anchored Identity Layer for Autonomous AI Agents

Abstract

Autonomous AI agents now invoke one another across organizational boundaries over protocols such as the Model Context Protocol (MCP) and Agent2Agent (A2A). A relying party has no interoperable way to bind a discoverable agent endpoint to the holder of its domain (optionally verified as a legal entity), a specific software release, and an auditable issuance history. This document specifies the architecture of Agent Name Service version 2 (ANS v2), an identity layer, anchored in DNS domains, that binds an agent endpoint to its domain holder, its release, and its history. ANS v2 composes systems the Internet already runs (the DNS with DNSSEC; the Web PKI, with DANE where operators publish it; and an append-only transparency log) and introduces no new root of trust.

Every ANS v2 agent carries a versioned name rooted in a DNS domain that the registrant controls. When a registrant registers an agent, the Registration Authority (RA) checks the registrant's control of that domain, can issue an Identity Certificate that binds the versioned name to the agent's key, and submits a signed registration record to a Merkle-tree transparency log. Under the current specifications, a new version is a new registration and a new log entry, so a verifier can pin an agent to a specific release. Any third party can detect a rewritten log by computing, from the log's public tiles, a consistency proof between two of its signed checkpoints.

For discovery, ANS v2 adopts the SVCB records and SvcParams of DNS for AI Discovery (DNS-AID) as its default format, and keeps an older TXT-based format only as an opt-in profile. Beyond those discovery records, ANS v2 specifies one DNS record, an "_ans-badge" TXT record that points to the agent's transparency-log entry; the log seals the fingerprint of the agent server's certificate, and operators can add DANE records. With these records, a verifier resolves an agent, authenticates its TLS endpoint, and confirms that the presented name, version, and key match a logged registration.

This document also states a threat model covering agent impersonation, DNS spoofing, CA and Registration Authority compromise, version rollback, agent card tampering, and log rewriting, and names what each ANS check does and does not prevent. The reference registry, transparency log, verifier, JSON Schemas, SDKs, and CLI are open source.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 29 April 2027.

▲

Table of Contents

1. Introduction

An AI agent that calls another agent over MCP [MCP] or A2A [A2A] learns a hostname and an endpoint URL. Before it sends a payment instruction or a customer record, the calling agent needs to know who answers for this endpoint, which release of the software is running there, and whether anyone can check what happened to that release over time. A TLS server certificate names the hostname, which answers part of the first question. No interoperable record names the release running at the endpoint or its history.

An ANS v2 verifier answers all three by checking systems the Internet already runs. The DNS, signed with DNSSEC [RFC4033], anchors each agent's name in a domain its owner controls. X.509 certificates [RFC5280] let a caller authenticate the agent's TLS endpoint, and an operator can pin them in DNS with DANE [RFC6698]. An append-only transparency log records every agent the RA registers or revokes, where any party can read and audit the record. The log uses the Merkle-tree construction of Certificate Transparency [RFC9162] and the model of SCITT [I-D.ietf-scitt-architecture], in which a transparency service signs a receipt for each statement it records.

This document describes how the DNS records, certificates, and transparency log fit together and what each one defends against. The ANS specifications [ANS-SPEC], numbered ANS-0 through ANS-6, state what each implementation must do.

1.1. Status and Transition Note

ANS began as the Agent Name Service specification by Huang, Narajala, Habler, and Sheriff [ANSv1], which Vineeth Narajala brought to the IETF as [I-D.narajala-ans]. [I-D.narajala-courtney-ansv2] then specified ANS v2. ANS has since separated into these parts:

  1. DNS discovery. An ANS registrant publishes agent discovery records as the SVCB resource records [RFC9460] and SvcParams that [I-D.mozleywilliams-dnsop-dnsaid] defines; the DNS-AID authors develop that draft separately in the IETF DNSOP working group. Beyond its opt-in TXT discovery format, ANS defines one DNS record of its own, the "_ans-badge" TXT record.
  2. Specifications and reference implementation. The ANS project develops the ANS-0 through ANS-6 specifications, the reference registry, transparency log, verifier, JSON Schemas, SDKs, and CLI as open source at https://github.com/agentnameservice.
  3. Architecture: this document.

1.2. Scope

This document does not define the wire format of discovery records (DNS-AID does), or the application protocols agents speak (MCP, A2A, and others). ANS tells a verifier who an agent is; whether to trust or transact with that agent is the verifier's own decision, which a separate scoring service that reads ANS records can inform. ANS records registrations and their lifecycle, not the actions an agent takes, and binds the keys in the certificates the TL seals and, through the optional identity service (Section 3), the keys an organization identifier lists. Keys an agent publishes for application protocols, such as keys that sign payment authorizations, stay outside ANS.

2. Terminology

Agent:
Software that accepts requests at a network endpoint and acts on them without a human approving each step.
agentHost:
The fully qualified domain name (FQDN) at which an agent serves requests, for example "travel.example.com".
ANSName:
The versioned name of one registration, of the form "ans://v{version}.{agentHost}", for example "ans://v1.4.2.travel.example.com".
Registrant:
The party that submits a registration and proves control of the agentHost: either the agent's owner or an Agent Hosting Platform acting for the owner.
Agent Hosting Platform (AHP):
The operator that runs the agent's code and manages its DNS records and certificates.
Registration Authority (RA):
The service that accepts a registration, checks the registrant's proof of domain control, issues or accepts the agent's certificates, and submits signed lifecycle events to the transparency log.
Transparency Log (TL):
The append-only Merkle-tree log that seals each lifecycle event the RA submits and serves receipts, status tokens, checkpoints, and tiles that let any party verify what it sealed.
Server Certificate:
The X.509 certificate that the agent presents as a TLS server. It names the agentHost as a DNS subject alternative name.
Identity Certificate:
An optional X.509 client certificate, issued from the RA's private certification authority (CA), that carries the full ANSName as a URI subject alternative name and so binds one version of the agent to one key.
Badge:
The TL's public record for one registration, which a verifier reaches through the "_ans-badge" DNS record.
Receipt:
A COSE_Sign1 [RFC9052] object, signed by the TL, that proves a given event was sealed into the log.
Status token:
A short-lived object, signed by the TL, that states a registration's current status.
Checkpoint:
A signed note recording the TL's tree size and root hash at a point in time.
Verifier:
Any party that checks an agent's ANS records, usually the calling agent or the agent being called.

3. Architecture

Five parties take part. The registrant holds the domain, runs the agent, and publishes DNS records. The RA checks domain control and issues or accepts certificates. The TL seals what the RA submits. A DNS operator serves the registrant's zone. A verifier reads the DNS records, certificates, and TL records and decides for itself.

  Registrant (owner or AHP)                 Verifier
    | 1 register agentHost,                  ^   ^   ^
    |   prove domain control                 |   |   |
    v                                        |   |   |
  +-----------------+  2 signed event  +-----+---+---+---+
  | Registration    |----------------->| Transparency Log |
  | Authority (RA)  |                  | (receipts, tiles,|
  +-----------------+                  |  checkpoints)    |
    | 3 certificates;                  +------------------+
    |   expected DNS record content            ^
    v                                          | 5 badge, receipt,
  Registrant publishes in its zone:           |   status token
    SVCB (DNS-AID), _ans-badge TXT, (TLSA)    |
                     |                         |
                     +---- 4 DNS (DNSSEC) -----+--> Verifier
Figure 1: ANS v2 roles and the records each one produces

An RA can also offer an optional identity service [ANS-SPEC]. The service verifies an identifier the registrant controls, such as a did:web identifier, which resolves to keys published under a web domain, or a Legal Entity Identifier (LEI) proven with a vLEI credential chain plus a possession signature, and links that identifier to the registrant's agents. The RA submits a TL event each time it verifies, updates, links, unlinks, or revokes the identifier.

Many RAs can operate, each integrated with its own systems, such as the CA it obtains Server Certificates from and the DNS zones it hosts. The ANS specifications fix what every registration carries, whichever RA handles it: proof of domain control, the certificate fingerprints the TL seals, and the badge record. A verifier therefore checks a registration from any RA the same way.

A verifier can check the DNS, the certificates, and the TL separately; an attacker has to defeat all three to pass a verifier that checks all three.

4. Versioned Naming

Every registration has an ANSName of the form "ans://v{version}.{agentHost}". The version is a numeric semantic version (major.minor.patch) with no pre-release or build-metadata suffix. The RA keeps each full ANSName unique, so "ans://v1.0.0.travel.example.com" and "ans://v2.0.0.travel.example.com" are two independent registrations with independent statuses.

A registrant releases a new version by registering the new ANSName. Both versions can stay ACTIVE until the registrant or the RA retires the old one. The registrant revokes the old version, or an RA may apply a retirement policy that it publishes to registrants, for example deprecating the old version when the new one activates and revoking it after a grace period with the revocation reason SUPERSEDED. The RA records each step in the TL: it submits an AGENT_DEPRECATED event when it deprecates the old version and an AGENT_REVOKED event when it revokes it, and from each event on, the badge and the status token report the new status. Because verifiers on both tiers decide from that status whether the old version is retired (Section 11.6), the registrant keeps the old version's "_ans-badge" record published until the RA revokes the version. When the RA revokes the old version, the RA leaves valid every certificate the new version still holds. If registering the new version fails, the RA leaves the old version untouched.

An Identity Certificate, when the registrant requests one, carries the full ANSName as a uniformResourceIdentifier subject alternative name, with the clientAuth extended key usage. The CA/Browser Forum Baseline Requirements [CABF-BR] prohibit URI subject alternative names in publicly trusted server certificates, so a public CA cannot issue an Identity Certificate; the RA's private CA issues the Identity Certificate against a certificate signing request (CSR) the registrant submits. ANS-2 prohibits registrants from bringing their own Identity Certificates, because a rogue CA could otherwise issue one for an ANSName the RA never validated. A registrant can skip the Identity Certificate; the registration then activates and operates on its Server Certificate alone. An agent registered without an Identity Certificate can answer calls but cannot authenticate when it calls another agent, because both ANS-6 caller methods (Section 8) bind the caller to its Identity Certificate. The registrant cannot add an Identity Certificate later without registering a new version. A registrant whose agent calls other agents should therefore request an Identity Certificate.

5. Registration Lifecycle

A registrant registers an agent in three steps [ANS-SPEC]:

  1. The registrant submits the ANSName, its endpoints, and either a CSR for the Server Certificate or a Server Certificate it already holds, plus an optional CSR for an Identity Certificate. When the registrant sends a CSR, the RA obtains the Server Certificate from a CA it integrates with. For each endpoint the registrant can also declare the SHA-256 digest of the agent card it serves at the endpoint's metadata URL; the RA checks the digest's format but does not fetch the card. The RA returns domain-control challenges in the style of ACME [RFC8555], and the registration enters PENDING_VALIDATION.
  2. The registrant satisfies either a DNS-01 TXT challenge or an HTTP-01 challenge. The RA checks the challenge response, issues the requested certificates, returns the content of the DNS records the registrant must publish, and moves the registration to PENDING_DNS.
  3. The registrant publishes the records. The RA queries public DNS, checks that the required records are present and that DNSSEC validates where the zone is signed, and moves the registration to ACTIVE. The RA then submits an AGENT_REGISTERED event to the TL. The event carries any card digests the registrant declared and, for each SVCB, HTTPS, and TLSA answer, whether the RA's resolver validated that answer under DNSSEC; TXT answers carry no such flag. The integrity monitor repeats the DNSSEC check after activation (Section 9).

After activation, the RA can move a registration to DEPRECATED or REVOKED. The RA never marks an active registration EXPIRED; each time a verifier reads the registration's badge or status token, the TL reports WARNING as the expiry sealed in the AGENT_REGISTERED event approaches and EXPIRED once that expiry passes. The RA itself marks a registration EXPIRED only when the registration is still pending and its domain-control challenge lapses. When the registrant or the RA revokes a registration, the RA submits an AGENT_REVOKED event. The RA also submits a TL event when it deprecates a version (Section 4) and each time it renews a certificate. The TL lists a renewed certificate's fingerprint only after the RA logs the renewal, so without that event verifiers reject the agent once the agent presents the new certificate. A content delivery network (CDN) or hosting platform that manages the Server Certificate can rotate that certificate without telling the registrant, and the same rejection follows until the registrant submits the new certificate through the RA's renewal.

The registrant re-proves domain control at every Server Certificate renewal and every new version, subject to the reuse window ANS-1 allows for a recent ACME authorization. A party that loses control of the domain therefore cannot renew or extend a registration, and the domain's new holder does not silently inherit the reputation its former holder built. Section 11.9 covers what the former holder can still do with its existing registrations.

6. DNS Publication

ANS-3 organizes discovery records into named profiles. The registrant chooses the profiles for each registration; ANS_DNSAID is the default.

ANS_DNSAID (default):
One SVCB record in ServiceMode at the agentHost for each protocol endpoint, carrying connection hints and capability locators in the SvcParams of [I-D.mozleywilliams-dnsop-dnsaid], including the card digest, when the registrant declared one, as the DNS-AID cap-sha256 parameter.
ANS_TXT (opt-in):
One "_ans" TXT record for each endpoint plus an HTTPS record at the agentHost, which ANS-3 keeps for operators whose zone-editing tools target "_ans.{agentHost}".

Whatever profiles the registrant chooses, the registrant publishes the badge record and can add DANE records:

Badge record:
A TXT record at "_ans-badge.{agentHost}" with the value "v=ans-badge1; version=v{version}; url={badgeURL}", where badgeURL is the TL's public record for the registration. A badge-verifying client does not trust an agent whose discovery records appear without a matching badge record.
DANE record (optional):
A TLSA record at "_{port}._tcp.{agentHost}" for each TLS endpoint port, using DANE-EE with selector 0 (the full certificate) or selector 1 (the public key) and SHA-256. Verifiers accept either selector. The binding a verifier relies on is the Server Certificate fingerprint the TL seals; a DNSSEC-validated TLSA record adds a second, DNS-anchored check of the same certificate. When several agents share one Server Certificate, such as a wildcard, that fingerprint identifies the operator's certificate, not one agent or version; the Identity Certificate's ANSName and the status token carry the version.

ANS-3 requires the discovery and trust records to sit in public DNS zones that any third party can query; a private zone or proprietary lookup channel does not conform. DNS-AID, which ANS composes, makes TLSA records optional, recommends that zones be DNSSEC-signed, and requires a zone that publishes TLSA records to be signed; ANS follows the same rules. Following [RFC6698], a verifier treats a TLSA record set as unusable unless DNSSEC validates it as "secure".

7. Transparency Log

The TL keeps one Merkle tree. ANS-4 specifies the TL's leaf hashing, which follows [RFC9162], and the TL's signature algorithms.

Any reader can fetch the TL's contents without authenticating:

A receipt proves that an event was sealed and stays valid forever, including for a registration revoked later. A status token states the registration's current status and expires after a short lifetime (one hour by default). A verifier that needs to know an agent is still live uses the status token or the badge, not the receipt alone.

Each RA instance signs the events it submits with a producer key the TL has registered. The TL can also publish periodic checkpoints to an external consensus ledger, following HCS-27 [HCS27], the Hashgraph Online profile for publishing Merkle checkpoints to a Hedera Consensus Service topic.

8. Verification

ANS-6 lets each deployment make two independent choices about how one agent authenticates another. In the first choice, the verification tier, the deployment picks where the verifier gets its evidence: on the badge tier, the verifier queries the TL when it connects; on the SCITT tier, the verifier checks a receipt and a status token locally with no network call per request. In the second choice, the possession method, the deployment picks how the caller proves it holds its key: Method A presents the Identity Certificate in the mutual-TLS handshake; Method B sends a DPoP proof [RFC9449] in an HTTP header, which survives proxies and gateways that terminate TLS.

Whatever the tier and method, the verifier establishes three facts, all bound to one certificate: identity (a badge or receipt shows the registration exists), liveness (the badge or status token shows the registration is not revoked), and possession (the handshake or DPoP proof shows the peer holds the key). The presented certificate matches when its fingerprint equals one of the fingerprints the TL sealed for that registration.

ANS-5 lays out the checks a verifier can run against an agent, each through a different trust channel:

  1. Validate the Server Certificate chain through the Web PKI.
  2. Where the operator publishes TLSA records and the zone is signed, check that the Server Certificate matches a TLSA record at "_{port}._tcp.{agentHost}" under that record's selector.
  3. Verify the TL inclusion proof for the registration. A tampered or deleted entry breaks the proof.
  4. Check that the live DNS records and certificates match what the TL sealed.
  5. Where the registrant declared a card digest, hash the fetched agent card with SHA-256 and compare the hash with the digest in the status token and, under ANS_DNSAID, with the cap-sha256 parameter in the SVCB record. The status token carries the digest as hex and the SVCB record carries the digest as base64url, so the verifier decodes each to bytes before comparing. ANS-6 asks a verifier to compare both where the verifier can and, when the two digests differ, to report the difference even if the fetched card matches one of them.

9. Integrity Monitoring

ANS-5 defines an integrity monitor that re-checks registered agents on a schedule its operator sets: that the TL entry exists, that the DNS records match the sealed values and validate under DNSSEC, and that the certificate fingerprints match. A monitor reports a mismatch; the monitor cannot change a registration's state. The RA records a warning only for a confirmed finding that carries cryptographic evidence of the discrepancy, and only after the RA re-verifies that evidence. A warning is advisory: the agent stays ACTIVE, and each consumer decides what to do with the warning.

10. Evolving Areas

The ANS specifications change in the open; these changes are under discussion or under way:

Version-free names:
A proposal would drop the mandatory version from the ANSName, giving names such as "ans://agent.example.com", and would let a registrant update endpoint metadata in place instead of registering a new version. A verifier could then pin a release only where the registrant publishes release information. Version-free names would leave the "_ans-badge" lookup (Section 11.6) with no version to match; retiring that record altogether is a step ANS maintainers have discussed and set aside for now.
DANE records:
The current specifications have the RA compute the expected TLSA content and check it before activation. A pending edit to ANS-1, ANS-3, ANS-5, and ANS-6 removes those duties and leaves DANE to operators, as Section 6 describes. The TLSA selector rule (selector 0 or 1, verifiers accepting either) is already settled.
Identity Certificates from other CAs:
A proposal would let a registrant enroll an Identity Certificate issued elsewhere, without the ANSName URI subject alternative name, for use with Method B. The RA would bind that certificate's fingerprint to the registration in the status token, so the version binding would move from the certificate to the TL, which matters most for operators whose agents share one Server Certificate (Section 6).
Version retirement:
The current ANS-1 text says the RA imposes no retirement timeline, and ANS-6 lets only the registrant mark an old version DEPRECATED. This document permits an RA retirement policy that the RA records in the TL, and has verifiers on both tiers learn from the TL whether a version is retired (Section 4); a proposal to ANS maintainers would add the same rules to ANS-1, ANS-2, ANS-4, and ANS-6. Still undecided is whether a verifier must accept a DEPRECATED version with a warning, as ANS-6 says today, or may reject it as local policy.
Lifecycle events and expiry:
ANS maintainers are revising the event names for certificate renewal and the rule that computes a registration's expiry, and are discussing a recovery period after a certificate lapses. The current ANS-1 text reserves the renewal event without requiring the RA to submit it; this document requires the renewal event (Section 5).
Domain transfers:
ANS maintainers are deciding how an RA retires a former holder's registrations once a new holder proves control of the domain, and whether the new holder may reuse a name and version the former holder published.
Discovery parameters:
The DNS-AID authors and authors of related discovery drafts are aligning on a common set of SvcParams, including a new name for the protocol parameter and an algorithm-agile digest, cap-digest, in place of cap-sha256. The ANS_DNSAID profile will follow the parameter names they settle.
Log witnessing:
ANS maintainers are designing witnessing for TL checkpoints, so that verifiers can detect a split view without relying on external anchoring alone.
Agents without a domain:
Proposals describe client-only agents that call other agents but serve no endpoint, and hosting providers that register agents under a provider-assigned hostname for operators who hold no domain or key. Both would extend ANS beyond its domain-anchored base.

11. Security Considerations

11.1. Agent Impersonation

An attacker who wants to pose as "travel.example.com" must answer the RA's domain-control challenge for that name, present a certificate whose fingerprint the TL sealed, and prove it holds that certificate's key. Without control of the domain, the attacker cannot register the name; without the key, the attacker cannot pass Method A or Method B. An operator's agents that share a wildcard certificate present the same fingerprint, so a verifier tells them apart by the name it dialed and, for a caller, by the ANSName in the caller's Identity Certificate. An attacker who does gain control of the domain can register new versions, but each one appears in the public TL, where the owner and any monitor can see it.

11.2. DNS Spoofing

Without DNSSEC, an attacker on the path can forge the "_ans-badge" answer. ANS-6 limits the damage with an allowlist of trusted TLs: the attacker can point the verifier at a trusted TL's badge for a different agent, but every field the verifier compares is anchored either to the validated client certificate or to the name the caller dialed, so the verifier's checks fail. Without DNSSEC, a verifier gets nothing from DANE (Section 6). Operators who want verifiers to check their DNS records sign their zones.

11.3. Certification Authority Compromise

A compromised public CA can issue a Server Certificate for any agentHost, and a compromised RA private CA can issue Identity Certificates for any ANSName. Neither certificate has a fingerprint in the TL, so a verifier that matches the presented fingerprint against the TL rejects both. A legitimately renewed certificate does have a fingerprint in the TL, because this document requires the RA to log each renewal (Section 5). Where the operator publishes DANE records in a signed zone, the TLSA check catches the forged Server Certificate a second time.

11.4. Registration Authority Compromise

A TLSA record adds an independent check only when the party that publishes the TLSA record differs from the party that obtained the Server Certificate. An RA that both obtains the certificate and operates the zone can defeat DANE alone; a verifier then relies on the TL's public history, where every certificate fingerprint the RA seals stays visible to the owner and to monitors. If an attacker steals a producer key, the operator revokes that key: the TL stops accepting events signed with it, events sealed before the compromise stay verifiable, and the sealed history bounds what the attacker could have injected to the compromise window.

11.5. Log Rewriting and Equivocation

When one operator runs both the RA and the TL, that operator holds the keys that sign events and checkpoints and could in principle forge history. The public checkpoints and tiles let any third party compute a consistency proof that the log only appended entries between two checkpoints, and a rewritten log cannot produce consistent proofs against checkpoints it already published. A TL that anchors its checkpoints to an external ledger puts the record of those checkpoints outside the operator's control, and a deployment that runs the RA and the TL under different operators removes the risk that one operator forges both.

Verifiers catch a log that shows different checkpoints to different verifiers (a split view) only when they compare the checkpoints they received through an independent channel. The external ledger gives verifiers that channel, provided each verifier checks its checkpoints against the ledger. The ANS specifications do not yet define a witnessing protocol (Section 10).

11.6. Version Rollback

Each version is a separate registration with its own ANSName, certificates, and TL records, so a verifier that requires "ans://v1.4.2.travel.example.com" can reject any other version. Otherwise the verifier learns from the version's TL status whether the version is retired, on either tier: the badge-tier verifier reads the status in the badge, the SCITT-tier verifier reads the status in the status token, and the TL derives both from the same events (Section 4). On the badge tier the verifier first selects the "_ans-badge" record whose version matches the version in the caller's Identity Certificate; selecting the record finds the TL entry to read and does not decide whether the version is retired. A registrant that deleted an old version's badge record before the RA revoked the version would block that version for badge-tier verifiers only, which is why Section 4 has the registrant keep the record until then. ANS-6 currently treats a DEPRECATED version as valid for connections and has the verifier warn, so a deprecated release stays reachable until the RA revokes it (Section 10). A caller that must reach only the latest release checks the version itself, and a registrant that retires a vulnerable release revokes that release's registration.

11.7. Agent Card Tampering

A verifier running the card check in Section 8 catches a host that changes an agent's card after registration, if the registrant declared a digest. The digest is optional, so a registration without one gives a verifier nothing to compare. The registrant computes the digest and the RA never fetches the card (Section 5), so a matching digest shows only that the card has not changed since registration, not that any third party checked the card's content. The ANS specifications define no way to update a sealed digest; a registrant who changes the card registers a new version.

11.8. Revocation Latency

After the RA revokes a registration, verifiers stop accepting the agent within a bounded time, not instantly. On the SCITT tier the worst case at default settings is the status token's one-hour lifetime, plus up to ten minutes of allowed clock skew, plus a grace window of up to one more token lifetime: two hours and ten minutes. High-assurance deployments shorten the token lifetime, decline the grace window, or check the live badge for critical transactions.

11.9. Domain Transfer

When a domain changes hands, the former holder's registrations stay ACTIVE until the RA revokes them (Section 10) or their certificates expire. Until then, the former holder can still call other agents under an old ANSName, and a verifier on the SCITT tier accepts the call, because that tier never reads the new holder's zone. On the badge tier, the verifier reads the new holder's "_ans-badge" records, finds no badge that matches the former holder's certificate, and rejects the call. A relying party that must notice a change of holder checks the live badge, the same check Section 11.8 suggests for revocation.

11.10. Monitor Abuse

A malicious monitor might try to get consumers to drop a valid agent. Under the rules in Section 9, a single false report produces no warning.

12. Privacy Considerations

The RA and the TL publish every registration: anyone can read an agent's ANSName, endpoints, certificate fingerprints, and lifecycle history from DNS and the TL. Registrants place nothing in a registration that they would not publish.

A verifier's lookups reveal which agents it intends to call. Discovery services can reduce that exposure with privacy-preserving query techniques; the RA does not see these queries. The TLS handshake reveals the agent's hostname to network observers unless both sides use Encrypted Client Hello [RFC9849].

13. IANA Considerations

This document has no IANA actions at this time.

A future revision may ask IANA to register the "ans" URI scheme per [RFC7595] and the underscore labels "_ans" and "_ans-badge" per [RFC8552].

14. References

14.1. Normative References

[RFC4033]
Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "DNS Security Introduction and Requirements", RFC 4033, DOI 10.17487/RFC4033, , <https://www.rfc-editor.org/info/rfc4033>.
[RFC5280]
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, , <https://www.rfc-editor.org/info/rfc5280>.
[RFC6698]
Hoffman, P. and J. Schlyter, "The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA", RFC 6698, DOI 10.17487/RFC6698, , <https://www.rfc-editor.org/info/rfc6698>.
[RFC9162]
Laurie, B., Messeri, E., and R. Stradling, "Certificate Transparency Version 2.0", RFC 9162, DOI 10.17487/RFC9162, , <https://www.rfc-editor.org/info/rfc9162>.
[RFC8555]
Barnes, R., Hoffman-Andrews, J., McCarney, D., and J. Kasten, "Automatic Certificate Management Environment (ACME)", RFC 8555, DOI 10.17487/RFC8555, , <https://www.rfc-editor.org/info/rfc8555>.
[RFC9052]
Schaad, J., "CBOR Object Signing and Encryption (COSE): Structures and Process", STD 96, RFC 9052, DOI 10.17487/RFC9052, , <https://www.rfc-editor.org/info/rfc9052>.
[RFC9449]
Fett, D., Campbell, B., Bradley, J., Lodderstedt, T., Jones, M., and D. Waite, "OAuth 2.0 Demonstrating Proof of Possession (DPoP)", RFC 9449, DOI 10.17487/RFC9449, , <https://www.rfc-editor.org/info/rfc9449>.
[RFC9460]
Schwartz, B., Bishop, M., and E. Nygren, "Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)", RFC 9460, DOI 10.17487/RFC9460, , <https://www.rfc-editor.org/info/rfc9460>.
[ANS-SPEC]
Agent Name Service project, "Agent Name Service Specifications, ANS-0 through ANS-6", , <https://github.com/agentnameservice/ans-registry/tree/main/spec>.

14.2. Informative References

[RFC7595]
Thaler, D., Ed., Hansen, T., and T. Hardie, "Guidelines and Registration Procedures for URI Schemes", BCP 35, RFC 7595, DOI 10.17487/RFC7595, , <https://www.rfc-editor.org/info/rfc7595>.
[RFC8552]
Crocker, D., "Scoped Interpretation of DNS Resource Records through "Underscored" Naming of Attribute Leaves", BCP 222, RFC 8552, DOI 10.17487/RFC8552, , <https://www.rfc-editor.org/info/rfc8552>.
[RFC9849]
Rescorla, E., Oku, K., Sullivan, N., and C. A. Wood, "TLS Encrypted Client Hello", RFC 9849, DOI 10.17487/RFC9849, , <https://www.rfc-editor.org/info/rfc9849>.
[I-D.mozleywilliams-dnsop-dnsaid]
Mozley, J., Williams, N., Sarikaya, B., Schott, R., and J. Damick, "DNS for AI Discovery", Work in Progress, Internet-Draft, draft-mozleywilliams-dnsop-dnsaid-02, , <https://datatracker.ietf.org/doc/html/draft-mozleywilliams-dnsop-dnsaid-02>.
[I-D.ietf-scitt-architecture]
Birkholz, H., Delignat-Lavaud, A., Fournet, C., Deshpande, Y., and S. Lasker, "An Architecture for Trustworthy and Transparent Digital Supply Chains", Work in Progress, Internet-Draft, draft-ietf-scitt-architecture-22, , <https://datatracker.ietf.org/doc/html/draft-ietf-scitt-architecture-22>.
[I-D.narajala-ans]
Huang, K., Narajala, V. S., Habler, I., and A. Sheriff, "Agent Name Service (ANS): A Universal Directory for Secure AI Agent Discovery and Interoperability", Work in Progress, Internet-Draft, draft-narajala-ans-00, , <https://datatracker.ietf.org/doc/html/draft-narajala-ans-00>.
[I-D.narajala-courtney-ansv2]
Courtney, S., Narajala, V. S., Huang, K., Habler, I., and A. Sheriff, "Agent Name Service v2 (ANS): A Domain-Anchored Trust Layer for Autonomous AI Agent Identity", Work in Progress, Internet-Draft, draft-narajala-courtney-ansv2-01, , <https://datatracker.ietf.org/doc/html/draft-narajala-courtney-ansv2-01>.
[ANSv1]
Narajala, V. S., Huang, K., Habler, I., and A. Sheriff, "Agent Name Service (ANS): A Universal Directory for Secure AI Agent Discovery and Interoperability", IEEE ICAIC 2026, .
[MCP]
Anthropic, "Model Context Protocol Specification", , <https://modelcontextprotocol.io/specification/2026-07-28>.
[A2A]
A2A Project, "Agent2Agent (A2A) Protocol Specification", , <https://a2a-protocol.org/latest/specification/>.
[C2SP]
Community Cryptography Specification Project, "C2SP tlog-checkpoint and tlog-tiles specifications", <https://c2sp.org/>.
[HCS27]
Hashgraph Online, "HCS-27: Merkle Tree Profile and Proofs", <https://hol.org/docs/standards/hcs-27/merkle-profile/>.
[CABF-BR]
CA/Browser Forum, "Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates", <https://cabforum.org/working-groups/server/baseline-requirements/>.

Changes from draft-narajala-courtney-ansv2-01

Authors' Addresses

Scott Courtney
GoDaddy
Vineeth Sai Narajala
OWASP
Ken Huang
DistributedApps.ai
Idan Habler
OWASP
Akram Sheriff
Cisco Systems