Repository guide
Onym System
Onym is a private messenger designed so that no single company owns it — and a protocol for growing that property beyond messaging. This repository holds the cross-repository architecture and economic design: the whitepaper and the contract documents that define each independently ownable role in the system. It contains no code.
The idea in one paragraph
Most online services concentrate four powers in one operator: naming the user, presenting the interface, carrying the data, and deciding whether a shared action is valid. Onym separates them. A user's identity is a set of keys only they control. The UI is a replaceable window, not an account authority. Couriers move encrypted envelopes and media without reading them. A notary verifies group-state transitions against zero-knowledge proofs without storing conversations or a readable member list. Association registries attach human-readable names as revocable, consent-bound claims — the name is never the identity. Around this core, an open set of service and institutional seats (banking, charity, audit, arbitration, discovery, growth, sponsorship, recruitment) can be operated by anyone, and each earns only when a user or group actually selects it. The governing rule for every seat:
A component may exercise the minimum authority required for its role, and it may earn only when a user or group chooses it for that role.
What is in this repository
| Document | Defines |
|---|---|
| WHITEPAPER.md | The complete system model, design principles, economics, threat model, and roadmap |
| interface/ | The interface seat: honest presentation, no accounts, protected consent surfaces, disclosed economics, permanent exit |
| identity/ | The identity vault: key custody, capability requests, consent, rotation, recovery — with the current BIP-39 profile |
| message/ | Small-message courier boundary — with the current Nostr profile |
| blob/ | Encrypted media storage boundary — with the current Blossom profile |
| notary/ | Group shared-state validation — with the current Stellar/Soroban profile |
| recovery/ | Recovery Trustee boundary — provider-neutral enrollment, recovery, rotation, and exit, with cloud-custody and Shamir profiles |
| charity/ | Charitable coordination as the first non-messaging application seat (contract) |
| audit/ | Signed, expiring, revocable attestations about exact artifacts — audits, conformance runs, build provenance |
| arbitration/ | Party-chosen dispute deciders whose authority is bounded to one order's escrowed stake |
| discovery/ | Signed, replaceable catalogs for finding compatible instances of every seat without becoming a gatekeeper |
| lead/ | Paid distribution measured in aggregate, with no person-level install attribution (Telegram profile) |
| acquisition/ | Landing-to-store conversion services measured by store aggregates (App Store, Google Play) |
| sponsor/ | Foundation funding with bounded recognition and a capped governance path (Onym Foundation profile) |
| recruitment/ | Openings and candidate-consented introductions for every seat, without candidate ownership |
In review, not yet merged: a bank seat (accounts, custody classes, and
payments against vault-held keys, with a Stellar profile) and an
association naming seat (qualified names such as alice@writers.tallinn
issued by competing registries). See open pull requests.
How the documents work
Every seat follows the same two-layer pattern:
- an abstract contract boundary (
UI-X.mdorX.md) that fixes roles, authority limits, wire-neutral objects, obligations, error semantics, and privacy invariants — technology-free and implementation-independent; and - one or more implementation profiles (
X-<Technology>.md) that map the abstract contract onto a concrete stack (Nostr, Blossom, Stellar, BIP-39, Telegram, the app stores) and honestly record where current code falls short in a Known gaps section.
Documents state what is implemented, what is a profile requirement, and what is a gap. The frontmatter header on each file tracks proposal status. Nothing here is a claim of production security: the system is alpha-grade, unaudited, and several load-bearing pieces (identity rotation, forward-secret messaging, conformance fixtures) are explicitly open work — see whitepaper §19–§22.
What this repository is not
- Not code. Implementations live in the repositories below.
- Not an investment prospectus. No token exists or is implied; seats earn service revenue, not protocol rent.
- Not a certification authority. Anyone may implement any seat without permission. Discovery providers and auditors recommend; they never gate direct use.
Related repositories
| Repository | Responsibility |
|---|---|
onym-ios / onym-android |
Native clients: local identity, messaging, service selection |
onym-sdk-swift / onym-sdk-kotlin |
Shared proof and cryptographic primitives |
onym-contracts |
Soroban group-governance contract family |
onym-relayer |
Fee-paying transaction relayer and current deployment-manifest endpoints |
onym-infra |
One replaceable default deployment (Nostr, Blossom, relayer, TLS) |
onym-website / onym-papers |
Public explanation; research papers and protocol proposals |
Reading order
- Whitepaper §1–§4 — the thesis and system model (15 minutes).
- One seat pair end to end — message/UI-Message.md then message/UI-Message-Nostr.md is the most complete example of the abstract/implementation discipline.
- Whitepaper §16–§17 — how seats publish offers and get paid.
- The seats your work touches, starting from their Decision and Security and privacy invariants sections.
Proposing changes
Proposals follow whitepaper §18: a problem statement, wire-format changes, security and privacy effects, compatibility behavior, test vectors or a reference implementation, and an account of which seats gain or lose authority or revenue. Every new document takes the standard frontmatter header and the abstract-versus-implementation split. Existing groups remain governed by the exact contracts they selected; proposals cannot rewrite deployed authority retroactively.
This document is maintained in the public onym-system repository and rendered here from a pinned commit. The repository is the authoritative source — latest version on main →