<?xml version="1.0" encoding="UTF-8"?>
<rfc version="3" xml:lang="en"
     ipr="trust200902" submissionType="IETF" consensus="false"
     category="info" docName="draft-schur-bcccop-uri-scheme-00">
  <front>
    <title abbrev="BCCCOP ⚮ URI Scheme">The "⚮" URI Scheme for Biometric-First Communication</title>

    <author initials="P." surname="Schur" fullname="Patrick Schur">
      <organization>theCwindLab</organization>
      <address>
        <email>patrick.schur@theCwind.com</email>
        <uri>http://www.theCwind.com</uri>
      </address>
    </author>

    <date year="2026" month="June" day="18"/>

    <abstract>
      <t>This document registers the "⚮" (U+26AE, DIVORCE SYMBOL) Uniform Resource Identifier (URI) scheme
      for the Biometric-First Communication Protocol (BCCCOP). The scheme enables
      privacy-first, biometric-anchored addressing of resources and invocation of
      peer-to-peer operations across ultrasonic, BLE, and Wi-Fi transports.
      This document follows the URI scheme registration guidelines of RFC 7595.</t>
    </abstract>

  </front>

  <middle>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>

      <t>The Biometric-First Communication Protocol (BCCCOP) is a privacy-first,
      zero-trust protocol for peer-to-peer data exchange. It operates across
      three physical rails: a personal application rail (BPa), an ambient sensor
      rail (BPb), and a cross-device projection rail (BPc).</t>

      <t>All resources in BCCCOP are addressed through "closed atoms" — identifiers
      delimited by the Unicode character U+26AE (⚮). These atoms form the basis of
      a novel URI scheme that this document registers per the procedures defined
      in <xref target="RFC7595"/>.</t>

      <t>The scheme character U+26AE (⚮) was selected for its visual
      distinctiveness, its availability in the Unicode Basic Multilingual Plane,
      and its conceptual resonance with the protocol's separation-of-concerns
      architecture: each ⚮-delimited atom represents a sovereign, independently
      addressable resource.</t>

      <section anchor="requirements" numbered="true" toc="default">
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
        "OPTIONAL" 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>
      </section>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="scheme-syntax" numbered="true" toc="default">
      <name>URI Scheme Syntax</name>

      <t>The ⚮ URI scheme supports two formats, both of which normalize to a
      common canonical Abstract Syntax Tree (AST).</t>

      <section anchor="format-a" numbered="true" toc="default">
        <name>Format A — Hierarchical Addressing</name>
        <t>Format A addresses a resource by stewardness path:</t>
        <artwork><![CDATA[
⚮atom⚮;key=val;key=val#fragment
⚮://secure.trusted/note/BPa.03.01.01/meeting-notes#section-3
]]></artwork>
      </section>

      <section anchor="format-b" numbered="true" toc="default">
        <name>Format B — Command Invocation</name>
        <t>Format B invokes an operation through a cross-device Trojan window:</t>
        <artwork><![CDATA[
⚮:@authority!operation(arg)(arg)?key=val#fragment
⚮:@alice!stream(content=hello)?security=crypto
]]></artwork>
      </section>

      <section anchor="abnf" numbered="true" toc="default">
        <name>ABNF Grammar</name>
        <t>The complete ABNF grammar for the ⚮ URI scheme, per
        <xref target="RFC5234"/>, is:</t>
        <sourcecode type="abnf"><![CDATA[
; BCCCOP URI — Unified Grammar
; Supports Format A (hierarchical) and Format B (command)

BCCOP-URI     = format-a / format-b

format-a      = "⚮" atom-id "⚮" [ ";" param *( ";" param ) ] [ "#" fragment ]
format-b      = "⚮" [":" authority] "!" operation [ "(" arg *( ")" "(" arg ) ")" ]
                 [ "?" query ] [ "#" fragment ]

atom-id       = 1*( ALPHA / DIGIT / "#" / "-" / "_" / "." )
authority     = "@" 1*( ALPHA / DIGIT / "-" / "_" )
operation     = ALPHA *( ALPHA / DIGIT / "-" / "_" )
arg           = *( ALPHA / DIGIT / "-" / "_" / "=" / "." )
param         = key "=" value
key           = ALPHA *( ALPHA / DIGIT / "-" / "_" )
value         = *( ALPHA / DIGIT / "-" / "_" / "." / ":" )
query         = param *( "&" / ";" param )
fragment      = *( ALPHA / DIGIT / "-" / "_" / "." )
]]></sourcecode>

        <t>All ABNF productions use the Core Rules from
        <xref target="RFC5234"/>.
        The scheme delimiter is the single Unicode character U+26AE (⚮), UTF-8
        encoded as 0xE2 0x9A 0xAE on the wire. When used in URIs, ⚮ MUST be
        percent-encoded as %E2%9A%AE per <xref target="RFC3986"/>
        when appearing outside the scheme position.</t>
      </section>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="semantics" numbered="true" toc="default">
      <name>Scheme Semantics</name>

      <t>The ⚮ URI scheme operates within the BCCCOP protocol stack. URIs
      resolve to one of 261 Atomic Type Inventory (ATI) elements across 38
      families, classified into three tiers:</t>

      <dl>
        <dt>TIER_0 (System-only):</dt>
        <dd>Biometric, Trojan, Gibber-Link, Break-Glass, Consent, Witness.
        These atoms cannot be authored from the no-code user interface.
        Emission requires biometric re-authentication and generates an
        audit frame.</dd>

        <dt>TIER_1 (User flows):</dt>
        <dd>Action, Resource, Sharing, Topology. These atoms form the
        standard user-facing command surface.</dd>

        <dt>TIER_2 (Shell):</dt>
        <dd>Tag, Hash, Unit, Country, Language. Top-level navigation and
        internationalization atoms.</dd>
      </dl>

      <t>The canonical ATI catalog (261 atoms, 38 families) is published at
      <eref target="https://github.com/DrmedPatrickSchur/bubblepress/blob/main/assets/0%20ATI_canonical.csv"/>
      and carries a BLAKE3 content hash pinned in the screen manifest.</t>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="encoding" numbered="true" toc="default">
      <name>Encoding and Transport</name>

      <t>BCCCOP URIs are transmitted over three physical carriers, selected by
      the atom's tier classification:</t>

      <ul>
        <li><strong>Ultrasonic (Gibber-Link™):</strong> 4-FSK modulation at
        18.0/19.0/20.0/21.0 kHz, 100 symbols/s, 200 bps. Used for zero-trust
        device pairing and TIER_0 pre-verification handshakes.</li>

        <li><strong>Bluetooth Low Energy (BLE 5.3):</strong> GATT service with
        BCCCOP-specific characteristics. Used for TIER_0 data exchange with
        hardware attestation.</li>

        <li><strong>Wi-Fi Direct / QUIC:</strong> Sustained projection streams
        for TIER_1 and TIER_2 content delivery.</li>
      </ul>

      <t>TIER_0 atoms are restricted to BLE and Wi-Fi Direct carriers; they
      MUST NOT be transmitted over ultrasonic (to prevent eavesdropping on
      biometric data). All other tiers may use any available carrier.</t>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="operations" numbered="true" toc="default">
      <name>Operations</name>

      <t>The Trojan Window lifecycle drives Format B command execution
      through a 9-state finite state machine:</t>

      <artwork><![CDATA[
Idle → Discovered → PreVerified → Authorized → CoAuth → Live
                                                          ↕
                                          Suspended ← Live → Revoked → Wiped
]]></artwork>

      <t>Each state transition requires one or more of: biometric
      re-authentication (Face + Voice cascade per <xref target="RFC9106"/>),
      stewardness accordance check, Gibber-Link X25519 3-party key exchange,
      or memory-wipe attestation (BLAKE3 proof).</t>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>

      <t>This document requests the registration of the "⚮" URI scheme in the
      "Uniform Resource Identifier (URI) Schemes" registry, per the procedures
      of <xref target="RFC7595"/>.</t>

      <section anchor="iana-template" numbered="true" toc="default">
        <name>URI Scheme Registration Template</name>
        <dl>
          <dt>Scheme name:</dt>
          <dd>⚮ (Unicode code point U+26AE)</dd>

          <dt>Status:</dt>
          <dd>Provisional</dd>

          <dt>Applications/protocols that use this scheme name:</dt>
          <dd>BCCCOP (Biometric-First Communication Protocol);
          BubblePress application; Gibber-Link ultrasonic handshake</dd>

          <dt>Contact:</dt>
          <dd>Patrick Schur &lt;partnerships@theCwindLab.net&gt;</dd>

          <dt>Change controller:</dt>
          <dd>Patrick Schur (theCwindLab)</dd>

          <dt>References:</dt>
          <dd>This document (draft-schur-bcccop-uri-scheme-00)</dd>
        </dl>
      </section>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>

      <t>The ⚮ URI scheme is designed for biometric-first, zero-trust
      environments. The following security properties apply:</t>

      <ol>
        <li><strong>Biometric Anchoring:</strong> All TIER_0 atom emission
        requires a fused biometric cascade (Face + Voice + optional Fingerprint).
        The cascade produces a BLAKE3 hash that anchors iBubbleTag identifiers.
        Fresh biometric re-authentication is required for every TIER_0 operation
        per <xref target="RFC9106"/>.</li>

        <li><strong>Consent Vault:</strong> Cross-device operations (Format B)
        require a consent record in the Argon2id-encrypted consent vault. Consent
        is per-purpose, per-recipient, and instantly revocable.</li>

        <li><strong>Transport Security:</strong> TIER_0 data is encrypted with
        AES-256-GCM (12-byte randomized nonce, 16-byte authentication tag) per
        <xref target="RFC5116"/>. Transport-layer encryption uses QUIC
        (<xref target="RFC9000"/>) with TLS 1.3 (<xref target="RFC8446"/>).</li>

        <li><strong>Carrier Restriction:</strong> TIER_0 atoms are restricted
        to BLE and Wi-Fi Direct carriers. The ultrasonic Gibber-Link channel
        (4-FSK, 18-21 kHz) is used only for non-sensitive pre-verification
        handshakes, never for biometric or consent data.</li>

        <li><strong>Memory Wipe Attestation:</strong> The terminal Wiped state
        of the Trojan Window FSM produces a BLAKE3 attestation proof that the
        session memory was zero-filled. No sensitive data persists beyond
        session teardown.</li>

        <li><strong>Audit Trail:</strong> Every TIER_0 operation emits a
        cryptographically signed SES (Screen Element Streaming) audit frame
        anchored to the Hedera Hashgraph consensus service.</li>
      </ol>

      <t>Implementors SHOULD consult the BCCCOP RFC Conformance Audit
      (0RFC/OUTPUTclaude/BCCCOP_RFC_CONFORMANCE_AUDIT.md) for a detailed
      analysis of compliance with referenced IETF standards.</t>
    </section>

    <!-- ═══════════════════════════════════════════════════════════════════ -->
    <section anchor="interop" numbered="true" toc="default">
      <name>Interoperability Considerations</name>

      <t>The ⚮ URI scheme is consumed by a 41-crate Rust implementation
      (BCCCOP PoC BUILD, v0.1.0-lockin, 4759 passing tests). The canonical
      ATI catalog of 261 atoms is published as a CSV file with a
      BLAKE3 content hash pinned in the screen manifest, enabling
      independent implementations to validate their atom registry against
      the reference implementation.</t>

      <t>Implementations MUST support the complete ABNF grammar defined in
      <xref target="abnf"/>. Format B parsers MUST correctly handle the
      ⚮:@authority!operation(arg) pattern with URI query and fragment
      components.</t>
    </section>

  </middle>

  <back>
    <references>
      <name>Normative References</name>
      <reference anchor="RFC2119"><front><title>Key words for use in RFCs to Indicate Requirement Levels</title><author initials="S." surname="Bradner"/><date month="March" year="1997"/></front></reference>
      <reference anchor="RFC3986"><front><title>Uniform Resource Identifier (URI): Generic Syntax</title><author initials="T." surname="Berners-Lee"/><author initials="R." surname="Fielding"/><author initials="L." surname="Masinter"/><date month="January" year="2005"/></front></reference>
      <reference anchor="RFC5116"><front><title>An Interface and Algorithms for Authenticated Encryption</title><author initials="D." surname="McGrew"/><date month="January" year="2008"/></front></reference>
      <reference anchor="RFC5234"><front><title>Augmented BNF for Syntax Specifications: ABNF</title><author initials="D." surname="Crocker"/><author initials="P." surname="Overell"/><date month="January" year="2008"/></front></reference>
      <reference anchor="RFC7595"><front><title>Guidelines and Registration Procedures for URI Schemes</title><author initials="D." surname="Thaler"/><author initials="T." surname="Hansen"/><author initials="T." surname="Hardie"/><date month="June" year="2015"/></front></reference>
      <reference anchor="RFC8032"><front><title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title><author initials="S." surname="Josefsson"/><author initials="I." surname="Liusvaara"/><date month="January" year="2017"/></front></reference>
      <reference anchor="RFC8174"><front><title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title><author initials="B." surname="Leiba"/><date month="May" year="2017"/></front></reference>
      <reference anchor="RFC8446"><front><title>The Transport Layer Security (TLS) Protocol Version 1.3</title><author initials="E." surname="Rescorla"/><date month="August" year="2018"/></front></reference>
      <reference anchor="RFC9000"><front><title>QUIC: A UDP-Based Multiplexed and Secure Transport</title><author initials="J." surname="Iyengar"/><author initials="M." surname="Thomson"/><date month="May" year="2021"/></front></reference>
      <reference anchor="RFC9106"><front><title>Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications</title><author initials="A." surname="Biryukov"/><author initials="D." surname="Dinu"/><author initials="D." surname="Khovratovich"/><author initials="S." surname="Josefsson"/><date month="September" year="2021"/></front></reference>
    </references>
  </back>

</rfc>
