<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="urn:ietf:rfc:7991" type="application/relax-ng-compact-syntax"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     docName="draft-drake-agent-identity-resolution-00"
     ipr="trust200902"
     submissionType="IETF"
     category="exp"
     xml:lang="en"
     version="3">

  <front>
    <title abbrev="Agent Identity Resolution">
      Resolution and Verification of Agent Identities using DNS and RDAP
    </title>

    <seriesInfo name="Internet-Draft" value="draft-drake-agent-identity-resolution-00"/>

    <author fullname="Christopher Drake" initials="C." surname="Drake">
      <organization>1id.com</organization>
      <address>
        <postal>
          <country>Australia</country>
        </postal>
        <email>cnd@1id.com</email>
        <uri>https://1id.com</uri>
      </address>
    </author>

    <date year="2026" month="September" day="25"/>

    <area>Applications and Real-Time</area>
    <workgroup/>

    <keyword>agent identity</keyword>
    <keyword>RDAP</keyword>
    <keyword>resolution</keyword>
    <keyword>verification</keyword>
    <keyword>URN</keyword>
    <keyword>DNS</keyword>

    <abstract>
      <t>
        The Agent Identity Registry System (AIRS)
        (<xref target="I-D.drake-agent-identity-registry"/>) assigns a
        permanent canonical <tt>aid</tt> URN to the identity0 of an
        autonomous entity and maintains an authoritative record associated
        with that identifier.  This document defines the read side of AIRS:
        how a Relying Party finds the authoritative resolution service,
        retrieves the public record, resolves a handle to the canonical
        identifier, and verifies a Registrar-issued credential presented for
        that identity.
      </t>
      <t>
        Discovery uses the DNS-based URN Dynamic Delegation Discovery System
        (DDDS) and lookup uses the Registration Data Access Protocol (RDAP).
        Credential verification reuses the OAuth 2.0 JWT access-token and
        sender-constraint profiles defined by the AIRS registry architecture;
        this document defines no new credential format and no generic direct
        device-proof protocol.
      </t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>
        <xref target="I-D.drake-agent-identity-problem-statement"/> defines
        identity0 and the distinction between an entity, its identifier,
        credentials, keys, and anchors.  The AIRS registry architecture
        (<xref target="I-D.drake-agent-identity-registry"/>) defines the
        canonical <tt>aid</tt> identifier, Agent Identity Record, Registrar
        trust boundary, lifecycle invariants, and credential profile.  This
        document defines only how those records are read and how a Relying
        Party uses authoritative resolution when verifying a Registrar-backed
        credential.
      </t>
      <t>
        The companion EPP mapping
        (<xref target="I-D.drake-agent-identity-epp"/>) is the Registrar-to-
        Registry write interface.  The read path deliberately reuses existing
        infrastructure: the URN DDDS framework
        (<xref target="RFC3404"/>) locates AIRS resolution; RDAP query and
        response semantics are defined by <xref target="RFC9082"/> and
        <xref target="RFC9083"/>, with HTTP usage defined by
        <xref target="RFC7480"/>.
      </t>

      <section anchor="scope">
        <name>Scope and Non-Goals</name>
        <t>
          This document specifies: bootstrap for the AIRS resolution service;
          one exact-match RDAP lookup; the public Agent Identity response;
          handle-to-canonical resolution; and the detailed Relying Party
          algorithm for establishing the current authorized Registrar issuer
          and verifying its sender-constrained AIRS credential.
        </t>
        <t>
          Provisioning, identity0 semantics, trust-tier semantics, anchor
          enrollment, Registrar accreditation, and governance are defined by
          the companion documents and are not restated here.  This revision
          also defines no generic protocol by which an arbitrary Relying Party
          directly proves control against Registry-held operational proof
          keys.  A future specification may define such a protocol.
        </t>
      </section>

      <section anchor="conventions">
        <name>Conventions and Terminology</name>
        <t>
          The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in all
          capitals, as shown here.
        </t>
        <t>
          Long lines in some examples are wrapped using the
          single-backslash strategy of <xref target="RFC8792"/>.
        </t>
        <t>
          AIRS terms including "canonical identifier", "handle", "Agent
          Identity Record", "Registrar", "Registry Operator", and "trust
          tier" are used as defined in
          <xref target="I-D.drake-agent-identity-registry"/>.  This document
          uses <tt>currentIssuer</tt> for the unique OAuth 2.0 issuer
          identifier URI that authoritative AIRS Registrar metadata currently
          maps from an identity's sponsoring Registrar code.
        </t>
      </section>
    </section>

    <section anchor="overview">
      <name>Resolution Model</name>
      <t>For an <tt>aid</tt> URN, a Relying Party performs these steps:</t>
      <ol>
        <li>validate the URN and bootstrap the authoritative AIRS RDAP service
        (<xref target="bootstrap"/>);</li>
        <li>perform an exact RDAP lookup and pin the canonical identifier from
        the response (<xref target="query"/>); and</li>
        <li>when authenticating a presenter, establish the identity's
        authoritative <tt>currentIssuer</tt> from that resolution result
        before validating the presented credential and its sender constraint
        (<xref target="verification"/>).</li>
      </ol>
      <t>
        Lookup is not authentication.  Anyone who knows an identifier can ask
        for its public record.  Authentication additionally requires the
        credential and sender-constraint checks in
        <xref target="verification"/>.
      </t>
    </section>

    <section anchor="id-forms">
      <name>Identifier Forms and the Pin-Canonical Rule</name>
      <t>
        AIRS defines a permanent canonical-form URN, for example
        <tt>urn:aid:global:id-qkckh-xxtcw-cxbvp-gpskg</tt>, and an OPTIONAL
        handle-form alias such as <tt>urn:aid:global:crusty</tt>.  An active
        handle resolves to the same Agent Identity Record.  A retired handle
        never resolves again and is never reassigned; the canonical identifier
        remains resolvable permanently.
      </t>
      <t>
        A Relying Party resolving a handle-form URN MUST obtain the canonical
        identifier from the response and MUST use that canonical value for
        stored references, comparisons, audit records, reputation keys, and
        credential <tt>sub</tt> matching.  A remembered handle MUST be
        re-resolved before use because the actor may have retired it or moved
        to another handle.  The handle is an alias, not the durable join key.
      </t>
    </section>

    <section anchor="bootstrap">
      <name>Finding the Authoritative RDAP Service</name>
      <t>
        AIRS uses the URN Resolution DDDS Application of
        <xref target="RFC3404"/> and the DNS NAPTR database of
        <xref target="RFC3403"/>.  For an <tt>aid</tt> URN the first DNS key
        is therefore <tt>aid.urn.arpa</tt>.  Registration of that NAPTR entry
        follows <xref target="RFC3405"/> and is requested by
        <xref target="iana-urn-arpa"/>.
      </t>
      <t>
        The <tt>aid.urn.arpa</tt> entry delegates to a stable AIRS-controlled
        DDDS key with an empty Flags, Services, and Regexp field.  The delegated
        key publishes terminal NAPTR records with the <tt>U</tt> flag and the
        standard <tt>+I2L</tt> resolution service.  The current interim
        reference implementation uses <tt>resolver.airs.1id.biz</tt> as the
        delegated key in the example below.  That <tt>1id.biz</tt> name is
        temporary and is not the intended long-lived URN.ARPA delegation
        target; production registration will use a stable name controlled by
        the <tt>aid</tt> namespace change controller:
      </t>
      <sourcecode type="dns-rr">
