<?xml version="1.0" encoding="utf-8"?>
<!-- xml2rfc v3 source per RFC 7991. Generate text or html using xml2rfc. -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     ipr="trust200902"
     docName="draft-saihm-memory-protocol-00"
     category="info"
     submissionType="independent"
     xml:lang="en"
     tocInclude="true"
     tocDepth="4"
     sortRefs="true"
     version="3">
  <front>
    <title abbrev="SAIHM Protocol">The Sovereign AI Horizontal Memory (SAIHM) Protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-saihm-memory-protocol-00"/>
    <author fullname="SAIHM Project">
      <organization>SAIHM (Sovereign AI Horizontal Memory)</organization>
      <address>
        <email>architect@saihm.coti.global</email>
        <uri>https://saihm.coti.global/</uri>
      </address>
    </author>
    <date year="2026" month="May" day="18"/>
    <area>art</area>
    <workgroup>Independent Submission</workgroup>
    <keyword>AI memory</keyword>
    <keyword>post-quantum signatures</keyword>
    <keyword>Model Context Protocol</keyword>
    <keyword>GDPR Article 17</keyword>
    <keyword>cryptographic erasure</keyword>
    <abstract>
      <t>This document defines the Sovereign AI Horizontal Memory (SAIHM)
         protocol, a memory layer for AI agents that supports post-quantum
         identity binding, public-chain audit anchoring, per-cell
         encryption with wallet-derived keys, revocable sharing contracts,
         and cryptographic right-to-erasure aligned with Article 17 of
         EU Regulation 2016/679 (GDPR).</t>
      <t>SAIHM is the memory-layer protocol companion to the Model Context
         Protocol (MCP). MCP standardizes how AI agents reach tools and
         contextual data sources; SAIHM standardizes how AI agents
         persist, share, and erase memory across sessions, models, and
         vendors.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction"><name>Introduction</name>
      <section anchor="motivation"><name>Motivation</name>
        <t>The Model Context Protocol <xref target="MCP"/>, donated to the
           Agentic AI Foundation <xref target="AAIF"/> under the Linux
           Foundation on 9 December 2025, defines how an AI agent reaches
           external tools and contextual data sources. MCP solves the
           tool-access layer of the agent stack. It does not standardize
           how an agent persists memory across sessions, models, or
           vendors.</t>
        <t>Production AI agents today rely on one of several non-portable
           approaches: a local file system, a vendor-specific session log,
           or a vector database. None of these provides post-quantum
           identity binding, public-chain audit, cryptographic erasure
           aligned with Article 17 of GDPR <xref target="GDPR"/>, or
           wallet-bound sovereignty that prevents an operator from reading
           cell content.</t>
        <t>This document specifies the Sovereign AI Horizontal Memory
           (SAIHM) protocol. SAIHM is a memory-layer protocol that an
           MCP-capable agent may attach to gain durable, sovereign,
           revocably-shareable, cryptographically-erasable memory. The
           protocol is operator-agnostic, vendor-agnostic, and
           chain-agnostic. Where a public-chain audit anchor is named, it
           is named as a reference-deployment property, not as a protocol
           mandate.</t>
      </section>
      <section anchor="scope"><name>Scope</name>
        <t>This document defines:</t>
        <ul>
          <li>The cell shape (encrypted memory unit with canonical
              metadata).</li>
          <li>Identity binding using a post-quantum digital signature
              algorithm (ML-DSA-65, <xref target="FIPS204"/>).</li>
          <li>An encryption envelope deriving a per-cell DEK from the
              holder's wallet through a canonical HKDF chain
              <xref target="RFC5869"/>.</li>
          <li>An audit anchor profile, with a reference deployment on a
              public chain.</li>
          <li>Sharing contracts (temporary, permanent, syndicate).</li>
          <li>Cryptographic erasure semantics (DEK destruction +
              tombstone + content-address blacklist) aligned with GDPR
              Article 17.</li>
          <li>An MCP binding consisting of eight canonical tools.</li>
        </ul>
        <t>This document does NOT define:</t>
        <ul>
          <li>A specific blockchain (the protocol is chain-agnostic).</li>
          <li>Vector-database semantics (orthogonal).</li>
          <li>Agent runtime semantics (covered by MCP and runtime
              implementations).</li>
        </ul>
      </section>
      <section anchor="terminology"><name>Conventions and Terminology</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
           "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
           "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
           "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>",
           "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
           "<bcp14>OPTIONAL</bcp14>" in this document are to be
           interpreted as described in BCP 14
           <xref target="RFC2119"/> <xref target="RFC8174"/> when, and
           only when, they appear in all capitals, as shown here.</t>
        <dl>
          <dt>Holder:</dt>
          <dd>the natural person, organization, or autonomous agent that
              owns the wallet seed bound to a SAIHM cell.</dd>
          <dt>Operator:</dt>
          <dd>the entity providing storage, transport, and audit-anchor
              services to a holder. The operator MUST NOT have access to
              plaintext cell content.</dd>
          <dt>Cell:</dt>
          <dd>an encrypted memory unit, as defined in
              <xref target="cell-shape"/>.</dd>
          <dt>Receipt:</dt>
          <dd>a signed record of a SAIHM operation, anchored on a public
              chain.</dd>
          <dt>DEK:</dt>
          <dd>Data Encryption Key. A per-cell symmetric key derived via
              HKDF from the holder's identity key.</dd>
          <dt>KEK:</dt>
          <dd>Key Encryption Key version identifier. A protocol-level
              counter that permits cryptographic agility through rotation
              without invalidating existing cells.</dd>
        </dl>
      </section>
    </section>

    <section anchor="architecture"><name>Architecture</name>
      <section anchor="cell-shape"><name>Cell shape</name>
        <t>A SAIHM cell is the tuple:</t>
        <artwork align="left">
