<?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.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-chapman-a2a-mls-00" category="exp" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Confidential Agent Messaging">End-to-End Encryption and Purpose-Bound Governance for Agent-to-Agent Messaging</title>
    <seriesInfo name="Internet-Draft" value="draft-chapman-a2a-mls-00"/>
    <author initials="L. D." surname="Chapman" fullname="Luke Daniel Chapman">
      <organization>Qwixl</organization>
      <address>
        <email>luke.chapman@qwixl.com</email>
      </address>
    </author>
    <date year="2026" month="July" day="28"/>
    <area>Security</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>MLS</keyword>
    <keyword>agent</keyword>
    <keyword>end-to-end encryption</keyword>
    <keyword>data minimisation</keyword>
    <keyword>A2A</keyword>
    <abstract>
      <?line 63?>

<t>Agent-to-agent protocols increasingly carry messages between autonomous software
agents acting on behalf of distinct principals, including across organisational
boundaries. Existing protocols in this space secure the transport hop and
authenticate the calling party, but do not provide message-level
confidentiality, do not provide non-repudiable evidence of what a counterparty
asserted, and do not carry machine-enforceable constraints on how a recipient
may use the data conveyed.</t>
      <t>This document specifies a profile that addresses those three gaps. It defines a
Governed Object: a signed, purpose-bound, expiring message envelope identified
by a decentralised identifier. It specifies how such objects are exchanged
inside end-to-end encrypted sessions established using the Messaging Layer
Security (MLS) protocol <xref target="RFC9420"/>, and how the MLS credential is
cryptographically bound to the sending agent's identity. It defines the
encapsulation of these constructs as an extension to an agent-to-agent
transport, using the Agent2Agent (A2A) protocol <xref target="A2A"/> as the reference
binding, and specifies mandatory receiver-side processing rules including
replay rejection and purpose enforcement.</t>
    </abstract>
  </front>
  <middle>
    <?line 84?>

<section anchor="introduction">
      <name>Introduction</name>
      <section anchor="problem-statement">
        <name>Problem Statement</name>
        <t>Deployments of agent-to-agent messaging are moving from single-organisation
orchestration towards interactions between agents that represent different
principals: a person and a business, two businesses, or a citizen and a public
body. Three properties that are routinely required in such interactions are not
provided by the agent-to-agent protocols currently in use.</t>
        <dl>
          <dt>Confidentiality against intermediaries.</dt>
          <dd>
            <t>Current practice secures the transport hop, typically with TLS, and
authenticates the caller, typically with OAuth 2.0, OpenID Connect, or mutual
TLS. Any intermediary that terminates TLS -- a gateway, a broker, a hosting
provider, or the platform operating either agent -- can read the full message
content. Where the two principals are mutually independent and the message
content is confidential, commercially sensitive, or personal data, transport
security is insufficient.</t>
          </dd>
          <dt>Non-repudiable assertion.</dt>
          <dd>
            <t>A recipient frequently needs durable evidence of what the counterparty's
agent asserted, and needs it to remain verifiable after the session has
ended, after key rotation, and independently of any log held by an
intermediary. Transport-level authentication does not produce such evidence,
because it authenticates a connection rather than a statement.</t>
          </dd>
          <dt>Machine-enforceable use constraints.</dt>
          <dd>
            <t>When an agent discloses data to a counterparty, the disclosing principal
frequently intends the disclosure to be limited: to a stated purpose, and for
a bounded period. Today that intent, if expressed at all, is expressed in
prose outside the protocol and is therefore not available to the receiving
implementation at the moment of processing.</t>
          </dd>
        </dl>
        <t>These are not hypothetical requirements. In several jurisdictions the second and
third are closely related to statutory obligations; see <xref target="regulatory"/>.</t>
      </section>
      <section anchor="scope">
        <name>Scope</name>
        <t>This document specifies:</t>
        <ul spacing="normal">
          <li>
            <t>a signed message envelope, the Governed Object, carrying a semantic type, a
payload, a declared purpose, and an expiry (<xref target="governed-object"/>);</t>
          </li>
          <li>
            <t>an agent identity scheme based on Ed25519 <xref target="RFC8032"/> decentralised
identifiers, and a mandatory cryptographic binding between that identity and
the agent's MLS credential (<xref target="identity"/>);</t>
          </li>
          <li>
            <t>establishment of MLS <xref target="RFC9420"/> sessions between agents, including
publication and retrieval of MLS KeyPackages (<xref target="sessions"/>);</t>
          </li>
          <li>
            <t>encapsulation of MLS wire messages and Governed Objects as an extension to an
agent-to-agent transport, with A2A <xref target="A2A"/> as the reference binding
(<xref target="encapsulation"/>);</t>
          </li>
          <li>
            <t>mandatory receiver-side processing rules, including signature verification,
