Signal Protocol / libsignal

P2P Protocol

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 .

Foundation

Details

License Copyleft (AGPL-3.0). https://github.com/signalapp/libsignal; the Android client is at https://github.com/signalapp/Signal-Android (AGPL-3.0)
Dev Status 🟢 Active
Owner Signal Technology Foundation (a nonprofit under section 501(c)(3) of the US Internal Revenue Code), which runs Signal
Governing Body Signal Technology Foundation, a US nonprofit
Country United States (the Signal Technology Foundation is a US 501(c)(3) nonprofit)
Start Year 2013
Stack Rust implementations with Java (JNI), Swift and TypeScript (Node) wrappers; Double Ratchet; zero-knowledge credentials; SGX and HSM attestation
Funding Donations to the Signal Technology Foundation, per its donation page; no other funding is stated in the cited sources
Last Investigated Oct 29, 2026

Affordances

End-to-end encrypted Contextual disclosure

P2P Protocol Attributes

Origins Private 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 Formats Defined by the libsignal code and Signal's published specifications
Collaborative Live Editing N/A
Rich Text Editing N/A
Mobile Support Yes: the libraries are used in the Android and iOS apps
Web Support TypeScript (Node) bindings are used by Signal Desktop; no web client
Native Apps Yes: Signal Android, iOS and Desktop apps use the library
Terms Free to use; AGPL-3.0 code; nonprofit service funded by donations
Funds Not stated by the project.
Based On The Double Ratchet algorithm and zero-knowledge credential research (the Signal Private Group System by Chase, Perrin and Zaverucha)
P2P Architecture Not peer-to-peer: end-to-end encrypted clients talk through Signal's central servers; the protocol itself is transport-independent
Overlay Network None: it relies on Signal's servers rather than an overlay
Content Addressing No.
Local-First No: messages are held on devices but delivery depends on Signal's servers
E2EE Yes: end-to-end encryption with the Double Ratchet algorithm
CRDTs Lib No: not a CRDT library.
Byzantine Fault Tolerance Not stated by the project.
Signature Yes: identity keys sign pre-keys and messages are authenticated within the protocol
Permissions Account-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 Position Application-layer cryptographic protocol, independent of transport
Asset / Value Embedding None: no token or value-transfer mechanism.
Protocol Maturity / Standardization Widely deployed and externally analysed; not an IETF or W3C standard; the maintainers say outside use is unsupported