### News
- **00:00 Intro**
Welcome to Nostr Compass Podcast #36 covering Amber relay-auth hardening, Citrine phone relay hosting, Nail email bridge, six open NIPs proposals, and deep dives on NIP-58 badges and NIP-22 comments.
- **00:17 Amber 6.5.0 closes a relay-auth confused deputy and encrypts stored secrets**
Amber 6.5.0 closes a NIP-42 confused deputy that let callers obtain kind 22242 auth events for unapproved relays, fixes NIP-46 replay, envelope-encrypts stored secrets, and adds caller authorization, fail-closed permission parsing, and secure QR screens. 6.5.1 re-encrypts on Keystore rotation; 6.5.2 debounces relay status and warms the account cache.
- **01:35 Cambium 0.4.0 signs for websites and sheds relay-auth bursts**
Cambium 0.4.0 adds website signing through validated nostrsigner: callbacks without inheriting native app permissions, fixes minimal-event signing, and moves rust-nostr from 0.44.2 to 0.44.8 for spec-following NIP-46 connect responses. 0.4.1 through 0.4.3 reserve queue slots ahead of relay auth, deduplicate kind 22242 signatures, and add per-identity authentication cooldowns.
- **03:00 Citrine 3.1.0 turns a phone relay into a group host and a site host**
Citrine 3.1.0 adds NIP-29 group hosting, NIP-86 relay management with a settings screen, and NIP-5A static websites with a modernized browse list defaulting to nsite.run, nos.lol, and nostr.land. The release adds author purge on ban, configurable REJECTED_KINDS, rebroadcast to external relays, and database-backed logs.
- **07:36 Vector 0.4.2 makes community moderation survive a spam wave**
Vector 0.4.2 queues rapid bans into one key rotation, explains dissolved-community invitations, and stops catch-up messages from ringing as new notifications. Cross-client review with Armada fixes sharded community list tie resolution, and mutes now apply across channels and DMs while syncing blocks, mutes, and nicknames between devices.
- **09:31 Sonar brings threaded replies to a mesh messenger with NIP-C7**
Sonar 0.1-alpha.13.1 adds Signal-style replies on NIP-C7 kind 9 chat with mentions, bounded Bluetooth reassembly, mesh-path signature verification, and FCM push fallback. 13.2 and 13.3 fix chat-open crashes and iOS keyboard overlap.
- **10:17 Nostria starts publishing podcasts and asks relays to count**
Nostria 4.1.70 and 4.1.71 add podcast publishing for premium subscribers as signed Nostr events. 4.1.69 uses NIP-45 COUNT for reaction, reply, and zap totals in feeds.
- **21:22 Nail brings email onto Nostr as gift-wrapped events**
Nail from the Formstr team launched at mailstr.app with kind 1301 mail rumors inside kind 1059 NIP-59 gift wraps, NIP-17 inbox delivery, NIP-32 folder labels, and Blossom attachments over 60,000 bytes. Its Node LMTP bridge grades incoming mail into four provenance states and authenticates API calls with NIP-98.
- **31:45 Glow stores wallet labels on relays under a passkey-derived identity**
Glow derives a Nostr identity from passkey login and lists or saves wallet labels to relays under that identity, collapsing byte-identical duplicates across partial relay coverage.
### Releases
- **11:13 MDK 0.9.14: fail-closed group history through faster group creation**
MDK 0.9.12 makes missing fork anchors a hard error in PR #1329, persists leave proposals atomically in PR #1360, and refuses to guess manifest-less incident replay in PR #1140. 0.9.13 adds storage format v2 in PR #1421, and 0.9.14 adds pre-uploaded founding images in PR #1498 with KeyPackage batching in PR #1494.
- **13:58 Divine Mobile 1.0.20: minting a badge without leaving the app**
Divine Mobile 1.0.20 lets users mint and award NIP-58 badges in-app and explains earning requirements when a reader taps a profile badge, alongside light theme, stop-motion editor tools, and screen-reader support.
- **15:05 ClipRelay 0.2.0: pairing a signer with a camera**
ClipRelay Android 0.2.0 adds nostrconnect:// QR login and camera scanning of bunker URLs, with a sixty-second bunker timeout and restored Amber retry. Desktop 0.2.0 carries the same timeout and login-tab fixes.
- **16:20 Bark 1.3.9: a browser signer that runs on Android**
Bark 1.3.9 declares Android support for Firefox with tab-based approval when popups are unavailable, verified on GrapheneOS with Firefox 153.0.4. 1.3.8 limits Heartwood dialect probes to Heartwood-identified signers so standard sign_event calls reach rust-nostr bunkers.
- **17:20 Bray 3.0.0 and Toll Booth 6.0.0 move to a shared wallet-connect library**
Bray 3.0.0 and Toll Booth 6.0.0 adopt nwc-kit for NIP-47 payments with reproducible byte-identical builds across two independent runners. Toll Booth 6.0.1 through 6.1.2 pin deploy host keys and restore image builds.
- **17:53 NoorNote 1.3.4: joining encrypted communities from an invite link**
NoorNote 1.3.4 adds encrypted Armada and Concord community joins through invite links with activity notifications, plus controls for hiding external quote posts globally or per author.
- **18:27 Mostro moves dispute chat off gift wrap**
Mostro Mobile 1.3.2 migrates dispute chat from NIP-59 gift wrap to kind 14 chat envelopes with durable per-conversation cursors. mostro-core 0.14.5 serializes the rumor identifier inside the gift wrap in PR #164.
- **19:28 NYM 3.73.522: encrypted group chats and an encrypted local store**
NYM 3.73.522 encrypts the local SQLite store after 3.73.521 refines encrypted group chat and 3.73.520 fixes content-security-policy and duplicate-message presentation.
- **19:55 Morganite 0.0.4: verifying a blob before it is cached**
Morganite 0.0.4 verifies Blossom blob hashes in a single pass before caching, tracks cache size incrementally, moves blocking network calls off the main thread, and persists logs to a local database.
### Project Updates
- **32:43 Amethyst rebuilds its relay authentication decision flow**
Amethyst merged PR #3899 redesigning NIP-42 permissions and decision flow, PR #3905 waiting for challenge resolution, PR #3931 defaulting new accounts to always authenticate, and PR #3906 recognizing NIP-29 groups and Concord communities as joined venues.
- **34:05 nostrord implements an unmerged encryption-key proposal**
nostrord merged NIP-4e encryption-key support in PR #261 with kind 10044 keys held locally, device pairing over kinds 4454 and 4455 in PR #247, and relay-scoped group identifiers in PR #269 and PR #272.
- **36:08 nostream adds a relay monitor and mints invite codes**
nostream merged NIP-66 relay monitoring in PR #724, NIP-43 invite-code minting in PR #732, and NIP-13 proof-of-work advertisement in PR #680, plus NIP-90 job persistence in PR #727.
- **37:05 rust-nostr fixes a gift-wrap identifier and rejects protected reposts**
rust-nostr PR #1444 computes the rumor identifier before gift-wrap encryption, PR #1445 rejects reposts of NIP-70 protected events, and PR #1450 tolerates missing NIP-47 response amounts.
- **37:44 NDK adds post-quantum direct messages and drops a GPL dependency**
NDK PR #713 adds hybrid post-quantum direct-message encryption with ML-KEM-1024 alongside classical key agreement, and PR #712 replaces a GPL-3.0 Dilithium implementation with fips204.
- **38:25 Nostter adds bookmark lists, profile badges, and Blossom uploads**
Nostter merged NIP-51 bookmark list shapes in PR #2311, NIP-58 profile badge handling in PR #2281, Blossom uploads in PR #2298, and NIP-05 mention autocomplete in PR #2303.
- **38:50 Zap Cooking binds admin routes to signed requests and encrypts stored wallet connections**
Zap Cooking PR #622 encrypts stored NIP-47 connection strings with NIP-44, PR #626 replaces spoofable admin pubkey checks with NIP-98 authentication, and PR #627 clears account data on logout.
### NIP Updates
- **39:20 NIPs PR #2438 proposes NIP-9A, comment-based patching — Open**
PR #2438 proposes NIP-9A where kind 1111 comments beginning with PATCH edit target content or tags on kinds 1, 11, 1111, 24, and 1621 with size and age limits.
- **40:44 NIPs PR #2437 proposes file encryption for NIP-94 — Open**
PR #2437 adds optional encryption-algorithm, decryption-key, and decryption-nonce tags to NIP-94 kind 1063 file metadata so Blossom hosts cannot read encrypted bytes.
- **41:56 NIPs PR #2436 amends NIP-7D — Open**
PR #2436 amends NIP-7D forum threads to allow kind 1-style formatting or Djot markup on kind 11 thread posts.
- **42:27 NIPs PR #2439 adds assign and unassign methods to NIP-86 — Open**
PR #2439 adds assign and unassign methods to NIP-86 so relay administrators can grant admin permissions without sharing the master key.
- **42:43 NIPs PR #2442 succeeds the audio-track proposal — Open**
PR #2442 ships kind 31337 track events and kind 31339 release objects in production at lightning.fm with optional NIP-57 zap splits.
- **43:20 Marmot PR #416 merged on 13 August and adds a durability and restart contract to the protocol core — Merged**
Marmot PR #416 merged 13 August and defines recoverable logical facts, restart equivalence, publish and convergence interruption boundaries, and crash conformance scenarios without wire encoding changes.
- **44:52 Concord PR #18, covered previously in last week's issue as an open proposal, has now merged on 15 August — Merged**
Concord PR #18 merged 15 August, sharding the encrypted community list across kind 33302 events, removing the fifty-membership limit, and pruning retired entries to stay within relay size limits.
- **45:18 Concord PR #22 proposes community-owned audio and video brokers — Open**
Concord PR #22 proposes optional av_brokers on CORD-02 metadata with CORD-07 rendezvous drawing from community brokers or member-owned fallbacks.
- **45:38 Concord PR #23 makes an existing implementation behavior normative in CORD-05 — Open**
Concord PR #23 makes CORD-05 require that the owner genesis metadata edition opens under delivered keys before persisting a join, codifying behavior Vector and Armada already enforce.
### NIP Deep Dives
- **46:16 NIP Deep Dive: NIP-58 Badges**
NIP-58 splits badge issuance across a kind 30009 definition, a kind 8 award from the issuer, and a kind 30008 recipient display list with ordered a and e tag pairs. There is no revocation, transfer, or trusted issuer registry, so trust rests entirely on the issuer pubkey. Divine Mobile 1.0.20 mints and awards badges in-app, Nostter PR #2281 updates profile badge handling, and Amethyst publishes award events with its client tag.
- **50:57 NIP Deep Dive: NIP-22 Comments**
NIP-22 defines kind 1111 comments with uppercase root tags (E, A, I, K, P) and lowercase parent tags (e, a, i, k, p) so clients can fetch entire discussions without walking reply chains. Comments must not reply to kind 1 notes, leaving NIP-10 threading in place. Divine Mobile, Amethyst, and nostrord read and write kind 1111, and proposed NIP-9A patches in PR #2438 build on the same kind.