expiry rejection, replay rejection, and purpose enforcement
(<xref target="processing"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>This document does not:</t>
        <ul spacing="normal">
          <li>
            <t>define a new agent-to-agent transport, discovery mechanism, or capability
description format; it layers on an existing one;</t>
          </li>
          <li>
            <t>define agent tool invocation or local resource access, for which the Model
Context Protocol <xref target="MCP"/> and comparable mechanisms are used;</t>
          </li>
          <li>
            <t>provide cryptographic enforcement of purpose limitation. The purpose field is
signed, tamper-evident, and mandatory to enforce at the receiver, but a
non-conforming receiver that has decrypted a message can disregard it. This
is a deliberate limitation, discussed in <xref target="security"/>;</t>
          </li>
          <li>
            <t>specify authorisation policy, business semantics, or user interface
behaviour;</t>
          </li>
          <li>
            <t>specify how a decentralised identifier is bound to a legal or natural
identity. That binding, where required, is provided by credential
presentation layered above this specification and is out of scope.</t>
          </li>
        </ul>
      </section>
      <section anchor="relationship-to-existing-work">
        <name>Relationship to Existing Work</name>
        <t>MLS <xref target="RFC9420"/> provides the group key establishment and message protection
used here. This document does not modify MLS. It specifies a ciphersuite
constraint, a credential-binding requirement, and a transport encapsulation.</t>
        <t>A2A <xref target="A2A"/> provides agent discovery, capability description, and message
transport. A2A version 1.0 supports declared protocol extensions, and this
document is specified as such an extension; <xref target="protocol-version"/> states the
version this binding targets. Nothing here requires changes to A2A itself.</t>
        <t>The mechanism is transport-agnostic in principle. A2A is used as the reference
binding because it is widely deployed and because its extension mechanism makes
the binding expressible without protocol changes.</t>
      </section>
    </section>
    <section anchor="conventions-and-terminology">
      <name>Conventions and Terminology</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?>

<dl>
        <dt>Agent:</dt>
        <dd>
          <t>A software process that sends and receives messages on behalf of a principal.</t>
        </dd>
        <dt>Principal:</dt>
        <dd>
          <t>The natural person, legal person, or organisation on whose behalf an agent
acts.</t>
        </dd>
        <dt>Agent Identity:</dt>
        <dd>
          <t>A <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519 public key, used to
identify an agent and to verify its signatures.</t>
        </dd>
        <dt>Governed Object:</dt>
        <dd>
          <t>The signed message envelope specified in <xref target="governed-object"/>.</t>
        </dd>
        <dt>Purpose:</dt>
        <dd>
          <t>A short string in a Governed Object declaring the use for which the payload is
disclosed.</t>
        </dd>
        <dt>Relying Receiver:</dt>
        <dd>
          <t>An implementation that accepts a Governed Object and acts upon its payload.</t>
        </dd>
      </dl>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>Two agents, each holding an Ed25519 key pair, establish an MLS group containing
exactly two members (a pair session) or more than two members (a group
session). Application messages within that group carry Governed Objects
serialised as JSON <xref target="RFC8259"/>.</t>
      <t>The MLS wire bytes are carried inside the agent-to-agent transport as opaque
data. The transport therefore learns the identity of the endpoints and the size
and timing of messages, but not the content.</t>
      <figure anchor="fig-arch">
        <name>Confidential agent messaging</name>
        <artwork><![CDATA[
  Principal A                                     Principal B
      |                                                 |
  +---v-----------+                             +-------v-------+
  |   Agent A     |                             |   Agent B     |
  |               |                             |               |
  | Ed25519 key   |                             | Ed25519 key   |
  | did:key:zA..  |                             | did:key:zB..  |
  +---+-----------+                             +-----------+---+
      |                                                     |
      |  (1) retrieve KeyPackage                            |
      |---------------------------------------------------->|
      |  (2) MLS Welcome + ratchet tree                     |
      |---------------------------------------------------->|
      |                                                     |
      |  (3) MLS application message                        |
      |      = AEAD( JSON( GovernedObject ) )               |
      |<--------------------------------------------------->|
      |                                                     |
   +--+-----------------------------------------------------+--+
   |          agent-to-agent transport (e.g. A2A over HTTPS)   |
   |          sees: endpoints, size, timing. not: content      |
   +----------------------------------------------------------+
]]></artwork>
      </figure>
    </section>
    <section anchor="identity">
      <name>Agent Identity</name>
      <section anchor="identifier-construction">
        <name>Identifier Construction</name>
        <t>An Agent Identity is a <tt>did:key</tt> identifier <xref target="DIDKEY"/> encoding an Ed25519
public key. The identifier is the string <tt>did:key:</tt> followed by the multibase
base58btc encoding (prefix <tt>z</tt>) of the multicodec <tt>ed25519-pub</tt> header
(<tt>0xed 0x01</tt>) concatenated with the 32-byte public key.</t>
        <t>Verifiers <bcp14>MUST</bcp14> derive the public key from the identifier itself. Conforming
implementations <bcp14>MUST NOT</bcp14> require network resolution of the identifier in order
to verify a signature. This property is required so that a Governed Object
remains verifiable offline and after the issuer's service has ceased to
operate.</t>
        <t>Implementations <bcp14>MAY</bcp14> support additional DID methods. Implementations <bcp14>MUST</bcp14> support
<tt>did:key</tt>.</t>
      </section>
      <section anchor="mls-ciphersuite">
        <name>MLS Ciphersuite</name>
        <t>Implementations <bcp14>MUST</bcp14> support MLS ciphersuite
<tt>MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519</tt> (value <tt>0x0001</tt> in the MLS
Ciphersuites registry established by <xref target="RFC9420"/>).</t>
        <t>This ciphersuite is mandatory because its signature scheme is Ed25519, matching
the Agent Identity key type and enabling the binding specified in
<xref target="credential-binding"/>. Implementations <bcp14>MAY</bcp14> negotiate other ciphersuites,
subject to that section.</t>
      </section>
      <section anchor="credential-binding">
        <name>Credential Binding</name>
        <t>An agent's MLS credential <bcp14>MUST</bcp14> be a <tt>basic</tt> credential whose identity is the
UTF-8 encoding of the agent's Agent Identity.</t>
        <t>Furthermore, the MLS <tt>signature_key</tt> in the agent's LeafNode <bcp14>MUST</bcp14> be the same
Ed25519 public key that is encoded in that Agent Identity.</t>
        <t>This requirement is the load-bearing element of this section. Without it, an
attacker who can publish a KeyPackage may assert an arbitrary DID string in the
credential, and a receiver has no cryptographic basis for concluding that
messages from that MLS member originate from the holder of the corresponding
DID. With it, MLS membership and Governed Object authorship are bound to a
single key.</t>
        <t>On receiving a KeyPackage or LeafNode, an implementation <bcp14>MUST</bcp14> verify that the
credential identity parses as a <tt>did:key</tt> Ed25519 identifier and that the
public key so derived is octet-for-octet equal to the LeafNode
<tt>signature_key</tt>. If the check fails, the implementation <bcp14>MUST</bcp14> reject the
KeyPackage and <bcp14>MUST NOT</bcp14> add the member to a group.</t>
        <t>Where a ciphersuite whose signature scheme is not Ed25519 is negotiated, the
binding of <xref target="credential-binding"/> cannot be expressed by key equality. In that
case implementations <bcp14>MUST</bcp14> instead require the credential identity to be
accompanied by a proof of possession: a signature, made with the Agent
Identity key, over the MLS <tt>signature_key</tt>. Definition of that proof's
encoding is deferred to a future revision of this document; until it is
specified, implementations that require the binding <bcp14>MUST</bcp14> use ciphersuite
<tt>0x0001</tt>.</t>
      </section>
    </section>
    <section anchor="governed-object">
      <name>The Governed Object</name>
      <section anchor="structure">
        <name>Structure</name>
        <t>A Governed Object is a JSON object <xref target="RFC8259"/> with the following members. All
listed members are mandatory unless stated otherwise.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>version</tt></td>
              <td align="left">number</td>
              <td align="left">Format version. <bcp14>MUST</bcp14> be <tt>1</tt> for this specification.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>id</tt></td>
              <td align="left">string</td>
              <td align="left">Unique object identifier. <bcp14>MUST</bcp14> be unique per issuer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuerDid</tt></td>
              <td align="left">string</td>
              <td align="left">Agent Identity of the signer.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>issuedAt</tt></td>
              <td align="left">string</td>
              <td align="left">Issuance time, RFC 3339 date-time in UTC.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>semantic</tt></td>
              <td align="left">object</td>
              <td align="left">Type descriptor; see below.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>payload</tt></td>
              <td align="left">object</td>
              <td align="left">Application data.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>governance</tt></td>
              <td align="left">object</td>
              <td align="left">Use constraints; see <xref target="governance"/>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signatureAlgorithm</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>MUST</bcp14> be <tt>"ed25519"</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>signature</tt></td>
              <td align="left">string</td>
              <td align="left">Base64 <xref target="RFC4648"/> Ed25519 signature.</td>
            </tr>
          </tbody>
        </table>
        <t>The <tt>semantic</tt> member has a mandatory <tt>schema</tt> member containing an absolute
URI identifying the payload type, and <bcp14>OPTIONAL</bcp14> <tt>version</tt> and <tt>embeddingHint</tt>
members.</t>
        <t>The <tt>id</tt> member <bcp14>MUST</bcp14> be unique per issuer and <bcp14>SHOULD</bcp14> be a UUID or other value
with negligible collision probability. Receivers rely on this for replay
rejection (<xref target="replay"/>).</t>
      </section>
      <section anchor="governance">
        <name>Governance</name>
        <t>The <tt>governance</tt> member carries:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Member</th>
              <th align="left">Type</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>purpose</tt></td>
              <td align="left">string</td>
              <td align="left">Mandatory. Declared use for the payload.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>ttlSeconds</tt></td>
              <td align="left">number</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Lifetime in seconds from <tt>issuedAt</tt>.</td>
            </tr>
            <tr>
              <td align="left">
                <tt>expiresAt</tt></td>
              <td align="left">string</td>
              <td align="left">
                <bcp14>OPTIONAL</bcp14>. Absolute expiry, RFC 3339 date-time.</td>
            </tr>
          </tbody>
        </table>
        <t>If both <tt>ttlSeconds</tt> and <tt>expiresAt</tt> are present, the earlier resulting instant
is the effective expiry. If neither is present, the object does not expire, and
receivers <bcp14>SHOULD</bcp14> apply a locally configured maximum lifetime.</t>
        <t>Purpose strings are lowercase, colon-delimited, and hierarchical, for example
<tt>comms:message</tt> or <tt>coordination:proposal</tt>. Purpose values are application
domain vocabulary; this document does not define a registry, but see
<xref target="iana"/> for a discussion of whether one is warranted.</t>
      </section>
      <section anchor="canonical">
        <name>Canonical Serialisation</name>
        <t>The signature is computed over a canonical serialisation of the object's
content, excluding <tt>signatureAlgorithm</tt> and <tt>signature</tt>.</t>
        <t>The canonical form is produced by serialising the JSON object consisting of
exactly the members <tt>version</tt>, <tt>id</tt>, <tt>issuerDid</tt>, <tt>issuedAt</tt>, <tt>semantic</tt>,
<tt>payload</tt>, and <tt>governance</tt>, such that:</t>
        <ol spacing="normal" type="1"><li>
            <t>object members are ordered lexicographically by their UTF-16 code unit
sequence;</t>
          </li>
          <li>
            <t>members whose value is undefined or absent are omitted;</t>
          </li>
          <li>
            <t>array element order is preserved;</t>
          </li>
          <li>
            <t>no insignificant whitespace is emitted;</t>
          </li>
          <li>
            <t>strings and numbers are serialised as specified by <xref target="RFC8259"/>.</t>
          </li>
        </ol>
        <t>Implementations <bcp14>SHOULD</bcp14> use JSON Canonicalization Scheme <xref target="RFC8785"/> where
available; it satisfies the requirements above for the value space used by this
specification.</t>
        <t>Nested objects within <tt>semantic</tt>, <tt>payload</tt>, and <tt>governance</tt> are canonicalised
recursively by the same rules.</t>
        <t>Payload authors <bcp14>SHOULD</bcp14> avoid floating-point numbers, because canonical
serialisation of floating-point values is a known source of cross-language
interoperability failure. Where numeric precision matters, payloads <bcp14>SHOULD</bcp14>
encode values as strings or as integers in a stated minor unit.</t>
      </section>
      <section anchor="signing">
        <name>Signing</name>
        <t>The signature is <tt>Ed25519(privateKey, UTF8(canonicalForm))</tt> as specified in
<xref target="RFC8032"/>, encoded per <xref target="RFC4648"/> Section 4 (base64 with padding).</t>
      </section>
      <section anchor="verification">
        <name>Verification</name>
        <t>A verifier <bcp14>MUST</bcp14>:</t>
        <ol spacing="normal" type="1"><li>
            <t>confirm <tt>version</tt> equals <tt>1</tt>;</t>
          </li>
          <li>
            <t>confirm <tt>signatureAlgorithm</tt> equals <tt>"ed25519"</tt>;</t>
          </li>
          <li>
            <t>derive the Ed25519 public key from <tt>issuerDid</tt> per <xref target="identity"/>;</t>
          </li>
          <li>
            <t>recompute the canonical form per <xref target="canonical"/>;</t>
          </li>
          <li>
            <t>verify the signature.</t>
          </li>
        </ol>
        <t>Verification failure <bcp14>MUST</bcp14> cause the object to be rejected.</t>
      </section>
    </section>
    <section anchor="sessions">
      <name>Session Establishment</name>
      <section anchor="keypackage-publication">
        <name>KeyPackage Publication</name>
        <t>An agent that accepts incoming sessions publishes MLS KeyPackages. Where the
A2A binding of <xref target="encapsulation"/> is used, the agent <bcp14>SHOULD</bcp14> expose them at the
path <tt>/mls/key-package</tt> relative to its A2A service endpoint, returning a JSON
object with members <tt>did</tt> (the Agent Identity) and <tt>wire</tt> (the base64-encoded
MLS KeyPackage).</t>
        <t>Publishing endpoints <bcp14>MUST</bcp14> rate-limit KeyPackage retrieval. KeyPackages are
single-use in MLS; unbounded retrieval permits exhaustion of an agent's
pre-published supply.</t>
        <t>Retrievers <bcp14>MUST</bcp14> perform the credential binding check of
<xref target="credential-binding"/> on the retrieved KeyPackage before use.</t>
      </section>
      <section anchor="establishing-a-pair-session">
        <name>Establishing a Pair Session</name>
        <t>The initiating agent creates an MLS group containing itself, then commits an Add
proposal for the responding agent using the retrieved KeyPackage, and delivers
the resulting Welcome message and ratchet tree to the responder using the
handshake encapsulation of <xref target="handshake-part"/>.</t>
        <t>Where the responder's identity was learned from an out-of-band invitation that
asserted a specific Agent Identity, the initiator <bcp14>MUST</bcp14> verify that the
retrieved KeyPackage's credential identity equals the asserted identity, and
<bcp14>MUST</bcp14> abort establishment on mismatch. Absent this check, an attacker who
controls the endpoint named in an invitation can substitute their own identity.</t>
      </section>
      <section anchor="group-sessions">
        <name>Group Sessions</name>
        <t>Sessions with more than two members follow MLS group semantics unchanged. Any
member with commit rights, as determined by local policy, <bcp14>MAY</bcp14> add or remove
members. This document places no additional requirements on group membership
policy, but implementations <bcp14>MUST</bcp14> apply the credential binding check of
<xref target="credential-binding"/> to every joining member.</t>
      </section>
      <section anchor="session-persistence">
        <name>Session Persistence</name>
        <t>Implementations that persist MLS group state across process restarts <bcp14>MUST</bcp14>
protect that state at rest with confidentiality and integrity equivalent to the
protection afforded to long-term private keys. Group state contains the secrets
necessary to decrypt past and future epochs.</t>
      </section>
    </section>
    <section anchor="encapsulation">
      <name>Encapsulation</name>
      <t>This section specifies the A2A <xref target="A2A"/> binding.</t>
      <section anchor="protocol-version">
        <name>Protocol Version</name>
        <t>This binding is specified against A2A version 1.0. Two properties of that
version are relied upon: a message part carries a <tt>mediaType</tt> member of its own,
and a message may enumerate the extensions it depends upon.</t>
        <t>A2A version 0.3 provided neither. Implementations <bcp14>MAY</bcp14> interoperate with peers
speaking version 0.3 by applying <xref target="version-compat"/>, and the reference
implementation does so, but a conforming implementation of this document
transmits version 1.0.</t>
        <t>Throughout this section, part and message members are named as they appear in
the JSON serialisation on the wire. An implementation generated from the A2A
protocol buffer schema will present the part content as a language-level tagged
union; that representation is an artefact of code generation and is not
observable by a peer.</t>
      </section>
      <section anchor="extension-declaration">
        <name>Extension Declaration</name>
        <t>An agent supporting this specification <bcp14>MUST</bcp14> declare the extension URI
<tt>https://atom.qwixl.dev/a2a/data-object/v1</tt> in the <tt>capabilities.extensions</tt>
member of its Agent Card.</t>
        <t>A message carrying any part specified in this section <bcp14>SHOULD</bcp14> additionally list
that URI in the message's <tt>extensions</tt> member. A receiver <bcp14>MUST NOT</bcp14> require the
member to be present, since a peer speaking A2A version 0.3 has no such member
to populate, and <bcp14>MUST NOT</bcp14> rely upon it to identify a part: the media type is
authoritative.</t>
        <t>Editor's note: this URI reflects the deployed reference implementation. Should
this document be adopted by a standards body, the URI is expected to be
reassigned under that body's namespace. Implementations <bcp14>SHOULD</bcp14> treat the URI as
an opaque identifier.</t>
      </section>
      <section anchor="media-type-placement">
        <name>Media Type Placement</name>
        <t>Each part specified below is identified by one of the media types in <xref target="iana"/>.
A sender <bcp14>MUST</bcp14> set the media type in the part's <tt>mediaType</tt> member, and <bcp14>SHOULD</bcp14>
also set a <tt>mediaType</tt> member within the part's <tt>data</tt> object with the identical
value.</t>
        <t>A receiver <bcp14>MUST</bcp14> determine the media type from the part's <tt>mediaType</tt> member when
that member is present and non-empty, and <bcp14>MUST</bcp14> fall back to the <tt>mediaType</tt>
member within the <tt>data</tt> object otherwise. Where both are present and they
disagree, the receiver <bcp14>MUST</bcp14> reject the part.</t>
        <t>The duplication exists because version 0.3 of A2A had no <tt>mediaType</tt> member on a
part, obliging deployments written against A2A version 0.3 to carry the
media type inside the payload. A receiver that reads only the inner member
therefore continues to interoperate. A sender <bcp14>MAY</bcp14> omit the inner member once no
such receiver remains reachable; this document retains it as a <bcp14>SHOULD</bcp14> rather
than a <bcp14>MUST</bcp14> for that reason.</t>
      </section>
      <section anchor="governed-object-part">
        <name>Governed Object Part</name>
        <t>A Governed Object <bcp14>MAY</bcp14> be carried unencrypted in an A2A message part whose <tt>data</tt>
member is a JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.data-object+json;version=1</tt> per
<xref target="media-type-placement"/>, and <tt>object</tt>, set to the Governed Object.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.data-object+json;version=1",
    "object": { ... Governed Object ... }
  },
  "mediaType": "application/vnd.atom.data-object+json;version=1"
}
]]></artwork>
        <t>Unencrypted carriage provides authenticity and governance metadata but not
