<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 4.0.1) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-artamokhov-dawn-marketplace-discovery-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Marketplace Discovery">A Discovery Document and Signed Catalogue for Capability Marketplaces</title>

    <author initials="A." surname="Artamokhov" fullname="Aleksandr Artamokhov">
      <organization>Independent</organization>
      <address>
        <email>alexar76@rambler.ru</email>
      </address>
    </author>

    <date year="2026" month="November" day="02"/>

    <area>Internet</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>agents</keyword> <keyword>discovery</keyword> <keyword>marketplace</keyword> <keyword>well-known</keyword> <keyword>signed catalogue</keyword>

    <abstract>


<?line 73?>

<t>This document defines a JSON discovery document, served at a well-known URI, that carries the
public properties a client needs before using a capability index: its name, the protocol
versions it serves, the location of its catalogue, and the key that signs the catalogue. It
also states the requirements for that signed catalogue and defines one signature profile.
Discovery between indexes, catalogue exchange and trust are out of scope.</t>



    </abstract>



  </front>

  <middle>


<?line 81?>

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

<t>Capability indexes (catalogues of invocable services offered by many providers) are now
operated by many independent parties, alongside protocols for machine payment <xref target="X402"/>,
agent-to-agent interaction <xref target="A2A"/> and tool registries <xref target="MCPREG"/>. A client that wants to use
an index needs a few public facts about it: a name, the protocol versions in use, where the
catalogue is, and which key signs the catalogue.</t>

<t><xref target="I-D.jimenez-dawn-discovery-landscape"/> describes the current mechanisms for publishing such
facts. Each defines its own well-known resource and schema, and signed catalogues rarely
specify the exact bytes that are signed. This document defines one discovery document and
requires any signature profile used with it to specify the signed bytes. <xref target="mdi"/> maps the
discovery document onto the information model in <xref target="MDI"/>.</t>

<t>Catalogue exchange between indexes and peer admission are described separately in
<xref target="FEDERATION"/>.</t>

<section anchor="scope"><name>Scope</name>

<t>This document specifies:</t>

<t><list style="symbols">
  <t>a discovery document served at a well-known URI (<xref target="discovery"/>);</t>
  <t>requirements for the catalogue referenced from it (<xref target="catalogue"/>), including requirements
for any signature profile, and one profile (<xref target="profile"/>);</t>
  <t>key pinning by readers (<xref target="keys"/>).</t>
</list></t>

<t>It does not specify how indexes find each other, how catalogues are exchanged or ranked, how
capabilities are invoked or paid for, how providers are identified, or reputation.</t>

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

</section>
<section anchor="terminology"><name>Terminology</name>

<dl>
  <dt>Index:</dt>
  <dd>
    <t>A server that catalogues capabilities and answers queries about them.</t>
  </dd>
  <dt>Capability:</dt>
  <dd>
    <t>A named, invocable unit of work offered by a provider and catalogued by an index.</t>
  </dd>
  <dt>Catalogue:</dt>
  <dd>
    <t>The signed document, referenced from the discovery document, that lists an index's
capabilities.</t>
  </dd>
  <dt>Discovery document:</dt>
  <dd>
    <t>The JSON document defined in <xref target="discovery"/>.</t>
  </dd>
  <dt>Reader:</dt>
  <dd>
    <t>Any party that retrieves the discovery document or the catalogue.</t>
  </dd>
  <dt>Signature profile:</dt>
  <dd>
    <t>A named set of rules that defines the signature algorithm, the signed bytes and the
verification procedure for a catalogue.</t>
  </dd>
</dl>

</section>
</section>
<section anchor="discovery"><name>Discovery document</name>

<t>An index <bcp14>MUST</bcp14> serve a discovery document at the well-known URI
<spanx style="verb">/.well-known/agent-marketplace</spanx> (<xref target="RFC8615"/>, <xref target="iana-wk"/>) using the "https" scheme. It
<bcp14>MUST</bcp14> answer both GET and HEAD requests for it, and <bcp14>SHOULD</bcp14> support conditional requests
(<xref target="RFC9110"/>, Section 13).</t>

<t>The document is a JSON object <xref target="RFC8259"/> with media type <spanx style="verb">application/json</spanx>. The following
members are defined:</t>

