Recipient encryption-key registration
The at-rest DEK cascade needs each recipient’s content-encryption keys, but the federation directory carries only signing keys (Ed25519 + ML-DSA-65), and ML-KEM is not derivable from ML-DSA. 0.18 adds an optional encryption_pubkeys field-set on identity_occurrence (x25519 + ML-KEM-768), structurally parallel to transport_destination: self-certified, hybrid-signed, and rotatable without touching the signing identity. A recipient with no valid ML-KEM key is excluded from the grant (content stays encrypted), never downgraded to plaintext. Content-KEM, signing, and Reticulum transport are three separate keypairs, never reused. No 1+4 change.
§5.6.8.8.2 encryption_pubkeys
Three crypto tiers · self/family, Community, Commons
The old binary cut (self and family encrypt; everything else plaintext) is replaced by three tiers. self/family stays encrypted and structurally invisible. Community (community, affiliations) is encrypted under a per-community DEK with cleartext provenance: byte-confidential to members, discoverable by provenance. Commons (species, biosphere, federation) stays plaintext for anyone to inspect. The community DEK is the §10.5.3 epoch-DEK cascade, so a community is a stream its members subscribe to cryptographically. Mandatory, not opt-in. No 1+4 change.
§8.1.13.3 holder-inspectability§10.5.3 epoch DEK
Agent-identity hardening + cross-impl byte determinism
A pins-and-determinism wave over the locked 1+4 set, with no wire-format change. §10.1.5 adds the attestation tier model: local (deferred-signature, producer-only authority) versus federation (hybrid-signed, visible), plus promote. §8.1.12.7 “Self at login” binds one hybrid hardware-rooted user identity to app and agent occurrences sharing one Self DEK. §0.9.2.1 pins the three things JCS does not (array element ordering, byte-field to lowercase hex, timestamp form), and PQC at rest (wrap_algorithm: v2, X25519 + ML-KEM-768) becomes mandatory down to self/family.
§10.1.5 attestation tiers§0.9.2.1 determinism
Streaming standards folded in (SFrame, MLS, FIPS PQC)
The §10.5 streaming surface now conforms to the published standards rather than gesturing at them: the per-frame seal conforms to SFrame, the epoch-key rekey conforms to MLS TreeKEM (RFC 9420) with optional Post-Compromise Security, and SFrame / MLS / FIPS 203 / FIPS 204 / RFC 9180 join the normative references. No wire-format change. Also landed: the §0.1.1 normative-vs-informative split, the §1.5 adversary model and privacy non-goals, and a §1.4 honesty pass (inductive, not closure, with a named falsification target).
§10.5 streaming§0.4 references
Settlement linkage · the receipt, not the rail
Closes the last form of internet traffic in the completeness audit: commerce. Value transfer is not a CEG primitive (it rides USDC-on-Base via x402 under Identity=Wallet); 0.14 adds the optional, privacy-scoped attestation that links a federation action to its off-stack settlement. One new subject_kind settlement carrying settled_action_ref + rail + settlement_ref + an optional amount_commitment. Private by default (cohort_scope: self), auditability opt-in. CEG records the receipt; the chain settles the value.
§5.6.8.12 settlement
Realtime group communication as composition
Group video, voice, screen sharing, text chat, and topic-scoped channels with sub-channels are the same primitive set at N×N cardinality, composing from community + live_stream + chat_message + member/transport resolution. One new normative subsection (§10.5.8) maps the whole surface. Small groups use direct Reticulum links (low-latency mesh); large groups use an SFU relay. A full group-communication platform needs nothing beyond the locked primitives.
§10.5.8 group comms
DNS-free addressing · CEG over Reticulum, not TCP/IP
With the federation speaking CEG over Reticulum instead of TCP/IP, “who is in a community and how do I reach them” can’t lean on DNS. 0.12 locks that resolution as a chain of signed bindings: one new optional field transport_destination on identity_occurrence (a federation-key-signed binding of a Reticulum transport destination to an identity), plus a deterministic resolve_community / resolve_member_transport algorithm. The wire format expresses its own addressing layer, DNS-free and self-certifying.
§5.6.8.8.1 transport§8.1.13.1.1 resolution
Infrastructure cohort · the trust-root community subkind
The CIRIS canonical services (Registry, Lens, Node) need a community governed as a trust root, not a city: no location gate, and admission evaluated over the founder subset rather than all members (so flooding the membership can’t dilute the admission quorum). 0.11 codifies the second canonical cohort_subkind, infrastructure, with a one-payload constraint and trust-root conformance requirements. The shape the ciris-canonical trust root adopts instead of a family.
§5.6.8.10 infrastructure
Delivery axis · observer-share + streaming multicast
The third orthogonal envelope concern alongside visibility (cohort_scope) and revocability (subject_key_ids). Observer- share (N=1) and streaming multicast (N>1) are the same primitive at different cardinality: subscriber-set = community per Policy M; E2E directed delivery = key_grant cascade of the stream-epoch DEK over the roster. Three new optional envelope fields: delivery_mode, listed, history_on_join. New §10.5 streaming transport with per-stream transparency logs that don’t pollute the federation provenance log. JCS canonicalization is now normative. 1+4 structural-primitive set untouched: substrate-fan-out + 1:N media multicast compose from the same primitives as 1:1 attestations.
§4 envelope§10.5 streaming§0.9 JCS canonicalization
identity_type as a set · single-key role cohabitation
Wire-break (representation-only): a single key can now hold more than one role at once. §7 gating readsidentity_type as a set membership test rather than a single-valued field. Lets a registry-steward key also act as a community moderator without rotating into a separate identity.
§7 reserved prefixes
community + location_proof · cohort_subkind:geographic
New community subject_kind for cohort-scoped groups (not just affinity groups). location_proof with rough-only H3 precision enforcement at the wire format, so a community can be geographic without exposing exact coordinates of its members.
§5 namespace
self/family structural invisibility at the wire
The CEG locality dividend, made structural. Content scoped cohort_scope: self or family now suppresses holds_bytes emission at the substrate level. Privacy by absence of attestation, not by policy promise. No peer can request what was never advertised. Adds identity_occurrence + family as substrate-recognized cohort primitives.
§5.6.8.5 cohort_scope
event_listing + event-lifecycle dimensions
Events as a first-class content shape, with lifecycle dimensions (announced / starts / cancelled / occurred / finalized). Closes NodeCore#25 Gap 1 by giving the event-shape the same structural surface as media + governance.
§5.6.9 event_listing