confidentiality. Implementations <bcp14>MUST NOT</bcp14> use unencrypted carriage for personal
data or otherwise confidential payloads where an MLS session can be
established. Implementations <bcp14>SHOULD</bcp14> default to encrypted carriage.</t>
      </section>
      <section anchor="mls-wire-part">
        <name>MLS Wire Part</name>
        <t>MLS wire messages are carried in an A2A message part whose <tt>data</tt> member is a
JSON object with members <tt>mediaType</tt>, set to
<tt>application/vnd.atom.mls-wire+cbor;version=1</tt> per <xref target="media-type-placement"/>,
and <tt>wire</tt>, set to the base64 encoding <xref target="RFC4648"/> of the MLSMessage as
serialised per <xref target="RFC9420"/>.</t>
        <artwork><![CDATA[
{
  "data": {
    "mediaType": "application/vnd.atom.mls-wire+cbor;version=1",
    "wire": "<base64 MLSMessage>"
  },
  "mediaType": "application/vnd.atom.mls-wire+cbor;version=1"
}
]]></artwork>
        <t>The decrypted application message plaintext is the UTF-8 encoding of a JSON
object with a member <tt>object</tt> containing a Governed Object. Implementations <bcp14>MAY</bcp14>
define additional members; receivers <bcp14>MUST</bcp14> ignore members they do not
recognise.</t>
      </section>
      <section anchor="handshake-part">
        <name>Handshake Part</name>
        <t>MLS Welcome messages and the accompanying ratchet tree are carried in an A2A