<texttable>
      <ttcol align='left'>Member</ttcol>
      <ttcol align='left'>Type</ttcol>
      <ttcol align='left'>Requirement</ttcol>
      <c><spanx style="verb">name</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">protocol_versions</spanx></c>
      <c>array of string</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">catalogue_url</spanx></c>
      <c>string (URI)</c>
      <c><bcp14>REQUIRED</bcp14></c>
      <c><spanx style="verb">signer_public_key</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14> when the catalogue is signed</c>
      <c><spanx style="verb">signature_profile</spanx></c>
      <c>string</c>
      <c><bcp14>REQUIRED</bcp14> when the catalogue is signed</c>
      <c><spanx style="verb">capabilities_count</spanx></c>
      <c>number</c>
      <c><bcp14>RECOMMENDED</bcp14></c>
      <c><spanx style="verb">generated_at</spanx></c>
      <c>string (date-time)</c>
      <c><bcp14>RECOMMENDED</bcp14></c>
      <c><spanx style="verb">peers</spanx></c>
      <c>array of string (URI)</c>
      <c><bcp14>OPTIONAL</bcp14></c>
</texttable>

<dl>
  <dt><spanx style="verb">name</spanx>:</dt>
  <dd>
    <t>A human-readable label chosen by the operator. Names are not unique, and a reader <bcp14>MUST NOT</bcp14>
use a name as an identifier.</t>
  </dd>
  <dt><spanx style="verb">protocol_versions</spanx>:</dt>
  <dd>
    <t>The versions of the catalogue and query interfaces that the index serves, as opaque
strings. A reader that recognises none of them <bcp14>MUST NOT</bcp14> use the index.</t>
  </dd>
  <dt><spanx style="verb">catalogue_url</spanx>:</dt>
  <dd>
    <t>An absolute "https" URI <xref target="RFC3986"/> of the catalogue (<xref target="catalogue"/>). It <bcp14>MAY</bcp14> be on a
different host from the discovery document.</t>
  </dd>
  <dt><spanx style="verb">signer_public_key</spanx>, <spanx style="verb">signature_profile</spanx>:</dt>
  <dd>
    <t>The public key that signs the catalogue, encoded as the profile specifies, and the name of
that profile (<xref target="profile"/>). Readers handle the key as described in <xref target="keys"/>.</t>
  </dd>
  <dt><spanx style="verb">capabilities_count</spanx>, <spanx style="verb">generated_at</spanx>:</dt>
  <dd>
    <t>The number of catalogue entries when the document was generated, and the generation time
(<xref target="RFC3339"/>). They are informative; a reader <bcp14>MUST NOT</bcp14> treat a mismatch with the catalogue as an error.</t>
  </dd>
  <dt><spanx style="verb">peers</spanx>:</dt>
  <dd>
    <t>Discovery-document URIs of other indexes that the operator publishes. This document gives
them no further meaning; <xref target="FEDERATION"/> restricts what a federating index lists here.</t>
  </dd>
</dl>

<t>A reader <bcp14>MUST</bcp14> ignore members it does not recognise and <bcp14>MUST NOT</bcp14> reject a document because it
contains them. A member defined by this document <bcp14>MUST
NOT</bcp14> change type or meaning in a later revision; a different meaning requires a new member.</t>

<section anchor="example"><name>Example</name>

<figure><artwork><![CDATA[
{
  "name": "Example Capability Hub",
  "protocol_versions": ["v1", "v2"],
  "catalogue_url": "https://hub.example/catalogue",
  "signer_public_key": "11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=",
  "signature_profile": "ed25519-pipe-2",
  "capabilities_count": 47,
  "generated_at": "2026-10-30T09:00:00Z",
  "peers": [
    "https://other.example/.well-known/agent-marketplace"
  ]
}
]]></artwork></figure>

</section>
<section anchor="relation-to-api-catalog"><name>Relation to api-catalog</name>

<t><xref target="RFC9727"/> defines <spanx style="verb">/.well-known/api-catalog</spanx>, in which a host lists its own APIs. The
discovery document describes an index that lists capabilities of other hosts and identifies
the key that signs that list. An index <bcp14>MAY</bcp14> publish both.</t>

</section>
</section>
<section anchor="catalogue"><name>The catalogue</name>

<t>The resource at <spanx style="verb">catalogue_url</spanx> is a JSON object. Its full schema depends on the protocol
version; this section lists the minimum that every version has to contain.</t>

