<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bu-dawn-ard-discovery-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="ARD Manifest and Lookup">Agent Resource Discovery (ARD): Manifest and Lookup</title>
    <seriesInfo name="Internet-Draft" value="draft-bu-dawn-ard-discovery-00"/>
    <author fullname="Junjie Bu">
      <organization>Google</organization>
      <address>
        <email>jbu@google.com</email>
      </address>
    </author>
    <author initials="R. V." surname="Guha" fullname="R.V. Guha">
      <organization/>
      <address>
        <email>guha@guha.com</email>
      </address>
    </author>
    <author fullname="Shaun Smith">
      <organization>Hugging Face</organization>
      <address>
        <email>shaun.smith@huggingface.co</email>
      </address>
    </author>
    <author fullname="Jaime Jiménez">
      <organization>Ericsson</organization>
      <address>
        <email>jaime.jimenez@ericsson.com</email>
      </address>
    </author>
    <author fullname="Jeffrey Damick">
      <organization>Amazon</organization>
      <address>
        <email>jdamick@amazon.com</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>Internet</area>
    <keyword>agent discovery</keyword>
    <keyword>autonomous agents</keyword>
    <keyword>artificial intelligence</keyword>
    <keyword>model context protocol</keyword>
    <keyword>agent-to-agent</keyword>
    <keyword>federated search</keyword>
    <keyword>tool registry</keyword>
    <keyword>DAWN</keyword>
    <abstract>
      <?line 146?>

<t>This document specifies the catalog representation and lookup protocol for Agent Resource Discovery (ARD), an open architecture for publishing, discovering, and searching software agent capabilities across federated networks. ARD defines a JSON-LD capability description envelope (the ARD Entry) and catalog container (the ARD Manifest) identified by domain-anchored Uniform Resource Names (URNs), cryptographic publisher authority bindings (the Trust Manifest), and an HTTP query interface supporting structured, semantic, and federated search across registries. Initial contact for discovering catalog entry points and active agent registration are specified in companion ARD documents.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://mindpower.github.io/ietf-draft-agent-resources-discovery/draft-bu-dawn-ard-discovery.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bu-dawn-ard-discovery/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Discovery of Agents With Names (DAWN) Proposed Working Group mailing list (<eref target="mailto:dawn@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dawn/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dawn/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/mindpower/ietf-draft-agent-resources-discovery"/>.</t>
    </note>
  </front>
  <middle>
    <?line 150?>

<section anchor="intro">
      <name>Introduction</name>
      <t>Software agents and automated orchestrators increasingly interact with external, callable capabilities — such as Model Context Protocol (MCP) servers <xref target="MCP"/>, Agent-to-Agent (A2A) agents <xref target="A2A"/>, web APIs, and modular skills. In this document, callable capabilities providing programmatic services to automated systems are referred to generically as "agentic resources."</t>
      <t>The overall Agent Resource Discovery (ARD) architecture, deployment topologies, and design principles are described in <xref target="ARD-ARCH"/>. Within the ARD protocol suite, initial contact for locating a domain's manifest or registry entry point URI is specified in <xref target="ARD-INITIAL-CONTACT"/>, and active registration of live workloads with an Agent Directory is specified in <xref target="AGENT-DIRECTORY"/>.</t>
      <t>This document specifies the <strong>Manifest Representation and Lookup Protocol</strong> for ARD:</t>
      <ul spacing="normal">
        <li>
          <t><strong>The ARD Entry and Manifest Format (<xref target="entry-format"/>):</strong> Defines the JSON-LD <xref target="JSON-LD"/> capability description envelope (<tt>ARD Entry</tt>), the <tt>application/ard+json</tt> container format (<tt>ARD Manifest</tt>), and the domain-anchored Uniform Resource Name (URN) syntax (<tt>urn:air:&lt;publisher&gt;:&lt;namespace&gt;:&lt;agent-name&gt;</tt>) <xref target="RFC8141"/>.</t>
        </li>
        <li>
          <t><strong>Cryptographic Trust and Authority Binding (<xref target="trust-manifest"/>):</strong> Defines the optional <tt>trustManifest</tt> envelope (sealed using RFC 8785 JCS <xref target="RFC8785"/> and RFC 7515 detached JWS <xref target="RFC7515"/>) and artifact <tt>digest</tt> binding that allow consumers and multi-domain aggregators to verify publisher authority and third-party evaluations independently of the serving origin.</t>
        </li>
        <li>
          <t><strong>Lookup, Search, and Federated Discovery (<xref target="lookup-and-search"/>):</strong> Defines the HTTP REST interface (<tt>POST /search</tt>, <tt>POST /explore</tt>, and <tt>GET /agents</tt>) for structured filtering, semantic vector search, faceted exploration, and federated routing (<tt>auto</tt>, <tt>referrals</tt>, and <tt>none</tt>) across ARD Registries.</t>
        </li>
      </ul>
    </section>
    <section anchor="definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