message part whose <tt>data</tt> member is a JSON object with member <tt>mediaType</tt> set to
<tt>application/vnd.atom.mls-handshake+json;version=1</tt> per
<xref target="media-type-placement"/>, and members conveying the base64-encoded Welcome and
ratchet tree.</t>
      </section>
      <section anchor="agent-card">
        <name>Agent Card</name>
        <t>An agent's endpoints are declared in the <tt>supportedInterfaces</tt> member of its
Agent Card, an ordered list in which the first entry is the sender's preferred
interface and each entry states the A2A protocol version that interface speaks.
A2A version 0.3 instead declared a single endpoint in a top-level <tt>url</tt> member;
an implementation reading a card <bcp14>MUST NOT</bcp14> depend on that member.</t>
        <t>An agent <bcp14>MAY</bcp14> declare more than one interface at the same URL in order to serve
more than one protocol version, and the reference implementation does so.</t>
        <t>An Agent Card <bcp14>MAY</bcp14> carry one or more JWS signatures in its <tt>signatures</tt> member.
Where an agent's identity is a <tt>did:key</tt> as specified in <xref target="identity"/>, the
signature's <tt>kid</tt> header parameter <bcp14>SHOULD</bcp14> be that identifier, because the
verifying key is then recoverable from the identifier itself and card
verification requires no key distribution mechanism and no further network
retrieval.</t>
        <t>A relying party that verifies a card signature <bcp14>MUST</bcp14> treat the identifier in