<section anchor="minimum-content"><name>Minimum content</name>

<dl>
  <dt><spanx style="verb">protocol_version</spanx>:</dt>
  <dd>
    <t>A string listed in the discovery document's <spanx style="verb">protocol_versions</spanx>.</t>
  </dd>
  <dt><spanx style="verb">generated_at</spanx>:</dt>
  <dd>
    <t>The generation time (<xref target="RFC3339"/>).</t>
  </dd>
  <dt><spanx style="verb">capabilities</spanx>:</dt>
  <dd>
    <t>An array of objects, each with at least <spanx style="verb">name</spanx> (string), <spanx style="verb">description</spanx> (string) and
<spanx style="verb">input_schema</spanx> (object).</t>
  </dd>
  <dt><spanx style="verb">signature</spanx>:</dt>
  <dd>
    <t>A signature object (<xref target="signature-object"/>), when the discovery document names a signature
profile.</t>
  </dd>
</dl>

</section>
<section anchor="profile-requirements"><name>Requirements for signature profiles</name>

<t>A signature profile <bcp14>MUST</bcp14> specify:</t>

<t><list style="numbers" type="1">
  <t>the signature algorithm and the encoding of keys and signature values;</t>
  <t>the exact byte string that is signed and how it is derived from the catalogue;</t>
  <t>for each member that is digested rather than copied into that byte string, its
serialisation: handling of absent members, member order, whitespace, and non-ASCII
characters;</t>
  <t>the verification procedure, including inputs that <bcp14>MUST</bcp14> be rejected before the signature is
evaluated.</t>
</list></t>

<t>Item 3 is required because differences there produce signatures that verify in one
implementation and not in another.</t>

</section>
<section anchor="signature-object"><name>Signature object</name>

<t>The <spanx style="verb">signature</spanx> member of a catalogue is a JSON object:</t>

<figure><artwork><![CDATA[
{
  "algorithm": "<profile-defined>",
  "public_key": "<encoded public key, OPTIONAL>",
  "value": "<encoded signature>"
}
]]></artwork></figure>

<t><spanx style="verb">public_key</spanx> <bcp14>MAY</bcp14> be omitted when the reader already holds a pinned key (<xref target="keys"/>). Profiles
<bcp14>MAY</bcp14> add members (for example, a second signature with another algorithm), and readers <bcp14>MUST</bcp14>
ignore members they do not recognise. A catalogue whose <spanx style="verb">signature</spanx> is not an object <bcp14>MUST</bcp14> be
treated as unsigned.</t>

</section>
</section>
<section anchor="keys"><name>Key pinning</name>

<t>A reader <bcp14>MUST</bcp14> verify a catalogue with the key it has pinned for the index. A key carried in
the catalogue, or in the discovery document fetched in the same operation, does not by itself
authenticate the catalogue.</t>

<t>On first contact the reader <bcp14>SHOULD</bcp14> pin the key that the discovery document advertises and
record the time. After that, the reader:</t>

<t><list style="symbols">
  <t><bcp14>MUST NOT</bcp14> accept a different key automatically;</t>
  <t><bcp14>SHOULD</bcp14> record any rejected key, with the time and the document that carried it;</t>
  <t><bcp14>MAY</bcp14> accept a new key through an explicit operator decision.</t>
</list></t>

<t>As a consequence, a key change at the index requires action at each reader. See
<xref target="security-rotation"/>.</t>

<t>A pinned key shows that the current publisher holds the key that was first seen. It does not
identify the publisher. A reader's user interface <bcp14>MUST NOT</bcp14> present a verified signature as
evidence of the operator's identity.</t>

</section>
<section anchor="profile"><name>The ed25519-pipe-2 signature profile</name>

<t>This profile is identified by the <spanx style="verb">signature_profile</spanx> value <spanx style="verb">ed25519-pipe-2</spanx>. It is the
profile used by the implementations listed in <xref target="implementation-status"/>.</t>

<section anchor="algorithm-and-encodings"><name>Algorithm and encodings</name>

<t>The signature is Ed25519 <xref target="RFC8032"/> over the UTF-8 encoding of the canonical string defined
in <xref target="canonical"/>. Keys and signature values are base64-encoded with the standard alphabet and
padding (<xref target="RFC4648"/>, Section 4). The <spanx style="verb">algorithm</spanx> member of the signature object is <spanx style="verb">ed25519</spanx>.</t>

