Audio

Nostr Compass Podcast #37

Nostr Compass Podcast #37

About this episode

### News - **00:00 Intro** Welcome to Nostr Compass Podcast #37 covering Postr, Nail's key-free mail notifier, Chama's escrow timer defect, Snort and Ditto NIP-22 reply rollout, and Six Years of Nostr Augusts. - **00:12 Postr launches as a small Android composer** Postr 1.0.0 is a deliberately small Android composer for kind 1 notes with NIP-55 Amber custody, a durable outbox, account-specific private drafts, and Blossom attachments with verified hashes. Publication uses NIP-65 write relays plus encrypted bootstrap relays, with a NIP-34 repository announcement on relay.ngit.dev. - **01:25 Infans encrypts family tracking and co-parent sync over Nostr** Infans is an Android baby tracker publishing encrypted kind 30078 NIP-78 events for partner sync under d-tag baby-tracker-sync and self-backups under baby-tracker-backup, with co-parent async notes inside the partner payload. - **02:03 walls.rip Ghost Chat brings PGP-encrypted chat to public Nostr relays** walls.rip Ghost Chat creates OpenPGP identities in the browser, encrypts messages to recipient public keys, and publishes armored ciphertext as kind 1 events to five default relays with room tags derived from PGP fingerprints. - **02:34 pakstr 0.13.0 through 0.15.0 makes Zapstore publication explicit** pakstr 0.13.0 through 0.15.0 repairs Blossom authorization with base64url and Content-Digest, validates the Zapstore publisher in 0.14.0, and writes listing metadata onto kind 32267 application events with release notes in kind 30063 content. - **03:28 Heterodyne specifies portable personas and encrypted social communication** Heterodyne composes Nostr signed events, Radicle storage, Marmot MLS group messaging, and KERI key-event logs into draft specifications for portable personas, encrypted comms, and social interaction layers. - **21:06 Six Years of Nostr Augusts** Nostr Compass #37 closes with an August retrospective from empty August 2021 through 2022 NIP-25 reaction generalization, 2023 NIP-19 naddr coordinates, 2024 addressable-event terminology, 2025 external-content reactions, and 2026 NIP-22 comment rollout in Snort and Ditto. ### Releases - **04:25 Nostr Java v2.0.8: subscription isolation and portable NIP-44** Nostr Java v2.0.8 routes EVENT, EOSE, and CLOSED to the named subscription instead of every listener, and makes NIP-44 use BouncyCastle's lightweight ChaCha20 engine without requiring process-wide JCE provider registration. - **05:32 NoorNote v1.3.6: profile statuses and classified listings** NoorNote v1.3.6 shows NIP-38 kind 30315 user statuses under profile NIP-05 names and renders NIP-99 kind 30402 classified listings throughout the app. - **06:21 nostrord v2.9.0: relay-scoped group state and media** nostrord v2.9.0 scopes NIP-29 leave and delete markers per relay, treats rejected duplicate joins as success, renders markdown image embeds, and adds NIP-17 kind 15 file rumors in direct messages. - **07:23 Nail v0.1.0: an Android client and a key-free arrival watcher** Nail v0.1.0 adds a Capacitor Android app for mailstr.app and a UniFFI notifier crate that subscribes for kind 1059 NIP-59 gift wraps tagged #p without holding key material, fetching the last two days by wall clock because NIP-59 backdates created_at up to two days. - **08:40 MDK v0.9.14 and v0.9.15: KeyPackage selection, epoch-gap recovery, and split relay roles** MDK v0.9.14 batches and prewarms KeyPackages for invites; v0.9.15 selects the newest valid KeyPackage, arms epoch-gap recovery before publish gates, separates directory discovery from operational relays, and classifies empty admin policy as admin depletion. - **10:40 Zeus v13.2.0: wallet-connect budgets, races, and secret rotation** Zeus v13.2.0 counts pending NIP-47 payments against connection budgets including routing and melt fees, serializes pay_invoice handling, rotates client secrets on relay change, and repairs lookup and transaction-list reconciliation. - **11:20 NYM: post-quantum private messages and threads in channels** NYM v3.74.533 adds post-quantum encryption to private and group messages, v3.75.543 adds message threads across channels and DMs, and v3.73.530 adds Bluetooth mesh in supporting browsers. - **12:03 diVine 1.0.22: relay and signer lifecycles that end when the session does** diVine 1.0.22 closes relay and NIP-46 signer connections on sign-out, releases subscription slots after bounded reads, stops retrying terminal NIP-04 DM duplicates, and lets recipients remove unwanted badges. - **12:32 Chama v6.0.1: a 32-bit timer that emptied every browser escrow** Chama v6.0.1 fixes a Fedimint browser 32-bit timer wrap that made 90-day ecash escrow deadlines read as immediate, returning funded sats to funders while Nostr trade state still displayed as locked. ### Project Updates - **14:46 Shopstr keeps remote-signer and wallet secrets out of browser storage** Shopstr stops writing NIP-46 bunker secrets and full NIP-47 wallet-connect strings to localStorage, keeping them in runtime memory and deleting legacy stored copies on read. - **15:14 Routstr verifies relay-sourced provider discovery** Routstr SDK now verifies relay-delivered provider announcements, model lists, and reviews before ranking, drops events more than fifteen minutes ahead of local clock, and fails closed when trusted reviews are unavailable. - **15:47 nostr-tools binds gift-wrap rumors to their seals** nostr-tools requires kind 1059 wraps, kind 13 seals with valid signatures, and matching rumor and seal pubkeys when unwrapping NIP-59 events, skipping hostile wraps in batch unwrap instead of aborting the query. - **16:19 Haven adds signed relay administration and a local notes browser** Haven exposes NIP-86 management calls authenticated with NIP-98 owner events, adds a read-only notes browser that keeps encrypted kinds opaque, and fixes a default-LMDB event-count loop. - **16:59 Amethyst moves Blossom authorization off image-loading threads** Amethyst starts Blossom read authorization signing off OkHttp dispatcher threads, awaits one shared signature per host for gated images, and aligns token encoding with BUD-11 Base64url without padding. ### NIP Updates - **17:31 NIP-22 comment-thread rollout for ordinary text replies — Open** Snort now writes every reply as kind 1111 NIP-22 comments with uppercase root tags, and Ditto publishes text replies as kind 1111 and voice as kind 1244, while NIP-30 now lists kind 1111 among events that may carry emoji tags. - **17:46 NIP-47 pay_invoice fee-ceiling proposal — Open** An open NIP-47 amendment adds optional max_fee millisatoshi ceiling to pay_invoice with FEE_LIMIT_EXCEEDED when routing cost exceeds amount + max_fee and required fees_paid in responses. - **18:07 NIP-32 language-label proposal — Open** An open NIP-32 proposal standardizes `["l", " ", "lang"]` author-declared language labels so relays can filter with #l without post-download detection, migrating examples in NIP-66, NIP-68, and NIP-71. - **18:27 NWC-09 lookup_payment and NWC-12 BOLT12 details — Open** Open NWC-09 defines optional lookup_payment beside NIP-47 core with wallet-scoped selectors and common result envelopes, and NWC-12 adds BOLT12 offer and payment details reusing that envelope. - **18:59 NAP-DISPLAY draft — Open** NAP-DISPLAY proposes display.list and display.push so napplets request pixel displays the host policy allows, with runtime validation before any batch changes hardware state. - **19:43 Marmot same-account enrollment experiment — Open** An open Marmot experiment replaces the withdrawn External Commit draft with bounded same-account Add and Remove Commits, QR pairing via marmot-pairing-v1:, local kind 453 proofs, and kind 452 Welcome acknowledgements for KeyPackage recovery.