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#

  1. Local first. Anything that can work offline, works offline. Online paths are fallbacks, not requirements.
  2. The npub is the identity. A durable Nostr public key is the account; everything else is discovered from it.
  3. Publish capability, never presence. Descriptors say what a peer can do, never where they are or whether they are online.
  4. 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.