<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mpsb-agntcy-slim-03" category="info" submissionType="independent" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="agent-slim">Secure Low-Latency Interactive Messaging (SLIM)</title>
    <seriesInfo name="Internet-Draft" value="draft-mpsb-agntcy-slim-03"/>
    <author fullname="Luca Muscariello">
      <organization>Cisco</organization>
      <address>
        <email>lumuscar@cisco.com</email>
      </address>
    </author>
    <author fullname="Michele Papalini">
      <organization>Cisco</organization>
      <address>
        <email>micpapal@cisco.com</email>
      </address>
    </author>
    <author fullname="Mauro Sardara">
      <organization>Cisco</organization>
      <address>
        <email>msardara@cisco.com</email>
      </address>
    </author>
    <author fullname="Sam Betts">
      <organization>Cisco</organization>
      <address>
        <email>sambetts@cisco.com</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <keyword>AI</keyword>
    <keyword>Agentic AI</keyword>
    <keyword>Communications</keyword>
    <keyword>Realtime</keyword>
    <abstract>
      <?line 52?>

<t>This document specifies the Secure Low-Latency Interactive Messaging
(SLIM), a protocol designed to support real-time interactive AI applications at
scale. SLIM provides a name-routed messaging data plane and session layer for
agent protocols such as A2A and MCP. The data plane carries Protocol Buffers
messages over streaming gRPC on HTTP/2 or WebSocket, while the session layer
provides point-to-point and group communication, configurable reliable delivery,
and optional end-to-end encryption using MLS. SLIM also defines link negotiation
between routing nodes and control messages for session establishment and group
membership.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/agntcy/slim-spec"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="introduction">
      <name>Introduction</name>
      <section anchor="summary">
        <name>Summary</name>
        <t>The Secure Low-Latency Interactive Messaging (SLIM) protocol addresses the
unique communication requirements of modern AI agentic applications by providing
a secure, scalable, and efficient messaging infrastructure. SLIM combines the
reliability and performance of gRPC with secure messaging and group
communication, creating a comprehensive solution for interactive AI application
communication.</t>
        <t>At its core, SLIM consists of three primary components: data plane routing
nodes that forward messages based on metadata, session-layer clients that manage
secure group state and reliability, and application endpoints that publish and
receive encrypted content. The protocol leverages Message Layer Security (MLS)
for end-to-end encryption, ensuring that messages remain confidential even when
passing through intermediate nodes or experiencing TLS termination along the
communication path.</t>
        <t>The architecture is built around a distributed network of routing nodes, each
maintaining connection and subscription state to route messages by hierarchical
name. An optional, separate control plane configures and manages routing nodes;
it is not in the message path. The session layer runs at application endpoints
and manages session state, reliability, and group membership.</t>
        <t>SLIM employs hierarchical names of the form
<tt>organization/namespace/service/id</tt>. The first three components support
aggregation, anycast discovery, and routing; the final identifier distinguishes
an application instance. The identifier is derived from the application's
authenticated identity for routing and identity binding. DIDs may be used as
application identities, but are not required as the wire representation of a
SLIM name.</t>
        <t>The protocol includes a session layer that abstracts messaging and, when
enabled, MLS operations from applications. It provides point-to-point and group
sessions. SLIMRPC builds request/response and streaming RPC over SLIM sessions
(see <xref target="SLIMRPC"/>); it is an application-layer facility rather than a data-plane
message type.</t>
        <t>SLIM supports application authentication and authorization through configured
identity providers and session policies. MLS-based group encryption and
identity binding are optional capabilities; the security properties provided
depend on deployment configuration.</t>
      </section>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>guaranteeing end-to-end security and low-latency communication.
SLIM is designed to work as a messaging layer for applications running as
workloads in a data center, a browser, or a mobile device.</t>
      <t>SLIM carries Protocol Buffers messages over streaming gRPC using HTTP/2, or over
WebSocket. The transport is hop-by-hop and may be protected with TLS;
transport-layer encryption is independent of session-layer security. When
enabled for a session, MLS <xref target="RFC9420"/> <xref target="RFC9750"/> encrypts application content
at the endpoints. Routing nodes can then forward the encrypted content without
learning its plaintext. MLS is optional; deployments that do not enable it rely
on the configured transport security.</t>
      <t>SLIM routing nodes negotiate each inter-node link before processing routed
