Reticulum Protocol Specification

This appendix is an exact, English specification of the Reticulum (RNS) protocol, derived from and proven against the vendored Python reference (reference/Reticulum, RNS 1.3.5, commit d5e62d4). It is the wire contract the leviculum leviculum-core/leviculum-std crates interoperate against, and the foundation the LXMF Protocol Specification builds on.

Reticulum is a cryptography-based networking stack: self-sovereign identities, addressable destinations, encrypted packets, announces for discovery, links for sessions, resources for large transfers, and channels for ordered messaging, all medium-agnostic above a thin framing layer.

How to read this specification

  • Normative statements use RFC 2119 keywords (MUST, SHOULD, MAY). Every normative fact carries a file:line citation into the reference, a derivation with the arithmetic shown, or a labelled test vector [VEC-...].
  • Informative sections describe internal reference behaviour (transport tables, retransmission timing, resource window adaptation, keepalive math) that an implementation MAY diverge from without breaking wire or semantic compatibility.
  • Test vectors are the genuine byte output of the reference, regenerated by vectors/gen_vectors.py and pinned to the submodule commit. Ephemeral-key paths (encryption token, announces, link handshake) are frozen by injecting fixed randomness and time, and additionally carry a decrypt/verify/derive roundtrip so the semantic property is proven too.

Sections