Specs
README.md · shown exactly as it appears in the repository
Bonafide Protocol
Status: Draft, v0.1. This specification is a living document and will change.
Bonafide is a connection-based protocol for online interaction that mirrors how people actually exist offline: there is no central identity, only connections — and every connection is unique, consensual, and controlled by the two parties who made it. Content and apps built on Bonafide interoperate the way email interoperates across providers, rather than being siloed per app.
The protocol has two layers:
- Layer 1 — Connections & Access Control. How two parties establish a private, encrypted connection, and how each connection controls what content it is permitted to receive. Subscriptions are the mechanism that implements this access control. This layer has no concept of identity or accounts — only connections.
- Layer 2 — Content & Domain. How an app (a "domain") defines the content types it shares over an established connection, and how that content propagates between subscribers.
Reading the spec
| File | Covers |
|---|---|
spec/00-overview.md |
Terminology, the two-layer model |
spec/01-messaging.md |
The message envelope, deduplication, and handler dispatch |
spec/02-connections.md |
Connection handshake, key exchange, the router's role |
spec/03-cross-domain.md |
Extending one connection across multiple apps/domains |
spec/04-access-control.md |
Access control — which content a connection may receive, and the subscription mechanism that implements it |
spec/05-content-model.md |
Content-type contract |
spec/06-propagation.md |
Hop-limited resharing, delete/update ordering |
spec/07-security.md |
Cryptography, threat model, trust boundaries |
spec/08-versioning-governance.md |
Spec versioning, change process, stewardship |
spec/09-identity-credentials.md |
Agent access — local credentials for a party to reach their own database |
Non-normative: spec/appendix-worked-examples.md
traces a connection handshake and a cross-domain subscription exchange against
concrete, illustrative data.
Reference implementation
A reference implementation exists today (an agent library and a router service) and powers Pools, the first production app built on Bonafide. This repository defines the protocol the reference implementation follows — it is not the implementation itself.
Governance
Bonafide Technologies Inc. is the current steward and copyright holder of this
specification. We intend to transition spec governance and trademark
stewardship to a non-profit Bonafide Foundation. See
spec/08-versioning-governance.md.
License
- The specification text (
spec/, this README) is licensed under CC-BY-4.0. - Any code or machine-readable schemas in this repository are licensed under MPL-2.0.
Non-goals for v1
This draft does not yet specify: per-field schema subsets (negotiating a reduced content-type shape per connection), or cross-operator host migration (moving an account to an independently-operated Bonafide host). Both are acknowledged future directions, not part of v0.1.