&lt;cellId, holderId, kekVersion, tier, ciphertext, signature, timestamp&gt;
        </artwork>
        <ul>
          <li>cellId: 32-byte content-addressable identifier derived from
              the ciphertext (SHA-256).</li>
          <li>holderId: 32-byte holder identity, derived from the
              holder's wallet seed (<xref target="identity-binding"/>).</li>
          <li>kekVersion: 32-bit unsigned integer identifying the KEK
              generation in force at write time.</li>
          <li>tier: short ASCII string naming the operator's storage
              tier (e.g., "FILECOIN").</li>
          <li>ciphertext: cell payload encrypted with the per-cell DEK
              under an AEAD cipher. AES-256-GCM is
              <bcp14>RECOMMENDED</bcp14>.</li>
          <li>signature: ML-DSA-65 signature over the concatenation
              (cellId || holderId || kekVersion || timestamp).</li>
          <li>timestamp: write-time UTC seconds since the UNIX epoch.</li>
        </ul>
      </section>
      <section anchor="identity-binding"><name>Identity binding (ML-DSA-65)</name>
        <t>Holder identity is derived from a wallet seed via the
           canonical HKDF chain:</t>
        <artwork align="left">
identityKey = HKDF(salt = "MPS-PQC-KEY-GEN-v1",
                   IKM  = walletSeed,
                   info = "MPS-AGENT-IDENTITY-v1",
                   L    = 64 bytes)
        </artwork>
        <t>identityKey is then used as the seed for ML-DSA-65 keypair
           generation per <xref target="FIPS204"/>. The public
           component is holderId; the private component
           <bcp14>MUST NOT</bcp14> leave the holder's machine.</t>
        <t>Every SAIHM operation <bcp14>MUST</bcp14> be authenticated by
           an ML-DSA-65 signature over the operation's canonical
           envelope. Verification <bcp14>MUST</bcp14> follow
           <xref target="FIPS204"/> using the public holderId.</t>
      </section>
      <section anchor="encryption-envelope"><name>Encryption envelope (HKDF chain)</name>
        <t>For each cell, the holder derives a per-cell DEK:</t>
        <artwork align="left">
DEK = HKDF(salt = KEK_v,
           IKM  = identityKey,
           info = cellNonce || "MPS-CELL-DEK-v1",
           L    = 32 bytes)
        </artwork>
        <t>where KEK_v is the current KEK generation and cellNonce is
           a per-cell 16-byte random value. The DEK is used directly
           with the AEAD cipher to encrypt the cell payload.</t>
        <t>KEK rotation is versioned. An operator <bcp14>MAY</bcp14>
           rotate the KEK under operator-defined policy; rotation does
           not invalidate existing cells because each cell carries its
           kekVersion. Implementations <bcp14>MUST</bcp14> verify the
           kekVersion at read time and reject cells whose KEK has been
           revoked.</t>
      </section>
      <section anchor="audit-anchor"><name>Audit anchor (public chain)</name>
        <t>For each operation (write, read, share, revoke, erase) the
           protocol emits a receipt:</t>
        <artwork align="left">