messages. Link negotiation exchanges a link identifier, SLIM version, node
identity, and connection type. Peers can derive a per-link key for header
integrity; deployments can also negotiate hybrid post-quantum key material.</t>
      <t>Authentication and authorization are handled at the application level and can be
managed in a decentralized or federated way or a mix of both.</t>
      <t>In SLIM there are three main communication elements: routing nodes (data plane),
session-layer clients, and application endpoints that publish and receive
messages.</t>
      <t>A producer (also called a "publisher") is an endpoint that encapsulates content
in SLIM messages for transport within the network of routing nodes. A session
may use MLS to encrypt application content for its members. The publisher sends
messages to a routable hierarchical name; routing nodes use name prefixes and
subscription state to select forwarding connections without inspecting
application content.</t>
      <t>A routable name is a name prefix that is stored in a forwarding table (FIB).
This enables requests to reach the producer and fetch a response, if one exists.</t>
      <figure anchor="fig-general-arch">
        <name>Main components of the SLIM architecture.</name>
        <artwork><![CDATA[
 +-------------+         +---------------------+         +-------------+
 | Producer 1  |         |                     |         | Consumer 1  |
 +-------------+         |    Routing Node     |         +-------------+
                         |                     |<------->| Consumer 2  |
 +-------------+         |                     |         +-------------+
 | Producer 2  |-------->|                     |<------->| Consumer 3  |
 +-------------+         +---------------------+         +-------------+

          |                        ^   ^   ^
          |                        |   |   |
          |                        |   |   |
          |                        |   |   |
          v                        |   |   |
 +------------------------+        |   |   |
 | Group Moderator        |<-------+---+---+
 | (application or        |
 | channel manager)       |
 +------------------------+

 Legend:
 - Producers publish to topics via routing nodes.
 - Consumers subscribe to topics via routing nodes.
- The moderator manages group membership and distributes MLS updates
  when MLS is enabled.
- Group data and control messages use SLIM channels.
]]></artwork>
      </figure>
      <t>authentication service and by exchanging messages via the delivery service. In
the SLIM architecture, the SLIM nodes constitute the data-plane infrastructure
Group members are application clients that can send and receive messages on a
group channel. A moderator invites and removes members. When MLS is enabled,
the session layer exchanges MLS updates over SLIM channels; routing nodes
provide message delivery and do not act as an MLS authentication service.</t>
      <section anchor="routing-nodes-data-plane">
        <name>Routing Nodes (Data Plane)</name>
        <t>Routing nodes are fundamental components of the SLIM architecture that forward
messages using metadata without inspecting payloads. They fulfill several
critical functions in the messaging infrastructure. At their core, nodes
efficiently route messages between connected clients while handling the
distribution and delivery of messages across the network infrastructure.</t>
        <figure anchor="fig-node-network">
          <name>SLIM routing node network topology.</name>
          <artwork><![CDATA[
    Producer A              Producer B              Producer C
        |                       |                       |
        v                       v                       v
   +----------+            +----------+            +----------+
   |  Node 1  |<---------->|  Node 2  |<---------->|  Node 3  |
   +----------+            +----------+            +----------+
        ^                       ^                       ^
        |                       |                       |
        v                       v                       v
   +----------+            +----------+            +----------+
   |  Node 4  |<---------->|  Node 5  |<---------->|  Node 6  |
   +----------+            +----------+            +----------+
        ^                       ^                       ^
        |                       |                       |
    Consumer X             Consumer Y             Consumer Z

Legend:
- Each Node maintains connection and subscription tables
- Bidirectional arrows represent inter-node communication paths
- Producers and Consumers connect to their local nodes
- Messages are routed through the node network based on subscriptions
]]></artwork>
        </figure>
        <t>The node architecture relies on two essential data structures that work in
concert. The connection table forms the foundation for tracking all active
client connections and their states, maintaining crucial metadata about each
connected client. Alongside it, the subscription table manages topic
subscriptions and implements message filtering rules, determining which messages
should be delivered to which clients.</t>
        <t>Through this dual-table architecture, routing nodes can effectively coordinate
