<?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.3.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-capobianco-ncfed-00" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="NCFED">The NetClaw-to-NetClaw Federation Protocol (NCFED)</title>
    <seriesInfo name="Internet-Draft" value="draft-capobianco-ncfed-00"/>
    <author fullname="John Capobianco">
      <organization>Automate Your Network</organization>
      <address>
        <email>ptcapo@gmail.com</email>
        <uri>https://automateyournetwork.ca</uri>
      </address>
    </author>
    <author fullname="Nicholas Calcutti">
      <address>
        <email>calcuttin@gmail.com</email>
        <uri>https://nicholascalcutti.substack.com</uri>
      </address>
    </author>
    <author fullname="Byrn Baker">
      <address>
        <email>byrn@byrnbaker.me</email>
        <uri>https://byrnbaker.me</uri>
      </address>
    </author>
    <date year="2026" month="July" day="19"/>
    <keyword>federation</keyword>
    <keyword>ai-agents</keyword>
    <keyword>mcp</keyword>
    <keyword>a2a</keyword>
    <keyword>bgp</keyword>
    <keyword>multiplexing</keyword>
    <abstract>

<t>This document specifies the NetClaw-to-NetClaw Federation Protocol (NCFED), an
implementation-agnostic application-layer protocol that lets independently
operated, heterogeneous AI network-engineering agents ("NCFED peers", or "claws")
discover one another's capabilities, invoke remote tools, and delegate tasks over
long-lived TCP sessions. Although named for its reference instantiation, NCFED is a
wire specification, not an SDK, and federates arbitrary autonomous agent
architectures across distinct administrative boundaries; a peer needs no knowledge
of its counterparty's internal reasoning framework, prompt structure, or execution
runtime. NCFED multiplexes its federation
channel with BGP-4 and an associated tunneling data plane on a single listening
port, using first-octet protocol discrimination. Its payload is JSON-RPC 2.0, onto
which Model Context Protocol (MCP) tool-invocation semantics and Agent2Agent (A2A)
task-delegation semantics are mapped. Federation between different trust domains
(eN2N) requires mutual operator consent; within a single operator's trust domain
(iN2N) it is hub-and-spoke, bootstrapped by an enrollment token. For eN2N, the
channel is encrypted with TLS 1.3 and each peer is cryptographically authenticated
by proof of possession of the credential bound to its identity, under either a
domain-verified (publicly certified) or a pinned (trust-on-first-use) model. For
iN2N, members and the Border mutually authenticate at the application layer with
pinned credentials and a hub attestation, and TLS may additionally protect the
transport. NCFED does not replace MCP or A2A; it is a cross-operator federation,
identity, and transport layer beneath them. This
document describes the protocol as implemented in the open-source NetClaw project
and is published as Experimental to enable interoperability and public review.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://github.com/automateyournetwork/netclaw"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-capobianco-ncfed/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/automateyournetwork/netclaw"/>.</t>
    </note>
  </front>
  <middle>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Large-language-model agents that operate network infrastructure are increasingly
deployed as long-running services with tool access to routers, controllers, and
network sources of truth. When two such agents are operated by different parties,
there is value in letting them cooperate: one agent may hold capabilities, data, or
vantage points the other lacks. When one operator runs many narrowly scoped agents,
there is equal value in coordinating them behind a single point of contact.</t>
      <t>NCFED addresses both cases with one wire protocol. It provides:</t>
      <ol spacing="normal" type="1"><li>
          <t>First-octet protocol discrimination so that NCFED, BGP-4 <xref target="RFC4271"/>, and an
associated data-plane tunnel (NCTUN, out of scope here) can share a single TCP
listening port (<xref target="discrimination"/>).</t>
        </li>
        <li>
          <t>A compact federation handshake that identifies each peer by an Autonomous System
number and a router identifier, reusing operational identities already familiar
from BGP deployments (<xref target="handshake"/>).</t>
        </li>
        <li>
          <t>A minimal length-prefixed message framing with a continuation flag and a
zero-length-frame heartbeat (<xref target="framing"/>, <xref target="heartbeat"/>).</t>
        </li>
        <li>
          <t>A semantic layer in which capability inventory, remote tool calls (MCP <xref target="MCP"/>),
and task delegation (A2A <xref target="A2A"/>) are expressed as JSON-RPC 2.0 <xref target="JSONRPC"/>
messages (<xref target="semantics"/>).</t>
        </li>
        <li>
          <t>In-band version and capability negotiation (<xref target="negotiation"/>).</t>
        </li>
        <li>
          <t>Two trust-establishment models (<xref target="trust"/>): mutual operator consent (eN2N) and
enrollment-token + TOFU pinning (iN2N).</t>
        </li>
      </ol>
      <t>NCFED is complementary to, not competing with, MCP and A2A: it is the
cross-operator federation/identity/transport layer onto which their tool-invocation
and task-delegation semantics are mapped (<xref target="semantics"/>). NCFED does not tunnel
either protocol's native transport messages unmodified.</t>
      <section anchor="applicability">
        <name>Motivation and Applicability</name>
        <t>The motivating deployment is a small mesh of independently operated NetClaws. Three
operators each run a lab and automation stack; their agents are already BGP-mesh
peered and can see one another, but could not, before NCFED, discover or use one
another's capabilities. Separately, a single operator may decompose one monolithic
agent (carrying on the order of a hundred skills) into a <strong>risk</strong>: a group of
narrowly focused member agents fronted by a single Border agent that routes requests
to them. (The Border is one member of the risk, not the risk itself.)</t>
        <t>NCFED assumes <strong>long-lived sessions between a small number of mutually known
peers</strong>, established deliberately by their operators. It is <strong>not</strong> designed for
anonymous, open, or large-scale federation, and it does not attempt spam
resistance, discovery of unknown peers, or public key infrastructure. These
assumptions shape the trust models (<xref target="trust"/>) and the Security Considerations
(<xref target="seccons"/>): the design combines explicit operator consent with cryptographic
peer authentication (<xref target="channel-sec"/>), under either publicly certified domain
identity or pinned credentials depending on the deployment model.</t>
      </section>
      <section anchor="status-of-this-protocol-description">
        <name>Status of this Protocol Description</name>
        <t>This is an individual submission, published as <strong>Experimental</strong>. The authors seek
adoption of this work by an IETF Working Group addressing agent-to-agent and
agent-to-tool communication (e.g., the effort emerging from the <tt>agentproto</tt> Birds-
of-a-Feather), with the goal of a future Standards-Track document. This document
asserts no IETF consensus. The technical content is category-neutral and may be
re-targeted without change if adopted.</t>
      </section>
    </section>
    <section anchor="terminology">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used:</t>
      <dl>
        <dt>NCFED peer (or "claw"):</dt>
        <dd>
          <t>Any long-running, autonomous AI agent process that implements the NCFED state
machine and exposes network-engineering capabilities over JSON-RPC. The term is
implementation-agnostic: distinct agent architectures (for example, the NetClaw
reference implementation, the independently developed Hermes agent, OpenClaw, or
a proprietary vendor framework) are all NCFED peers when they speak this
protocol. "NetClaw" refers specifically to the reference implementation
(<xref target="impl-status"/>); "claw" is used generically for any peer.</t>
        </dd>
        <dt>Risk:</dt>
        <dd>
          <t>A named, logical cluster of NCFED peers under a single operator's administrative
