Skip to content

Protocol spec

These pages define the wire contract an independent server or client must follow. The key words MUST, MUST NOT, SHOULD and MAY are as in RFC 2119.

Page Covers
Signing Canonicalisation and the five signing families. Read first.
Federation Discovery, server-to-server authentication, signed routes, errors
Gateway The realtime WebSocket
MLS Telium’s RFC 9420 profile
Conformance Test vectors and the conformance suite

Precedence when sources disagree: test vectors, then code, then these pages.

Versioning, capabilities and negotiation are normative in Compatibility. Stability promises are in Stability, and federation behaviour in Federation overview.

Two rules apply everywhere:

  1. A reader MUST ignore unrecognised fields and MUST NOT strip them before verifying a signature.
  2. Adding a field is compatible. Changing what a signature covers is incompatible at any version.