message delivery while maintaining optimal system performance. The connection
and subscription mechanisms work together seamlessly to ensure reliable message
routing, proper client tracking, and efficient subscription management across
the distributed system. Each node operates autonomously while participating in
the broader network, creating a resilient and scalable messaging infrastructure.</t>
        <section anchor="connection-table">
          <name>Connection Table</name>
          <t>The connection table tracks client-to-node and node-to-node connections and
provides the connection references used for message forwarding.</t>
          <t>For client connections, the table tracks end-user applications that connect to
receive or send messages through the system. For node connections, it maintains
the network fabric topology by recording inter-node relationships and routing
paths. This dual-purpose nature enables SLIM to manage both the edge
connectivity with clients and the internal communication infrastructure between
nodes.</t>
          <t>disconnections or network issues at both the client and node levels.
Connection state is updated as connections are established and closed. Link
negotiation identifies inter-node connections before they are used for routed
traffic.</t>
          <t>A connection table maps location-independent channel names to connections to
remote nodes. The mapping is used to forward messages towards nodes that can
either route messages or consume them in case consumers are directly connected
to the node.</t>
          <t>Channel names are encoded as human-readable hierarchical names for efficient
table lookup operations.</t>
        </section>
        <section anchor="subscription-table-and-matching">
          <name>Subscription Table and Matching</name>
          <t>The subscription table is used to map channel subscriptions to neighboring
