Nostr Integration
Stegstr is a Nostr client with steganographic transport. It uses Nostr events, keys, and (optionally) relays. Learn more at nostr.com.
Identity Modes
1. Local (Anonymous) Identity
- When you don't log in with Nostr, the app creates or reuses an anonymous key stored only locally (e.g.,
localStoragekeystegstr_anon_keyon desktop). - That key is a normal Nostr secp256k1 key: it has a public key (your "local" identity) and a private key for signing posts and DMs.
- Nothing is sent to relays until you turn Network ON. All posts and DMs stay in the app and in any image you embed.
- You can still embed and share images; recipients can Detect them without logging in.
2. Nostr (Logged-in) Identity
- Log in with your nsec (bech32-encoded private key) or 64-character hex private key. No internet is required for login.
- Your existing local-only posts are re-signed with your Nostr key and published to relays once when you first turn Network ON after login. They then appear on Nostr under your account.
- From that point on, new posts, likes, DMs, etc. are signed with your Nostr key. When Network is ON, they are published to relays.
- Recipients-mode encryption (embed for specific pubkeys) uses your Nostr key for NIP-04; include your own pubkey if you want to open the image later.
Sync Behavior
When you turn Network ON for the first time after logging in:
- The app re-signs all your previous local-only events (posts, DMs, profile) with your Nostr key.
- Those events are published to relays once. They will then appear in other Nostr clients.
- Ongoing activity (new posts, likes, DMs) is published to relays whenever Network is ON.
If you stay in local-only mode, no relay traffic occurs. Detect and Embed work fully offline.
NIP Compatibility
- Events: Kind 1 (notes), kind 4 (DMs), kind 0 (profiles), and others. Bundled events are standard Nostr JSON.
- DMs: NIP-04 style encryption (ECDH + shared secret). Only the sender and recipient can decrypt DM content.
- Signing: Desktop may use a stub signer for local/embed use; full NIP-01 (secp256k1 + Schnorr) requires
nostr-tools. Android uses full Nostr signing. - See Nostr NIPs for the full specification.
Network Toggle
The Network toggle (top-right) controls relay connection:
- OFF: 100% local. No relay traffic. Detect and Embed work offline. Posts stay in-app and in images.
- ON: Connects to Nostr relays. Syncs feed from relays and publishes your events when logged in.
Post Branding
All kind 1 notes published through Stegstr automatically end with Stegster so they are identifiable as coming from this app. The compose UI enforces a 4991-character limit (user-typed chars) to reserve space for the suffix.
DMs in Images
When you embed an image containing DMs (kind 4 events):
- DM content is NIP-04 encrypted. Only the sender and the recipient's private key can decrypt.
- To read a DM, the recipient must log in as the Nostr account you sent it to.
- To see the post (kind 1), no login is needed—Detect merges it into the feed. The DM appears in Messages, but content shows "[Decryption failed]" until they log in with the correct key.