From d657d79bc95062a8fc5e128e795e23bcefd0bf04 Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Tue, 6 Oct 2026 11:22:06 -0700 Subject: Cordn group chats: MLS groups delivered through a coordinator (Amethyst 1.17 interop) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit src/contextvm.js speaks ContextVM (kind 25910 inside ephemeral gift wraps) to a coordinator; src/cordn.js is the protocol (KeyPackages with hex-text identities, the 0xC04D metadata extension, exporter-keyed ChaCha20 sealing, unsigned nostr-shaped envelopes with the sender as MLS AAD, cordn1 group refs, a record engine like marmot.js); src/cordn-client.js mirrors marmot-client.js with the same interface, so the Messages group screens drive both — New group gains a White Noise / Cordn toggle. Verified against @cordn/cli (ts-mls) on the public coordinator both ways, from the engine (tools/cordn-interop-test.js) and from the real app (tools/cordn-ui-test.js). mls.js: the OpenMLS required_capabilities rule for GroupContextExtensions now applies only to groups that carry one. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01YRC6aKhwAud231ot9FPmhi --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 3ef7ae0..b925cf3 100644 --- a/README.md +++ b/README.md @@ -156,7 +156,9 @@ Ark servers: gRPC-web and MuSig2 spoken directly, no WASM. coinos runs - **Communities** on Concord: end-to-end encrypted channels compatible with Vector, including Vector's custom emoji packs (NIP-30) and community icons. Every user joins the coinos community; anyone can create or join others. -- **Group chats** on White Noise (Marmot), with a native-JS MLS (RFC 9420) +- **Group chats** on White Noise (Marmot) and on **Cordn** (the MLS group + chats in Amethyst 1.17 and the Cordn app, delivered through a coordinator + that only ever sees sealed bytes), both on a native-JS MLS (RFC 9420) implementation. - **Notifications** for mentions, replies, reactions and zaps, with push delivery to your devices. @@ -256,7 +258,7 @@ The app is static; these small services run beside it (Bun): | `src/features/` | Feature plugins (see Modular builds); `index.js` is rewritten at build time by `COINOS_FEATURES` | | `src/nostr.js` / `src/sync-*.js` | Encrypted state sync, relay pool, Blossom envelopes, the sync outbox | | `src/nostr-login.js` / `src/passkey.js` / `src/pomegranate.js` | Nostr signers, passkey PRF sign-in, Google via FROST | -| `src/dm.js` / `src/concord.js` / `src/mls.js` / `src/marmot*.js` | NIP-17 DMs, Concord communities, MLS and the White Noise layer | +| `src/dm.js` / `src/concord.js` / `src/mls.js` / `src/marmot*.js` / `src/cordn*.js` / `src/contextvm.js` | NIP-17 DMs, Concord communities, MLS, the White Noise layer, and Cordn over ContextVM | | `src/bip353.js` / `src/dnssec.js` / `src/bolt12.js` / `src/noffer.js` / `src/clink.js` / `src/lnurl.js` | Payment-name resolution with DNSSEC validation, BOLT12, CLINK, LNURL and zaps | | `src/sw-nwc.js` / `src/nwc-*.js` | Background NWC answering in the service worker | | `src/app.js` | UI controller (vanilla DOM, no framework) and feature registry | -- cgit v1.2.3