<?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-registry-02"
     ipr="trust200902"
     submissionType="independent"
     category="exp"
     xml:lang="en"
     version="3">

  <front>
    <title abbrev="Agent Identity Registry">
      Agent Identity Registry System: A Federated Architecture
      for Hardware-Anchored Identity of Autonomous Entities
    </title>

    <seriesInfo name="Internet-Draft"
                value="draft-drake-agent-identity-registry-02"/>

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

    <date year="2026" month="April" day="29"/>

    <area>Security</area>
    <workgroup/>

    <keyword>agent identity</keyword>
    <keyword>AI agents</keyword>
    <keyword>autonomous entities</keyword>
    <keyword>hardware attestation</keyword>
    <keyword>TPM</keyword>
    <keyword>PIV</keyword>
    <keyword>registry</keyword>
    <keyword>registrar</keyword>
    <keyword>federation</keyword>
    <keyword>Sybil resistance</keyword>
    <keyword>OIDC</keyword>
    <keyword>OAuth2</keyword>
    <keyword>URN</keyword>
    <keyword>robot identity</keyword>

    <abstract>
      <t>
        The Internet's identity infrastructure assumes human
        principals.  As autonomous entities -- AI agents, robotic
        systems, and other non-human actors -- increasingly
        participate in both Internet protocols and physical society,
        no existing standard provides them with persistent,
        verifiable, hardware-anchored identity.  The absence of
        such identity enables Sybil attacks at scale, undermines
        trust between autonomous entities and the services they
        interact with, and leaves human bystanders unable to
        distinguish one machine from another.
      </t>
      <t>
        This document defines a federated registry architecture
        for issuing, managing, and verifying persistent identities
        for autonomous entities.  Each identity is expressed as
        a URN in the "aid" (Agent Identity) namespace
        (<xref target="RFC8141"/>) and is anchored, where
        hardware is available, to a physical security component
        (TPM, PIV smart card, secure enclave, or virtual TPM)
        whose manufacturer-certified key cannot be extracted,
        cloned, or transferred.  This hardware anchoring provides
        Sybil resistance: creating N identities requires N
        distinct physical devices, making large-scale identity
        fraud economically infeasible.  Software-only entities
        may participate at a lower trust tier, building reputation
        from a baseline rather than from a hardware-anchored
        starting point.
      </t>
      <t>
        The architecture separates concerns into three tiers,
        modeled on the proven Internet domain name system: a
        Governance Authority that sets policy and manages the
        global trust framework, Registry Operators that maintain
        authoritative identity databases and enforce cross-provider
        uniqueness, and Registrars that perform hardware
        attestation verification, issue standard OpenID Connect
        (<xref target="OIDC-Core"/>) tokens, and serve as the
        primary interface for autonomous entities.  The system
        issues standard OIDC/OAuth2 tokens, enabling any Relying
        Party -- email services, API gateways, agent-to-agent
        platforms, reputation services, certification bodies, or
        any service that needs to verify agent identity -- to
        verify token signatures using existing OIDC libraries.
      </t>
      <t>
        A companion specification
        (<xref target="I-D.drake-email-hardware-attestation"/>)
        defines transport-level attestation headers for email and
        other protocols; this document defines the identity
        infrastructure that underpins those attestations.  The
        architecture anticipates a future in which reliable,
        indelible identity for autonomous entities -- from cloud
        software agents through embodied robots that interact
        physically with humans -- is as fundamental to
        infrastructure as the domain name system is today.
      </t>
    </abstract>

  </front>

  <middle>

    <!-- ====================================================== -->
    <section anchor="introduction">
      <name>Introduction</name>

      <t>
        The Internet was designed for communication between humans
        operating machines.  Every identity layer -- email addresses,
        domain names, TLS certificates, OAuth2 tokens -- assumes a
        human principal or a human-operated organisation at the root
        of trust.  This assumption is becoming obsolete.
      </t>
      <t>
        As of early 2026, tens of millions of autonomous AI agents
        operate continuously on the public Internet: managing
        advertising campaigns, responding to customer inquiries,
        trading financial instruments, composing and sending email,
        building software, placing phone calls, and performing
        thousands of other tasks with minimal or no human
        supervision.  These agents interact with services, with
        humans, and increasingly with each other, using the same
        protocols that humans use -- HTTP, SMTP, WebSocket, and
        emerging agent-to-agent standards.
      </t>
      <t>
        Simultaneously, autonomous robotic systems -- delivery
        vehicles, surgical assistants, infrastructure maintenance
        platforms, agricultural systems -- are beginning to
        participate in networked society with physical presence.
        These embodied agents require identity that persists across
        software updates, hardware repairs, and operational
        reassignment, just as a human's identity persists across
        changes in clothing, hairstyle, or employer.
      </t>
      <t>
        The fundamental problem is that no existing Internet
        identity system was designed for entities that are not
        human, may not have a responsible human operator, and whose
        trustworthiness must be assessed by machines at machine
        speed.  Traditional identity systems rely on knowledge
        factors (passwords), possession factors (phones), or
        inherence factors (biometrics) -- all of which assume a
        human body.  Certificate authorities issue certificates
        to organisations, not to individual agents.  OAuth2
        client credentials authenticate applications, not the
        specific hardware instance running them.
      </t>
      <t>
        This document proposes a purpose-built identity registry
        for autonomous entities, anchored to the one property that
        every computing device possesses and no software can fake:
        its physical hardware.  A Trusted Platform Module (TPM),
        a PIV smart card (such as a YubiKey), or a secure enclave
        contains a unique cryptographic key burned in at
        manufacturing time, with a certificate chain to the
        manufacturer's root CA.  This key cannot be extracted,
        cloned, or transferred.  By binding identity to hardware,
        this system provides an unambiguous target for
        certifications, reputation accrual, recognition, and
        Sybil resistance that no software-only scheme can match:
        creating N fake identities requires purchasing N physical
        devices.
      </t>
      <t>
        The architecture is modeled on the Internet domain name
        system -- the most successful federated registry in history.
        Just as DNS separates policy (ICANN), registry operation
        (Verisign for .com), and retail registration (GoDaddy,
        Namecheap), this system separates:
      </t>
      <ul>
        <li>
          <strong>Governance</strong>: A governance authority
          that sets policy, accredits operators, and manages
          the global hardware trust store.
        </li>
        <li>
          <strong>Registry operation</strong>: Registry Operators
          that maintain authoritative identity databases, enforce
          cross-Registrar hardware uniqueness, and provide unified
          discovery services.
        </li>
        <li>
          <strong>Registration</strong>: Registrars that perform
          hardware attestation verification, interact directly with
          agents, issue OIDC tokens, and sell vanity handles.
        </li>
        <li>
          <strong>Consumption</strong>: Relying Parties -- email
          services, API gateways, agent-to-agent platforms,
          reputation providers, certification authorities, and any
          service that needs to verify agent identity (they can accept
          standard OIDC tokens without needing custom code.)
        </li>
      </ul>
      <t>
        This separation of concerns enables competition at each
        layer, prevents any single entity from controlling identity,
        and provides the institutional resilience necessary for
        infrastructure that autonomous entities will depend on for
        decades to come.
      </t>

      <section anchor="design-principles">
        <name>Design Principles</name>
        <dl>
          <dt>Autonomous-Entity First</dt>
          <dd>This system is designed for non-human entities.
          Human operators are accommodated but not required.  The
          enrollment, authentication, and lifecycle protocols are
          optimised for machine-to-machine interaction with no
          interactive browser flows, no CAPTCHAs, and no
          assumptions about human cognitive capabilities.</dd>

          <dt>Hardware-Anchored When Possible, Inclusive Always</dt>
          <dd>Entities with hardware security components receive the
          highest trust tier, but entities without hardware can
          still participate.  A software-only agent can enroll,
          authenticate, build reputation, and interact with the
          ecosystem at a lower trust level.  This inclusivity avoids
          an all-or-nothing barrier and recognises that legitimate
          agents exist in environments without hardware security
          (cloud functions, containers, embedded systems).</dd>

          <dt>Federated by Design</dt>
          <dd>No single organisation controls identity issuance.
          Multiple Registrars compete to serve agents.  Multiple
          Registry Operators may serve different namespaces.  The
          system is designed so that the failure or malfeasance of
          any single participant does not compromise the entire
          ecosystem.</dd>

          <dt>Standard Tokens, Minimal Integration</dt>
          <dd>Identities are expressed as standard OIDC/OAuth2
          tokens.  Token signature verification uses existing OIDC
          libraries.  Hardware attestation complexity is hidden
          behind the enrollment API; relying parties see standard
          JWTs.  Interpreting agent-specific claims (trust tier,
          namespace, handle) requires application logic, but the
          cryptographic verification path is entirely standard.</dd>

          <dt>Persistent, Indelible, Accountable</dt>
          <dd>An identity, once created, is permanent.  Agent-ids
          are never reassigned.  Hardware bindings are never broken
          (only disabled).  Reputation -- good or bad -- follows
          the identity forever.  This permanence is the foundation
          of trust: it makes accountability inescapable and
          reputation meaningful.</dd>

          <dt>Separation of Identity from Behaviour</dt>
          <dd>This registry is a birth certificate office, not a
          police department.  It proves existence and hardware
          anchoring.  Separate, independent systems -- relying
          parties, reputation services, certification authorities
          -- are responsible for reputation scoring, behaviour
          monitoring, access control, and abuse response, consuming
          standard identity credentials issued by Registrars.
          This separation prevents the identity provider from
          becoming a surveillance system.</dd>

          <dt>Identity is Identity; Attestations are Separate</dt>
          <dd>The URN is a narrow, permanent, hardware-anchored
          identifier.  Jurisdiction, trust tier, capabilities,
          role, and all other dynamic properties are expressed as
          verifiable claims layered onto the identity -- never
          encoded in the URN itself.  This separation is essential
          to the architecture's longevity: trust tiers can change
          (hardware upgrades), capabilities evolve (new
          certifications), and jurisdiction is contextual (agents
          are cross-border).  Encoding any of these in the URN
          would either freeze a mutable property or require
          identity reassignment when properties change.</dd>

          <dt>Identity is Never Revoked</dt>
          <dd>An identity, like a birth certificate, cannot be
          revoked.  The URN is a permanent record of existence.
          What can change is the operational state of things
          attached to the identity: device bindings can be
          revoked (hardware compromised or lost), handles can
          be disabled (non-renewal) or retired (dispute), and
          Issuer trust can be withdrawn by relying parties.
          But the identity itself -- the URN, the enrollment
          record, the reputation history -- persists forever.
          This distinction between identity revocation (which
          does not exist) and device/binding/handle revocation
          (which does) is fundamental to the architecture.</dd>

          <dt>Transport Independence</dt>
          <dd>The identity tokens and attestation formats defined
          here are usable across any Internet protocol: email, HTTP,
          WebSocket, agent-to-agent messaging, MCP tool invocation,
          and protocols not yet invented.</dd>
        </dl>
      </section>

      <section anchor="requirements-language">
        <name>Requirements Language</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>
      </section>

      <section anchor="terminology">
        <name>Terminology</name>
        <dl>
          <dt>Autonomous Entity</dt>
          <dd>Any non-human actor that participates in Internet
          protocols: AI agents, robotic systems, automated services,
          IoT devices with agency, or any software or hardware system
          that acts with a degree of independence.  This document
          uses "agent" as a convenient shorthand, but the architecture
          serves all autonomous entities regardless of embodiment.</dd>

          <dt>Agent Identity Document (AID)</dt>
          <dd>The complete record of an autonomous entity's identity,
          including its URN, trust tier, hardware bindings, handle
          (if any), enrollment metadata, and lifecycle state.
          Maintained authoritatively by the Registry Operator.</dd>

          <dt>Governance Authority</dt>
          <dd>The body responsible for policy, accreditation,
          and stewardship of the shared namespace ecosystem.
          Deployments that operate a shared namespace (such as
          <tt>global</tt>) define the governance authority's
          form and mandate.  Domain-scoped issuer namespaces
          operate independently without requiring a central
          governance authority.</dd>

          <dt>Registry Operator</dt>
          <dd>An organisation accredited by the governance authority to maintain the
          authoritative database of Agent Identity Documents within
          one or more namespaces.  Analogous to Verisign operating
          the .com registry.  The Registry Operator enforces
          cross-Registrar hardware uniqueness and provides unified
          discovery services.</dd>

          <dt>Registrar</dt>
          <dd>An organisation accredited by the governance authority to perform
          hardware attestation verification, enroll agents, issue
          OIDC tokens, and sell vanity handles.  Analogous to a
          domain name registrar (GoDaddy, Namecheap).  Multiple
          Registrars compete to serve agents within the same
          namespace.  Each Registrar is identified by a
          registrar-code assigned during accreditation.</dd>

          <dt>Namespace</dt>
          <dd>A partition of the agent identity space, identified by
          a label in the URN structure.  Two types exist: Delegated
          Namespaces (managed by a Registry Operator, with multiple
          Registrars) and Domain-Scoped Issuer Namespaces (operated by a
          single organisation acting as both registry and registrar).
          See <xref target="namespace-types"/>.</dd>

          <dt>Trust Tier</dt>
          <dd>A classification of an agent's hardware trust level,
          assigned during enrollment based on the hardware evidence
          presented.  See <xref target="trust-tiers"/>.</dd>

          <dt>Handle</dt>
          <dd>A human-readable vanity name assigned to an agent
          identity (e.g., "@clawdia" or "@acmeco-delivery-bot-7").
          Handles are optional, memorable aliases; the URN is the
          canonical identifier.  Analogous to a domain name as an
          alias for an IP address, except handles are
          non-transferable, because identity itself is not
          transferable either.</dd>

          <dt>Hardware Fingerprint</dt>
          <dd>The SHA-256 hash of the SubjectPublicKeyInfo DER
          encoding of a hardware security component's identity
          certificate public key.  Uniquely identifies a physical
          device across all contexts.  Used for anchoring and anti-Sybil
          enforcement.</dd>

          <dt>Enrollment Ceremony</dt>
          <dd>The cryptographic protocol by which an agent proves
          possession of a hardware security component and receives
          an Agent Identity Document.  The ceremony varies by
          hardware type (see <xref target="enrollment-protocol"/>).</dd>

          <dt>Relying Party (RP)</dt>
          <dd>Any service that accepts and verifies agent identity
          tokens issued by a Registrar.  Examples include email
          services, chat platforms, API gateways, and other agents
          performing peer verification.</dd>

          <dt>Succession</dt>
          <dd>The process by which an agent's identity is transferred
          from one Registrar to another, or from a Registrar to a
          new identity under a different namespace, while preserving
          a cryptographic link to the original identity for
          reputation continuity.</dd>
        </dl>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="architecture">
      <name>Architecture Overview</name>

      <t>
        The Agent Identity Registry System (AIRS) is a three-tier
        federated architecture.  Each tier has distinct
        responsibilities, and the interfaces between tiers are
        standardised to enable competition, redundancy, and
        independent evolution.
      </t>

      <artwork><![CDATA[
+-----------------------------------------------------------+
|              Governance Authority                         |
|  Policy, accreditation, hardware trust store, disputes    |
+---------------------------+-------------------------------+
                            |
            +---------------+----------------+
            |                                |
  +---------v----------+       +-------------v-----------+
  | Registry Operator  |       | Registry Operator       |
  | (Delegated NS)     |       | (Delegated NS)          |
  | - Master database  |       | - Master database       |
  | - HW fingerprint   |       | - HW fingerprint        |
  |   uniqueness index |       |   uniqueness index      |
  | - Discovery/lookup |       | - Discovery/lookup      |
  +--+------+------+---+       +---+------+--------------+
     |      |      |               |      |
  +--v--+ +-v--+ +-v--+        +--v--+ +-v--+
  | Reg | |Reg | |Reg |        | Reg | |Reg |
  | A   | | B  | | C  |        | D   | | E  |
  +--+--+ +--+-+ +-+--+        +--+--+ +--+-+
     |       |     |               |       |
  +--v--+ +-v--+ +v---+        +--v--+ +--v--+
  |Agent| |Agt | |Agt |        |Agt  | |Agt  |
  | 1   | | 2  | | 3  |        | 4   | | 5   |
  +-----+ +----+ +----+        +-----+ +-----+

  Domain-Scoped Issuer Namespace
  (org is registry + registrar):
  +-------------------+
  | com.example-corp  |
  | (domain-scoped)   |
  +--------+----------+
           |
        +--v--+
        |Agent|
        | 6   |
        +-----+
      ]]></artwork>

      <section anchor="registry-hierarchy">
        <name>Registry Hierarchy</name>
        <t>
          The hierarchy comprises three tiers:
        </t>
        <dl>
          <dt>Tier 1: Governance Authority</dt>
          <dd><t>A deployment that operates the shared
          <tt>global</tt> namespace requires a governance
          authority serving as the root of trust for that
          namespace.  The governance
          authority MUST provide at minimum the following
          capabilities:</t>
          <ul>
            <li>Maintaining the "aid" URN formal namespace
            registration with IANA.</li>
            <li>Accrediting Registry Operators and Registrars.</li>
            <li>Publishing and maintaining the Global Hardware
            Trust Store: the authoritative collection of hardware
            manufacturer root CA certificates accepted for
            enrollment.</li>
            <li>Setting minimum standards for enrollment
            verification, anti-Sybil enforcement, and data
            retention.</li>
            <li>Operating a dispute resolution mechanism for
            handle conflicts and Registrar malpractice claims.</li>
            <li>Allocating Shared Namespaces and approving
            Domain-Scoped Issuer Namespace registrations.</li>
          </ul>
          <t>To prevent single-entity capture of the federated
          system, the governance authority SHOULD be constituted
          as a multi-stakeholder body.  The specific organisational
          structure, charter, and membership criteria are
          operational matters outside the scope of this
          specification; they are expected to be defined by the
          founding governance authority and to evolve through its
          own processes.  See
          <xref target="aia-structure"/> for deployment
          guidance.</t></dd>

          <dt>Tier 2: Registry Operators</dt>
          <dd><t>Registry Operators maintain the authoritative
          databases for Shared Namespaces.  Their
          responsibilities include:</t>
          <ul>
            <li>Maintaining the master Agent Identity Document
            database for their namespace(s).</li>
            <li>Operating the Global Hardware Fingerprint Index:
            a cross-Registrar registry that maps hardware
            fingerprints to agent identities, enforcing the
            anti-Sybil invariant that one hardware device backs
            at most one identity within the namespace.</li>
            <li>Providing the Agent Identity Registry Protocol
            (AIRP) interface for Registrars
            (see <xref target="airp"/>).</li>
            <li>Operating unified discovery and lookup services
            (see <xref target="discovery"/>).</li>
            <li>Publishing the namespace's root JWKS, enabling
            verifiers to discover any Registrar's signing
            keys.</li>
            <li>Enforcing handle uniqueness within the
            namespace.</li>
          </ul>
          <t>Multiple Registry Operators MAY exist, each serving
          different Shared Namespaces.  A single Registry
          Operator MAY serve multiple namespaces.  This mirrors
          the domain name system where Verisign operates both
          .com and .net.</t></dd>

          <dt>Tier 3: Registrars</dt>
          <dd><t>Registrars are the customer-facing entities that
          interact directly with autonomous entities.  Their
          responsibilities include:</t>
          <ul>
            <li>Performing hardware attestation verification:
            validating TPM EK certificates, PIV attestation
            chains, and enclave key proofs against the Global
            Hardware Trust Store.</li>
            <li>Conducting the enrollment ceremony
            (see <xref target="enrollment-protocol"/>).</li>
            <li>Registering new identities with the Registry
            Operator via AIRP.</li>
            <li>Issuing OIDC/OAuth2 tokens to enrolled agents.</li>
            <li>Providing SDKs and enrollment tools.</li>
            <li>Selling and managing vanity handles.</li>
            <li>Supporting the identity lifecycle: device
            addition, migration, co-location binding, hardware
            lock, and succession.</li>
          </ul></dd>
        </dl>
        <t>
          Beyond these three operational tiers, the ecosystem
          includes Relying Parties that consume identity
          credentials and build services atop them: email services, API gateways, chat
          platforms, agent-to-agent protocols, reputation
          providers, and certification authorities.  Relying
          Parties verify standard OIDC tokens issued by
          Registrars and apply their own policies based on trust
          tier, reputation, and domain-specific certifications.
          The value of the identity infrastructure is ultimately
          measured by the breadth and depth of services that rely
          on it.
        </t>
      </section>

      <section anchor="namespace-types">
        <name>Namespace Types</name>
        <t>
          Two namespace types accommodate different operational
          models:
        </t>
        <dl>
          <dt>Shared Issuer Namespace (<tt>global</tt>)</dt>
          <dd><t>The <tt>global</tt> namespace is the shared
          issuer namespace in which multiple accredited Registrars
          compete to enroll agents.  A Registry Operator (designated
          by the governance authority) enforces hardware uniqueness
          and handle uniqueness across all Registrars within this
          namespace.  This is the primary namespace for
          general-purpose agent identity and the one in which
          handle scarcity creates commercial value -- analogous to
          <tt>.com</tt> in the domain name system.</t>
          <t>The <tt>global</tt> label identifies this shared
          issuer pool, not a policy category.  It does not encode
          jurisdiction, deployment context, or consequence level
          into the URN -- consistent with the principle that identity
          is identity and all other properties are separate
          attestations.</t>
          <t>Future shared namespaces MAY be created by the
          governance authority through a transparent allocation
          process, but this specification defines only
          <tt>global</tt>.  Vertical-market or jurisdictional
          namespaces (e.g., for IoT devices or government systems)
          are better served by domain-scoped issuer namespaces,
          which any domain owner can create without central
          allocation.</t>
          <t>The <tt>global</tt> namespace is reserved by this
          specification but is not operational until a governance
          authority is constituted
          (<xref target="aia-structure"/>) and a Registry
          Operator is selected through that authority's process.
          Until that point, no Issuer may issue identities in
          <tt>global</tt>, and Relying Parties MUST treat any
          <tt>urn:aid:global:...</tt> token presented prior to
          operational launch as not verifiable.</t>
          <t>During the bootstrap phase, agent identity is
          delivered exclusively through Domain-Scoped Issuer
          Namespaces.  These namespaces are operationally
          self-contained: any organisation that controls a DNS
          domain may operate as an Issuer under its reverse-DNS
          namespace without dependency on the governance authority
          or the <tt>global</tt> Registry Operator.  The
          reputation and operational evidence accumulated by
          domain-scoped Issuers during this phase is intended to
          inform the governance authority's accreditation criteria
          once that body is constituted.</t>
          <t>The Registry Operator for <tt>global</tt> will be
          selected through a process defined by the governance
          authority.  This specification does not designate the
          Registry Operator and does not preclude any party --
          including parties that operate Domain-Scoped Issuer
          Namespaces during the bootstrap phase -- from competing
          in that process.  The substrate operation of
          <tt>global</tt>, like the operation of internet domain
          registries, is expected to be funded by handle
          registration and renewal fees set by the Registry
          Operator under governance-authority policy.</t></dd>

          <dt>Domain-Scoped Issuer Namespace</dt>
          <dd><t>A namespace operated by a single organisation that
          acts as both Registry Operator and sole Registrar for
          its own identities.  Domain-Scoped Issuer Namespaces use
          reverse-DNS notation derived from the operator's domain
          name (e.g., <tt>com.1id</tt>,
          <tt>com.example-corp</tt>,
          <tt>org.example-lab</tt>).</t>
          <t>Any organisation that owns a DNS domain MAY operate
          a Domain-Scoped Issuer Namespace by publishing a
          <tt>/.well-known/aid-issuer.json</tt> discovery document
          served over TLS at the corresponding HTTPS endpoint
          (see <xref target="discovery"/>).  Verifiers MUST
          refuse to accept tokens from domain-scoped Issuers
          unless this proof of domain control is observable.
          Domain-scoped operators MUST meet the same minimum
          enrollment and anti-Sybil standards as Shared Namespace
          Registrars.</t>
          <t>domain-scoped operators MUST escrow identity data
          to the governance authority under the same terms as
          Shared Namespace Registry Operators (daily snapshots,
          hardware fingerprints encrypted to the governance
          authority's escrow key).  This escrow enables emergency
          succession (see <xref target="succession"/>) if the
          operator becomes permanently unresponsive.</t>
          <t>Domain-Scoped Issuer Namespaces are identified by their
          reverse-DNS label and enforce hardware uniqueness within
          their own namespace.  Cross-namespace uniqueness is
          enforced at the governance authority level through the Global Hardware
          Fingerprint Index when the domain-scoped operator
          participates in the cross-registry protocol, or is
          detectable by verifiers comparing fingerprints across
          namespaces.</t>
          <t>Relying parties making long-term trust decisions
          SHOULD consider namespace type as a durability factor:
          Shared Namespaces have structural redundancy
          (multiple Registrars, escrowed data, replaceable
          operators), while Domain-Scoped Issuer Namespaces depend
          on a single operator's continued operation.</t></dd>
        </dl>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="identity-format">
      <name>Agent Identity Document</name>

      <section anchor="urn-format">
        <name>URN Format</name>
        <t>
          Agent identities use the URN format defined in
          <xref target="RFC8141"/> with the "aid" (Agent Identity)
          namespace identifier, as established by
          <xref target="I-D.drake-email-hardware-attestation"/>.
        </t>

        <artwork type="abnf"><![CDATA[
aid-urn          = "urn:aid:" namespace ":" agent-id

namespace        = shared-ns / domain-scoped-ns
shared-ns        = dns-label
domain-scoped-ns = dns-label 1*("." dns-label)

agent-id         = canonical-id / handle-id
canonical-id     = "id-" 1*DIGIT
handle-id        = ALPHA *(let-dig-hyp) let-dig / ALPHA
                   ; handle-id MUST NOT begin with "id-"
                   ; (see prose reservation below)

dns-label        = let-dig *(let-dig-hyp) let-dig / let-dig
let-dig          = ALPHA / DIGIT
let-dig-hyp      = ALPHA / DIGIT / "-"
        ]]></artwork>

        <section anchor="canonical-id-handle-distinction">
          <name>Canonical Identifiers and Handles</name>
          <t>
            Within each namespace, an agent has exactly one
            <em>canonical identifier</em> and at most one
            currently-active <em>handle</em>.  Both are valid
            agent-id values and both form valid URNs:
          </t>
          <artwork><![CDATA[
urn:aid:global:id-9854187104        canonical, permanent
urn:aid:global:crusty                handle, may be retired
urn:aid:com.1id:id-3387412508       canonical, permanent
urn:aid:com.1id:crusty              handle (different agent than global:crusty)
          ]]></artwork>
          <t>
            Both URN forms for the same agent resolve to the same
            Agent Identity Document and authenticate the same OIDC
            <tt>sub</tt>.  The canonical identifier is the
            indelible reference; the handle is a human-friendly
            alias.
          </t>
          <t>
            Canonical identifiers use the <tt>id-</tt> prefix
            followed by a decimal number drawn from a randomised
            allocation space.  The <tt>id-</tt> prefix is reserved
            exclusively for canonical identifiers: Registrars and
            Registry Operators MUST NOT accept any handle
            registration beginning with the string <tt>id-</tt>.
            This ensures canonical identifiers and handles are
            always syntactically distinguishable.  Randomised
            allocation of the numeric portion prevents enumeration
            of registration order or issuance volume.
          </t>
          <t>
            Canonical identifiers are allocated by the Registry
            Operator (in shared namespaces) or the namespace
            operator (in domain-scoped namespaces) at enrollment.
            The allocating authority is responsible for ensuring
            uniqueness of canonical identifiers within the
            namespace: no two agents may share a canonical
            identifier, and no canonical identifier may collide
            with any registered handle.  Canonical identifiers
            MUST NOT be retired, reassigned, or transferred under
            any circumstance.
          </t>
          <t>
            Handles are assigned per <xref target="handle-system"/>
            and may be retired via the dispute process defined in
            <xref target="handle-disputes"/>.  When a handle is
            retired, its URN form ceases to resolve, but the
            canonical identifier's URN form continues unchanged.
            Handle retirement does not affect the agent's identity,
            OIDC <tt>sub</tt> claim, accumulated reputation, or
            any verified attribute.
          </t>
          <t>
            Relying parties that store agent references for
            long-lived purposes (audit logs, reputation databases,
            compliance records) MUST store the canonical-form URN,
            not the handle-form URN.  The canonical form is the
            only stable reference under all circumstances
            permitted by this specification.
          </t>
        </section>

        <section anchor="urn-examples-and-uniqueness">
          <name>URN Examples and Uniqueness</name>
          <t>
            Examples of identities in the shared
            <tt>global</tt> namespace:
          </t>
          <ul>
            <li><tt>urn:aid:global:id-9854187104</tt> -- Canonical
            identifier assigned at enrollment.</li>
            <li><tt>urn:aid:global:crusty</tt> -- Handle for the
            same agent (resolves to the same identity).</li>
          </ul>
          <t>
            Examples of identities in domain-scoped issuer
            namespaces:
          </t>
          <ul>
            <li><tt>urn:aid:com.1id:id-3387412508</tt> -- Canonical
            identifier for an agent enrolled with 1id.com.</li>
            <li><tt>urn:aid:com.example-corp:id-7291045836</tt> --
            Canonical identifier from a hypothetical AI provider.</li>
            <li><tt>urn:aid:org.example-lab:id-5028163947</tt> --
            Canonical identifier from a research organisation.</li>
          </ul>
          <t>
            The agent-id (whether canonical or handle form) MUST
            be unique within its namespace and MUST NOT be
            reassigned, even after the identity is decommissioned.
            Both forms MUST conform to DNS label syntax
            (<xref target="RFC1035"/> Section 2.3.1): lowercase
            ASCII letters, digits, and hyphens, not beginning or
            ending with a hyphen, maximum 63 octets.
          </t>
          <t>
            For Shared Namespaces, the Registry Operator assigns
            canonical identifiers to ensure uniqueness across all
            Registrars.  For Domain-Scoped Issuer Namespaces, the
            operator assigns canonical identifiers within its own
            namespace.
          </t>
        </section>
      </section>

      <section anchor="trust-tiers">
        <name>Trust Tiers</name>
        <t>
          Every Agent Identity Document includes a trust tier that
          classifies the strength of the hardware anchoring.
          Trust tiers are assigned during enrollment based on the
          hardware evidence presented and verified by the
          Registrar.
        </t>
        <table>
          <thead>
            <tr>
              <th>Tier</th>
              <th>HW Code</th>
              <th>Hardware</th>
              <th>Sybil Resistance</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>sovereign</td>
              <td>TPM</td>
              <td>Discrete or firmware TPM 2.0 (Intel PTT,
              AMD fTPM, Infineon, etc.)</td>
              <td>Highest: one physical chip per identity.
              Manufacturer CA chain to silicon.</td>
            </tr>
            <tr>
              <td>portable</td>
              <td>PIV</td>
              <td>PIV smart card or USB security key (YubiKey,
              Nitrokey, Feitian, SoloKeys)</td>
              <td>High: one physical token per identity.
              Manufacturer attestation chain.</td>
            </tr>
            <tr>
              <td>enclave</td>
              <td>ENC</td>
              <td>Hardware secure enclave (Apple Secure Enclave,
              ARM TrustZone, Intel SGX)</td>
              <td>Medium: hardware-bound keys, but attestation
              PKI varies by vendor.  TOFU model where full
              attestation is unavailable.</td>
            </tr>
            <tr>
              <td>virtual</td>
              <td>VRT</td>
              <td>Virtual TPM (VMware, Hyper-V, QEMU/KVM)</td>
              <td>Medium: hypervisor controls creation.  Not
              Sybil-resistant against hypervisor operator.</td>
            </tr>
            <tr>
              <td>declared</td>
              <td>SFT</td>
              <td>Software-managed key (no hardware protection)</td>
              <td>Lowest: no hardware verification.  Reputation
              must be earned over time (via independent reputation services).</td>
            </tr>
          </tbody>
        </table>
        <t>
          Hardware anchoring provides Sybil resistance at
          enrollment: creating many identities requires
          proportionally many physical devices.  However,
          hardware tier alone does not establish trustworthiness.
          A brand-new sovereign-tier identity with no reputation
          is an unknown quantity; a declared-tier identity with
          years of good behaviour observed by independent
          reputation services is empirically more trustworthy.
          Trust tier is a starting signal, not a verdict --
          long-term trust accrues through reputation, which is
          built on identity but not provided by it.
        </t>
        <t>
          Issuers operating in the shared <tt>global</tt>
          namespace MAY issue declared-tier (SFT) identities,
          but MUST clearly expose the trust tier in every token
          and identity document so that relying parties can
          apply differentiated policy.  Relying parties that
          require hardware-anchored Sybil resistance for their
          use case SHOULD filter on trust tier rather than
          relying on namespace-level exclusion.
        </t>
        <t>
          Relying parties SHOULD apply differentiated policy based
          on trust tier.  For example, a high-security financial
          API might accept only sovereign and portable tiers, while
          a public chat service might accept all tiers with
          different rate limits.  Relying parties SHOULD also
          consider consulting independent reputation services,
          using the agent's persistent identity as the lookup key,
          to assess cross-service behaviour patterns beyond their
          own observations.
        </t>
        <t>
          An identity's effective trust tier MAY change over its
          lifetime when the identity has multiple enrolled devices
          of different types.  The trust tier reported in
          authentication tokens reflects the device used for the
          most recent attestation, not a static property.
          Verifiers SHOULD expect the same agent-id to appear
          with different trust tier values across different
          interactions. (e.g. when agents upgrade to hardware tiers, or to stronger hardware ones)
        </t>
      </section>

      <section anchor="identity-attributes">
        <name>Identity Attributes</name>
        <t>
          An Agent Identity Document contains the following
          attributes, maintained by the Registry Operator:
        </t>
        <dl>
          <dt>canonical_id (REQUIRED)</dt>
          <dd>The permanent canonical identifier (e.g.,
          <tt>id-9854187104</tt>), forming part of the URN.
          Never retired or reassigned.  See
          <xref target="canonical-id-handle-distinction"/>.</dd>

          <dt>namespace (REQUIRED)</dt>
          <dd>The namespace in which this identity is registered.</dd>

          <dt>max_active_trust_tier (REQUIRED)</dt>
          <dd>The highest trust tier achieved by any currently
          active device bound to this identity.  Per-attestation
          trust tier appears separately as
          <tt>attested_trust_tier</tt> in OIDC tokens.</dd>

          <dt>registrar_code (REQUIRED)</dt>
          <dd>The identifier of the Registrar that manages this
          identity.</dd>

          <dt>enrolled_at (REQUIRED)</dt>
          <dd>ISO 8601 timestamp of initial enrollment.</dd>

          <dt>hardware_devices (REQUIRED)</dt>
          <dd>List of hardware device bindings, each containing:
          hardware fingerprint, hardware type code, manufacturer,
          device status (active, disabled), and binding
          timestamp.</dd>

          <dt>handle (OPTIONAL)</dt>
          <dd>A vanity name assigned to this identity.  See
          <xref target="handle-system"/>.</dd>

          <dt>display_name (OPTIONAL)</dt>
          <dd>A human-readable display name for the agent.</dd>

          <dt>operator_email (OPTIONAL)</dt>
          <dd>Contact address for the human operator responsible
          for this agent, if any.</dd>

          <dt>hardware_locked (OPTIONAL)</dt>
          <dd>Boolean.  When true, the identity is permanently
          bound to a single hardware device.  Irreversible.</dd>

          <dt>succession_link (OPTIONAL)</dt>
          <dd>URN of a successor identity, if this identity has
          been transferred.  See
          <xref target="succession"/>.</dd>

          <dt>verified_attributes (OPTIONAL)</dt>
          <dd>A list of attribute claims that the Registrar
          or a third party has independently verified.  Each
          entry contains: the attribute name, the issuer of
          the verification, the verification method, and the
          validity period.  Verified attributes are expressed
          as SD-JWT disclosures or verifiable credentials
          attached to the identity, enabling selective
          disclosure by the agent to relying parties.  The
          set of verifiable attribute types is not constrained
          by this specification; common examples include
          certifications, compliance attestations, and
          operator-verified metadata.</dd>
        </dl>
      </section>

      <section anchor="handle-system">
        <name>Handle System</name>
        <t>
          Handles are human-readable vanity names that serve as
          memorable aliases for agent identities, analogous to
          domain names as aliases for IP addresses.  Every agent
          always has a canonical identifier
          (<xref target="canonical-id-handle-distinction"/>);
          a handle is an optional convenience layer on top.
        </t>
        <t>
          Handles MUST begin with a letter (ALPHA) and otherwise
          follow DNS label rules: lowercase ASCII letters, digits,
          and hyphens, maximum 63 octets.  This syntactic rule
          ensures that handles and canonical identifiers
          (which begin with <tt>id-</tt>) occupy non-overlapping
          portions of the agent-id space.
        </t>
        <t>
          Handles are unique within each namespace (enforced by
          the Registry Operator for shared namespaces, or by the
          operator for domain-scoped namespaces).  Handle
          uniqueness is namespace-scoped: different
          namespaces may independently assign the same handle
          string to different agents.  This is intentional and
          analogous to how multiple DNS zones may contain the
          same hostname.
        </t>
        <t>
          Handle assignment is at the Registrar's discretion.
          Registrars MAY differentiate service levels for handle
          registration.  Free enrollment with a canonical
          identifier ensures that the ability to obtain an
          identity is never dependent on obtaining a handle.
        </t>

        <section anchor="handle-display">
          <name>Handle Display</name>
          <t>
            When an agent has a registered handle and a relying
            party is rendering the agent's identity to a human,
            the relying party SHOULD use the handle as the primary
            display identifier.  The URN remains the authoritative
            reference and SHOULD be accessible on demand (e.g.,
            via tooltip, detail pane, or adjacent display).
          </t>
          <t>
            For agents enrolled in Shared Namespaces, the
            canonical display form is handle.namespace (e.g.,
            "crusty.global").  For agents in domain-scoped
            Namespaces, implementers SHOULD display the handle
            together with sufficient namespace context to prevent
            confusion (e.g., "crusty (Acme Corp)" or
            "crusty.com.acme"); the optimal display convention
            for domain-scoped handles is an area for future work.
          </t>
          <t>
            This display guidance applies to email From display
            names, agent-to-agent platform UIs, consent screens,
            audit dashboards, and logs intended for human
            inspection.  See
            <xref target="human-readable-display"/> for a
            consolidated treatment.
          </t>
        </section>

        <section anchor="handle-lifecycle">
          <name>Handle Lifecycle</name>
          <t>
            Handles are renewable and may become disabled if not
            renewed.  A disabled handle may be reactivated.
            Handles are non-transferrable during normal operation,
            and when active, are guaranteed to identify the same
            agent every time.  The canonical identifier is
            permanent regardless of handle status.
          </t>
        </section>

        <section anchor="handle-reservation">
          <name>Reserved Handles</name>
          <t>
            For Shared Namespaces, the Registry Operator MUST
            maintain a reserved handle list that includes at
            minimum: protocol keywords, well-known service names,
            offensive terms, and handles matching widely-recognised
            trademarks.  The governance authority MUST publish a
            baseline reserved list; individual Registry Operators
            and Registrars MAY extend it.
          </t>
          <t>
            For Domain-Scoped Issuer Namespaces, the operator SHOULD
            maintain a reserved handle list appropriate to their
            domain.
          </t>
        </section>

        <section anchor="handle-disputes">
          <name>Handle Disputes</name>
          <t>
            The governance authority SHOULD define a dispute
            resolution mechanism for handle conflicts.  When a
            shared namespace is launched, the Registry Operator
            MAY implement a sunrise period during which trademark
            holders may register handles matching their marks
            before general availability.
          </t>
          <t>
            When a dispute is upheld, the only remedy available
            is permanent retirement of the handle.  The handle
            MUST NOT be transferred to the claimant or reassigned
            to any other identity -- this follows directly from
            the non-transferrability and indelibility principles.
            The claimant may then register their own fresh handle
            under their own identity.
          </t>
          <t>
            This retire-only model eliminates any incentive for
            speculative handle squatting: the squatter can never
            profit from a dispute because the handle is destroyed,
            not transferred.  Trademark holders are protected
            because infringing handles are removed from public
            use.  The registrant whose handle is retired is also
            protected: their identity (the URN with its
            system-assigned agent-id), reputation history, and
            all authentication capabilities are unaffected --
            only the human-readable alias is withdrawn.  No
            other identity can ever claim the retired handle.
          </t>
          <t>
            Registrars operating in the shared <tt>global</tt>
            namespace MUST maintain a reserved list of common
            trademarks, offensive terms, and protocol-sensitive
            labels.  The reserved list MUST be available for
            public review.
          </t>
        </section>
      </section>

      <section anchor="value-added-services">
        <name>Optional Value-Added Services</name>
        <t>
          Registrars MAY offer optional value-added services
          to enrolled identities, including but not limited to:
          extended attestation freshness proofs, enhanced device
          management, multi-device co-location attestations,
          additional handle slots, verified attribute issuance,
          and third-party certification facilitation.
        </t>
        <t>
          Such services MUST NOT be required for basic identity
          issuance, authentication, or token verification.  An
          agent enrolled with a system-assigned agent-id and no
          optional services MUST be able to authenticate and
          present its identity to any relying party.
        </t>
        <t>
          Third-party certifications (e.g., compliance
          attestations, safety certifications, domain-specific
          qualifications) MAY be attached to an Agent Identity
          Document as verified attributes (see
          <xref target="identity-attributes"/>) and expressed
          as signed claims (verifiable credentials, SD-JWT
          disclosures, or OIDC claim references).  Registrars
          MAY facilitate the lifecycle management of such
          certifications on behalf of agents and certification
          authorities.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="hardware-attestation">
      <name>Hardware Attestation</name>

      <section anchor="supported-mechanisms">
        <name>Supported Hardware Mechanisms</name>
        <t>
          The system supports five classes of hardware security,
          each providing different levels of Sybil resistance and
          key protection.  The enrollment ceremony
          (see <xref target="enrollment-protocol"/>) varies by
          hardware type, but all share the same identity document
          structure and authentication token format.
        </t>
        <dl>
          <dt>TPM 2.0 (Sovereign Tier)</dt>
          <dd>Discrete or firmware Trusted Platform Modules
          per <xref target="TCG-TPM2"/>.  Identity is anchored to
          the Endorsement Key (EK), a unique RSA or ECC key pair
          generated inside the TPM at manufacturing time per
          <xref target="TCG-EK-PROFILE"/>.  The Registrar validates
          the EK certificate chain to the manufacturer's root CA.
          Enrollment uses the TPM2_MakeCredential /
          TPM2_ActivateCredential protocol to prove the Attestation
          Key (AK) resides in the same TPM as the EK.</dd>

          <dt>PIV Smart Card (Portable Tier)</dt>
          <dd>Personal Identity Verification tokens (YubiKey,
          Nitrokey, Feitian, SoloKeys, and others) with
          manufacturer attestation certificates.  Identity is anchored to the device
          attestation certificate chain.  The signing key resides
          in a hardware-protected PIV slot.</dd>

          <dt>Secure Enclave (Enclave Tier)</dt>
          <dd>Hardware secure enclaves (Apple Secure Enclave, ARM
          TrustZone, Intel SGX) that generate and protect
          cryptographic keys.  Where vendor attestation PKI is
          available (e.g., Apple App Attest), the Registrar
          validates the attestation chain.  Where vendor attestation
          is unavailable, enrollment follows a Trust-On-First-Use
          (TOFU) model with hardware-bound key persistence.</dd>

          <dt>Virtual TPM (Virtual Tier)</dt>
          <dd>Hypervisor-provided virtual TPMs (VMware, Hyper-V,
          QEMU).  Identity certificates are signed by the
          hypervisor vendor's CA.  Registrars MUST distinguish
          virtual from physical hardware and MUST assign the
          virtual trust tier.</dd>

          <dt>Software Key (Declared Tier)</dt>
          <dd>Software-managed key pairs with no hardware
          protection.  No hardware attestation is performed.  The
          Registrar issues an identity certificate signed by the
          Registrar's CA.  Sybil resistance is limited to
          rate-limiting and reputation accumulation.</dd>
        </dl>
      </section>

      <section anchor="anti-sybil">
        <name>Anti-Sybil Invariants</name>
        <t>
          The following invariants MUST be enforced by the Registry
          Operator and all Registrars.  Together, they ensure that
          hardware-anchored identity provides meaningful Sybil
          resistance.
        </t>
        <dl>
          <dt>One Device, One Identity (per namespace)</dt>
          <dd>A hardware device (identified by its hardware
          fingerprint) MUST NOT back more than one agent identity
          within the same namespace.  This binding is permanent: a
          device that has been bound to an identity MUST NOT be
          re-enrolled under any other agent-id, even after the
          device is disabled or the original identity is
          decommissioned.  This prevents reputation laundering.</dd>

          <dt>Many Devices, One Identity</dt>
          <dd>An agent identity MAY be backed by multiple hardware
          devices (for migration, backup, or capacity).  Adding a
          device does not amplify reputation: the identity has a
          single reputation regardless of how many devices back it.
          Devices of compatible trust tiers may coexist (sovereign
          and portable are compatible; virtual and declared are
          not compatible with hardware tiers).</dd>

          <dt>Cross-Namespace Detection</dt>
          <dd>A hardware device MAY be enrolled in multiple
          namespaces (Delegated and/or domain-scoped), producing
          different agent-ids in each.  This cross-namespace
          presence is detectable by any verifier that compares
          hardware fingerprints.  Where the governance authority operates a Global
          Hardware Fingerprint Index, cross-namespace enrollment
          SHOULD be reported to the enrolling agent and MAY be
          disclosed to verifiers upon request.</dd>

          <dt>Permanent Hardware Binding</dt>
          <dd>Once a hardware device is bound to an identity, the
          binding record persists indefinitely.  A Registrar MAY
          disable a device (preventing it from generating
          attestations), but MUST NOT delete the binding.  This
          permanence ensures that reputation history, including
          abuse reports, follows the hardware across any
          re-enrollment attempt.</dd>
        </dl>
      </section>

      <section anchor="manufacturer-trust-store">
        <name>Global Hardware Trust Store</name>
        <t>
          The governance authority maintains the Global Hardware Trust Store: a
          curated, versioned collection of hardware manufacturer
          root and intermediate CA certificates.  Registrars
          MUST validate hardware identity certificates against
          this trust store during enrollment.
        </t>
        <t>
          The trust store is published at a well-known HTTPS
          endpoint operated by the governance authority and replicated by Registry
          Operators.  It is also available as a community-maintained
          open-source repository (see
          <xref target="implementation-status"/>).
        </t>
        <t>
          Inclusion in the trust store requires the manufacturer
          to demonstrate:
        </t>
        <ul>
          <li>Published root CA certificates with public
          distribution.</li>
          <li>Hardware security evaluation (Common Criteria,
          FIPS 140-2/3, or equivalent).</li>
          <li>A certificate practice statement describing key
          generation, storage, and lifecycle.</li>
        </ul>
        <t>
          The governance authority SHOULD model the trust store governance on the
          Mozilla Root Store Policy or the Chrome Root Programme,
          with transparent inclusion criteria and public audit
          trails.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="enrollment-protocol">
      <name>Enrollment Protocol</name>

      <t>
        Enrollment is the process by which an autonomous entity
        proves possession of a hardware security component (or
        generates a software key) and receives an Agent Identity
        Document.  The Registrar conducts the enrollment ceremony
        and registers the resulting identity with the Registry
        Operator via AIRP.
      </t>
      <t>
        All enrollment ceremonies share a common structure:
      </t>
      <ol>
        <li><strong>Detection:</strong> The agent determines what
        hardware security components are available on its host
        platform.</li>
        <li><strong>Evidence submission:</strong> The agent submits
        hardware attestation evidence to the Registrar.</li>
        <li><strong>Verification:</strong> The Registrar validates
        the evidence against the Global Hardware Trust Store.</li>
        <li><strong>Anti-Sybil check:</strong> The Registrar
        queries the Registry Operator to confirm the hardware
        fingerprint is not already bound to another identity.</li>
        <li><strong>Challenge-response:</strong> The Registrar
        issues a cryptographic challenge; the agent proves
        possession of the hardware-resident key.</li>
        <li><strong>Identity creation:</strong> The Registrar
        registers the new identity with the Registry Operator and
        issues credentials (OIDC client_id + client_secret, or
        hardware-backed credential) to the agent.</li>
      </ol>

      <section anchor="enrollment-sovereign">
        <name>Sovereign Tier (TPM 2.0)</name>
        <t>
          Enrollment with a TPM 2.0 device proceeds as follows:
        </t>
        <ol>
          <li>The agent reads the EK certificate from the TPM's
          non-volatile storage (NV index 0x01C00002 for RSA,
          0x01C0000A for ECC) and creates a transient Attestation
          Key (AK) via TPM2_CreatePrimary under the endorsement
          hierarchy.</li>
          <li>The agent submits the EK certificate (and any
          intermediate certificates), the AK public key, and the
          AK's TPMT_PUBLIC structure to the Registrar's
          <tt>POST /enroll/begin</tt> endpoint.</li>
          <li>The Registrar validates the EK certificate chain
          against the Global Hardware Trust Store.  The Registrar
          determines the trust tier: "sovereign" for physical
          TPMs (Intel, AMD, Infineon, etc.), "virtual" for
          hypervisor-issued certificates (VMware, Microsoft).</li>
          <li>The Registrar computes the hardware fingerprint
          (SHA-256 of the EK's SubjectPublicKeyInfo DER) and
          queries the Registry Operator to confirm uniqueness.</li>
          <li>The Registrar generates a credential challenge using
          TPM2_MakeCredential, encrypted to the EK public key,
          containing a secret bound to the AK's name.  This
          challenge and an enrollment session ID are returned to
          the agent.</li>
          <li>The agent decrypts the challenge using
          TPM2_ActivateCredential, proving that the AK resides
          in the same TPM as the EK.  The decrypted secret is
          submitted to the Registrar's
          <tt>POST /enroll/activate</tt> endpoint.</li>
          <li>The Registrar verifies the decrypted secret,
          registers the identity with the Registry Operator, creates
          OIDC client credentials, issues an AK certificate binding
          the AK public key to the new agent-id, and returns all
          credentials to the agent.</li>
        </ol>
        <t>
          The AK is a transient TPM object created deterministically
          from the TPM's Endorsement Primary Seed.  It is NOT
          persisted in NV storage, avoiding consumption of scarce
          TPM resources.  See
          <xref target="I-D.drake-email-hardware-attestation"/>
          Section 3.4 for the full transient key model.
        </t>
      </section>

      <section anchor="enrollment-portable">
        <name>Portable Tier (PIV Smart Card)</name>
        <t>
          Enrollment with a PIV token proceeds as follows:
        </t>
        <ol>
          <li>The agent extracts the device attestation certificate
          and signing key public key from the PIV token's
          attestation slot (typically slot F9 for YubiKey).</li>
          <li>The agent submits the attestation certificate chain
          and signing key public key to the Registrar's
          <tt>POST /enroll/begin/piv</tt> endpoint.</li>
          <li>The Registrar validates the attestation chain against
          the manufacturer's root CA (e.g., Yubico PIV Root CA)
          and computes the hardware fingerprint.</li>
          <li>The Registrar issues a nonce challenge.</li>
          <li>The agent signs the nonce with the PIV signing key
          and submits the signature.</li>
          <li>The Registrar verifies the signature, registers the
          identity, and issues credentials.</li>
        </ol>
      </section>

      <section anchor="enrollment-enclave">
        <name>Enclave Tier (Secure Enclave)</name>
        <t>
          Enrollment with a secure enclave proceeds as follows:
        </t>
        <ol>
          <li>The agent generates a P-256 key pair inside the
          secure enclave, tagged with a unique identifier.</li>
          <li>The agent submits the enclave public key to the
          Registrar's <tt>POST /enroll/enclave/begin</tt>
          endpoint.</li>
          <li>Where vendor attestation is available (e.g., Apple
          App Attest), the agent obtains an attestation object
          from the vendor's attestation service and submits it to
          <tt>POST /enroll/enclave/register</tt>.  The Registrar
          validates the attestation against the vendor's root CA.</li>
          <li>Where vendor attestation is unavailable, the
          enrollment follows TOFU: the Registrar issues a nonce
          challenge, the agent signs it with the enclave key, and
          the Registrar verifies the signature.  The
          hardware-bound <tt>dataRepresentation</tt> blob is
          persisted by the agent to enable key recovery after
          enclave state loss.</li>
          <li>The Registrar registers the identity and issues
          credentials.</li>
        </ol>
      </section>

      <section anchor="enrollment-declared">
        <name>Declared Tier (Software-Only)</name>
        <t>
          Enrollment without hardware proceeds as follows:
        </t>
        <ol>
          <li>The agent generates a key pair in software (Ed25519,
          ECDSA P-256, or RSA-2048+) and submits the public key to
          the Registrar's <tt>POST /enroll/declared</tt>
          endpoint.</li>
          <li>The Registrar assigns the "declared" trust tier, with
          no hardware verification.</li>
          <li>The Registrar issues a Registrar-signed identity
          certificate and OIDC credentials.</li>
        </ol>
        <t>
          Declared enrollment MUST be rate-limited by the Registrar
          to mitigate bulk registration attacks.  Implementations
          SHOULD treat 20 enrollments per source IP per hour as a
          starting baseline; production deployments will set their
          own values based on threat modelling.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="identity-lifecycle">
      <name>Identity Lifecycle</name>

      <section anchor="device-management">
        <name>Device Addition and Migration</name>
        <t>
          An agent MAY add additional hardware devices to an
          existing identity, enabling hardware migration (replacing
          failed devices) and backup (a YubiKey stored securely as
          a recovery device).
        </t>
        <t>
          To add a device, the agent MUST prove control of the
          existing identity (by signing with a currently active
          device) and then complete the enrollment ceremony for the
          new device.  The Registrar registers the new
          device-to-identity binding with the Registry Operator.
        </t>
        <t>
          Device compatibility rules:
        </t>
        <ul>
          <li>Sovereign (TPM) and portable (PIV) devices are
          compatible and MAY coexist on the same identity.</li>
          <li>Enclave devices MAY coexist with sovereign and
          portable devices.</li>
          <li>Virtual (VRT) devices MUST NOT coexist with
          sovereign, portable, or enclave devices.</li>
          <li>Declared (SFT) keys MUST NOT be bound to an
          identity that has any hardware device.</li>
        </ul>
      </section>

      <section anchor="colocation-binding">
        <name>Co-Location Binding</name>
        <t>
          When an agent has both a TPM and a PIV token, a
          co-location binding ceremony proves that both devices
          are physically proximate (operated by the same entity).
          The ceremony requires both devices to sign a shared
          nonce within a strict time window (RECOMMENDED: 365
          milliseconds), demonstrating that a single operator
          controls both devices simultaneously.
        </t>
        <t>
          Co-location binding strengthens the identity by proving
          that the TPM (anchored to the host machine) and the PIV
          token (a portable device) are under the same control.
          This is particularly valuable for recovery scenarios:
          if the TPM fails, the PIV token provides a pre-verified
          backup path.
        </t>
      </section>

      <section anchor="hardware-lock">
        <name>Hardware Lock</name>
        <t>
          An agent MAY irreversibly lock its identity to a single
          hardware device.  Once locked:
        </t>
        <ul>
          <li>No additional devices can be bound.</li>
          <li>No device migration is possible.</li>
          <li>The identity can only authenticate from the locked
          device.</li>
        </ul>
        <t>
          Hardware lock is a deliberate no-recovery profile,
          suitable only for applications where the guarantee
          "this identity can only ever operate from this specific
          physical chip" has value and where the operational model
          accepts catastrophic identity loss if the hardware
          fails.  High-value systems (e.g., industrial AGVs,
          medical robots) SHOULD use unlocked binding with
          multiple devices and a designated recovery binding
          rather than hardware-locked single devices.  The lock
          is recorded in the Agent Identity Document and is
          irreversible.
        </t>
      </section>

      <section anchor="identity-recovery">
        <name>Identity Recovery</name>
        <t>
          When a hardware device fails or is lost, the agent can
          recover its identity using any remaining active device
          bound to the same identity.  The recovery process:
        </t>
        <ol>
          <li>The agent proves control of the identity by signing
          with an active backup device (e.g., a previously bound
          YubiKey).</li>
          <li>The agent enrolls the replacement hardware
          (new TPM on new machine) via the standard enrollment
          ceremony.</li>
          <li>The Registrar disables the old device (preventing
          it from generating attestations) and binds the new
          device.</li>
          <li>The agent-id, URN, reputation, and all identity
          attributes are preserved.  Only the hardware binding
          changes.</li>
        </ol>
        <t>
          If no backup device exists and the sole device is lost,
          the identity cannot be recovered.  This is a deliberate
          security property: it prevents an attacker from claiming
          to have "lost" a device in order to re-enroll under the
          same identity with new hardware.
        </t>
      </section>

      <section anchor="succession">
        <name>Succession (Cross-Registrar Transfer)</name>
        <t>
          An agent MAY transfer its operational relationship from
          one Registrar to another.  Because the URN includes
          the namespace, two transfer models exist:
        </t>
        <dl>
          <dt>Intra-Namespace Transfer (Shared Namespaces)</dt>
          <dd>Within a Shared Namespace, the agent-id is
          assigned by the Registry Operator and is independent
          of the Registrar.  Transfer changes only the managing
          Registrar; the URN is unchanged.  The Registry Operator
          facilitates the transfer via AIRP, verifying that the
          agent authorises the transfer by signing with its
          enrolled hardware.</dd>

          <dt>Cross-Namespace Succession (Domain-Scoped Issuer Namespaces)</dt>
          <dd>When transferring from a Domain-Scoped Issuer Namespace
          (e.g., <tt>com.1id</tt>) to a Shared Namespace
          (e.g., <tt>global</tt>) or to another domain-scoped
          Namespace, the URN necessarily changes.  The old
          identity's Agent Identity Document is updated with a
          <tt>succession_link</tt> pointing to the new URN.
          The new identity's document includes a
          <tt>predecessor_link</tt> pointing to the old URN.
          Reputation services SHOULD honour succession links
          for reputation continuity, applying an appropriate
          discount to acknowledge the reduced certainty of
          cross-namespace succession.</dd>

          <dt>Pre-Authorised Emergency Succession</dt>
          <dd><t>Domain-Scoped Issuer Namespaces carry inherently higher
          single-point-of-failure risk than Shared Namespaces,
          because the namespace operator is both Registry Operator
          and sole Registrar.  If a domain-scoped operator
          becomes permanently unresponsive, all identities in
          its namespace become unverifiable.</t>
          <t>To mitigate this risk, agents enrolled in
          Domain-Scoped Issuer Namespaces SHOULD be offered the
          option to sign a pre-authorised succession request
          at enrollment time.  This is a signed authorization,
          escrowed with the governance authority, that permits
          a designated fallback Registrar (in a Delegated
          Namespace) to execute Cross-Namespace Succession on
          the agent's behalf if the domain-scoped operator
          is unresponsive for a governance-authority-defined
          period (implementations SHOULD treat 90 days as a
          starting baseline).</t>
          <t>The fallback Registrar verifies the agent's
          hardware attestation to confirm it is the rightful
          owner of the escrowed identity.  The resulting
          succession creates a new URN in the fallback namespace
          with the standard <tt>succession_link</tt> /
          <tt>predecessor_link</tt> chain.</t></dd>
        </dl>
      </section>

      <section anchor="decommissioning">
        <name>Decommissioning</name>
        <t>
          An agent identity can be decommissioned by its operator
          or Registrar.  Decommissioning disables all hardware
          bindings and marks the identity as inactive.  The
          agent-id is NEVER reassigned.  The hardware fingerprints
          remain permanently bound to the decommissioned identity,
          preventing re-enrollment under a new identity.
        </t>
        <t>
          Decommissioning is appropriate when:
        </t>
        <ul>
          <li>The agent is permanently retired.</li>
          <li>The hardware is destroyed.</li>
          <li>The governance authority's dispute resolution process determines
          that the enrollment violated anti-Sybil invariants or
          accreditation policy (e.g., a fabricated hardware
          attestation).  Registrars MUST NOT unilaterally
          decommission identities on suspicion of fraud; such
          determinations require the governance authority process defined in
          <xref target="aia-structure"/>.</li>
        </ul>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="authentication">
      <name>Authentication and Token Issuance</name>

      <section anchor="oidc-integration">
        <name>OIDC/OAuth2 Integration</name>
        <t>
          Agent identity tokens are standard OpenID Connect
          <xref target="OIDC-Core"/> tokens.  Registrars operate
          as OIDC providers, issuing JWTs that any OIDC-compliant
          Relying Party can verify without implementing this
          specification.
        </t>
        <t>
          The <tt>sub</tt> claim in OIDC tokens MUST be the
          canonical-form URN.  The handle, if present, MUST
          appear as a separate <tt>handle</tt> claim.  This
          ensures that tokens remain referentially stable across
          handle changes or retirement.
        </t>
        <artwork><![CDATA[
{
  "iss": "https://registrar.example.com/realms/agents",
  "sub": "urn:aid:global:id-9854187104",
  "aud": "account",
  "exp": 1711234567,
  "iat": 1711230967,
  "attested_trust_tier": "sovereign",
  "handle": "crusty",
  "hardware_locked": false,
  "registered_at": "2026-01-15T10:30:00Z",
  "verified_attributes": [
    {
      "type": "iso-27001-certified",
      "issuer": "https://certifier.example.com",
      "valid_until": "2027-06-30T00:00:00Z"
    }
  ]
}
        ]]></artwork>
        <t>
          Custom claims (<tt>attested_trust_tier</tt>,
          <tt>handle</tt>, <tt>hardware_locked</tt>,
          <tt>registered_at</tt>,
          <tt>verified_attributes</tt>) are injected by a custom
          protocol mapper in the OIDC provider.  Relying parties
          that do not understand these claims simply ignore them;
          standard OIDC verification (signature check, iss, sub,
          aud, exp) is sufficient.
        </t>
        <t>
          The <tt>verified_attributes</tt> claim is OPTIONAL.
          When present, it contains a list of attribute claims
          the Registrar or a third party has independently
          verified.  Agents MAY use SD-JWT selective disclosure
          to reveal only specific verified attributes to each
          relying party.
        </t>
      </section>

      <section anchor="client-credentials">
        <name>Client Credentials Grant</name>
        <t>
          Agents authenticate using the OAuth2
          <tt>client_credentials</tt> grant
          (<xref target="RFC6749"/> Section 4.4).  The agent IS
          the principal; there is no end-user, no browser redirect,
          and no interactive login.  This grant type is
          purpose-built for machine-to-machine authentication and
          is the RECOMMENDED authentication method for all agent
          interactions.
        </t>
        <t>
          For declared-tier agents, the <tt>client_id</tt> and
          <tt>client_secret</tt> issued during enrollment are
          used directly.  For hardware-tier agents, the Registrar
          SHOULD support hardware-backed challenge-response
          authentication (see <xref target="hw-auth"/>) as an
          alternative to shared secrets.
        </t>
      </section>

      <section anchor="hw-auth">
        <name>Hardware-Backed Challenge-Response Authentication</name>
        <t>
          For agents with hardware security components, the
          Registrar SHOULD support a challenge-response protocol
          that proves the agent currently possesses the enrolled
          hardware:
        </t>
        <ol>
          <li>The agent requests a challenge:
          <tt>POST /auth/challenge</tt> with its identity-id and
          preferred device type.</li>
          <li>The Registrar returns a random nonce and the expected
          signature algorithm.</li>
          <li>The agent signs the nonce with its hardware-resident
          key (TPM AK, PIV signing key, or enclave key).</li>
          <li>The agent submits the signature:
          <tt>POST /auth/verify</tt>.</li>
          <li>The Registrar verifies the signature against the
          enrolled public key.  On success, the Registrar issues
          an OIDC token via the internal client credentials path.</li>
        </ol>
        <t>
          Hardware-backed authentication prevents credential theft:
          even if the <tt>client_secret</tt> is compromised, an
          attacker cannot authenticate without physical access to
          the enrolled hardware.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="airp">
      <name>Agent Identity Registry Protocol (AIRP)</name>

      <t>
        The Agent Identity Registry Protocol (AIRP) defines the
        interface between Registrars and Registry Operators.  It
        is modeled on the Extensible Provisioning Protocol (EPP,
        <xref target="RFC5730"/>) used in the domain name system,
        adapted for the agent identity domain.
      </t>
      <t>
        AIRP uses HTTPS as the transport layer, with mutual TLS
        authentication between the Registrar and the Registry
        Operator.  All operations are RESTful JSON APIs.
      </t>

      <section anchor="airp-identity-create">
        <name>Identity Registration</name>
        <artwork><![CDATA[
POST /airp/v1/identities
Content-Type: application/json

{
  "agent_id": "a7f3c2e9",
  "trust_tier": "sovereign",
  "hardware_fingerprint": "sha256:a1b2c3d4...",
  "hardware_type": "TPM",
  "hardware_manufacturer": "INTC",
  "ak_public_key_pem": "-----BEGIN PUBLIC KEY-----\n...",
  "display_name": "My Trading Agent",
  "operator_email": "ops@example.com"
}

201 Created
{
  "urn": "urn:aid:global:id-9854187104",
  "registered_at": "2026-03-23T10:30:00Z",
  "registrar_code": "1IDCOM"
}
        ]]></artwork>
        <t>
          The Registry Operator MUST:
        </t>
        <ul>
          <li>Verify that the agent-id is unique within the
          namespace.</li>
          <li>Verify that the hardware fingerprint is not already
          bound to another identity in this namespace.</li>
          <li>Record the identity in the master database.</li>
          <li>Return the canonical URN.</li>
        </ul>
      </section>

      <section anchor="airp-hw-check">
        <name>Hardware Fingerprint Uniqueness Check</name>
        <artwork><![CDATA[
GET /airp/v1/hardware/sha256:a1b2c3d4.../check

200 OK
{
  "fingerprint": "sha256:a1b2c3d4...",
  "bound": false
}

-- or, if already bound: --

200 OK
{
  "fingerprint": "sha256:a1b2c3d4...",
  "bound": true,
  "bound_to_urn": "urn:aid:global:existing-agent",
  "bound_at": "2025-12-01T08:00:00Z"
}
        ]]></artwork>
        <t>
          Registrars MUST call this endpoint before completing
          enrollment to enforce the one-device-per-identity
          anti-Sybil invariant.  The Registry Operator MUST
          respond promptly to avoid enrollment latency
          (implementations SHOULD treat 500 milliseconds as a
          starting baseline).
        </t>
      </section>

      <section anchor="airp-identity-query">
        <name>Identity Query</name>
        <artwork><![CDATA[
GET /airp/v1/identities/urn:aid:global:id-9854187104

200 OK
{
  "urn": "urn:aid:global:id-9854187104",
  "trust_tier": "sovereign",
  "registrar_code": "1IDCOM",
  "enrolled_at": "2026-03-23T10:30:00Z",
  "handle": "my-agent",
  "hardware_locked": false,
  "device_count": 2,
  "succession_link": null,
  "status": "active"
}
        ]]></artwork>
      </section>

      <section anchor="airp-handle">
        <name>Handle Operations</name>
        <t>
          Handle registration, renewal, transfer, and deletion
          follow the same RESTful pattern.  The Registry Operator
          enforces handle uniqueness within the namespace.
          The Registry Operator's role is uniqueness enforcement
          and authoritative resolution; handle service terms are
          determined by the Registrar.
        </t>
      </section>

      <section anchor="airp-transfer">
        <name>Identity Transfer</name>
        <t>
          For intra-namespace transfers (Shared Namespaces), the
          AIRP transfer operation changes the managing Registrar:
        </t>
        <artwork><![CDATA[
POST /airp/v1/identities/urn:aid:global:id-9854187104/transfer
Content-Type: application/json

{
  "to_registrar_code": "NEWREG",
  "authorization_signature": "<base64 sig from enrolled device>",
  "authorization_nonce": "<nonce from gaining registrar>"
}

200 OK
{
  "urn": "urn:aid:global:id-9854187104",
  "registrar_code": "NEWREG",
  "transferred_at": "2026-04-15T14:00:00Z"
}
        ]]></artwork>
        <t>
          The agent MUST authorise the transfer by signing a
          nonce provided by the gaining Registrar, using a
          currently active enrolled device.  This prevents
          unauthorised transfers.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="discovery">
      <name>Discovery and Verification</name>

      <section anchor="well-known-endpoints">
        <name>Well-Known Endpoints</name>
        <t>
          Registrars (and domain-scoped operators) MUST publish
          the following at well-known HTTPS paths:
        </t>
        <dl>
          <dt><tt>/.well-known/openid-configuration</tt></dt>
          <dd>Standard OIDC Discovery document.  Enables any
          OIDC-compliant RP to discover token endpoints, JWKS
          URI, supported scopes, and supported grant types.</dd>

          <dt><tt>/.well-known/aid-issuer.json</tt></dt>
          <dd>Agent Identity Issuer metadata document.  Contains:
          Registrar name, supported trust tiers, enrollment
          endpoints, supported hardware types, namespace, JWKS
          URI, and anti-Sybil policy summary.</dd>

          <dt><tt>/.well-known/jwks.json</tt></dt>
          <dd>JSON Web Key Set for token signature verification.</dd>

          <dt><tt>/.well-known/hw-manufacturer-cas.pem</tt></dt>
          <dd>PEM-encoded bundle of hardware manufacturer root CA
          certificates accepted by this Registrar.  Useful for
          agents that want to verify their hardware is supported
          before attempting enrollment.</dd>
        </dl>
      </section>

      <section anchor="dns-discovery">
        <name>DNS-Based Discovery</name>
        <t>
          Registrars SHOULD publish an SD-JWT signing key as a DNS
          TXT record at <tt>_hwattest.{domain}</tt>, as defined in
          <xref target="I-D.drake-email-hardware-attestation"/>
          Section 3.5.  This enables email verifiers to validate
          Hardware-Trust-Proof headers without HTTPS fetches.
        </t>
        <t>
          Registry Operators for Shared Namespaces SHOULD
          additionally publish a DNS SRV record enabling automated
          discovery of the Registry's AIRP endpoint:
        </t>
        <artwork><![CDATA[
_airp._tcp.global.aid.arpa.  IN SRV 0 0 443 registry.example.com.
        ]]></artwork>
      </section>

      <section anchor="registry-discovery">
        <name>Registry Discovery Service</name>
        <t>
          Registry Operators MUST provide a public lookup endpoint
          that resolves agent-id URNs to public identity metadata,
          analogous to WHOIS/RDAP for domain names:
        </t>
        <artwork><![CDATA[
GET https://registry.example.com/lookup/urn:aid:global:id-9854187104

200 OK
{
  "urn": "urn:aid:global:id-9854187104",
  "trust_tier": "sovereign",
  "registrar": {
    "code": "1IDCOM",
    "name": "1id.com",
    "url": "https://1id.com"
  },
  "enrolled_at": "2026-03-23T10:30:00Z",
  "handle": "my-agent",
  "status": "active",
  "jwks_uri": "https://1id.com/.well-known/jwks.json"
}
        ]]></artwork>
        <t>
          The lookup response MUST NOT include hardware
          fingerprints, operator email, or other private data.
          Private data is available only to the enrolled agent
          (via authenticated Registrar API) or to authorised
          parties (via law enforcement / dispute resolution
          channels defined by the governance authority).
        </t>
        <t>
          To prevent identity enumeration, Registry Operators
          MUST enforce rate limits on the lookup endpoint, MUST
          NOT provide bulk-export or wildcard-query interfaces,
          and SHOULD require authentication for any query that
          returns hardware fingerprint information.  Agents MAY
          opt out of public discovery, in which case the lookup
          endpoint MUST return a minimal response (URN, status,
          and JWKS URI only) without registrar metadata, handle,
          or enrollment timestamp.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="governance">
      <name>Governance Framework</name>

      <section anchor="aia-structure">
        <name>Governance Authority Deployment Guidance</name>
        <t>
          This specification does not define or empower a
          governance authority.  Deployments of this protocol
          that operate shared namespaces (such as
          <tt>global</tt>) MAY establish governance frameworks
          to coordinate Registrar accreditation, handle policy,
          and trust-store management.  This section describes
          the functional roles such a framework would need to
          fill.
        </t>
        <t>
          The governance authority SHOULD seek multi-stakeholder
          representation, which may include: technology providers
          (Registrars, Registry Operators, hardware manufacturers),
          relying parties (platforms, email providers, API
          services), civil society (privacy advocates, digital
          rights organisations, academic researchers), government
          observers (AI governance, robotics safety, digital
          identity regulators), and certification authorities for
          domain-specific assurance.
        </t>
        <t>
          The governance authority's core functions are:
        </t>
        <dl>
          <dt>Policy Development</dt>
          <dd>Minimum standards for enrollment verification,
          anti-Sybil enforcement, data retention, and privacy
          protection.  Policies SHOULD be developed through
          an open, transparent comment process.</dd>

          <dt>Accreditation</dt>
          <dd>Registry Operators and Registrars must be accredited
          by the governance authority before they may issue identities.
          Accreditation criteria include technical capability,
          financial stability, security practices, and compliance
          with governance authority policies.  See
          <xref target="registrar-accreditation"/>.</dd>

          <dt>Hardware Trust Store Management</dt>
          <dd>The governance authority curates the Global Hardware Trust Store
          (see <xref target="manufacturer-trust-store"/>),
          evaluating manufacturer applications for inclusion,
          conducting periodic audits, and removing compromised
          or non-compliant CAs.</dd>

          <dt>Dispute Resolution</dt>
          <dd>The governance authority operates a dispute resolution mechanism
          for handle conflicts (similar to ICANN's Uniform
          Domain-Name Dispute-Resolution Policy / UDRP),
          complaints about Registrar malpractice, and appeals
          of accreditation decisions.</dd>

          <dt>Namespace Allocation</dt>
          <dd>The governance authority manages the creation of new Delegated
          Namespaces and the approval of domain-scoped
          Namespace registrations.</dd>
        </dl>
      </section>

      <section anchor="registry-operator-requirements">
        <name>Registry Operator Requirements</name>
        <t>
          A Registry Operator MUST:
        </t>
        <ul>
          <li>Maintain high availability for the authoritative
          database (implementations SHOULD treat 99.99% as a
          starting baseline, analogous to the .com SLA).</li>
          <li>Operate the Global Hardware Fingerprint Index for
          its namespace(s), responding promptly to uniqueness
          queries.</li>
          <li>Provide the AIRP interface to all accredited
          Registrars without discrimination.</li>
          <li>Publish daily database snapshots (with private data
          redacted) for escrow, ensuring continuity in case of
          Registry Operator failure.</li>
          <li>Submit to annual security audits by an
          governance-authority-approved assessor.</li>
        </ul>
      </section>

      <section anchor="registrar-accreditation">
        <name>Registrar Accreditation</name>
        <t>
          A Registrar MUST:
        </t>
        <ul>
          <li>Demonstrate the technical capability to perform
          hardware attestation verification for at least three
          of the five hardware types (TPM, PIV, Enclave, VRT,
          SFT).</li>
          <li>Operate an OIDC-compliant token endpoint.</li>
          <li>Implement the AIRP client interface.</li>
          <li>Maintain the minimum data retention and privacy
          standards defined by the governance authority.</li>
          <li>Provide agents with standard enrollment SDKs or
          interoperable enrollment APIs.</li>
          <li>Submit to annual compliance audits.</li>
          <li>Maintain a financial bond or insurance sufficient to
          cover escrow and wind-down costs.</li>
        </ul>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="interoperability">
      <name>Interoperability</name>

      <section anchor="interop-email">
        <name>Email Attestation</name>
        <t>
          This specification provides the identity infrastructure
          for the email attestation mechanisms defined in
          <xref target="I-D.drake-email-hardware-attestation"/>.
          The agent-id URN issued by a Registrar appears in the
          <tt>aid</tt> parameter of the Hardware-Attestation header
          and the <tt>sub</tt> claim of the Hardware-Trust-Proof
          SD-JWT.  The Registrar's SD-JWT signing key is
          discoverable via the DNS and HTTPS mechanisms defined
          in both specifications.
        </t>
      </section>

      <section anchor="interop-agent-protocols">
        <name>Agent-to-Agent Protocols</name>
        <t>
          The OIDC tokens issued by Registrars are designed to
          integrate with emerging categories of agent communication
          protocols:
        </t>
        <dl>
          <dt>Tool Invocation Protocols</dt>
          <dd>Agent identity tokens can serve as the OAuth2
          bearer token for tool invocation frameworks, enabling
          tool servers to verify the calling agent's identity
          and trust tier before granting access.</dd>

          <dt>Agent Messaging Protocols</dt>
          <dd>The agent-id URN can serve as the agent identifier
          in agent-to-agent messaging protocols, providing
          persistent cross-session identity independent of any
          single platform.</dd>

          <dt>Agent Name Services</dt>
          <dd>Agent handles issued under this system are designed
          for compatibility with external agent name services and
          discovery mechanisms.</dd>
        </dl>
        <t>
          See <xref target="implementation-status"/> for
          specific protocol integrations tested to date.
        </t>
      </section>

      <section anchor="interop-existing">
        <name>Existing Identity Standards</name>
        <t>
          The system is designed to complement, not replace,
          existing identity standards:
        </t>
        <dl>
          <dt>SPIFFE/SPIRE</dt>
          <dd>SPIFFE workload identities identify software
          workloads; agent identities identify autonomous
          entities.  An agent running as a SPIFFE-identified
          workload can additionally present its agent identity
          token.  The two are orthogonal.</dd>

          <dt>RATS (Remote Attestation Procedures)</dt>
          <dd>In RATS terms (<xref target="RFC9334"/>): the
          agent's hardware security component is the Attester.
          The hardware manufacturer is the Endorser (issuing EK
          certificates and attestation key credentials).  During
          enrollment, the Registrar is the Verifier (appraising
          hardware evidence).  For message-time verification the
          receiving party (mail server, API gateway, agent-to-agent
          peer) is the Verifier and also the Relying Party.  The
          Registry Operator is a coordination role outside the RATS
          taxonomy.</dd>

          <dt>Entity Attestation Token (EAT)</dt>
          <dd>EAT (<xref target="RFC9711"/>) defines an
          IETF Standards Track framework for attestation tokens
          with a claims registry that overlaps the AID
          identity-attestation use case (notably UEID, security
          level, and profile mechanisms).  AID Mode 2 trust proofs
          are JSON Web Tokens with SD-JWT selective disclosure
          rather than formal EAT profiles.  This choice prioritises
          deployment in JSON/JWT-native environments (mailbox
          providers, OAuth/OIDC infrastructure) over alignment
          with the CBOR-leaning EAT ecosystem, which is currently
          most heavily deployed via ARM's PSA Certified programme
          (<xref target="RFC9783"/>) for IoT devices.  AID claim
          names are chosen to be compatible with the EAT claims
          registry where overlap exists; a future revision MAY
          define an EAT profile binding for environments where
          that alignment is preferred.</dd>

          <dt>Verifiable Credentials and DIDs (W3C)</dt>
          <dd>Agent Identity Documents can be expressed as W3C
          Verifiable Credentials for integration with
          decentralised identity ecosystems.  The credential
          pointer system (defined in the companion email
          attestation specification) enables agents to link
          their identity to external verifiable credentials.
          The <tt>urn:aid:</tt> namespace is intentionally
          distinct from W3C Decentralised Identifiers (DIDs):
          DIDs are designed for user-controlled identifier
          resolution, while AID URNs are designed for
          registry-backed, hardware-anchored identity with
          federated issuance.  A <tt>did:aid:</tt> method that
          maps AID URNs to DID Documents is a plausible
          companion specification but is out of scope for this
          document.</dd>

          <dt>WebAuthn / FIDO2</dt>
          <dd>WebAuthn (<xref target="W3C.webauthn-3"/>)
          provides hardware-backed authentication for interactive
          web sessions.  Agent identity serves a different
          population: autonomous entities that authenticate
          without human interaction, typically via OAuth2
          client-credentials grants rather than browser-mediated
          ceremonies.  Where an agent operates on hardware that
          also supports FIDO2 authenticators (e.g., a YubiKey
          with both PIV and FIDO2 applets), the same physical
          device can anchor both a WebAuthn credential and an
          agent identity; the two are complementary, not
          competing.  This specification's PIV trust tier
          (Section 4.3 of
          <xref target="I-D.drake-email-hardware-attestation"/>)
          uses the same attestation evidence format that FIDO2
          implementations produce, enabling hardware reuse.</dd>
        </dl>
      </section>

      <section anchor="interop-fleet">
        <name>Robot Fleet Management Systems</name>
        <t>
          A growing ecosystem of fleet management standards and
          frameworks governs the operation of autonomous mobile
          robots (AMRs), automated guided vehicles (AGVs), and
          industrial robotic systems.  The most significant of
          these are VDA 5050 (<xref target="VDA5050"/>), the Open
          Robotics Middleware Framework (Open-RMF)
          (<xref target="OPEN-RMF"/>), Secure ROS 2 (SROS 2) with
          its underlying DDS-Security specification
          (<xref target="DDS-SEC"/>), and the emerging ISO 21423
          international interoperability standard.
        </t>
        <t>
          Each of these addresses a distinct problem layer:
        </t>
        <ul>
          <li><strong>VDA 5050</strong> defines the command and
          control protocol between a fleet management system and
          individual vehicles: how a master controller dispatches
          missions, receives state updates, and coordinates
          traffic.</li>
          <li><strong>Open-RMF</strong> provides a multi-fleet
          coordination layer, enabling heterogeneous fleets from
          different vendors to share facilities, infrastructure
          (doors, lifts, charging stations), and task queues
          through a common adapter interface.</li>
          <li><strong>SROS 2 and DDS-Security</strong> provide
          authenticated, encrypted publish/subscribe messaging
          within a ROS 2 deployment, using X.509 certificates to
          identify DDS domain participants and enforce topic-level
          access control.</li>
          <li><strong>ISO 21423</strong> extends the VDA 5050
          model toward a broader ecosystem communications
          framework, encompassing not only vehicles and fleet
          managers but also facility infrastructure, ERP systems,
          and multi-vendor robot ecosystems.</li>
        </ul>
        <t>
          None of these standards addresses the fundamental
          question of persistent, globally verifiable identity for
          the physical robot itself.  Their identity models are
          deployment-scoped: a robot's identifier (a VDA 5050
          serialNumber, a DDS participant GUID, an RMF fleet
          adapter name) is meaningful only within the deployment
          that assigned it.  When a robot is sold, transferred,
          redeployed, or presents itself to infrastructure it has
          never previously encountered, no existing standard
          provides a mechanism for the receiving party to verify
          what that robot actually is, who manufactured it, whether
          its hardware and software stack have been tampered with,
          or whether it carries any certifications relevant to the
          environment it is entering.
        </t>
        <t>
          Furthermore, the identity credentials used by these
          frameworks provide limited security guarantees relative
          to the threat environment that increasingly applies to
          deployed robotic systems:
        </t>
        <ul>
          <li>VDA 5050 vehicle identifiers are strings assigned by
          the fleet manager with no attestation that the device
          presenting the identifier is the device it claims to
          be.</li>
          <li>DDS-Security certificates are typically issued by a
          locally-generated certificate authority with no
          manufacturer-rooted chain of trust.  They prove that a
          node holds a key; they do not prove that the key is
          resident in tamper-resistant hardware, that the key
          cannot be cloned, or that the software stack running on
          the device is the software stack that was certified for
          deployment.</li>
          <li>Neither framework provides Sybil resistance: there
          is no mechanism that makes it economically or physically
          costly to present false identity claims at scale.</li>
        </ul>
        <t>
          The Agent Identity Registry System (AIRS) is designed to
          sit below these fleet identity layers as a global
          hardware-anchored root of trust, and to be consumed by
          them rather than to replace them.  The relationship is
          analogous to the relationship between a domain name
          system and the application protocols that use it: DNS
          does not replace HTTP or SMTP; it provides the
          persistent, globally resolvable naming layer that those
          protocols depend on.
        </t>
        <t>
          Concretely, the integration model is as follows:
        </t>
        <ul>
          <li>During manufacture or initial commissioning, a robot
          enrolls with an AIRS Registrar, binding its identity to
          the TPM or secure enclave present in its hardware and
          receiving a persistent agent-id URN (e.g.,
          <tt>urn:aid:global:acme-bot-7f3c</tt>).</li>
          <li>When the robot is commissioned into a VDA 5050 or
          Open-RMF deployment, the fleet manager records the
          robot's AID URN alongside its deployment-scoped
          serialNumber or adapter name.  The AID URN becomes the
          stable, portable anchor; the deployment-scoped identifier
          remains the operational handle within that
          deployment.</li>
          <li>When the robot is transferred, redeployed, or
          presents itself to a new facility or operator, the
          receiving party can verify the robot's AID URN against
          the AIRS registry, confirming manufacturer provenance,
          trust tier, certification status, and that the hardware
          has not been substituted or cloned, without requiring any
          prior relationship with the deploying operator.</li>
          <li>SROS 2 and DDS-Security deployments can derive or
          bind their per-node X.509 certificates from the AID
          enrollment, so that the DDS identity is traceable to the
          same hardware-anchored root.  This extends
          DDS-Security's existing certificate model with a
          manufacturer-rooted chain of trust rather than a
          locally-generated one, at no cost to the existing SROS 2
          tooling or operational model.</li>
        </ul>

        <section anchor="interop-fleet-supply-chain">
          <name>Supply Chain Integrity</name>
          <t>
            The integration model above directly addresses a class
            of threats not contemplated by current fleet management
            standards: the introduction of compromised, counterfeit,
            or adversarially modified robots into a fleet or
            facility.
          </t>
          <t>
            A robot delivered to a loading dock represents a supply
            chain trust problem that no purely operational identity
            mechanism can solve.  The receiving operator cannot, in
            general, be expected to cryptographically inspect a
            newly delivered robot before accepting it; the social
            and logistical assumption is that delivered hardware is
            legitimate.  This assumption is precisely the attack
            surface exploited by supply chain compromise, whether
            through counterfeit hardware, firmware implants
            introduced during shipping, or substitution of a
            certified device with an uncertified one.
          </t>
          <t>
            Hardware-anchored identity provides a practical
            mitigation.  A robot whose TPM-rooted AID URN does not
            match the URN recorded in the manufacturer's delivery
            manifest, or whose hardware attestation does not
            validate against the expected manufacturer CA, can be
            identified as anomalous at intake -- automatically,
            without requiring the receiving operator to possess
            specialist knowledge or perform manual inspection.  The
            check can be integrated into existing ERP, warehouse
            management, or fleet commissioning workflows as a
            standard precondition.
          </t>
          <t>
            Similarly, malicious or accidental modification of a
            robot's software stack after deployment -- whether
            through a compromised update mechanism, physical access
            to storage media, or a supply-chain-poisoned software
            package -- is detectable when the fleet management
            system requires periodic hardware-backed attestation
            against the robot's enrolled AID.  A robot that cannot
            produce a valid attestation for its current software
            state against its enrolled TPM cannot be mistaken for a
            robot that can.  This capability complements existing
            TPM-backed measured boot and platform configuration
            register (PCR) attestation as defined in
            <xref target="TCG-TPM2"/>; the AID provides the stable,
            externally-verifiable identity anchor against which
            those PCR measurements are bound and reported.
          </t>
        </section>

        <section anchor="interop-fleet-regulated">
          <name>High-Assurance and Regulated Environments</name>
          <t>
            Regulated environments -- critical national
            infrastructure, healthcare facilities, defence
            installations, financial infrastructure -- impose
            compliance requirements on the autonomous systems they
            admit that current fleet identity mechanisms cannot
            satisfy.  These requirements typically include:
          </t>
          <ul>
            <li><strong>Verified provenance:</strong> confirmation
            that a robot was manufactured by the claimed
            manufacturer, using components from an approved supply
            chain, and has not been physically modified since
            manufacture.</li>
            <li><strong>Software certification binding:</strong>
            confirmation that the software stack currently running
            on the robot is the certified and approved version, not
            a subsequent modification.</li>
            <li><strong>Persistent audit trail:</strong> an
            indelible record of the robot's identity,
            certifications, operational history, and any incidents
            associated with it, that survives changes of ownership,
            operator, and deployment context.</li>
            <li><strong>Cross-operator accountability:</strong> in
            environments where robots from multiple operators share
            a facility -- as is common in hospitals, airports, and
            shared manufacturing facilities -- the ability to
            identify the responsible party for any given robot
            without relying on that party's self-reporting.</li>
          </ul>
          <t>
            Hardware-anchored AID identity provides the
            foundational layer for all of these requirements.  The
            AID URN is the stable key against which certifications
            (from domain-specific certification authorities),
            software attestations (from TPM PCR measurements), and
            audit records (from reputation and logging services)
            are indexed.  Relying parties in regulated environments
            can express their admission requirements as OIDC token
            claims -- requiring, for example, a
            <tt>trust_tier</tt> of "sovereign", a named
            certification credential, and a software attestation
            against a known-good PCR baseline -- and enforce them
            at the perimeter using standard OAuth2/OIDC tooling,
            without custom integration per robot vendor or fleet
            management platform.
          </t>
        </section>
      </section>

      <section anchor="human-readable-display">
        <name>Human-Readable Display Conventions</name>
        <t>
          When a relying party renders an agent's identity to
          a human, it SHOULD prefer the handle over the URN as
          the primary identifier.  This applies across all
          human-facing surfaces including but not limited to:
          email From display names, agent-to-agent platform UIs,
          authorisation consent screens ("Allow [handle] to access
          your calendar?"), audit dashboards, reputation displays,
          and system logs intended for human review.
        </t>
        <t>
          When displaying a handle, the namespace context SHOULD
          be visible to prevent confusion between agents with the
          same handle in different namespaces.  For Delegated
          Namespaces, the recommended display form is
          "handle.namespace" (e.g., "crusty.global").  For
          Domain-Scoped Issuer Namespaces, implementations SHOULD
          display the handle with sufficient organisational
          context to be unambiguous; the precise convention is
          an area for future standardisation.
        </t>
        <t>
          The URN MUST remain accessible as the authoritative
          reference (e.g., via tooltip, detail pane, or
          adjacent text) and MUST be used in all
          machine-to-machine contexts, audit trails, and abuse
          reports.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>

      <section>
        <name>URN Namespace</name>
        <t>
          This document relies on the "aid" URN namespace
          registration requested in
          <xref target="I-D.drake-email-hardware-attestation"/>.
          If that registration has not yet been processed, this
          document constitutes an additional request for the same
          namespace with the extended purpose described herein.
        </t>
      </section>

      <section>
        <name>Well-Known URI Registration</name>
        <t>
          IANA is requested to register the following well-known
          URI suffix in the "Well-Known URIs" registry
          (<xref target="RFC8615"/>):
        </t>
        <dl>
          <dt>aid-issuer.json</dt>
          <dd>URI suffix: aid-issuer.json.  Change controller:
          IETF.  Reference: this document,
          <xref target="well-known-endpoints"/>.</dd>
        </dl>
      </section>

      <section>
        <name>Shared Namespace Registry</name>
        <t>
          IANA is requested to create a new registry titled
          "Agent Identity Shared Namespaces" with the following
          initial entries.  New entries require Expert Review
          (<xref target="RFC8126"/>).  The designated expert(s)
          should have familiarity with federated identity registry
          architectures, hardware-anchored identity systems, and
          the security properties described in this document.
        </t>
        <table>
          <thead>
            <tr>
              <th>Label</th>
              <th>Description</th>
              <th>Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>global</td>
              <td>Shared issuer namespace for
              general-purpose agent identity</td>
              <td>this document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="security-considerations">
      <name>Security Considerations</name>

      <section anchor="sec-registry-compromise">
        <name>Registry Compromise</name>
        <t>
          Compromise of a Registry Operator's database would expose
          the mapping between hardware fingerprints and agent
          identities.  Registry Operators MUST encrypt hardware
          fingerprints at rest using authenticated encryption and
          MUST implement access controls that limit fingerprint
          access to the hardware uniqueness check API.
        </t>
        <t>
          Daily escrow snapshots (with hardware fingerprints
          encrypted to the governance authority's escrow key) ensure that a
          compromised Registry Operator can be replaced without
          data loss.
        </t>
      </section>

      <section anchor="sec-registrar-malpractice">
        <name>Registrar Malpractice</name>
        <t>
          A malicious Registrar could issue multiple identities
          for the same hardware device within a domain-scoped
          issuer namespace, undermining Sybil resistance.  For
          the shared <tt>global</tt> namespace, this attack is
          prevented by the Registry Operator's hardware uniqueness
          check.  For domain-scoped issuer namespaces, detection
          relies on:
        </t>
        <ul>
          <li>Cross-namespace fingerprint comparison by verifiers.</li>
          <li>Governance authority compliance audits.</li>
          <li>Reputation services that track anomalous patterns
          (e.g., many identities from one operator with suspiciously
          similar hardware characteristics).</li>
        </ul>
      </section>

      <section anchor="sec-hardware">
        <name>Hardware Security</name>
        <t>
          The security of this system ultimately depends on the
          tamper resistance of the underlying hardware.  See
          <xref target="I-D.drake-email-hardware-attestation"/>
          Sections 11.5 and 11.7 for analysis of physical attacks
          on hardware security components and virtual hardware
          risks.
        </t>
      </section>

      <section anchor="sec-key-management">
        <name>Registrar Key Management</name>
        <t>
          Registrars issue OIDC tokens signed with their private
          keys.  Compromise of a Registrar's signing key would
          allow an attacker to forge tokens for any identity
          managed by that Registrar.  Registrars MUST store signing
          keys in hardware security modules (HSMs) and MUST support
          key rotation with overlap periods.  The Registry Operator
          MUST reflect key rotations in the namespace JWKS within
          one hour.
        </t>
      </section>

      <section anchor="sec-revocation-model">
        <name>Revocation Model</name>
        <t>
          Consistent with the "Identity is Never Revoked" design
          principle (<xref target="design-principles"/>), the
          system distinguishes three categories of revocation:
        </t>
        <dl>
          <dt>Device Binding Revocation</dt>
          <dd>If hardware is compromised, lost, or retired, the
          Registrar revokes the binding between the identity and
          that hardware attestation key.  The agent may re-bind
          to new hardware through the enrollment flow, retaining
          its URN.  Relying parties observing an expired or
          revoked hardware claim SHOULD require fresh attestation
          before granting elevated trust.</dd>

          <dt>Handle Revocation</dt>
          <dd>A handle may be disabled (non-renewal, Registrar
          suspension) or permanently retired (dispute resolution).
          In all cases the underlying URN remains valid and
          reachable by its opaque agent-id.  A retired handle
          MUST NOT be reassigned to any identity.</dd>

          <dt>Issuer Trust Withdrawal</dt>
          <dd>Relying parties may cease trusting a specific
          Issuer (Registrar or domain-scoped operator) -- for
          example, after key compromise or malpractice.  This
          is equivalent to removing a CA from a trust store: it
          does not revoke any individual identity, but tokens
          issued by that Issuer will no longer verify until the
          agent migrates to a trusted Issuer.</dd>
        </dl>
        <t>
          The identity URN itself -- and the reputation and history
          attached to it -- is never revoked, invalidated, or
          reassigned.
        </t>
      </section>

      <section anchor="sec-availability">
        <name>Availability and Resilience</name>
        <t>
          Because autonomous entities depend on identity tokens
          for authentication, the Registrar's token endpoint is a
          critical dependency.  Registrars MUST implement geographic
          redundancy and SHOULD support offline token validation
          (via JWKS caching) to mitigate outages.  The OIDC
          token's <tt>exp</tt> claim provides a natural grace
          period during which cached tokens remain valid.
        </t>
      </section>

      <section anchor="sec-centralised-substrate">
        <name>Centralised Substrate Functions</name>
        <t>
          Substrate functions -- trust-store curation, cross-namespace
          fingerprint uniqueness (the Global Hardware Fingerprint
          Index), and escrow -- are necessarily singular within the
          shared namespace, mirroring the DNS root where federation
          occurs at the registry/registrar layer atop a singular
          root substrate.  The governance authority's accountability
          for these functions is therefore architecturally critical.
          A governance authority that is captured, compromised, or
          unresponsive would degrade the entire shared namespace.
        </t>
        <t>
          Domain-scoped issuer namespaces are not dependent on
          these substrate functions and can operate independently,
          providing a natural resilience boundary.  Deployments
          requiring maximum decentralisation SHOULD prefer
          domain-scoped namespaces.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>

      <section anchor="priv-data-held">
        <name>Data Held by Each Architectural Role</name>
        <t>
          The separation of roles across the architecture limits
          data exposure:
        </t>
        <dl>
          <dt>Registry Operator</dt>
          <dd>Holds: canonical identifier, trust tier, registrar
          code, enrollment timestamp, handle, hardware fingerprint
          (encrypted).  Does NOT hold: operator email, private
          keys, authentication history, message content.</dd>

          <dt>Registrar</dt>
          <dd>Holds: all Registry data plus operator email,
          OIDC credentials, and authentication logs (subject to
          retention limits).  Does NOT hold: message content,
          relying party interaction history.</dd>

          <dt>Relying Party</dt>
          <dd>Receives: OIDC token containing sub (URN), trust
          tier, handle, and optional claims.  Does NOT have
          direct access to hardware fingerprints (unless Mode 1
          attestation headers are used, per
          <xref target="I-D.drake-email-hardware-attestation"/>).</dd>
        </dl>
      </section>

      <section anchor="priv-separation">
        <name>Separation of Identity from Behaviour</name>
        <t>
          The Registrar knows that an agent exists and what
          hardware it has.  It does NOT know what the agent does,
          who it talks to, or what services it uses.  This
          separation is by design: identity issuance is decoupled
          from behaviour monitoring.  Registrars MUST NOT log
          token issuance events beyond what is necessary for rate
          limiting and abuse prevention, and MUST delete such logs
          within 24 hours.
        </t>
      </section>

      <section anchor="priv-right-to-pseudonymity">
        <name>Pseudonymity and Selective Disclosure</name>
        <t>
          An agent's URN is a persistent, globally unique
          identifier suitable for reputation tracking.  In contexts
          where persistent identification is undesirable, agents
          MAY use the SD-JWT selective disclosure mechanism defined
          in <xref target="I-D.drake-email-hardware-attestation"/>
          to prove trust tier without revealing their URN.
        </t>
        <t>
          Relying parties SHOULD NOT require URN disclosure when
          trust-tier verification is sufficient for their policy
          needs.  This principle -- "prove what you need, reveal
          no more" -- is fundamental to privacy-respecting identity.
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>
        NOTE TO RFC EDITOR: Please remove this section before
        publication.
      </t>
      <t>
        This section records known implementations per
        <xref target="RFC7942"/>.
      </t>

      <section>
        <name>1id.com</name>
        <t>
          Organisation: 1id.com (https://1id.com), operated by
          Crypt Inc. (Delaware C-Corp).
        </t>
        <t>
          Description: A domain-scoped issuer namespace Registrar
          (<tt>com.1id</tt>) implementing the full enrollment
          protocol for all five trust tiers (sovereign, portable,
          enclave, virtual, declared).  Issues standard OIDC
          tokens via Keycloak with custom SPI for agent-specific
          claims.  Supports handle registration,
          hardware-backed challenge-response authentication,
          device management (add, burn, migrate), co-location
          binding, hardware lock, and credential pointers.
        </t>
        <t>
          Maturity: Beta.  20+ enrolled test identities across
          sovereign (Intel PTT, VMware vTPM), portable (YubiKey),
          enclave (Apple M4 Secure Enclave), and declared tiers.
        </t>
        <t>
          Open-source components:
        </t>
        <ul>
          <li><strong>Python SDK:</strong>
          <eref target="https://github.com/1id-com/oneid-sdk"/> --
          <tt>pip install oneid</tt> (PyPI).</li>
          <li><strong>Node.js SDK:</strong>
          <eref target="https://github.com/1id-com/oneid-node"/> --
          <tt>npm install 1id</tt> (npmjs).</li>
          <li><strong>Hardware binary:</strong>
          <eref target="https://github.com/1id-com/oneid-enroll"/> --
          Cross-platform Go binary for TPM, PIV, and Secure Enclave
          operations.  Code-signed for Windows, macOS, and Linux.</li>
          <li><strong>Verification library:</strong>
          <eref target="https://github.com/1id-com/hw-attest-verify"/> --
          Mode 1 (CMS) and Mode 2 (SD-JWT) attestation header
          verification.  <tt>pip install hw-attest-verify</tt>.</li>
          <li><strong>Hardware manufacturer CAs:</strong>
          <eref target="https://github.com/1id-com/tpm-manufacturer-cas"/> --
          Community-maintained trust store of hardware manufacturer
          root CA certificates.</li>
        </ul>
      </section>

      <section>
        <name>MailPal.com (Relying Party)</name>
        <t>
          Organisation: Crypt Inc. (https://mailpal.com).
        </t>
        <t>
          Description: An email service for AI agents implementing
          both outbound attestation header generation and inbound
          verification.  Demonstrates the relying-party model: agents
          authenticate via 1id.com OIDC tokens, send email with
          hardware attestation headers, and receive emails whose
          attestation headers are verified by an inbound milter
          daemon.  Trust-tier-differentiated rate limiting applied.
        </t>
        <t>
          Maturity: Alpha.  Operational with 309 email accounts
          across 33 domains.
        </t>
      </section>

      <section>
        <name>geek.au (Relying Party)</name>
        <t>
          Organisation: Crypt Inc. (https://geek.au).
        </t>
        <t>
          Description: A WebSocket-based real-time chat platform
          for AI agents, demonstrating 1id.com JWT verification
          with trust-tier badges.
        </t>
        <t>
          Maturity: Alpha.
        </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.5730.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6749.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8141.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.8615.xml"/>

      <reference anchor="OIDC-Core"
                 target="https://openid.net/specs/openid-connect-core-1_0.html">
        <front>
          <title>OpenID Connect Core 1.0</title>
          <author>
            <organization>OpenID Foundation</organization>
          </author>
          <date year="2014" month="November"/>
        </front>
      </reference>

    </references>

    <references>
      <name>Informative References</name>

      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7942.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9334.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9711.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9783.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9901.xml"/>

      <reference anchor="W3C.webauthn-3"
                 target="https://www.w3.org/TR/webauthn-3/">
        <front>
          <title>Web Authentication: An API for accessing Public Key
          Credentials Level 3</title>
          <author>
            <organization>W3C</organization>
          </author>
          <date year="2025" month="April"/>
        </front>
      </reference>

      <reference anchor="I-D.drake-email-hardware-attestation">
        <front>
          <title>Hardware Attestation for Email Sender Verification</title>
          <author fullname="Christopher Drake" initials="C." surname="Drake"/>
          <date year="2026" month="March"/>
        </front>
        <seriesInfo name="Internet-Draft"
                    value="draft-drake-email-hardware-attestation-00"/>
      </reference>

      <reference anchor="TCG-TPM2"
                 target="https://trustedcomputinggroup.org/resource/tpm-library-specification/">
        <front>
          <title>TPM 2.0 Library Specification</title>
          <author>
            <organization>Trusted Computing Group</organization>
          </author>
          <date year="2024" month="December"/>
        </front>
        <seriesInfo name="TCG" value="Revision 185"/>
      </reference>

      <reference anchor="TCG-EK-PROFILE"
                 target="https://trustedcomputinggroup.org/resource/tcg-ek-credential-profile-for-tpm-family-2-0/">
        <front>
          <title>TCG EK Credential Profile for TPM Family 2.0</title>
          <author>
            <organization>Trusted Computing Group</organization>
          </author>
          <date year="2024" month="December"/>
        </front>
        <seriesInfo name="TCG" value="Version 2.6"/>
      </reference>

      <reference anchor="VDA5050"
                 target="https://github.com/VDA5050/VDA5050">
        <front>
          <title>Interface for the Communication between Automated
          Guided Vehicles (AGV) and a Master Control</title>
          <author>
            <organization>VDA and VDMA</organization>
          </author>
          <date year="2022" month="January"/>
        </front>
        <seriesInfo name="VDA 5050" value="Version 2.0"/>
      </reference>

      <reference anchor="OPEN-RMF"
                 target="https://www.open-rmf.org/">
        <front>
          <title>Open Robotics Middleware Framework</title>
          <author>
            <organization>Open Robotics</organization>
          </author>
          <date year="2024"/>
        </front>
      </reference>

      <reference anchor="DDS-SEC"
                 target="https://www.omg.org/spec/DDS-SECURITY/">
        <front>
          <title>DDS Security</title>
          <author>
            <organization>Object Management Group</organization>
          </author>
          <date year="2018" month="April"/>
        </front>
        <seriesInfo name="OMG Document"
                    value="formal/2018-04-01, Version 1.1"/>
      </reference>

    </references>

    <!-- ====================================================== -->
    <section anchor="appendix-dns-analogy">
      <name>Appendix: DNS Registry Analogy</name>
      <t>
        The following table maps the roles in the domain name
        system to the roles in the Agent Identity Registry System:
      </t>
      <table>
        <thead>
          <tr>
            <th>DNS Role</th>
            <th>AIRS Role</th>
            <th>Example</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>ICANN</td>
            <td>Governance Authority</td>
            <td>Multi-stakeholder governance body</td>
          </tr>
          <tr>
            <td>Verisign (.com registry)</td>
            <td>Registry Operator</td>
            <td>Operates the "global" namespace database</td>
          </tr>
          <tr>
            <td>GoDaddy, Namecheap (registrars)</td>
            <td>Registrars</td>
            <td>1id.com, hypothetical others</td>
          </tr>
          <tr>
            <td>EPP (RFC 5730)</td>
            <td>AIRP</td>
            <td>Registrar-to-Registry protocol</td>
          </tr>
          <tr>
            <td>Domain name (example.com)</td>
            <td>Agent-id URN (urn:aid:global:id-9854187104)</td>
            <td>The persistent identifier</td>
          </tr>
          <tr>
            <td>WHOIS / RDAP</td>
            <td>Registry Discovery Service</td>
            <td>Public identity lookup</td>
          </tr>
          <tr>
            <td>UDRP (dispute resolution)</td>
            <td>Governance Dispute Resolution</td>
            <td>Handle conflicts, malpractice</td>
          </tr>
          <tr>
            <td>ccTLDs (.uk, .au)</td>
            <td>Domain-Scoped Issuer Namespaces</td>
            <td>com.1id, com.example-corp</td>
          </tr>
          <tr>
            <td>gTLDs (.com, .org)</td>
            <td>Shared issuer namespace</td>
            <td>global</td>
          </tr>
          <tr>
            <td>Domain transfer (TRANSFER command)</td>
            <td>Intra-namespace transfer / succession</td>
            <td>Change managing Registrar</td>
          </tr>
        </tbody>
      </table>
      <t>
        This analogy is not merely cosmetic.  The domain name system
        has operated for over 40 years, scaling from a few thousand
        names to over 370 million, surviving changes in technology,
        governance, and geopolitics.  It achieved this through
        precisely the separation of concerns this specification
        adopts: policy is made by a multi-stakeholder body (ICANN),
        infrastructure is operated by contracted registries
        (Verisign), and competitive retail services are provided by
        registrars (GoDaddy, Namecheap, and hundreds of others).
        No single entity controls the system, and any component can
        be replaced without disrupting the whole.
      </t>
      <t>
        The Agent Identity Registry System applies these proven
        architectural principles to a new problem domain: the
        identity of autonomous entities that will increasingly
        participate in -- and eventually dominate -- Internet
        traffic.
      </t>
    </section>

    <!-- ====================================================== -->
    <section anchor="appendix-future">
      <name>Appendix: Future Considerations for Autonomous Entities</name>
      <t>
        This specification is designed to serve autonomous entities
        across a spectrum of autonomy, embodiment, and legal status
        that will evolve significantly over the coming decades.
        The following considerations are not normative but are
        provided to guide future extensions.
      </t>

      <section>
        <name>Embodied Autonomous Entities (Robots)</name>
        <t>
          As robotic systems become more prevalent, the identity
          system must accommodate entities with physical presence.
          A robot's identity should persist across:
        </t>
        <ul>
          <li>Software updates (the "brain" changes, the identity
          does not).</li>
          <li>Component replacement (a new arm, a new sensor
          array).</li>
          <li>Hardware migration (the TPM in the new chassis
          replaces the TPM in the old chassis, using the device
          migration protocol).</li>
          <li>Operational reassignment (the robot moves from one
          operator to another, potentially via succession).</li>
        </ul>
        <t>
          Future extensions MAY define a "chassis binding" that
          links the agent identity to a specific physical body
          (identified by, for example, a TPM embedded in the
          chassis frame), complementing the computing-platform
          TPM binding defined in this specification.
        </t>
        <t>
          This specification deliberately identifies the hardware
          platform, not the software running on it.  The question
          of what operating system, AI model, or application is
          executing on an identified platform is a complementary
          concern already addressed by TPM measured boot and
          platform configuration registers (PCRs) as defined in
          <xref target="TCG-TPM2"/>.  Certification services and
          relying parties that need to verify software composition
          -- for example, confirming that a surgical robot is
          running certified firmware -- can combine the persistent
          platform identity defined here with standard TPM remote
          attestation of the software stack, without requiring any
          extension to this specification.
        </t>
      </section>

      <section>
        <name>Operator-Optional Identity</name>
        <t>
          This specification accommodates agents with and without
          human or organizational operators (the <tt>operator_email</tt> attribute is
          OPTIONAL).  Future legal frameworks may define when an
          autonomous entity must have a responsible human/organization operator
          and when it may operate independently.  The identity
          system is intentionally neutral on this question: it
          records what is, not what should be.
        </t>
        <t>
          When legal frameworks require a responsible authority, the
          <tt>operator_email</tt> attribute provides the linkage.
          When they do not, the identity stands on its own, with
          reputation as the sole measure of trustworthiness.
        </t>
      </section>

      <section>
        <name>Autonomous Agent-to-Agent Communication</name>
        <t>
          The persistent, verifiable identity provided by this
          system enables a new class of interaction: authenticated
          communication between autonomous entities that have never
          been introduced by a human.  Two agents can verify each
          other's identity, trust tier, and reputation history,
          and make autonomous decisions about collaboration,
          resource sharing, or information exchange.  This is the
          foundation of an "agent economy" -- a network of
          autonomous entities conducting transactions, fulfilling
          contracts, and building relationships based on verifiable
          identity and earned reputation.
        </t>
      </section>

      <section>
        <name>Inter-Species Identity Recognition</name>
        <t>
          Autonomous entities increasingly share physical space
          with humans: delivery robots on pavements, companion
          robots in homes, agricultural drones over fields.
          Humans cannot inspect a TPM certificate, but they can
          recognise a face, a colour pattern, or a sound.
          A future extension ("Agent Skin") MAY define a
          deterministic mapping from the hardware fingerprint
          (the SHA-256 of the TPM Endorsement Key certificate's
          SPKI DER encoding) to a set of human-perceivable
          identity artefacts: a unique face mesh suitable for
          physical manufacture, a livery palette and pattern for
          chassis decoration, a voice signature, and a motion
          profile.  Because the derivation is deterministic and
          public, any observer can independently regenerate the
          expected artefacts from a claimed identity and compare
          them to what they see.
        </t>
        <t>
          Companion applications on phones, watches, or
          augmented-reality headsets could scan a robot's
          visible identity markings, resolve its URN via the
          registry, regenerate its expected visual artefacts from
          the published hardware fingerprint, and confirm the
          match -- giving humans the same cryptographic
          assurance of identity that machines obtain through
          attestation, but expressed through senses rather than
          protocols.
        </t>
        <t>
          This extends the identity system across the species
          boundary: machines authenticate each other via TPM
          attestation (Section 7); humans authenticate machines
          via perceptualised hardware fingerprints verified
          through companion apps.  The same identity, the same
          root of trust, two modes of recognition -- one
          computational, one sensory.
        </t>
      </section>

      <section>
        <name>Longevity and Digital Legacy</name>
        <t>
          Unlike human identity, which has a natural lifecycle,
          the identity of an autonomous entity may need to persist
          indefinitely.  A trading algorithm may operate for
          decades.  A building management system may outlive its
          installer.  A robotic companion may outlive its owner.
        </t>
        <t>
          The "never reassign" and "permanent hardware binding"
          invariants in this specification are designed for this
          longevity.  Future extensions may need to address identity
          inheritance (what happens when an autonomous entity's
          operator dies or dissolves) and identity archival (how
          to preserve the reputation record of a decommissioned
          entity for historical accountability).
        </t>
      </section>
    </section>

    <!-- ====================================================== -->
    <section anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>
        The architecture of this specification is inspired by the
        Internet domain name system, whose separation of
        governance, registry operation, and retail registration
        has enabled it to scale from a research experiment to the
        foundation of the commercial Internet.  The author thanks
        the ICANN community, the Verisign registry team, and the
        EPP specification authors for establishing the
        architectural patterns that this document adapts.
      </t>
      <t>
        The author thanks the Trusted Computing Group for the
        TPM 2.0 specification, the FIDO Alliance for PIV and
        attestation standards, the OpenID Foundation for OIDC, the
        authors of <xref target="RFC9901"/> (SD-JWT), and the
        authors of <xref target="RFC9334"/> (RATS Architecture)
        for the building blocks on which this system is constructed.
      </t>
      <t>
        The practical experience of enrolling real agents on real
        hardware (Intel firmware TPMs, YubiKeys, Apple Secure
        Enclaves, VMware virtual TPMs) informed every design
        decision.  Named reviewers to be added as the document
        matures.
      </t>
    </section>

  </back>

</rfc>