<tt>kid</tt> as the identity that produced the card, and <bcp14>MUST NOT</bcp14> infer from a valid
signature that the card's contents are endorsed by any other identity named
within it. Transport security establishes control of the origin serving a card;
it establishes nothing about the agent the card describes. An unsigned card
therefore permits any party controlling an origin to publish a card asserting
any agent identity, and a relying party that acts on such an assertion -- for
instance, to associate a domain with an agent -- <bcp14>SHOULD</bcp14> require a signature whose
<tt>kid</tt> matches the asserted identity.</t>
      </section>
      <section anchor="version-compat">
        <name>Version Compatibility</name>
        <t>An implementation <bcp14>MAY</bcp14> accept and originate A2A version 0.3 messages in addition
to version 1.0. Where it does:</t>
        <ul spacing="normal">
          <li>
            <t>The version of a received message is determined by the <tt>A2A-Version</tt> header
field. Its absence denotes version 0.3.</t>
          </li>
          <li>
            <t>The version to use towards a given peer is determined by that peer's Agent
Card, per <xref target="agent-card"/>.</t>
          </li>
          <li>
            <t>A part received from a version 0.3 peer carries the media type only within
the <tt>data</tt> object, which <xref target="media-type-placement"/> accommodates.</t>
          </li>
        </ul>
        <t>Deployment order is not symmetric, and this has operational consequence. A
receiver that accepts both versions is compatible with senders of either, but a
sender that has begun transmitting version 1.0 is not compatible with a receiver
that accepts only version 0.3. In a network upgraded incrementally, every
receiver <bcp14>MUST</bcp14> therefore be capable of the newer version before any sender
originates it.</t>
      </section>
      <section anchor="transport-authentication">
        <name>Transport Authentication</name>
        <t>The transport carrying these parts <bcp14>MUST</bcp14> authenticate the calling party using a
mechanism defined by the underlying protocol, such as those enumerated in
<xref target="A2A"/>.</t>
        <t>An unauthenticated transport endpoint permits an unbounded set of parties to
consume the receiver's resources, to enqueue messages, and to attempt session
establishment. End-to-end encryption does not mitigate this: MLS protects
content, not availability. Implementations <bcp14>MUST NOT</bcp14> expose an unauthenticated
message-submission endpoint in production.</t>
      </section>
    </section>
    <section anchor="processing">
      <name>Receiver Processing Rules</name>
      <section anchor="mandatory-ordered-checks">
        <name>Mandatory Ordered Checks</name>
        <t>On receiving a Governed Object, whether from a decrypted MLS application message