</section>
<section anchor="canonical"><name>Canonical string</name>

<t>The canonical string is the concatenation of the following five <spanx style="verb">name:value</spanx> pairs, in this
order, separated by the character "|" (U+007C), with no whitespace:</t>

<figure><artwork><![CDATA[
capabilities_count:<n>|generated_at:<t>|protocol_version:<v>|
tools_hash:<h1>|by_hub_hash:<h2>
]]></artwork></figure>

<t>(shown on two lines for width; the string contains no line break)</t>

<t>where:</t>

<t><list style="symbols">
  <t><spanx style="verb">&lt;n&gt;</spanx> is the decimal value of <spanx style="verb">capabilities_count</spanx>, or <spanx style="verb">0</spanx> if absent;</t>
  <t><spanx style="verb">&lt;t&gt;</spanx> is the value of <spanx style="verb">generated_at</spanx>, or the empty string if absent;</t>
  <t><spanx style="verb">&lt;v&gt;</spanx> is the value of <spanx style="verb">protocol_version</spanx>, or <spanx style="verb">v1</spanx> if absent;</t>
  <t><spanx style="verb">&lt;h1&gt;</spanx> is the digest (<xref target="digest"/>) of the <spanx style="verb">capabilities</spanx> array (the pair name <spanx style="verb">tools_hash</spanx>
follows the deployed wire format, in which the array is named <spanx style="verb">tools</spanx>);</t>
  <t><spanx style="verb">&lt;h2&gt;</spanx> is the digest of the <spanx style="verb">by_hub</spanx> object (per-peer metadata in the deployed format). If
absent, the empty object <spanx style="verb">{}</spanx> <bcp14>MUST</bcp14> be digested.</t>
</list></t>

<t>Both digests <bcp14>MUST</bcp14> be included. Without <spanx style="verb">tools_hash</spanx>, an intermediary could change catalogue
entries, including prices, without invalidating the signature; without <spanx style="verb">by_hub_hash</spanx>, it could
change per-peer metadata.</t>

</section>
<section anchor="digest"><name>Digest rule</name>

<t>The digest of a JSON value is the lowercase hexadecimal SHA-256 <xref target="RFC6234"/> of the UTF-8
encoding of its serialisation with these rules:</t>

<t><list style="numbers" type="1">
  <t>object members in ascending order of member name, compared by Unicode code point;</t>
  <t>member separator <spanx style="verb">, </spanx> (comma, space) and name separator <spanx style="verb">: </spanx> (colon, space);</t>
  <t>non-ASCII characters emitted as themselves, not as <spanx style="verb">\uXXXX</spanx> escapes;</t>
  <t>integers without a fractional part; other numbers in the shortest decimal form that
round-trips to the same IEEE 754 double;</t>
  <t>no leading or trailing whitespace.</t>
</list></t>

<t>Rule 2 differs from <xref target="RFC8785"/>, which emits no whitespace. Changing it would change every
existing signature; an RFC 8785 based variant would be defined as a separate profile name.</t>

</section>
<section anchor="verify"><name>Verification</name>

<t><xref target="RFC8032"/> allows more than one verification equation. With the permissive variant used by
several common libraries, a signature made with a small-order public key can verify for any
message. A verifier implementing this profile <bcp14>MUST</bcp14> reject a signature, before evaluating the
verification equation, if:</t>

<t><list style="numbers" type="1">
  <t>the public key, or the point R in the first 32 octets of the signature, has order dividing
8 (with the top bit of the last octet cleared, the encodings <spanx style="verb">00..00</spanx>, <spanx style="verb">01 00..00</spanx>,
<spanx style="verb">26e8958f..fc05</spanx>, <spanx style="verb">c7176a70..037a</spanx>, <spanx style="verb">ecff..ff7f</spanx>, and the non-canonical <spanx style="verb">edff..ff7f</spanx> and
<spanx style="verb">eeff..ff7f</spanx>); or</t>
  <t>the scalar S in the last 32 octets, read as a little-endian integer, is not less than the
group order L = 2^252 + 27742317777372353535851937790883648493.</t>
</list></t>

<t>Keys and signatures generated as specified in <xref target="RFC8032"/> pass these checks except with
negligible probability.</t>

