Docs · Overview View on GitHub ↗
Sonar documentation
Sonar is a private, offline-capable messenger. It finds people over a Bluetooth mesh when they are nearby and reaches anyone else over the open Nostr network — with no phone number, no account, and no servers.
These docs describe the protocols and conventions behind the app.
Where to start#
- Discovery — how peers find each other over BLE and Nostr, and how capabilities are advertised.
- Payments — direct Bolt12 wallet payments and the in-chat receipt format.
- Stickers — the open sticker-pack directory published on Nostr.
- Hermes Agent — autonomous AI over Sonar DMs via sonar-cli and the Hermes gateway.
Principles#
- Local first. Anything that can work offline, works offline. Online paths are fallbacks, not requirements.
- The npub is the identity. A durable Nostr public key is the account; everything else is discovered from it.
- Publish capability, never presence. Descriptors say what a peer can do, never where they are or whether they are online.
- No new identifiers. Sonar rides existing bitchat mesh framing and standard Nostr event kinds.
These pages are generated from the
docs/folder of the repository. Use View on GitHub on any page to read the source.