or from unencrypted carriage, a Relying Receiver <bcp14>MUST</bcp14> perform the following
checks, and <bcp14>MUST</bcp14> perform them in this order:</t>
        <ol spacing="normal" type="1"><li>
            <t>Structural validation against <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Signature verification per <xref target="governed-object"/>. Reject on failure.</t>
          </li>
          <li>
            <t>Where the object arrived inside an MLS session, confirm that <tt>issuerDid</tt>
equals the Agent Identity in the credential of the MLS member that sent the
message. Reject on mismatch.</t>
          </li>
          <li>
            <t>Expiry evaluation per <xref target="governance"/>. Reject if expired.</t>
          </li>
          <li>
            <t>Replay rejection per <xref target="replay"/>. Reject if already seen.</t>
          </li>
          <li>
            <t>Purpose enforcement per <xref target="purpose-enforcement"/>. Reject if not permitted.</t>
          </li>
        </ol>
        <t>Only after all six checks succeed may the receiver act upon <tt>payload</tt>.</t>
        <t>Check 3 is essential and is easily omitted. Without it, any member of a group
can emit an object bearing another member's <tt>issuerDid</tt>; the signature check
alone does not detect this, because the signature is valid -- it is simply not
made by the party that sent it. Implementations <bcp14>MUST NOT</bcp14> treat a valid signature
as evidence of who transmitted the message.</t>
      </section>
      <section anchor="replay">
        <name>Replay Rejection</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> reject a Governed Object whose <tt>id</tt> it has previously
accepted from the same <tt>issuerDid</tt>.</t>
        <t>Receivers <bcp14>MUST</bcp14> retain accepted <tt>(issuerDid, id)</tt> pairs for at least the maximum
object lifetime they will accept. Where a receiver applies a maximum accepted
lifetime, retention for that period is sufficient, because an older object is
rejected by check 4 regardless.</t>
        <t>Absent this requirement, a passive observer of unencrypted carriage, or any
member of an MLS group, can re-present a previously valid object. Where objects
convey instructions with side effects -- a payment authorisation, a booking
confirmation, a consent grant -- replay is directly exploitable.</t>
      </section>
      <section anchor="purpose-enforcement">
        <name>Purpose Enforcement</name>
        <t>A Relying Receiver <bcp14>MUST</bcp14> maintain, per processing context, a set of permitted
purpose values, and <bcp14>MUST</bcp14> reject an object whose <tt>governance.purpose</tt> is not in
that set.</t>
        <t>The set <bcp14>MUST</bcp14> be determined by the receiver's own configuration for the context
in which the object is being processed. It <bcp14>MUST NOT</bcp14> be derived from the object
itself, nor from any value under the sender's control.</t>
        <t>Receivers <bcp14>MUST NOT</bcp14> use a payload for a purpose other than the one declared, and
<bcp14>MUST NOT</bcp14> retain it beyond its expiry, save where an independent legal obligation
requires retention.</t>
      </section>
      <section anchor="rejection-behaviour">
        <name>Rejection Behaviour</name>
        <t>A receiver rejecting an object <bcp14>SHOULD</bcp14> emit a diagnostic distinguishable by
cause, for operator use. A receiver <bcp14>SHOULD NOT</bcp14> return to the sender information
that distinguishes between rejection causes beyond what is necessary for
interoperability, because fine-grained rejection reasons assist an attacker in
probing receiver configuration -- in particular in enumerating the permitted
purpose set.</t>
      </section>
    </section>
    <section anchor="regulatory">
      <name>Regulatory Alignment</name>
      <t>This section is informative.</t>
      <t>The constructs specified here correspond to obligations that exist independently
of this document in several jurisdictions. In the European Union, <xref target="GDPR"/>
Article 5(1)(b) requires that personal data be collected for specified purposes
and not further processed incompatibly with them; Article 5(1)(c) requires data
minimisation; and Article 5(1)(e) requires that data be kept no longer than
necessary.</t>
      <t>A Governed Object carries the specified purpose and the retention limit as
signed metadata available to the receiving implementation at the moment of
processing, rather than as prose in an agreement negotiated out of band. The
mandatory receiver-side enforcement of <xref target="purpose-enforcement"/> makes those
constraints operative in code.</t>
      <t>This does not constitute compliance, and this document does not offer legal
advice. It observes only that the mechanism places the relevant facts where an
implementation can act on them, which is a precondition for compliance being
demonstrable rather than merely asserted.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <section anchor="what-this-specification-provides">
        <name>What This Specification Provides</name>
        <t>Within an MLS session, message content is confidential from the transport and
from any intermediary, with the forward secrecy and post-compromise security
properties of <xref target="RFC9420"/>. Governed Objects are authenticated and integrity
protected by Ed25519 signatures that remain verifiable independently of the
session and after it ends, providing durable evidence of authorship. The
credential binding of <xref target="credential-binding"/> ties MLS membership to the same
key, so that transmission and authorship cannot be separated.</t>
      </section>
      <section anchor="what-it-does-not-provide">
        <name>What It Does Not Provide</name>
        <t>Purpose limitation is not cryptographically enforced. A receiver that has
decrypted a message is in possession of the plaintext and can disregard the
declared purpose and expiry. The mechanism provides a signed, non-repudiable
record of the constraint under which disclosure was made, which converts an
undetectable breach into an attributable one. It does not prevent the breach.
Constructions that would provide stronger enforcement, such as purpose-bound
decryption keys or confidential computing attestation, are out of scope.</t>
        <t>A DID is not an identity. It denotes control of a key. Binding a DID to a legal
or natural person requires a credential presentation layer above this
specification.</t>
        <t>Compromise of an agent's Ed25519 private key compromises both its MLS