</section>
<section anchor="test-vectors"><name>Test vectors</name>

<t>Signed example catalogues and negative vectors (tampered members, wrong signer, version
downgrade, small-order key), with a runner, are published at <xref target="VECTORS"/>.</t>

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

<section anchor="signatures-and-transport"><name>Signatures and transport</name>

<t>The catalogue may be served from a different host, a content distribution network or a
cache, and a reader that stores a catalogue needs to verify it again later without the
original connection. HTTPS does not cover either case; the catalogue signature does.</t>

</section>
<section anchor="scope-of-a-signature"><name>Scope of a signature</name>

<t>A valid signature shows that the holder of the pinned key produced the catalogue and that it
has not been modified. It does not show that the listed capabilities exist, behave as
described, or cost what is stated. A reader's user interface <bcp14>MUST NOT</bcp14> suggest otherwise.</t>

</section>
<section anchor="uris-from-other-parties"><name>URIs from other parties</name>

<t><spanx style="verb">catalogue_url</spanx> and <spanx style="verb">peers</spanx> contain URIs chosen by another party. Before retrieving them, a
reader <bcp14>MUST</bcp14> apply the request-forgery safeguards of <xref target="FEDERATION"/>: refuse private, loopback,
link-local, multicast and unspecified addresses (including IPv4-mapped forms), check the
resolved address at connection time, not follow redirects automatically, and limit response
size and time.</t>

</section>
<section anchor="security-rotation"><name>Key rotation</name>

<t>Because readers do not accept a new key automatically (<xref target="keys"/>), rotating a key interrupts
readers until their operators act. An index <bcp14>SHOULD</bcp14> announce a rotation in advance and <bcp14>SHOULD</bcp14>
sign with the old and new keys in parallel for a period, using additional members of the
signature object. A rotation announcement mechanism may be defined in a later revision.</t>

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

<section anchor="iana-wk"><name>Well-Known URI registration</name>

<t>IANA is requested to register the following in the "Well-Known URIs" registry <xref target="RFC8615"/>:</t>

<dl>
  <dt>URI suffix:</dt>
  <dd>
    <t>agent-marketplace</t>
  </dd>
  <dt>Change controller:</dt>
  <dd>
    <t>IETF</t>
  </dd>
  <dt>Specification document:</dt>
  <dd>
    <t>This document, <xref target="discovery"/></t>
  </dd>
  <dt>Status:</dt>
  <dd>
    <t>permanent</t>
  </dd>
  <dt>Related information:</dt>
  <dd>
    <t>JSON document describing a capability index: name, protocol versions, catalogue location
and catalogue signing key.</t>
  </dd>
</dl>

</section>
<section anchor="signature-profile-names"><name>Signature profile names</name>

<t>This document defines one profile name, <spanx style="verb">ed25519-pipe-2</spanx>. No registry is requested for a
single value; if more profiles are defined, a registry with the Specification Required policy
would be appropriate.</t>

</section>
</section>
<section anchor="implementation-status"><name>Implementation Status</name>

<t>This section records the status of known implementations at the time of writing, per
<xref target="RFC7942"/>. It is to be removed before publication as an RFC.</t>

<t><list style="symbols">
  <t>Reference implementation (Apache-2.0), deployed on six public indexes operated by the
author or affiliated parties. Since 2026-10-30 they serve this document at
<spanx style="verb">/.well-known/agent-marketplace</spanx> in addition to the earlier path
<spanx style="verb">/.well-known/ai-market.json</spanx>, which uses the member names in <xref target="wire-mapping"/>.</t>
  <t>Three further implementations by the same author, written from the text and test vectors
without the reference source: a Go directory node, a Rust catalogue verifier, and a
JavaScript verifier. Writing them found four ambiguities in the text, which were corrected.</t>
  <t>Two services operated by parties unrelated to the author publish catalogues that verify
under <spanx style="verb">ed25519-pipe-2</spanx> (checked on 2026-10-30 with the conformance runner in <xref target="VECTORS"/>).
Which software they run is not known.</t>
</list></t>

<t>No implementation by another party is known to have been written from this document.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<reference anchor="RFC3339">
  <front>
    <title>Date and Time on the Internet: Timestamps</title>
    <author fullname="G. Klyne" initials="G." surname="Klyne"/>
    <author fullname="C. Newman" initials="C." surname="Newman"/>
    <date month="July" year="2002"/>
    <abstract>
      <t>This document defines a date and time format for use in Internet protocols that is a profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3339"/>
  <seriesInfo name="DOI" value="10.17487/RFC3339"/>