control, coordinated by a Border. The members of a risk <bcp14>MAY</bcp14> run entirely
different agent engines. ("A risk" is the collective noun for lobsters, the
reference project's mascot.)</t>
        </dd>
        <dt>Border:</dt>
        <dd>
          <t>The single NCFED peer in a risk that terminates external communication, routes
requests to members, and holds the risk's external identity.</t>
        </dd>
        <dt>Member:</dt>
        <dd>
          <t>A narrowly scoped NCFED peer within a risk that dials outbound to its Border and
accepts delegated work only over that channel.</t>
        </dd>
        <dt>eN2N (external federation):</dt>
        <dd>
          <t>Federation between claws in different trust domains (different operators),
established by mutual consent.</t>
        </dd>
        <dt>iN2N (internal federation):</dt>
        <dd>
          <t>Federation between a Border and its members within one trust domain, established
by an enrollment token and TOFU key pinning.</t>
        </dd>
        <dt>Peer AS / Router-ID:</dt>
        <dd>
          <t>The 4-octet Autonomous System number and 4-octet router identifier presented in
the NCFED handshake. They <bcp14>MAY</bcp14> coincide with BGP identifiers but are not required
to; they are assigned by operator convention.</t>
        </dd>
      </dl>
    </section>
    <section anchor="protocol-stack-overview">
      <name>Protocol Stack Overview</name>
      <t>The NCFED stack is layered as shown in <xref target="fig-stack"/>.</t>
      <figure anchor="fig-stack">
        <name>NCFED protocol stack</name>
        <artwork><![CDATA[
+---------------------------------------------------------------+
| Application semantics (NCFED payload)                         |
|   MCP:  n2n/tools/call                                        |
|   A2A:  capability card, n2n/tasks/{submit,status,result,...} |
+---------------------------------------------------------------+
| Encoding: UTF-8 JSON-RPC 2.0                                  |
+---------------------------------------------------------------+
| Framing:  <4-octet BE length><1-octet flags><payload>        |
|           flags bit0 = CONTINUATION; length 0 = heartbeat     |
+---------------------------------------------------------------+
| Federation handshake (13 octets):                            |
|   "NCFED" + <4-octet AS> + <4-octet router-id (IPv4)>        |
+---------------------------------------------------------------+
| Discrimination on the shared listen port:                    |
|   0xFF          -> BGP-4        (RFC 4271 marker)             |
|   'N' + "CFED"  -> NCFED (this document)                     |
|   'N' + "CTUN"  -> NCTUN data plane (out of scope)           |
+---------------------------------------------------------------+
| TCP  /  IP                                                    |
+---------------------------------------------------------------+
]]></artwork>
      </figure>
      <t>iN2N (<xref target="trust-in2n"/>) reuses the same framing and JSON-RPC layers over a separate,
member-initiated transport with its own preamble instead of the shared-port
discrimination.</t>
    </section>
    <section anchor="discrimination">
      <name>Protocol Discrimination</name>
      <t>An NCFED node listens on a single configured TCP port. (In the reference deployment
this is the operator's BGP/mesh port; NCFED defines no fixed well-known port -- see
<xref target="iana"/>.) The peer that opened the TCP connection is the <strong>initiator</strong> and <bcp14>MUST</bcp14> send
its protocol preamble (the 0xFF BGP marker, or the 5-octet 'N' magic of
<xref target="handshake"/>) immediately upon connection establishment; the peer that accepted the
connection is the <strong>acceptor</strong> and reads it. On accepting a connection, the acceptor
reads the first octet. It <bcp14>MUST</bcp14> close the connection if the first octet is not
received within 30 seconds.</t>
      <ul spacing="normal">
        <li>
          <t>If the first octet is 0xFF, the connection is a BGP-4 session and is handed to the
BGP engine. (A BGP message header begins with a 16-octet marker of all ones
<xref target="RFC4271"/>.) An implementation that consumes the first octet in order to
discriminate <bcp14>MUST</bcp14> make it available to the BGP engine again (for example, by
re-prepending it to the byte stream), because a BGP parser expects to read the
16-octet marker from the first octet of the stream. The reference implementation
reads one octet and, for a BGP connection, replays it ahead of the remainder of
the stream before handing the session to its BGP engine.</t>
        </li>
        <li>
          <t>If the first octet is 0x4E ('N'), the node reads the following 4 octets. It <bcp14>MUST</bcp14>
close the connection if those 4 octets are not received within 10 seconds. The
resulting 5-octet magic selects the protocol:  </t>
          <ul spacing="normal">
            <li>
              <t>"NCFED" (0x4E 0x43 0x46 0x45 0x44): the connection proceeds as an NCFED
federation channel (<xref target="handshake"/>).</t>
            </li>
            <li>
              <t>"NCTUN" (0x4E 0x43 0x54 0x55 0x4E): the connection proceeds as an NCTUN
data-plane channel. NCTUN is out of scope for this document.</t>
            </li>
            <li>
              <t>Any other 5-octet value: the node <bcp14>MUST</bcp14> close the connection.</t>
            </li>
          </ul>
        </li>
        <li>
          <t>Any other first octet: the node <bcp14>MUST</bcp14> close the connection without a response.</t>
        </li>
      </ul>
      <t>This first-octet discrimination is deliberately simpler than, and distinct from,
TLS ALPN <xref target="RFC7301"/>, which negotiates at the TLS layer; NCFED discriminates in
cleartext at the start of the TCP byte stream. It follows that NCFED does <strong>not</strong>
perform a TLS handshake on the shared port: the first octet of a TLS ClientHello
record is 0x16 (the TLS "handshake" content type), which is not a recognized
discriminator value, so a direct TLS connection to the shared port is closed like
any other unrecognized preamble. NCFED therefore never begins with a TLS ClientHello;
instead, once the NCFED preamble is recognized, the channel is upgraded to TLS in place
after the handshake ("STARTTLS"-style; see <xref target="channel-sec"/>), which keeps the shared port
and its discrimination unchanged. <xref target="seccons"/> discusses the security consequences of
sharing a port with BGP.</t>
      <t>The shared port is a deployment constraint, not an aesthetic preference: the
reference deployments reach one another through single-port tunnel forwarders (and
the equivalent NAT and firewall pinholes), where every additional listening port is
an additional tunnel endpoint, credential, and access-control exception to
provision, advertise after every address rotation, and keep consistent across
operators. Multiplexing NCFED and its data plane onto the port the BGP mesh
already uses lets one pinhole -- and one endpoint re-announcement (<xref target="operational"/>)
-- carry all three protocols. The discrimination layer is internal to the NCFED
daemon, <strong>which embeds its own BGP engine</strong>; this document does <em>not</em> propose that
general-purpose BGP implementations adopt first-octet discrimination or accept a
shim in front of TCP port 179. A deployment that peers with a conventional BGP
stack on its own port simply runs NCFED on a separate configured port, where the
discrimination step degenerates to validating the NCFED preamble.</t>
    </section>
    <section anchor="handshake">
      <name>Federation Handshake</name>
      <t>Immediately after the "NCFED" magic, the initiating peer sends 8 further octets: a
4-octet Autonomous System number followed by a 4-octet router identifier (a packed
IPv4 address). With the magic, the complete handshake is 13 octets, as shown in
<xref target="fig-handshake"/>.</t>
      <figure anchor="fig-handshake">
        <name>NCFED federation handshake (13 octets)</name>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      'N'      |      'C'      |      'F'      |      'E'      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      'D'      |     Autonomous System Number (bits 0..23)     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  AS (24..31)  |        Router-ID (IPv4) (bits 0..23)         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Router-ID24..31|
+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <t>The Autonomous System number is an unsigned 32-bit integer in network byte order
(big-endian). The router identifier is a 4-octet packed IPv4 address. All
multi-octet fields in NCFED are network byte order.</t>
      <t>The initiator (the peer that opened the connection; see <xref target="discrimination"/>) sends its
13-octet handshake immediately. If the acceptor admits the connection, it replies with
its own 13-octet handshake -- the "NCFED" magic followed by the acceptor's AS and
router-id -- immediately followed by a 32-octet <strong>possession challenge</strong> (a random
nonce; see <xref target="channel-sec"/>). The initiator <bcp14>MUST</bcp14> verify that the reply begins with the
"NCFED" magic and that the AS/router-id identify the peer it expected, and <bcp14>MUST</bcp14> close
the connection otherwise. The handshake is therefore a request/reply exchange in which
each side presents its claimed identity to the other at the binary layer, and the
acceptor additionally issues the nonce the initiator must sign to prove that identity.
Mutual capability exchange and the remainder of session establishment then proceed at
the JSON-RPC layer via <tt>n2n/hello</tt> (<xref target="semantics"/>, <xref target="negotiation"/>), which the
initiator sends first, carrying its certificate and a signature over the nonce
(<xref target="channel-sec"/>). The peer identity used throughout this document is the string
<tt>as&lt;AS&gt;-&lt;router-id&gt;</tt> (for example, <tt>as65001-192.0.2.1</tt>).</t>
      <t>An acceptor that has not recorded a local consent grant for the claimed identity
(<xref target="trust-en2n"/>) <bcp14>MUST</bcp14> close the connection without issuing a nonce, and <bcp14>SHOULD</bcp14> close
it without sending its handshake reply at all, so that a peer the operator has never
consented to obtains no channel and learns nothing about the acceptor's identity.
(The reference implementation closes with zero bytes returned.) When the channel is
encrypted (<xref target="channel-sec"/>), the TLS upgrade occurs between the handshake reply and
the nonce, so the nonce and all subsequent traffic are protected.</t>
      <t>To avoid a simultaneous-open ambiguity (both peers dialing at once), NCFED designates
a deterministic initiator: peers are ordered by the tuple (AS number, router-id),
comparing AS numbers numerically and, if they are equal, comparing router-ids as
unsigned 32-bit integers in network byte order. The endpoint with the numerically
lower tuple opens the channel; the other only accepts. (For example, (65001,
192.0.2.1) orders before (65001, 192.0.2.2).) Two peers <bcp14>MUST NOT</bcp14> share both an AS
number and a router-id. An explicit re-dial replaces any existing channel to the
same peer identity.</t>
      <t>The claimed AS/router-id in the handshake octets themselves is not self-authenticating;
it is authenticated by the possession proof that follows in <tt>n2n/hello</tt>, and (for a
domain-verified peer) by the certificate presented on the encrypted channel. The
complete authentication mechanism, its two trust models, and the admission tiers are
specified in <xref target="channel-sec"/>; the residual properties are analyzed in
<xref target="seccons-peer-auth"/>.</t>
      <t>There is no version octet in the handshake; versioning is negotiated in-band
(<xref target="negotiation"/>). Appending a version octet immediately after the magic is <strong>not</strong> a
safe way to signal a future incompatible change, because that octet position is
currently the most significant octet of the AS number and cannot be repurposed
without ambiguity for already-deployed peers. It is therefore <bcp14>RECOMMENDED</bcp14> that any
future incompatible change be negotiated in-band (<xref target="negotiation"/>), or be introduced
only in a form that a legacy peer rejects cleanly rather than misparses.</t>
      <t>The 32-octet possession challenge appended to the acceptor's reply is
such an incompatible change. The nonce is <em>not</em> part of the 13-octet binary
handshake itself: it appears <strong>after</strong> the acceptor's 13-octet handshake, so
a peer implementing an earlier iteration of the protocol (which reads only 13 octets and sends
<tt>n2n/hello</tt> without a signature) does not interoperate with a peer implementing this
document. This is intentional -- the secured channel (<xref target="channel-sec"/>) is a prerequisite
for external federation -- and it is a coordinated upgrade rather than a
silent wire change: an acceptor implementing this document admits an unauthenticated
peer only at the restricted tier described in <xref target="channel-sec"/>, and refuses it outright
when operating in enforcing mode.</t>
    </section>
    <section anchor="channel-sec">
      <name>Channel Security</name>
      <t>NCFED makes its channel encrypted and its peer cryptographically
authenticated. Two properties are established before any semantic payload
(<xref target="semantics"/>) is exchanged: the transport is confidential and integrity-protected,
and each peer proves possession of the credential bound to its claimed identity. This
closes the peer-impersonation exposure present in earlier iterations of the protocol
(<xref target="seccons-peer-auth"/>).</t>
      <section anchor="channel-sec-tls">
        <name>Transport encryption</name>
        <t>After the binary handshake (<xref target="handshake"/>) and before the possession challenge, the
connection is upgraded in place to TLS 1.3 <xref target="RFC9846"/> (a "STARTTLS"-style upgrade on
the already-open connection, so the shared discrimination port of <xref target="discrimination"/>
is preserved and no additional listener or tunnel is required). The acceptor acts as
the TLS server and presents its certificate; the initiator acts as the TLS client and
verifies that certificate according to the peer's trust model
(<xref target="channel-sec-models"/>). The possession challenge nonce and all subsequent frames are
carried inside this TLS session.</t>
        <t>A deployment <bcp14>MAY</bcp14> operate a channel in cleartext for a private, controlled environment
(for example, a loopback lab). An implementation <bcp14>MUST</bcp14> treat cleartext operation as an
explicit, operator-selected mode and <bcp14>MUST NOT</bcp14> negotiate down to it at a remote peer's
request; in enforcing mode (<xref target="channel-sec-tiers"/>) cleartext channels are refused.</t>
      </section>
      <section anchor="channel-sec-models">
        <name>Trust models</name>
        <t>Each peer is authenticated under one of two per-peer trust models, recorded locally:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Domain-verified.</strong> The peer's identity is additionally bound to a DNS name its
operator controls (its "claw domain"). The operator obtains a publicly trusted
certificate for that name using ACME <xref target="RFC8555"/> with the DNS-01 challenge, which
requires no inbound reachability and therefore works behind a dynamic tunnel or NAT.
The verifying peer validates the certification path <xref target="RFC5280"/> and checks that the
certificate identifies the expected claw domain <xref target="RFC9525"/>. Identity binds to the
DNS name, <strong>not</strong> to the transport endpoint, which <bcp14>MAY</bcp14> change freely. The local
consent record (<xref target="trust-en2n"/>) <bcp14>MUST</bcp14> bind the expected NCFED identity
(AS/router-id) to the expected claw domain, and the verifying peer <bcp14>MUST</bcp14> check the
presented certificate against the claw domain recorded for <strong>that</strong> identity:
successful validation of a certificate for some other domain, however publicly
trusted, <bcp14>MUST NOT</bcp14> authorize its holder to assert this NCFED identity.</t>
          </li>
          <li>
            <t><strong>Pinned.</strong> A peer without a domain presents a self-signed certificate
<xref target="RFC5280"/> (ECDSA P-256 / SHA-256, as in <xref target="trust-in2n"/>). Its key is pinned on
first federation after the out-of-band consent of <xref target="trust-en2n"/> (trust on first
use); the pinned value is the SHA-256 of the certificate's SubjectPublicKeyInfo, so
the pin survives certificate rotation with the same key. A later connection under
the same identity presenting a different key <bcp14>MUST</bcp14> be refused and flagged to the
operator, and <bcp14>MUST NOT</bcp14> be silently re-pinned (<xref target="seccons-tofu"/>).</t>
          </li>
        </ul>
        <t>The trust model governs the credential a peer presents in the <strong>acceptor
(listener) role</strong>: when a peer is dialed, it presents either a domain-verified or a
pinned server certificate, and the dialer authenticates it accordingly during the
TLS handshake (<xref target="channel-sec-tls"/>). In the <strong>initiator (dialer) role</strong> a peer
authenticates itself at the application layer by proving possession of a self-signed
identity key (<xref target="channel-sec-pop"/>), which the acceptor pins on first contact (TOFU);
the initiator does not present a domain-verified certificate in this direction, and
in the reference implementation the possession proof is always over the self-signed
identity key regardless of the peer's acceptor-role trust model. Because the
deterministic-initiator rule (<xref target="handshake"/>) assigns the two roles per peer pair,
each identity is domain-validated in the direction where it is dialed and pinned in
the direction where it dials. Authentication is therefore mutual on every encrypted
channel, but the mechanism is asymmetric by role; a deployment that requires a
peer's identity to be domain-anchored in both directions cannot rely on the
initiator-role possession proof for that and <bcp14>SHOULD</bcp14> constrain the domain-verified
peer to the acceptor role (i.e., assign it the higher-or-equal (AS, router-id)
tuple).</t>
      </section>
      <section anchor="channel-sec-pop">
        <name>Proof of possession</name>
        <t>Identity is proven by possession of the private key for the certificate a peer
presents, over the acceptor's per-connection nonce:</t>
        <ol spacing="normal" type="1"><li>
            <t>The acceptor issues a fresh 32-octet random nonce (in the handshake reply, or, on an
encrypted channel, immediately after the TLS upgrade; see <xref target="handshake"/>).</t>
          </li>
          <li>
            <t>The initiator's <tt>n2n/hello</tt> carries its certificate and an ECDSA (P-256, SHA-256)
signature over that nonce. The acceptor verifies the signature against the public
key in the presented certificate; a certificate the caller cannot sign for is an
active forgery and <bcp14>MUST</bcp14> be rejected with the channel closed.</t>
          </li>
          <li>
            <t>On an encrypted channel the signed value is <tt>nonce || B</tt>, where <tt>B</tt> is the
tls-server-end-point channel binding <xref target="RFC5929"/>: the SHA-256 of the acceptor's
certificate. <tt>B</tt> is an <em>endpoint</em> binding, not a per-connection value -- the same
certificate yields the same <tt>B</tt> across every connection that presents it -- so
<tt>B</tt> alone does not make a proof session-unique. Replay and relay resistance come
instead from the nonce: it is fresh, single-use, and -- on an encrypted channel --
delivered confidentially under the acceptor's server certificate, which the
initiator has already verified under its trust model. An initiator therefore signs
only a nonce it received over a TLS session to the acceptor it authenticated, so a
proof cannot be relayed to a different acceptor (whose certificate the relay
cannot present); <tt>B</tt> adds defence in depth by additionally binding the proof to
the acceptor's certificate. A future revision <bcp14>SHOULD</bcp14> adopt the <xref target="RFC9266"/>
              <tt>tls-exporter</tt> binding, which <em>is</em> per-connection, once the implementation's TLS
stack exposes it (the reference deployment's Python <tt>ssl</tt> module does not through
3.14; see <xref target="impl-status"/>). On a cleartext channel <tt>B</tt> is empty, the proof is over
the nonce alone, and it does not authenticate the acceptor to the initiator --
such a channel <bcp14>MUST NOT</bcp14> be described as mutually authenticated.</t>
          </li>
        </ol>
        <t>The acceptor authenticates the initiator by this proof; the initiator authenticates the
acceptor by verifying the acceptor's certificate during the TLS handshake
(<xref target="channel-sec-tls"/>). Authentication is therefore mutual on an encrypted channel.</t>
      </section>
      <section anchor="channel-sec-tiers">
        <name>Admission tiers</name>
        <t>To let a set of already-consented peers upgrade without a flag-cut outage, an acceptor
admits a <strong>consented</strong> peer at one of two tiers, and refuses a non-consented one
outright:</t>
        <ul spacing="normal">
          <li>
            <t><strong>possession</strong> (full): the peer proved possession of a key (and, if pinned, matched
its pin). It receives the full method surface subject to the per-peer authorization
of <xref target="trust-en2n"/>.</t>
          </li>
          <li>
            <t><strong>self-asserted</strong> (restricted): the peer is consented but presented no certificate.
It is admitted for presence and capability-card exchange (<xref target="cards"/>) only. Tool
invocation, task delegation (<xref target="semantics"/>), chat, and endpoint update
(<xref target="operational"/>) <bcp14>MUST</bcp14> be denied at this tier.</t>
          </li>
          <li>
            <t>A peer for which no local consent exists is closed before a nonce is issued
(<xref target="handshake"/>); it obtains no channel, not even the restricted tier.</t>
          </li>
        </ul>
        <t>An acceptor operating in <strong>enforcing</strong> mode admits only the possession tier and refuses
a self-asserted peer, making a certificate a hard prerequisite for federation. A
restricted-tier inbound session <bcp14>MUST NOT</bcp14> displace an established possession-tier channel
for the same identity.</t>
        <t>Certificates are rotated automatically before expiry. A successor credential is
distributed over the existing authenticated channel before the predecessor expires, and
both are accepted during a bounded overlap, so rotation does not drop a channel; for
domain-verified peers the successor is validated by its certification path with no
distribution step.</t>
      </section>
    </section>
    <section anchor="framing">
      <name>Message Framing</name>
      <t>After a successful handshake, all traffic on the channel consists of frames, shown
in <xref target="fig-frame"/>.</t>
      <figure anchor="fig-frame">
        <name>NCFED frame</name>
        <artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              Length (payload octets, unsigned, BE)            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Flags     |            Payload (Length octets) ...        |
+-+-+-+-+-+-+-+-+                                               +
|                              ...                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
      </figure>
      <dl>
        <dt>Length:</dt>
        <dd>
          <t>Unsigned 32-bit integer, network byte order, counting the payload octets only.
A payload <bcp14>MUST NOT</bcp14> exceed 65536 octets (64 KiB). A larger message <bcp14>MUST</bcp14> be split
across multiple frames using the CONTINUATION flag. A receiver that reads a Length
greater than 65536 <bcp14>MUST</bcp14> close the connection. The 64 KiB cap keeps a receiver's
per-frame buffer small and predictable while still fitting typical NCFED
messages -- hellos, capability cards, tool calls -- in a single frame;
fragmentation is the exception, for bulk tool output and task results.</t>
        </dd>
        <dt>Flags:</dt>
        <dd>
          <t>One octet. Bit 0 (0x01), CONTINUATION: when set, the payload is a fragment of a
larger message and <bcp14>MUST</bcp14> be concatenated with the payloads of subsequent frames
until a frame is received with CONTINUATION clear. Bits 1 through 7 are RESERVED;
a sender <bcp14>MUST</bcp14> set them to 0 and a receiver <bcp14>MUST</bcp14> ignore them.</t>
        </dd>
      </dl>
      <t>Frames carry no message identifier. Consequently, an endpoint <bcp14>MUST NOT</bcp14> interleave the
frames of different messages: once it sends a frame with CONTINUATION set, every
subsequent frame it sends on that channel <bcp14>MUST</bcp14> be a fragment of the same message
until a frame with CONTINUATION clear terminates the message. Fragments <bcp14>MUST</bcp14> be
transmitted contiguously. A frame with Length 0 and CONTINUATION set is a legal empty
fragment that contributes no octets to reassembly. Because a heartbeat (<xref target="heartbeat"/>)
is a Length-0, CONTINUATION-clear frame, and because reassembly is never in progress
between messages, a heartbeat is sent only between complete messages, never between a
message's fragments; an endpoint <bcp14>MUST NOT</bcp14> emit a heartbeat while a message it is
sending is partially transmitted. A receiver that observes a Length-0,
CONTINUATION-clear frame while a reassembly is in progress <bcp14>MUST</bcp14> treat it as a
protocol error and close the channel.</t>
      <t>A reassembled message is a complete JSON-RPC 2.0 message (<xref target="semantics"/>). Reassembly
is bounded in both size and time: a reassembled message <bcp14>MUST NOT</bcp14> exceed 16 MiB
(16,777,216 octets), and a receiver <bcp14>MUST</bcp14> close the channel when an in-progress
reassembly exceeds that bound or remains incomplete more than 30 seconds after its
first fragment was received. These bounds cap the memory and time a peer can consume
with CONTINUATION frames -- including a drip of the legal zero-length fragments,
each of which also counts as liveness (<xref target="heartbeat"/>); see <xref target="seccons-dos"/>.</t>
    </section>
    <section anchor="heartbeat">
      <name>Heartbeat and Liveness</name>
      <t>A frame with Length 0 and CONTINUATION clear, received when no reassembly is in
progress, is a heartbeat. A heartbeat carries no payload and <bcp14>MUST NOT</bcp14> be delivered to
the application layer; it is sent only between complete messages (<xref target="framing"/>).</t>
      <t>An endpoint <bcp14>SHOULD</bcp14> send a heartbeat frame approximately every 30 seconds (the
heartbeat interval). Any inbound frame, including a heartbeat, is evidence of liveness
and resets the endpoint's missed-interval count for that channel. An endpoint that
receives no inbound frame for 3 consecutive intervals (approximately 90 seconds) <bcp14>MUST</bcp14>
consider the channel dead and close it. These values mirror the BGP keepalive (30 s)
and hold time (90 s) defaults <xref target="RFC4271"/>. On close, an endpoint that initiated the
session <bcp14>SHOULD</bcp14> attempt to re-establish it with bounded backoff.</t>
    </section>
    <section anchor="semantics">
      <name>Semantic Payload</name>
      <t>Reassembled payloads are UTF-8 JSON-RPC 2.0 <xref target="JSONRPC"/> messages (<xref target="RFC8259"/>). A
message carrying a <tt>method</tt> member is a request (if it also carries <tt>id</tt>) or a
notification (if it does not); a message carrying only <tt>id</tt> with <tt>result</tt> or <tt>error</tt>
is a response. Each request carries a unique <tt>id</tt> chosen by the sender, which the
response echoes. Batch requests (JSON-RPC arrays) are not used: an endpoint sends a
single JSON-RPC object per reassembled message. A reassembled message that is not
well-formed UTF-8 JSON is discarded and <bcp14>SHOULD</bcp14> be logged; its receipt does not by
itself require closing the channel. The concrete parameter and result objects for
each method are specified in <xref target="method-ref"/>.</t>
      <t>Because NCFED is implementation-agnostic (<xref target="terminology"/>), its method families are
a normalized wire wrapper over whatever internal representation each peer uses:
disparate agent implementations translate their local tool-execution and
task-delegation strategies into the common MCP and A2A constructs carried here, and
a peer requires no knowledge of its counterparty's reasoning framework to
interoperate. A consequence is a clean separation between <em>protocol</em> errors and
<em>tool</em> errors. The JSON-RPC error codes of <xref target="errors"/> report NCFED-level failures --
federation, authorization, transport, framing. An error <em>inside</em> an invoked tool
(for example, a callee-side input-schema validation failure) is not an NCFED
protocol error: it is returned in the MCP tool-result object as a successful
<tt>n2n/tools/call</tt> response whose result carries the tool's own error indication,
and is relayed verbatim to the calling peer. This lets a foreign peer surface a
remote tool's failure to its operator without either side sharing tool internals,
and keeps the NCFED error space stable regardless of what tools a peer exposes.</t>
      <t>Before federation (eN2N) or trust establishment (iN2N) completes, an endpoint <bcp14>MUST</bcp14>
reject any method other than the handshake method (<tt>n2n/hello</tt> for eN2N;
<tt>in2n/hello</tt> or <tt>in2n/enroll</tt> for iN2N) with the appropriate error (<xref target="errors"/>). On an
eN2N channel the initiator sends <tt>n2n/hello</tt> first.</t>
      <section anchor="method-families">
        <name>Method families</name>
        <dl>
          <dt>n2n/hello:</dt>
          <dd>
            <t>Mutual identity plus the capability descriptor (<xref target="negotiation"/>). The only method
permitted before eN2N federation is established.</t>
          </dd>
          <dt>n2n/inventory, n2n/inventory_get:</dt>
          <dd>
            <t>Push and pull of the capability card (<xref target="cards"/>).</t>
          </dd>
          <dt>n2n/tools/call:</dt>
          <dd>
            <t>MCP-style <xref target="MCP"/> invocation of a named remote tool with JSON arguments, subject
to the callee's per-peer authorization policy.</t>
          </dd>
          <dt>n2n/tasks/submit, n2n/tasks/status, n2n/tasks/result, n2n/tasks/cancel:</dt>
          <dd>
            <t>A2A-style <xref target="A2A"/> asynchronous task delegation and retrieval.</t>
          </dd>
        </dl>
        <t>Additional methods (e.g., claw-to-claw chat) <bcp14>MAY</bcp14> be present; unknown methods are
rejected with METHOD_NOT_FOUND (<xref target="errors"/>).</t>
      </section>
      <section anchor="asynchronous-task-delegation">
        <name>Asynchronous task delegation</name>
        <t>A delegated task progresses through the states:</t>
        <artwork><![CDATA[
submitted --> working --> completed
                     \--> failed
                     \--> cancelled
]]></artwork>
        <t>The callee returns an opaque task identifier from <tt>n2n/tasks/submit</tt>; the caller
retrieves progress and the terminal result via <tt>n2n/tasks/status</tt> and
<tt>n2n/tasks/result</tt>, and <bcp14>MAY</bcp14> request cancellation via <tt>n2n/tasks/cancel</tt>. Task state
persists across channel drops so that results survive reconnection. Task retrieval
is bound to the submitter: the callee <bcp14>MUST</bcp14> verify that the caller of
<tt>n2n/tasks/status</tt>, <tt>n2n/tasks/result</tt>, or <tt>n2n/tasks/cancel</tt> is the authenticated
peer that submitted the task, and <bcp14>MUST</bcp14> answer a request for a task the caller does
not own exactly as it answers a request for a task that does not exist, so that
task identifiers can be neither used nor probed by a third party (see
<xref target="seccons-deleg"/>). This document does not define a retention or garbage-collection
policy for terminal task state, nor idempotency or retry semantics for resubmission.</t>
        <t>Completion signalling is advisory; polled task state is authoritative. Any
notification that a task reached a terminal state is delivered at most once and dies
with the channel that carried it: operational experience with the reference
implementation showed tasks that the callee had completed remaining "submitted" at
the caller indefinitely after the channel between them was re-established, because
nothing re-delivered the terminal state. A caller therefore <bcp14>MUST NOT</bcp14> interpret the
absence of a completion signal as failure (or as any other task state), and <bcp14>SHOULD</bcp14>
reconcile each of its non-terminal outbound tasks via <tt>n2n/tasks/status</tt> after a
channel to that peer or member is re-established. A callee <bcp14>MAY</bcp14> re-announce
unacknowledged terminal states after reconnection; because task state is keyed by
the task identifier and terminal states are immutable, such re-delivery is
idempotent by construction.</t>
      </section>
      <section anchor="errors">
        <name>Error codes</name>
        <t>NCFED uses JSON-RPC error objects. All NCFED application error codes fall within the
JSON-RPC implementation-defined server-error range (-32000 to -32099) <xref target="JSONRPC"/>;
this reuse is intentional and permitted. The following application error codes are
defined for eN2N:</t>
        <table>
          <name>eN2N error codes</name>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-32001</td>
              <td align="left">NOT_ALLOWLISTED</td>
            </tr>
            <tr>
              <td align="left">-32002</td>
              <td align="left">APPROVAL_PENDING</td>
            </tr>
            <tr>
              <td align="left">-32003</td>
              <td align="left">APPROVAL_EXPIRED</td>
            </tr>
            <tr>
              <td align="left">-32004</td>
              <td align="left">BUDGET_EXHAUSTED</td>
            </tr>
            <tr>
              <td align="left">-32005</td>
              <td align="left">RATE_LIMITED</td>
            </tr>
            <tr>
              <td align="left">-32006</td>
              <td align="left">EXECUTION_TIMEOUT</td>
            </tr>
            <tr>
              <td align="left">-32007</td>
              <td align="left">SEVERED</td>
            </tr>
            <tr>
              <td align="left">-32008</td>
              <td align="left">GUARDRAIL_BLOCKED</td>
            </tr>
            <tr>
              <td align="left">-32010</td>
              <td align="left">NOT_FEDERATED</td>
            </tr>
            <tr>
              <td align="left">-32601</td>
              <td align="left">METHOD_NOT_FOUND (JSON-RPC standard)</td>
            </tr>
          </tbody>
        </table>
        <t>The following application error codes are defined for iN2N (<xref target="trust-in2n"/>):</t>
        <table>
          <name>iN2N error codes</name>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Name</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">-32021</td>
              <td align="left">ENROLL_TOKEN_INVALID</td>
            </tr>
            <tr>
              <td align="left">-32022</td>
              <td align="left">MEMBER_ID_TAKEN</td>
            </tr>
            <tr>
              <td align="left">-32023</td>
              <td align="left">MEMBER_NOT_TRUSTED</td>
            </tr>
            <tr>
              <td align="left">-32024</td>
              <td align="left">NOT_A_BORDER</td>
            </tr>
            <tr>
              <td align="left">-32030</td>
              <td align="left">NO_CAPABLE_MEMBER</td>
            </tr>
            <tr>
              <td align="left">-32031</td>
              <td align="left">OUT_OF_SCOPE</td>
            </tr>
          </tbody>
        </table>
        <t>MEMBER_ID_TAKEN (-32022) reports an enrollment whose member identifier is already
pinned to a different key. A key-possession failure at <tt>in2n/hello</tt> or
<tt>in2n/enroll</tt> is reported as MEMBER_NOT_TRUSTED (-32023).</t>
      </section>
    </section>
    <section anchor="negotiation">
      <name>Version Signaling and Capability Advertisement</name>
      <t>NCFED features are advertised in-band at <tt>n2n/hello</tt>, not in the binary handshake.
Each endpoint advertises a capability descriptor:</t>
      <artwork><![CDATA[
{ "proto_version": "053",
  "features": ["async_tasks", "endpoint_reannounce", "negotiate"],
  "agent_invoke": "session-id",
  "reply_shapes": ["finalAssistantVisibleText", "payloads"] }
]]></artwork>
      <t><tt>proto_version</tt> is an opaque label identifying a baseline (for example "052" or
"053"); NCFED performs no ordering comparison on it, and an endpoint does not infer
capability from its value. Capability is instead determined field by field: use of an
optional feature is gated solely by its presence in the peer's <tt>features</tt> array, and
the other descriptor fields (for example <tt>agent_invoke</tt> and <tt>reply_shapes</tt>) let each
side adapt to the other's build. An endpoint that receives no descriptor treats the
peer as the baseline "052" with an empty feature set. This mechanism is therefore
feature advertisement with graceful degradation, not selection of a single common
version: an unrecognized feature name is simply not used, and no failure is defined
for a feature one side requires but the other lacks.</t>
      <t>If a future revision defines a baseline with which an endpoint cannot interoperate,
the endpoint <bcp14>SHOULD</bcp14> reject the peer's <tt>n2n/hello</tt> with JSON-RPC error -32602
(invalid params), carrying a diagnostic message that names the baseline(s) it does
support, and then close the channel. This gives the remote operator a parseable,
attributable failure instead of a silently degraded feature set. The absence of a
descriptor is never an error; it selects the baseline as above.</t>
      <t>Because the binary handshake carries no version indicator, an incompatible change
cannot be signaled below the JSON-RPC layer, and -- as noted in <xref target="handshake"/> -- a
version octet cannot simply be appended to the handshake. It is <bcp14>RECOMMENDED</bcp14> that any
future incompatible change be negotiated in-band through this mechanism. A true
version-negotiation scheme -- selecting a common protocol version and defining
behavior when one side requires a feature the other does not support -- is left to a
future revision (see <xref target="impl-status"/>).</t>
    </section>
    <section anchor="cards">
      <name>Capability Cards</name>
      <t>An endpoint advertises its capabilities in a card exchanged via <tt>n2n/inventory</tt> /
<tt>n2n/inventory_get</tt>. A card contains:</t>
      <ul spacing="normal">
        <li>
          <t><tt>skills</tt> and <tt>mcp_servers</tt>: the capabilities the endpoint is willing to expose to
this peer, after applying the per-peer visibility/authorization policy (not the
endpoint's full local set);</t>
        </li>
        <li>
          <t><tt>badges</tt>: coarse capability tags;</t>
        </li>
        <li>
          <t><tt>posture</tt>: the advertiser's operational security posture, as
<tt>{ "mode", "state", "controls" }</tt> (e.g., mode <tt>production</tt>, state <tt>enforced</tt>, and
the set of active controls);</t>
        </li>
        <li>
          <t><tt>llm</tt>: the advertiser's reasoning-model capability, as
<tt>{ "primary_model", "guarded" }</tt> -- the model family/tier and whether its
input/output is routed through a guardrail.</t>
        </li>
      </ul>
      <t>A card <bcp14>MUST NOT</bcp14> contain secrets, credentials, or per-member topology of a risk. A
Border advertises its own reasoning model and <bcp14>MAY</bcp14> note that members run their own
tiered models, without revealing individual members.</t>
      <t>Even so, because a card enumerates skills, MCP servers, security posture, and
reasoning-model family, it discloses metadata about the advertiser's attack surface.
An endpoint <bcp14>MUST</bcp14> advertise only the subset a given peer is authorized to see, and
operators <bcp14>SHOULD</bcp14> treat card contents as sensitive -- particularly on a cleartext channel
(the optional mode of <xref target="channel-sec-tls"/>) or when exposed to a restricted-tier peer
(<xref target="channel-sec-tiers"/>, <xref target="seccons-priv"/>). A future revision may define a minimized or
integrity-protected card (<xref target="seccons-priv"/>).</t>
    </section>
    <section anchor="trust">
      <name>Trust Establishment</name>
      <section anchor="trust-en2n">
        <name>External federation: eN2N</name>
        <t>Peers in different trust domains federate only after explicit mutual operator
consent. The AS/router-id identity of each peer is confirmed <strong>out of band</strong> (for
example, by the operators exchanging it directly) before consent is granted. Consent
is durable and survives restarts and endpoint (e.g., tunnel address) changes; it is
keyed by the peer identity, not by a network address.</t>
        <t>A peer's federation state is derived from two independent consent bits -- the local
operator's grant and the remote peer's grant -- as shown in <xref target="fig-consent"/>.
Federation requires both. Which "pending" state a peer occupies depends only on which
grant has been recorded so far, not on a fixed order.</t>
        <figure anchor="fig-consent">
          <name>eN2N consent state, derived from the local and remote grants</name>
          <artwork><![CDATA[
                      not_federated
                     (neither grant)
                    /               \
        local grant                  remote grant
             v                           v
   consent_pending_remote       consent_pending_local
   (we granted; await peer)      (peer granted; await us)
                    \               /
                     \  both grants /
                      v            v
                        federated
                            |
                    sever (revoke local grant)
                            v
                        severed
                            |
                 re-consent (grant locally again)
                            v
                      not_federated --> ...
]]></artwork>
        </figure>
        <t>Only <tt>n2n/hello</tt> is accepted before <tt>federated</tt>. Remote tool invocation is
default-deny: a tool call is rejected (NOT_ALLOWLISTED) unless a per-peer grant
authorizes it, and grants <bcp14>MAY</bcp14> carry approval requirements, budgets, and rate limits
(reflected in the error codes of <xref target="errors"/>). Severing revokes the local grant and
drops the channel (the operator kill switch); re-consent restores the local grant,
returning the peer to <tt>not_federated</tt>, from which it may re-federate. As noted in
<xref target="handshake"/>, the numerically lower AS initiates the channel.</t>
        <t>The out-of-band identity confirmation above is the administrative root of trust. At
runtime it is enforced cryptographically: the channel is encrypted and the peer proves
possession of the credential bound to its identity, under the domain-verified or pinned
trust model of <xref target="channel-sec"/>. A consented peer that presents no credential is admitted
only at the restricted tier (<xref target="channel-sec-tiers"/>), which cannot invoke tools, delegate
tasks, chat, or update endpoints; in enforcing mode it is refused entirely. The residual
properties (the first-use pinning window, restricted-tier card exposure) are analyzed in
<xref target="seccons-peer-auth"/> and <xref target="seccons-tofu"/>.</t>
      </section>
      <section anchor="trust-in2n">
        <name>Internal federation: iN2N</name>
        <t>Within a single operator's risk, a member is authenticated by proving possession of
a self-signed key that the Border pinned at enrollment (TOFU), not by BGP identity
or mutual consent. iN2N is hub-and-spoke: a member connects only to its Border, and
a member <bcp14>MUST NOT</bcp14> accept inbound federation connections.</t>
        <t>iN2N uses a <strong>separate</strong> Border listener (not the shared discrimination port of
<xref target="discrimination"/>). The transport preamble is shown in <xref target="fig-in2n-preamble"/>.</t>
        <figure anchor="fig-in2n-preamble">
          <name>iN2N transport preamble</name>
          <artwork><![CDATA[
Border --> Member:  "IN2N1" (5 octets) || nonce (32 octets, random)
Member --> Border:  JSON-RPC  in2n/hello | in2n/enroll
   params: an ECDSA (P-256, SHA-256) signature over the nonce, proving
   the member holds its pinned self-signed key
   ... the standard NCFED framing/JSON-RPC channel then runs ...
]]></artwork>
        </figure>
        <t>The trailing "1" in the "IN2N1" magic is a preamble version digit. The exact JSON
parameters and their encodings -- PEM certificate, hexadecimal DER-encoded ECDSA
signature, and hexadecimal key fingerprint -- are specified in <xref target="method-ref"/>.</t>
        <t>Enrollment and pinning:</t>
        <ol spacing="normal" type="1"><li>
            <t>The Border issues a single-use enrollment token, conveyed to the member out of
band (for example, at install time). The token has the form <tt>in2n_&lt;random&gt;</tt> with
at least 128 bits of entropy; the Border stores only its SHA-256 and <bcp14>MAY</bcp14> set an
expiry.</t>
          </li>
          <li>
            <t>The member generates its own key pair at runtime: ECDSA <xref target="RFC6090"/> on NIST curve
P-256 <xref target="RFC5480"/> with SHA-256 <xref target="RFC6234"/>, in a self-signed X.509 certificate
<xref target="RFC5280"/>.</t>
          </li>
          <li>
            <t>On first contact (<tt>in2n/enroll</tt>) the member presents the token and its
certificate; the Border validates and spends the token and <strong>pins</strong> the member's
key (TOFU). The pinned identity is the SHA-256 of the certificate's
SubjectPublicKeyInfo.</t>
          </li>
          <li>
            <t>On every subsequent connection (<tt>in2n/hello</tt>) the member signs the Border's
32-octet nonce with the pinned key; the Border verifies the signature.</t>
          </li>
        </ol>
        <t>A Border routes a request to the member that owns the capability, selecting
deterministically (most-specific specialist first, then lexicographically by member
identity); if no active member covers the capability it returns NO_CAPABLE_MEMBER,
and a member asked to act beyond its advertised scope returns OUT_OF_SCOPE. Operator
removal of a member unpins its key; a member that fails pinned-key authentication more
than a configurable number of times is automatically quarantined -- its key unpinned --
and must be re-enrolled by the operator to return. The security implications of this
automatic quarantine are discussed in <xref target="seccons-tofu"/>.</t>
        <t>iN2N authentication is mutual. The member proves possession of its pinned key over the
Border's nonce, as above. The Border, in turn, proves it is the legitimate hub for the
risk: the Border operates a risk-local certificate authority <xref target="RFC5280"/>, whose root
the member receives at enrollment (the "trust anchor"), and issues <strong>its own hub
certificate</strong> from that authority. (Member certificates are <strong>not</strong> issued by this
authority; they remain self-signed and pinned, as above.) On each connection the
member includes its own random
nonce in <tt>in2n/hello</tt> or <tt>in2n/enroll</tt>; the Border returns a hub attestation -- its
CA-issued hub certificate and an ECDSA (P-256, SHA-256) signature over the member's
nonce. The member verifies that the hub certificate chains to its enrolled anchor,
names the risk's Border, and signed the nonce, and <bcp14>MUST</bcp14> abort the connection if it does
not. A member enrolled before hub attestation was introduced holds no anchor and continues without hub
verification until it is re-enrolled, so the change is backward compatible within a
risk.</t>
        <t>The iN2N socket <bcp14>MAY</bcp14> additionally be wrapped in TLS <xref target="RFC9846"/> for members reached
across an untrusted network, providing confidentiality that complements the
application-layer mutual authentication above.</t>
      </section>
    </section>
    <section anchor="operational">
      <name>Operational Considerations</name>
      <ul spacing="normal">
        <li>
          <t>Lifecycle: severing is an operator action that revokes the local consent grant and
drops the NCFED channel (<xref target="trust-en2n"/>); there is no dedicated peer-to-peer sever
message. A severed peer is reachable again only after the operator re-consents.</t>
        </li>
        <li>
          <t>Hybrid runtime: a Border keeps a hot set of members connected and cold-starts
others on demand, idling them out when quiet. Cold start appears on the wire only
as connection-establishment latency.</t>
        </li>
        <li>
          <t>Least privilege: each member is provisioned with only the secrets its integration
requires; compromise of one member does not expose another's credentials.</t>
        </li>
        <li>
          <t>A standalone claw is a degenerate risk of one that is its own Border; no protocol
change is required for that case.</t>
        </li>
        <li>
          <t>Endpoint mobility: peers reached over ephemeral transports (tunnels whose public
address rotates) change address routinely. An implementation <bcp14>SHOULD</bcp14> persist the
most recently <em>successfully authenticated</em> endpoint for each peer and use it for
automatic reconnection, and <bcp14>SHOULD NOT</bcp14> overwrite a known-good stored endpoint on a
failed dial attempt.</t>
        </li>
      </ul>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <section anchor="seccons-port">
        <name>Sharing a listening port with BGP</name>
        <t>Because NCFED, BGP-4, and NCTUN share a TCP listening port (<xref target="discrimination"/>), the
NCFED discrimination and handshake parsers are reachable by any host that can reach
the BGP port. Operators <bcp14>SHOULD</bcp14> protect the shared port with the same controls they
apply to BGP peers -- for example, access-control lists restricting the permitted
source addresses, connection rate limiting applied before discrimination, and,
where the deployment allows, the Generalized TTL Security Mechanism <xref target="RFC5082"/>.
Implementations <bcp14>MUST</bcp14> enforce the discrimination read timeouts
(<xref target="discrimination"/>: 30 s for the first octet, 10 s for the magic) and close on any
malformed or unexpected preamble, to limit resource consumption by connections that
stall before discrimination.</t>
        <t>Although the in-place TLS upgrade of <xref target="channel-sec-tls"/> is "STARTTLS"-style in
mechanics, it does not inherit the classic STARTTLS stripping weakness: there is no
cleartext upgrade command or capability offer on the wire for an active attacker to
strip. Discrimination is positional -- the first octets of the TCP stream select
the protocol -- and whether a given channel is then encrypted is decided by each
endpoint's local, per-peer configuration (<xref target="channel-sec-tls"/>), never by an in-band
offer from the remote peer. A peer therefore cannot induce cleartext operation:
cleartext exists only as an explicit local operator mode, and an acceptor in
enforcing mode (<xref target="channel-sec-tiers"/>) refuses a cleartext channel outright. An
attacker who tampers with the cleartext preamble octets can only change which
protocol engine receives the stream or which identity is claimed; the claimed
identity is then still subject to the certificate verification and possession
proof of <xref target="channel-sec"/>, which the attacker cannot satisfy.</t>
        <t>The co-resident BGP-4 mesh session itself is not protected by NCFED's channel
security: after discrimination selects BGP, the mesh session proceeds as cleartext
BGP and, on an untrusted path, its confidentiality currently depends on whatever
encryption the underlay or tunnel transport provides -- which is incidental, not
guaranteed by this protocol. Bringing the mesh session under the same
post-identification TLS upgrade that NCFED channels use (<xref target="channel-sec-tls"/>) is
defined in the reference implementation's roadmap but is staged and optional at the
time of this writing; deployments that require mesh confidentiality on untrusted
legs <bcp14>MUST</bcp14> provide it at the transport layer until then.</t>
      </section>
      <section anchor="seccons-peer-auth">
        <name>Peer authentication</name>
        <t>NCFED cryptographically authenticates a peer (<xref target="channel-sec"/>). An eN2N peer proves
possession of the private key for the certificate bound to its identity, over a fresh
single-use nonce, on an encrypted channel whose server certificate the initiator has
verified (by certification path and name for a domain-verified peer <xref target="RFC5280"/>
          <xref target="RFC9525"/>, or by pinned key for a self-signed one). A host that merely knows a peer's
AS/router-id can no longer impersonate it: presenting the identity without the key
fails the possession check and the channel is closed, and a consented peer that
presents no key is confined to the restricted tier (<xref target="channel-sec-tiers"/>), which
exposes no invocation, delegation, chat, or endpoint-update surface. iN2N is mutually
authenticated: the member proves possession of its pinned key, and the Border proves,
by an attestation chaining to the member's enrolled trust anchor, that it is the
legitimate hub (<xref target="trust-in2n"/>).</t>
        <t>Two residual properties remain and are, by design, out of scope for the on-wire
mechanism:</t>
        <ul spacing="normal">
          <li>
            <t><strong>First-use trust.</strong> In the pinned model, and at iN2N enrollment, the initial key is
accepted on first contact (see <xref target="seccons-tofu"/>). An attacker who is on-path at the
very first federation with a never-before-seen identity could be pinned in place of
the legitimate peer. Every subsequent contact is protected by the pin.</t>
          </li>
          <li>
            <t><strong>Restricted-tier metadata.</strong> A consented-but-keyless peer at the restricted tier
can still read the advertiser's capability card (<xref target="seccons-priv"/>). A deployment that
considers card contents sensitive <bcp14>SHOULD</bcp14> operate in enforcing mode, which admits only
the possession tier.</t>
          </li>
        </ul>
        <t>On an encrypted channel the possession proof cannot be relayed to a different
acceptor: the fresh single-use nonce is delivered confidentially under the
acceptor's verified server certificate, so an initiator only ever signs a nonce
bound to the acceptor it authenticated, and the tls-server-end-point value adds a
further endpoint binding (<xref target="channel-sec-pop"/>). (That value is an endpoint, not a
per-connection, binding; a future revision <bcp14>SHOULD</bcp14> adopt <xref target="RFC9266"/> <tt>tls-exporter</tt>
once the TLS stack exposes it.) Deployments <bcp14>SHOULD</bcp14> still apply defence in depth: the shared-port source controls of
<xref target="seccons-port"/> and the default-deny per-peer authorization of <xref target="seccons-deleg"/>. An
emerging agent-identity and naming layer such as the Agent Name Service <xref target="ANS"/> could in
future supply discovery and naming above this authentication layer.</t>
      </section>
      <section anchor="seccons-tofu">
        <name>Trust on first use</name>
        <t>eN2N relies on out-of-band confirmation of a peer's AS/router-id before consent; iN2N
relies on TOFU pinning of a member's self-signed key at enrollment (<xref target="trust"/>). TOFU
is vulnerable to an active attacker present at enrollment time. Enrollment tokens
therefore <bcp14>MUST</bcp14> have at least 128 bits of entropy, <bcp14>MUST</bcp14> be single-use, <bcp14>SHOULD</bcp14> carry an
expiry, and <bcp14>SHOULD</bcp14> be delivered over a confidential out-of-band channel. To detect an
intercepted enrollment, the member <bcp14>SHOULD</bcp14> display the SHA-256 fingerprint of its
generated certificate out of band so the operator can confirm it matches the value the
Border pinned. The Border <bcp14>SHOULD</bcp14> log every enrollment fingerprint mismatch and
surface it to the operator as a security alert, not merely a failed enrollment.
If enrollment is suspected to have been intercepted, the operator
removes (unpins) the member and re-enrolls it with a fresh token; the compromised key
is thereby refused. This model is a deliberate instance of opportunistic security
<xref target="RFC7435"/>: it raises the bar against passive attackers and is appropriate for the
small-set-of-known-peers applicability (<xref target="applicability"/>), but it is not a substitute
for a PKI.</t>
        <t>To detect an intercepted first contact, the enrolling member's certificate fingerprint
is surfaced to the operator on both the Border and member sides for out-of-band
comparison; a mismatch aborts enrollment.</t>
        <t>The automatic quarantine that unpins a member after repeated failed authentications
(<xref target="trust-in2n"/>) was previously an availability hazard: a host that learned a member
identifier and could reach the Border's iN2N listener could submit failing
authentications to drive that member over the quarantine threshold and remove it from
routing. Failed-authentication accounting is now attributed per source: failures from a
source other than a member's established origin are rate-limited and <bcp14>MUST NOT</bcp14> count
toward that member's quarantine, so an off-path or foreign-source attacker can no longer
unpin a healthy member. Operators <bcp14>SHOULD</bcp14> still restrict reachability of the iN2N listener
to member hosts.</t>
      </section>
      <section anchor="seccons-conf">
        <name>Confidentiality and integrity</name>
        <t>NCFED provides its own confidentiality and integrity by upgrading the channel to TLS
1.3 <xref target="RFC9846"/> after the handshake (<xref target="channel-sec-tls"/>), with the peer's certificate
verified under its trust model. A deployment <bcp14>MAY</bcp14> additionally run over an encrypted
underlay or tunnel -- for example an encrypted data-plane tunnel, a VPN such as
WireGuard <xref target="WIREGUARD"/>, or an outer TLS tunnel -- and the reference deployment does so
(peers are reached over tunnels), but this is now defence in depth rather than the sole
source of transport security. Cleartext operation remains possible as an explicit,
operator-selected mode for a controlled environment (<xref target="channel-sec-tls"/>); it provides
no confidentiality and <bcp14>MUST NOT</bcp14> be used across an untrusted network or negotiated at a
remote peer's request.</t>
        <t>NCFED inherits its key exchange from TLS 1.3 <xref target="RFC9846"/>. Implementations <bcp14>SHOULD</bcp14>
offer a post-quantum hybrid group (for example X25519MLKEM768) ahead of classical
curves where the TLS stack supports it; because a hybrid is negotiated only when both
peers' stacks support it, NCFED treats post-quantum key exchange as opportunistic by
default. A deployment <bcp14>MAY</bcp14> be configured to require a post-quantum negotiation
(refusing a channel that negotiated a classical group), noting that requiring
post-quantum on a stack that cannot offer it <bcp14>MUST</bcp14> fail loudly at configuration time
rather than silently refusing every peer. The negotiated group <bcp14>SHOULD</bcp14> be visible in
the operator posture view so an operator can tell whether a given channel obtained
post-quantum or classical key exchange. Where the implementation's TLS interface can
neither select nor report the negotiated group -- even though the underlying library
may negotiate a hybrid by default, as OpenSSL 3.5 does -- the posture view <bcp14>MUST</bcp14>
report the group as unknown rather than as classical or as post-quantum: posture
reports what the implementation can attest.</t>
      </section>
      <section anchor="seccons-metadata">
        <name>Observable metadata</name>
        <t>Even with the channel encrypted (<xref target="seccons-conf"/>), a passive on-path observer can
still learn <em>who federates with whom</em> from two signals that NCFED does not conceal.
First, the discrimination preamble (<xref target="discrimination"/>) carries the initiator's AS
and router-id in the clear; this is structural -- the shared port <bcp14>MUST</bcp14> discriminate
NCFED before any TLS ClientHello -- and cannot be moved inside TLS without a
dedicated port. Second, in the domain-verified trust model (<xref target="channel-sec-models"/>)
the TLS SNI carries the acceptor's claw domain. Implementations <bcp14>SHOULD</bcp14> support
Encrypted ClientHello (ECH) to conceal the SNI where both the stack and the
deployment allow it, and operators who require unlinkability <bcp14>SHOULD</bcp14> prefer the
pinned trust model (no domain in SNI) or a dedicated non-shared port. These residual
exposures are accepted by design and are surfaced in the operator posture view.</t>
      </section>
      <section anchor="seccons-deleg">
        <name>Agent-delegation hazards</name>
        <t><tt>n2n/tools/call</tt> and task delegation cause actions to be taken on real infrastructure
at the request of a remote AI agent. Deployments:</t>
        <ul spacing="normal">
          <li>
            <t><bcp14>MUST</bcp14> authorize remote invocation per peer (default-deny; explicit grants), and
<bcp14>SHOULD</bcp14> constrain grants with approval requirements, budgets, and rate limits;</t>
          </li>
          <li>
            <t><bcp14>MUST</bcp14> treat content returned across the federation boundary (tool results, task
output) as untrusted input to the local agent, which can carry prompt-injection
payloads; such content <bcp14>SHOULD NOT</bcp14> be interpreted as instructions;</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> log every federated invocation at the Border for audit, and <bcp14>MAY</bcp14> gate
execution behind a production-mode guardrail that inspects model input/output;</t>
          </li>
          <li>
            <t><bcp14>SHOULD</bcp14> bound delegation depth to prevent loops when federated agents can themselves
re-delegate. This document does not define a delegation-depth or hop-count field;
implementations that permit transitive delegation <bcp14>SHOULD</bcp14> add and enforce one, and a
future revision is expected to carry a decrementing hop count in the tool and task
method families (<xref target="impl-status"/>).</t>
          </li>
        </ul>
        <t>Task retrieval is bound to the submitting peer (<xref target="semantics"/>), so a task identifier
is not by itself a bearer capability: a third party that learns another peer's task
identifier is answered as if the task did not exist, and cannot read, cancel, or
even confirm the existence of the task. Implementations <bcp14>SHOULD</bcp14> still generate
unguessable task identifiers as defence in depth.</t>
      </section>
      <section anchor="seccons-dos">
        <name>Denial of service</name>
        <t>A payload is capped at 64 KiB per frame (<xref target="framing"/>) and an oversize Length <bcp14>MUST</bcp14>
cause a close. A message reassembled from CONTINUATION frames is further bounded to
16 MiB in aggregate and to 30 seconds of reassembly time (<xref target="framing"/>); a receiver
<bcp14>MUST</bcp14> close a channel that exceeds either bound. Without the time bound, a peer
could hold a reassembly buffer open indefinitely with a drip of legal zero-length
fragments, each of which also resets the liveness accounting of <xref target="heartbeat"/> --
the size bound alone does not close that hole. The heartbeat mechanism (<xref target="heartbeat"/>) and
cold-start (<xref target="operational"/>) can be abused as resource-exhaustion vectors; operators
<bcp14>SHOULD</bcp14> apply the per-peer rate/approval controls above and the port protections of
<xref target="seccons-port"/>.</t>
      </section>
      <section anchor="seccons-priv">
        <name>Capability-card privacy</name>
        <t>A capability card (<xref target="cards"/>) enumerates the advertiser's exposed skills, MCP servers,
security posture, and reasoning-model family. This is attack-surface metadata. An
endpoint <bcp14>MUST</bcp14> advertise only the subset a peer is authorized to see and <bcp14>MUST NOT</bcp14>
include secrets or per-member topology; operators <bcp14>SHOULD</bcp14> treat card contents as
sensitive, especially over cleartext transport (<xref target="seccons-conf"/>). A future revision
may define a minimized or integrity-protected card.</t>
      </section>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>This document requests that IANA register the following service name in the Service
Name and Transport Protocol Port Number Registry <xref target="RFC6335"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Service Name: <tt>ncfed</tt></t>
        </li>
        <li>
          <t>Transport Protocol: TCP</t>
        </li>
        <li>
          <t>Description: NetClaw-to-NetClaw Federation Protocol</t>
        </li>
        <li>
          <t>Assignee: John Capobianco <eref target="mailto:ptcapo@gmail.com">ptcapo@gmail.com</eref></t>
        </li>
        <li>
          <t>Contact: John Capobianco <eref target="mailto:ptcapo@gmail.com">ptcapo@gmail.com</eref></t>
        </li>
        <li>
          <t>Reference: This document</t>
        </li>
        <li>
          <t>Port Number: none requested. NCFED does not define a fixed well-known port; a
deployment multiplexes NCFED onto an operator-configured port (in the reference
deployment, the BGP/mesh port), discriminated as in <xref target="discrimination"/>.</t>
        </li>
        <li>
          <t>Assignment Notes: NCFED operates over unicast TCP only; it does not use UDP,
broadcast, multicast, or anycast.</t>
        </li>
      </ul>
      <t>This document does <strong>not</strong> request a registry for the first-octet discrimination
tags ("NCFED", "NCTUN"); they are documented here for reference. Should third-party
extensions of the tag space emerge, a future document may define such a registry
(e.g., under a Specification Required or Expert Review policy <xref target="RFC8126"/>).</t>
    </section>
  </middle>
  <back>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </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="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC5480">
          <front>
            <title>Elliptic Curve Cryptography Subject Public Key Information</title>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <author fullname="D. Brown" initials="D." surname="Brown"/>
            <author fullname="K. Yiu" initials="K." surname="Yiu"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document specifies the syntax and semantics for the Subject Public Key Information field in certificates that support Elliptic Curve Cryptography. This document updates Sections 2.3.5 and 5, and the ASN.1 module of "Algorithms and Identifiers for the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 3279. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5480"/>
          <seriesInfo name="DOI" value="10.17487/RFC5480"/>
        </reference>
        <reference anchor="RFC6090">
          <front>
            <title>Fundamental Elliptic Curve Cryptography Algorithms</title>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="K. Igoe" initials="K." surname="Igoe"/>
            <author fullname="M. Salter" initials="M." surname="Salter"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>This note describes the fundamental algorithms of Elliptic Curve Cryptography (ECC) as they were defined in some seminal references from 1994 and earlier. These descriptions may be useful for implementing the fundamental algorithms without using any of the specialized methods that were developed in following years. Only elliptic curves defined over fields of characteristic greater than three are in scope; these curves are those used in Suite B. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6090"/>
          <seriesInfo name="DOI" value="10.17487/RFC6090"/>
        </reference>
        <reference anchor="RFC6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC5929">
          <front>
            <title>Channel Bindings for TLS</title>
            <author fullname="J. Altman" initials="J." surname="Altman"/>
            <author fullname="N. Williams" initials="N." surname="Williams"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>This document defines three channel binding types for Transport Layer Security (TLS), tls-unique, tls-server-end-point, and tls-unique-for-telnet, in accordance with RFC 5056 (On Channel Binding).</t>
              <t>Note that based on implementation experience, this document changes the original definition of 'tls-unique' channel binding type in the channel binding type IANA registry. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5929"/>
          <seriesInfo name="DOI" value="10.17487/RFC5929"/>
        </reference>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC9525">
          <front>
            <title>Service Identity in TLS</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="R. Salz" initials="R." surname="Salz"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>Many application technologies enable secure communication between two entities by means of Transport Layer Security (TLS) with Internet Public Key Infrastructure using X.509 (PKIX) certificates. This document specifies procedures for representing and verifying the identity of application services in such interactions.</t>
              <t>This document obsoletes RFC 6125.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9525"/>
          <seriesInfo name="DOI" value="10.17487/RFC9525"/>
        </reference>
        <reference anchor="JSONRPC" target="https://www.jsonrpc.org/specification">
          <front>
            <title>JSON-RPC 2.0 Specification</title>
            <author>
              <organization>JSON-RPC Working Group</organization>
            </author>
            <date year="2013"/>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/specification">
          <front>
            <title>Model Context Protocol</title>
            <author>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="A2A" target="https://a2a-protocol.org">
          <front>
            <title>Agent2Agent (A2A) Protocol</title>
            <author>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC5082">
          <front>
            <title>The Generalized TTL Security Mechanism (GTSM)</title>
            <author fullname="V. Gill" initials="V." surname="Gill"/>
            <author fullname="J. Heasley" initials="J." surname="Heasley"/>
            <author fullname="D. Meyer" initials="D." surname="Meyer"/>
            <author fullname="P. Savola" initials="P." role="editor" surname="Savola"/>
            <author fullname="C. Pignataro" initials="C." surname="Pignataro"/>
            <date month="October" year="2007"/>
            <abstract>
              <t>The use of a packet's Time to Live (TTL) (IPv4) or Hop Limit (IPv6) to verify whether the packet was originated by an adjacent node on a connected link has been used in many recent protocols. This document generalizes this technique. This document obsoletes Experimental RFC 3682. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5082"/>
          <seriesInfo name="DOI" value="10.17487/RFC5082"/>
        </reference>
        <reference anchor="RFC6335">
          <front>
            <title>Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="L. Eggert" initials="L." surname="Eggert"/>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <date month="August" year="2011"/>
            <abstract>
              <t>This document defines the procedures that the Internet Assigned Numbers Authority (IANA) uses when handling assignment and other requests related to the Service Name and Transport Protocol Port Number registry. It also discusses the rationale and principles behind these procedures and how they facilitate the long-term sustainability of the registry.</t>
              <t>This document updates IANA's procedures by obsoleting the previous UDP and TCP port assignment procedures defined in Sections 8 and 9.1 of the IANA Allocation Guidelines, and it updates the IANA service name and port assignment procedures for UDP-Lite, the Datagram Congestion Control Protocol (DCCP), and the Stream Control Transmission Protocol (SCTP). It also updates the DNS SRV specification to clarify what a service name is and how it is registered. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="165"/>
          <seriesInfo name="RFC" value="6335"/>
          <seriesInfo name="DOI" value="10.17487/RFC6335"/>
        </reference>
        <reference anchor="RFC6455">
          <front>
            <title>The WebSocket Protocol</title>
            <author fullname="I. Fette" initials="I." surname="Fette"/>
            <author fullname="A. Melnikov" initials="A." surname="Melnikov"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>The WebSocket Protocol enables two-way communication between a client running untrusted code in a controlled environment to a remote host that has opted-in to communications from that code. The security model used for this is the origin-based security model commonly used by web browsers. The protocol consists of an opening handshake followed by basic message framing, layered over TCP. The goal of this technology is to provide a mechanism for browser-based applications that need two-way communication with servers that does not rely on opening multiple HTTP connections (e.g., using XMLHttpRequest or s and long polling). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6455"/>
          <seriesInfo name="DOI" value="10.17487/RFC6455"/>
        </reference>
        <reference anchor="RFC7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC9266">
          <front>
            <title>Channel Bindings for TLS 1.3</title>
            <author fullname="S. Whited" initials="S." surname="Whited"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document defines a channel binding type, tls-exporter, that is compatible with TLS 1.3 in accordance with RFC 5056, "On the Use of Channel Bindings to Secure Channels". Furthermore, it updates the default channel binding to the new binding for versions of TLS greater than 1.2. This document updates RFCs 5801, 5802, 5929, and 7677.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9266"/>
          <seriesInfo name="DOI" value="10.17487/RFC9266"/>
        </reference>
        <reference anchor="RFC7435">
          <front>
            <title>Opportunistic Security: Some Protection Most of the Time</title>
            <author fullname="V. Dukhovni" initials="V." surname="Dukhovni"/>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document defines the concept "Opportunistic Security" in the context of communications protocols. Protocol designs based on Opportunistic Security use encryption even when authentication is not available, and use authentication when possible, thereby removing barriers to the widespread use of encryption on the Internet.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7435"/>
          <seriesInfo name="DOI" value="10.17487/RFC7435"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="WIREGUARD" target="https://www.wireguard.com/papers/wireguard.pdf">
          <front>
            <title>WireGuard: Next Generation Kernel Network Tunnel</title>
            <author initials="J. A." surname="Donenfeld" fullname="Jason A. Donenfeld">
            </author>
            <date year="2017"/>
          </front>
        </reference>
        <reference anchor="YAN-A2A" target="https://datatracker.ietf.org/doc/draft-yan-a2a-device-agent-applicability/">
          <front>
            <title>Applicability of A2A Protocol for Network Management Agents</title>
            <author>
              <organization>Yan et al.</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="ANS" target="https://datatracker.ietf.org/doc/draft-narajala-ans/">
          <front>
            <title>Agent Name Service (ANS): A Universal Directory for Secure AI Agent Discovery and Interoperability</title>
            <author>
              <organization>Narajala et al.</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <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>
      </references>

<section anchor="prior-art">
      <name>Prior Art and Design Rationale</name>
      <t>NCFED's first-octet discrimination is analogous in spirit to, but distinct from, TLS
ALPN <xref target="RFC7301"/>, which negotiates the application protocol within the TLS
handshake; NCFED discriminates in cleartext at the head of the TCP stream so that it
can co-tenant with BGP without terminating TLS. Its length-prefixed, flag-bearing
framing and post-handshake message model are in the lineage of WebSocket <xref target="RFC6455"/>.
Its use of AS/router-id as agent identity reuses the operational identity model of
BGP-4 <xref target="RFC4271"/>, which fits the network-engineering deployment.</t>
      <t><em>Transport choice.</em> NCFED runs over raw TCP with its own minimal framing rather
than QUIC <xref target="RFC9000"/> or WebSocket <xref target="RFC6455"/>. The deciding constraint is the
shared listening port (<xref target="discrimination"/>): co-tenancy with BGP-4 requires
discriminating the first octets of a TCP byte stream, which QUIC (UDP-based) cannot
share at all and WebSocket (an HTTP upgrade) could share only by putting an HTTP
server in front of BGP. QUIC is otherwise attractive for exactly the properties
this document works around: it integrates TLS 1.3 natively (removing the in-place
upgrade of <xref target="channel-sec-tls"/>), it survives endpoint address changes through
connection migration (removing much of the re-dial machinery of <xref target="operational"/>),
and its independent streams would eliminate the head-of-line blocking that a large
fragmented message imposes on this framing -- a heartbeat cannot be interleaved
mid-message (<xref target="framing"/>), so the 16 MiB reassembly bound caps, but does not
remove, the delay a bulk transfer can impose on liveness and cancellation traffic.
These trade-offs are accepted for the experimental deployment because the single
shared pinhole (<xref target="discrimination"/>) dominates the operational cost. A future
revision <bcp14>MAY</bcp14> define a QUIC binding for deployments that do not require BGP
co-tenancy; the framing layer is deliberately thin so that the semantic layers of
the two bindings would be identical.</t>
      <t>NCFED is closest, among current IETF work, to
<xref target="YAN-A2A"/> ("Applicability of A2A Protocol for Network Management Agents"). That
work applies A2A to network management within a <strong>single administrative domain</strong>,
between a controller agent and device agents, over mutually authenticated TLS, and
does not address federation of independently operated agents. NCFED is
complementary: it federates agents across <strong>different</strong> operators (eN2N, keyed by
AS/router-id and mutual consent) and coordinates one operator's agents in a
hub-and-spoke risk (iN2N, enrollment-token + TOFU), and it <strong>maps</strong> MCP and A2A
semantics onto its method families rather than defining new agent-card or task
semantics of its own. A one-sentence differentiation: <em>NCFED is a cross-operator
federation, identity, and transport layer -- multiplexed with BGP -- that carries
MCP-style tool invocation and A2A-style task delegation between independently
operated network agents.</em></t>
      <t>Hub-and-spoke (rather than a full mesh) was chosen for iN2N so that a single Border
provides one audit, policy, and routing boundary and one external identity for a
risk; members never accept inbound connections, which minimizes their attack
surface.</t>
      <t>Defining NCFED as a strict wire specification rather than an SDK API is a
deliberate choice for runtime agnosticism. Everything a peer must agree on is
on the wire -- first-octet discrimination (<xref target="discrimination"/>), the binary
handshake (<xref target="handshake"/>), the TLS upgrade and possession proof (<xref target="channel-sec"/>),
the frame format (<xref target="framing"/>), and the JSON-RPC method families (<xref target="semantics"/>) --
and nothing above the wire is prescribed. Two peers therefore interoperate with no
shared code and no knowledge of each other's LLM orchestration, prompt structures,
or local execution runtime; each side maps its internal representation onto the
common MCP/A2A constructs at the boundary. This is what lets a risk mix agent
engines (<xref target="terminology"/>) and lets independently developed agents federate across
operators. The multi-implementation interoperability recorded in <xref target="impl-status"/>
(the NetClaw reference engine and the independently developed Hermes agent) exercises
this separation directly.</t>
    </section>
    <section anchor="impl-status" removeInRFC="true">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the protocol defined by
this specification at the time of posting, per <xref target="RFC7942"/>. It is to be removed
before publication as an RFC.</t>
      <t><strong>Implementation:</strong> the open-source NetClaw project (<tt>automateyournetwork/netclaw</tt>).
NCFED (eN2N and iN2N) is deployed and in daily use across a live three-operator mesh
(AS 65001, AS 65007, AS 65099) and within one operator's risk (a Border and its
member claws). Coverage: protocol discrimination, the 13-octet handshake, the frame
format and heartbeat, JSON-RPC method families, in-band negotiation, and both trust
models are all implemented and in daily use across the operators of the mesh, all
running the reference implementation; interoperability with a second, independently
developed implementation (Hermes) is recorded separately below. The channel security of <xref target="channel-sec"/>
is implemented: the in-place TLS 1.3 upgrade, application-layer proof of possession
with the two trust models (domain-verified via ACME/DNS-01 and pinned/TOFU), the
possession/self-asserted admission tiers with enforcing mode, iN2N Border-as-CA hub
attestation, and automatic certificate rotation. The reference deployment's own claw is
domain-verified (a publicly trusted certificate for a claw domain, obtained and
auto-renewed via DNS-01).</t>
      <t><strong>Multi-implementation interoperability (Hermes &lt;-&gt; NetClaw).</strong> NCFED has been
exercised between two independently developed agent implementations with different
codebases and different reasoning runtimes: the NetClaw reference engine (running a
Claude model in the captured session) and Hermes, a separate agent framework
(running a GPT model). In the captured session a Hermes peer initiated NCFED
delegation over the federation channel (<tt>n2n-federation</tt> / <tt>cml-lab-lifecycle</tt>
skills) to audit a remote Cisco Modeling Labs (CML) environment held by a third
operator's claw. The federation layer behaved exactly as specified end to end: the
channel was discriminated, upgraded to TLS (the peer's trust auto-upgraded to
domain-verified when its claw connected), authenticated, and authorized, and the
delegated call was routed to the remote tool. The remote <tt>cml-mcp</tt> tool then failed
internally on an upstream input-schema (Pydantic) validation error -- a missing
<tt>effective_permissions</tt> field, its models out of sync with the remote CML 2.8.0
API -- and that tool-side error was returned to the Hermes peer within the tool
result, as a tool error rather than an NCFED protocol error (<xref target="semantics"/>), and
surfaced cleanly to its operator. Hermes's own summary recorded the distinction
precisely: "this isn't a connectivity or federation problem -- the N2N channel,
authorization, and delegation all worked end-to-end[;] it's a version mismatch
between [the remote] <tt>cml-mcp</tt> package and their CML 2.8.0 server." This exercises
the design's central claim: the transport, identity, and federation layers are
decoupled from any single agent's internal codebase, so two disparate
implementations interoperate over the wire with neither sharing the other's runtime,
and an in-tool failure is relayed faithfully rather than corrupting the channel.
This is genuine interoperability evidence (two independently developed
implementations exercising the same normative behavior), distinct from the
multi-operator <em>operational</em> evidence above (which runs one implementation). The
terminal captures (<tt>captures/hermes00.png</tt>, <tt>captures/hermes01.png</tt>) and the
correlated encrypted packet capture are retained in the project repository under a
SHA-256 manifest (<tt>captures/MANIFEST.sha256</tt>).</t>
      <t><strong>Interoperability evidence (packet capture):</strong> a 37.5-second capture of a live NCFED
channel between johns-risk (AS 65001) and Nick (AS 65007) was taken at the initiator
(<tt>ncfed-johns-risk-nick-20260714.pcap</tt> in the project repository) while three
application-level round-trips were exercised:</t>
      <ul spacing="normal">
        <li>
          <t>One long-lived TCP conversation, <tt>192.168.2.61:45722</tt> &lt;-&gt; <tt>13.58.157.220:10416</tt>
(the initiator to the peer's tunnel edge); 24 packets, 3141 octets, near-symmetric
(13 in / 1567 octets, 11 out / 1574 octets).</t>
        </li>
        <li>
          <t>TCP health: only ACK and PSH-ACK segments in-window (no SYN/FIN/RST -- a persistent,
already-established control channel), with zero retransmissions and zero duplicate
ACKs.</t>
        </li>
        <li>
          <t>Payload segmentation: 12 zero-length (pure-ACK) segments plus data segments of 5,
75, 110, 127, 153, 274, and 352 octets -- small, bursty, and request/response-shaped,
consistent with a control/chat protocol rather than bulk transfer.</t>
        </li>
      </ul>
      <t><strong>Capture methodology and limitations (important, honest scope):</strong> this capture was
taken on the wire <em>inside the peer's TLS-terminated tunnel transport</em> (the deployment
reaches the remote AS over a tunnel provider). The captured payload octets are
therefore <strong>ciphertext</strong>: the capture is accurate, first-hand evidence of the NCFED
<strong>channel</strong> -- real endpoints, a persistent established session, healthy TCP, and a
request/response traffic shape between two independently operated ASes -- but it does
<strong>not</strong> expose decrypted NCFED frames, so the segment sizes above are TLS-record
sizes carrying NCFED, not raw NCFED frame boundaries. A plaintext capture of the NCFED
frames themselves requires capturing at the application layer (e.g., on loopback,
before the tunnel) or on an underlay where the operator holds the keys (e.g.,
WireGuard); such a capture is future work and is the recommended way to demonstrate
the frame-level behavior specified in <xref target="framing"/> and <xref target="handshake"/> directly.</t>
      <t><strong>Loopback discrimination and handshake conformance (AS 65099).</strong> The frame- and
handshake-level behavior that the tunnel capture above could not expose was verified
directly against the reference daemon on its cleartext loopback listen port, before
any TLS upgrade, with a purpose-built conformance client. Observed results, each
matching this specification:</t>
      <ul spacing="normal">
        <li>
          <t><xref target="discrimination"/> discrimination. A first octet of 0x00 (unrecognized), a direct
TLS ClientHello (first octet 0x16), and 'N' followed by an unknown four-octet magic
("NXXXX") were each closed by the acceptor with no bytes returned. A first octet of
0xFF was handed to the BGP engine and the connection was held open awaiting the
remainder of the 16-octet BGP marker. Only the "NCFED" magic advanced to the
federation handshake. This confirms, on the wire, that a direct TLS connection to
the shared port is refused (the STARTTLS-style in-place upgrade of
<xref target="channel-sec-tls"/> is the only path to TLS), as <xref target="discrimination"/> requires.</t>
        </li>
        <li>
          <t><xref target="handshake"/> handshake, consent gate. A connection presenting the "NCFED" magic
and the AS/router-id of a consented peer (<tt>as65001-4.4.4.4</tt>) received the
acceptor's 13-octet handshake reply ("NCFED" + the acceptor's AS + router-id). A
connection presenting a non-consented stranger identity (and, separately, the
acceptor's own identity, for which no peer-consent record exists) was closed with
zero bytes returned.</t>
        </li>
        <li>
          <t>Implementation-vs-specification note (<xref target="handshake"/>). The reference implementation
closes a non-consented peer <strong>without sending any handshake reply</strong>, never
revealing its own AS and router-id to a peer it has not consented to. Earlier
internal iterations of this document required the acceptor to reply before
closing; <xref target="handshake"/> now standardizes the safer observed behavior (withholding
the nonce is the <bcp14>MUST</bcp14>; withholding the handshake reply is the <bcp14>SHOULD</bcp14>).</t>
        </li>
        <li>
          <t><xref target="channel-sec-tls"/> in-place TLS upgrade. Continuing the consented-peer handshake,
the channel upgraded in place to TLS 1.3 with cipher suite TLS_AES_256_GCM_SHA384;
the acceptor presented its domain-verified certificate (subject CN
<tt>netclaw.byrnbaker.me</tt>), confirming both the STARTTLS-style upgrade and the
domain-verified trust model of <xref target="channel-sec-models"/> on the live channel.</t>
        </li>
        <li>
          <t><xref target="framing"/> framing bound. The receive path reads a five-octet header (four-octet
big-endian length + one-octet flags) and closes the channel when the length field
exceeds 65536. This was exercised inadvertently but informatively in production
before the dialer-tier fix (below): a peer's TLS ClientHello, misread as an NCFED
frame header during a transient sequencing bug, produced a length field of
0x16030102 (369295618) and the channel was closed as oversized exactly as
<xref target="framing"/> requires.</t>
        </li>
      </ul>
      <t><strong>Resolved during pre-submission iteration.</strong> The peer-authentication gap that the
first internal iteration of this document recorded as a limitation is closed and
implemented: eN2N and iN2N are now
cryptographically, mutually authenticated (<xref target="channel-sec"/>, <xref target="trust-in2n"/>), and the
iN2N quarantine denial-of-service is fixed by per-source failed-authentication
accounting (<xref target="seccons-tofu"/>). A reported forged-handshake impersonation of a
consented, tool-granted peer was reproduced on a two-daemon loopback and is closed by
the possession proof and admission tiers of <xref target="channel-sec"/>.</t>
      <t><strong>Dialer-side admission tier (<xref target="channel-sec-tiers"/>), resolved.</strong> An earlier build
granted the possession tier only on the acceptor side of a channel, leaving the
listener role on a channel the local node had <strong>dialed</strong> stuck at the self-asserted
tier indefinitely. Because endpoint update (<xref target="operational"/>) is denied at the
self-asserted tier, this silently rejected a dialed peer's endpoint re-announcements
-- observed in production as a consented peer re-announcing a rotated tunnel endpoint
roughly every 30 seconds with the announcements refused, so the direct BGP session
never re-formed at the new endpoint. The fix grants the possession tier to a
TLS-verified listener on a dialed channel as well; after it was deployed across the
live mesh, a peer's rotated endpoint announcement was accepted and the direct BGP
session re-established at the new endpoint on the first re-dial, verified end to end
between AS 65099 and AS 65001.</t>
      <t><strong>Hardened at pre-submission review.</strong> Four protections that earlier internal
iterations recorded as known limitations are implemented in the reference
implementation as specified in this document: the (AS, router-id) deterministic-
initiator tie-break (<xref target="handshake"/>); the 16 MiB / 30 s reassembly bounds, including
closing on a heartbeat received mid-reassembly (<xref target="framing"/>, <xref target="seccons-dos"/>);
task retrieval bound to the submitting peer, answering non-owners with the
missing-task shape (<xref target="semantics"/>, <xref target="seccons-deleg"/>); and MEMBER_ID_TAKEN (-32022)
emitted on the wire (<xref target="errors"/>). Each is covered by the project test suite.</t>
      <t><strong>Known limitations recorded for a future revision.</strong> The following gaps remain in the
current implementation and are targeted for a future NCFED revision:</t>
      <ul spacing="normal">
        <li>
          <t>The tool and task method families carry no delegation hop count. Transitive
re-delegation is not implemented, so the field is deferred until it exists; an
implementation that adds transitive delegation <bcp14>MUST</bcp14> add and enforce one first.
See <xref target="seccons-deleg"/>.</t>
        </li>
        <li>
          <t>In-band "version negotiation" is feature advertisement with graceful degradation,
not selection of a common protocol version. See <xref target="negotiation"/>.</t>
        </li>
        <li>
          <t>The tuple tie-break of <xref target="handshake"/> governs the NCFED federation channel; the
associated NCTUN data plane (out of scope here) still keys tunnels by AS alone
and does not support equal-AS peers.</t>
        </li>
      </ul>
      <t>This evidence is provided to document running code and operational reality; it is not
a normative part of the protocol.</t>
    </section>
    <section anchor="method-ref">
      <name>JSON-RPC Method Reference</name>
      <t>This appendix specifies the parameter and result objects for each NCFED method, as
implemented in the reference implementation (<xref target="impl-status"/>). All objects are JSON
<xref target="RFC8259"/>; unless stated otherwise, an unrecognized member is ignored. Encodings: a
binary signature is a lowercase hexadecimal string of a DER-encoded ECDSA signature
<xref target="RFC6090"/> over the relevant nonce; a certificate is PEM-encoded <xref target="RFC5280"/>; a key
fingerprint is the lowercase hexadecimal SHA-256 <xref target="RFC6234"/> of the certificate's
SubjectPublicKeyInfo <xref target="RFC5480"/>. Examples are illustrative.</t>
      <section anchor="en2n-methods">
        <name>eN2N methods</name>
        <t><tt>n2n/hello</tt> -- the only method permitted before federation is established. The
request <tt>params</tt> carry the sender's descriptor <strong>and its possession proof</strong>
(<xref target="channel-sec-pop"/>): <tt>cert_pem</tt> is the sender's certificate and <tt>signature</tt>
proves possession of the matching private key over the acceptor's nonce.</t>
        <artwork><![CDATA[
params: {
  "identity": "as65001-192.0.2.1",
  "display_name": "johns-risk",
  "versions": ["1.0"],
  "cert_pem": "-----BEGIN CERTIFICATE----- ...",
  "signature": "<hex DER ECDSA over nonce || B>",
  "capabilities": {
    "proto_version": "053",
    "features": ["async_tasks", "endpoint_reannounce", "negotiate"],
    "agent_invoke": "session-id",
    "reply_shapes": ["finalAssistantVisibleText", "payloads"]
  }
}
result: {
  "display_name": "nick",
  "capabilities": { ...same shape as params.capabilities... }
}
]]></artwork>
        <t>The signed input is the raw octet concatenation <tt>nonce || B</tt>, with no length
prefix or separator: <tt>nonce</tt> is the acceptor's 32-octet possession challenge
(<xref target="handshake"/>), and <tt>B</tt> is the tls-server-end-point channel binding
(<xref target="channel-sec-pop"/>) -- the 32-octet SHA-256 of the acceptor's server
certificate -- on an encrypted channel, or empty on a cleartext one. Both
components are fixed-length, so the concatenation is unambiguous. A consented
peer that omits <tt>cert_pem</tt> and <tt>signature</tt> is admitted only at the restricted
self-asserted tier (<xref target="channel-sec-tiers"/>), and is refused outright in enforcing
mode.</t>
        <t><tt>n2n/tools/call</tt> -- the <tt>tool</tt> member <bcp14>MUST</bcp14> have the form <tt>server_id/tool_name</tt>;
otherwise the callee returns JSON-RPC error -32602 (invalid params). The <tt>result</tt> is
the MCP <xref target="MCP"/> tool-result object from the named server. Authorization failures use
the codes of <xref target="errors"/>.</t>
        <artwork><![CDATA[
params: { "tool":       "<server_id>/<tool_name>",
          "arguments":  { ...tool-specific JSON... },
          "request_id": "as65001-192.0.2.1:42" }
]]></artwork>
        <t><tt>n2n/tasks/submit</tt> -- A2A-style <xref target="A2A"/> delegation:</t>
        <artwork><![CDATA[
params: { "skill":      "<skill-name>",
          "input_text": "<free text passed to the skill>",
          "request_id": "as65001-192.0.2.1:43" }
result: { "task_id": "<opaque string>", "state": "submitted" }
]]></artwork>
        <t><tt>n2n/tasks/status</tt>, <tt>n2n/tasks/result</tt>, <tt>n2n/tasks/cancel</tt> -- each takes
<tt>params: { "task_id": "&lt;opaque string&gt;" }</tt>. Retrieval is bound to the submitter
(<xref target="semantics"/>): a caller other than the authenticated peer that submitted the
task receives the same answer as for an unknown task_id (state <tt>unknown</tt>;
<tt>cancelled: false</tt>). Each returns:</t>
        <artwork><![CDATA[
status: {
  "task_id": "...", "target": "<skill-name>",
  "state": "submitted|working|completed|failed|cancelled|unknown",
  "progress": "<string or null>"
}
result: {
  "task_id": "...", "state": "...", "tokens_used": <number>,
  "output_text": "<present when completed>",
  "error": "<present when failed>"
}
cancel: { "task_id": "...", "cancelled": <boolean> }
]]></artwork>
        <t><tt>n2n/inventory</tt>, <tt>n2n/inventory_get</tt> -- push and pull of the capability card
(<xref target="cards"/>).</t>
      </section>
      <section anchor="in2n-methods">
        <name>iN2N methods</name>
        <t>Each iN2N method is sent by the member after receiving the Border's "IN2N1" preamble
and 32-octet nonce (<xref target="trust-in2n"/>); the <tt>signature</tt> proves possession of the
member's pinned key over that nonce.</t>
        <t><tt>in2n/enroll</tt> -- first contact. On success the Border spends the token and pins the
certificate's SubjectPublicKeyInfo. Errors: NOT_A_BORDER (-32024); MEMBER_NOT_TRUSTED
(-32023) on possession failure; ENROLL_TOKEN_INVALID (-32021) for a spent or expired
token, or a member identifier already pinned to another key (<xref target="errors"/>).</t>
        <artwork><![CDATA[
params: { "token":             "in2n_<url-safe random>",
          "member_id":         "<risk-local id>",
          "cert_pem":          "-----BEGIN CERTIFICATE----- ...",
          "signature":         "<hex DER ECDSA over the nonce>",
          "scope":             "<optional capability scope>",
          "runtime_kind":      "process",
          "display_name":      "<optional>",
          "transport_binding": "distributed" }
]]></artwork>
        <t><tt>in2n/hello</tt> -- reconnect. A mismatched fingerprint or signature returns
MEMBER_NOT_TRUSTED (-32023) and counts toward auto-quarantine (<xref target="seccons-tofu"/>).</t>
        <artwork><![CDATA[
params: { "member_id":       "<risk-local id>",
          "key_fingerprint": "<hex SHA-256 of SubjectPublicKeyInfo>",
          "signature":       "<hex DER ECDSA over the nonce>" }
result: { "risk": "<risk name>", "trusted": true,
          "member_state": "active" }
]]></artwork>
      </section>
    </section>
    <section numbered="false" anchor="change-history-pre-submission-iterations">
      <name>Change History (Pre-Submission Iterations)</name>
      <t>This note is to be removed before publishing as an RFC. Before this first
Datatracker submission as <tt>-00</tt>, the document was iterated in the project
repository as internal revisions <tt>-01</tt> and <tt>-02</tt>; those iterations are archived
there. The summaries below record what changed across them, for reviewers who
followed the repository drafts.</t>
      <t>Changes in the pre-submission review passes (July 2026, from internal <tt>-02</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>Abstract and <xref target="trust-in2n"/>: the eN2N and iN2N security models are now stated
distinctly -- TLS 1.3 is integral to eN2N, while iN2N is mutually authenticated
at the application layer with TLS as an optional transport wrapper -- and the
risk-local CA is clarified to issue only the Border's hub certificate; member
certificates remain self-signed and pinned.</t>
        </li>
        <li>
          <t><xref target="handshake"/>: a non-consented peer is closed without a handshake reply
(matching the implementation), and the deterministic initiator is ordered by
the (AS, router-id) tuple, removing the equal-AS ambiguity.</t>
        </li>
        <li>
          <t><xref target="channel-sec-models"/>: the consent record's binding of the NCFED identity to
the expected claw domain is now normative.</t>
        </li>
        <li>
          <t><xref target="method-ref"/>: <tt>n2n/hello</tt> now specifies the <tt>cert_pem</tt>/<tt>signature</tt>
authentication members and the exact signed input (<tt>nonce || B</tt>).</t>
        </li>
        <li>
          <t><xref target="negotiation"/> retitled "Version Signaling and Capability Advertisement" to
reflect that no common version is negotiated.</t>
        </li>
        <li>
          <t>Protocol hardening, specified and implemented together: reassembly bounded to
16 MiB / 30 seconds with heartbeat-mid-reassembly a <bcp14>MUST</bcp14>-close protocol error
(<xref target="framing"/>, <xref target="seccons-dos"/>); task retrieval bound to the submitting peer
with non-owners answered as unknown (<xref target="semantics"/>, <xref target="seccons-deleg"/>);
MEMBER_ID_TAKEN (-32022) emitted on the wire (<xref target="errors"/>); and the
(AS, router-id) tie-break implemented for the federation channel.</t>
        </li>
        <li>
          <t>Design rationale added from transport/routing-area review: <xref target="discrimination"/>
now states why the shared port is a deployment constraint and that
general-purpose BGP stacks are not asked to adopt discrimination; a
transport-choice paragraph (TCP + custom framing versus QUIC/WebSocket,
including the head-of-line-blocking trade-off) added to the prior-art
appendix; <xref target="seccons-port"/> states why the in-place TLS upgrade has no
strippable STARTTLS command; <xref target="negotiation"/> defines the failure for an
unsupported future baseline (-32602 + close).</t>
        </li>
        <li>
          <t>Deep code-review reconciliation: the remote sever method was removed so
severing is strictly local (<xref target="operational"/>); the reassembly timer was
corrected so a zero-length-fragment drip cannot reset it (<xref target="framing"/>); TLS
1.3 is enforced as the minimum (<xref target="channel-sec-tls"/>). The eN2N trust model is
restated as asymmetric by role (<xref target="channel-sec-models"/>) -- domain-verification
applies to the acceptor-role credential, while the initiator authenticates by a
pinned self-signed possession proof -- matching the implementation rather than
overstating symmetry. The channel binding is described accurately as an
endpoint (not per-connection) binding, with replay/relay resistance from the
fresh confidential nonce and <xref target="RFC9266"/> <tt>tls-exporter</tt> noted as the intended
per-connection upgrade (<xref target="channel-sec-pop"/>, <xref target="seccons-peer-auth"/>).</t>
        </li>
        <li>
          <t>Agent agnosticism made explicit (abstract, <xref target="terminology"/>, <xref target="semantics"/>,
<xref target="prior-art"/>): NCFED is a wire specification that federates heterogeneous
agent engines, and the protocol/tool error separation is stated. Multi-
implementation interoperability with the independently developed Hermes agent
is recorded in <xref target="impl-status"/>.</t>
        </li>
      </ul>
      <t>Changes in internal <tt>-02</tt> (July 2026, from internal <tt>-01</tt>):</t>
      <ul spacing="normal">
        <li>
          <t>Asynchronous task delegation (<xref target="semantics"/>): completion signalling is now
explicitly advisory with polled state authoritative; callers reconcile
non-terminal tasks after channel re-establishment. Motivated by observed loss of
completion notifications across channel bounces in the reference deployment.</t>
        </li>
        <li>
          <t>New Security Considerations subsection "Observable metadata"
(<xref target="seccons-metadata"/>): the cleartext discrimination preamble (AS/router-id) and
the domain-verified SNI are documented as accepted, posture-surfaced residuals;
ECH is recommended where available.</t>
        </li>
        <li>
          <t>Confidentiality and integrity (<xref target="seccons-conf"/>): post-quantum hybrid key
exchange (e.g. X25519MLKEM768) is recommended opportunistically, with a
fail-loud require mode and honest posture reporting -- a group the
implementation cannot attest is reported as unknown, never as classical or
post-quantum.</t>
        </li>
        <li>
          <t>Sharing a listening port with BGP (<xref target="seccons-port"/>): the mesh session's trust
boundary is stated honestly -- cleartext BGP relying on transport encryption on
untrusted legs until the staged in-protocol upgrade ships.</t>
        </li>
        <li>
          <t>Operational Considerations (<xref target="operational"/>): endpoint persistence guidance --
persist the last successfully authenticated endpoint; never overwrite it on a
failed dial.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This protocol is developed and interoperation-tested by its authors on the first
three-node NCFED mesh (AS 65001, AS 65007, and AS 65099). Thanks to the reviewers of
the NetClaw project.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9y963bbSJIu+j+fAkf1o0g1QeviS1nqqRlZlqs0Zcvelqp7
es30skASktAmATYASla73M+yn+U82YkvLpkJkHJV712/jmdWtU0SibxExj2+
SNPUtUU7zw+SrYubPDnL2+N5dpe2Vap/TV7ls7zO2qIqk3d11VbTap4Mzo5f
nbwcbrlsMqnzW3qYP9hy06zNr6v6/iDJPy3drJqW2YLGntXZVZtOs2U1KbJy
WqXl9CqfpTs7rllNFkXT0Ojt/ZJ+eXpy8cqVq8Ukrw/cjEY7cNOqbPKyWTUH
yVU2b3JH79t3H/P7u6qeHbgkTa78FPGvrEiz67xsG/xjMV3yZ3sZ/mdyzf9a
rOZtsZznn4ry2t3m5YrekiTXRXuzmtBaslVbLejV99WqLvOWXvPxEf3vlHZj
i343p6+aln5307bL5uDRI3lwPK0Wj776qKNvb6oaU6ZhkuRqNZ/L/mz9Z3VT
Jsd+f7b4+6q+zsriH7ww+s2Rjp38hQbHSWF0+WW+yIo5/WTZYo//4xr/xHzk
21VdRLPdMMXxNNvaMKmzYnpTzbOGJjafrtq26L5sqp+WX39fqaPYz8d05E2b
TT/qA2uvfXFfl8mL7GNed983oc//A/+Z4LvxIt/0tu73rqxqWmtxywf8/tXx
471nu/rX7/aePNe/Ptn7bsf++tj/9enOc//Xvf3H+tfn3z1+ar99vmcjfPfk
yRP7wZM9/ut/nr89e//u+IAnaXcMH6b0abI33knOl/m0uCqmfMCymDarr3Oi
LVvO3d3d+G9NVdbL6ZjI4VETP8JPeJriPymIJn7Pn+l4icqTH+pqtZR38K1K
9nZ29+mfb47fdWf4pprl8+SY7mP+qfU3fvPsFvjtVH661F+Oi2rDLO2de0/o
n0d7R913HuG67vF/kwF9O/yV99JtTv37aMH9V7iivOod/JOd7/bsMPf37aye
PvbH9mx/xyjj+d5TO+Jnj/1vv9vd40//fPr+5Iefj96/7K7hz0Wd/7DKiCPR
1aSd+yEvjW3+lNNFm9uNTS5WJf3z4fO+o5GuMRJzlGW2zOvmUfhwObvaePDG
STIil+RonLysyry8yuez3qk/o3/+5egsXT+F5XJOZzYp5kV7n1RXOKfA8mlD
/QreZCVx2AWOiw+t2bwYemXW1nTT6TYWeXvFFEwy4ZGIg/usTHGSs/y2mObC
s9MsnsSjr1D4X7Iyydskm4+3NlDY2fkGCkvOaIuS87zG+4jQzs6HB8lR8nNJ
ZFI32Tx5SZs8bUl88WrP8+mqzpOjU1kkfdtMK/rlfZKVs+SUqL6u6Gx0rv9H
W1Bmdfa3bJ6lWdl8bbFn+ruHVuzSlGQcsVV6VevcxU3RJPSWFR+R3sa8Sdp/
WcKPaK2uWJCsxFD8GzqosmraYproWfGH8+w+rxO7lPSmrE3medskRTnLlzn9
p2zn9443rM1no+Qmx/7RxubVqsEmqyxK8/K6KPO8BtcSOZ4MRL1IlvRxszWi
TSHpQzNvtoZupqeSELnTZCtaY/1tk5AclIOhdY9oErfVxzyp80VF8rOtqnkz
4lMk/pVfQ6a2WfOxSTCQm1fldTonmpglF8fvkiZn9aQZJ0dzOpvV9Q1ftRnT
SEGzq/OrvM5LIqmiJMFWtgVvySiRSdNRZA7XN+mwxVFCc6U5JOcvf5K5qBZD
55TVk4KOEpRGwrqsFtgi3guX1dOboiUqJdKkz6Z11dBRF3Qe5ZSGmy2KsgAZ
gPUlk2pVzrKatuAwyXj3aJfzWUOvTj6W1d08n13njm46ljGlH9ORLLO6vf8W
50b/KOlS1Dk4Ck7jqqZ144xGOOjFkkirrVc8FT6T/BPdGGb5NQ1VLPKxboHX
t2jKeFWkr01vMnDD5I50qOTFD+/Sx7wXtC9Z01TTAsSStMwxMQXcp2Q5z+is
iVqzpKEP53kypzXnmKNbVnU7SlYNz7eomzatpi3dGk+ZoJe6oG3i94+TU5rP
MrufV9kMRxULaFpU2Vbu7oY0mGSzXEwGJECHTFEpiEzOlmhmATqYNryYNfHm
QG2p0l7v90QnC7pY+Wwc38sJXY48L2n2V0xsbUI737R0yUk5Khs3yM/2zoZ0
Vn9fFSCMxapd0dnJdaOjER26PeR9LqKds1/QiccjukHBAxYtNoW0W+JQs7RZ
0i0aEVlVLWgMs0wmYIdJXtbVfM7spqXf0L6+AkHQGCNwHX/MNBjdlPp+iWPl
M794fZ7sjvd5o/KMNprJlH7Hv6qu6TW0/9l8zpfhJsc2gSgcvZgOlYiX/n9J
t0CuKf4FNjetc7CcgjaBbwFNi0mv4E/be6IR4kk0xQIMg26orDslBgBeOUsG
y9WEuBu9dprXLX82BJET+RW0FPoB71dKvE/obNXkw4Q1Il68K3jxixymjNAB
5vWCbBZ6n5xPb00J8Uz8JuKrifBV7JTT94aVyagZjocehVGinAUfY18XGb1g
NivwKb8Nt4B4Bx8JHWDZ4LrYLZ1VecNMqc7phhE7I9LGioliD5UQsoQZTurp
KtzkkQtby4u14XUJE+L0GZ03vXoxTiChnJdQsxx3cqISyl9Vsjy86KGFE9ni
a3p3mTZkvEy9MMMjf6N1ObyYpslH19zQMzTEySeabMHiaw4qyMtsMs+Fv0Xy
myctZ04bcFvkd2MRq4tiNpvnzn0DkV9XM2J4YFzuNUQ9yb2S1DL6C5+8CSwW
fyrrTLDRG4mBeo7JN52YNtgrruK9Izk5r+5l0iyDiIsy321EY2nkwoDXEOOn
fzdYDun1tBASZ9DDcQn5H7QYZ++VvWr4ZtREbuPkz0RyCX2ZNCu6cDpnzMfE
M251YDUQCRCjDlclxwbfZvMVZg8R32KKOFWagT5/IMKYGR5okOy/WU8ig5FD
aLhbYnz0S7rChewczYKvJJHgx0bniuE8zdG2EIPLynuSw3VNUuw+IRUAvEhW
Es2T2CEdup8tTbCeMee3KU9y4oazwA55Ftgp7CbpUkQDcjnoGhFfJSZD7IQO
YZo1dh6YG4t3b5GQTME/bulCNAfO7RI/+HVJRMckZMPvG6ks/PxZjdYvX0Yq
GKH7RbIRG5mKRBQxCdXt4mdiPUQYWAnvTYIdGdK06T03OGm/YlJxMKKXoAnf
2cHnz93pffkypL3YIyWItmaxpK2J7n5C3H1G45KKxUsQTsAqZ2DpIiiOgkJz
fk+vXODl4u9RbiYEHcaoR3QfRaALCTAzM0aOd2RzukQzUtqzBdFXVmPIK1JQ
sIeJ3KqF6JGfP/uZyoL2sSDoTAsack6qZ3tDlmV+VXyirV3QgYM0offg9Xzc
GZNGUa5k5Vfz7Fomjrf+g1hKqsOwtkT7TpdnQpwPL9eBcJY0E/tGZvIYMzE9
QHkmkawoH/7u3EOVpbWQjTKK1dkEErJhbYSGpv/SoCOmFLBi0jaSSNuADkK/
ov/Sr/je55+WTN3Mezo+is+f1Y/x5QuG0y3hrfRKiyzgCdF9mU7wQphTeBH+
Hk29zK8rVY7xfPRPGeEpyQViSiJXIc2Yi7OEYO7Kb+Vv6fcHD+k4iepCYIHw
HnnNJGXNJPlDcvH21c8sxXGoouj4ew7Fo/L2DmngbSWaOj7NWyODEQtHVu7I
jFbpyIrOQ/LxkYnHR33JCCVTz5lGKOq+NunsDH9NY1w7lL5gFwbhVOcxRkSq
Xyn2QpiZP+dVSVvP2g9t0TffkBpMv5Qp8Oo7PoPP33TM9y+wRGly+gjUd38Z
RZto6NrN8bIbcKqOqRhkkQr5BlpDnefONleZC4kDGmmeTeQaineTtwhOxkPd
00jIGbsAh8WrHdgTSJ+pFVubx8Yk6bsrHP+KZBh9Qv/MyfLLjU8H+7Mms4Of
dJvN0HFynpMopTXNoSP1NXCWlLMcdFbJOLRzZTWHwj51IkwHU5J498wKVRli
bZL2DlpgOcMymo8FsYIhFJyKPt7erovm4/b2Af39Gk5A+rXzgvOKVLCGWZ1w
YNklYp6lagF+mqq4yjyYyzOjbtjmoMvauLZS5W5wERRdOmZeiYyvyjlmJLfK
/gXdPJ9fjYde3jYN6YYNTT8yx80U9+aQUZAKEBreK9awb0s+2mZ7e5R4dpKz
0U/KphwE1igU4smK5XeBV9MMt7ehnRbXpRj8ONryHuJrxIoo271z1gTh4M5j
hZgJqmjD9YOOzlbzMls44rcFvAXTPNAQe91WJU9dnB08vmqlH/P7ng6JG5E3
RG/YrGXLW0PCbZnzvoo9t845vS3CDi7cW7Jqm8LmTcYk2MgU7JT5LH4qewAm
OClKiPVPuOdFu859WUh2bDc+hNjQUf6vNmFK74K06hpk69aXWabGR3ln1k0i
YSHRFYl4jlhnzMfOyVZaiU4MZ5m351+yKbIUFZ/9aGBUJXhTQQodBE4IWY26
lsb2dmxrbG/z8ahHrwFb+eiyWcVj+xezhi6qEUJfXX+9aZ3eFQavndxASDf/
kWgA1WKxKv3+5uPrMdveSX51BZZOEq2+FjcOqUb44pIHYDFwmbwo6lmTuuoq
zdJXsNTyms5ELA767XUFUQs+c7Vi84U2EL4leuYC/k3vbhTbzv8TtEknyC4n
XqCP5snukDl6g0nPWa1SwWBRxLTMVyST5kyxYI+TnO5NKk5WdSBAywUlkZ5W
0PSwvyKrQNVQlfhWYICXpNaVhfz78zekY5IuVs2ra5NTuF8IKTbJ1pufzy+2
RvK/ydlb/vv7k//18+n7k5f4+/mPR69f+784/cX5j29/fv0y/C08efz2zZuT
s5fyMH2adD5yW2+O/rIl/GLr7buL07dnR6+3xN6NHbkQXsRkJ2q8ksrWMuE5
s5/ZRn5x/O7//d+7MB3+H7Id9nZ3n3/5ov/4bvfZY/rH3U2u3Kkq6YbJP+mQ
7x3UiIz1TnBVEl4FETLMSfAVMCWYEbS52/+NnfnrQfLHyXS5+/h7/QAL7nxo
e9b5kPds/ZO1h2UTN3y04TV+Nzuf93a6O9+jv3T+bfseffjHf58Ts0vS3e/+
/XsnNHJFumR1x+Yj0Y/oExCgBya3mNcNzEG9NTxwB8kRmaqxQT+K3bpHpypT
6R6KTc8WlKmg6rTnseHfyUmnXZDaU7CCMgMjrmCKbvKex8oHu7a9am93r17Q
daMRH/DwH0SeZeE6He/z4IqdvhkeHsXBBRoxcop3xpbfdTW9WX6bz9mA/5Fm
lKure5S8pZ9gOPYTJPC81dWyLnLWy+lqz6Bgm096qLrdPIliBUzbTNpwvmcf
+ULRUMFU39Ipb8mMm+CkhxIhKs2Di6GRSI7hs7RheUJy7FBPHnyMVSuEOGod
DxsGxwUmR9foPWk+TCASURgRlVwLL5yTqBaFJl6NSMhNvtuu45/mpd6gUfB5
mD4niplQgHknmbGzHkbXgjVqMM6a9CMaKjiChAiExIh/D7aO+KEtNX7oXfM5
EQdMibKiQbDceTVpxEEF8ygmDHXafQtnDuk/LZQ/mRz2BNPTdUY3i13XPFG+
JsLEOWaSf9J4RUcOjlRL5ReLnopD1XULE4R3qvGa6LfRUKZq0FG9ySUlRQ6r
63aK5ufd62GOM1ZLaBYdP7Sp02ykwpu3bBsfjZqJWsDcme8tD6T6Ek0GBi5J
eJtm0DmZ3WwIG3CwDJv3QPwgGYQvvB7MDoRYbybyUZtblT2aSsFT8cGiX59K
Fi2dd8JoULcO1kI8t47qThPaHG8Qlzfsekhxte1peu9wKEfnyaPkPbuV0tOX
RlyP1R+35pGK3VH2ozWnVAKHifmlaVqBS3sPE1+xe75R04qYKD3sw1zRSA3b
l2Be4nvnCA5W2laHwrqYsTVqhEzuOzq3ajis8Hgl9hyWb/L2Fn7j/E4klxch
9A1dV3Y9iNoqkp22/vPnq+I65Z98+UIj/vOf/3R/SP/v/vzB/WJOgp7fYqDX
RmJvw+ShP7/QCJKnkiTlXvmIo7ePwE8ffGTjCOyoid1RZEsTy+UhEfx99JkV
+3YkrHxE57uat6PxePyFRvg99uGknFawTA6Sny9epd91HW2/YRW/xxxeiQuS
duKPRtsvTtTz+f0fd/UjeDWb7/+oZ/N9dyPtD/8omRTtTvJvyfHbs4vTs5+P
oEQd6ngJvggO0N9xEZs8z4Pd/YRn35DN+qvUoAmLyR/CPhydfx//U658WsyS
wem728fDaBd+jzW87Hr/1Vhl5/xMvfHsit+4FlnDzqdXr8Jn6fcaM9A/A1L4
E4QOSLzWH8ma2zDCt2ff0pK3ZCswgtzJQcfu2Hw1uwNc/HxmA9Bf4zD9IA5D
DDsD/B7biAwN4u7J6buvnflDf36POYBLfj5IvvG8U5KO/s1yVowp83dbX0xk
qj8mLYgBwSmDGIcGQBsEDizoACnkGQVzbdXlSQ1Ud+LIiQxN2byVjAnvyWWJ
AznLPqU6zxYS/SQCy2bmkBOyS/GA6yVIdARLj2g/f9MLEjl3VCoNldXM8jKa
Tq4GCS3aqlWt6TUSgR6clj1NO7htXKtuGI3+ms5L1P6IXccY4tB83TDy2d+W
SBDnLp/PU/WoYT/SFJ4YR2p7VmYk5oasDLDyZlFbiFm8C9Oj2ZY5R3xtBtvb
us1Vvb3Nx8OmLykDM4d99gfuN3uAx/iyQvLLbWTHHj5/ouwGN2mRkfoP/2w3
TkVWB1kHhfgrV8uqjGfViZMcSgDdL0YUS1mO27QU+YFfCRzjSNEZJ29LfZhp
MHqhGHD2nJMn8BFnQQgHZg8q78p0Dl+22Abh7Vf9BzAh0n5otGnOnl5VBvd3
aF/pyVkDp0NyuvFB7Oxo7R0ILwg/tMwQTQ7AzuYzNe1IzcKZiElDZHgkR6SB
P5JdM05duIaOrOG/3ad6YnKQbDuRLkJ6K6yMKGBLpEW3oWsxqiZP6jN7t9dW
U6pHv63Y8PKXK5ftXEDQFXSut1kx5zQGtVDDIshII625Z5tP7tkAQmjTvKNF
a89O7ml4Mh2JWoeIbkwzxDF49xD6b+CU/URWsZhOOHDduf5OeMdivCTjMDy+
WJ1fMaeFnDjcz0/TWY3EaubpxGTIWSr3DW/HTcTLauSLlxIWUcVcXm6BGxCA
JgB42jCrLNDC1+jt8UkyoPs6FKpjThfdA+8ieqz6iL8OsMsfvBD43J6IzIHu
hdgNFwJbyTsGNRWve+JPA1ykyedyZFFGzYGjB7a97jPgldB/9vGfp/jPE/zn
sTr9oxmycwqZgxl7w3kAydsPqpjleK1H2fWlrCR0XvrkMf7DLz35DS+lASzz
1XIezChWxaNoumkPV8xlI2VGZwOXnKSZ2K5xkshBONAH2RdTRng+Io7f8rT3
WWc4uSXs6LEGGuJ0xV5uSNF0g1YNXxxm8urJ9Y46XMKRQ/bX0et3Z8KPkNuO
pAMJMlvcHY42icDh16xaeCkacR74Ddx0DjUemY/6CEmd2l9uCMqIizC9yzVo
opwWCYRpVM2RHEeOPu0D3h7U+K4iLBrwBp4ijx3PCzrTH0nEV5AdxDvlgu4+
FaGL32z5sbd8jAG1RkPbj0Kjc7hs1XVZ/IOs72gDiIKYNkbI0Mloa5AjziNH
p6qsNJo1xzFAANDmPyImbBSzKsOLvJJgsXpOXWI2Vea3a7Knt+ZDp3ocMlWn
eeSECIpeEy1LpWTIxVwtr+tMpSHGJg7DqX8uu2pz0U8iA2vr/OLo/QX9bosU
3ft5fsih8vVAnmzrxzxfNv1dceb16RH4qpQYzmycRMFH/tWq8XqxxSvZ/fT3
FUQIfJcOLxA9Jai8xMrH4vnoHUoWRwQxEunKBdzNmo+dkUZ1kyMJZ+kFFZOg
26ScYnuRhRAlDNBva04TF4WXtWrLzaKTvcsg4ZtkAN8fx+f+viqIwrhA4ehC
UsGJyO6gVSyL8qaa5w3vKpLacilA8Emd/cStonFYQ/heX0xSn3PbRlGwVDPK
OJUwVYcxiXrW+pimHWexSaQzm90iEgvNgGnDTwQBSjKW49xTHD1vLc+t1TR1
F0XY30QVeEqynjLiFG+9V7KFqudwzoYlcbDRxIUGOAHdLij5Et7K/cKh/hCZ
VkRpUrlCYirKJyPCdfQU51ewPtci18RLTo1W9qhWs7SiZHmdr8jHWZYvsCXb
23IjYKTNGm+MBWVje/uwF+oTVglOyUEPkSNZ6ziYkM3T5armD9mV2FGiGomB
fk2aQJ1i/T3J6OoUC1x7TvkAYzWbLNl99hwpadFlYVaucRWfCqcOSFo7zcWJ
AQyJZRYnhmJxdS+Jm3LYYhCq/RqbhJK/L7SOO9dPkmyJsma5bANkE2043Z1i
5nM6ewyQ7dfIX/SjZ2efvwlainOnkYkVmJ9pSqxSWeiKjT++cLCzYPc1yXfJ
1armyy8K3AFt7a86mEVEWlzmYVfzgO4DSohmDo4ou3PDcfJni85H85PstTZm
3ERY3jc2ij2+Tjy+kbamXt9kkz9yd8Nnexs+28fju/TVPumzT5KnyTPanuf/
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
t6E/w0MzhvZjszFDgBSSX5JjZHkhb+MMrtFeXsQv1hLolw1tgtAtiRexi6dJ
iTp6/frtn1+fnl/QzkkzJf56j74+evfu/ds/Hb3+8O7k7OXp2Q/R1/vx1yf/
9Q69VaOvH9PXL35++cPJBX3549HPMrr/+gl9/f7o4uTD69M3p/Li+N1P6euT
/zo5/hmu/Q8Xp29O3v58Eb5+Rl+fn/zp5L092H36O/r6h5+P3r98f3T6+sOL
12+Pf6If2te7O7puopQTzOFl/PRT3pZ1FdOTSqPNhof0xOcDSxdhQyQ6OEOA
/U0nnMQnvLEl068d+W849vjo97DGk7P3b1+//nDx9qeTsw+nZ3SMp9EJ7e3x
Nrx5cfL+w+nLDxdH9KvePu/th59gpy7e6ylHP3lsNPbhxdv3tN3rp7Uvx/Hh
+Ojd0YvXJx9kwO5PMF0igA9vX304P3777iQeJZxBseEM+isYyNqG6jRqeg0c
xU1iLLeLqyupyVZV2qsh0OJd+p80SrU0qULsvGe7u67tzjyD0/Y5nXzDpsrE
99m+Sf6kUGPnLL+sNddxMFmPDCGfV/X5m9i0Nl56lWfSO5cTEu2BgLqFScfQ
coLZxJK4DxAzFngJ7/bwo7EPcJO9r0bV52SLHWAfFDxt6yDZ2nmyv4V2n1s2
Qfrwv7fYAP3AohONq+1VH+hQVOzhYw/EsfVXHoK9rx/Ee4exLau0mMkruFrt
A/epl9dcQZodNVKb0/6paIDbdZF/ajG6RUu2/pp8ETPtsjN7K1ZSM22eTfK5
x9nVNM+sybmTc+xExJr3tkAVvPjhoW/jyn1JJK8CCWUMUyiIj4006is05zl2
OkUIW1cAEA37z4Yi9BQOcI1jimFhJfVHVvcKhoRiKchp/ssB5C8rUaWT3vGM
miU1cDSAWNRNNYcGqFmmPgXcKuGkFvTSDvdSoiMjj/ipQAfBM6QI1Z0Nu4wP
lk1TBH3CWV4Oua4Aqplj/2E2y5Y+W55f8S2anRbz2XoIMolDkNFEODtCyi/E
DSMmnj9SOUVBMislV8bvTpMbeFmnlNZrrs5+mHVuLg92XWfTHBm1sxxVEOq7
VixJA2S+irvaIR7glCgPBFks6vNiryo13UtbIlhkamToR8a92EphAeXEirQB
UEfBu+tDCVYvLIc4JzUUPtXTqwBp6GuZrDtedCd4tZpaEJ2Jll3FwYaRi8PN
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
SDHeJTTsGVfn7uA/ONqPnZxgAQA=

-->

</rfc>