membership and its ability to sign Governed Objects, precisely because
<xref target="credential-binding"/> unifies them. Implementations <bcp14>MUST</bcp14> protect this key
accordingly, and <bcp14>SHOULD</bcp14> use non-exportable key storage where the platform
provides it. The unification is a deliberate trade: it eliminates a class of
impersonation attack at the cost of concentrating key-compromise impact.</t>
        <t>MLS provides no protection against traffic analysis, and this specification adds
none. Endpoints, message sizes, and timing are visible to the transport.</t>
      </section>
      <section anchor="availability">
        <name>Availability</name>
        <t>An unauthenticated message-submission endpoint is a denial-of-service vector
regardless of encryption; see <xref target="encapsulation"/>. KeyPackage exhaustion is a
related vector; see <xref target="sessions"/>.</t>
        <t>Implementations that queue messages for offline recipients <bcp14>MUST</bcp14> bound queue size
and <bcp14>MUST</bcp14> apply the checks of <xref target="processing"/> on dequeue rather than only on
enqueue. Deferring validation to dequeue without bounding the queue permits an
attacker to cause unbounded storage consumption with unvalidated input.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="media-types">
        <name>Media Types</name>
        <t>This document uses three media types, currently registered in neither the
standards nor the vendor tree. The deployed reference implementation uses
vendor-tree names.</t>
        <t>If this document advances, the author requests registration of the following in
the standards tree, with the vendor-tree names retained as deprecated aliases:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Proposed</th>
              <th align="left">Deployed</th>
              <th align="left">Purpose</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <tt>application/governed-object+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.data-object+json</tt></td>
              <td align="left">Governed Object</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-wire+cbor</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-wire+cbor</tt></td>
              <td align="left">MLS wire message</td>
            </tr>
            <tr>
              <td align="left">
                <tt>application/mls-handshake+json</tt></td>
              <td align="left">
                <tt>application/vnd.atom.mls-handshake+json</tt></td>
              <td align="left">Welcome and ratchet tree</td>
            </tr>
          </tbody>
        </table>
        <t>Complete registration templates will be supplied in a subsequent revision.</t>
      </section>
      <section anchor="purpose-value-registry">
        <name>Purpose Value Registry</name>
        <t>This document does not establish a registry of purpose values. Purpose
vocabulary is application domain specific, and premature centralisation would
impede the domain experimentation that ought to inform any eventual registry.</t>
        <t>The author solicits input on whether a registry of a small number of
cross-domain purposes -- for instance a value denoting an authorisation to
effect a payment -- would be of sufficient value to warrant the coordination
cost, given that such values are the ones for which cross-implementation
misinterpretation is most consequential.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publication as an RFC, per <xref target="RFC7942"/>.</t>
      <t>An open source implementation exists under the Apache License 2.0 at
<tt>https://github.com/Qwixl/Atom</tt>, and is deployed in a small public network.</t>
      <t>Implemented and interoperability-tested between two independent processes over
HTTP:</t>
      <ul spacing="normal">
        <li>
          <t>Governed Object construction, canonical serialisation, Ed25519 signing, and
verification, including tamper and expiry rejection.</t>
        </li>
        <li>
          <t><tt>did:key</tt> Ed25519 identity derivation without network resolution.</t>
        </li>
        <li>
          <t>MLS pair and group sessions using ciphersuite <tt>0x0001</tt> via the <tt>ts-mls</tt>
library, including KeyPackage publication and retrieval, Welcome and ratchet
tree delivery, application message encryption and decryption, and group state
persistence.</t>
        </li>
        <li>
          <t>The A2A binding of <xref target="encapsulation"/> at protocol version 1.0, including
extension declaration in the Agent Card and per message, all three part
encodings, and media type placement in both positions per
<xref target="media-type-placement"/>.</t>
        </li>
        <li>
          <t>Version compatibility with A2A version 0.3 per <xref target="version-compat"/>, in both
directions, tested against the published version 0.3 implementation rather
than against a substitute: a version 1.0 sender delivering to a version 0.3
receiver, and a version 0.3 sender delivering to a version 1.0 receiver.</t>
        </li>
        <li>
          <t>Agent Card signing and verification per <xref target="agent-card"/>, with <tt>kid</tt> set to the
agent's <tt>did:key</tt> and the verifying key recovered from that identifier without
network retrieval. The relying check described there -- requiring the signing
identity to match an asserted identity before associating a domain with an
agent -- is applied.</t>
        </li>
        <li>
          <t>Purpose enforcement by receiver-configured allowlist, and expiry rejection.</t>
        </li>
        <li>
          <t>Out-of-band invitation with identity assertion, and abort on identity
mismatch.</t>
        </li>
      </ul>
      <t>Specified here but NOT yet implemented at the time of writing:</t>
      <ul spacing="normal">
        <li>
          <t>The credential binding key-equality check of <xref target="credential-binding"/>. The
implementation places the DID in the MLS credential but does not verify that
the LeafNode signature key matches it. This requirement was identified while
preparing this document.</t>
        </li>
        <li>
          <t>Replay rejection (<xref target="replay"/>). No <tt>(issuerDid, id)</tt> history is retained.</t>
        </li>
        <li>
          <t>Check 3 of <xref target="processing"/>, confirming <tt>issuerDid</tt> against the sending MLS
member's credential.</t>
        </li>
        <li>
          <t>Transport authentication on the message-submission endpoint
(<xref target="encapsulation"/>), which is presently unauthenticated.</t>
        </li>
        <li>
          <t>Validation on dequeue for messages queued to offline recipients
(<xref target="security"/>), which presently occurs only on enqueue.</t>
        </li>
      </ul>
      <t>The author notes that the last five items were each identified by the exercise
of writing this specification, having not been apparent from the working
implementation. This is offered as evidence for the general proposition that
specification and implementation are not redundant activities.</t>
      <t>A further instance arose in preparing this document. The reference