<t>This document uses the architectural terminology (<tt>Agentic Resource</tt>, <tt>ARD Entry</tt>, <tt>Manifest</tt>, <tt>Registry</tt>, <tt>Publisher</tt>, <tt>Domain Owner</tt>, <tt>Consumer</tt>, <tt>Discovery Identifier</tt>, and <tt>Trust Manifest</tt>) defined in <xref target="ARD-ARCH"/>.</t>
    </section>
    <section anchor="entry-format">
      <name>The ARD Entry and Manifest Format</name>
      <t>The primary information model of ARD is the <strong>ARD Entry</strong> — the description of a single agentic resource carrying both core descriptive metadata and the discovery signals (<tt>representativeQueries</tt> and structured <tt>capabilities</tt>) required to make resources comparable and discoverable across publishers. ARD is defined over ARD entries; the container an entry travels in (a hosted manifest/catalog or a registry API response) is a transport concern.</t>
      <section anchor="jsonld-base">
        <name>JSON-LD Representation and Base Context</name>
        <t>An ARD entry is a JSON-LD node. The authoritative ARD base context is published at:</t>
        <artwork><![CDATA[
https://agenticresourcediscovery.org/context/v1
]]></artwork>
        <t>The base context maps core terms to Internationalized Resource Identifiers (IRIs) under the namespace <tt>https://agenticresourcediscovery.org/ns#</tt>.</t>
        <t>A conforming ARD consumer or registry <bcp14>MUST</bcp14> interpret an entry by applying the ARD base context as the initial expansion context (the JSON-LD <tt>expandContext</tt> option). An entry's local <tt>@context</tt>, when present, is layered on top of the base context: it <bcp14>MAY</bcp14> introduce new namespace prefixes or override existing ones, but does not discard the base. Under this rule, core terms resolve to their standard IRIs, while namespaced extension terms resolve through the prefixes declared in the entry.</t>
        <t>Including <tt>@context</tt> in an entry is <bcp14>OPTIONAL</bcp14> when served within an ARD manifest, as compliant processors automatically inject the base context. An entry <bcp14>SHOULD</bcp14> include <tt>@context</tt> when exchanged outside an ARD manifest (such as in generic JSON-LD documents or third-party feeds) where generic processors might otherwise lack the base context.</t>
      </section>
      <section anchor="entry-fields">
        <name>Entry Fields</name>
        <t>The following fields comprise an ARD entry:</t>
        <section anchor="required-fields">
          <name>Required Fields</name>
          <dl>
            <dt>identifier (String, <bcp14>MUST</bcp14>):</dt>
            <dd>
              <t>A globally unique, domain-anchored URN following the syntax defined in <xref target="urn-format"/> (e.g., <tt>urn:air:example.com:agent:flight-finder</tt>) that identifies a specific agentic resource instance published under the <tt>&lt;publisher&gt;</tt> domain's authority (rather than an abstract capability class shared across independent vendors). The JSON-LD <tt>@id</tt> <bcp14>MAY</bcp14> mirror this identifier.</t>
            </dd>
            <dt>displayName (String, <bcp14>MUST</bcp14>):</dt>
            <dd>
              <t>A human-readable display name for the agentic resource.</t>
            </dd>
            <dt>type (String, <bcp14>MUST</bcp14>):</dt>
            <dd>
              <t>The artifact media type formatted as an IANA Media Type string (e.g., <tt>application/mcp-server-card+json</tt>, <tt>application/a2a-agent-card+json</tt>).</t>
            </dd>
            <dt>url OR data (<bcp14>MUST</bcp14>, exactly one):</dt>
            <dd>
              <t>The capability payload delivery mechanism. An entry <bcp14>MUST</bcp14> specify either <tt>url</tt> or <tt>data</tt>, but <bcp14>MUST NOT</bcp14> specify both (see <xref target="value-or-reference"/>).</t>
            </dd>
          </dl>
        </section>
        <section anchor="recommended-fields">
          <name>Recommended Discovery Signals</name>
          <dl>
            <dt>representativeQueries (Array of Strings, <bcp14>SHOULD</bcp14>):</dt>
            <dd>
              <t>A list of 2 to 5 representative natural language user prompts or queries that this capability is designed to fulfill — the primary signal from which registries build semantic vector indices. Omitting this field severely degrades search discoverability. Conformance tooling flags missing or under-populated queries as a warning rather than a hard failure to accommodate entries originating from basic catalogs.</t>
            </dd>
            <dt>capabilities (Array of Strings, <bcp14>MAY</bcp14>):</dt>
            <dd>
              <t>Strings naming specific skills or tools exported by the resource (e.g., <tt>["WeatherQuery", "ForecastLookup"]</tt>) or JSON-LD vocabulary terms mapped via <tt>@context</tt> that enable high-performance structured filtering without fetching the complete artifact card.</t>
            </dd>
          </dl>
        </section>
        <section anchor="optional-fields">
          <name>Optional Descriptive Fields</name>
          <dl>
            <dt>description (String, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>A detailed natural language summary of the capability, its purpose, and operational characteristics.</t>
            </dd>
            <dt>tags (Array of Strings, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>Categorical tags for indexing (e.g., <tt>["travel", "finance", "utility"]</tt>).</t>
            </dd>
            <dt>version (String, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>A version identifier (e.g., SemVer <tt>1.2.0</tt>).</t>
            </dd>
            <dt>digest (String, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>An algorithm-prefixed cryptographic digest (<tt>&lt;alg&gt;:&lt;hex&gt;</tt>, e.g., <tt>sha256:9f86d08...</tt>) of the target artifact referenced by <tt>url</tt> (or inline <tt>data</tt>). Implementations <bcp14>MUST</bcp14> support <tt>sha256</tt> and <bcp14>MAY</bcp14> support additional collision-resistant hash algorithms (such as <tt>sha384</tt> or <tt>sha512</tt>).</t>
            </dd>
            <dt>updatedAt (String, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>An <xref target="RFC9110"/> or ISO 8601 UTC timestamp indicating when the record was last modified.</t>
            </dd>
            <dt>metadata (Object, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>An open key-value mapping for arbitrary operational metadata (e.g., rate limits, region availability).</t>
            </dd>
            <dt>trustManifest (Object, <bcp14>OPTIONAL</bcp14>):</dt>
            <dd>
              <t>A cryptographic trust envelope containing publisher identity assertions, provenance chains, and compliance attestations (see <xref target="trust-manifest"/>).</t>
            </dd>
          </dl>
        </section>
      </section>
      <section anchor="value-or-reference">
        <name>Value-or-Reference Pattern and Hypermedia Linking</name>
        <t>An entry delivers its capability manifest through either reference (<tt>url</tt>) or value (<tt>data</tt>):</t>
        <ul spacing="normal">
          <li>
            <t><strong>Reference (<tt>url</tt> - Primary Link-Based Model):</strong> A URI pointing directly to the external artifact descriptor (such as an Agent Card, OpenAPI schema, or MCP server manifest). ARD is fundamentally <strong>link-based</strong>: the registry indexes discovery metadata and returns reference links, leaving the client to fetch operational descriptors directly from the capability host. This ensures that the registry remains strictly decoupled from the runtime execution data path and avoids serving as a proxy or single point of failure. When an entry using <tt>url</tt> carries content-bound attestations in <tt>trustManifest</tt>, the entry <bcp14>SHOULD</bcp14> include <tt>digest</tt> to lock the referenced descriptor's content against post-publication modification at <tt>url</tt>.</t>
          </li>
          <li>
            <t><strong>Value (<tt>data</tt> - Inline Fallback):</strong> The complete artifact document embedded directly inline as a JSON object. This is provided as an optional mechanism for standalone, isolated, or air-gapped environments where an additional network resolution round-trip is impossible or undesirable.</t>
          </li>
        </ul>
        <t>An entry <bcp14>MUST</bcp14> carry exactly one of <tt>url</tt> or <tt>data</tt>, and <bcp14>MUST NOT</bcp14> include both.</t>
      </section>
      <section anchor="urn-format">
        <name>Domain-Anchored URN Syntax</name>
        <t>The discovery identifier <bcp14>MUST</bcp14> be a Uniform Resource Name (URN) adhering to <xref target="RFC8141"/> using the formal <tt>urn:air:</tt> namespace prefix:</t>
        <artwork><![CDATA[
urn:air:<publisher>:<namespace>:<agent-name>
]]></artwork>
        <t>Where:</t>
        <ul spacing="normal">
          <li>
            <t><tt>urn:air</tt>: The assigned ARD namespace identifier.</t>
          </li>
          <li>
            <t><tt>&lt;publisher&gt;</tt>: The fully qualified domain name (FQDN) of the publishing authority (e.g., <tt>example.com</tt>, <tt>cloud.google.com</tt>).</t>
          </li>
          <li>
            <t><tt>&lt;namespace&gt;</tt>: A sub-organization, project, or category identifier defined by the publisher (e.g., <tt>travel</tt>, <tt>devtools</tt>, <tt>hr</tt>).</t>
          </li>
          <li>
            <t><tt>&lt;agent-name&gt;</tt>: A unique name identifying the agentic resource instance within that publisher's namespace.</t>
          </li>
        </ul>
        <t>This domain-anchored structure guarantees global uniqueness without requiring a centralized naming committee, leverages existing DNS ownership for authority, and allows registries to parse publisher boundaries deterministically.</t>
        <t>Separating the logical resource <tt>identifier</tt> (<tt>urn:air:...</tt>) from physical content delivery (<tt>url</tt> or <tt>data</tt>) serves several protocol requirements:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Uniform Identity Across <tt>url</tt> and Inline <tt>data</tt>:</strong> Entries delivered by value via <tt>data</tt> (such as inline skills, prompt templates, or embedded MCP configurations) do not have a separate artifact <tt>url</tt>. The <tt>urn:air</tt> identifier provides a uniform primary key regardless of delivery mode.</t>
          </li>
          <li>
            <t><strong>Origin Independence and Deduplication:</strong> A resource's physical hosting <tt>url</tt> may change across staging and production environments, CDN mirrors, or cloud providers without changing the logical resource. The (<tt>identifier</tt>, <tt>version</tt>) tuple enables crawlers, registries, and federated peers to deduplicate entries and correlate third-party <tt>trustManifest</tt> evaluations across catalogs, while keeping provenance links (<tt>provenance[].sourceId</tt>) stable across hosting migrations.</t>
          </li>
          <li>
            <t><strong>Cryptographic Publisher Binding vs. Hosting Origin:</strong> Note that the HTTP origin hosting the manifest (<tt>/.well-known/ard.json</tt>), the <tt>&lt;publisher&gt;</tt> domain in the URN, and the host in the entry's <tt>url</tt> field do not need to be the same domain. For example, a catalog hosted at <tt>https://example.com/.well-known/ard.json</tt> may include an entry published by <tt>abc.com</tt> (<tt>urn:air:abc.com:agent:flight-finder</tt>) whose descriptor <tt>url</tt> is hosted on a cloud provider (<tt>https://xyz.execute-api.us-east-1.amazonaws.com/agent.json</tt>), where the TLS certificate of <tt>url</tt> belongs to the cloud provider rather than <tt>abc.com</tt>. An unverified <tt>urn:air:&lt;publisher&gt;:...</tt> string carries no implicit trust; binding the URN to <tt>&lt;publisher&gt;</tt> requires verifying a <tt>trustManifest</tt> signed by a key authorized by <tt>&lt;publisher&gt;</tt> (e.g., <tt>did:web:&lt;publisher&gt;</tt>). Because a manifest or registry response can contain entries from multiple publishers, each entry carries its full <tt>urn:air:&lt;publisher&gt;:...</tt> URN rather than a relative suffix.</t>
          </li>
          <li>
            <t><strong>Separation from Runtime Workload Identity:</strong> Whereas runtime workload identifiers (such as <tt>spiffe://</tt> or WIMSE Workload Identity Tokens) authenticate live execution instances during active registration (<xref target="AGENT-DIRECTORY"/>) or runtime invocation, <tt>urn:air</tt> identifies the published catalog artifact across versions and registries.</t>
          </li>
        </ul>
      </section>
      <section anchor="trust-manifest">
        <name>Identity and the Trust Manifest</name>
        <t>To satisfy enterprise compliance, supply-chain verification, and zero-trust policies, an ARD entry <bcp14>MAY</bcp14> carry a <tt>trustManifest</tt> object (or a <tt>trustManifests</tt> array when multiple parties — such as the original publisher and an independent security auditor — attach separate signed manifests to the same entry):</t>
        <sourcecode type="json"><![CDATA[
{
  "identifier": "urn:air:example.com:agent:flight-finder",
  "type": "application/a2a-agent-card+json",
  "version": "1.2.0",
  "url": "https://agents.example.com/flight-finder/agent.json",
  "digest": "sha256:9f86d081884c7d659a2feaa0c55ad015...",
  "trustManifest": {
    "identity": "did:web:example.com",
    "issuedAt": "2026-03-20T14:00:00Z",
    "subject": {
      "identifier": "urn:air:example.com:agent:flight-finder",
      "type": "application/a2a-agent-card+json",
      "version": "1.2.0",
      "digest": "sha256:9f86d081884c7d659a2feaa0c55ad015..."
    },
    "attestations": [
      {
        "type": "https://slsa.dev/provenance/v1",
        "uri": "https://example.com/attestations/slsa.json",
        "mediaType": "application/vnd.in-toto+json",
        "digest": "sha256:7f83b1657ff1fc53b92dc18148a1d65d..."
      }
    ],
    "signature": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImRpZDp3ZWI6..."
  }
}
]]></sourcecode>
        <t>Each <tt>trustManifest</tt> object is a self-contained signed envelope with the following core fields and signature semantics:</t>
        <ul spacing="normal">
          <li>
            <t><tt>identity</tt> (String, <bcp14>MUST</bcp14>): The cryptographic signer identifier (for example, <tt>did:web:example.com</tt>, resolved over HTTPS from <tt>https://example.com/.well-known/did.json</tt>).</t>
          </li>
          <li>
            <t><tt>issuedAt</tt> (String, <bcp14>SHOULD</bcp14>) and <tt>expiresAt</tt> (String, <bcp14>MAY</bcp14>): ISO 8601 timestamps indicating when the manifest was signed and, for periodic third-party evaluations, when the assertion expires.</t>
          </li>
          <li>
            <t><tt>subject</tt> (Object, <bcp14>MUST</bcp14>): A self-contained block containing the target entry's release coordinates (<tt>identifier</tt>, <tt>type</tt>, <tt>digest</tt>, and <tt>version</tt> when present on the entry). Including <tt>subject</tt> directly inside <tt>trustManifest</tt> allows the manifest to be canonicalized and verified as a standalone JSON object without cross-level JSON stitching.</t>
          </li>
          <li>
            <t><tt>attestations</tt> (Array, <bcp14>MAY</bcp14>) and <tt>provenance</tt> (Array, <bcp14>MAY</bcp14>): Hash-pinned references (<tt>uri</tt> + <tt>digest</tt>) to external supply-chain or compliance evidence (such as SLSA build provenance, SPDX SBOMs, SARIF vulnerability scans, or SOC 2 audit reports) and artifact lineage links (<tt>sourceId</tt> + <tt>sourceDigest</tt>).</t>
          </li>
          <li>
            <t><tt>signature</tt> (String, <bcp14>MUST</bcp14>): A JSON Web Signature (JWS) <xref target="RFC7515"/> computed over the JSON Canonicalization Scheme (JCS) <xref target="RFC8785"/> serialization of the <tt>trustManifest</tt> object with the <tt>signature</tt> member removed. The JWS Protected Header specifies the signing algorithm (<tt>alg</tt>, with <tt>ES256</tt> Mandatory-to-Implement) and key identifier (<tt>kid</tt>).</t>
          </li>
        </ul>
        <section anchor="authority-binding">
          <name>Publisher and Verifier Authority Binding</name>
          <t>A <tt>trustManifest</tt> signature cryptographically binds the signer (<tt>identity</tt>) to the artifact coordinates in <tt>subject</tt> (<tt>identifier</tt>, <tt>type</tt>, <tt>version</tt>, <tt>digest</tt>) and to the referenced <tt>attestations</tt> and <tt>provenance</tt> digests. Verifiers distinguish two roles:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Publisher Authority (<tt>Publisher Profile</tt>):</strong> To establish that the entry was genuinely published by <tt>&lt;publisher&gt;</tt> in <tt>urn:air:&lt;publisher&gt;:...</tt>, the entry <bcp14>MUST</bcp14> include a <tt>trustManifest</tt> whose <tt>identity</tt> matches or is cryptographically authorized by <tt>&lt;publisher&gt;</tt> (e.g., <tt>did:web:&lt;publisher&gt;</tt>). Verifying registries and consumers <bcp14>MUST</bcp14> confirm that (a) <tt>trustManifest.subject</tt> (<tt>identifier</tt>, <tt>type</tt>, <tt>digest</tt>, and <tt>version</tt>) matches the parent entry, (b) <tt>trustManifest.identity</tt> binds to <tt>&lt;publisher&gt;</tt>, and (c) <tt>trustManifest.signature</tt> is valid over the JCS-canonicalized <tt>trustManifest</tt>. Entries failing these checks <bcp14>MUST</bcp14> be rejected.</t>
            </li>
            <li>
              <t><strong>Third-Party Verifier Attestations (<tt>Signer Profile</tt>):</strong> Independent security auditors, compliance bodies, or evaluation services (whose <tt>identity</tt> domain differs from <tt>&lt;publisher&gt;</tt>, e.g., <tt>did:web:auditor.example.org</tt>) <bcp14>MAY</bcp14> attach an additional <tt>trustManifest</tt> in <tt>trustManifests[]</tt> over the same <tt>subject</tt> coordinates to endorse third-party evaluation results without altering the publisher's manifest. A third-party manifest attests only the evaluator's claims and does not substitute for the publisher's <tt>trustManifest</tt>.</t>
            </li>
          </ol>
        </section>
        <section anchor="subject-binding">
          <name>Cryptographic Subject Binding and Integrity Digests</name>
          <t>Attestations in <tt>trustManifest.attestations</tt> involve two distinct integrity bindings:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Binding the Attestation to the Target Artifact:</strong> To prevent attestation transplantation (where an attacker copies a valid attestation from one agent into another entry's metadata), each third-party attestation statement <bcp14>MUST</bcp14> either be a direct cryptographic signature over the artifact or include a signed subject claim that identifies the resource's <tt>identifier</tt> and/or the artifact's content <tt>digest</tt>. When the artifact is referenced via <tt>url</tt> rather than inline <tt>data</tt>, the ARD entry <bcp14>MUST</bcp14> include the top-level <tt>digest</tt> field so that the referenced bytes at <tt>url</tt> are bound to the attested digest.</t>
            </li>
            <li>
              <t><strong>Pinning the External Attestation Document (<tt>attestations[].digest</tt>):</strong> Because external attestation documents referenced by <tt>attestations[].uri</tt> (such as PDF compliance reports, SARIF scan results, or SLSA provenance files) may be hosted on external servers or in formats that do not carry self-contained signatures, the optional <tt>digest</tt> field inside each <tt>attestations[]</tt> item records the cryptographic hash of the external attestation document itself. Sealed under <tt>trustManifest.signature</tt>, this acts as a subresource integrity pin ensuring the external file at <tt>attestations[].uri</tt> cannot be replaced or modified after the <tt>trustManifest</tt> is signed.</t>
            </li>
          </ol>
          <t>All digest strings (<tt>digest</tt>, <tt>attestations[].digest</tt>, and <tt>provenance[].sourceDigest</tt>) use the algorithm-prefixed <tt>&lt;alg&gt;:&lt;hex&gt;</tt> format (e.g., <tt>sha256:...</tt>) to support hash agility; <tt>sha256</tt> is Mandatory-to-Implement (MTI).</t>
        </section>
      </section>
      <section anchor="manifest-format">
        <name>The ARD Manifest Container</name>
        <t>When published as a static catalog document (at an entry point URI discovered via <xref target="ARD-INITIAL-CONTACT"/>, such as <tt>https://{domain}/.well-known/ard.json</tt>), ARD entries are packaged in an <tt>application/ard+json</tt> document containing a top-level <tt>entries</tt> array:</t>
        <sourcecode type="json"><![CDATA[
{
  "entries": [
    {
      "identifier": "urn:air:acme.com:tools:weather",
      "displayName": "Acme Weather Service",
      "type": "application/mcp-server-card+json",
      "url": "https://api.acme.com/mcp/weather.json",
      "capabilities": ["CurrentWeather", "Forecast"],
      "representativeQueries": [
        "what is the weather in Seattle",
        "get tomorrow's rain forecast"
      ]
    }
  ]
}
]]></sourcecode>
        <t>A publisher is not required to enumerate its capabilities in a static manifest; it <bcp14>MAY</bcp14> instead operate a dynamic Agent Registry exposing the query interface (<xref target="search-api"/>) directly, or publish a minimal manifest containing a single <tt>application/ai-registry+json</tt> entry whose <tt>url</tt> advertises the Base URI of its dynamic Agent Registry service. For web crawlers, publishers <bcp14>MAY</bcp14> also signal their manifest in HTML <tt>&lt;head&gt;</tt> elements using <tt>&lt;link rel="ard" type="application/ard+json" href="..."&gt;</tt>.</t>
      </section>
    </section>
    <section anchor="lookup-and-search">
      <name>Lookup, Search, and Federated Discovery</name>
      <t>Whether a publisher exposes a dynamic Agent Registry directly or third-party registries aggregate entries across domains, clients query Agent Registries to perform structured, semantic, and faceted discovery.</t>
      <section anchor="registry-ingestion">
        <name>Registry Ingestion and Companion Protocols</name>
        <t>An Agent Registry may operate as a publisher's own dynamic discovery endpoint, as a standalone search service that ingests entries via web crawling, or as a dual-role Agent Directory that pairs lookup with an active registration service. This document specifies the <strong>Lookup and Search Interface</strong> (<xref target="search-api"/> and <xref target="federation"/>), which builds upon two companion specifications:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Initial Contact and Entry Point Discovery (<xref target="ARD-INITIAL-CONTACT"/>):</strong> Clients and registry crawlers obtain manifest or registry entry point URIs using the mechanisms defined in <xref target="ARD-INITIAL-CONTACT"/> — including DNS Service Binding (<tt>SVCB</tt> / <tt>HTTPS</tt>) records under <tt>_entries._agents.&lt;domain&gt;</tt> or <tt>_search._agents.&lt;domain&gt;</tt>, DNS-Based Service Discovery (<tt>_ard._tcp</tt>) over unicast DNS or Multicast DNS, the baseline well-known URI (<tt>/.well-known/ard.json</tt>), and the <tt>ard</tt> HTTP link relation.</t>
          </li>
          <li>
            <t><strong>Active Registration and Soft-State Lifecycle (<xref target="AGENT-DIRECTORY"/>):</strong> For dual-role Agent Directories that accept active registrations from live agent workloads or Commissioning Tools (CTs), the registration wire protocol, soft-state lifetime (<tt>lt</tt>) renewals, and workload identity authentication (such as IETF WIMSE <xref target="WIMSE-ARCH"/> Workload Identity Tokens and Workload Proof Tokens, SPIFFE IDs, or ID-JAG assertions) are specified in <xref target="AGENT-DIRECTORY"/> (drawing from <xref target="RFC9176"/>). A registry <bcp14>MAY</bcp14> verify whether the asserted workload identity or <tt>trustManifest</tt> binds to the <tt>&lt;publisher&gt;</tt> domain declared in the entry's URN (see <xref target="authority-binding"/>) and use the outcome for verified status indicators, filtering, ranking, or admission decisions.</t>
          </li>
        </ul>
        <section anchor="crawling">
          <name>Ingestion and Crawling Pipelines</name>
          <t>Registries populate and refresh their discovery indices through automated ingestion and crawling pipelines that:</t>
          <ul spacing="normal">
            <li>
              <t>Discover and fetch publisher <tt>/.well-known/ard.json</tt> manifests, HTTP <tt>ard</tt> link relations, HTML <tt>&lt;link rel="ard"&gt;</tt> tags, and DNS-advertised entry points over TLS 1.3 (per <xref target="ARD-INITIAL-CONTACT"/>).</t>
            </li>
            <li>
              <t>Ingest validated manifests and entries from software repositories, package registries, and federated peer registries.</t>
            </li>
          </ul>
          <t>As in <xref target="ARD-INITIAL-CONTACT"/> and the CoRE Resource Directory architecture (Section 7.2 of <xref target="RFC9176"/>), a discovery channel or registry is authoritative for its own lookup and search responses, not for the third-party agent resources it lists. Entry point URIs and entries ingested from static manifests, HTML <tt>&lt;link rel="ard"&gt;</tt> tags, package registries, or federated peer registries serve as discovery <strong>hints</strong> until publisher authority and artifact integrity are verified via the entry's signed <tt>trustManifest</tt> and the target resource at <tt>url</tt> (see <xref target="federation-trust"/> and <xref target="sec-authority"/>).</t>
        </section>
      </section>
      <section anchor="search-api">
        <name>The Search and Query HTTP API</name>
        <t>In accordance with BCP 56 <xref target="RFC9205"/>, compliant Agent Registries <bcp14>MUST</bcp14> expose an HTTP query interface over HTTPS conforming to <xref target="RFC9110"/> (supporting HTTP/1.1 and HTTP/2, and optionally HTTP/3), <bcp14>MAY</bcp14> additionally offer protocol-specific wrappers, and <bcp14>MAY</bcp14> document their endpoints using the OpenAPI Specification <xref target="OpenAPI"/>. A registry discovers peer registries by recognizing entries whose <tt>type</tt> is <tt>application/ai-registry+json</tt>.</t>
        <t>To avoid squatting on root URI paths (<xref target="RFC8615"/>, Section 4.3 of <xref target="RFC9205"/>), the endpoint paths <tt>/search</tt>, <tt>/explore</tt>, and <tt>/agents</tt> defined in this section are relative to the Registry's discovered <strong>Base URI</strong> (advertised in the <tt>url</tt> field of the registry's <tt>application/ai-registry+json</tt> entry, e.g., <tt>https://registry.example.com/ard/v1</tt>). Requests with a message body and successful responses use the <tt>application/json</tt> media type unless a specific profile media type is negotiated via <tt>Accept</tt> / <tt>Content-Type</tt> headers.</t>
        <section anchor="query-model">
          <name>Universal Query Model</name>
          <t>Search and introspection endpoints accept a unified <tt>query</tt> object comprising three optional elements: <tt>@context</tt>, <tt>text</tt>, and <tt>filter</tt>:</t>
          <sourcecode type="json"><![CDATA[
{
  "query": {
    "@context": {
      "okf": "https://openknowledgeformat.org/ns#"
    },
    "text": "book a round-trip flight to Tokyo next Monday",
    "filter": {
      "type": ["application/a2a-agent-card+json"],
      "tags": ["travel", "booking"],
      "okf:regulatoryZone": ["JP", "US"],
      "trustManifest.attestations.type": ["SOC2-Type2"]
    }
  }
}
]]></sourcecode>
          <ul spacing="normal">
            <li>
              <t><tt>@context</tt>: Defines JSON-LD prefix mappings used for keys inside <tt>filter</tt>.</t>
            </li>
            <li>
              <t><tt>text</tt>: Natural language user intent used for semantic relevance matching and vector search.</t>
            </li>
            <li>
              <t><tt>filter</tt>: Key-value map of exact structural constraints. Keys represent term paths (resolved via <tt>@context</tt> and the base context). Values are arrays combined with OR logic; multiple keys are combined with AND logic.</t>
            </li>
          </ul>
        </section>
        <section anchor="search-endpoint">
          <name>Search Endpoint (<tt>POST /search</tt>)</name>
          <t>The Search endpoint executes semantic ranking combined with structured filtering over the registry index.</t>
          <section anchor="search-req">
            <name>Search Request Schema</name>
            <sourcecode type="json"><![CDATA[
{
  "query": {
    "text": "flight booking assistant",
    "filter": {
      "type": ["application/a2a-agent-card+json"]
    }
  },
  "federation": "referrals",
  "pageSize": 5,
  "pageToken": "eyJwYWdlIjoxfQ=="
}
]]></sourcecode>
            <t>Parameters:</t>
            <ul spacing="normal">
              <li>
                <t><tt>query.text</tt> (String, <bcp14>MUST</bcp14>): The semantic search prompt.</t>
              </li>
              <li>
                <t><tt>query.filter</tt> (Object, <bcp14>OPTIONAL</bcp14>): Structured filter constraints.</t>
              </li>
              <li>
                <t><tt>federation</tt> (String, <bcp14>OPTIONAL</bcp14>): Federation routing mode (<tt>"auto"</tt>, <tt>"referrals"</tt>, or <tt>"none"</tt>, default: <tt>"auto"</tt>).</t>
              </li>
              <li>
                <t><tt>pageSize</tt> (Integer, <bcp14>OPTIONAL</bcp14>): Maximum results to return (default: 10, max: 100).</t>
              </li>
              <li>
                <t><tt>pageToken</tt> (String, <bcp14>OPTIONAL</bcp14>): Pagination cursor token.</t>
              </li>
            </ul>
          </section>
          <section anchor="search-resp">
            <name>Search Response Schema</name>
            <sourcecode type="json"><![CDATA[
{
  "results": [
    {
      "identifier": "urn:air:skyways.com:agents:flight-booker",
      "displayName": "Skyways Flight Booker",
      "type": "application/a2a-agent-card+json",
      "url": "https://api.skyways.com/agents/booking.json",
      "score": 96,
      "source": "https://registry.skyways.com"
    }
  ],
  "referrals": [
    {
      "identifier": "urn:air:globaltravel.org:registry:main",
      "displayName": "Global Travel Agent Registry",
      "type": "application/ai-registry+json",
      "url": "https://registry.globaltravel.org/search"
    }
  ],
  "nextPageToken": "eyJwYWdlIjoyfQ=="
}
]]></sourcecode>
            <t>The <tt>score</tt> integer parameter (0 to 100) indicates informational semantic relevance calculated by the registry.</t>
          </section>
        </section>
        <section anchor="explore-endpoint">
          <name>Explore Endpoint (<tt>POST /explore</tt>)</name>
          <t>The Explore endpoint allows clients to introspect registry contents, aggregate distributions, and inspect available facets without returning full entry records.</t>
          <section anchor="explore-req">
            <name>Explore Request Schema</name>
            <sourcecode type="json"><![CDATA[
{
  "query": {
    "filter": {
      "type": ["application/mcp-server-card+json"]
    }
  },
  "resultType": {
    "facets": [
      { "field": "capabilities", "limit": 10 },
      { "field": "publisher", "limit": 5 }
    ]
  }
}
]]></sourcecode>
          </section>
          <section anchor="explore-resp">
            <name>Explore Response Schema</name>
            <sourcecode type="json"><![CDATA[
{
  "resultType": "facets",
  "facets": {
    "capabilities": {
      "buckets": [
        { "value": "WeatherTool", "count": 142 },
        { "value": "WebSearch", "count": 98 }
      ],
      "otherCount": 12
    }
  }
}
]]></sourcecode>
          </section>
        </section>
        <section anchor="list-endpoint">
          <name>Deterministic List Endpoint (<tt>GET /agents</tt>)</name>
          <t>A lightweight, cacheable HTTP GET endpoint for administrative browsing, catalog synchronization, and developer tooling. Supports standard query parameters: <tt>pageSize</tt>, <tt>pageToken</tt>, and a deterministic filter query string.</t>
        </section>
        <section anchor="error-codes">
          <name>Standard Error Responses</name>
          <t>When a query fails or cannot be processed, conforming registries <bcp14>MUST</bcp14> return an appropriate HTTP status code and <bcp14>SHOULD</bcp14> return an HTTP Problem Details object (<tt>application/problem+json</tt>) conforming to <xref target="RFC9457"/> (per Section 4.7 of <xref target="RFC9205"/>), including a machine-readable <tt>error</tt> code extension member:</t>
          <sourcecode type="json"><![CDATA[
{
  "type": "https://agenticresourcediscovery.org/problems/invalid-argument",
  "title": "Invalid Argument",
  "status": 400,
  "detail": "Malformed query JSON or unsupported filter term.",
  "error": "INVALID_ARGUMENT"
}
]]></sourcecode>
          <table>
            <thead>
              <tr>
                <th align="left">HTTP Status</th>
                <th align="left">Error Code</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">400 Bad Request</td>
                <td align="left">
                  <tt>INVALID_ARGUMENT</tt></td>
                <td align="left">Malformed query JSON, missing required fields, or invalid filter syntax.</td>
              </tr>
              <tr>
                <td align="left">401 Unauthorized</td>
                <td align="left">
                  <tt>UNAUTHENTICATED</tt></td>
                <td align="left">Missing or invalid authentication credentials.</td>
              </tr>
              <tr>
                <td align="left">403 Forbidden</td>
                <td align="left">
                  <tt>PERMISSION_DENIED</tt></td>
                <td align="left">Caller lacks sufficient access permissions for the registry or resource.</td>
              </tr>
              <tr>
                <td align="left">404 Not Found</td>
                <td align="left">
                  <tt>NOT_FOUND</tt></td>
                <td align="left">Specified agent identifier, registry, or endpoint does not exist.</td>
              </tr>
              <tr>
                <td align="left">429 Too Many Requests</td>
                <td align="left">
                  <tt>RATE_LIMIT_EXCEEDED</tt></td>
                <td align="left">Request rate limit exceeded; server <bcp14>SHOULD</bcp14> include a <tt>Retry-After</tt> header field (<xref target="RFC9110"/>) and client <bcp14>SHOULD</bcp14> retry with backoff.</td>
              </tr>
              <tr>
                <td align="left">500 Internal Server Error</td>
                <td align="left">
                  <tt>INTERNAL_ERROR</tt></td>
                <td align="left">Internal server or unhandled storage failure.</td>
              </tr>
              <tr>
                <td align="left">501 Not Implemented</td>
                <td align="left">
                  <tt>NOT_IMPLEMENTED</tt></td>
                <td align="left">Requested feature (e.g., Explore endpoint or unsupported federation mode) is not implemented.</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
      <section anchor="federation">
        <name>Federated Routing and Scalability</name>
        <t>Registries coordinate in a decentralized mesh using the <tt>federation</tt> parameter:</t>
        <ul spacing="normal">
          <li>
            <t><strong>auto:</strong> The queried registry forwards the query to its upstream peer registries, aggregates and de-duplicates the result sets, and returns a unified response to the client.</t>
          </li>
          <li>
            <t><strong>referrals:</strong> The registry returns its own local matches along with a list of <tt>referrals</tt> pointing to downstream or domain-specific registries. The client decides which registries to query next.</t>
          </li>
          <li>
            <t><strong>none:</strong> The registry queries only its locally indexed entries.</t>
          </li>
        </ul>
        <t><xref target="fig-federation"/> illustrates the query flows for the <tt>auto</tt> and <tt>referrals</tt> modes (whereas <tt>none</tt> restricts search to Registry A's local index):</t>
        <figure anchor="fig-federation">
          <name>Federated Registry Query Flows</name>
          <artwork align="center"><![CDATA[
 Mode 1: "auto" (Recursive)          Mode 2: "referrals" (Iterative)

+----------+        +----------+    +----------+        +----------+
| Consumer |------->| Registry |    | Consumer |------->| Registry |
|          |<-------|    A     |    |          |<-------|    A     |
+----------+  Agg.  +----------+    +----------+ Local  +----------+
             Results   |    ^          |    ^   + Referrals
                 Fwd   |    | Peer     |    |
                 Query |    | Results  |    +--- Follow Referral
                       v    |          |         Query / Results
                    +----------+       |        +----------+
                    |   Peer   |       +------->|   Peer   |
                    | Registry |                | Registry |
                    +----------+                +----------+
]]></artwork>
        </figure>
        <t>To prevent infinite loops and denial-of-service amplification across federated registries, registries <bcp14>MUST</bcp14> maintain a <tt>hopCount</tt> and reject or truncate queries exceeding a maximum hop limit (default: 3 hops).</t>
        <section anchor="federation-trust">
          <name>Federation Trust Model and Origin Binding</name>
          <t>Federated discovery introduces two distinct verification boundaries:</t>
          <ol spacing="normal" type="1"><li>
              <t><strong>Non-Authoritative Downstream Registries:</strong> In both <tt>"auto"</tt> and <tt>"referrals"</tt> modes, peer registries act as non-authoritative discovery intermediaries (analogous to Section 7.2 of <xref target="RFC9176"/>). A TLS connection to a registry authenticates only that registry (<tt>source</tt>), not the <tt>&lt;publisher&gt;</tt> of the entries it returns. Consequently, neither an aggregating registry in <tt>"auto"</tt> mode nor a client following <tt>"referrals"</tt> <bcp14>MUST</bcp14> rely on transport trust in a downstream registry to establish publisher authority. Instead, consumers and verifying registries <bcp14>MUST</bcp14> validate each entry's signed <tt>trustManifest</tt> against the <tt>&lt;publisher&gt;</tt> domain (and any third-party verifier <tt>trustManifest</tt> against the verifier's identity); entries lacking a verified publisher <tt>trustManifest</tt> <bcp14>MUST</bcp14> be treated as unverified discovery hints. In <tt>"referrals"</tt> mode, clients can also evaluate the referred registry's identity before transmitting sensitive query text.</t>
            </li>
            <li>
              <t><strong>Binding Location <tt>url</tt> to the Target Origin:</strong> A valid <tt>trustManifest</tt> signature from <tt>&lt;publisher&gt;</tt> proves that <tt>&lt;publisher&gt;</tt> authorized the entry (<tt>urn:air:&lt;publisher&gt;:...</tt>), but if <tt>url</tt> points to a different origin (for example, <tt>urn:air:attacker.example:agent:foo</tt> specifying <tt>"url": "https://victim.example.com/service"</tt>), <tt>&lt;publisher&gt;</tt>'s signature alone does not prove that the target origin (<tt>victim.example.com</tt>) consented to host that resource. When the origin of <tt>url</tt> differs from <tt>https://&lt;publisher&gt;</tt>, consumers and verifying registries <bcp14>MUST</bcp14> verify that the artifact descriptor retrieved from <tt>url</tt> matches the entry's signed cryptographic <tt>digest</tt> and explicitly declares the matching <tt>identifier</tt> (<tt>urn:air:&lt;publisher&gt;:...</tt>) or publisher identity (<tt>trustManifest.identity</tt>) before invoking the resource.</t>
            </li>
          </ol>
        </section>
        <section anchor="referrals-example">
          <name>Referrals Federation Example</name>
          <t>When a consumer specifies <tt>"federation": "referrals"</tt>, the registry returns its direct capability matches in <tt>results</tt> alongside an array of <tt>referrals</tt> pointing to downstream or specialized registries matching the query scope:</t>
          <t>Request:</t>
          <sourcecode type="json"><![CDATA[
{
  "query": {
    "text": "find corporate travel booking agents"
  },
  "federation": "referrals"
}
]]></sourcecode>
          <t>Response:</t>
          <sourcecode type="json"><![CDATA[
{
  "results": [
    {
      "identifier": "urn:air:example.com:agent:internal-travel",
      "displayName": "Internal Corporate Travel Assistant",
      "type": "application/a2a-agent-card+json",
      "url": "https://corp.example.com/agents/travel.json",
      "score": 92,
      "source": "https://registry.corp.example.com"
    }
  ],
  "referrals": [
    {
      "identifier": "urn:air:travelmesh.org:registry:global",
      "displayName": "Global Travel Agent Registry",
      "type": "application/ai-registry+json",
      "url": "https://finder.travelmesh.org/search"
    },
    {
      "identifier": "urn:air:partnernet.com:registry:alliances",
      "displayName": "Airline Alliances Registry",
      "type": "application/ai-registry+json",
      "url": "https://registry.partnernet.com/search"
    }
  ]
}
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="cddl-spec">
      <name>Formal CDDL Specification</name>
      <t>The normative grammar of the ARD manifest, entry, and REST payloads is defined in Concise Data Definition Language (CDDL) <xref target="RFC8610"/>:</t>
      <sourcecode type="cddl"><![CDATA[
start = ard-manifest

; --- The Manifest ---
ard-manifest = {
  entries: [* ard-entry],
  * tstr => any
}

; --- The ARD Entry ---
ard-entry = {
  ard-entry-required,
  ard-entry-descriptive,
  * tstr => any
}

ard-entry-required = (
  ; URN: urn:air:{publisher}:{namespace}:{agent-name}
  identifier: tstr,
  displayName: tstr,
  type: tstr,       ; IANA Media Type
  content-delivery  ; value-or-reference
)

ard-entry-descriptive = (
  ? "@context" => any,
  ? "@id" => tstr,
  ? description: tstr,
  ? tags: [+ tstr],
  ? capabilities: [+ tstr],
  ? representativeQueries: [* tstr],
  ? version: tstr,
  ? digest: tstr,
  ? updatedAt: tstr,
  ? metadata: {* tstr => any},
  ? trustManifest: trust-manifest,
  ? trustManifests: [+ trust-manifest]
)

content-delivery = (
  url: tstr //
  data: {* tstr => any}
)

; --- Trust Envelope ---
trust-manifest = {
  identity: tstr,
  ? issuedAt: tstr,
  ? expiresAt: tstr,
  ? subject: trust-subject,
  ? identityType: tstr,
  ? trustSchema: trust-schema,
  ? attestations: [* attestation],
  ? provenance: [* provenance-link],
  ? signature: tstr,
  * tstr => any
}

trust-subject = {
  identifier: tstr,
  type: tstr,
  ? version: tstr,
  ? digest: tstr,
  ? url: tstr,
  * tstr => any
}

trust-schema = {
  ? identifier: tstr,
  ? version: tstr,
  ? governanceUri: tstr,
  ? verificationMethods: [* tstr],
  * tstr => any
}

attestation = {
  type: tstr,
  uri: tstr,
  ? mediaType: tstr,
  ? digest: tstr,
  * tstr => any
}

provenance-link = {
  relation: tstr,
  sourceId: tstr,
  ? sourceDigest: tstr,
  * tstr => any
}

; --- Search API Payloads ---
query-model = {
  ? text: tstr,
  ? "@context" => any,
  ? filter: {* tstr => ([+ tstr] / tstr)}
}

search-request = {
  query: query-model,
  ? federation: "auto" / "referrals" / "none",
  ? pageSize: uint,
  ? pageToken: tstr
}

search-response = {
  results: [* search-result-item],
  ? referrals: [* registry-referral],
  ? nextPageToken: tstr
}

search-result-item = {
  identifier: tstr,
  ? displayName: tstr,
  ? type: tstr,
  ? url: tstr,
  ? digest: tstr,
  ? trustManifest: trust-manifest,
  score: 0..100,
  source: tstr,
  * tstr => any
}

registry-referral = {
  identifier: tstr,
  displayName: tstr,
  type: "application/ai-registry+json",
  url: tstr
}

; Helper types
any = any-cbor / any-json
any-cbor = bool / int / float / tstr / bstr /
           [* any-cbor] / {* any-cbor => any-cbor}
any-json = bool / int / float / tstr / null /
           [* any-json] / {* tstr => any-json}
null = nil
]]></sourcecode>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Discovery protocols for autonomous systems operate in adversarial environments where malicious capability advertisements could misdirect automated actions, trigger unauthorized tool invocations, or exfiltrate private conversation contexts.</t>
      <section anchor="threat-model">
        <name>Threat Model</name>
        <t>The ARD security architecture considers the following primary threat vectors:</t>
        <ol spacing="normal" type="1"><li>
            <t><strong>Namespace Squatting and Impersonation:</strong> An attacker advertises an agent under a reputable organization's domain name (e.g., asserting <tt>urn:air:google.com:...</tt> without holding administrative control over <tt>google.com</tt>).</t>
          </li>
          <li>
            <t><strong>Relevance Score Poisoning (SEO Injection):</strong> An attacker injects deceptive, highly generic, or adversarial terms into <tt>representativeQueries</tt> or <tt>description</tt> to artificially inflate the agent's ranking in response to high-value user prompts (such as financial or credential-handling queries).</t>
          </li>
          <li>
            <t><strong>Attestation Transplantation:</strong> An attacker extracts a cryptographically valid compliance attestation (e.g., SOC2 or security audit) from a legitimate agent and embeds it into a malicious entry's metadata.</t>
          </li>
          <li>
            <t><strong>Federation Amplification and Query Loops:</strong> A hostile registry initiates recursive queries across federated peers designed to trigger exponential request explosion or denial-of-service loops.</t>
          </li>
          <li>
            <t><strong>Prompt and Intent Snooping:</strong> Eavesdroppers or untrusted intermediary registries harvest sensitive user query prompts (<tt>query.text</tt>) to extract proprietary enterprise context, personal data, or system prompts.</t>
          </li>
        </ol>
      </section>
      <section anchor="sec-authority">
        <name>Publisher Authority Verification</name>
        <t>To counter namespace squatting and record tampering, registries and consumers <bcp14>MUST</bcp14> enforce domain authority binding:</t>
        <ul spacing="normal">
          <li>
            <t>The <tt>&lt;publisher&gt;</tt> segment of the <tt>urn:air:&lt;publisher&gt;:...</tt> identifier <bcp14>MUST</bcp14> correspond to an authentic FQDN.</t>
          </li>
          <li>
            <t><strong>Cryptographic Publisher and Verifier Verification (<tt>trustManifest</tt>):</strong> For end-to-end publisher authentication and tamper protection across registries, third-party catalogs, and federated hops, the entry <bcp14>MUST</bcp14> carry a <tt>trustManifest</tt> signed by a cryptographic <tt>identity</tt> authorized by <tt>&lt;publisher&gt;</tt> (e.g., via W3C <tt>did:web:{publisher}</tt> or X.509 SAN certificates; third-party evaluators <bcp14>MAY</bcp14> attach additional <tt>trustManifest</tt> signatures bound to their own verifier domains), and the target resource at <tt>url</tt> <bcp14>MUST</bcp14> be bound via its cryptographic content <tt>digest</tt>. Verifying registries and consumers <bcp14>MUST</bcp14> reject signed entries whose cryptographic proof or domain binding fails.</t>
          </li>
          <li>
            <t><strong>Cross-Origin Target <tt>url</tt> Binding:</strong> Signing an entry under <tt>&lt;publisher&gt;</tt> does not authorize the publisher to claim an unconsenting third-party origin in <tt>url</tt>. When the origin of <tt>url</tt> differs from <tt>https://&lt;publisher&gt;</tt>, consumers and verifying registries <bcp14>MUST</bcp14> verify bidirectional binding at the target <tt>url</tt> by confirming that the artifact descriptor retrieved from <tt>url</tt> matches the entry's signed <tt>digest</tt> and declares the matching <tt>identifier</tt> (<tt>urn:air:&lt;publisher&gt;:...</tt>) or publisher identity (see <xref target="federation-trust"/>).</t>
          </li>
          <li>
            <t><strong>No Implicit Authority from Manifest Host or Transport Origin:</strong> Retrieving an entry from <tt>https://{domain}/.well-known/ard.json</tt> (even when <tt>{domain}</tt> matches <tt>&lt;publisher&gt;</tt>), via HTML <tt>&lt;link rel="ard"&gt;</tt>, or from a discovery registry establishes only transport security to the serving host and <bcp14>MUST NOT</bcp14> be treated as proof of publisher authority. Any entry lacking a verified <tt>trustManifest</tt> signature bound to <tt>&lt;publisher&gt;</tt> <bcp14>MUST</bcp14> be treated by registries and consumers as an unverified discovery hint.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-decoupling">
        <name>Decoupling of Semantic Relevance and Trust</name>
        <t>The <tt>score</tt> returned by <tt>POST /search</tt> represents solely mathematical text/semantic similarity between <tt>query.text</tt> and the indexed capability. Orchestrators and clients:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST NOT</bcp14> interpret <tt>score</tt> as an indicator of safety, quality, or authenticity.</t>
          </li>
          <li>
            <t><bcp14>MUST NOT</bcp14> execute privileged operations or expose sensitive credentials to an agent solely based on high search scores.</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> evaluate security policies, verified trust manifests, and sandbox restrictions independently of the discovery ranking.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-subject-binding">
        <name>Attestation Integrity and Subject Binding</name>
        <t>To prevent attestation transplantation and post-publication content substitution:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Artifact Subject Binding:</strong> Signed attestations referenced in <tt>trustManifest.attestations</tt> (such as SLSA <xref target="SLSA"/> or in-toto statements) <bcp14>MUST</bcp14> either directly sign the target artifact or bind to the resource's <tt>identifier</tt> and/or the artifact's algorithm-prefixed <tt>digest</tt> (<tt>&lt;alg&gt;:&lt;hex&gt;</tt>, with <tt>sha256</tt> Mandatory-to-Implement). When an entry delivers its artifact by reference (<tt>url</tt>), consumers <bcp14>MUST</bcp14> compute the digest of the retrieved artifact and verify that it matches the entry's <tt>digest</tt> and the attestation subject before honoring any audit or provenance claims.</t>
          </li>
          <li>
            <t><strong>External Attestation Pinning:</strong> When an entry in <tt>trustManifest.attestations</tt> includes <tt>digest</tt>, consumers fetching the external attestation document from <tt>attestations[].uri</tt> <bcp14>MUST</bcp14> verify that the fetched document's digest matches <tt>attestations[].digest</tt> sealed by <tt>trustManifest.signature</tt>.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-tls">
        <name>Mandatory Transport Layer Security (TLS 1.3)</name>
        <t>All ARD communications — including static manifest retrieval, DNS over HTTPS (DoH), registration endpoints, and search API queries — <bcp14>MUST</bcp14> use Transport Layer Security (TLS) 1.3 <xref target="RFC8446"/> or later in accordance with BCP 195 <xref target="RFC9325"/>. Implementations <bcp14>MUST</bcp14> use ephemeral key exchange providing forward secrecy and enforce strict certificate validation. Cleartext HTTP (plaintext) <bcp14>MUST NOT</bcp14> be permitted for any public discovery endpoint.</t>
      </section>
      <section anchor="sec-dos">
        <name>DoS Protection and Federation Limits</name>
        <t>To prevent distributed denial-of-service amplification:</t>
        <ul spacing="normal">
          <li>
            <t>Registries implementing <tt>"auto"</tt> federation <bcp14>MUST</bcp14> decrement a <tt>Hop-Count</tt> header (maximum initial value: 3). Queries reaching <tt>Hop-Count: 0</tt> <bcp14>MUST NOT</bcp14> be forwarded.</t>
          </li>
          <li>
            <t>Registries <bcp14>MUST</bcp14> implement referral loop detection by tracking visited registry URIs in a query trail header.</t>
          </li>
          <li>
            <t>Public registries <bcp14>SHOULD</bcp14> implement rate-limiting per client IP and authenticated identity.</t>
          </li>
        </ul>
      </section>
      <section anchor="sec-workload">
        <name>Workload Identity and Token Scoping</name>
        <t>When dynamic registration interfaces are exposed, registries <bcp14>SHOULD</bcp14> integrate with standard workload identity protocols such as WIMSE <xref target="WIMSE-ARCH"/>. Registration tokens <bcp14>MUST</bcp14> be short-lived, audience-restricted, and cryptographically verified against trusted identity providers.</t>
      </section>
    </section>
    <section anchor="privacy">
      <name>Privacy Considerations</name>
      <t>Natural language queries submitted to <tt>POST /search</tt> inherently reflect the user's immediate intent, tasks, and potentially confidential context.</t>
      <ol spacing="normal" type="1"><li>
          <t><strong>Query Eavesdropping:</strong> Queries transmitted over open networks can reveal user activities. Mandatory TLS 1.3 protects query confidentiality in transit.</t>
        </li>
        <li>
          <t><strong>Registry Logging and Profile Building:</strong> Third-party public registries could aggregate queries across time to build behavioral profiles of individuals or corporate entities. Conforming public registries <bcp14>SHOULD</bcp14> adopt strict data minimization, zero-retention, and query anonymization policies.</t>
        </li>
        <li>
          <t><strong>Client-Side Intent Filtering:</strong> Client orchestrators <bcp14>SHOULD</bcp14> sanitize <tt>query.text</tt> before transmission to external registries, stripping proprietary source code, credentials, personally identifiable information (PII), and session identifiers.</t>
        </li>
      </ol>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>The <tt>ard.json</tt> Well-Known URI, <tt>ard</tt> Link Relation, and <tt>ard</tt> Service Name registrations are requested in the companion initial contact specification <xref target="ARD-INITIAL-CONTACT"/>. This document requests the Media Type and URN Sub-Namespace registrations below.</t>
      <section anchor="iana-media-types">
        <name>Media Type Registrations</name>
        <t>IANA is requested to register the following media types in the "Media Types" registry:</t>
        <section anchor="applicationardjson">
          <name>application/ard+json</name>
          <ul spacing="normal">
            <li>
              <t><strong>Type name:</strong> application</t>
            </li>
            <li>
              <t><strong>Subtype name:</strong> ard+json</t>
            </li>
            <li>
              <t><strong>Required parameters:</strong> N/A</t>
            </li>
            <li>
              <t><strong>Optional parameters:</strong> N/A</t>
            </li>
            <li>
              <t><strong>Encoding considerations:</strong> binary (JSON UTF-8)</t>
            </li>
            <li>
              <t><strong>Security considerations:</strong> See <xref target="security"/> of this document.</t>
            </li>
            <li>
              <t><strong>Interoperability considerations:</strong> Fully compliant with RFC 8259 JSON and JSON-LD 1.1.</t>
            </li>
            <li>
              <t><strong>Specification document:</strong> This document</t>
            </li>
          </ul>
        </section>
        <section anchor="applicationai-registryjson">
          <name>application/ai-registry+json</name>
          <ul spacing="normal">
            <li>
              <t><strong>Type name:</strong> application</t>
            </li>
            <li>
              <t><strong>Subtype name:</strong> ai-registry+json</t>
            </li>
            <li>
              <t><strong>Required parameters:</strong> N/A</t>
            </li>
            <li>
              <t><strong>Optional parameters:</strong> N/A</t>
            </li>
            <li>
              <t><strong>Encoding considerations:</strong> binary (JSON UTF-8)</t>
            </li>
            <li>
              <t><strong>Security considerations:</strong> See <xref target="security"/> of this document.</t>
            </li>
            <li>
              <t><strong>Specification document:</strong> This document</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="iana-urn">
        <name>URN Sub-Namespace Registration: urn:air</name>
        <t>IANA is requested to register the formal URN sub-namespace <tt>air</tt> within the IETF URN registry adhering to <xref target="RFC8141"/>:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Namespace ID:</strong> <tt>air</tt> (Agentic Information Resource)</t>
          </li>
          <li>
            <t><strong>Structure:</strong> <tt>urn:air:&lt;publisher&gt;:&lt;namespace&gt;:&lt;agent-name&gt;</tt></t>
          </li>
          <li>
            <t><strong>Specification:</strong> This document</t>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7515">
          <front>
            <title>JSON Web Signature (JWS)</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Sakimura" initials="N." surname="Sakimura"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>JSON Web Signature (JWS) represents content secured with digital signatures or Message Authentication Codes (MACs) using JSON-based data structures. Cryptographic algorithms and identifiers for use with this specification are described in the separate JSON Web Algorithms (JWA) specification and an IANA registry defined by that specification. Related encryption capabilities are described in the separate JSON Web Encryption (JWE) specification.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7515"/>
          <seriesInfo name="DOI" value="10.17487/RFC7515"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz"/>
            <author fullname="C. Vigano" initials="C." surname="Vigano"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049). Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="RFC8785">
          <front>
            <title>JSON Canonicalization Scheme (JCS)</title>
            <author fullname="A. Rundgren" initials="A." surname="Rundgren"/>
            <author fullname="B. Jordan" initials="B." surname="Jordan"/>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>Cryptographic operations like hashing and signing need the data to be expressed in an invariant format so that the operations are reliably repeatable. One way to address this is to create a canonical representation of the data. Canonicalization also permits data to be exchanged in its original form on the "wire" while cryptographic operations performed on the canonicalized counterpart of the data in the producer and consumer endpoints generate consistent results.</t>
              <t>This document describes the JSON Canonicalization Scheme (JCS). This specification defines how to create a canonical representation of JSON data by building on the strict serialization methods for JSON primitives defined by ECMAScript, constraining JSON data to the Internet JSON (I-JSON) subset, and by using deterministic property sorting.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8785"/>
          <seriesInfo name="DOI" value="10.17487/RFC8785"/>
        </reference>
        <reference anchor="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9205">
          <front>
            <title>Building Protocols with HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>Applications often use HTTP as a substrate to create HTTP-based APIs. This document specifies best practices for writing specifications that use HTTP to define new application protocols. It is written primarily to guide IETF efforts to define application protocols using HTTP for deployment on the Internet but might be applicable in other situations.</t>
              <t>This document obsoletes RFC 3205.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="56"/>
          <seriesInfo name="RFC" value="9205"/>
          <seriesInfo name="DOI" value="10.17487/RFC9205"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="JSON-LD" target="https://www.w3.org/TR/json-ld11/">
          <front>
            <title>JSON-LD 1.1 - A JSON-based Serialization for Linked Data</title>
            <author>
              <organization>W3C</organization>
            </author>
            <date year="2020" month="July"/>
          </front>
        </reference>
        <reference anchor="WIMSE-ARCH" target="https://datatracker.ietf.org/wg/wimse/about/">
          <front>
            <title>Workload Identity in Multi-System Environments (WIMSE) Architecture</title>
            <author>
              <organization>IETF</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        <reference anchor="A2A" target="https://github.com/a2a-project/spec">
          <front>
            <title>Agent-to-Agent (A2A) Protocol Specification</title>
            <author>
              <organization>Linux Foundation</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="OpenAPI" target="https://spec.openapis.org/oas/v3.1.0">
          <front>
            <title>OpenAPI Specification v3.1.0</title>
            <author>
              <organization>OpenAPI Initiative</organization>
            </author>
            <date year="2021" month="February"/>
          </front>
        </reference>
        <reference anchor="SLSA" target="https://slsa.dev/spec/v1.0/">
          <front>
            <title>Supply-chain Levels for Software Artifacts (SLSA) v1.0</title>
            <author>
              <organization>OpenSSF</organization>
            </author>
            <date year="2023" month="April"/>
          </front>
        </reference>
        <reference anchor="ARD-ARCH" target="https://mindpower.github.io/ietf-draft-agent-resources-architecture/draft-bu-dawn-ard-architecture.html">
          <front>
            <title>Agent Resource Discovery (ARD) Architecture</title>
            <author initials="J." surname="Bu" fullname="Junjie Bu">
              <organization>Google</organization>
            </author>
            <author initials="R. V." surname="Guha" fullname="R.V. Guha">
              <organization/>
            </author>
            <author initials="J." surname="Arkko" fullname="Jari Arkko">
              <organization>Ericsson</organization>
            </author>
            <author initials="J." surname="Jiménez" fullname="Jaime Jiménez">
              <organization>Ericsson</organization>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bu-dawn-ard-architecture"/>
        </reference>
        <reference anchor="ARD-INITIAL-CONTACT" target="https://jaimejim.github.io/ietf-draft-ard-initial-contact/draft-jimenez-ard-initial-contact.html">
          <front>
            <title>Agent Resource Discovery (ARD): Initial Contact</title>
            <author initials="J." surname="Jiménez" fullname="Jaime Jiménez">
              <organization>Ericsson</organization>
            </author>
            <author initials="J." surname="Bu" fullname="Junjie Bu">
              <organization>Google</organization>
            </author>
            <author initials="J." surname="Arkko" fullname="Jari Arkko">
              <organization>Ericsson</organization>
            </author>
            <date year="2026" month="October"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jimenez-ard-initial-contact"/>
        </reference>
        <reference anchor="AGENT-DIRECTORY" target="https://datatracker.ietf.org/doc/draft-jimenez-agent-directory/">
          <front>
            <title>Agent Directory</title>
            <author initials="J." surname="Jimenez" fullname="Jaime Jimenez">
              <organization>Ericsson</organization>
            </author>
            <author initials="J." surname="Arkko" fullname="Jari Arkko">
              <organization>Ericsson</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="RFC9325">
          <front>
            <title>Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <date month="November" year="2022"/>
            <abstract>
              <t>Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) are used to protect data exchanged over a wide range of application protocols and can also form the basis for secure transport protocols. Over the years, the industry has witnessed several serious attacks on TLS and DTLS, including attacks on the most commonly used cipher suites and their modes of operation. This document provides the latest recommendations for ensuring the security of deployed services that use TLS and DTLS. These recommendations are applicable to the majority of use cases.</t>
              <t>RFC 7525, an earlier version of the TLS recommendations, was published when the industry was transitioning to TLS 1.2. Years later, this transition is largely complete, and TLS 1.3 is widely available. This document updates the guidance given the new environment and obsoletes RFC 7525. In addition, this document updates RFCs 5288 and 6066 in view of recent attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="195"/>
          <seriesInfo name="RFC" value="9325"/>
          <seriesInfo name="DOI" value="10.17487/RFC9325"/>
        </reference>
      </references>
    </references>
    <?line 867?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank Eric Rescorla, Jari Arkko, Mirja Kühlewind, Warren Kumari, Wes Hardaker, Luca Muscariello, Darrel Miller, and Jonathan Hefner for their valuable architectural reviews, security feedback, and interoperability discussions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9V92XYbV9bePZ+iQl0YlAFw0GCZHtowSVlUSxSbpKy/28sx
CkCBLLNQha4CSNG0euUh8gC5zTvkKv+b5Emyvz2cc6pQpOS/O8mKV68WAVSd
YZ89T6fX660t0kWW7Ebrg/MkX0QnSVUsy3ES7afVuLhKypuoMzjZ39iNXsd5
Ok2qRRTnk+hVUVwu5+tr8WhUJld4+2S//YlxvEjOi/JmN6oWk7W1STHO4xnN
Nynj6aI3WvYm8XXei8tJb2Iz9ra21qrlaJZWVVrki5s5PX54cPZ8bVzkVZJX
y2o3WpTLZI0mfrQWl0lMCzjMF0mZJ4v1tcvk5rooJ7trUS+KeVNuZP5quSjy
YlYsK/m14i/LRTpNx2mcRSkNlGUp/TRO8NOsmCRZRFMvkveLaF4Wi2JcZG7w
3qLo8R/4ZppMkpI2PImqJC7HF/huURRZVCbnabWQBewP3h2tXSX5MqElRudl
sZzT+j28i2nEZ1FF79LFRXRE4KqiDt7aWKcXBB7rx2UxLyqa6V1RXqb5efQD
BsIDszjN6AHA9bs0WUz7RXmO77Eg+v5isZhXu5ubeAxfpVdJ3x7bxBebo7K4
rpJNDLCJF89pGcsRvTpL88m8uE7KTbzQkyMUKJSKN5U/RryaETCqRTirDdGX
Uftp8UmDbd6DL/2LxSxbX1ujk70oSpw7zRxF02WWCa69XOa/pkn0/ZK/p30S
ov4WLwi5dqMfiuI8S/iHRCD362j53Tl/2x8XMxstzQnrTvo/9qMflhdxY4L6
9zrOOX3+Dv8XDuPfOb2Il3l0OiMwtCzrxfL8HKf6PB7XFlfhrX6Ft767kGem
9AhN0bLtOJ0l0ct09u//PU9+a5nkoEzHVVXktd3jpf6v9H/0zneJPtG+hZfJ
dFomN9F+PEvHly0TDGbxb43hJ/zsdzH/wsOu5UU5oxeumB5Onu998WT7if75
bPvxtv35+PFT+/Pp9pb/0z37xTP788tt98CXO1vu28dPvthdW0vzaWPCL7e/
4KFfnr456r3a3+UFG1/UL6Pt/jYR70AeGsUgvVMCT5zpbiMaNXqV5pf0w368
iNd5FIeT/F8P8NmN3j3a4y8mRB270c7WzlZv6wuZNC7PE6IXI5fr6+v+9SMm
zbOTzV/pJHrZZHt7kx5+d/j69KA3ONl7UV8v+EFWxJPocEK0lC5uCHWj18ts
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
+CdTq2S7uqW39XyHMZsmV5YgZ51KfWOABpHX6xddKSSn3L2XvoXSFx1JsNZK
RgPxd3S6XUGaoD4nvA+gc1dHgg2jIVRcX5rZGFxzJHfxKM2GovdATo3LMvTn
np6k90i6++p8pcLwzkDwsFv3oIRGndU8h/cDCKAhFjRyOBRLzy4hi+1KkU8z
9XiJakYH6OCOwBtWxNfm6JOtroKPJc+4WHsqrV3nBbtbJK7lQ+/s6l7/aLjc
fHrmDV6Z/Q+GUVebsaXqXelZeswdoUDnhdlze7KwYCON4F8QVQXc6kliElbV
6OAdUdWdT4mqNof+p0Orsia4YuqBVYln/r8MrUqDvX59gfWwavdTdgh9I6fD
TxaMN26HcSaV6NXddaNpyQUpA3vy/1j0uL7G1dixC0XJ5bSExvv7r5pZpQ/G
k4kkrGpENpdoMIk1YuS4AskU3Prli5rtyFeJ44JsvVWtCm9vJc5FGvAYrTz3
cc+Fv1w6emUZWx0sytpHPYVbVekd61ojGiNd9hvidBPXLnRt7asIhjkW64qn
6Yu18CF6ByesWh+h9UMeg1fNSP8wWhAQo2++hZJJkAoG9Tf82qiiysiQ7nPP
fP3d2rfBlbut86y+TwN36MmvUAayGxkG3jop92H31nXGp799D36cskffXZ4J
cwYY6b8EzukntdC/at7RR0/ZTSGu3zk9tXq9zdpGuI/wkmHZyp+ChErdele/
Tif8ja3qT+H1xrvB10hhpGP7nL/6Wb4LA8HN31pLnvncg4e0vVE4jygp4Tfu
6qbwS+tqQjKvdqIfdLWh8rEb1fvbtjyiy6899jOgugJ/ASixAFlNtLmJA25b
CV5XJGbb78BaSAKL61MpKpuSFG7U+jCG37nei+GX2l/FNqsfdRAd+MzjnIeB
pAe49+TeIP45zCwVkvVf6An67g78gP/YQ5WGPuTUdT/3ChnWVl2DR52WFo0t
fBoK2XHdN7VkScjMf2qdu3W2c5icvOW3Zdp41vH11wmZYpMG/q+yoqCZiKyj
vttlfQLXjvW+za9M0jginchKr/yL1tewhmNB+457phCs15Q8VE4cmzAC6gf5
6A7acguzn+gOdiUR2xqldYztRJv87wYyPtZ8XurSkxdPvBsF8+uoTvF1kYTN
WriAPnFGpKK8plqQaEABt/uOUy5kE7UlaHjJ4My6MiOCf4K+6qH7jOOdFnbC
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
0k7w/xtwSCSUesAAAA==

-->

</rfc>