</reference>
<reference anchor="RFC3986">
  <front>
    <title>Uniform Resource Identifier (URI): Generic Syntax</title>
    <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee"/>
    <author fullname="R. Fielding" initials="R." surname="Fielding"/>
    <author fullname="L. Masinter" initials="L." surname="Masinter"/>
    <date month="January" year="2005"/>
    <abstract>
      <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet. The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier. This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="66"/>
  <seriesInfo name="RFC" value="3986"/>
  <seriesInfo name="DOI" value="10.17487/RFC3986"/>
</reference>
<reference anchor="RFC4648">
  <front>
    <title>The Base16, Base32, and Base64 Data Encodings</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <date month="October" year="2006"/>
    <abstract>
      <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes. It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="4648"/>
  <seriesInfo name="DOI" value="10.17487/RFC4648"/>
</reference>
<reference anchor="RFC6234">
  <front>
    <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
    <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
    <author fullname="T. Hansen" initials="T." surname="Hansen"/>
    <date month="May" year="2011"/>
    <abstract>
      <t>Federal Information Processing Standard, FIPS</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="6234"/>
  <seriesInfo name="DOI" value="10.17487/RFC6234"/>
</reference>
<reference anchor="RFC8032">
  <front>
    <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title>
    <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
    <author fullname="I. Liusvaara" initials="I." surname="Liusvaara"/>
    <date month="January" year="2017"/>
    <abstract>
      <t>This document describes elliptic curve signature scheme Edwards-curve Digital Signature Algorithm (EdDSA). The algorithm is instantiated with recommended parameters for the edwards25519 and edwards448 curves. An example implementation and test vectors are provided.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="8032"/>
  <seriesInfo name="DOI" value="10.17487/RFC8032"/>
</reference>
<reference anchor="RFC8259">
  <front>
    <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
    <author fullname="T. Bray" initials="T." role="editor" surname="Bray"/>
    <date month="December" year="2017"/>
    <abstract>
      <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format. It was derived from the ECMAScript Programming Language Standard. JSON defines a small set of formatting rules for the portable representation of structured data.</t>
      <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
    </abstract>
  </front>
  <seriesInfo name="STD" value="90"/>
  <seriesInfo name="RFC" value="8259"/>
  <seriesInfo name="DOI" value="10.17487/RFC8259"/>
</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="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="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 title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC7942">
  <front>
    <title>Improving Awareness of Running Code: The Implementation Status Section</title>
    <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
    <author fullname="A. Farrel" initials="A." surname="Farrel"/>
    <date month="July" year="2016"/>
    <abstract>
      <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
      <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
    </abstract>
  </front>
  <seriesInfo name="BCP" value="205"/>
  <seriesInfo name="RFC" value="7942"/>
  <seriesInfo name="DOI" value="10.17487/RFC7942"/>
</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="RFC9727">
  <front>
    <title>api-catalog: A Well-Known URI and Link Relation to Help Discovery of APIs</title>
    <author fullname="K. Smith" initials="K." surname="Smith"/>
    <date month="June" year="2025"/>
    <abstract>
      <t>This document defines the "api-catalog" well-known URI and link relation. It is intended to facilitate automated discovery and usage of published Application Programming Interfaces (APIs). A request to the api-catalog resource will return a document providing information about, and links to, the Publisher's APIs.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9727"/>
  <seriesInfo name="DOI" value="10.17487/RFC9727"/>
</reference>

<reference anchor="I-D.jimenez-dawn-discovery-landscape">
   <front>
      <title>A Survey of AI Agent Discovery Mechanisms</title>
      <author fullname="Jaime Jimenez" initials="J." surname="Jimenez">
         <organization>Ericsson</organization>
      </author>
      <author fullname="Jim Feng" initials="J." surname="Feng">
         <organization>Ericsson</organization>
      </author>
      <author fullname="Jari Arkko" initials="J." surname="Arkko">
         <organization>Ericsson</organization>
      </author>
      <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
         <organization>Ericsson</organization>
      </author>
      <author fullname="Rajat Kandoi" initials="R." surname="Kandoi">
         <organization>Ericsson</organization>
      </author>
      <date day="3" month="July" year="2026"/>
      <abstract>
	 <t>   This document surveys mechanisms for AI agent discovery being
   developed at the IETF, at AAIF, at 3GPP, and in open-source projects.
   It compares them by discovery model, scope, dynamism, cross-domain
   reach, and semantic capability.  It identifies gaps, overlaps, and
   conflicts between the approaches to inform future standardization
   work.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-jimenez-dawn-discovery-landscape-00"/>
   
