Start
From install to a working encrypted round trip, then the one decision — which adapters you run — that constrains every page after it.
This section gets a real ciphertext moving between two identities on your runtime. You then replace the development adapters with production adapters.
Everything here is reversible. Nothing in Start commits you to a backend, a storage strategy, or a trust policy: those decisions start in Build.
Pick your runtime now
The site remembers the choice below and shows it in runtime-specific instructions on later pages.
The runtime this SDK exists for. Platform-native crypto offers no way to run the Signal Protocol in a React Native app — Hermes ships no WebCrypto and expo-crypto exposes no key agreement — so a pure-TypeScript implementation is the path.
npm install @open-e2ee/signal-protocol-sdk@0.1.0 expo-secure-store expo-sqlite drizzle-ormRequires a development build: SQLCipher does not run in Expo Go. Plan for that from the start. It is the most common surprise.
The fastest way to see the protocol work. The adapter is supported, and the browser threat model is not something a storage choice can fix.
npm install @open-e2ee/signal-protocol-sdk@0.1.0Services, integration tests, CLIs, and relay development. Also the runtime where you should consider why you run a client at all.
npm install @open-e2ee/signal-protocol-sdk@0.1.0The order these build in
-
Quickstart: run two identities, one development relay, and one encrypted round trip in a single process. This path needs no backend or accounts. Run it before you read the rest of this section. It verifies that the protocol works in your runtime.
-
Your runtime page: select Expo, Browser, or Node. Each page replaces the quickstart's in-memory store with a production store. It answers seven runtime-specific integration questions. These questions cover key location, lifetime, backend isolation, and prekey replenishment. They also cover reinstallation, cleared data, relay storage, and backups.
-
Choosing adapters: review the four slots, required slots, and maturity of each shipped option. This decision shapes the rest of the integration. Make it after you see one runtime work.
Then
Build is where the application architecture above the protocol starts, beginning with how a user becomes a set of devices.
If you would rather see a complete application than assemble one: Guides are end-to-end builds with every custody decision stated.