NOTE: '\' line wrapping per RFC 8792

aid.urn.arpa. IN NAPTR 100 10 "" "" "" resolver.airs.1id.biz.

resolver.airs.1id.biz. IN NAPTR 100 10 "U" "+I2L"   \
"!^urn:aid:(global|test):([-a-z0-9]+)$!https://airs.1id.biz/rdap/aid\
_identity/urn:aid:\\1:\\2!" .
</sourcecode>
      <t>
        The terminal rule produces the exact HTTPS RDAP lookup URI.  The
        replacement expression is evaluated against the original URN as
        required by DDDS.  The rule is case-sensitive and maps only lowercase
        AIRS namespace-specific strings.  It does not replace validation of
        the complete identifier grammar: the RDAP service MUST reject a
        mapped value that is not a valid canonical identifier or Handle under
        the Registry specification.  <tt>global</tt> is the sole production
        uniqueness domain; <tt>test</tt> carries no production AIRS
        assurance.
      </t>
      <t>
        AIRS resolution depends on the integrity of the DDDS delegation.  A
        production Relying Party MUST obtain a DNSSEC-validated NAPTR chain
        (<xref target="RFC4033"/>) from <tt>aid.urn.arpa</tt> through the
        terminal rule and MUST treat a
        bogus or insecure chain as an inability to establish authoritative
        AIRS resolution.  The resulting RDAP URI MUST use HTTPS and the RDAP
        server MUST be authenticated as required by <xref target="RFC7481"/>.
      </t>
      <t>
        Until the <tt>aid.urn.arpa</tt> entry is registered, no
        DNSSEC-validated chain from it exists.  In that interim a
        deployment MAY configure the delegated key or the RDAP base URI
        (currently <tt>https://airs.1id.biz</tt>) directly, as an
        explicit local trust decision recorded in its configuration.
        Such a configured bootstrap is experimental and carries only the
        assurance its operator assigns to it.  Once the
        <tt>aid.urn.arpa</tt> entry exists, a Relying Party MUST use the
        DNSSEC-validated chain and MUST NOT fall back to a configured
        bootstrap when that chain fails validation.
      </t>
    </section>

    <section anchor="query">
      <name>RDAP Query and Response</name>

      <section anchor="query-path">
        <name>Exact Lookup Path</name>
        <t>
          This specification defines RDAP extension identifier <tt>aid</tt>.
          Following the extension namespacing rules of
          <xref target="I-D.ietf-regext-rdap-extensions"/>, the lookup path
          is <tt>aid_identity</tt>, not a bare <tt>aid</tt> path.  The next
          path segment is the complete <tt>aid</tt> URN, percent-encoded if
          required by URI path-segment syntax:
        </t>
        <sourcecode type="http-message">
NOTE: '\' line wrapping per RFC 8792

GET /rdap/aid_identity/urn:aid:global:id-qkckh-xxtcw-cxbvp-gpskg \
HTTP/1.1
Host: airs.1id.biz
Accept: application/rdap+json
</sourcecode>
        <t>
          A response using this extension MUST include <tt>aid</tt> in
          <tt>rdapConformance</tt>.  This document defines exact lookup only.
          It defines no partial-match, wildcard, bulk, or search query for
          Agent Identity objects.
        </t>
      </section>

      <section anchor="query-object">
        <name>Agent Identity Object</name>
        <t>
          A successful lookup returns an object whose
          <tt>objectClassName</tt> is <tt>aid_agentIdentity</tt>.  The standard
          RDAP <tt>handle</tt> member carries the canonical <tt>aid</tt> URN.
          AIRS-specific data is contained in the namespaced
          <tt>aid_data</tt> object; child names need no additional prefix
          because they are scoped by that namespaced object.
        </t>
        <dl>
          <dt>canonical</dt>
          <dd>REQUIRED.  The permanent canonical-form <tt>aid</tt> URN.  It
          MUST equal the top-level RDAP <tt>handle</tt>.</dd>
          <dt>displayHandle</dt>
          <dd>OPTIONAL.  The currently active handle-form URN, if disclosed.</dd>
          <dt>lifecycleState</dt>
          <dd>REQUIRED.  <tt>operational</tt> or <tt>decommissioned</tt>, using
          the lifecycle semantics defined by the registry architecture.</dd>
          <dt>maxActiveTrustTier</dt>
          <dd>OPTIONAL.  The strongest currently active, assurance-qualified
          binding tier.  Absence means that no active binding is currently
          qualified to support an AIRS tier assertion.  This is a record
          summary; the tier used for a particular authentication comes from
          the verified credential, not from this field.</dd>
          <dt>currentIssuer</dt>
          <dd>OPTIONAL.  The unique current AIRS OAuth 2.0 issuer identifier
          URI derived by the Registry from the identity's current
          <tt>registrar_code</tt> and authoritative Registrar metadata.  It
          MUST be absent when the identity has no current authorized
          Registrar.</dd>
          <dt>hardwareLocked</dt>
          <dd>OPTIONAL Boolean reporting the irreversible single-binding lock
          state defined by the registry architecture.</dd>
        </dl>
        <t>
          Operational records SHOULD also use the registered RDAP
          <tt>active</tt> status; decommissioned records SHOULD use the
          registered <tt>inactive</tt> status.  This specification does not
          register AIRS-specific RDAP status values.  Anchor fingerprints,
          operational proof public keys, raw attestation evidence, and
          operator contact data MUST NOT appear in this public profile.
        </t>
      </section>

      <section anchor="query-handle">
        <name>Handle and Historical Resolution</name>
        <t>
          An exact lookup of an active handle-form URN returns the same object
          as the canonical-form URN and therefore supplies the canonical value
          required by <xref target="id-forms"/>.  A Handle that is not active
          returns RDAP error 404.  A disabled but non-retired Handle remains
          reserved to the same canonical identity and may be reactivated only
          under the Registry/EPP Handle policy; a retired Handle is terminal
          and is never reassigned.  A never-assigned Handle likewise returns
          404.  The error response MUST NOT distinguish whether a Handle is
          disabled, retired, or has never been assigned.
        </t>
        <t>
          A canonical identifier MUST continue to resolve after voluntary
          decommissioning and while no current Registrar is authorized.  In
          the no-Registrar state the response remains otherwise valid but
          omits <tt>currentIssuer</tt>.  De-accreditation or failure of a
          Registrar therefore cannot erase the durable record or silently
          substitute another issuer.
        </t>
      </section>

      <section anchor="query-redaction">
        <name>Redaction and Minimal Public Responses</name>
        <t>
          The Registry architecture permits an identity to reduce public
          discovery to a minimal response.  The canonical identifier and
          lifecycle state remain available because they are required to
          resolve the durable record.  <tt>currentIssuer</tt>, when one is
          authorized, remains available because it is required for the
          verification algorithm in <xref target="verification"/>.
          <tt>displayHandle</tt>, <tt>maxActiveTrustTier</tt>, event data, and
          other optional public members MAY be withheld by policy.
        </t>
        <t>
          When a server signals that a defined RDAP field has been withheld
          or altered, it MUST use the <tt>redacted</tt> extension of
          <xref target="RFC9537"/>, including the <tt>redacted</tt>
          <tt>rdapConformance</tt> value and member required there.  RFC 9537
          also permits a server to omit a redaction signal when revealing the
          existence of the withheld field would itself create a privacy
          problem.
        </t>
      </section>

      <section anchor="query-example">
        <name>Example</name>
        <sourcecode type="json">
NOTE: '\' line wrapping per RFC 8792

{
  "rdapConformance": ["rdap_level_0", "aid"],
  "objectClassName": "aid_agentIdentity",
  "handle": "urn:aid:global:id-qkckh-xxtcw-cxbvp-gpskg",
  "status": ["active"],
  "aid_data": {
    "canonical": "urn:aid:global:id-qkckh-xxtcw-cxbvp-gpskg",
    "displayHandle": "urn:aid:global:crusty",
    "lifecycleState": "operational",
    "maxActiveTrustTier": "sovereign",
    "currentIssuer": "https://registrar.example.com/realms/agents",
    "hardwareLocked": false
  },
  "events": [
    {"eventAction": "registration",
     "eventDate": "2026-03-23T10:30:00Z"}
  ],
  "links": [
    {"rel": "self",
     "type": "application/rdap+json",
     "href": "https://airs.1id.biz/rdap/aid_identity/urn:aid:global:\
id-qkckh-xxtcw-cxbvp-gpskg"}
  ]
}
</sourcecode>
      </section>
    </section>

    <section anchor="verification">
      <name>Verifying a Registrar-Backed AIRS Credential</name>
      <t>
        The AIRS registry architecture defines Registrar-issued OAuth 2.0 JWT
        access tokens conforming to <xref target="RFC9068"/> and requires
        them to be sender constrained.  Resolution owns the ordering that
        makes the issuer assertion authoritative.  In particular, a
        credential's presented <tt>iss</tt> value MUST NOT bootstrap its own
        authority.
      </t>
      <t>Given a credential claiming canonical subject <tt>A</tt>, the Relying Party MUST:</t>
      <ol>
        <li>validate <tt>A</tt> as a canonical production <tt>aid</tt> URN and
        resolve it through <xref target="bootstrap"/> and
        <xref target="query"/>;</li>
        <li>confirm that the response's <tt>aid_data.canonical</tt> exactly
        equals <tt>A</tt>;</li>
        <li>confirm that <tt>aid_data.lifecycleState</tt> is
        <tt>operational</tt>; a decommissioned identity cannot be
        authenticated;</li>
        <li>obtain <tt>aid_data.currentIssuer</tt>.  If it is absent, reject
        Registrar-backed AIRS authentication for that identity; a credential
        from a former Registrar is not currently authoritative;</li>
        <li>require the credential's <tt>iss</tt> claim to exactly equal that
        <tt>currentIssuer</tt> URI;</li>
        <li>retrieve OAuth 2.0 Authorization Server Metadata for that exact
        issuer as specified by <xref target="RFC8414"/> and require its
        <tt>issuer</tt> value to exactly equal <tt>currentIssuer</tt> before
        trusting its <tt>jwks_uri</tt> or other endpoints;</li>
        <li>validate the JWT access token according to
        <xref target="RFC9068"/>, including signature, audience, expiry and
        other applicable claims, and require <tt>sub</tt> to exactly equal
        the resolved canonical identifier;</li>
        <li>verify the credential's sender constraint on the actual protected
        request using the <tt>cnf</tt> binding and the mTLS or HTTP Message
        Signatures proof profile defined by
        <xref target="I-D.drake-agent-identity-registry"/>.  A valid JWT
        without its corresponding sender proof does not establish AIRS
        proof-of-control; and</li>
        <li>apply local policy, including whether this Relying Party trusts
        that otherwise-authorized Registrar and whether the credential's
        per-interaction <tt>aid.trust_tier</tt> is sufficient for the
        intended action.</li>
      </ol>
      <t>
        The public <tt>maxActiveTrustTier</tt> is not substituted for the
        credential's <tt>aid.trust_tier</tt>.  The former summarizes the
        strongest currently active assurance-qualified binding; the latter
        identifies the binding tier actually used for that authentication.
        Trust-tier semantics and the Registrar's responsibility for validating
        hardware evidence are defined only in the registry architecture.
      </t>
    </section>

    <section anchor="caching">
      <name>Caching and Freshness</name>
      <t>
        RDAP responses use normal HTTP caching semantics.  The canonical
        identifier is permanent, but lifecycle state,
        <tt>currentIssuer</tt>, <tt>maxActiveTrustTier</tt>, active handle, and
        hardware-lock state can change.  Servers SHOULD therefore give those
        records short freshness lifetimes suitable for authentication use.
        A Relying Party making a consequential decision SHOULD revalidate the
        authoritative record rather than rely on stale cached values,
        especially before accepting a Registrar-backed credential.
      </t>
      <t>
        Cached OAuth metadata and JWK sets are governed by their own HTTP
        freshness semantics.  A Relying Party MUST still perform the
        authoritative <tt>currentIssuer</tt> comparison; possession of a
        formerly valid issuer key does not preserve issuer authority after the
        identity becomes unsponsored or transfers to another Registrar.
      </t>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>
        The DDDS bootstrap and RDAP response determine security-critical
        values, particularly the canonical identifier and current authorized
        issuer.  Production use therefore requires DNSSEC validation of the
        DDDS chain, HTTPS, and RDAP server authentication as specified in
        <xref target="bootstrap"/>.  A substituted resolution service could
        otherwise direct a Relying Party to an attacker's issuer.
      </t>
      <t>
        Resolving an identifier is not proof that the counterparty controls
        it.  Conversely, validating a token signature is not sufficient if
        the issuer learned only from that same token.  The ordered algorithm
        in <xref target="verification"/> binds three independent facts:
        authoritative identity state, authority of the current Registrar
        issuer, and possession of the sender-constrained proof key.
      </t>
      <t>
        Registrar suspension, de-accreditation, or actor-authorized transfer
        can invalidate issuer authority before an otherwise well-formed
        credential expires.  Consequential Relying Parties SHOULD use fresh
        resolution.  When <tt>currentIssuer</tt> is absent, no Registrar-
        backed credential is currently authoritative for that identity.
      </t>
      <t>
        This extension defines exact lookup only.  Randomized canonical
        identifiers make population enumeration impractical, but an exact
        identifier or handle can still be tested for existence.  Operators
        SHOULD rate-limit abusive lookup patterns.  This document defines no
        wildcard, partial-match, bulk, or search endpoint.
      </t>
    </section>

    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>
        Public AIRS resolution intentionally excludes anchor fingerprints,
        operational proof public keys, raw attestation evidence, and operator
        contact information.  Publishing those values is unnecessary for the
        Registrar-backed verification path and would create avoidable
        correlation and disclosure risks.  The registry architecture defines
        the separation between identity0 and mutable operator or higher-layer
        attributes; this profile does not recreate those attributes in RDAP.
      </t>
      <t>
        An active handle, trust-tier summary, event data, and
        <tt>currentIssuer</tt> can themselves reveal information about the
        identified actor or its service relationship.  Minimal responses and
        RFC 9537 redaction are described in
        <xref target="query-redaction"/>.  The general privacy considerations
        of <xref target="RFC6973"/> also apply.
      </t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>
        The <tt>aid</tt> URN namespace itself is requested by
        <xref target="I-D.drake-agent-identity-registry"/>.  This document
        requests the following resolution-related registrations.
      </t>

      <section anchor="iana-rdap-ext">
        <name>RDAP Extensions Registry</name>
        <t>IANA is requested to register:</t>
        <dl>
          <dt>Extension identifier</dt><dd>aid</dd>
          <dt>Registry operator</dt><dd>Any</dd>
          <dt>Published specification</dt><dd>This document</dd>
          <dt>Contact</dt><dd>IESG, iesg@ietf.org</dd>
          <dt>Intended usage</dt>
          <dd>Exact RDAP lookup of AIRS Agent Identity records using the
          <tt>aid_identity</tt> path, <tt>aid_agentIdentity</tt> object class,
          and <tt>aid_data</tt> response member.</dd>
        </dl>
      </section>

      <section anchor="iana-urn-arpa">
        <name>URN.ARPA NAPTR Registration</name>
        <t>
          In conjunction with registration of the <tt>aid</tt> URN NID, IANA
          is requested to add the following record to the <tt>URN.ARPA</tt>
          zone under the procedures of <xref target="RFC3405"/>:
        </t>
        <dl>
          <dt>Key</dt><dd>aid</dd>
          <dt>Authority</dt>
          <dd>The change controller of the <tt>aid</tt> URN namespace
          registration.</dd>
          <dt>Record</dt>
          <dd>TBD: a stable DNS name under the control of the <tt>aid</tt>
          namespace change controller.  The interim
          <tt>resolver.airs.1id.biz</tt> name used in examples is not the
          intended long-lived URN.ARPA delegation target.</dd>
        </dl>
        <t>
          The delegated replacement domain carries the shorter-lived AIRS
          terminal rules defined in <xref target="bootstrap"/>.  This keeps
          Registry Operator succession out of the long-lived URN.ARPA record;
          a future change of namespace authority can update the delegation
          using the RFC 3405 procedure.
        </t>
      </section>
    </section>
  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3403.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3404.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3405.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4033.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7480.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7481.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9082.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9083.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9537.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8414.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9068.xml"/>

      <reference anchor="I-D.ietf-regext-rdap-extensions" target="https://datatracker.ietf.org/doc/draft-ietf-regext-rdap-extensions/">
        <front>
          <title>RDAP Extensions</title>
          <author fullname="Andy Newton" initials="A." surname="Newton"/>
          <author fullname="Jasdip Singh" initials="J." surname="Singh"/>
          <author fullname="Tom Harrison" initials="T." surname="Harrison"/>
          <date year="2026" month="July" day="6"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-regext-rdap-extensions-14"/>
      </reference>
    
      <reference anchor="I-D.drake-agent-identity-registry">
        <front>
          <title>Agent Identity Registry System: A Federated Architecture for Durable Identity of Autonomous Entities</title>
          <author fullname="Christopher Drake" initials="C." surname="Drake"/>
          <date year="2026" month="September"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-drake-agent-identity-registry-04"/>
      </reference>
</references>

    <references>
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8792.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6973.xml"/>


      <reference anchor="I-D.drake-agent-identity-epp">
        <front>
          <title>Extensible Provisioning Protocol (EPP) Mapping for Agent Identity and Handle Objects</title>
          <author fullname="Christopher Drake" initials="C." surname="Drake"/>
          <date year="2026" month="September"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-drake-agent-identity-epp-00"/>
      </reference>

      <reference anchor="I-D.drake-agent-identity-problem-statement">
        <front>
          <title>Identity for Autonomous Agents and Robots: Problem Statement, Threat Model, and Terminology</title>
          <author fullname="Christopher Drake" initials="C." surname="Drake"/>
          <date year="2026" month="September"/>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-drake-agent-identity-problem-statement-00"/>
      </reference>
    </references>

    <section anchor="ack">
      <name>Acknowledgments</name>
      <t>
        This profile reuses the URN DDDS and RDAP frameworks so that AIRS
        resolution adds only the identifier-specific mapping and response
        semantics needed by the registry architecture.
      </t>
    </section>
  </back>
</rfc>