</reference>

<reference anchor="MDI" >
  <front>
    <title>Minimum Public Discovery Information: Requirements and Common Semantics</title>
    <author initials="Y." surname="Cui">
      <organization></organization>
    </author>
    <author initials="K." surname="Yao">
      <organization></organization>
    </author>
    <date year="2026" month="November"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-cui-dawn-mdi-model-02"/>
</reference>
<reference anchor="FEDERATION" >
  <front>
    <title>Federation Between Capability Indexes: Crawl, Reciprocal Identification and Admission</title>
    <author initials="A." surname="Artamokhov">
      <organization></organization>
    </author>
    <date year="2026" month="October"/>
  </front>
  <seriesInfo name="Internet-Draft" value="draft-artamokhov-dawn-index-federation-01"/>
</reference>
<reference anchor="A2A" target="https://a2a-protocol.org/latest/specification/">
  <front>
    <title>Agent2Agent (A2A) Protocol Specification, version 1.0</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026" month="March"/>
  </front>
</reference>
<reference anchor="MCPREG" target="https://registry.modelcontextprotocol.io/">
  <front>
    <title>Model Context Protocol Registry</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>
<reference anchor="X402" target="https://github.com/x402-foundation/x402/blob/main/specs/x402-specification-v2.md">
  <front>
    <title>x402 Payment Protocol Specification, version 2</title>
    <author >
      <organization></organization>
    </author>
    <date year="2025" month="December"/>
  </front>
</reference>
<reference anchor="VECTORS" target="https://github.com/alexar76/aimarket-protocol/tree/main/test-vectors">
  <front>
    <title>AIMarket Protocol v2 test vectors and conformance runner</title>
    <author >
      <organization></organization>
    </author>
    <date year="2026"/>
  </front>
</reference>


    </references>

</references>


<?line 450?>

<section numbered="false" anchor="wire-mapping"><name>Mapping to the deployed wire format</name>

<texttable>
      <ttcol align='left'>This document</ttcol>
      <ttcol align='left'>Earlier deployed name</ttcol>
      <c><spanx style="verb">/.well-known/agent-marketplace</spanx></c>
      <c><spanx style="verb">/.well-known/ai-market.json</spanx></c>
      <c><spanx style="verb">catalogue_url</spanx></c>
      <c><spanx style="verb">manifest_url</spanx></c>
      <c><spanx style="verb">capabilities</spanx></c>
      <c><spanx style="verb">tools</spanx></c>
      <c><spanx style="verb">signature_profile</spanx></c>
      <c>not present; always <spanx style="verb">ed25519-pipe-2</spanx></c>
      <c><spanx style="verb">peers</spanx> (array of URI)</c>
      <c><spanx style="verb">peers</spanx> (array of objects with <spanx style="verb">url</spanx>)</c>
</texttable>

<t>The canonical string, digest rule and verification rule are the same, so a signature valid
under one is valid under the other.</t>

</section>
<section numbered="false" anchor="mdi"><name>Relation to the MDI model</name>

<t><xref target="MDI"/> describes the minimum public discovery information (MDI) for one entity and lists
what a binding has to specify (its Section 9). This appendix records how the discovery
document carries MDI. It is not a complete binding.</t>

<t>A discovery document is one MDI instance, and its entity is the index.</t>

