The cryptographic protocol suite behind the Signal messenger, published as the libsignal library. It contains the Signal protocol, including the Double Ratchet algorithm, with Rust implementations exposed as Java, Swift and TypeScript libraries, plus the cryptographic primitives and supporting components Signal uses: device-to-device transfer, remote attestation of server enclaves, zero-knowledge group credentials (zkgroup and zkcredential), usernames, and PIN-based secure value recovery keys. The repository is used by the official Signal clients and servers; the project says use outside Signal is unsupported and that APIs and implementations may change without notice. The messenger itself is a service run by the Signal Technology Foundation .
OriginsPrivate communication that works for everyone: end-to-end encryption designed for ordinary users, then spun out into a nonprofit foundation in 2018
Database N/A
Query Language N/A
Data FormatsDefined by the libsignal code and Signal's published specifications
Collaborative Live Editing N/A
Rich Text Editing N/A
Mobile SupportYes: the libraries are used in the Android and iOS apps
Web SupportTypeScript (Node) bindings are used by Signal Desktop; no web client
Native AppsYes: Signal Android, iOS and Desktop apps use the library
TermsFree to use; AGPL-3.0 code; nonprofit service funded by donations
Funds Not stated by the project.
Based OnThe Double Ratchet algorithm and zero-knowledge credential research (the Signal Private Group System by Chase, Perrin and Zaverucha)
P2P ArchitectureNot peer-to-peer: end-to-end encrypted clients talk through Signal's central servers; the protocol itself is transport-independent
Overlay NetworkNone: it relies on Signal's servers rather than an overlay
Content Addressing No.
Local-FirstNo: messages are held on devices but delivery depends on Signal's servers
E2EEYes: end-to-end encryption with the Double Ratchet algorithm
CRDTs Lib No: not a CRDT library.
Byzantine Fault Tolerance Not stated by the project.
SignatureYes: identity keys sign pre-keys and messages are authenticated within the protocol
PermissionsAccount-level and group-level controls in the Signal service; zero-knowledge group credentials protect group membership from the server
Semantic Web Compatibility N/A: no RDF, JSON-LD or SPARQL layer.
Smart Contract N/A: no ledger or smart-contract component.
Protocol Stack PositionApplication-layer cryptographic protocol, independent of transport
Asset / Value Embedding None: no token or value-transfer mechanism.
Protocol Maturity / StandardizationWidely deployed and externally analysed; not an IETF or W3C standard; the maintainers say outside use is unsupported
See something missing or that could be improved? Let us know →