Docs Menu

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.