<texttable>
      <ttcol align='left'>MDI element</ttcol>
      <ttcol align='left'>Discovery document</ttcol>
      <c>Name</c>
      <c>the URI of the discovery document, implicit in the carrier</c>
      <c>Display Name</c>
      <c><spanx style="verb">name</spanx></c>
      <c>Entity Type</c>
      <c>not carried; the well-known suffix implies an index</c>
      <c>Endpoint, continuing discovery</c>
      <c><spanx style="verb">catalogue_url</spanx>, with the versions in <spanx style="verb">protocol_versions</spanx></c>
      <c>Freshness</c>
      <c><spanx style="verb">generated_at</spanx>, the generation time only</c>
      <c>Stable Identifier</c>
      <c>not carried</c>
      <c>Authentication Hint</c>
      <c>not carried; neither document requires authentication</c>
      <c>Trust Reference</c>
      <c><spanx style="verb">signer_public_key</spanx> and <spanx style="verb">signature_profile</spanx></c>
      <c>Extensions</c>
      <c><spanx style="verb">capabilities_count</spanx>, <spanx style="verb">peers</spanx></c>
</texttable>

<dl>
  <dt>Names:</dt>
  <dd>
    <t>The naming scope of the Name is the "https" origin of the document. <spanx style="verb">name</spanx> is not unique
(<xref target="discovery"/>), so it is a Display Name.</t>
  </dd>
  <dt>Endpoints:</dt>
  <dd>
    <t>The purpose of <spanx style="verb">catalogue_url</spanx> follows from the member name. <spanx style="verb">protocol_versions</spanx> lists
versions of the catalogue interface; the protocol itself is implied by the well-known
suffix, and the catalogue states the version it uses in <spanx style="verb">protocol_version</spanx>. Most deployed
documents also carry <spanx style="verb">mcp_endpoint</spanx>, an Endpoint for interaction over MCP, which this
document does not define.</t>
  </dd>
  <dt>Peers:</dt>
  <dd>
    <t><spanx style="verb">peers</spanx> points to other entities, so it is not an Endpoint of this instance. Traversal
depth and loop handling are specified in <xref target="FEDERATION"/>.</t>
  </dd>
  <dt>Integrity and origin:</dt>
  <dd>
    <t>TLS authenticates the discovery document to its origin. The catalogue is authenticated by
its signature under the key pinned at first contact (<xref target="keys"/>), also when another host
serves it. The signature authenticates the index, not the providers whose capabilities the
catalogue relays.</t>
  </dd>
  <dt>Change and replay:</dt>
  <dd>
    <t>The catalogue's <spanx style="verb">generated_at</spanx> changes at every generation, whether or not the entries
changed. A reader can tell whether they changed by comparing the digest of <spanx style="verb">capabilities</spanx>
(<xref target="digest"/>) with that of the last verified catalogue. Because <spanx style="verb">generated_at</spanx> is in the signed string, a
reader can also detect a catalogue older than one it has already verified.</t>
  </dd>
</dl>

<t>This document defines no validity window or refresh hint; MDI's Freshness has members for
both. A later revision may add them.</t>

</section>
<section numbered="false" anchor="implementation-experience"><name>Implementation experience</name>

<t>These failures in deployed implementations led to requirements in this document:</t>

<t><list style="symbols">
  <t>An implementation that omitted <spanx style="verb">by_hub_hash</spanx> produced catalogues no other implementation
could verify (<xref target="canonical"/>).</t>
  <t>An earlier published vector set signed a canonical string without the digests (<xref target="canonical"/>).</t>
  <t>Three verifiers failed on a signature encoded as a bare string (<xref target="signature-object"/>).</t>
  <t>A widely used Ed25519 library accepted a signature under a small-order key for an arbitrary
message (<xref target="verify"/>).</t>
</list></t>

</section>
<section numbered="false" anchor="changes-from-01"><name>Changes from -01</name>

<t>Added <xref target="mdi"/>, a mapping of the discovery document onto <xref target="MDI"/>, and a pointer to it in the
Introduction. No requirement changed.</t>

</section>
<section numbered="false" anchor="changes-from-00"><name>Changes from -00</name>

<t>Editorial: the text was shortened, and explanatory passages were removed or moved to the
Implementation experience appendix. Implementation Status was updated. One wording correction: the requirement to
ignore unrecognised members applies to readers; -00 said "index".</t>

</section>
<section numbered="false" anchor="acknowledgements"><name>Acknowledgements</name>

<t>Thanks to the authors of <xref target="I-D.jimenez-dawn-discovery-landscape"/>, and to Chenguang Du and
Siyu Deng for the discussion of minimum discovery information on the DAWN list.</t>

</section>


  </back>

<!-- ##markdown-source:
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
4hN2O4NyR+ly/MM7vjkV/C9xJFCWslMAAA==

-->

</rfc>

