Signal Protocol

Getting started

Install the SDK, choose a runtime adapter, and create the first client composition.

Requirements

  • A modern browser, maintained Node.js release, or supported Expo runtime.
  • TypeScript is recommended.
  • A storage adapter suitable for the target environment.

Install

npm install @signal-protocol/sdk

Create a browser client

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 },
});

The user identifier belongs to your application. It is not a hosted Signal Protocol project identifier.

Choose infrastructure explicitly

The client does not silently select a hosted relay or object store. Register adapters at the application composition root and keep their credentials outside protocol state.

const client = await createSignalClient({
  identity: { userId },
  adapters: { storage, relay, blobStore },
});

Start with local test adapters

A local or mock adapter is the fastest way to exercise identity, session, and message flows before selecting production infrastructure.

Next steps

  1. Read Identity and trust.
  2. Select a runtime profile.
  3. Decide whether the AGPL or a commercial license fits the product.

On this page