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 GitHubClient compatibility
Every client is checked against the same test vectors: signatures, envelopes, merge rules, transports. Any format change gets its own version number.