&lt;receiptId, cellId, operation, holderId, signature, timestamp&gt;
        </artwork>
        <t>The receipt is anchored on a public chain offering
           transactional finality and public-record properties.
           Anchoring <bcp14>MUST</bcp14> produce a chain-reachable
           identifier sufficient to reproduce the receipt
           independently.</t>
        <t>Reference deployment: COTI V2 mainnet, chain ID 2632500,
           block explorer https://mainnet.cotiscan.io. Implementations
           <bcp14>MAY</bcp14> use any public chain offering equivalent
           finality and public-record properties. The chain choice is a
           deployment decision; this protocol does not mandate one.</t>
      </section>
      <section anchor="sharing-contracts"><name>Sharing contracts</name>
        <t>A holder <bcp14>MAY</bcp14> share a cell with a grantee
           through a signed sharing contract:</t>
        <artwork align="left">
&lt;contractId, cellId, granteeId, mode, expiresAt, holderSignature&gt;
        </artwork>
        <t>mode is one of:</t>
        <ul>
          <li>TEMPORARY: revocable; expiresAt <bcp14>MUST</bcp14> be no
              later than timestamp + 86400 seconds (24 hours).</li>
          <li>PERMANENT: revocable; expiresAt <bcp14>MUST</bcp14> be the
              sentinel value 0 (no time bound).</li>
          <li>SYNDICATE: revocable; multi-grantee atomic; expiresAt
              <bcp14>MAY</bcp14> be 0 or a future time.</li>
        </ul>
        <t>Revocation is performed via a counter-signed
           contractRevocation anchored on chain. Once anchored, the
           revocation takes effect immediately; subsequent recall
           attempts by the grantee <bcp14>MUST</bcp14> be rejected by
           the operator.</t>
      </section>
      <section anchor="cryptographic-erasure"><name>Cryptographic erasure</name>
        <t>The erase operation is atomic at the cryptographic layer:</t>
        <ol>
          <li>The holder destroys the DEK for the target cell.</li>
          <li>A tombstone is emitted, carrying cellId and a
              timestamp.</li>
          <li>The cell's contentId is added to a public blacklist.</li>
          <li>An audit receipt is anchored on chain.</li>
        </ol>
        <t>Because the operator never held the DEK
           (<xref target="encryption-envelope"/>), the ciphertext at
           rest is computationally meaningless from the moment of DEK
           destruction. Erasure is irreversible by the operator.</t>
      </section>
    </section>

    <section anchor="tool-surface"><name>Tool surface (MCP binding)</name>
      <t>SAIHM exposes the protocol entirely through the Model Context
         Protocol <xref target="MCP"/> using eight tools. Each tool
         <bcp14>MUST</bcp14> authenticate the caller with an ML-DSA-65
         signature (<xref target="identity-binding"/>) over the tool's
         canonical request envelope.</t>
      <t>The tool surface is intentionally bounded at eight; protocol
         evolution proceeds through KEK rotation, governance vote, and
         parameter changes within the existing surface rather than by
         adding new tools.</t>
      <section anchor="tool-remember"><name>saihm_remember</name>
        <t>Signature: saihm_remember(content: string) -&gt; cellId</t>
        <t>Encrypts content with a per-cell DEK, persists the
           ciphertext to the operator's storage tier, anchors a write
           receipt on chain, and returns the cellId.</t>
        <t>Pre-conditions: caller is the holder; the holder's wallet
           seed is locally available.</t>
      </section>
      <section anchor="tool-recall"><name>saihm_recall</name>
        <t>Signature: saihm_recall(query?: string) -&gt; cells[]</t>
        <t>Returns the cells the caller owns plus any cells they have
           been granted via active sharing contracts. The optional
           query is a plaintext filter applied after decryption. query
           <bcp14>MUST NOT</bcp14> be transmitted to the operator.</t>
      </section>
      <section anchor="tool-forget"><name>saihm_forget</name>
        <t>Signature: saihm_forget(cellId: string) -&gt; tombstone</t>
        <t>Performs cryptographic erasure of the named cell
           (<xref target="cryptographic-erasure"/>). After saihm_forget
           returns success, the cell content <bcp14>MUST</bcp14> be
           computationally non-recoverable by any party, including the
           operator.</t>
      </section>
      <section anchor="tool-status"><name>saihm_status</name>
        <t>Signature: saihm_status() -&gt; { prs, bfsi, shards,
                                            contracts, governance }</t>
        <t>Returns the holder's dashboard. Fields:</t>
        <ul>
          <li>prs: Process Reliability Score, a normalized indicator
              (0..1) of operator performance against the protocol
              SLA.</li>
          <li>bfsi: Byzantine Fault Score Index, a normalized indicator
              (0..1) of operator integrity against the audit chain.</li>
          <li>shards: object describing distribution of the holder's
              cells by storage tier.</li>
          <li>contracts: list of active sharing contracts, with mode,
              granteeId, and expiresAt.</li>
          <li>governance: list of governance proposals in flight, with
              vote tallies.</li>
        </ul>
      </section>
      <section anchor="tool-share"><name>saihm_share</name>
        <t>Signature: saihm_share(cellId: string,
           granteeAgentId: string, mode: "TEMPORARY"|"PERMANENT"|
           "SYNDICATE") -&gt; contractId</t>
        <t>Emits a signed sharing contract granting the grantee access
           to the named cell under the named mode
           (<xref target="sharing-contracts"/>).</t>
      </section>
      <section anchor="tool-revoke-share"><name>saihm_revoke_share</name>
        <t>Signature: saihm_revoke_share(contractId: string) -&gt;
           revocationId</t>
        <t>Emits a counter-signed contract revocation. The grantee
           loses access at the moment the revocation is anchored on
           chain.</t>
      </section>
      <section anchor="tool-governance-propose"><name>saihm_governance_propose</name>
        <t>Signature: saihm_governance_propose(scope: string,
           payload: object) -&gt; propId</t>
        <t>Submits a governance proposal. scope is one of the
           protocol-defined governance scopes; payload is
           scope-specific. The set of scopes is itself
           governance-mutable.</t>
        <t>The governance utility (gSAIHM) is operational governance
           for a specific reference deployment and is NOT part of the
           protocol layer. Implementations <bcp14>MAY</bcp14> substitute
           alternative governance mechanisms while preserving the tool
           signature.</t>
      </section>
      <section anchor="tool-governance-vote"><name>saihm_governance_vote</name>
        <t>Signature: saihm_governance_vote(propId: string,
           vote: "FOR"|"AGAINST"|"ABSTAIN") -&gt; voteReceipt</t>
        <t>Casts a vote on a proposal. Vote tallies
           <bcp14>MUST</bcp14> be reproducible from chain.</t>
      </section>
    </section>

    <section anchor="wire-formats"><name>Wire formats</name>
      <t>SAIHM uses Concise Binary Object Representation (CBOR)
         <xref target="RFC8949"/> for cell payloads and receipts, and
         JSON-RPC 2.0 over the MCP transport for tool calls.</t>
      <t>A canonical cell payload (CBOR diagnostic notation):</t>
      <artwork align="left">
{1: h'...cellId...',
 2: h'...holderId...',
 3: 1,
 4: "FILECOIN",
 5: h'...ciphertext...',
 6: h'...signature...',
 7: 1747526400}
      </artwork>
      <t>The integer keys correspond to fields defined in
         <xref target="cell-shape"/>:
         1=cellId, 2=holderId, 3=kekVersion, 4=tier, 5=ciphertext,
         6=signature, 7=timestamp.</t>
      <t>A canonical receipt (CBOR diagnostic notation):</t>
      <artwork align="left">
{1: h'...receiptId...',
 2: h'...cellId...',
 3: "REMEMBER",
 4: h'...holderId...',
 5: h'...signature...',
 6: 1747526400}
      </artwork>
    </section>

    <section anchor="receipt-semantics"><name>Receipt and audit semantics</name>
      <t>For each tool call that mutates state (saihm_remember,
         saihm_forget, saihm_share, saihm_revoke_share,
         saihm_governance_propose, saihm_governance_vote), the operator
         <bcp14>MUST</bcp14> emit a receipt anchored on the audit
         chain.</t>
      <t>The receipt <bcp14>MUST</bcp14> include the operation type,
         the cellId (or contractId, or propId), the holderId, and the
         timestamp.</t>
      <t>The receipt <bcp14>MUST NOT</bcp14> include cell plaintext,
         the DEK, or the wallet seed.</t>
      <t>Receipts for erasure (saihm_forget) <bcp14>MUST</bcp14> also
         include the tombstone identifier and the contentId blacklist
         reference.</t>
      <t>Read-only tool calls (saihm_recall, saihm_status)
         <bcp14>MAY</bcp14> emit receipts under operator policy;
         receipts for read-only calls <bcp14>MUST NOT</bcp14> include
         cell plaintext.</t>
    </section>

    <section anchor="security"><name>Security considerations</name>
      <section anchor="security-pq"><name>Post-quantum identity</name>
        <t>ML-DSA-65 <xref target="FIPS204"/> is the protocol's
           authentication primitive. ML-DSA-65 is a NIST-selected
           post-quantum digital signature algorithm in the FIPS-204
           family. An adversary with a cryptographically relevant
           quantum computer cannot forge SAIHM signatures.</t>
        <t>Implementations <bcp14>MUST</bcp14> use the FIPS-204
           parameter set named ML-DSA-65. Implementations
           <bcp14>SHOULD</bcp14> include the kekVersion in every signed
           envelope so that key-rotation events are themselves
           signed.</t>
      </section>
      <section anchor="security-key-custody"><name>Sovereign key custody</name>
        <t>The wallet seed and the derived identity key
           <bcp14>MUST NOT</bcp14> leave the holder's machine. The
           protocol does not provide key escrow. A holder who loses the
           wallet seed loses access to their cells; the operator cannot
           recover access on behalf of the holder.</t>
        <t>This is intentional. The operator's inability to recover the
           wallet seed is the same property that prevents the operator
           from reading cell content.</t>
      </section>
      <section anchor="security-erasure"><name>Cryptographic erasure properties</name>
        <t>Cryptographic erasure
           (<xref target="cryptographic-erasure"/>) provides stronger
           evidence than logical (soft) deletion. Because the DEK is
           destroyed at the holder side, ciphertext at rest is
           computationally meaningless to any party, including the
           operator.</t>
        <t>Backups and replicas store only ciphertext. DEK destruction
           propagates erasure semantics to every copy of the
           ciphertext, anywhere, automatically. An operator
           <bcp14>MUST NOT</bcp14> cache the DEK.</t>
      </section>
      <section anchor="security-threat-model"><name>Operator threat model</name>
        <t>The protocol assumes an honest-but-curious operator: the
           operator is expected to provide storage and transport
           honestly but <bcp14>MAY</bcp14> attempt to learn cell
           content.</t>
        <t>Against an honest-but-curious operator:</t>
        <ul>
          <li>Cell plaintext is never accessible to the operator
              (encryption-before-egress + per-cell DEK).</li>
          <li>Cell signatures are reproducible from public keys, so the
              operator cannot inject forged cells.</li>
          <li>Receipt validity is verifiable against the public chain,
              so the operator cannot rewrite the audit trail.</li>
        </ul>
        <t>Against a malicious operator (one that deviates from the
           protocol), additional measures (e.g., threshold-replicated
           storage, multi-chain receipt anchoring) may be advisable but
           are out of scope for this protocol layer.</t>
      </section>
    </section>

    <section anchor="privacy"><name>Privacy considerations</name>
      <section anchor="privacy-art17"><name>GDPR Article 17 alignment</name>
        <t>The saihm_forget operation provides cryptographic-grade
           evidence of erasure aligned with Article 17 of Regulation
           (EU) 2016/679 <xref target="GDPR"/>. The DEK is destroyed;
           a tombstone is published; the contentId is blacklisted; and
           a receipt is anchored on chain.</t>
        <t>Article 17 requires erasure "without undue delay".
           saihm_forget is atomic at the cryptographic layer; there is
           no operator-side deletion queue that could fail to drain.</t>
      </section>
      <section anchor="privacy-minimization"><name>Minimization</name>
        <t>The audit log records cellId, holderId, operation, and
           timestamp. It <bcp14>MUST NOT</bcp14> record cell plaintext,
           the DEK, or the wallet seed. An auditor observing the chain
           learns when and by whom each operation was performed, but
           not the content of any cell.</t>
      </section>
      <section anchor="privacy-audit-content"><name>Audit log content</name>
        <t>Receipts anchored on chain are public. Holders
           <bcp14>SHOULD</bcp14> treat the existence of a cell
           (cellId, holderId, timestamp) as publicly observable. Where
           the existence of a record is itself sensitive, holders
           <bcp14>SHOULD</bcp14> use additional countermeasures outside
           the scope of this protocol (e.g., pseudonymous holder
           identities, batched-operation timing).</t>
      </section>
    </section>

    <section anchor="iana"><name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="FIPS204" target="https://csrc.nist.gov/pubs/fips/204/final">
          <front>
            <title>Module-Lattice-Based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2024" month="August"/>
          </front>
          <seriesInfo name="FIPS" value="PUB 204"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
            <date year="1997" month="March"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC5869" target="https://www.rfc-editor.org/info/rfc5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author initials="H." surname="Krawczyk"/>
            <author initials="P." surname="Eronen"/>
            <date year="2010" month="May"/>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba"/>
            <date year="2017" month="May"/>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author initials="C." surname="Bormann"/>
            <author initials="P." surname="Hoffman"/>
            <date year="2020" month="December"/>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="GDPR" target="https://eur-lex.europa.eu/eli/reg/2016/679/oj">
          <front>
            <title>Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 (General Data Protection Regulation)</title>
            <author>
              <organization>European Parliament and Council</organization>
            </author>
            <date year="2016" month="April"/>
          </front>
        </reference>
        <reference anchor="EU-AI-ACT" target="https://eur-lex.europa.eu/eli/reg/2024/1689/oj">
          <front>
            <title>Regulation (EU) 2024/1689 of the European Parliament and of the Council of 13 June 2024 (Artificial Intelligence Act)</title>
            <author>
              <organization>European Parliament and Council</organization>
            </author>
            <date year="2024" month="June"/>
          </front>
        </reference>
        <reference anchor="NIST-AI-RMF" target="https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf">
          <front>
            <title>AI Risk Management Framework 1.0</title>
            <author>
              <organization>National Institute of Standards and Technology</organization>
            </author>
            <date year="2023" month="January"/>
          </front>
          <seriesInfo name="NIST AI" value="100-1"/>
        </reference>
        <reference anchor="ISO-27001">
          <front>
            <title>ISO/IEC 27001:2022 Information security management systems --- Requirements</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2022" month="October"/>
          </front>
        </reference>
        <reference anchor="ISO-42001">
          <front>
            <title>ISO/IEC 42001:2023 Information technology --- Artificial intelligence --- Management system</title>
            <author>
              <organization>ISO/IEC</organization>
            </author>
            <date year="2023" month="December"/>
          </front>
        </reference>
        <reference anchor="MCP" target="https://modelcontextprotocol.io/">
          <front>
            <title>Model Context Protocol Specification</title>
            <author>
              <organization>Anthropic</organization>
            </author>
            <date year="2025" month="November" day="25"/>
          </front>
          <refcontent>Donated to the Agentic AI Foundation under the Linux Foundation on 9 December 2025</refcontent>
        </reference>
        <reference anchor="AAIF" target="https://aaif.io/">
          <front>
            <title>Agentic AI Foundation</title>
            <author>
              <organization>Linux Foundation</organization>
            </author>
            <date year="2025" month="December" day="9"/>
          </front>
        </reference>
      </references>
    </references>

    <section anchor="appendix-deployment" numbered="true" toc="default">
      <name>Reference deployment</name>
      <t>The reference SAIHM deployment runs on the COTI V2 Helium
         mainnet (chain ID 2632500). Protocol implementations
         <bcp14>MAY</bcp14> anchor receipts on any public chain offering
         equivalent transactional finality and public-record
         properties. The chain choice is a deployment decision; the
         protocol does not mandate one.</t>
      <t>The reference deployment publishes:</t>
      <ul>
        <li>npm reference implementation: @saihm/mcp-server (Apache
            2.0).</li>
        <li>Block explorer for chain receipts:
            https://mainnet.cotiscan.io.</li>
        <li>Crosswalks to NIST AI RMF, ISO/IEC 42001, ISO/IEC 27001,
            EU AI Act, GDPR Article 17, and MCP at
            https://saihm.coti.global/standards.</li>
      </ul>
    </section>
  </back>
</rfc>