implementation's own documentation described a part using the tagged-union form
produced by its code generator, rather than the JSON actually transmitted. The
discrepancy was invisible to that implementation, which both produced and
consumed the same internal representation, and would have been discovered only
by a second implementation in another language attempting to interoperate from
the description. The requirement in <xref target="protocol-version"/> that members be named
as they appear on the wire, and the encapsulation vectors of <xref target="vectors"/>, exist
to prevent a recurrence.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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>
        <reference anchor="RFC9420">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </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="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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <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="A2A" target="https://a2a-protocol.org/">
          <front>
            <title>Agent2Agent (A2A) Protocol Specification, Version 1.0</title>
            <author>
              <organization>A2A Project (Linux Foundation)</organization>
            </author>
            <date year="2026"/>
          </front>
        </reference>
        <reference anchor="DIDKEY" target="https://w3c-ccg.github.io/did-method-key/">
          <front>
            <title>The did:key Method</title>
            <author>
              <organization>W3C Credentials Community Group</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GDPR" target="https://eur-lex.europa.eu/eli/reg/2016/679/oj">
          <front>
            <title>Regulation (EU) 2016/679 (General Data Protection Regulation)</title>
            <author>
              <organization>European Union</organization>
            </author>
            <date year="2016"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 843?>

<section anchor="vectors">
      <name>Test Vectors</name>
      <t>Machine-readable test vectors accompany this document, comprising: signed
Governed Objects with known Ed25519 key pairs and their canonical
serialisations; objects with mutated payloads that <bcp14>MUST</bcp14> fail verification;
expired objects; objects whose declared purpose is outside a stated permitted
set; a replayed object pair; and a KeyPackage whose credential identity does not
match its signature key, which <bcp14>MUST</bcp14> be rejected per <xref target="credential-binding"/>.</t>
      <t>A second group of vectors covers the encapsulation of <xref target="encapsulation"/> as
serialised JSON, independently of any Governed Object contained within: parts
carrying the media type in the part member, in the <tt>data</tt> member, and in both;
a part whose two media type members disagree, which <bcp14>MUST</bcp14> be rejected per
<xref target="media-type-placement"/>; and a part bearing no media type in either position.
These vectors exist because the encapsulation is the layer at which two
implementations in different languages first fail to interoperate, and it is the
layer least well served by reading either implementation's source.</t>
      <t>Vectors are published at <tt>https://github.com/Qwixl/Atom</tt> under <tt>spec/vectors/</tt>.
An implementation claiming conformance to this document <bcp14>SHOULD</bcp14> produce the
specified outcome for every vector.</t>
      <t>The vectors were derived from this document's text rather than generated from the
reference implementation, so that the two are capable of disagreeing. On first
execution they did: the reference implementation treated <tt>governance.expiresAt</tt>
as authoritative whenever present and never compared it to the interval implied
by <tt>ttlSeconds</tt>, so a sender could extend a short-lived object's lifetime
indefinitely by supplying an additional distant absolute expiry. Because the
governance block is covered by the signature, the resulting object was valid
under every other check. This is the origin of the requirement in
<xref target="governance"/> that the earlier instant govern, and it is offered as a
concrete instance of why vectors written from specification text are worth the
effort of producing.</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This work builds directly on the MLS protocol <xref target="RFC9420"/> and on the A2A
protocol <xref target="A2A"/>. The author thanks the authors and contributors of both.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8V96ZYbx5Hu/3yKvOQPkUMA3LQ2bc9tkZTEMTezSen6zJmj
LgAJdImFKriWbsIU/SzzLPfJbnwRkVsBoGh5zrn00t1AVa6RsX4ROZ1OTV/2
lTux1x7Xy2nfTOmHfVwv2t22L5vaFvTny6HdNp2bftsM9Nf3zaVr66JeOLtq
Wnu6dnWPF/kX+8x1XbEu6/U1U8znrbuklh829apc0rdlUdm9x5bNoi42NIJl
W6z66eKi2G6KelrcK6abqpveuWMWRe/WTbs7se7d1nTDfFN2HQ3u9W5Lr5X1
0m1djfaNKbftie3boevv3bnzzZ17pmhdcWLP3GJoy35nrpr27bpthu2JfRLf
s2ehTfPW7eih5YmxU/vs6Rl+FBgyfnGyRPSDfvVLhC+WRV/YTVmX1ErhPzy9
d2pM19MK/lxUTU1D3bnOdJui7X/+29D0rjuxdWO25Yn9z75ZTGzXtH3rVh39
ttvgl/8yphj6i6bFaIylf2VNLz2d2Ucz+1AWij+WBXw6vHX2UVGXrsq+bdo1
ffh3HtiJ/ctV+a7iz92mKKsTW9FrM132//03fDtbNBtj6qbd0DuXjnq3r757
eO/u3W/016/vfvW5/vrN5/fu+E/v3L/nf733hX/28y8///qEdqZejdr7il71
j3/19Rf4lZbshIfmiZKp5Z7QzA369qZ92Ta0WE1lz7ZuUa7KBU9rYn90LfbP
3p3duSZNFO3a9Sf2ou+33cnt2yCorb48oyW5zU+F9eV/U6wVur13io5+cQvq
9mlZD+/sdyB+7uumtE9/0Ajv3bn3Jf356MmjPz/+az721xfOLsvlCVEU0Tt1
szw8sKv7i+lisZ6ty/5imM/K5ja9Nd3wG1N6+WMD/en+Q/uwdXq4Ovuw2WyG
mijdfg8qR4fPHr7Mx/WsWYJAmrp37/qwnofHtsGzC3k0LB6N8GNrV/cXbbMt
F2jx+0cvX+W9v3LroeJ1tDcev7lJC3j3y9tffvWNvfG9q11LHOIRDhOGRauP
x+IbNw8P0g3ttHLvZvSz2Rb047arytutW9/2jd9ufvnIiB/jPVfU9k1NneS7
e/dLY6ZT4gHzrm+LBbGYwPCYLVi/Kh2dzQUxm46YWrWzi6Jtd3bDbM51du76
K+dqDKCpm00zdHTaV/0VsSfD7XSWGqdXLU147i6KamWbFZFPRx8u0Av9KLe0
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
qAWANFTzgQiYmf8HVXSMBYWbAAA=

-->

</rfc>