nodes. It manages the distribution of messages based on subscriptions and
ensures efficient delivery of messages. A message carries a SLIM header and
content. The header includes source and destination names, identity and version
information, a time-to-live (TTL), and forwarding metadata. Session messages
additionally carry a session type, session-message type, session identifier,
and message identifier. Content is either an application payload or a
session/control payload. Subscription and unsubscription requests can request a
direct acknowledgement by supplying a non-zero subscription identifier.</t>
          <t>Routing state can be configured locally or distributed by a control plane.</t>
          <figure anchor="fig-message-structure">
            <name>SLIM message structure carrying channel name, forwarding metadata, session information, and content.</name>
            <artwork><![CDATA[
+-------------------------------------------------------------+
|                    SLIM Message Structure                   |
+-------------------------------------------------------------+
| SLIM Header    | Session Header    |         Content         |
+-------------------------------------------------------------+
| names, TTL,    | type, session ID, | application or control  |
| forwarding info| message type, ID  | payload                 |
+-------------------------------------------------------------+

Legend:
- SLIM Header: Identifies endpoints and carries routing and integrity
  fields.
- Session Header: Present for session-layer messages.
- Content: Application data or a session/control payload.
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="control-plane">
        <name>Control Plane</name>
        <t>The control plane is a separate management component and is not required in the
message path. A deployment can configure routing nodes directly or use a
control plane to register nodes, manage topology and routes, distribute
configuration, and monitor operation. Control-plane topology may be
configuration-managed or API-managed.</t>
        <t>When a control plane is used, node registration can be restricted to nodes
authorized for the claimed routing domain. Deployments can also partition
topology into routing domains to isolate routes.</t>
      </section>
      <section anchor="session-layer">
        <name>Session Layer</name>
        <t>The session layer serves as a critical abstraction component that bridges
application frameworks with the underlying SLIM messaging infrastructure. It
provides a unified interface that simplifies the complexity of secure messaging
while handling the details of MLS client operations and message distribution.</t>
        <section anchor="core-responsibilities">
          <name>Core Responsibilities</name>
          <t>The session layer encapsulates several key functionalities:</t>
          <t><strong>MLS Client Operations</strong>: When MLS is enabled for a session, the layer handles
MLS encryption and decryption, key management, and group membership operations.</t>
          <t><strong>Channel Management</strong>: It provides seamless channel subscription and
unsubscription capabilities, managing the lifecycle of channel memberships and
maintaining subscription state across connection interruptions or node
failures.</t>
          <t><strong>Message Abstraction</strong>: The session layer abstracts message passing between
applications and the SLIM message distribution network, handling message
formatting, routing, and delivery confirmation while providing simple send and
receive primitives to applications.</t>
          <t><strong>Configuration Abstraction</strong>: It eliminates the need for applications to
manage complex configuration details required to connect to SLIM nodes,
automatically handling node discovery, connection establishment, and
subscription management.</t>
        </section>
        <section anchor="api-design-principles">
          <name>API Design Principles</name>
          <t>The session layer API is designed with the following principles:</t>
          <ul spacing="normal">
            <li>
              <t>Simplicity: Applications interact with the messaging system through
intuitive publish/subscribe operations without needing to understand the
underlying MLS or routing complexities.</t>
            </li>
            <li>
              <t>Asynchronous Operations: All messaging operations are designed to be
non-blocking, supporting high-performance applications.</t>
            </li>
            <li>
              <t>Framework Agnostic: The API provides language bindings and framework
adapters for various application development environments, ensuring broad
compatibility across different technology stacks.</t>
            </li>
            <li>
              <t>Error Handling: Comprehensive error reporting and recovery mechanisms
help applications handle communication issues and authentication failures.</t>
            </li>
          </ul>
        </section>
        <section anchor="session-management">
          <name>Session Management</name>
          <t>The session layer manages state for point-to-point and group communication.
Group sessions use distinct data and control channel names. The session layer
handles discovery, join, leave, group updates, acknowledgements, and (when MLS
is enabled) MLS messages over these channels. Delivery retries and
acknowledgements are configurable; they are not guaranteed for every session.</t>
          <t>Participants can transition between online and offline states without being
removed from a group. Participants periodically send one-way heartbeats, and
each member independently tracks peer liveness. A returning participant can
rejoin; when MLS is enabled, key material is updated as needed to reconcile an
epoch mismatch. Session-state persistence is optional and can restore group
state after a process restart.</t>
        </section>
      </section>
      <section anchor="naming-considerations">
        <name>Naming Considerations</name>
        <t>the Named Information <xref target="RFC6920"/> standard, referencing the IANA registry
tables, which can aggregate multiple names under name prefixes such as
SLIM names identify applications and channels and are used for routing and
service discovery. A name has the form:</t>
        <t><tt>
organization/namespace/service/id
</tt></t>
        <t>The first three components are application-selected and support aggregation.
The final component identifies an application instance and is derived from its
authenticated identity. For example, an identity may be a <tt>did:key</tt> as defined
in <xref target="DID-Key"/>. A name ID is a routing identifier, not proof of identity; when
identity binding is enabled, the session layer verifies the peer identity and
checks its binding to the advertised name.</t>
        <t>The three-component prefix <tt>organization/namespace/service</tt> addresses a service
for anycast discovery. Adding the final ID addresses an instance. A group
channel uses the same four-component form. Its data and control channel IDs are
derived from the moderator identity and channel name; they share the same first
three components. The moderator is the group participant authorized to invite
and remove members.</t>
      </section>
      <section anchor="deployment-considerations">
        <name>Deployment Considerations</name>
        <t>SLIM helps the deployment of agentic AI applications where a combination of
data streams, tools and LLMs are combined to create a distributed multi-agent
systems that can solve problems via AI.</t>
        <t>These applications work as SLIM clients and <bcp14>MAY</bcp14> expose a service to the secure
group. The channel and client naming structure combined allows for service
discovery capabilities by binding the application a specific application
namespace and service name.</t>
      </section>
    </section>
    <section anchor="rpc-in-agentic-protocols-and-relationship-to-messaging">
      <name>RPC in Agentic Protocols and Relationship to Messaging</name>
      <t>Most agent-facing interfaces in use today—such as A2A and the Model Context
Protocol (MCP)—are Remote Procedure Call (RPC) oriented. They expose synchronous
request/response semantics for tool invocation, resource listing, and capability
execution. This section clarifies how RPC relates to asynchronous messaging and
how the two paradigms interoperate in agentic systems.</t>
      <section anchor="rpc-vs-messaging-synchronous-vs-asynchronous">
        <name>RPC vs. Messaging: Synchronous vs. Asynchronous</name>
        <ul spacing="normal">
          <li>
            <t><strong>RPC (A2A, MCP)</strong>: The caller issues a request and blocks or awaits a timely
response. Semantics emphasize tightly scoped operations (for example, “call tool
X with parameters Y”) with bounded latency and explicit error contracts.</t>
          </li>
          <li>
            <t><strong>Messaging (AMQP, MQTT, NATS, Kafka, SLIM)</strong>: Decoupled producers and
consumers communicate via topics, subjects, or queues. Delivery can be
one-to-one, one-to-many, or many-to-many, with loose coupling, buffering, and
retries. Producers are not inherently blocked by consumers.</t>
          </li>
        </ul>
        <t>In practice, agentic applications need both: synchronous tool invocations for
interactivity and asynchronous channels for streaming output, progress,
coordination, and fan-out/fan-in patterns.</t>
      </section>
      <section anchor="challenges-of-rpc-over-messaging">
        <name>Challenges of RPC over Messaging</name>
        <t>Bridging synchronous RPC semantics with asynchronous messaging infrastructure
introduces several challenges:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Request/Response Correlation</strong>: Messaging systems are inherently decoupled
and do not guarantee a direct response path. Implementing RPC requires
correlating requests and responses, often using unique identifiers and temporary
reply channels.</t>
          </li>
          <li>
            <t><strong>Latency and Ordering</strong>: Messaging layers may introduce variable delivery
latency and do not guarantee strict ordering, which can complicate synchronous
RPC expectations.</t>
          </li>
          <li>
            <t><strong>Error Handling</strong>: Messaging systems may buffer, retry, or drop messages,
making it difficult to propagate errors and timeouts in a way that matches RPC
contracts.</t>
          </li>
          <li>
            <t><strong>Streaming and Multiplexing</strong>: Supporting streaming RPC (e.g., bidirectional
or server/client streaming) over messaging requires careful management of stream
lifecycles, backpressure, and multiplexing multiple logical RPCs over shared
channels.</t>
          </li>
          <li>
            <t><strong>Security and Authorization</strong>: Ensuring that only authorized parties can
invoke or respond to RPCs, and that all messages are authenticated and
encrypted, is more complex in a distributed, group-based messaging environment.</t>
          </li>
        </ul>
        <t>SLIMRPC addresses these challenges with an RPC abstraction over the SLIM
session layer, as described in the following section.</t>
      </section>
      <section anchor="remote-procedure-calls-over-slim-slimrpc">
        <name>Remote Procedure Calls over SLIM (SLIMRPC)</name>
        <t>SLIMRPC is an application-layer RPC facility that uses SLIM sessions as its
transport. It supports the four common RPC patterns: unary, client-streaming,
server-streaming, and bidirectional streaming.</t>
        <section anchor="overview">
          <name>Overview</name>
          <t>Applications define services using Protocol Buffers and invoke their methods
through generated client and server stubs. SLIMRPC security and delivery
properties are those of the underlying SLIM session and its configuration.</t>
        </section>
        <section anchor="key-features">
          <name>Key Features</name>
          <ul spacing="normal">
            <li>
              <t><strong>Streaming RPC Support</strong>: SLIMRPC supports all four RPC patterns, allowing
for flexible data exchange patterns such as real-time data feeds, interactive
sessions, and collaborative workflows.</t>
            </li>
            <li>
              <t><strong>Session Reuse and Multiplexing</strong>: Concurrent RPC calls share a persistent
SLIM session. Each call has a unique RPC ID, allowing the server to dispatch
new calls and route subsequent stream messages to the right handler.</t>
            </li>
            <li>
              <t><strong>Multicast RPC (mRPC)</strong>: A client constructs a group channel with the names
of the servers to call. On the first RPC call, the SLIMRPC channel lazily
creates a multicast session and invites those servers through the SLIM session
layer. The client application acts as the group moderator. The RPC request is
sent after session establishment; invitations are not part of each RPC call.
The request is delivered to the group, and responses are returned with the
source member identified. The response stream completes when all members have
finished; a member error does not prevent other members' responses.</t>
            </li>
            <li>
              <t><strong>Protocol Buffers Integration</strong>: Service definitions and message schemas are
specified using Protocol Buffers, enabling strong typing and interoperability
across languages and platforms.</t>
            </li>
          </ul>
        </section>
        <section anchor="architecture">
          <name>Architecture</name>
          <t>SLIMRPC libraries and generated stubs manage RPC stream lifecycles over SLIM
sessions. Service and method names, the RPC ID, and call direction are carried
as message metadata; the server subscribes to its base SLIM name rather than a
distinct routed name for each method.</t>
        </section>
        <section anchor="benefits-for-agentic-applications">
          <name>Benefits for Agentic Applications</name>
          <t>By providing streaming RPC capabilities, SLIMRPC enables agentic AI applications
and distributed systems to:</t>
          <ul spacing="normal">
            <li>
              <t>Orchestrate complex, multi-step workflows across multiple agents and services.</t>
            </li>
            <li>
              <t>Exchange large or continuous data streams efficiently and securely.</t>
            </li>
            <li>
              <t>Implement interactive, real-time collaboration between distributed components.</t>
            </li>
            <li>
              <t>Simplify integration with existing gRPC-based tools and ecosystems.</t>
            </li>
          </ul>
          <t>SLIMRPC makes it possible to build robust, scalable, and secure agentic
applications that fully leverage the power of SLIM's messaging and group
communication model.</t>
        </section>
        <section anchor="slimrpc-method-dispatch">
          <name>SLIMRPC Method Dispatch</name>
          <t>The server subscribes to its base SLIM name. Each initial RPC message carries
the service name, method name, and a unique RPC ID in metadata. Subsequent
messages in a streaming call carry the RPC ID, which the server uses to dispatch
them to the active handler. Multiple calls therefore share a session without
encoding method-specific names in the SLIM routing name. For multicast calls,
the channel targets a group and responses can be received from multiple
members.</t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>SLIM's security properties depend on deployment configuration. TLS protects a
transport hop when enabled. MLS <xref target="RFC9420"/> <xref target="RFC9750"/>, when enabled for a
session, provides end-to-end protection for application content; intermediate
routing nodes then see only routing metadata and ciphertext. Without MLS,
application content is not protected from routing nodes beyond any transport
encryption in use.</t>
      <t>Link negotiation is required before an inter-node connection processes routed
messages. When peers negotiate header integrity, implementations <bcp14>MUST</bcp14> verify
the integrity field before forwarding or accepting a protected message.
Implementations <bcp14>MUST</bcp14> reject replayed session control messages when replay
protection is enabled. MLS implementations <bcp14>MUST</bcp14> validate KeyPackages and apply
epoch transitions according to <xref target="RFC9420"/>; removed members <bcp14>MUST NOT</bcp14> be able to
decrypt messages sent after their removal.</t>
      <t>When identity binding is enabled, implementations <bcp14>MUST</bcp14> bind a peer's advertised
name to its verified identity. A name ID alone is not an authentication
credential. Implementations that persist session state <bcp14>MUST</bcp14> protect the stored
MLS state and associated credentials against unauthorized access.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</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="RFC9750">
          <front>
            <title>The Messaging Layer Security (MLS) Architecture</title>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="S. Inguva" initials="S." surname="Inguva"/>
            <author fullname="A. Duric" initials="A." surname="Duric"/>
            <date month="April" year="2025"/>
            <abstract>
              <t>The Messaging Layer Security (MLS) protocol (RFC 9420) provides a group key agreement protocol for messaging applications. MLS is designed to protect against eavesdropping, tampering, and message forgery, and to provide forward secrecy (FS) and post-compromise security (PCS).</t>
              <t>This document describes the architecture for using MLS in a general secure group messaging infrastructure and defines the security goals for MLS. It provides guidance on building a group messaging system and discusses security and privacy trade-offs offered by multiple security mechanisms that are part of the MLS protocol (e.g., frequency of public encryption key rotation). The document also provides guidance for parts of the infrastructure that are not standardized by MLS and are instead left to the application.</t>
              <t>While the recommendations of this document are not mandatory to follow in order to interoperate at the protocol level, they affect the overall security guarantees that are achieved by a messaging application. This is especially true in the case of active adversaries that are able to compromise clients, the Delivery Service (DS), or the Authentication Service (AS).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9750"/>
          <seriesInfo name="DOI" value="10.17487/RFC9750"/>
        </reference>
        <reference anchor="RFC6920">
          <front>
            <title>Naming Things with Hashes</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="D. Kutscher" initials="D." surname="Kutscher"/>
            <author fullname="C. Dannewitz" initials="C." surname="Dannewitz"/>
            <author fullname="B. Ohlman" initials="B." surname="Ohlman"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <author fullname="P. Hallam-Baker" initials="P." surname="Hallam-Baker"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>This document defines a set of ways to identify a thing (a digital object in this case) using the output from a hash function. It specifies a new URI scheme for this purpose, a way to map these to HTTP URLs, and binary and human-speakable formats for these names. The various formats are designed to support, but not require, a strong link to the referenced object, such that the referenced object may be authenticated to the same degree as the reference to it. The reason for this work is to standardise current uses of hash outputs in URLs and to support new information-centric applications and other uses of hash outputs in protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6920"/>
          <seriesInfo name="DOI" value="10.17487/RFC6920"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SLIMRPC" target="https://docs.agntcy.org/slim/slim-rpc/">
          <front>
            <title>SLIMRPC Reference</title>
            <author initials="" surname="AGNTCY" fullname="AGNTCY">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="DID-Key" target="https://w3c-ccg.github.io/did-method-key/">
          <front>
            <title>The did:key Method v0.7: A DID Method for Static Cryptographic Keys</title>
            <author initials="W. C. C." surname="Group" fullname="W3C Credentials Community Group">
              <organization/>
            </author>
            <date year="2025" month="March" day="26"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9Vc63Ibx5X+30/RK/0IKQOQJTtOTGWTpSg7ZoWUGJEpx7u1
KTUGDaCjwcxkeoYUfEnlIfbnbtU+yz5KnmTPrW8AKCu1qa0KyzKJwfTt9Ll8
59I9nU7V4IbanugH17Yae6sv2rvphRlsU231eTPY3lSDu7X60npvVq5Z6aPr
i/PL4wfKzOe9vYWWZmWbYeprt3mgKmi6avvtiXbNslVq0VaN2UD/i94sh+mm
8/OpWTVDtaUG048/UX6cb5z3rm2GbWex4cJ2Fv7XDKoZN3Pbn6gFdHuin378
9LPpkyfTj5+qqm28bfzoT/TS1N4qmMgn6qE2vTUn8Puu7d+u+nbsTmAVsT99
HcdSb+0WXlqcKD3Vp+f0f1yHq+TTWbvZjI2DBcHbHp+8tqYe3MYqZcZh3cK0
1FRp+FmOdc2rvBgroy9HX5ne2bpu6eu2X5nGfUsdnegz5yt+bjfG1Se6HjfU
4F8q/GZWtZu9bi9dtba11VemM7Vr3Id0u3FVh6+/r1sz9q2+Nv3C9OaD+vT8
btbnXqfXZqOf22HwH9KhN7C/8G7eITJOvzHIdbA5Grnt9dXZCTWLzMoPYUuW
tgdetQ/o67Avmn6mmmd0+uuXN2ffcHvTr+xwotfD0PmTx4+BPf2M+XEGU32M
PEn/m/Zd9RiavDh/Mf2N3Zaj36ytXrjFCbAQyAUMudC3H89+BiPh++ERrEJf
DwY56qzfdkO76k23hk/Qn+f5Rrb+KQjC9Oln71nE15+cQTcWudgBwwf2HLb6
18jmB1d390k1rarVbOWG9TifufYxzHq6oelNYfKP1XQ61WbuB5RypW7Wzmsg
ybhBWfGdrdzSWa8HWO+HqgfF6mGije76dmirttYL692qsQs9tNqPXdf2gwY5
racoTSDvqZvTc226rg5Sp82gQDRqOyM2wB5vHfQGnSNVprDyAbrdRN0EBIVx
a9NYbZqF9pZkXddma3vcEEW6Ks7Mw3SqtTZenz49pRaXZ1czTfubegLZ7JEM
V2E9z8clsJ1XPC58095C90BFazY4ixWyJgz71c3N1eOnIAP6azu/bqu3dpjo
u7UDSUaSFrNTcW1dCxSZDu2U/qBZkSbTVa6RJvCxWbrV2Js59Nfb2tEfC/gD
ZrOdKGzYdviuqTXoP+wSfsGfFbIjjjx6nO7lxbXQFxirhR6WroF5gKJ5qxvQ
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

-->

</rfc>
