Specification / v1

The Shum protocol

How identity, messages and delivery work in Shum. Everything you need to write a compatible client.

v1
Current implementation

Draft. The first stable version is in progress.

How the protocol works

In Shum, a profile is a set of keys on a device. Every message is signed and sealed in an envelope that only the recipient can open. The envelope is the same over Bluetooth and Nostr; only the delivery differs.

Shum ID
An identifier derived from the public Noise key
Envelope
Data encrypted for the recipient
Transport
Bluetooth nearby or Nostr over the internet

Specification v1

Protocol repository on GitHub

Client compatibility

Every client is checked against the same test vectors: signatures, envelopes, merge rules, transports. Any format change gets its own version number.

Go to the security model →