JavaScript-first encrypted messaging

Private communication, composed your way.

A portable TypeScript SDK for encrypted messaging, devices, groups, attachments, and explicit storage and transport composition.

Browser nativeWeb Crypto and portable storage
Node and ExpoRuntime-specific adapters
AGPL or commercialChoose the rights your product needs

Protocol building blocks

Cryptographic state belongs to your product.

Compose a Signal-inspired protocol profile without outsourcing private keys, plaintext, or application ownership.

01 / Identity

Explicit trust

Versioned composite identities, safety-number comparison, rotation controls, and fail-closed trust mutation.

02 / Sessions

Modern session state

PQXDH, Double Ratchet, post-quantum ratcheting, multi-device session management, and bounded state recovery.

03 / Composition

Portable boundaries

Choose local storage, delivery, and encrypted-object adapters for browser, server, and native JavaScript environments.

Portable by construction

Private keys stay with your application.

Your runtime owns identity and session state. Explicit adapters connect the encrypted output to infrastructure you choose.

01Your applicationBrowser · Node · Expoprivate state
02Protocol SDKKeys · sessions · groupsciphertext out
03Your adaptersStorage · delivery · objectsexplicit boundary

The SDK defines the cryptographic and adapter contracts. It does not require a hosted Signal Protocol service.

import { createSignalClient } from '@signal-protocol/sdk';
import { indexedDbStore } from '@signal-protocol/sdk/local/store/web';

const storage = await indexedDbStore();
const client = await createSignalClient({
  identity: { userId: 'alice' },
  adapters: { storage },
});

await client.send('bob', 'hello');

One explicit composition root

Start locally. Add only the adapters you need.

The SDK surface stays stable while applications select runtime storage, transport, and object persistence independently.

Licensing

Open source or commercial production rights.

Use the complete SDK under AGPL, or purchase commercial rights for a proprietary product.

Community

AGPL

Free

For projects that can satisfy the AGPLv3 obligations.

  • Complete SDK
  • Self-operated infrastructure
  • Community support
Review licensing

Growth

Integration support

$20k/ year

Commercial rights with prioritized updates and implementation support.

  • One named product
  • Priority updates
  • Integration support
  • Additional products available
Schedule a meeting

Enterprise / OEM

Portfolio rights

$50k+/ year

Negotiated portfolio, redistribution, security, and support terms.

  • Product or portfolio scope
  • Onboarding and SLA
  • Security review
  • Redistribution terms
Schedule a meeting

Prices shown are the proposed annual list prices for the named scope. The signed commercial agreement controls product scope, renewal, support, and usage rights.

Begin with the protocol

Build the integration before choosing infrastructure.

Open developer docs