Continuity without contact data
A person should be able to return, receive questions, and answer without first surrendering a conventional identifier.
Open-source application infrastructure Experimental · Flegias casework is planned, not live
Build confidential, resilient applications over infrastructure that must not be trusted with plaintext.
For human-rights and civil-society teams, journalists, safeguarding organizations, trusted intermediaries, and the developers who support them.
01 / Boundary Delivery systems move encrypted state. They are not entrusted with application plaintext.
02 / Continuity Sensitive work extends beyond one message: state, evidence, roles, recovery, and follow-up matter.
03 / Evidence Every security and maturity claim is bounded by what the repository can demonstrate today.
Styx now carries end-to-end encrypted messages between machines on different networks over public Nostr relays, delivers them through failures, and turns away an outside attacker. Here is the recorded test run.
Two machines on different networks exchanged MLS-encrypted messages over three public Nostr relays.
With TLS removed, exactly what a relay operator receives, the content is MLS ciphertext, byte-identical at both ends.
A relay cut off, the sender's network stalled: the message was queued, retried, delivered and acknowledged.
Replay, tampering, injection and a forged receipt from outside: nothing she published reached the application.
Milestone 1 complete. Milestone 2 at 31 of 41 tasks, 1,514 of 1,514 tests passing. Milestone 3 started early.
Why it matters. Whistleblowers, journalists and the people who handle their cases need to work over infrastructure anyone can run, without trusting whoever runs it with their words. This delivery layer is the base for Flegias, our Milestone 4 goal.
Limits: synthetic data · prototype test harness, not yet the SDK client · one sample per attack · pre-audit.
Read the progress notes in the repositoryConfidentiality is a boundary.
Trust is a system.
Styx is a platform-neutral secure application substrate. It is being designed to combine self-custodied identity, end-to-end-encrypted collaboration, verifiable state transitions, offline operation, and redundant delivery.
Reporting, safeguarding, source protection, and protected coordination need clarification, assignment, receipts, evidence history, retention, recovery, and asynchronous replies. Conventional systems often bind that continuity to identifiers or a central plaintext authority.
Styx separates product policy from application state, secure sessions, and runtime custody. It is infrastructure for applications, not a general-purpose messenger.
Read the public project briefEnd-to-end encryption protects content within a defined threat model. It does not automatically solve identity exposure, durable state, delivery truth, endpoint compromise, metadata, or organizational procedure.
A person should be able to return, receive questions, and answer without first surrendering a conventional identifier.
Cases need verifiable transitions, roles, receipts, deadlines, retention, and recovery—not an ambiguous stream of messages.
Relays can carry encrypted material while still observing metadata. Browsers, endpoints, recipients, and operators remain in the threat model.
No current implementation is intended to be the normative protocol.
A language-neutral, transcript-only corpus now provides cross-runtime
evidence while the application protocol remains incomplete and C0.3
remains NO-GO.
Planned first vertical
Workflow, roles, policy, safety language, and accessible reporter and operator interfaces.
Conformance evidence on main
A fully synthetic transcript corpus is replayed independently in Python and JavaScript against adversarial mutations. Corpus construction is complete; protocol completion and implementation alignment are not.
Bounded evidence
Membership, epochs, continuous group key agreement, convergence, and confidential delivery. Exact-pin interoperability is proven only for the isolated Phase B scope; a supported product adapter remains future work.
Browser foundation exists
Key custody, encrypted storage, workers, notifications, distribution, and platform integration. A future signed native profile could offer stronger origin assurance.
Planned · not yet available
Confidential case intake with a path back to conversation.
A reporter would create a fresh case context and high-entropy return capability locally, submit an encrypted case object, and use that capability later to receive questions and send answers—without an ordinary account.
Organizations would need role-based intake, assignment, rotation, revocation, retention, controlled export, continuity, and minimized administrative audit. Safe deployment also depends on trained handlers, independent escalation routes, legal and privacy review, incident procedures, and tested backups.
Flegias targets anonymity or pseudonymity only against declared observers under tested conditions. Network, device, timing, content, and human factors may still identify a reporter.
Explore the anonymous-dialogue use caseImplemented evidence is deliberately separated from Draft and planned work.
Reference evidence
A tested Dart reference ledger covers signed event chains, causal clocks, deterministic merge, offline outbox, retention and recovery. It is not normative or interoperable with the browser stack.
Inspect the reference evidenceBrowser foundation
The JavaScript stack contains a 1:1 MLS reference chat, authenticated QR pairing, Nostr validation, encrypted local custody, and pinned WASM boundaries. Current envelopes still expose metadata.
Review the capability assessmentBounded result
At the revisions recorded in the final Phase B report, Styx interoperated with the pinned MDK peer through a bounded synthetic direct-MLS lifecycle. This is not general Marmot conformance or product activation.
Read the bounded Phase B verdictApplication-protocol evidence
A transcript-only corpus, independent Python and JavaScript replay, and a closed adversarial mutation registry are merged on main. This is corpus evidence—not implementation conformance, a security audit, or product readiness. C0.3 remains NO-GO.
These are proposed engineering outputs, not delivery promises. Each security-sensitive change remains subject to a bounded contract, independent review, exact tests, and human approval.
Status as of 19 October 2026.
The transcript-only synthetic corpus and cross-runtime replay are merged. Milestone 1 added a bounded application-core interface contract and a Python reference evaluator. Remaining protocol decisions, conformance work, and implementation alignment stay separately gated.
Milestone 2 saves the MLS session into the encrypted browser vault and restores it after a restart or crash: authenticated records, all-or-nothing commits, a single writer, and restore that fails closed. Core modules are integrated on a review branch: 31 of 41 tasks done, 16 components in, and all 1,514 tests of its 18 suites passing. Browser and fault-injection trials and a closing security review remain. Target: a controlled-beta test profile, not production.
The public SDK interface and the delivery-layer contracts (queue, bounded retries, receipts, multi-relay publishing) are ratified. Implementation started on a separate branch, ahead of its funded milestone: the queue, retry, multi-relay and receipt modules are integrated and already ran in the recorded test run.
Build text-first accountless case intake, return dialogue, operator roles, revocation, retention, and safety UX.
Strengthen browser release controls and decide a future signed native profile with reproducible operations.
Commission independent review, remediate findings, test procedures, and pilot only within an approved scope.
No absolute claims.
The browser profile is weaker against an adversary controlling the web origin. Reproducible WASM does not authenticate every script delivered to a user.
Current delivery exposes routing, timing, size, and relationship information. Additional relays can improve availability while increasing the observer set.
End-to-end encryption does not protect a compromised device, keylogger, screen capture, or content copied by an authorized recipient.
IP addresses, browser fingerprints, writing style, attachments, monitored networks, and colluding infrastructure may identify a person.
Pruning cannot guarantee physical erasure from flash storage, backups, screenshots, or third-party replicas.
Styx has not completed an independent complete-product audit. Upstream review does not transfer to Styx integrations or operations.
Original Styx software and documentation are licensed under AGPL-3.0-or-later. Six exactly enumerated interoperability vector files use Apache-2.0 so independent implementations can reuse that evidence. Third-party components retain their upstream terms.
External code contributions are temporarily paused while contributor terms are defined. Issues, reproducible feedback, and private vulnerability reports remain welcome. Project names and official visual identity are governed separately from source-code permissions.
Evidence before promises
Inspect the architecture, challenge the threat model, reproduce the evidence, or bring a bounded use case. Never include sensitive information in a public Issue.