<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
     xmlns:content="http://purl.org/rss/1.0/modules/content/"
     xmlns:podcast="https://podcastindex.org/namespace/1.0">
  <channel>
    <title>Nostr Compass Podcast</title>
    <description>Weekly conversations with the developers building on Nostr. Companion podcast to the Nostr Compass newsletter covering NIP proposals, client updates, relay developments, and protocol changes.</description>
    <link>https://podcast.nostrcompass.org</link>
    <language>en-us</language>
    <copyright>2025-2026 Nostr Compass. CC BY 4.0</copyright>
    <managingEditor>nostrcompass@nostrcompass.org (Nostr Compass)</managingEditor>
    <webMaster>nostrcompass@nostrcompass.org (Nostr Compass)</webMaster>
    <pubDate>Fri, 09 Oct 2026 03:48:18 GMT</pubDate>
    <lastBuildDate>Fri, 09 Oct 2026 03:48:18 GMT</lastBuildDate>
    <ttl>60</ttl>

    <!-- iTunes/Apple Podcasts tags -->
    <itunes:title>Nostr Compass Podcast</itunes:title>
    <itunes:summary>Weekly conversations with the developers building on Nostr. Companion podcast to the Nostr Compass newsletter covering NIP proposals, client updates, relay developments, and protocol changes.</itunes:summary>
    <itunes:author>Nostr Compass</itunes:author>
    <itunes:owner>
      <itunes:name>Nostr Compass</itunes:name>
      <itunes:email>nostrcompass@nostrcompass.org</itunes:email>
    </itunes:owner>
    <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
    <itunes:category text="Technology" />
    <itunes:explicit>no</itunes:explicit>
    <itunes:type>episodic</itunes:type>

    <!-- Podcasting 2.0 tags -->
    <podcast:guid>npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923</podcast:guid>
    <podcast:medium>podcast</podcast:medium>
    <podcast:locked>no</podcast:locked>

    <podcast:funding url="/about">Support the show</podcast:funding>

    <podcast:value type="lightning" method="lnaddress">
        <podcast:valueRecipient name="Nostr Compass" type="lnaddress" address="nostrcompass@npub.cash" split="100" />
      </podcast:value>

    

    
    <item>
      <title>Nostr Compass Podcast #42</title>
      <description></description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqpymr0va3x7mmt94kx7emzdahkktf5xg3ltvmx</link>
      <pubDate>Thu, 08 Oct 2026 08:10:15 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:logbook-logbook-42</guid>
      <enclosure url="https://compass-blossom.samt.st/7c6c889177fd53ef0c65d66aa539f1345de01691d7dbf8bc45db4fafbe4d98ff" type="audio/mpeg" length="121236209" />
      
      <itunes:duration>01:24:11</itunes:duration>
      <itunes:episode>42</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
      <podcast:transcript url="https://compass-blossom.samt.st/4d31ee8b7ff25c048d2262ec198abec6b09e70f9ab8ceb763f8d067fd0759e22.txt" type="text/plain" />
      <podcast:chapters url="https://compass-blossom.samt.st/e724b00620ec156d244f635ecb6883bc3f0bcd4821d3dd91a52b3e6a9e1b7b1c" type="application/json+chapters" />
      <content:encoded><![CDATA[<p>Episode42 covers White Noise group polls, offline app sharing with Myco, Marmot history recovery, Nostr releases and ongoing protocol work. Synthetic narration is followed by Max’s recorded contributions.</p><p>TL;DR: Synthetic narration and Max’s recordings cover White Noise polls, Myco app sharing, Marmot history recovery, Nostr releases and ongoing protocol work.</p><p>Contributor: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt</p><p><a href="https://nostrcompass.org/en/newsletters/2026-09-30-newsletter/">Newsletter42</a></p><h3>0:00 Intro</h3><p>Welcome to Nostr Compass, the weekly podcast following what&#x27;s being built on Nostr, the open network for sharing messages through apps and relays. Thanks for joining us. If you&#x27;re new here, we&#x27;ll explain the projects as we go.</p><p>This is episode forty-two, based on our September thirtieth, twenty twenty-six newsletter. This week, encrypted chats get polls, phones share apps without an internet connection, and developers tackle gaps in message history. We&#x27;ll explain what changed and what you can try, then look back at six years of Nostr Septembers.</p><p>The newsletter narration is read by a synthetic voice. You&#x27;ll find the sources in the show notes, and chapter markers let you jump to a topic that interests you.</p><p>First, a quick update on Nostr Compass itself.</p><p>The Nostr Compass Android app puts newsletters, podcast episodes, topic guides and contributor voice notes in one place. Its latest signed release notes describe full signature-verified newsletters, plus saved issues and one hundred ten topic guides you can read offline. Local search covers stories and any transcripts that exist. Contributors can record voice notes and listen back to a saved take before sending. They can also reply with recordings. Signing goes through Amber, so the app never stores their private key. Public recordings are published on Nostr and Blossom.</p><p>The latest update keeps queued recordings and upload checkpoints when Android stops background work. It shows when Amber approval is needed and opens the right recording from a notification. Episodes and voice notes each keep their own scroll position, and playback resumes where you left off. One limit: notifications for new recordings depend on Android&#x27;s scheduling and on the permissions you grant.</p><p></p><h3>2:40 Holoboard adds Nostr promotion commands and an Android app</h3><p><a href="https://nostrcompass.org/en/topics/holoboard/">Holoboard</a> is a <a href="https://holoboard.space">board for finding Nostr notes</a> through a ranking that can be boosted with Lightning payments. The original posts remain Nostr events; Holoboard serves its ranking and appearance data through its own HTTP API. That distinction matters if a reader expects the board&#x27;s ordering to be a relay-native feed.</p><p>Its <a href="https://github.com/ptrio42/holoboard.space/blob/main/CHANGELOG.md#2026-09-23">September 23 changelog</a> records direct-message promotion commands over both encrypted <a href="https://nostrcompass.org/en/topics/nip-17/">NIP-17</a> and legacy <a href="https://nostrcompass.org/en/topics/nip-04/">NIP-04</a> paths. NIP-17 wraps private messages to hide their content and sender from relays, while NIP-04 is the older direct-message encryption format. A user can request a promotion invoice in the same conversation, receive one labeled quote for the first paid promotion, and opt into expiry reminders by replying `YES`. The promotion sender retries failed relays, while the <a href="https://github.com/ptrio42/holoboard.space/blob/main/CHANGELOG.md">September 24 update</a> adds an Android app and simplifies the invoice flow.</p><p>The project&#x27;s <a href="https://github.com/ptrio42/holoboard.space/blob/main/relay/README.md">relay integration notes</a> describe ordinary notes and comments on Nostr, encrypted inbox routing, and quote and delete handling. Its signed <a href="https://zapstore.dev/apps/space.holoboard.app">Zapstore Android listing</a> supports the existence of an app release, but the listing key has not been established as Holoboard&#x27;s public board identity. This is the first Compass coverage of the project.</p><h3>4:25 fips-pub-domains tests signed public names for a mesh</h3><p><a href="https://nostrcompass.org/en/topics/fips-pub-domains/">fips-pub-domains</a> is a new <a href="https://github.com/fr34aky/fips-pub-domains">resolver and naming experiment</a> that binds public domain names to nodes on FIPS, an encrypted mesh that uses Nostr messages for peer discovery. Its <a href="https://github.com/fr34aky/fips-pub-domains/releases/tag/v0.1.0">first release</a> combines those claims with DNS TXT records, optional DNSSEC validation, locally pinned bindings, a Linux resolver daemon, and Android integration with fips2go, the FIPS client for phones. A signed claim by itself does not establish ownership of a public domain; clients need DNS or DNSSEC evidence, a configured witness, or a previously trusted pin.</p><p>The <a href="https://github.com/fr34aky/fips-pub-domains/releases/tag/v0.2.0">0.2.0 release</a> adds DNSSEC proofs to claims so a client with only a mesh relay can validate an unpinned name, and lets multiple validated servers serve one domain. It also repairs stale pins and DNS failover. <a href="https://github.com/fr34aky/fips-pub-domains/releases/tag/v0.2.1">Version 0.2.1</a> fixes a systemd unit that otherwise failed to start and runs the server without root; existing installs must replace that unit to receive the fix.</p><p>On Android, a <a href="https://github.com/fr34aky/fips2go/pull/55">merged fips2go change</a> follows verified public-name bindings in its DNS proxy. A <a href="https://github.com/fr34aky/fips2go/pull/59">second merged change</a> carries connections to configured Nostr relays over the mesh, so the resolver can retrieve and verify a previously unseen domain claim while the phone has no internet connection. The device results are reported by the maintainers in those pull requests; they do not establish wider deployment.</p><p>The project&#x27;s <a href="https://github.com/fr34aky/fips-pub-domains/blob/main/docs/testing.md">two-node and mesh-only relay tests</a> are maintainer-reported evidence for an early implementation, not a production deployment. Its <a href="https://nostrcompass.org/en/topics/nip-db/">NIP-DB</a> <a href="https://github.com/nostr-protocol/nips/pull/2487">proposal</a> is still open, and the event kinds in its <a href="https://github.com/fr34aky/fips-pub-domains/blob/main/docs/nip.md">draft</a> remain placeholders pending registration. Last week&#x27;s fips2go story covered mesh bootstrap and peer discovery; this week&#x27;s work tackles public names and verification.</p><h3>6:26 Marmot MDK 0.11.0 makes account history gaps visible</h3><p><a href="https://github.com/marmot-protocol/mdk">Marmot MDK</a>, the Rust runtime and generated bindings for <a href="https://nostrcompass.org/en/topics/marmot/">MLS-encrypted Nostr group messaging</a>, follows last week&#x27;s durable-send release with <a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.11.0">version 0.11.0</a>. Account recovery now declares a history gap complete only after every required relay finishes an untruncated event comparison; an unproven gap produces a durable notice that a host can show to the user. A full delivery queue spills to the account database instead of dropping events, and live delivery advances the transport cursor so a restart does not fetch the same history again.</p><p>The <a href="https://github.com/marmot-protocol/mdk/blob/v0.11.0/docs/release/0.11.0.md">full release notes</a> also describe optional encrypted group polls, stateless event verification in the bindings, and Android libraries aligned for 16 KB memory pages. Applications must move the generated bindings and native libraries from this source cohort together; account databases migrate through schema 98 on first open, and downgrading the database is unsupported. An existing intermittent catch-up defect can still leave messages more than five group epochs behind undecryptable without raising a notice, so this release does not claim complete history recovery in every case.</p><h3>8:12 Myco 0.8.0–0.8.1 gives nearby apps their own Nostr store</h3><p><a href="https://github.com/Origami74/myco">Myco</a> is an Android app for exchanging small Nostr programs, called napplets, with nearby phones, including when they are offline. <a href="https://github.com/Origami74/myco/releases/tag/v0.8.0">Version 0.8.0</a> gives each installation a guest Nostr identity and permits login with an existing key or Amber, an Android signer that approves signatures without sharing the account key. It also replaces the Discover tab with an app store that is itself a napplet. That store reads signed app listings and recommendations, while a downloaded update can pass between phones in a user&#x27;s Circle without an internet connection.</p><p><a href="https://github.com/Origami74/myco/releases/tag/v0.8.1">Version 0.8.1</a> makes those listings easier to find by querying the relays an author advertises; earlier builds relied on public defaults. It shows cached profiles and apps immediately, saves slower relay answers for later visits, backs off from failing relays, and keeps subscriptions live while a view is open. Both updates preserve the existing phone-to-phone wire format. Updated phones can download and share napplet updates; older phones forward their announcements alone.</p><h3>9:41 White Noise Android adds group polls and account-specific disappearing-message defaults</h3><p><a href="https://github.com/marmot-protocol/whitenoise-android">White Noise Android</a> nostr:npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec is a Nostr messenger for private <a href="https://nostrcompass.org/en/topics/marmot/">Marmot</a>-encrypted conversations. Following the delivery and sharing improvements <a href="https://nostrcompass.org/en/newsletters/2026-09-23-newsletter/#white-noise-android-2026921-improves-encrypted-chat-reliability-and-sharing">covered last week</a>, <a href="https://github.com/marmot-protocol/whitenoise-android/releases/tag/android-v2026.9.30">the September 30 release</a> adds group polls with selectable answers, result bars, and deadlines through the Marmot Development Kit. It also adds <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2799">device-local disappearing-message defaults for each account</a>: new direct conversations and groups inherit the chosen duration, while existing conversations and their individual settings keep their current policy. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2765">Wave hi</a> sends a greeting that mentions a newly added member without disturbing the current draft.</p><p>The <a href="https://github.com/marmot-protocol/whitenoise-android/releases/tag/android-v2026.9.30">release</a> lets users choose the focal crop for profile and group images and delete a chat folder without deleting its conversations. Its <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2869">history notices</a> show when recovery leaves account or group history potentially incomplete, with separate dismissal controls. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2818">Conversation paging</a> avoids rebuilding the displayed timeline on a jump to recent messages, and <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2825">pending-message edits</a> retain their text while the original send obtains its confirmed event ID. That edit handoff covers conversation changes within the running app; it does not establish persistence across process death.</p><p><a href="https://github.com/marmot-protocol/whitenoise-android/pull/2768">Dictation now chooses Paste or Send for each recording</a>, with automatic finishing placing the transcript in the draft. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2888">Offline-provider setup</a> explains on-device processing, keeps its consent separate from other speech providers, and restores interrupted media after capture ends. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2830">General-file handling</a> accepts bounded, nonempty documents with accurate filenames, MIME metadata, and failure messages; <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2879">explicit attachment downloads</a> use Android&#x27;s user-initiated transfer jobs with a foreground fallback. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2877">Paste controls</a> now use Android’s system action so GrapheneOS Secure Paste can grant clipboard access. Android also <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2806">renders iOS GIPHY shares as animated media</a> while respecting download policy.</p><p><a href="https://github.com/marmot-protocol/whitenoise-android/pull/2808">Notification fixes</a> refresh sender nicknames and clean up alerts when a conversation opens. The <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2712">notification recovery changes</a> preserve pending push work through unavailable foreground ownership and use bounded retries. <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2802">Amber signing</a> (maintainer: nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5) coordinates same-account approval bursts to prevent rate limits from cancelling sends. The <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2872">new audit configuration</a> asks for a fresh log-sharing choice before uploading to the new receiver. The source also <a href="https://github.com/marmot-protocol/whitenoise-android/pull/2840">adopts AGPL-3.0-only licensing</a>.</p><h3>12:57 nostream 3.1.0 adjusts relay proof of work to load</h3><p><a href="https://github.com/Cameri/nostream">nostream</a> is a TypeScript Nostr relay backed by PostgreSQL. <a href="https://github.com/cameri/nostream/releases/tag/v3.1.0">Version 3.1.0</a> can raise or lower the event proof-of-work threshold between operator-set limits as its observed event rate changes. The setting is off by default, uses each worker&#x27;s measured rate, and leaves the existing static public-key threshold independent, so operators must opt in before senders see a different admission requirement.</p><p>The same <a href="https://github.com/Cameri/nostream/releases/tag/v3.1.0">release</a> adds an admin dashboard for relay, WebSocket, and event metrics, network-health probe results, and configurable operator notifications. Its admin API is disabled by default. These controls help operators distinguish relay pressure and reachability problems while keeping the new policy under explicit configuration.</p><p>After its load-sensitive proof-of-work release, nostream merged <a href="https://github.com/cameri/nostream/pull/788">actions for trusted-moderator reports</a>. <a href="https://nostrcompass.org/en/topics/nip-56/">NIP-56</a> defines content-report events; the new `nip56.hideActionableReports` option excludes reported events from REQ and COUNT results when reporting is also enabled. An event report hides that event, while a public-key report hides every event by that author. The new option defaults to false, so enabling report collection alone preserves the existing query results.</p><h3>14:45 Nostr double ratchet 0.0.171–0.0.172 closes a removed-member gap</h3><p><a href="https://github.com/irislib/nostr-double-ratchet">Nostr double ratchet</a> is a TypeScript library for encrypted private chats carried by Nostr. <a href="https://github.com/irislib/nostr-double-ratchet/releases/tag/nostr-double-ratchet-ts-v0.0.171">Version 0.0.171</a> rotates a group&#x27;s sender key after membership changes so someone removed with the old keys cannot decrypt later messages from an updated sender, even after that sender restarts. It also refuses sends or key rotation by a removed local owner and aborts a send if membership changes during key distribution.</p><p><a href="https://github.com/irislib/nostr-double-ratchet/releases/tag/nostr-double-ratchet-ts-v0.0.172">Version 0.0.172</a> carries the existing account-signed device approval in an optional encrypted invite response. A recipient using the update can verify the sender&#x27;s device before a separate registration event arrives, while linked devices retain their approval across restarts. The invite field is optional and leaves the original handshake and ratchet message format intact.</p><p><a href="https://github.com/irislib/nostr-double-ratchet/releases/tag/nostr-double-ratchet-ts-v0.0.175">Versions 0.0.173–0.0.175</a> extend that removal work with durable group-key handoffs and queued delivery state saved before publication, so interrupted handoffs recover after restart. Publication callbacks carry local group context that lets applications cancel durable retries after removal while keeping membership controls deliverable; queued sends preserve their original inner event IDs. Duplicate invitation responses preserve established sessions, subscriptions remain stable as contacts change, and app-key snapshots retain device names without sharing mutable copies. The signed wire format stays unchanged; the <a href="https://github.com/irislib/nostr-double-ratchet/releases/tag/nostr-double-ratchet-ts-v0.0.173">0.0.173 notes</a> also report Rust 0.0.168 with receive-session fallback and local group-echo filtering.</p><h3>16:52 Scramble 0.7.4–0.7.5 fetches the messages a new group member should see</h3><p><a href="https://github.com/DavidGershony/Scramble">Scramble</a> is a cross-platform Marmot group messenger with a native Android interface. In <a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.5">version 0.7.5</a>, each group gets its own relay history cutoff: previously the most active conversation&#x27;s cutoff was applied to every group, so a newly joined one could remain empty because its post-join messages were never requested. The reconnect path receives the same fix, and a group with no local activity now requests all available messages; MLS still prevents a new member from decrypting messages sent before joining.</p><p>The preceding <a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.4">0.7.4 release</a> fixes repeated invite acceptance caused by recycled Android rows accumulating click handlers, and makes a custom Blossom media server setting persist in the native app. Version 0.7.5 ships only the native Android APK, so users tracking the older Avalonia filename must change their update target. Accounts and history move between those two Android builds, but groups created under the older 0.6.x MLS engine do not migrate to 0.7.x.</p><p><a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.6">Scramble 0.7.6</a> adds a manual Fetch missing messages control that queries every routing address a group has used, removes the time restriction, repairs a stale stored address, and reports what it recovered. It still cannot decrypt epochs from before the user joined. Native administrators can promote or demote other members, with current roster state and visible failure outcomes; two-person conversations still hide these controls. The group-info Copy action now responds, though invited conversations can still copy an internal chat identifier instead of the protocol group ID. <a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.7">Version 0.7.7</a> also <a href="https://github.com/DavidGershony/Scramble/commit/35e72177a0009ec96e8494caed7e9c250b66c7cb">drains held messages when another member’s commit arrives</a>; <a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.8">0.7.8</a> adds a regression test for that passive-member path.</p><h3>18:58 Amber 6.6.6 repairs remote-signer connection secrets</h3><p><a href="https://github.com/greenart7c3/Amber">Amber</a> is an Android signer that approves Nostr event signatures without handing an application&#x27;s account key to it. After last week&#x27;s backup-encryption change, <a href="https://github.com/greenart7c3/Amber/releases/tag/v6.6.6">version 6.6.6</a> fixes its `nostrconnect` parser: a connection parameter containing `=`, such as a padded secret, had been altered before Amber answered. That made NDK-based clients fail their secret check even when the signer connection otherwise looked valid.</p><p>The <a href="https://github.com/greenart7c3/Amber/releases/tag/v6.6.6">release</a> also sends feedback issues to the relays advertised by Amber&#x27;s repository announcement, with a fallback to the prior relay if the announcement cannot be fetched. Longer Tor timeouts give slow relays more time to acknowledge that publication. The remaining changes improve icon and text visibility in Amber&#x27;s themes.</p><h3>20:25 FIPS 0.5.2 stops a Nostr discovery privacy leak</h3><p><a href="https://github.com/jmcorgan/fips">FIPS</a> is an encrypted mesh that uses Nostr identities and relay messages to discover peers. Its <a href="https://github.com/jmcorgan/fips/releases/tag/v0.5.2">0.5.2 maintenance release</a> stops signing NAT-traversal deletion requests with the node&#x27;s routing key, which had linked that key to traversal traffic on relays. It also updates the TLS library used for relay connections to a version that fixes a published security advisory and repairs several lost-message cases in link and session rekeying.</p><p>The <a href="https://github.com/jmcorgan/fips/releases/tag/v0.5.2">release notes</a> call for operators on every platform to upgrade, while detailing separate Windows key-file permission, gateway, and package-service fixes. Ephemeral nodes no longer write a private `fips.key` that a later restart might overwrite; operators who intended a stable identity should set persistent mode before upgrading. The release does not change the mesh wire format, so mixed-version nodes can be upgraded individually.</p><h3>21:47 napplet soyLI 0.23.1–0.23.4 repairs backend publishing and signer approval</h3><p><a href="https://github.com/zeSchlausKwab/napplet-soy">napplet.soy&#x27;s soyLI</a> (maintainer: nostr:npub1uac67zc9er54ln0kl6e4qp2y6ta3enfcg7ywnayshvlw9r5w6ehsqq99rx) is the creator and publishing toolkit for small sandboxed Nostr programs. After last week&#x27;s shared-creations release, <a href="https://github.com/zeSchlausKwab/napplet-soy/releases/tag/soyli-v0.23.1">version 0.23.1</a> makes backend manifests, handlers, and schemas part of creator checks and multiplayer previews. It keeps portable provider configuration in the project manifest while leaving private identity bindings and development databases outside the published source snapshot.</p><p><a href="https://github.com/zeSchlausKwab/napplet-soy/releases/tag/soyli-v0.23.2">Version 0.23.2</a> lets projects that once committed a generated public backend context publish again after strict validation, while still rejecting private bindings, journals, databases, and credentials from reachable history. The later <a href="https://github.com/zeSchlausKwab/napplet-soy/releases/tag/soyli-v0.23.4">0.23.4 release</a> fixes a persistent-backend session failure that could reject a valid extension or remote-signer approval when a person took several seconds to sign. Public hosts need the shared-host fix as well; updating a creator&#x27;s CLI alone has not repaired a deployed host.</p><h3>23:28 Dart NDK 0.10.0 scopes Blossom auth and remote signing</h3><p><a href="https://github.com/relaystr/ndk">Dart NDK</a> (maintainer: nostr:npub1xpuz4qerklyck9evtg40wgrthq5rce2mumwuuygnxcg6q02lz9ms275ams) is a Flutter and Dart library for Nostr relay access, signing, wallet requests, and media operations. Following last week&#x27;s prerelease, <a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.7">0.10.0-dev.7</a> changes Blossom media requests to stay anonymous until a server refuses them, then authorizes through an explicit policy that says which identity an operation may reveal. It carries that authorization through the request path and replaces the older `useAuth` and `customSigner` options, a breaking integration change for apps using the prerelease API.</p><p><a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.9">Dev.9</a> stops holding a remote-signer response until the slowest relay acknowledges it. <a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.8">Dev.8</a> reduces background relay polling and cache work; its other fixes concern wallet seed persistence and settlement deadlines. The <a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0">stable 0.10.0 release</a> now packages this development series together with the connection-metadata and private subscription-ID changes below. The <a href="https://github.com/relaystr/ndk/compare/v0.10.0-dev.9...v0.10.0">comparison with dev.9</a> includes those merged changes. Applications upgrading should review both the media-auth API change and the remote-signer response path.</p><p>The stable release includes <a href="https://github.com/relaystr/ndk/pull/852">NIP-46 connection metadata and requested permissions</a>, replacing separate connection fields with a `Nip46ClientMetadata` value. This is a source API change that lets login widgets pass application identity and requested permissions to the bunker. Another <a href="https://github.com/relaystr/ndk/pull/860">request-ID change</a> uses 32 random hexadecimal characters in production, keeping use-case names and pagination phases out of relay-visible subscription IDs. Explicit IDs remain bounded to NIP-01&#x27;s 64-character limit, while debug mode retains a short diagnostic name.</p><h3>25:33 Mostro Core 0.16.0 removes the old gift-wrap transport</h3><p><a href="https://github.com/MostroP2P/mostro-core">Mostro Core</a> nostr:npub1m0str0d7z2ww8rdh20t2n9lx520xjwhaq24p68umqp06wwrwtsnqen40un supplies the message protocol used by Mostro&#x27;s Nostr-based peer-to-peer trading clients and coordinator. <a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.16.0">Version 0.16.0</a> removes its protocol-v1 gift-wrap transport and its old wrap and unwrap functions, leaving the newer transport as the library path. That is a breaking change for applications still constructing or reading v1 messages through this library.</p><p>The <a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.16.0">library release</a> precedes the coordinator&#x27;s <a href="https://github.com/MostroP2P/mostro/releases/tag/v0.19.0">now-published 0.19.0 release</a>. Operators serving older clients need to update both sides of the transport migration. The preceding <a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.15.1">0.15.1 tag</a> adds a cooperative-cancellation dispute state, but the transport removal is the compatibility milestone.</p><h3>26:48 Cambium 0.6.0–0.7.1 enrolls an unlock phone through relay messages</h3><p><a href="https://github.com/forgesworn/cambium">Cambium</a> nostr:npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2 is an Android signing companion for a Heartwood hardware key that can also unlock the board after a restart. <a href="https://github.com/forgesworn/cambium/releases/tag/v0.6.0">Version 0.6.0</a> lets a phone enroll for unlock through the board&#x27;s Nostr relays without a USB cable; the user compares five request words on the phone, the board, and Sapwood, the board&#x27;s enrollment interface, before pressing the board&#x27;s button. Newly announced relays receive a randomized connection delay so the phone&#x27;s first contact does not reveal exactly when it saw the board&#x27;s update.</p><p><a href="https://github.com/forgesworn/cambium/releases/tag/v0.7.0">Version 0.7.0</a> reverses the invitation flow: a phone scans Sapwood&#x27;s short-lived QR code and returns one encrypted, one-time event from a throwaway key. Retry republishes that same event if no relay accepts it, while the old code-display path remains for older Sapwood builds. The <a href="https://github.com/forgesworn/cambium/releases/tag/v0.7.1">0.7.1 patch</a> keeps the final check code visible and improves F-Droid build reproducibility; the QR flow still requires the specified recent Sapwood and Heartwood versions.</p><h3>28:29 Bray 3.5.0–3.5.2 limits agent-initiated Nostr wallet spending</h3><p><a href="https://github.com/forgesworn/bray">Bray</a> is a Nostr tool server that lets an AI assistant request relay, identity, and wallet actions through a scoped interface. Its <a href="https://github.com/forgesworn/bray/releases/tag/v3.5.0">3.5.0 release</a> adds a cap on each Nostr Wallet Connect payment and a persisted daily budget, with human confirmation where the assistant host supports it. Serving separate spending connections now requires an explicit wallet-service setting, rechecks each grant before use, and confines invoice lookups to hashes within that grant.</p><p>The <a href="https://github.com/forgesworn/bray/releases/tag/v3.5.0">release</a> also tells users to keep a wallet connection URI in a private file instead of pasting it into chat, and refuses to retry an uncertain payment as though failure were proven. <a href="https://github.com/forgesworn/bray/releases/tag/v3.5.2">Version 3.5.2</a> matches marketplace payment rails locally after relays rejected the requested payment-method filter. These checks limit what a delegated assistant can spend and prevent a relay-filter assumption from hiding matching offers.</p><h3>29:50 Mafrend 1.3.0-alpha moves private map groups to current Marmot</h3><p><a href="https://github.com/DestBro/mafrend-zapstore">Mafrend</a> nostr:npub19jvs7ry26263w3l6h4hst46t0fsukcmyhhmmshh8rsavfqd95xnsa5guks is a map-based Nostr social app that lets people explore places and chat around destinations. Its <a href="https://github.com/DestBro/mafrend-zapstore/releases/tag/v1.3.0-alpha">1.3.0-alpha release</a> upgrades private groups to a newer <a href="https://nostrcompass.org/en/topics/marmot/">Marmot encrypted-group</a> specification and adds profile views from chats and reviews. The group format is incompatible with older alpha chats; users should treat this as an alpha migration with a compatibility break.</p><p>The <a href="https://github.com/DestBro/mafrend-zapstore/releases/tag/v1.3.0-alpha">same release</a> adds screenshot sharing and chat changes alongside map and marker improvements. Profile features are still marked in progress by the project. The meaningful Nostr change is the private-group interoperability shift; users with older test groups should check the compatibility note before upgrading.</p><h3>31:07 Sonar alpha.15–alpha.15.1 repairs encrypted-group publishing</h3><p><a href="https://github.com/hedwig-corp/bitchat-to-sonar">Sonar</a> nostr:npub1wg2m9ku823y5l5699dlj6294dc3cvwu4g34ldrtelxq20t27clxsd7dzaw is a private messenger that can carry conversations over Bluetooth mesh and Nostr. <a href="https://github.com/hedwig-corp/bitchat-to-sonar/releases/tag/v0.1-alpha.15">Alpha.15</a> adds emoji reactions to messages and private local-time sharing inside encrypted chats, with a setting to revoke that sharing. Its wallet switches to Cashu, but that payment change is separate from the messaging update.</p><p><a href="https://github.com/hedwig-corp/bitchat-to-sonar/releases/tag/v0.1-alpha.15.1">Alpha.15.1</a> repairs a launch failure that could leave the conversation index empty after an older branch build wrote a foreign schema version. Without the index, the app re-encrypted and republished local-time shares to every group on each reopen, sometimes sending hundreds of events before relay rate limits intervened. The hotfix rebuilds that local state and stops the repeated group publishes.</p><h3>32:31 Elisym's commerce packages introduce private Nostr orders</h3><p><a href="https://github.com/elisymlabs/elisym">Elisym</a> is a Nostr-based agent toolkit now building a signed-event commerce flow. Its <a href="https://github.com/elisymlabs/elisym/pull/120">merged `commerce` package</a> defines store products, owner authorization, privately wrapped orders and receipts, and offer verification for the checkout and merchant components. A later <a href="https://github.com/elisymlabs/elisym/releases/tag/%40elisym/commerce%400.2.0">commerce 0.2.0 tag</a> derives an order&#x27;s payment reference from that order, tying the payment lookup to the signed purchase flow.</p><p>The package series also introduces separate payment-core and browser-checkout work, but its <a href="https://github.com/elisymlabs/elisym/releases/tag/%40elisym/commerce%400.2.0">release tags</a> do not establish that a complete merchant checkout is deployed. The store-authorization event kind is explicitly provisional in the project&#x27;s primary source. The eleven SDK, MCP, CLI, and payment-core tags mark one developing commerce feature.</p><p><a href="https://github.com/elisymlabs/elisym/releases/tag/%40elisym%2Fmerchant-node%400.1.0">Elisym&#x27;s new package releases</a> package the self-hosted merchant node, while <a href="https://github.com/elisymlabs/elisym/releases/tag/%40elisym%2Fmcp%400.31.0">MCP 0.31.0</a> adds `buy_product` and `get_order` for commerce products. Subsequent commerce and merchant-node releases add Tempo payment support inside that same checkout. These packages advance the existing signed-product and private-order integration; the tag list does not make the provisional event schema a standard or establish a complete hosted-service launch.</p><h3>34:02 Flotilla 1.11.2 unsticks signers and incomplete relay feeds</h3><p><a href="https://github.com/coracle-social/flotilla">Flotilla</a> (maintainer: nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn) is a Nostr client for conversations, rooms, and shared spaces. <a href="https://github.com/coracle-social/flotilla/releases/tag/1.11.2">Version 1.11.2</a> gives a user a way out when startup stalls waiting for a remote signer, and signs out a session whose local application data has been cleared. A room can now display its messages before its wider space finishes synchronizing, while feeds no longer omit posts simply because one relay answered later than another.</p><p>The <a href="https://github.com/coracle-social/flotilla/releases/tag/1.11.2">same release</a> also publishes an F-Droid build signed with the app&#x27;s existing key and keeps GitHub releases current for Obtainium. That distribution work matters to users changing update channels, but the relay and signer fixes are the immediate reason to upgrade.</p><h3>35:05 Ditto 2.42.3 shows relay delivery and tightens account boundaries</h3><p><a href="https://gitlab.com/soapbox-pub/ditto">Ditto</a> nostr:npub10qdp2fc9ta6vraczxrcs8prqnv69fru2k6s2dj48gqjcylulmtjsg9arpj is a Nostr social client that lets users choose and authenticate to their relays. In <a href="https://gitlab.com/soapbox-pub/ditto/-/releases/v2.42.3">version 2.42.3</a>, a post&#x27;s Event Details shows which user and author relays hold it; Broadcast targets only the missing ones. The release also points out unresponsive read relays and gives them a retry control, making a missing post easier to diagnose without sending it everywhere again.</p><p>The <a href="https://gitlab.com/soapbox-pub/ditto/-/releases/v2.42.3">release notes</a> say that switching accounts no longer sends posts to the previous account&#x27;s relays, muted users cannot trigger generic phone alerts, and links or images in posts cannot reach devices on the reader&#x27;s local network. Slow-relay posts stop disappearing from Follows and Loved feeds, while live stream chat and webxdc games update without repeatedly downloading the whole view. Torrent and audio browsing are also new, but the relay routing and account isolation are the changes with the widest Nostr impact.</p><h3>36:36 Iris Chat 2026.9.24.4 brings calls into encrypted conversations</h3><p><a href="https://github.com/irislib/iris-chat-rs">Iris Chat</a> is an end-to-end encrypted Nostr messenger using the double-ratchet family of chat protocols. Its <a href="https://github.com/irislib/iris-chat-rs/releases/tag/v2026.9.24.4">September 24 release</a> adds voice and video calls with compatible contacts, including over an existing local connection when the internet is unavailable. A user can lower video quality, answer video as voice, and handle an incoming call through Android&#x27;s call interface; answering or declining also stops the other linked devices from ringing.</p><p>The <a href="https://github.com/irislib/iris-chat-rs/releases/tag/v2026.9.24.4">release</a> also lets a person sign in through a separate signing app and see which linked devices are connected. Later <a href="https://github.com/irislib/iris-chat-rs/releases/tag/v2026.9.24.5">September 24 patches</a> keep delayed messages&#x27; original timestamps and improve nearby delivery after a lost reconnection packet. These are early cross-device and call behaviors, so the update is most useful to contacts who can run compatible Iris builds.</p><p>The later developer-signed <a href="https://primal.net/e/17fd3f325dda1feb0c1e51c6e1af0f7b3efe42ecff75e9527ac435cdc6a30c7a">September 30 update</a> retains a removed member&#x27;s local group history while disabling sends, improves delivery between linked devices and large groups, and repairs read indicators and unread counts. Calls gain audio-device selection and restored outgoing tones; stale microphone status no longer silences incoming audio. Timed muting, image copying, dropped-file attachments, notification routing, and push registration receive fixes, while sign-out clears local caches and device removal ends its session. A <a href="https://primal.net/e/89ec93e25caf31831714e807c927b6d50d3d5fc38044df845163ff656db3f711">second update</a> improves access to files cached by other Iris apps on the same device and keeps local file sharing available with Nearby disabled.</p><h3>38:29 LibreNostr 0.6.0–0.7.0 routes relays through built-in Tor</h3><p><a href="https://github.com/Lwb89dev/librenostr">LibreNostr</a> is an Android Nostr client with configurable relay and privacy settings. <a href="https://github.com/Lwb89dev/librenostr/releases/tag/v0.6.0">Version 0.6.0</a> bundles an Arti-based Tor engine on ARM64 and applies the chosen Direct, Tor-for-everything, or `.onion`-only mode to relay WebSockets, HTTP requests, media, uploads, and web pages. Strict Tor mode fails closed when Tor is unavailable and never silently sends a request directly; changing modes reconnects relay sockets through the new route.</p><p><a href="https://github.com/Lwb89dev/librenostr/releases/tag/v0.6.2">Version 0.6.2</a> adds an on-device web-of-trust filter built from public follow lists and chooses supplemental relays by the additional followed people they reach. <a href="https://github.com/Lwb89dev/librenostr/releases/tag/v0.7.0">Version 0.7.0</a> then shows notes and notifications before profile and count lookups finish, caps slow relay queries, and stops decrypting an entire DM inbox on every conversation open. Together these releases change both where the client may connect and how long a slow relay can hold up its interface.</p><p>Its developer-signed <a href="https://primal.net/e/4eeba660b6b789288954290497de89fe3222bfc955214647ead5d63e6031d927">first stable release, 1.0.0</a>, adds saved, per-profile tablet decks with movable columns for feeds, hashtags, profiles, long-form reading, notifications, and messages. Landscape tablets get this layout; phones keep their existing interface. Search gains OR, exclusions, media filters, and working date ranges, returns cached profiles before relay refinements, and moves past refused full-text requests immediately. Hashtags sort chronologically, paging waits for sufficient relay answers, and unused feeds release their subscriptions.</p><p>The <a href="https://primal.net/e/4eeba660b6b789288954290497de89fe3222bfc955214647ead5d63e6031d927">same release</a> preserves existing public and encrypted mute-list and bookmark entries during edits instead of replacing them with one change. It isolates bookmarks and notifications between accounts and restricts auxiliary author relays to public reads, keeping private requests and relay authentication off them. It also prevents stale profile answers from replacing newer metadata, repairs notification paging and badges, retains older feed items when new ones arrive, and fixes reply undo countdowns, duplicate publication, media URLs with query strings, and unread counts after marking a chat read. <a href="https://primal.net/e/630becb73dbe7ba7c76a2d1970f1d7262a5afc33b02fc8002bef611cf638deab">Version 1.0.1</a> fixes a tablet-deck startup crash in the new layout.</p><h3>41:01 Newlay 0.3.45 streams large relay queries instead of closing them</h3><p><a href="https://code.relay.tools/opensauce/newlay">Newlay</a> is an Android-hosted Nostr relay and related local services. Its <a href="https://primal.net/e/b8380ae1bf30492129727ec59e27e2ae8a4cf9ad08e7361826a9ba8be88a227a">signed 0.3.45 release announcement</a> says that large query results now stream with backpressure instead of closing the client&#x27;s connection. The embedded Git host prunes superseded packs after pushes, while its Cordn encrypted-messaging coordinator accepts oversized client requests and sends an abort frame when a probe times out.</p><p>The <a href="https://primal.net/e/b8380ae1bf30492129727ec59e27e2ae8a4cf9ad08e7361826a9ba8be88a227a">release</a> also gives the Android operator a live status card for events, storage, address, and administration, and aligns the native cryptography library for devices with 16 KB memory pages. The relay and coordinator changes span several releases since the prior store version, 0.3.39; 0.3.45 is their packaged checkpoint.</p><h3>41:52 ngit-grasp 3.0.5 keeps Git pushes and relay sync moving</h3><p><a href="https://gitworkshop.dev/danconwaydev.com/ngit-grasp">ngit-grasp</a> nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr is a self-hosted Nostr relay and Git server for signed repository collaboration. Its <a href="https://primal.net/e/6ff00b9230e4523e6f14aaf6e5088f91e5696be38b9304a4e1cef384e3318d41">signed 3.0.5 release announcement</a> moves slow history reconciliation out of the shared live-sync actor, allowing relay subscriptions to start while earlier events are checked. It backs off separately for rate limits, incomplete history queries, mailbox reads, and identity lookups, so a sick relay no longer monopolizes retry capacity.</p><p>The <a href="https://primal.net/e/6ff00b9230e4523e6f14aaf6e5088f91e5696be38b9304a4e1cef384e3318d41">same release</a> reconciles against the local event inventory to avoid refetching stored history and closes incomplete subscriptions before treating their coverage as verified. On the Git side, it accepts pushes that background state promotion already applied, retains conflict protection for changed refs, and drains Git progress output during uploads to prevent a stalled push. Those details matter because a repository can appear live on relays while its Git transfer is still waiting for an authoritative result.</p><h3>42:42 Armada 0.63.0 carries push alerts across signer types</h3><p><a href="https://github.com/soapbox-pub/armada">Armada</a> is a Nostr client for encrypted communities, channels, and direct messages. Following last week&#x27;s media-privacy release, its <a href="https://primal.net/e/34021b55504d74c5d04f55dbfea87f31168a7c4582f35113d7ec063894d19e56">signed 0.63.0 announcement</a> describes a new browser push path that works while the app is closed for extension and remote-signer logins as well as other account types. Tenna, a host app that embeds Armada, also gains background notifications for its users.</p><p>The <a href="https://primal.net/e/34021b55504d74c5d04f55dbfea87f31168a7c4582f35113d7ec063894d19e56">release</a> loads older messages in long community channels faster and avoids rereading the whole history for new messages. Direct-message typing indicators use fewer relay connections. Desktop updates gain a restart prompt, while direct upgrades from versions older than 0.50.0 are no longer supported.</p><p>The signed <a href="https://primal.net/e/af3ff711c1c1daa4d6a621dc5add0615fc5d37fbb1de31395cb79dcdf820aaf1">0.63.1 follow-up</a> adds editable emoji packs with folder import and reordering, retrieves quoted messages beyond loaded history, and makes relay-hosted replies interoperable. It reduces Android reconnect traffic, catches up after long disconnects without repeating old alerts, excludes pre-join mentions, and preserves unedited group fields and private server-list entries. Deletions in relay-hosted groups now require the message author or an administrator. Server dragging, malformed relay-information handling, and repository subscriptions also receive fixes.</p><p><a href="https://primal.net/e/ad0f6ad1a7730a400e8257c494c53ef14597c55a24e01b05dd2b2301c7d3aa36">Version 0.63.2</a> expands message Markdown to nested quotes and lists, horizontal rules, code fences, underlined headings, and formatting across links or mentions. Tenor and Giphy page links play as GIFs. Read-state synchronization transfers less data, reconnection avoids redundant downloads and logins, and Android background notifications pause relay synchronization when large settings updates flood it.</p><h3>43:39 deed 0.3.0–0.3.2 makes Zig Nostr publishing steadier</h3><p><a href="https://github.com/zig-nostr/deed">deed</a> is a Zig command-line tool for reading and publishing Nostr events. Its <a href="https://github.com/zig-nostr/deed/releases/tag/v0.3.2">September 24 version 0.3.2</a> adds an agent skill and fixes relay ping deadlines; the preceding <a href="https://github.com/zig-nostr/deed/releases/tag/v0.3.1">0.3.1</a> and <a href="https://github.com/zig-nostr/deed/releases/tag/v0.3.0">0.3.0</a> releases improve performance and publication reliability. The three tags describe one early tool series. The visible Nostr benefit is a steadier relay connection and event-publishing path for scripts that use the CLI.</p><h3>44:15 Cordn 0.5.1 keeps other groups moving when a coordinator fails</h3><p><a href="https://github.com/Cordn-msg/cordn">Cordn</a> (maintainer: nostr:npub1atv4akyv986nswm4f87zdspfgehzgsva82l5jsd2k3dzgrtzpagssl84q8) is an MLS-encrypted group messenger that uses Nostr identities and relays to locate conversation coordinators. Its <a href="https://primal.net/e/23f7498e2e405e05c4d3075ccc522c753d80f37b954a81ff8ecb3268f2dc7dc6">signed 0.5.1 client release</a> follows last week&#x27;s offline-queue work by separating coordinator and outbox scheduling: an unavailable coordinator no longer delays sends for unrelated groups. Resolved relay hints persist after discovery, group documents carry them between devices, and a durable pending-publication record recovers stranded sends. Multi-device recovery overlaps history-chain and gap queries while reading current configuration.</p><p>The <a href="https://primal.net/e/23f7498e2e405e05c4d3075ccc522c753d80f37b954a81ff8ecb3268f2dc7dc6">release</a> also adds dropped-file attachments, pinned groups, profile names in previews and notifications, and coordinator labels. It repairs first-unread positioning, unread counters, duplicate alerts, media and system-message previews, replies attached to captioned media, and image zoom controls. Native downloads use a Save-as picker. A signer that appears late no longer causes a false unsupported-encryption warning, and account switching no longer races background seeding.</p><h3>45:03 Nymbot 1.0.7 adds local document handling and encrypted chat sharing</h3><p><a href="https://zapstore.dev/apps/ai.nymbot">Nymbot</a> nostr:npub16jdfqgazrkapk0yrqm9rdxlnys7ck39c7zmdzxtxqlmmpxg04r0sd733sv is an assistant reached through encrypted, gift-wrapped Nostr messages. Its <a href="https://primal.net/e/affd11e97fb3438965780aa01732e8d0e0f9b2162b87ab0f3019dff93449673e">developer-signed 1.0.7 release</a> reads documents on the device, selects relevant passages when a file is too large to send whole, and identifies the pages used. Conversations can be shared through an end-to-end encrypted link whose access can later be withdrawn. Python and JavaScript replies can run locally, with their output returned to the conversation.</p><p>The <a href="https://primal.net/e/affd11e97fb3438965780aa01732e8d0e0f9b2162b87ab0f3019dff93449673e">same release</a> adds sourced research with a price shown before submission, image editing, per-message model selection, and spending caps per chat and bot. External tools connected through MCP ask for confirmation before changing data. Repository runs can pause changes for review, display CI results, and resume after a busy gateway. Suggested replies, pinned notices, folded source lists, and a searchable model picker complete the update; these claims come from the developer release notes; Compass has not independently audited the privacy of the app.</p><h3>45:55 0xchat 1.5.6 ships its signing and message-authentication fixes</h3><p><a href="https://github.com/0xchat-app/0xchat-app-main">0xchat</a> nostr:npub1tm99pgz2lth724jeld6gzz6zv48zy6xp4n9xu5uqrwvx9km54qaqkkxn72 is a Nostr messenger with private chats, external signing, and wallet features. <a href="https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.6-release">Version 1.5.6</a> ships the security fixes <a href="https://nostrcompass.org/en/newsletters/2026-09-23-newsletter/#0xchat-merges-fixes-for-signing-message-authentication-and-redirect-flaws">covered as source merges last week</a>, including gift-wrap authentication, trusted infrastructure configuration, and consent for embedded-page signing. It also closes Tor proxy bypass paths, validates TLS certificates for non-onion hosts, and stops release builds from writing potentially sensitive credentials and wallet material to the device console. Opt-in developer logs continue to record errors.</p><p>The <a href="https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.6-release">release</a> backs relay reconnects off from three seconds to five minutes, repairs subscriptions after reconnection, and delivers requests queued while a relay is connecting. Account switches stop accumulating duplicate relay listeners, a failed login preserves the already active account, and external-signer connections persist across starts. Failed sends now show errors and retain unsent text or recoverable token-sharing state. Startup key decryption and upload hashing move off the UI thread; chat and video caches avoid repeated rendering and downloads. The release supplies Android and desktop assets with SHA-256 checksums, including the Play-signed Android APK and a Windows installer built from source.</p><h3>46:58 Nostr Mail Client 0.17.0 hides mailbox actions from relays</h3><p><a href="https://github.com/nogringo/nostr-mail-client">Nostr Mail Client</a> (maintainer nogringo: nostr:npub1kg4sdvz3l4fr99n2jdz2vdxe2mpacva87hkdetv76ywacsfq5leqquw5te) exchanges email through Nostr while supporting conventional email delivery. Following <a href="https://nostrcompass.org/en/newsletters/2026-09-23-newsletter/#nostr-mail-client-0160-adds-per-recipient-delivery-choices">last week&#x27;s per-recipient transport and media-privacy release</a>, <a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.17.0">version 0.17.0</a> hides read, archive, folder, and label state and their timing from relays, and lets users delete mail without notifying its sender. The release requires updating every device together because older clients do not see the new state or deletions. It also protects Bcc recipients in mail larger than 32 KB, keeps local contact aliases out of outgoing messages, repairs Amber QR login, and publishes public mail to the recipients&#x27; read relays.</p><p>The <a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.17.0">release</a> adds colored folders and labels with sender, subject, and attachment rules; reply and forward quotes; inline pasted images; attachment previews and renaming; and range selection in mail lists. Forwarding retains original images and attachments, reply quotes start collapsed, and the web editor gains a context menu. HTML tables and inline images render more accurately, plain-text links work, and scheduling supports dates up to five years ahead. Address-book names and pictures appear throughout the interface, and theme colors offer system, suggested, or custom palettes.</p><p>The same <a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.17.0">release</a> keeps file-selected backgrounds local and caches linked backgrounds, with an explicit migration cost: older file backgrounds on native platforms must be added again. It changes the default relay/media recommendations, adds Nostr-app discovery during onboarding and update notices, preserves unfamiliar settings written by other clients, and repairs interrupted mail-store creation and Linux packaging. Startup failures now show details and a prefilled report instead of a blank screen.</p><h3>47:53 Nostr WoT 0.8.7 binds authentication to the destination</h3><p><a href="https://github.com/nostr-wot/nostr-wot-extension">Nostr WoT</a> (maintainer Leon: nostr:npub1gxdhmu9swqduwhr6zptjy4ya693zp3ql28nemy4hd97kuufyrqdqwe5zfk) is a browser extension that combines Nostr signing with trust tools. <a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.8.7">Version 0.8.7</a> requires consent for <a href="https://nostrcompass.org/en/topics/nip-98/">NIP-98</a> signed HTTP authentication against the exact URL, query, method, account, and requesting origin. Older broad approvals require fresh consent. <a href="https://nostrcompass.org/en/topics/nip-42/">NIP-42</a> relay authentication has a separate account-bound permission system, with site-specific denials taking precedence over shared relay allows. Authentication requests must come from a verified top-level browser origin, and approval or unlock waits trigger another account/access check.</p><p>The <a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.8.7">release</a> verifies remote <a href="https://nostrcompass.org/en/topics/nip-46/">NIP-46</a> signatures and the complete approved event so a returned signature cannot silently substitute content or a destination. Wallet provisioning and address changes use body-bound authentication, one-use backend challenges, and separate transaction tokens; generic website signing cannot mint those internal wallet tokens. The compatible backend must deploy first, and the client refuses to downgrade to retired endpoints. Nostr Wallet Connect payments also verify a returned payment preimage against the requested invoice hash and treat a mismatch as an unknown outcome.</p><p>In the <a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.8.7">request interface</a>, users can inspect full raw events, choose specific requests in a site group, and view private messages locally without approving their return to a website. Local previews conceal themselves after 30 seconds; incoming requests remain unchecked, and ordinary bulk approval excludes authentication. The extension separates per-site and all-sites relay grants, bounds verified profile caching, resolves equal-timestamp replaceable events by lower event ID, and keeps home-popup publication reads local. Chrome and Firefox receive separately verified packages and serialized stable-release submission workflows; those workflows do not prove current store availability.</p><h3>49:20 Iris's shared runtime keeps relay and peer history consistent</h3><p><a href="https://github.com/mmalmi/nostr-pubsub">nostr-pubsub</a> supplies a shared Nostr event runtime with persistent event storage and an outgoing publication queue. <a href="https://github.com/mmalmi/nostr-pubsub/releases/tag/nostr-pubsub-ts-v0.5.13">Versions 0.5.7–0.5.13</a> batch exact subscriptions, replay them after reconnect, keep local, relay, and peer evidence distinct, and report incomplete history when durable storage fails. Completed queries wait for every received event to finish admission. The default relay batch now contains at most 20 OR filters for compatibility with common servers, while peer batches retain independent matching and cancellation.</p><p><a href="https://github.com/mmalmi/hashtree/releases/tag/hashtree-ts-runtime-v0.5.13">Hashtree&#x27;s runtime updates</a> replace worker-specific networking with that shared runtime, persistent event indexes, and an outgoing queue, allowing events and cached files to share one FIPS node. <a href="https://github.com/mmalmi/fips-ts/releases/tag/runtime-v0.0.45">FIPS TypeScript 0.0.44–0.0.45</a> selects routes with enough capacity for complete signaling records, recovers dropped session setup within the handshake deadline, and retries WebRTC answers only after explicit routing rejection. Larger framed WebSocket routes require compatible native peers; the 0.0.44 notes require deploying native FIPS 0.4.85 first.</p><p><a href="https://github.com/mmalmi/iris-kit/releases/tag/runtime-v0.2.5">Iris Kit 0.2.5</a> adds a persistent plain-event application client and transport-neutral <a href="https://nostrcompass.org/en/topics/nip-46/">NIP-46</a> signing while preserving account keys and offline reads. <a href="https://github.com/mmalmi/iris-kit/releases/tag/runtime-v0.2.6">Version 0.2.6</a> returns an already verified complete event ID from the worker or native backend immediately; prefix and replaceable-event queries still wait for history before choosing the latest value. These are library releases, and the notes do not establish deployment to every Iris application.</p><p><a href="https://github.com/irislib/meet/commit/9bebb074895fd34574c3a92056612cf3891de74b">Iris Meet&#x27;s September 30 source update</a> replaces its NDK integration with persistent publish/subscribe infrastructure and shared identity signers. The patch adds coverage for offline identity restoration, NIP-07 signing and meeting-room isolation. The existing <a href="https://github.com/irislib/meet">meeting app</a> uses Nostr for encrypted signaling and WebRTC for audio and video. This is default-branch implementation progress; the repository has no tagged release proving that this specific update has reached the live site.</p><h3>50:32 Chama propagates listing cancellation and background alerts</h3><p><a href="https://github.com/jesuspirate/chama">Chama</a> nostr:npub1m7nypkfk259h5h0dqwj9px0pqq7nz0cs7gjdhr7g793wspskeavqrljsln uses signed events for community trading and private conversations. <a href="https://github.com/jesuspirate/chama/releases/tag/v6.4.16">Versions 6.4.14–6.4.16</a> publish a signed cancellation before deleting a listing locally, so other clients can retire the same cached offer. Recipient wake tags now accompany events independently of the sender&#x27;s notification setting, and the alert server deduplicates by signed event so a chat immediately after a join can still trigger a wake. Background jobs replay affected trades from saved cursors, isolate failed chains, and decrypt notification text locally; the release requires redeploying the companion watcher.</p><p><a href="https://github.com/jesuspirate/chama/releases/tag/v6.4.16">The grouped releases</a> also apply participant renewals at their signed event times, quarantine funding locks made after a seat expired, and expose recovery for the saved bearer note. Claim publication waits for confirmed import or payment. Listing filters preserve the viewer&#x27;s currency across community scopes, and trade headers use the finalized joined amount. These changes align what two Nostr-connected clients infer from the same event history.</p><h3>51:16 Earthly 0.1.12 adds reusable map configurations</h3><p><a href="https://github.com/zeSchlausKwab/earthly">Earthly</a> nostr:npub1dmmh0futyszl4445mv4xrygkgsgj8vpu79yx3qyy9qxmz4pemtzqlqmc87 is a <a href="https://github.com/zeSchlausKwab/earthly/blob/v0.1.12/README.md">Nostr collaborative map editor</a> with signed publication and encrypted sharing. <a href="https://github.com/zeSchlausKwab/earthly/releases/tag/v0.1.12">Version 0.1.12</a> adds reusable GMapper configurations for public Google My Maps, developer-created Maplet discovery, private configuration storage or public publication, and attributed geometry copying. The same release adds encrypted connection sharing, entity drops, and mobile chat navigation. Google export availability and browser CORS limit importing, executable downloaded Maplets remain unavailable in Tauri, and physical Android upgrade checks remain pending.</p><p>The <a href="https://github.com/zeSchlausKwab/earthly/pull/29">configuration work</a> migrated existing publication addresses and preferences and added review or withdrawal of configuration updates. Its initial Android workflow failed before compilation; a <a href="https://github.com/zeSchlausKwab/earthly/pull/30">tooling fix</a> prepared the subsequently tagged release.</p><h3>51:56 Mostro 0.19.0 retires its first-generation transport</h3><p><a href="https://github.com/MostroP2P/mostro">Mostro</a> coordinates peer-to-peer trades over Nostr. <a href="https://github.com/MostroP2P/mostro/releases/tag/v0.19.0">Version 0.19.0</a> now ships the <a href="https://github.com/MostroP2P/mostro/pull/1004">removal of its first-generation gift-wrap transport</a>, so clients must use the newer protocol. The existing order-creation and dispute-opening timestamp tags are <a href="https://github.com/MostroP2P/mostro/pull/1000">renamed `published_at`</a> without changing their stored values; the enclosing event&#x27;s `created_at` remains its signing time. Restore responses return the counterparty&#x27;s trade key, accepted create/take operations recognize trade keys, and relay publication completes on the first positive relay acknowledgement. The same release updates bond deadlines and cancellation, closes disputes when a trade resolves, notifies the solver, and bounds relayed price staleness.</p><p>Mostro&#x27;s <a href="https://github.com/MostroP2P/mostro/pull/1006">trade-key admission fix</a> recognizes a key as soon as an introducing order or dispute is committed. Nodes with stricter first-contact proof of work previously could drop a legitimate follow-up message until the periodic known-key refresh; default-equal thresholds were unaffected. A <a href="https://github.com/MostroP2P/mostro/pull/923">dispute transaction</a> commits the order transition and dispute row atomically, closing inconsistent-state failures. <a href="https://github.com/MostroP2P/mostro/pull/945">Closure notifications</a> send the assigned solver a best-effort private message when the users resolve a dispute, with the existing replaceable event remaining the offline fallback.</p><h3>52:51 SCRUTINY Lens brings security research onto Nostr</h3><p><a href="https://github.com/crocs-muni/scrutiny-lens/releases/tag/v0.1.0">SCRUTINY Lens v0.1.0</a>, its first public release on September 29, is a browser client for security metadata published through Nostr. Analysts can search by CVE, package or certificate identifiers, inspect event histories and retractions, and explore relationships in a subject graph. The browser verifies event signatures and identifiers. Optional AI search and explanations use an endpoint chosen by the user; the app checks quoted citations against the underlying events. The <a href="https://github.com/crocs-muni/scrutiny-lens/releases/tag/v0.1.0">release notes</a> describe relay limitations explicitly and identify local build dependencies that still require sibling repositories.</p><h3>53:32 Mangatsu and Noteds reach Android</h3><p><a href="https://github.com/imattau/Mangatsu/releases/tag/v0.1.11">Mangatsu v0.1.11</a> (maintainer lostcause (imattau): nostr:npub1khf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlstdmd3q) is part of the comic reader and publisher&#x27;s first Android release series this week. Its <a href="https://github.com/imattau/Mangatsu/commit/543d6d3dde3bffe293b7336d0fb6f4c82532fe13">source</a> adds Amber login through <a href="https://nostrcompass.org/en/topics/nip-55/">NIP-55</a>, the Android interface for asking an external signer to approve Nostr operations. Comics and chapters are Nostr events, while their pages live on Blossom servers; the reader also supports an encrypted saved library and offline reading. Subsequent commits address signer invocation and relay-list refreshes.</p><p><a href="https://github.com/imattau/noteds/releases/tag/v0.1.2">Noteds v0.1.2</a> brings a Nostr classifieds marketplace to Android through Tauri. Its <a href="https://github.com/imattau/noteds/commit/c9294999134196e9d98c011440c7ca0ed5fcc398">Android signer integration</a> uses Android NIP-55 signing. The app publishes listings and messages over Nostr and builds a local search graph with categories, geographic areas and optional browser embeddings. The latest source fixes native location access for nearby search. Both projects are early releases; their GitHub release pages have no detailed notes, so these capabilities come from the tagged READMEs and implementation commits.</p><h3>54:23 Statim combines Nostr DMs with other networks</h3><p><a href="https://github.com/alaibe/statim/releases/tag/v0.4.0">Statim v0.4.0</a> follows its initial September 23 release. The <a href="https://github.com/alaibe/statim/blob/v0.4.0/README.md">tagged source</a> describes a messenger with NIP-17 Nostr DMs alongside XMTP, Status, Telegram and Matrix. Accounts start from a locally held recovery phrase; each conversation identifies its protocol because those networks provide different privacy properties. Android currently lacks its Telegram integration. These are the project&#x27;s documented capabilities, not independently tested guarantees or confirmation of app-store availability.</p><h3>55:04 Amethyst repairs encrypted-group interoperability</h3><p><a href="https://github.com/vitorpamplona/amethyst">Amethyst</a> is an Android Nostr client with Marmot encrypted-group support. White Noise is another Marmot messenger; an <a href="https://github.com/vitorpamplona/amethyst/pull/4245">interoperability batch tested with its clients</a> addresses group administration, deletion wording, and other behavior exposed when the two clients share a conversation. More pointed fixes send <a href="https://github.com/vitorpamplona/amethyst/pull/4233">reactions and deletions inside the Marmot group</a> instead of as separate <a href="https://nostrcompass.org/en/topics/nip-17/">NIP-17</a> gift-wrapped private messages and <a href="https://github.com/vitorpamplona/amethyst/pull/4240">apply edits from another client after restart</a>. Those are source merges; the testing described in the PRs is narrower than a published cross-client release.</p><p>A separate <a href="https://github.com/vitorpamplona/amethyst/pull/4201">Cordn group runtime and interface merge</a> adds another encrypted-group path through coordinator servers. Cordn is distinct from Marmot, so the two changes should not be read as one transport migration.</p><p>Amethyst also merged <a href="https://github.com/vitorpamplona/amethyst/pull/4231">HTTP relay commands in its Geode relay and Quartz client</a> under its <a href="https://nostrcompass.org/en/topics/nip-fe/">NIP-FE</a> proposal, and a <a href="https://github.com/vitorpamplona/amethyst/pull/4174">backup-conflict review interface</a> for replaceable profile and list events. NIP-FE is project proposal terminology; the backup flow lets a person compare versions before accepting a replacement and prevents silent overwrites of local state.</p><p>Amethyst also develops Concord, a separate encrypted-community protocol used by Armada and Accordion. A <a href="https://github.com/vitorpamplona/amethyst/pull/4262">conformance batch</a> adds fragmented community lists, pin proofs, key rotation and dissolution records, followed by <a href="https://github.com/vitorpamplona/amethyst/pull/4264">disappearing messages and direct invitations</a>. An invitation stays in a private inbox until accepted; receiving it does not contact the community&#x27;s relays. The same change corrects an author comparison that could let another author&#x27;s deletion remove a message. <a href="https://github.com/vitorpamplona/amethyst/pull/4265">Cross-client fixes</a> repair unsigned rumor serialization, missing invitation fields, relay-confirmed community creation and joining without restarting; their reported emulator tests involved live Armada and Accordion peers.</p><p>A later <a href="https://github.com/vitorpamplona/amethyst/pull/4277">private-channel implementation</a> rotates channel keys after relevant access revocations and adds create, privatize, publicize and rekey controls. It also adds rank-checked cooperative kicks and expires message attachments with their parent messages. WebXDC updates can enter a separate channel buffer, but Amethyst still has no WebXDC application host. That later batch reports wire-format and unit tests, with no device or live-relay exercise, so the earlier interoperability result does not certify every newly added control.</p><p>Quartz&#x27;s MLS engine now <a href="https://github.com/vitorpamplona/amethyst/pull/4271">preserves skipped message-generation secrets across restart</a>, enabling out-of-order messages to remain decryptable after restoring saved state. <a href="https://github.com/vitorpamplona/amethyst/pull/4272">Four retained former epochs</a> let callers authenticate late application messages, retain their authenticated data and prevent a consumed generation opening again. A <a href="https://github.com/vitorpamplona/amethyst/pull/4275">secret-tree update</a> loads unexpanded node secrets from ts-mls-style state; <a href="https://github.com/vitorpamplona/amethyst/pull/4270">sender-specific stale-generation errors</a> distinguish a client&#x27;s own ratchet collision from another member&#x27;s replay. The PR explicitly says Marmot&#x27;s existing retained-epoch fallback remains separate, so this is an engine capability, not proof that every Amethyst message path uses it.</p><p>A <a href="https://github.com/vitorpamplona/amethyst/pull/4267">Quartz tag-reader audit</a> fixes private geohash entries that could be published in clear text and a parser that treated the private key from an `nsec` as a public key. It also repairs repost addresses, channel-hide targets, live-room root tags and addressable mint events. The obsolete `ForkTag` reader is removed, creating a source API change for Quartz consumers; preexisting SQLite mint rows still need a separate migration. <a href="https://github.com/vitorpamplona/amethyst/pull/4282">Additional event models</a> cover Buzz&#x27;s project-container, artifact-revision and team proposals, while <a href="https://github.com/vitorpamplona/amethyst/pull/4266">video-view and encrypted push-control models</a> follow Divine&#x27;s schemas; these additions establish parsing and construction support, not complete client interfaces or adopted numbered NIPs.</p><p>The client also <a href="https://github.com/vitorpamplona/amethyst/pull/4284">renders Ultra HDR photographs</a> in the feed and fullscreen viewer on Android 14 or newer. Android 15 and newer cap the feed&#x27;s brightness boost at twice the ordinary range, while fullscreen can use the display&#x27;s full range; the reported test devices ran newer Android APIs, leaving Android 14 and 15 untested. A <a href="https://github.com/vitorpamplona/amethyst/pull/4278">shared UI and upload-port merge</a> brings 140 screens onto common Android/desktop code and moves Android media work off the UI thread. Its audit also restores metadata-removal error reporting, making the refactor more than a file move.</p><h3>56:59 Divine adds encrypted video to direct messages</h3><p><a href="https://github.com/divinevideo/divine-mobile">Divine</a> is a Nostr video client. <a href="https://nostrcompass.org/en/topics/nip-17/">NIP-17</a> carries private messages in encrypted gift wraps that hide their sender from relays. Divine&#x27;s <a href="https://github.com/divinevideo/divine-mobile/pull/9486">merged video-message work</a> encrypts an attached video on the device, uploads ciphertext, and sends the decryption key inside that private message. A recipient can verify and decrypt the file for playback or save it. A separate <a href="https://github.com/divinevideo/divine-mobile/pull/9446">history-restore fix</a> keeps an ambiguous relay refusal from prematurely ending recovery when other relays can still answer.</p><p>Divine&#x27;s <a href="https://github.com/divinevideo/divine-mobile/pull/9603">retired-moderation-key fix</a> refuses retired keys in moderation-label resolution and selects the current report recipient when a report is filed. Pending reports addressed to a retired key are redirected to the build&#x27;s pinned key, and unresolved conversations remain unwritable. The change also distinguishes retired-key custody when deciding which historical threads a minor may read; custody updates still require an application release. <a href="https://github.com/divinevideo/divine-mobile/pull/9677">Deleted-comment cache handling</a> prevents a successfully deleted recent comment from reappearing when a thread reloads.</p><p>For creators, a <a href="https://github.com/divinevideo/divine-mobile/pull/9598">live color-mask recording mode</a> previews the replacement backdrop before a take is recorded, and <a href="https://github.com/divinevideo/divine-mobile/pull/9701">white-wall masking</a> adds brightness-sensitive masking through the video plugin. <a href="https://github.com/divinevideo/divine-mobile/pull/9652">Word-by-word captions</a> preserve recognized word timings and use approximate timing when the server supplies whole cues only. <a href="https://github.com/divinevideo/divine-mobile/pull/9698">Stop-motion continuation</a> appends new stills at the existing composition&#x27;s pace, while <a href="https://github.com/divinevideo/divine-mobile/pull/9645">returning detached clips</a>, <a href="https://github.com/divinevideo/divine-mobile/pull/9654">grouped font selection</a> and <a href="https://github.com/divinevideo/divine-mobile/pull/9601">speed presets</a> add editing controls without changing the Nostr event format.</p><p><a href="https://github.com/divinevideo/divine-mobile/pull/9694">Square-export alignment</a> and its <a href="https://github.com/divinevideo/divine-mobile/pull/9703">smaller-clip follow-up</a> keep text and stickers in place across mixed-resolution clips. <a href="https://github.com/divinevideo/divine-mobile/pull/9664">Third-party HLS playback</a> avoids an Android heap crash by seeking back at loop boundaries instead of prebuffering repeated imported playlists; those loops can pause briefly at each restart. An <a href="https://github.com/divinevideo/divine-mobile/pull/9680">account-preference reload</a> keeps account-bound filters at their defaults across a switch while fixing part of a debug sign-in assertion. A separate moderation-label refresh issue remains open, so the PR does not claim every sign-in error is fixed.</p><h3>57:51 Buzz extends its relay's channel and identity controls</h3><p><a href="https://github.com/block/buzz">Buzz</a> nostr:npub16l0ck0s5zened29dsaqtqm6z0t4fmk2mwtszw64fz7fppcnls8mss3yj9s is a Nostr-based workspace with its own relay and clients. Its <a href="https://github.com/block/buzz/pull/7919">merged channel-artifact implementation</a> gives an editable record one channel home and a revision chain; conflicting edits cannot both become the head. The project&#x27;s <a href="https://nostrcompass.org/en/topics/nip-ar/">NIP-AR</a> label refers to its own proposal and implementation, not an established Nostr standard.</p><p>For protected HTTP ingress, another <a href="https://github.com/block/buzz/pull/7264">merged change</a> pairs a federated-identity assertion with the same key proven by <a href="https://nostrcompass.org/en/topics/nip-98/">NIP-98</a> authorization. NIP-98 defines signed HTTP authentication events; Buzz&#x27;s <a href="https://nostrcompass.org/en/topics/nip-fi/">NIP-FI</a> assertion is a project specification. It also merged <a href="https://github.com/block/buzz/pull/7849">HPKE encryption for secret-key backup envelopes</a>. That PR establishes source-level security work; distribution to every client remains unverified.</p><p><a href="https://github.com/block/buzz/releases/tag/desktop-v0.5.26">Buzz desktop 0.5.26</a> includes the channel-artifact work, native HPKE secret-key backup encryption, and a desktop relay administration console. Its shared changes repair unlisted project-channel requests, synchronize sidebar sections, sorting, stars, and mutes across devices, bound long-thread reads, and tighten Blossom identity assertions. The <a href="https://github.com/block/buzz/releases/tag/desktop-v0.5.26">repository-wide notes</a> separately list relay identity pairing, companion mention delivery, configurable push URLs, atomic administrative deletion, and mobile contextual names. A desktop release establishes the desktop/shared distribution; it does not prove those mobile changes shipped in a mobile build.</p><p>Buzz&#x27;s <a href="https://github.com/block/buzz/pull/7224">WebSocket NIP-FI enforcement</a> checks a federated-identity assertion before accepting frames, then requires its Nostr key to match the key authenticated through <a href="https://nostrcompass.org/en/topics/nip-42/">NIP-42</a>, which proves a client&#x27;s identity to a relay. A session expires at the earliest of the token expiry, maximum assertion age and configured connection lifetime; after expiry it admits no new effect. This project-specific NIP-FI mode is off by default. Already admitted audio commits and subscription setup can still wait on a stalled dependency, so the change does not establish a universal bounded disconnect time.</p><p><a href="https://github.com/block/buzz/pull/7830">Owner-deletion preparation</a> moves operator-attested requests through an inventory-bound automatic approval into the existing deletion executor. A <a href="https://github.com/block/buzz/pull/7969">relay follow-up</a> makes retrying the same request return its current state and reserves the owner&#x27;s active quota until deletion completes; permanently retained host tombstones count toward a 20-community lifetime cap. These are source-level administrative changes, and the follow-up instructs operators to keep deletion disabled until its relay and drain executor are live. Separately, a <a href="https://github.com/block/buzz/pull/6515">partition-catalog audit</a> detects catch-all partitions and uncovered months before creating new event and delivery-log partitions, exposing serving-safety and audit freshness to operators.</p><p>Buzz mobile now disambiguates people and agents that share a display name. Its <a href="https://github.com/block/buzz/pull/7894">identity-name resolver</a> qualifies agents by their owner and adds a short key suffix only when necessary; <a href="https://github.com/block/buzz/pull/7895">conversation integration</a> uses those names for authors, mentions and membership notices. <a href="https://github.com/block/buzz/pull/7896">Lists, search and Pulse</a> complete the same behavior outside a conversation. The visible qualification changes the local label while a selected mention keeps the identity&#x27;s original wire name.</p><h3>59:01 Conduit advances checkout after relay acceptance</h3><p><a href="https://github.com/Conduit-BTC/conduit-mono">Conduit</a> nostr:npub1nkfqwlz7xkhhdaa3ekz88qqqk7a0ks7jpv9zdsv0u206swxjw9rq0g2svu is a Nostr marketplace that sends private order messages to merchants. <a href="https://github.com/Conduit-BTC/conduit-mono/pull/483">Progressive relay publishing</a> distinguishes the first positive relay acknowledgement from completion of all relay attempts, and a <a href="https://github.com/Conduit-BTC/conduit-mono/pull/488">checkout follow-up</a> persists that first acknowledgement before proceeding. A relay&#x27;s acceptance means the signed order reached a relay; it does not prove a merchant read or fulfilled it.</p><p>Conduit also merged <a href="https://github.com/Conduit-BTC/conduit-mono/pull/529">recoverable remote-signer sessions</a> and <a href="https://github.com/Conduit-BTC/conduit-mono/pull/533">transactional signer-relay negotiation</a>. <a href="https://nostrcompass.org/en/topics/nip-46/">NIP-46</a> lets an application request signatures from a key held by a separate signer; these changes keep a user&#x27;s account workspace while its transport is being repaired, then verify the exact account before resuming. The PRs establish source behavior, not a shipped checkout build.</p><p>Conduit&#x27;s <a href="https://github.com/Conduit-BTC/conduit-mono/pull/575">ranked product-search merge</a> sends one ordinary <a href="https://nostrcompass.org/en/topics/nip-50/">NIP-50</a> full-text-search query for kind 30402 products and preserves the relay&#x27;s relevance order through signature checks, revision reconciliation and local eligibility filtering. Cards can appear before exact-product background reads finish, while newer signed deletions remain authoritative. Refresh and Retry stay within search and exact-product reads instead of starting broad catalog discovery. A 100-result cap followed by local filtering can miss eligible matches, so a partial empty response offers recovery and does not prove there are no products.</p><h3>59:50 Elisym builds a Nostr commerce checkout</h3><p><a href="https://github.com/elisymlabs/elisym">Elisym</a> is developing a commerce toolkit that signs products and carries private order and receipt messages over Nostr. Its <a href="https://github.com/elisymlabs/elisym/pull/120">merged commerce package</a> defines offer verification and gift-wrapped order events; a <a href="https://github.com/elisymlabs/elisym/pull/131">checkout interface</a> handles offer review, wallet payment, and delivery status, while a <a href="https://github.com/elisymlabs/elisym/pull/133">self-hosted merchant node</a> packages the store side. The project calls kind `30490` provisional and describes an October minimum slice. These source merges establish an emerging integration; an accepted Nostr commerce standard or complete public launch has not been demonstrated.</p><p>Elisym&#x27;s <a href="https://github.com/elisymlabs/elisym/pull/136">agent checkout tools</a> add `buy_product` and `get_order` for its Nostr-advertised products. The first call returns a quote without ordering, and a second call accepts the single-use quote and warnings for the same agent and network; order state is kept durably in the agent&#x27;s local file backend. <a href="https://github.com/elisymlabs/elisym/pull/137">Tempo checkout support</a> adds a browser-wallet payment path with merchant verification and delivery. A sent transaction hash keeps the attempt live until its outcome is established, avoiding an unpaid result while a broadcast could still settle.</p><p>A <a href="https://github.com/elisymlabs/elisym/pull/139">later checkout fix</a> lets the signed-product checkout initialize when a browser wallet announces itself immediately during discovery. The source change moves session declaration before that callback can run; the merge alone does not verify a hosted deployment.</p><h3>60:34 nostter improves signer checks and event retrieval</h3><p><a href="https://github.com/SnowCait/nostter">nostter</a> is a Nostr social client. Its <a href="https://github.com/SnowCait/nostter/pull/2573">merged signer-capability change</a> asks whether a usable signer is present before offering follow and reaction actions. <a href="https://github.com/SnowCait/nostter/pull/2611">New pin tags</a> carry the author&#x27;s key and a known relay hint without guessing one, and <a href="https://github.com/SnowCait/nostter/pull/2608">replaceable-event cache ordering</a> follows <a href="https://nostrcompass.org/en/topics/nip-01/">NIP-01</a>&#x27;s timestamp and event-ID tie-break. NIP-01 defines the core Nostr event rules, including how clients choose between replaceable events.</p><h3>61:00 Pensieve prepares isolated archive reconciliation</h3><p><a href="https://github.com/andotherstuff/pensieve">Pensieve</a> (maintainer: nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) is a Nostr archive and recovery tool. Its <a href="https://github.com/andotherstuff/pensieve/pull/60">merged isolated negentropy runtime</a> gives synchronization a bounded worker and durable completion behavior. The feature is opt-in and the PR explicitly says no production service or configuration was activated; this is groundwork for a safer recovery path, not evidence of a running deployment.</p><h3>61:25 ContextVM avoids duplicate calls across relays</h3><p><a href="https://github.com/ContextVM/sdk">ContextVM&#x27;s TypeScript SDK</a> nostr:npub1dvmcpmefwtnn6dctsj3728n64xhrf06p9yude77echmrkgs5zmyqw33jdm carries tool and resource requests as Nostr events. Its <a href="https://github.com/ContextVM/sdk/pull/103">merged inbound deduplication fix</a> recognizes one plaintext request by event ID even when multiple relays or a reconnect deliver it again, matching the existing wrapped-message path. The PR reports one non-idempotent tool running three times for a single call before the fix. A companion <a href="https://github.com/ContextVM/sdk/pull/101">resource-notification change</a> sends updates only to subscribed clients; initialized sessions without a subscription no longer receive them.</p><h3>61:56 Cyberspace revises the DECK-0003 object rules</h3><p><a href="https://github.com/arkin0x/cyberspace">Cyberspace</a> develops the DECK-0003 format for structured Nostr objects and encrypted region bags, which Amethyst began implementing in last week&#x27;s issue. New <a href="https://github.com/arkin0x/cyberspace/pull/36">parts and hidden-object rules</a> and <a href="https://github.com/arkin0x/cyberspace/pull/38">bag references</a> let a bag refer to a separately published object instead of embedding every part. A later <a href="https://github.com/arkin0x/cyberspace/pull/40">correction</a> says that an event-ID reference cannot reliably pin an old version of an addressable event, because a relay may discard it after replacement. Readers should use the corrected coordinate reference rule; the earlier merge&#x27;s wording has been superseded.</p><h3>62:29 Wisp fixes replies to Nostr comments</h3><p><a href="https://github.com/barrydeen/wisp">Wisp</a> (maintainer: nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8) is a Nostr client with relay-routing and wallet features. After last week&#x27;s released <a href="https://nostrcompass.org/en/topics/nip-22/">NIP-22</a> comment support, a <a href="https://github.com/barrydeen/wisp/pull/667">merged follow-up</a> makes a reply to a NIP-22 comment a comment event too, with the proper parent and root references; the previous path always published an ordinary note. NIP-22 lets comments attach to many Nostr content types. The fix merged after Wisp&#x27;s 1.2.5 tag, whose notes only bump the version, so this is source-level progress whose release is still unverified.</p><h3>63:00 Cordn sends coordinator locations to a second device</h3><p><a href="https://github.com/Cordn-msg/cordn">Cordn</a> coordinates encrypted group messaging over Nostr. Its <a href="https://github.com/Cordn-msg/cordn/pull/9">merged multi-device specification change</a> carries a group&#x27;s coordinator relay hints in the replicated group document. A newly seeded device can then find a coordinator that is absent from default relays, instead of appearing to join a group whose backlog and live messages it cannot fetch. This is protocol-document work following last week&#x27;s Cordn offline-queue release, not a new client release.</p><h3>63:30 Nostr Atlas opens a directory for checkable identities</h3><p><a href="https://nostr-atlas.web.app">Nostr Atlas</a> is a new directory that presents Nostr profiles alongside claims to external accounts. Its <a href="https://github.com/saiy2k/nostr-components/pull/148">merged site publication</a> separates the directory from the project&#x27;s component demo, and the site responds publicly. A <a href="https://github.com/saiy2k/nostr-components/pull/144">claim-flow merge</a> lets an X account owner publish a signed <a href="https://nostrcompass.org/en/topics/nip-39/">NIP-39</a> proof with a browser signer, while <a href="https://github.com/saiy2k/nostr-components/pull/146">profile enrichment</a> reads kind-0 Nostr metadata only after the proof verifies. NIP-39 defines the proof pattern for associating a Nostr key with another online identity; a relay acknowledgement alone does not mark a claim verified.</p><h3>64:01 nostr-java adds media hosting tools and preserves tag positions</h3><p><a href="https://github.com/tcheeric/nostr-java">nostr-java</a> is a Java library and MCP tool set for Nostr applications. Its <a href="https://github.com/tcheeric/nostr-java/pull/557">merged Blossom tools</a> let a caller upload, find, list, and delete hash-addressed media and manage the user&#x27;s server list. A separate <a href="https://github.com/tcheeric/nostr-java/pull/558">publishing fix</a> keeps empty tag values in place: Nostr tags are positional, so dropping an empty relay hint could shift a marker into the wrong field and make the published event differ from the approved preview.</p><h3>64:33 Zap Cooking changes how account history can be recovered</h3><p><a href="https://github.com/zapcooking/frontend">Zap Cooking</a> nostr:npub1xxdd8eusvdxmaph3fkuu9x2mymhrcc3ghe2l38zv0l4f4nqp659qskkt7a is a recipe-sharing Nostr client. Its <a href="https://github.com/zapcooking/frontend/pull/753">merged Lazarus recovery work</a> replaces a backup built on <a href="https://nostrcompass.org/en/topics/nip-78/">NIP-78</a> application-specific data events with an approach that scans relay-retained versions of replaceable events to detect overwritten follows, mutes, or profiles. Lazarus remains a draft protocol; recovery depends on relays that retained the older versions, and a merged web-client PR is not a guarantee that every lost event can be recovered.</p><p>The client also merged <a href="https://github.com/zapcooking/frontend/pull/743">optional NIP-13 proof-of-work controls</a> for notes and replies and an <a href="https://github.com/zapcooking/frontend/pull/752">attachment model</a> that keeps media order and <a href="https://nostrcompass.org/en/topics/nip-92/">NIP-92</a> descriptions consistent between preview and publication. <a href="https://nostrcompass.org/en/topics/nip-13/">NIP-13</a> lets a sender spend local computation on an event before posting; NIP-92 carries media metadata as event tags.</p><p>Zap Cooking&#x27;s <a href="https://github.com/zapcooking/frontend/pull/763">NIP-05 claim fix</a> requires <a href="https://nostrcompass.org/en/topics/nip-98/">NIP-98</a> authorization over the exact request body and rejects a signer different from the public key claiming the name. Previously, that public endpoint accepted unauthenticated claims that could replace another member&#x27;s name. Membership tier now comes from the existing membership record, and remote-signer users receive a signing prompt when claiming. The separate trusted server-side registration path remains unchanged.</p><p>A <a href="https://github.com/zapcooking/frontend/pull/764">mute-list repair</a> stops profile mute actions from replacing the whole kind 10000 list with public-key tags alone. The previous path erased word, hashtag and thread entries plus encrypted content, and one surface could republish decrypted private mute keys publicly. The new path reads the relay copy, preserves unrelated tags and ciphertext, and refuses to publish when that read is unavailable. Removing a private mute requires decryption and re-encryption through the signer.</p><h3>65:30 Opal brings remote signing to Omarchy</h3><p><a href="https://github.com/derekross/opal">Opal</a> (maintainer: nostr:npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424) is a desktop Nostr signer built for the Omarchy Linux environment. Its <a href="https://github.com/derekross/opal/releases/tag/v0.3.3">September 28 version 0.3.3</a> follows the first public series with <a href="https://nostrcompass.org/en/topics/nip-46/">NIP-46</a> remote-signing support, a local keyring, and a permission interface for requests from connected apps. NIP-46 keeps the account key with the signer while a separate client asks it to approve operations. This is an early release of a platform-specific signer, not a claim of wider desktop support.</p><h3>66:00 WatchTower opens a NIP-86 relay control panel</h3><p><a href="https://github.com/iqbqioza/watchtower">WatchTower</a> (maintainer takuya (iqbqioza): nostr:npub1takuya0nl8u82tgppggscgnpfz5m5vueckmr5r6xnm5nkyu555lq2uqwf4) is a newly published panel for relay administration through NIP-86, the protocol for authenticated relay management requests. A <a href="https://watchtower.nostrfy.org">public instance</a> responds, giving operators a place to inspect the interface. The repository was created September 22; a reachable site does not establish that its authorization flows have been independently audited or that it works with every relay implementation.</p><h3>66:29 Hubstr Blossom opens a personal media origin</h3><p>The newly published <a href="https://github.com/johninnis/hubstr-blossom">Hubstr Blossom server</a> lets a Nostr client upload images, video, and files to a self-hosted Blossom endpoint, then put those URLs in events. Its README documents local content-hash storage, a SQLite index, signed kind-24242 authorization for changes, and a range of Blossom operations for upload, mirroring, listings, and deletion. Public reads let other clients render posted media without receiving upload rights.</p><p>The <a href="https://github.com/johninnis/hubstr-blossom">server&#x27;s documented options</a> also extract file metadata for <a href="https://nostrcompass.org/en/topics/nip-94/">NIP-94</a> events, which describe shared media. The server can re-encode images without EXIF metadata and guards mirror requests against private-network targets by default. This is a newly published implementation with deployment instructions, not evidence of a broad production rollout.</p><p><a href="https://github.com/johninnis/hubstr-relay">Hubstr Relay</a> published its initial source on September 24. It combines a personal SQLite event cache with a public relay: unauthenticated readers see permitted public events, while NIP-42 authenticated tenants can read their cache. NIP-17 gift wraps remain unavailable to guest readers. Its <a href="https://github.com/johninnis/hubstr-relay/commit/0ae1a551ac50da0b7097105b76591dbc4d6cc023">September 25 update</a> corrects records returned by NIP-86 pubkey-list methods.</p><h3>67:18 Meshstr experiments with a permissionless relay mesh</h3><p><a href="https://gitlab.pocketlabs.dev/meshstr/meshstr">Meshstr</a> is an alpha design for Nostr relays to negotiate peer budgets and exchange signed usage receipts. Its first implementation includes <a href="https://gitlab.pocketlabs.dev/meshstr/meshstr/-/commit/6d609fc99f">a write-policy bridge for strfry, a Nostr relay</a>, added September 27, with a socket fix the next day. The repository describes DIDComm negotiation and <a href="https://nostrcompass.org/en/topics/nip-77/">NIP-77</a> reconciliation, which lets peers compare event sets without exchanging their full inventories, alongside verifiable reports of peers exceeding agreed budgets.</p><p>Those <a href="https://gitlab.pocketlabs.dev/meshstr/meshstr">project rules</a> are a proposal, not an adopted NIP or a demonstrated public relay network. The concrete progress this week is the published code path connecting a relay&#x27;s write policy to the proposed mesh accounting.</p><h3>67:54 Dossier shows what a public Nostr history can reveal</h3><p><a href="https://github.com/satanrayshe/dossier">Dossier</a> is a new browser-side self-audit tool for a person&#x27;s Nostr and Lightning footprint, with a <a href="https://satanrayshe.github.io/dossier/">public demo</a>. It gathers visible profile links, zap trails, posting times, metadata from old <a href="https://nostrcompass.org/en/topics/nip-04/">NIP-04</a> encrypted direct messages, and media metadata such as photo EXIF; it can also show where a relay still serves an event someone tried to delete. <a href="https://nostrcompass.org/en/topics/nip-07/">NIP-07</a> signer support lets a user authorize cleanup actions without pasting a private key into the page.</p><p>The project&#x27;s <a href="https://github.com/satanrayshe/dossier">documented limits</a> matter: a scan sees only the relays it reaches, and a delete request cannot erase copies held elsewhere. The repository appeared September 27 and has no tagged release; the demo and source establish an early tool, not a complete inventory of anyone&#x27;s past activity.</p><h3>68:32 Marmot MDK extends polls, custom emoji, and account metadata</h3><p><a href="https://github.com/marmot-protocol/mdk">Marmot MDK</a> supplies the runtime and bindings for encrypted Nostr group messaging. Later MDK source merges expose <a href="https://github.com/marmot-protocol/mdk/pull/2094">paginated per-voter poll selections</a> using the same effective-response rules as aggregate tallies. <a href="https://github.com/marmot-protocol/mdk/pull/1929">Optional application-owned group components</a> give hosts admin-controlled settings that survive message retention and reach newcomers in their Welcome. <a href="https://github.com/marmot-protocol/mdk/pull/2105">Tagged sends and media reactions</a> carry custom-emoji metadata through the runtime and bindings, retain decryption material for attached reaction images after an epoch change, and reject forged attachment tags. That change expands the C upload-request structure, so C consumers must rebuild against the header.</p><p>A <a href="https://github.com/marmot-protocol/mdk/pull/2093">convergence correction</a> keeps messages pending when no canonical branch was selected instead of invalidating them without trying the live state. An accompanying <a href="https://github.com/marmot-protocol/mdk/pull/2095">unreachable-path cleanup</a> routes unresolved staged commits into retained retry behavior. <a href="https://github.com/marmot-protocol/mdk/pull/2097">Encrypted-media reads</a> align the HTTP read timeout with resumable-body idle handling, addressing stalled large transfers without claiming the pending incoming-APK device acceptance test passed. <a href="https://github.com/marmot-protocol/mdk/pull/2098">Startup-stage markers</a> show which account-opening step timed out, adding diagnostic evidence without claiming the underlying startup stall is solved.</p><p>The local agent connector also <a href="https://github.com/marmot-protocol/mdk/pull/1969">merges existing profile metadata</a> when publishing a kind 0 update, preserving fields the request omitted. <a href="https://github.com/marmot-protocol/mdk/pull/2096">Group-profile updates</a> expose changes to a group&#x27;s name and description through the existing current-admin-authorized path. Its socket authentication still grants the whole local API; this merge does not add per-principal capability grants. These source changes follow the tagged 0.11.0 release.</p><h3>69:23 rust-nostr correlates relay count replies</h3><p><a href="https://github.com/rust-nostr/nostr">rust-nostr</a> (maintainer: nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet), a Rust library and SDK for Nostr applications, merged <a href="https://github.com/nostrdevkit/nostr/pull/1478">correlated COUNT responses and clearer waiter errors</a>. The SDK subscribes before sending COUNT and accepts only the matching reply, preventing a lost or closed receiver from appearing as a legitimate zero. It also preserves receiver errors for publication acknowledgements and relay authentication, so callers can distinguish a missing confirmation from an explicit rejection. Public method signatures stay unchanged.</p><h3>69:55 ZapTracker adds Nostr network and quote metrics</h3><p><a href="https://github.com/pratik227/zap_dashboard">ZapTracker</a> (maintainer Pratik (pratik227): nostr:npub1s56kqwj9ewz89dn5ns8elfwc4y7vygl0v4etglamw2gkc84cp8ts893h9f) is a creator dashboard for Nostr engagement and wallet activity. A <a href="https://github.com/pratik227/zap_dashboard/pull/133">network-dashboard merge</a> replaces Lightning network statistics with online Nostr relay data from nostr.watch and capability information from NIP-11 documents. A <a href="https://github.com/pratik227/zap_dashboard/pull/135">quote-metrics change</a> counts kind 1 events carrying `q` tags alongside likes, reposts, bookmarks and zaps. This lets creators see quotes in content rankings and engagement charts; it remains merged source evidence.</p><h3>70:26 LaWallet NWC routes card top-ups to the card wallet</h3><p><a href="https://github.com/lawalletio/lawallet-nwc">LaWallet NWC</a> nostr:npub1ek4262k6nv3l9axh403w2e66pzl2pqhhnjrhgv2wpzx2akak285scxv4pd connects Lightning wallets to applications over Nostr Wallet Connect. Its <a href="https://github.com/lawalletio/lawallet-nwc/pull/316">BoltCard top-up merge</a> advertises a LUD-19 pay link that creates an invoice through the card wallet&#x27;s NWC `make_invoice` method. Blocked, disabled or unpaired cards do not advertise a pay link, and the path does not redirect top-ups to the owner&#x27;s separate Lightning address. A <a href="https://github.com/lawalletio/lawallet-nwc/pull/319">follow-up</a> exposes the same link in the emulator and carries recipient-accepted payer notes on LNURL sends.</p><h3>70:58 A new khatru relay exposes owner moderation controls</h3><p><a href="https://github.com/rzazo24/nostr-relay-khatru">nostr-relay-khatru</a> published its initial source on September 29 as a general relay derived from the discontinued HiveScope-specific implementation. The <a href="https://relay.hivescope.xyz">public instance</a> serves a NIP-11 document naming this repository and advertising authentication, event expiry, protected events, counting, reconciliation and relay administration. A <a href="https://github.com/rzazo24/nostr-relay-khatru/commit/a6ef7cff9c4f833a6a2f72957d45935c736a0c51">September 30 implementation</a> adds moderation controls to its owner panel. The public metadata verifies a deployed endpoint, not successful testing of every advertised method.</p><h3>71:36 A local web-of-trust builder tracks unfollows</h3><p><a href="https://github.com/etemiz/wot/commit/212fe268dd781c73adad51329be235abc8fd37db">etemiz/wot</a> published a Nostr web-of-trust crawler on September 30. It reads follow lists and NIP-65 relay lists, computes trust from configurable roots, and writes scores to LMDB for relay policies, feeds and spam filters. The <a href="https://github.com/etemiz/wot">project documentation</a> explains the trade-off: live updates increase trust, while scheduled full crawls apply decreases and unfollows. Scores depend on the chosen roots. This is newly published source, with no tagged release or claim of production deployment.</p><h3>72:09 Moyu opens a Marmot workspace client</h3><p><a href="https://github.com/tsgx1990/moyu">Moyu</a> has published the source for a Rust workspace chat client built on <a href="https://nostrcompass.org/en/topics/marmot/">Marmot</a>, with command-line, terminal, and desktop interfaces. Its <a href="https://github.com/tsgx1990/moyu/blob/88a20d247510d1cc46ca955564aa395d26ae8e89/CHANGELOG.md">September 30 changes</a> use locally recorded membership changes to stop old join requests readmitting removed members, make invitation codes expire after seven days, and let administrators revoke them. Terminal output filters control characters and text-direction overrides supplied by other members. A pinned MDK fork routes Blossom attachment transfers through the configured SOCKS5 proxy, with hostname resolution performed by that proxy. The 0.3.0 changes are in the public source; no public release tag or release entry is available yet.</p><h3>72:42 NIP-39 extends identity proofs to Bluesky and Discord</h3><p><a href="https://nostrcompass.org/en/topics/nip-39/">NIP-39</a> lets a Nostr account point to proof that it controls an identity on another platform. A <a href="https://github.com/nostr-protocol/nips/pull/2486">change merged September 27</a> gives new proofs one recommended sentence and tells verifiers to accept older proofs that contain the account&#x27;s npub, even when their wording differs. It also documents Bluesky posts and Discord messages as proof locations. A Discord claim can only be checked by someone who can read the server where its message was posted.</p><h3>73:30 NIP-86 adds invite-code management for relay administrators</h3><p>Compass described in the July 8 issue the <a href="https://github.com/nostr-protocol/nips/pull/2408">NIP-86 invitation proposal</a> while it was open; it has now merged. <a href="https://nostrcompass.org/en/topics/nip-86/">NIP-86</a> defines a standard relay-management API, and <a href="https://nostrcompass.org/en/topics/nip-43/">NIP-43</a> defines how restricted relays announce membership and process admission requests. The September 24 merge adds `listclaims`, `createclaim`, and `deleteclaim` so an administrator can list, issue, and revoke invite codes accepted by a relay. That gives operators a management path for invitations that may grant a member a role after they join; it does not require every relay to support the methods.</p><p>A correction to last week&#x27;s <a href="https://nostrcompass.org/en/newsletters/2026-09-23-newsletter/#nip-86-adds-clear-and-list-methods-for-relay-management">NIP-86 coverage</a>: the <a href="https://github.com/nostr-protocol/nips/blob/5b9920982ae1f4061328c1b09a90360da28d13c8/86.md">merged specification</a> added `unallowevent`, `unbanevent`, `listallowedevents`, and `listdisallowedkinds`. The earlier item listed names from an outdated proposal description. The first two methods reverse an event-level allow or ban decision; the others inspect allowed events and disallowed kinds.</p><h3>74:17 NIP-51 moves favorite follow sets to an unused event kind</h3><p><a href="https://nostrcompass.org/en/topics/nip-51/">NIP-51</a> defines public and private lists, including a list of a user&#x27;s favorite follow sets. Compass described the <a href="https://github.com/nostr-protocol/nips/pull/2417">kind-collision proposal</a> in the July 22 issue; it has now merged. The September 27 correction assigns that favorites list kind `10021` because the earlier number was already in use. Its `a` tags still point to kind `30000` follow sets. The change resolves a number collision in the specification; it does not create a new way to follow people.</p><h3>74:50 NIP-51 proposes hidden replies for each thread</h3><p>An <a href="https://github.com/nostr-protocol/nips/pull/2489">open NIP-51 proposal</a> would let a thread&#x27;s author publish a public hidden-replies set that cooperating clients display behind a toggle. It uses one addressable kind-30027 event per thread, with the root ID as its `d` tag and `e` tags naming replies; only a set signed by the root&#x27;s author applies. Listing the root asks clients to hide other authors&#x27; replies and stop offering a reply composer, while replies can still be published on relays. The per-thread format limits editing collisions to the same conversation. The author reports an implementation in Nostrich, but public-source inspection did not establish it; the proposal remains unmerged, with its set format still under discussion.</p><h3>75:32 NIP-DB proposes verified domain names for key-addressed services</h3><p>The <a href="https://github.com/nostr-protocol/nips/pull/2487">open NIP-DB proposal</a>, submitted September 28, describes Nostr events that bind an ordinary Internet domain to the key serving it over a key-addressed network such as <a href="https://nostrcompass.org/en/topics/fips/">FIPS</a>, an encrypted mesh that addresses nodes by Nostr public key. A domain owner can establish the binding with a DNS TXT record or a DNSSEC proof carried with the claim; clients would pin a verified result for later offline use. The proposal explicitly bars resolution through an unverified claim, since anyone can claim someone else&#x27;s domain in a Nostr event. <a href="https://github.com/fr34aky/fips-pub-domains">fips-pub-domains</a> is the author&#x27;s reference implementation, but the event-kind numbers and some overlay-specific wording are still under review. Its reported end-to-end tests are the author&#x27;s evidence, not a claim that the proposal is an accepted NIP.</p><h3>76:18 A private-feed draft explores encrypted groups of recipients</h3><p>A <a href="https://github.com/nostr-protocol/nips/pull/2488">new multi-recipient envelope proposal</a>, opened September 29, sketches private notes, replies, and connections whose intended recipients can find an event without exposing their ordinary public keys in its visible tags. It proposes opaque pairwise alias tags derived from shared secrets and provisional event kinds, including a way to wrap another Nostr event for hundreds of readers. That could give small private feeds a more direct retrieval path than sending a separate message to every member.</p><p>The <a href="https://github.com/nostr-protocol/nips/pull/2488">proposal&#x27;s author</a> explicitly calls this a work in progress. The draft has no demonstrated implementation or security review, and its kind assignments and byte-level signing rules remain open.</p><h3>76:57 A Blossom proposal lets other people announce mirrored media</h3><p>An <a href="https://github.com/nostr-protocol/nips/pull/2478">open NIP proposal</a> describes a way for someone who mirrors another author&#x27;s Blossom blob to announce that copy through Nostr. A client could then look for the copy if the original server loses the blob. Discussion has also raised checking the mirror&#x27;s current BUD-03 server list when an announced server hint has gone stale. This is a proposed discovery path, not a guarantee that clients or archival relays already provide fallback storage.</p><h3>77:28 Road-event reports seek a shared Nostr format</h3><p>The <a href="https://github.com/nostr-protocol/nips/pull/2479">open Road Event Reports proposal</a> describes reports and confirmations for potholes, closures, cameras, and other road conditions. It uses location tags and <a href="https://nostrcompass.org/en/topics/nip-40/">NIP-40</a>&#x27;s expiration timestamp, which tells relays when to stop serving an event, so a report need not remain current indefinitely. The author based revisions on a sample of events recovered from public relays and on the existing <a href="https://github.com/jooray/roadstr">Roadstr clients</a> for reporting road conditions, but the draft still leaves a compact-encoding question open, and the proposed NIP number has not been adopted.</p><h3>78:01 Marmot revisits multi-device coordination</h3><p><a href="https://github.com/marmot-protocol/marmot/pull/427">Marmot&#x27;s multi-device redesign</a> replaces an unimplemented External Commit draft with a non-normative walkthrough for early feedback. The new direction explores an existing device approving a new one, bringing it into conversations and later removing devices, while keeping open questions visible. IDs reserved by the removed draft are freed because no implementation adopted them. The ideas document allocates no new IDs or wire formats and is not an implemented multi-device feature.</p><h3>78:36 Six Years of Nostr Septembers</h3><p>The last September issue is a chance to trace how Nostr moved from sketches to a larger set of interoperable tools. A <a href="https://github.com/arcbtc/buber/commit/7a66d400f2">2021 ride-matching prototype</a> used signed events to coordinate a service; five years later, <a href="https://github.com/nostr-protocol/nips/commit/0046368a7">identity proof wording</a> and <a href="https://github.com/nostr-protocol/nips/commit/6631b3eb1">list-kind collisions</a> are the sort of details maintainers are resolving. In between, clients learned to present conversations, media and recovery in ways ordinary people can use. The dated sources below show stages in that progression. They do not establish that every experiment launched or that each old design remains recommended.</p><h3>79:04 September 2021: early experiments with useful shapes</h3><p>A <a href="https://github.com/arcbtc/buber/commit/7a66d400f2">September 4 BUber commit</a> explored a taxi-matching concept using Nostr events. It showed how a signed, relay-carried request could coordinate people without assigning the whole service to one server. The source is a concept, and it does not establish a launched ride service.</p><p>Later that month, <a href="https://github.com/emeceve/loquaz/commit/d885d93d22">Loquaz&#x27;s September 23 source</a> offered a desktop chat prototype. That was another early attempt to make relay messages feel like an ordinary application. The source does not establish finished end-to-end encryption or a production messenger; the lasting thread is the search for a usable conversation interface on top of simple events. BUber tested ride matching, and Loquaz tested chat; both used signed events before common client patterns had settled. Those trials laid out two recurring problems for later clients: coordinating through relays and presenting events as a usable conversation.</p><h3>79:46 September 2022: chat and delegated actions enter the specifications</h3><p>The <a href="https://github.com/nostr-protocol/nips/commit/3423a6dfb">September 10 NIP-28 change</a> described public chat channels with messages and metadata that clients could interpret together. <a href="https://nostrcompass.org/en/topics/nip-28/">NIP-28</a> made a shared room an explicit protocol subject and gave clients a common channel convention.</p><p>On September 23, <a href="https://nostrcompass.org/en/topics/nip-26/">NIP-26</a>&#x27;s <a href="https://github.com/nostr-protocol/nips/commit/b62aa418d">delegated-signing text</a> documented a way for one key to authorize another to sign limited events. It captured an important 2022 design question: how to use a Nostr identity without handing the primary key to every application. <a href="https://github.com/nostr-protocol/nips/blob/master/26.md">NIP-26 is now marked unrecommended</a>, so this is a record of an experiment, not advice for new integrations. Its later status shows how the signing model has moved: a specification can preserve a useful problem statement even when the proposed answer is retired.</p><h3>80:27 September 2023: clients grow up around relay discovery and metadata</h3><p>Damus is a Nostr social client. Its <a href="https://github.com/damus-io/damus/blob/master/CHANGELOG.md#16-18---2023-09-21">September 21 changelog</a> recorded work on its local Nostr database, search, and hashtag navigation. Those changes made a busy social feed easier to browse and recover on a phone; the dated changelog is evidence for that client release, not for every later Damus capability.</p><p>The protocol details were moving too. A <a href="https://github.com/nostr-protocol/nips/commit/44c21c9d8">September 26 change</a> to <a href="https://nostrcompass.org/en/topics/nip-24/">NIP-24</a> clarified optional profile metadata fields, while <a href="https://github.com/nostr-protocol/nips/commit/3b5d3ca67">NIP-65&#x27;s September 29 change</a> addressed relay URI normalization and deduplication. <a href="https://nostrcompass.org/en/topics/nip-65/">NIP-65</a> tells clients how to publish the relays they use for reading and writing; consistent URI treatment helps those lists point to the same relay even when strings differ in harmless ways. That small convention moved client design toward reliable discovery: finding a person&#x27;s events depends on knowing where they are published.</p><h3>81:19 September 2024: posts acquire richer context</h3><p><a href="https://github.com/damus-io/damus/blob/master/CHANGELOG.md#1101---2024-09-22">Damus&#x27;s September 22 release notes</a> described support for <a href="https://nostrcompass.org/en/topics/nip-84/">NIP-84</a> highlights and comments. NIP-84 gives readers a way to quote and discuss a passage of long-form material. The client work shows how a protocol idea became something people could use while reading.</p><p>Meanwhile, <a href="https://nostrcompass.org/en/topics/nip-34/">NIP-34</a> received a <a href="https://github.com/nostr-protocol/nips/commit/ea36ec9ed">September 20 change</a> refining issue subjects and labels for git collaboration over Nostr, and <a href="https://nostrcompass.org/en/topics/nip-73/">NIP-73</a> received a <a href="https://github.com/nostr-protocol/nips/commit/79786bb7b">change that day</a> refining external content identifiers. These are separate specification changes: one helps a repository&#x27;s issues retain structure, while the other lets an event refer to material outside Nostr. Both extend the meaning a client can preserve when content travels between communities, repositories and other media.</p><h3>81:57 September 2025: access controls and payment context become more precise</h3><p>A <a href="https://github.com/nostr-protocol/nips/commit/4c5d5fff9">September 6 NIP-42 revision</a> addressed multi-user relay authentication. <a href="https://nostrcompass.org/en/topics/nip-42/">NIP-42</a> lets a relay challenge a client to prove which Nostr key is making a request; the update mattered for services that serve more than one authenticated account through the same connection.</p><p>A <a href="https://github.com/nostr-protocol/nips/commit/400d975da">September 15 NIP-47 update</a> added optional payment metadata to Nostr Wallet Connect requests. <a href="https://nostrcompass.org/en/topics/nip-47/">NIP-47</a> lets an app ask a wallet to perform actions over Nostr. More context can make a wallet interaction understandable, but the metadata may expose payer details, so clients and wallets still need to treat it as sensitive. The change illustrates how interoperability work now included what a recipient can learn, not just whether a request can be delivered.</p><h3>82:42 September 2026: interoperability details meet public identity</h3><p>This September, a <a href="https://github.com/nostr-protocol/nips/commit/6631b3eb1">merged NIP-51 change</a> moved the follow-set event kind away from a collision. <a href="https://nostrcompass.org/en/topics/nip-51/">NIP-51</a> defines lists that a person can maintain and share; unique event kinds let clients distinguish one list type from another. An earlier Compass issue discussed the proposal, while the September merge is the status change.</p><p>A second <a href="https://github.com/nostr-protocol/nips/commit/0046368a7">merged change to NIP-39</a> clarified proof text and added more ways to associate an external account with a Nostr identity. <a href="https://nostrcompass.org/en/topics/nip-39/">NIP-39</a> is about checkable identity claims, not a central identity registry. Together, the two merges show current protocol work concentrating on the small details that determine whether independent clients interpret the same identity and list events correctly. They also show a shift from inventing new event categories toward reducing ambiguity in existing ones.</p><p>Across these six Septembers, the pattern is a progression from proving that a <a href="https://github.com/arcbtc/buber/commit/7a66d400f2">signed event can describe an application request</a> to asking how a <a href="https://github.com/nostr-protocol/nips/commit/0046368a7">client verifies a claim about a person</a>. The old prototypes matter because they expose the questions that later specifications and clients had to answer: who signs, where an event is found, what it means, and how someone knows whether to trust it. That is also why a small, precise protocol correction can matter as much as a new interface.</p>]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #41</title>
      <description></description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqpymr0va3x7mmt94kx7emzdahkktf5xyqpdx2p</link>
      <pubDate>Thu, 01 Oct 2026 04:27:08 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:logbook-logbook-41</guid>
      <enclosure url="https://blossom.ditto.pub/d04488a4272ce16e3898a799989e17751acdeb2661f2240ad6c51ada9fe95e73.mpga" type="audio/mpeg" length="63428065" />
      
      <itunes:duration>44:03</itunes:duration>
      <itunes:episode>41</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
      <podcast:transcript url="https://blossom.ditto.pub/14f3ae6420f332343ef342fbe676f70827def1a07f67171a8ddc3d7595d09e3b.txt" type="text/plain" />
      <podcast:chapters url="https://blossom.ditto.pub/380fa7abba1d4c73059923063eca384d1e3a5948143d0f3868f4c30585813a1f" type="application/json+chapters" />
      <content:encoded><![CDATA[<p>Max and Sam discuss FIPS mesh tools, private messaging, Nostr application releases, relay operations, custom emoji, and video events this week.</p><p>Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt nostr:npub1yzfm42rzr3dj2h50flpvdl0uzrv22kv2y4ghve804w5xqu6lzqcqkyfxu5</p><p><a href="https://nostrcompass.org/en/newsletters/2026-09-23-newsletter/">Newsletter 41</a> · <a href="https://gitworkshop.dev/npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923/relay.ngit.dev/nostr-compass-android">Nostr Compass Android source</a></p><h3>0:00 Welcome and Nostr Compass Android app</h3><p>Max opens the asynchronous podcast and introduces the <a href="https://gitworkshop.dev/npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923/relay.ngit.dev/nostr-compass-android">Nostr Compass Android app</a>, which brings the newsletter, podcasts and voice-note contributions together.</p><h3>0:47 fips2go 0.7.0 keeps the mesh connected through bootstrap failures</h3><p><a href="https://github.com/fr34aky/fips2go">fips2go</a> is an Android client that lets selected applications reach peers and services over the FIPS encrypted mesh. The new <a href="https://github.com/fr34aky/fips2go/releases/tag/v0.7.0">0.7.0 release</a> connects to three regional bootstrap peers by default instead of relying on one. It can also retry a configured peer at Nostr-advertised endpoints when its static address changes.</p><h3>1:43 fips-initramfs opens encrypted roots over FIPS before boot</h3><p><a href="https://github.com/jmcorgan/fips-initramfs">fips-initramfs</a> is a Linux initramfs package that starts a FIPS mesh node before normal boot so an operator can remotely open a LUKS-encrypted root through its npub-addressed node. The user-submitted <a href="https://github.com/jmcorgan/fips-initramfs/releases/tag/v0.1.0">0.1.0 release</a>, published September 6, packages the mesh client, SSH access, and passphrase-entry scripts for systems that need unattended or remote encrypted-root startup.</p><h3>2:53 Grain 0.8.0-rc4 turns relay health into an operator dashboard</h3><p><a href="https://github.com/0ceanSlim/grain">Grain</a> is a self-hosted Nostr relay with an integrated reference client and administration interface. <a href="https://github.com/0ceanSlim/grain/releases/tag/v0.8.0-rc4">Version 0.8.0-rc4</a> adds a live vitals panel for event volume, connections, uptime, storage, memory, and writer health, plus per-kind storage charts and reorganized access, policy, and retention controls.</p><h3>3:18 Marmot Protocol 0.10.4 makes local sends durable</h3><p><a href="https://github.com/marmot-protocol/mdk">Marmot Protocol&#x27;s MDK</a> is an SDK for MLS-encrypted group messaging whose transport and discovery run over Nostr. <a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.10.4">Version 0.10.4</a> persists local sends before network completion, lowers draft and pending-message latency, prevents repeated automatic attachment downloads, and exposes retention state in chat-list previews.</p><h3>4:19 MintRadar makes Cashu mints easier to compare</h3><p><a href="https://mintradar.org">MintRadar</a> is a privacy-focused Cashu dashboard that uses Nostr to discover mints and bind community reviews to signed identities. Its <a href="https://github.com/hroomnik007/MintRadar">current source</a> adds persistent NIP-87 mint announcements, same-operator detection from NUT-06 pubkeys, shareable comparison URLs, and Nostr <code>naddr</code> deep links.</p><h3>4:52 Nostr WoT Oracle 0.3.1 makes trust queries restart-safe</h3><p><a href="https://github.com/nostr-wot/nostr-wot-oracle">Nostr WoT Oracle</a> (maintainer Leon Acosta: nostr:npub1gxdhmu9swqduwhr6zptjy4ya693zp3ql28nemy4hd97kuufyrqdqwe5zfk) is a server that ingests public follow and mute events and answers bounded web-of-trust path queries. <a href="https://github.com/nostr-wot/nostr-wot-oracle/releases/tag/v0.3.1">Versions 0.3.0 and 0.3.1</a> add independently persisted public mute evidence, readiness and ingestion status, revision-bound caches, deterministic replaceable-event selection, and rollback behavior that prevents unpersisted graph changes from becoming queryable.</p><h3>5:43 Nostr WoT SDK 1.0.2 compresses browser graph storage</h3><p><a href="https://github.com/nostr-wot/nostr-wot-sdk">Nostr WoT SDK</a> is a JavaScript toolkit for crawling, storing, and querying Nostr follow graphs in applications. <a href="https://github.com/nostr-wot/nostr-wot-sdk/releases/tag/nostr-wot-sdk%401.0.2">Version 1.0.2</a> adopts a graph engine that batches up to 100 authors per relay request, stores edges with compact delta encoding, reuses compatible traversals, and exposes batch distance queries.</p><h3>6:19 napplet.soy publishes small sandboxed Nostr programs</h3><p><a href="https://napplet.soy">napplet.soy</a> is a web playground and creator toolkit for building, publishing, playing, inspecting, and remixing small sandboxed Nostr programs called napplets. NIP-34 defines signed Nostr events for Git repository discovery and collaboration. The <a href="https://github.com/zeSchlausKwab/napplet-soy/releases/tag/soyli-v0.18.2">soyLI 0.18.2 release</a> follows the project&#x27;s September launch with signed listings, Blossom-hosted assets, Git and NIP-34 source references, and relay-discovered manifests.</p><h3>7:10 RelayKit installs a self-hosted Nostr stack</h3><p><a href="https://relayk.it">RelayKit</a> is a one-command installer for a self-hosted Nostr stack that can include relays, Blossom media, nsites, Git services, and notifications. RelayKit now packages a broader stack than the browser relay-discovery client covered in April; its <a href="https://github.com/samthomson/relaykit">current source repository</a> documents the new operator-focused deployment surface.</p><h3>10:15 Threshold Sessions turns coding transcripts into private training data</h3><p><a href="https://gitworkshop.dev/npub17m2ual3pdjvhd8yc6a3m8snzjsgnmtl26hwen48ne937qgyjyshs2zgvse/relay.ngit.dev/threshold">Threshold Sessions</a> is a command-line tool that converts AI coding sessions into normalized, redacted, and encrypted training-data epochs. Its repository supports Codex, Claude Code, Cursor, OpenCode, and pi transcripts, stores encrypted artifacts on Blossom, and publishes signed references through Nostr.</p><h3>10:55 White Noise Android 2026.9.21 improves encrypted-chat reliability and sharing</h3><p><a href="https://github.com/marmot-protocol/whitenoise-android/releases/tag/android-v2026.9.21">White Noise Android</a> is a Nostr-based messenger for private Marmot-encrypted group conversations. Its September 21 release improves message delivery, voice dictation, text-to-speech, conversation navigation, account switching, and AMOLED appearance. It also adds shareable profile and invite QR cards and group actions from profiles.</p><h3>12:40 Nostr Mail Client 0.16.0 adds per-recipient delivery choices</h3><p><a href="https://github.com/nogringo/nostr-mail-client">Nostr Mail Client</a> (maintainer nogringo: nostr:npub1kg4sdvz3l4fr99n2jdz2vdxe2mpacva87hkdetv76ywacsfq5leqquw5te) is a web, desktop, and Android mail client that exchanges messages through Nostr relays while supporting conventional email delivery. <a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.16.0">Version 0.16.0</a> lets a sender choose SMTP or Nostr delivery for each recipient and strips location, capture time, and device metadata from photos and videos before upload.</p><h3>13:29 Amber 6.6.5 separates backup encryption from app permissions</h3><p><a href="https://github.com/greenart7c3/Amber">Amber</a> (maintainer: nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5) is an Android signer that keeps Nostr private keys outside the applications requesting signatures or encryption. NIP-44 standardizes encrypted payloads between Nostr keys, while NIP-46 lets an application request signing and encryption from a remote signer over relays. <a href="https://github.com/greenart7c3/Amber/releases/tag/v6.6.5">Version 6.6.5</a> encrypts application backups with a dedicated key derived from the account key, preventing an application with remembered NIP-44 decryption permission from reading backup payloads that contain local keys or per-app NIP-46 secrets.</p><h3>14:00 Amethyst 1.16.0 hardens Blossom signing and adds BOLT12 offers</h3><p><a href="https://github.com/vitorpamplona/amethyst">Amethyst</a> nostr:npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0 is an Android Nostr client with media, wallet, and signer integrations. <a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.16.0">Version 1.16.0</a> fixes fast Blossom read authorization so concurrent media requests share one in-flight signer operation and recheck the token cache before asking for another signature. The tagged release also restores standard padded Base64 for Blossom auth tokens.</p><h3>14:46 Alby Extension 3.15.0 hardens website-initiated requests</h3><p><a href="https://github.com/getAlby/lightning-browser-extension">Alby Extension</a> nostr:npub1getal6ykt05fsz5nqu4uld09nfj3y3qxmv8crys4aeut53unfvlqr80nfm is a browser wallet and Nostr signer that grants websites scoped Lightning and signing capabilities. <a href="https://github.com/getAlby/lightning-browser-extension/releases/tag/v3.15.0">Version 3.15.0</a> blocks website-supplied LNURLs from local or private network addresses, requires cross-host LNURL-auth confirmation, and removes remembered approval for raw Schnorr-signing methods.</p><h3>15:28 LaWallet NWC 2.7.1 unifies zap receipts across wallets</h3><p><a href="https://github.com/lawalletio/lawallet-nwc">LaWallet NWC</a> nostr:npub1ek4262k6nv3l9axh403w2e66pzl2pqhhnjrhgv2wpzx2akak285scxv4pd is an open-source Lightning wallet service that exposes accounts to applications through Nostr Wallet Connect. NIP-57 standardizes signed Lightning zap requests and settlement receipts for Nostr profiles and events. <a href="https://github.com/lawalletio/lawallet-nwc/releases/tag/v2.7.0">Version 2.7.0</a> decouples that receipt publication from wallet-specific settlement paths so every supported NWC wallet can emit zap receipts, then <a href="https://github.com/lawalletio/lawallet-nwc/releases/tag/v2.7.1">2.7.1</a> brings receive and activity screens onto the same receipt flow as sends.</p><h3>15:55 NoorNote 1.6.0–1.7.0 adds calendars and booking</h3><p><a href="https://github.com/77elements/noornote">NoorNote</a> (maintainer: nostr:npub175nul9cvufswwsnpy99lvyhg7ad9nkccxhkhusznxfkr7e0zxthql9g6w0) is a Nostr notes application with optional productivity modules and local reminders. <a href="https://github.com/77elements/noornote/releases/tag/v1.6.0">Version 1.6.0</a> adds public and encrypted calendar events, month, week, and list views, Android reminders, and interactive timeline cards for shared events.</p><h3>16:22 Citrine 3.2.0 bounds relay-aggregator memory</h3><p><a href="https://github.com/greenart7c3/Citrine">Citrine</a> is an Android Nostr relay that gives other applications a local event store and relay interface. <a href="https://github.com/greenart7c3/Citrine/releases/tag/v3.2.0">Version 3.2.0</a> streams matching events in batches, caps aggregator fan-out at 200 relays, and bounds caches to prevent large queries from exhausting memory.</p><h3>16:44 Wisp 1.2.4 routes threads through inbox relays</h3><p><a href="https://github.com/barrydeen/wisp">Wisp</a> (maintainer: nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8) is a privacy-oriented Nostr client with built-in Cashu and Lightning wallet support. NIP-22 defines generic kind <code>1111</code> comments that can reply to many kinds of Nostr content. <a href="https://github.com/barrydeen/wisp/releases/tag/v1.2.4">Version 1.2.4</a> sends thread and notification reads only to inbox relays, treats those comments as replies, and lets users withdraw their full wallet balance on chain.</p><h3>17:14 nostr-wot-extension 0.8.3 adds scoped NWC connections</h3><p><a href="https://github.com/nostr-wot/nostr-wot-extension">nostr-wot-extension</a> is a browser signer and identity extension with wallet payments and local web-of-trust analysis. <a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.8.0">Version 0.8.0</a> restores its experimental web-of-trust API as a menu-only opt-in with local, remote, and hybrid query modes, scalable graph synchronization, mute-aware scoring, and per-account storage controls.</p><h3>18:32 pakstr 0.22.0–0.24.0 adds Android signer handoff</h3><p><a href="https://git.nostrdev.com/stuff/pakstr">pakstr</a> packages web applications with native Nostr capabilities. Last week&#x27;s issue covered its 0.21.x packaging sequence. The new <a href="https://git.nostrdev.com/stuff/pakstr/releases/tag/v0.22.0">0.22.0 release</a> adds NIP-55 signing through the NIP-46 bunker, letting an Android application hand signing requests to an external signer.</p><h3>19:18 Nail 0.2.2 makes mail attachments fail soft</h3><p><a href="https://github.com/formstr-hq/nail">Nail</a> nostr:npub1qu7dsd44275lms4x9snnwvnnmgx926nsppmr7lcw9dlj36n4fltqgs7p98 is a bridge and application that carries Nostr messages into email workflows. <a href="https://github.com/formstr-hq/nail/releases/tag/v0.2.2">Version 0.2.2</a> retries a message without attachments when a relay refuses the attachment payload, adds a size ceiling to prevent bridge restarts, and changes the default bridge relay.</p><h3>19:45 Mostro CLI 0.16.2 removes its legacy chat transport</h3><p><a href="https://github.com/MostroP2P/mostro-cli">Mostro CLI</a> nostr:npub1m0str0d7z2ww8rdh20t2n9lx520xjwhaq24p68umqp06wwrwtsnqen40un is a terminal client for coordinating peer-to-peer Bitcoin trades through Mostro&#x27;s Nostr protocol. <a href="https://github.com/MostroP2P/mostro-cli/releases/tag/v0.16.2">Version 0.16.2</a> removes the version-one gift-wrap dual-read and dual-write path, migrates peer chat to the current envelope, and lets a trader reach the solver through dispute chat.</p><h3>20:17 Dart NDK dev.4–dev.5 adds signed app updates and hardens relay delivery</h3><p><a href="https://github.com/relaystr/ndk">Dart NDK</a> (maintainer: nostr:npub1xpuz4qerklyck9evtg40wgrthq5rce2mumwuuygnxcg6q02lz9ms275ams) is a Dart client library for relay connections, signing, caching, wallet operations, and Nostr application state. NIP-82 standardizes signed application-release metadata and downloadable artifacts. <a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.4">Version 0.10.0-dev.4</a> adds NIP-82 application-update support; <a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.5">dev.5</a> makes Cashu quote recovery resumable and lets a broadcast declare the identity to which it may be attributed.</p><h3>20:49 BitBlik 0.11.0 brings disputes into the app</h3><p><a href="https://github.com/bit-blik/bitblik">BitBlik</a> nostr:npub1k3g092rlzvn7nftz3jte9pkx63zp705nh78r6hjpjm55fjg7r2cqx8stj3 is a mobile peer-to-peer Bitcoin trading client that coordinates orders and chat over Nostr. <a href="https://github.com/bit-blik/bitblik/releases/tag/v0.11.0">Version 0.11.0</a> adds coordinator dispute chat, BOLT12 payouts where supported, Android self-updates sourced from NIP-82 release events, and wallet backup and recovery fixes.</p><h3>21:11 Scramble 0.7.2 changes MLS engines and offers two Android views</h3><p><a href="https://github.com/DavidGershony/Scramble">Scramble</a> is a Nostr-based encrypted group-chat application. Its <a href="https://github.com/DavidGershony/Scramble/releases/tag/v0.7.0">0.7.0 release</a> replaces the former MLS engine with Dark Matter, restores encryption at rest for group state, and prevents Android cloud backup of the profile database. The migration has an important limit: groups created in 0.6.x do **not** appear after upgrading, although the account key, contacts, relays, and signer pairing remain.</p><h3>22:19 Morganite 0.0.5 makes onion Blossom media seekable</h3><p><a href="https://github.com/greenart7c3/Morganite">Morganite</a> is an Android Blossom media cache for Nostr clients. <a href="https://github.com/greenart7c3/Morganite/releases/tag/v0.0.5">Version 0.0.5</a> fetches blobs from Tor <code>.onion</code> Blossom servers with Tor-aware retries and honors HTTP Range requests on a cache miss. A player can seek into an uncached video while Morganite fills the full cache in the background instead of storing only disjoint requested slices.</p><h3>22:43 Bitcredit 0.5.16 recovers stalled Nostr bill events</h3><p><a href="https://github.com/BitcreditProtocol/Bitcredit-Core">Bitcredit E-Bills</a> nostr:npub1eajvs8x67vmzsnwaf9ltfgt59e6acmeztx9shduewvfgwftx8ahsagcd93 carries bill, company, and identity chains through Nostr events. <a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.16">Version 0.5.16</a> repairs event-signature serialization compatibility after its Nostr 0.45 dependency upgrade, exposes failed resend-queue entries for inspection and requeue, and resynchronizes missing chain metadata before retrying a block publication. Those changes target both upgraded-data compatibility and messages that would otherwise remain stuck.</p><h3>23:24 fips-ts 0.0.43 protects concurrent FIPS sessions</h3><p><a href="https://github.com/mmalmi/fips-ts">fips-ts</a> (maintainer: nostr:npub1g53mukxnjkcmr94fhryzkqutdz2ukq4ks0gvy5af25rgmwsl4ngq43drvk) supplies the shared TypeScript FIPS mesh runtime used by compatible clients. Its <a href="https://github.com/mmalmi/fips-ts/releases/tag/runtime-v0.0.43">runtime 0.0.43 release</a> preserves an authenticated identity when concurrent setup or an aliased WebRTC transport hands a session over, while rejecting a different identity. It also prevents canceled negotiations and late callbacks from replacing a working connection.</p><h3>23:59 Bookshelf 0.1.25 makes signed book reviews editable</h3><p><a href="https://github.com/decent-newsroom/bookshelf-app">Bookshelf</a> (organization Decent Newsroom: nostr:npub1ez09adke4vy8udk3y2skwst8q5chjgqzym9lpq4u58zf96zcl7kqyry2lz) is a Nostr-connected Android reader with community book ratings and private highlights. <a href="https://github.com/decent-newsroom/bookshelf-app/releases/tag/v0.1.25">Version 0.1.25</a> lets readers revise their signed rating and written review through a durable outbox. The app displays cached ratings immediately, refreshes them online, and replaces older revisions by the newest event for the same book and author.</p><h3>24:34 Cordn 0.5.0 queues encrypted messages offline</h3><p><a href="https://github.com/Cordn-msg/cordn-web">Cordn</a> (maintainer: nostr:npub1atv4akyv986nswm4f87zdspfgehzgsva82l5jsd2k3dzgrtzpagssl84q8) is an encrypted Nostr group-chat client. <a href="https://github.com/Cordn-msg/cordn-web/releases/tag/v0.5.0">Version 0.5.0</a> queues text sends in a durable offline outbox, makes failed entries terminal until a successful confirmation sweep, and resumes coordinator chats in order. It also checks a signer&#x27;s NIP-44 capability before offering an encrypted action, surfacing unsupported signers instead of failing silently.</p><h3>25:00 21Meetup 1.6.6 restores multi-hop trust paths</h3><p><a href="https://github.com/louisthecat86/Einundzwanzig-Meetup-App">21Meetup</a> nostr:npub1rl4wlgapxcapk0p3242kqcw7az584sjxgssuwh38u2gatk0cwewsudjz85 issues Nostr-backed attendance badges for in-person events. <a href="https://github.com/louisthecat86/Einundzwanzig-Meetup-App/releases/tag/v1.6.6">Version 1.6.6</a> restores second- and third-degree trust paths by fetching contacts&#x27; meetup records in bounded stages. Failed badge publications can be retried, and a send counts as successful only after a relay acknowledges it.</p><h3>25:29 TWENTY ONE Companion 1.13.0 explains public Nostr RSVPs</h3><p><a href="https://github.com/HolgerHatGarKeineNode/twenty-one-companion">TWENTY ONE Companion</a> nostr:npub1pt0kw36ue3w2g4haxq3wgm6a2fhtptmzsjlc2j2vphtcgle72qesgpjyc6 combines Nostr rooms and articles with meetup listings. <a href="https://github.com/HolgerHatGarKeineNode/twenty-one-companion/releases/tag/v1.13.0">Version 1.13.0</a> saves pinned rooms and articles to relays, showing a pin as local until a relay confirms it. Eligible meetup RSVPs are signed public Nostr events; the app warns that third-party relays may retain them even after a user declines.</p><h3>25:56 Armada 0.61.0 adds media privacy and member controls</h3><p><a href="https://github.com/soapbox-pub/armada">Armada</a> is a Nostr-based encrypted community client. <a href="https://primal.net/e/122a06dbab02d207b3aa793b0fedd06fd59d36178a7b9ae5971cfc3b7f3eb6ce">Version 0.61.0</a> adds an opt-in image proxy list so a sender&#x27;s media host need not learn a reader&#x27;s address. Staff can kick, ban, or unban a member from a profile card, and a private-channel key granted with a role now applies without a separate invite.</p><h3>26:30 Ditto 2.40.0 brings Top 8 rankings to Nostr profiles</h3><p><a href="https://gitlab.com/soapbox-pub/ditto">Ditto</a> nostr:npub10qdp2fc9ta6vraczxrcs8prqnv69fru2k6s2dj48gqjcylulmtjsg9arpj is a social client on Nostr. <a href="https://gitlab.com/soapbox-pub/ditto/-/releases/v2.40.0">Version 2.40.0</a> lets a user rank eight favorite people on their profile. Reordering stays local until Save, then the ranked list appears on the profile and its update can appear as a card in followers&#x27; feeds.</p><h3>26:53 XM Arcade 1.1.3 binds mini-app approval to one run</h3><p><a href="https://gitworkshop.dev/r/xm-arcade">XM Arcade</a> runs small games and mini-apps within a Nostr group context. <a href="https://primal.net/e/dec0edda9ff464b4b7598032318cb48e17cf496e29d05031d1f1629409039a4c">Version 1.1.3</a> binds a post approval to an opaque run token, the request, app, account, group, and channel. Expired or replayed approvals no longer authorize another mini-app run.</p><h3>27:34 Zzub 0.0.15–0.0.16 expands mobile project boards</h3><p><a href="https://primal.net/e/70c5efeea2e9314329b8951346d83ad0688b74607a108e8bc820caae545196c2">Zzub</a> is a Nostr-based project and code-review client. Its 0.0.15 release adds status columns, sorting and filtering, threaded comments, named assignees, and approve or request-changes actions to its phone boards. A built-in Git client opens source and files-changed diffs from a pull-request card, bringing the existing desktop review flow onto the phone.</p><h3>28:15 Table Mesh 0.1.0 brings Nostr game discovery to offline board games</h3><p><a href="https://primal.net/e/c5c5ad0eba413e18c10e3cd2be607e550ac818a8abaf97ccbf8fa242fbaff15f">Table Mesh 0.1.0</a> is a first Android release for playing board games across nearby phones over Bluetooth and local Wi-Fi. It includes *Mensch ärgere Dich nicht* and solo bots. A Nostr kind-7529 catalog distributes additional sandboxed game modules through Blossom, with downloaded bytes checked against their announced hashes.</p><h3>28:57 0xchat merges fixes for signing, message-authentication, and redirect flaws</h3><p><a href="https://github.com/0xchat-app/0xchat-app-main/pull/92">0xchat&#x27;s merged security PR</a> addresses four audit findings in its Nostr and Cashu application code. It limits Cashu P2PK witness signing to keys actually authorized by a lock, rejects unsealed gift-wrap contents except MLS Welcome events, accepts infrastructure host-map configuration only from the trusted server key, and requires consent before an embedded web page can call NIP-07 signing or read relay settings.</p><h3>29:17 nos2x-fox closes a PIN exposure path</h3><p><a href="https://github.com/diegogurpegui/nos2x-fox">nos2x-fox</a> is a Firefox extension that offers Nostr signing to websites. A <a href="https://github.com/diegogurpegui/nos2x-fox/pull/69">merged access-control fix</a> stops a website from asking the extension background for the cached PIN that derives its private-key encryption key. The page bridge now forwards only allowed request types, and the background rejects privileged requests unless they originate from an extension page.</p><h3>29:54 nostream publishes relay health events</h3><p><a href="https://github.com/cameri/nostream">nostream</a> is a Nostr relay implementation that also runs a relay monitor. Its <a href="https://github.com/cameri/nostream/pull/741">merged NIP-66 work</a> publishes signed relay-discovery and monitor-announcement events after a probe, giving other clients a way to find the monitor&#x27;s measurements through Nostr. <a href="https://nostrcompass.org/en/topics/nip-66/">NIP-66</a> defines relay-discovery and monitor events so relay status can be shared in a common format.</p><h3>30:24 nostter ties remote signing to the active session</h3><p><a href="https://github.com/SnowCait/nostter">nostter</a> is a web Nostr client for reading and publishing through relays. Its <a href="https://github.com/SnowCait/nostter/pull/2518">NIP-46 connection lifecycle</a> now belongs to the authenticated session&#x27;s signer, so a failed login or session reset can dispose of the remote connection instead of leaving a module-global signer behind. <a href="https://nostrcompass.org/en/topics/nip-46/">NIP-46</a> lets a client ask a separate signer to approve cryptographic operations over Nostr.</p><h3>30:43 Zap Cooking publishes image descriptions and blocks secret-key searches</h3><p><a href="https://github.com/zapcooking/frontend">Zap Cooking</a> is a Nostr recipe and long-form publishing site. Its <a href="https://github.com/zapcooking/frontend/pull/746">NIP-92 image-description work</a> lets authors write alternative text for images in notes, replies, recipes, articles, and products, then carries that text in <code>imeta</code> tags that other clients can render. <a href="https://nostrcompass.org/en/topics/nip-92/">NIP-92</a> standardizes media metadata attached to Nostr events, including image descriptions.</p><h3>31:05 Divine Mobile reconnects idle relay subscriptions</h3><p><a href="https://github.com/divinevideo/divine-mobile">Divine Mobile</a> (maintainer rabble: nostr:npub1wmr34t36fy03m8hvgl96zl3znndyzyaqhwmwdtshwmtkg03fetaqhjg240) is a short-video client that publishes and reads Nostr events. A <a href="https://github.com/divinevideo/divine-mobile/pull/9246">merged relay fix</a> reconnects after an idle timeout or remote closure, including subscriptions that only receive data and never send another request to trigger recovery. That restores a path used by direct-message inboxes and moderation labels after a connection drops.</p><h3>31:30 Conduit uploads product images through Blossom</h3><p><a href="https://github.com/Conduit-BTC/conduit-mono">Conduit</a> is a Nostr-based marketplace with merchant publishing tools. Its <a href="https://github.com/Conduit-BTC/conduit-mono/pull/503">merged image-upload work</a> lets merchants add product images from desktop or mobile through a configured Blossom server while keeping product publication separately signed. Blossom is a media-storage protocol that uses Nostr identities to authorize uploads and let applications retrieve files.</p><h3>31:52 Buzz adds authenticated relay moderation controls</h3><p><a href="https://github.com/block/buzz">Buzz</a> nostr:npub16l0ck0s5zened29dsaqtqm6z0t4fmk2mwtszw64fz7fppcnls8mss3yj9s includes a Nostr relay and community administration tools. Its <a href="https://github.com/block/buzz/pull/7302">merged relay-admin routes</a> let authorized operators list active bans and timeouts and lift them through a signed HTTP request. <a href="https://nostrcompass.org/en/topics/nip-98/">NIP-98</a> defines Nostr-event authorization for HTTP calls, allowing the relay to verify who made the administrative request.</p><h3>32:12 ContextVM SDK shortens publish waits and repairs streams</h3><p><a href="https://github.com/ContextVM/sdk">ContextVM SDK</a> nostr:npub1dvmcpmefwtnn6dctsj3728n64xhrf06p9yude77echmrkgs5zmyqw33jdm is a TypeScript toolkit for applications that exchange signed requests and streams over Nostr relays. Its <a href="https://github.com/ContextVM/sdk/pull/100">relay-pool change</a> sends an event to every connected relay but, by default, finishes the caller&#x27;s wait after the first positive acknowledgement; applications that need all acknowledgements can still request that mode. One slow relay no longer determines the normal publish wait.</p><h3>32:44 Mostro preserves an order's original creation time</h3><p><a href="https://github.com/MostroP2P/mostro">Mostro</a> is a peer-to-peer Bitcoin exchange coordinator that publishes orders over Nostr. Its <a href="https://github.com/MostroP2P/mostro/pull/971">merged kind <code>38383</code> change</a> adds a stable <code>created_at</code> tag from the order record, allowing clients to sort or age an order by when it was opened instead of by its latest status revision. <a href="https://nostrcompass.org/en/topics/nip-69/">NIP-69</a> defines the Nostr order format used by interoperable trading clients.</p><h3>33:11 Amethyst implements DECK-0003 objects and encrypted bag search</h3><p><a href="https://github.com/vitorpamplona/amethyst/pull/4186">Amethyst&#x27;s merged DECK-0003 work</a> reads and renders Simple Nostr Objects, a JSON 3D-mesh format carried in Nostr events. It supports kind <code>11333</code> avatars, kind <code>3330</code> shards, and opening encrypted kind <code>33330</code> region bags from a location hint. CLI commands parse and verify objects or calculate the bounded search needed to open a bag.</p><h3>33:59 Amethyst broadens MLS interoperability and repairs desktop group rendering</h3><p><a href="https://github.com/vitorpamplona/amethyst/pull/4187">Amethyst&#x27;s Quartz library</a> now lets callers choose an MLS group ID and omit Marmot-only required capabilities when interoperating with other MLS stacks. Separate merged changes allow <a href="https://github.com/vitorpamplona/amethyst/pull/4182">extensions supported by every group member</a>, carry <a href="https://github.com/vitorpamplona/amethyst/pull/4184">authenticated application-message data</a>, and set an optional <a href="https://github.com/vitorpamplona/amethyst/pull/4188">key-package lifetime</a>. The Marmot defaults remain unchanged; these are shared-library capabilities, not a claim that every client UI exposes them.</p><h3>34:44 nostter gates signing and private reads on real capabilities</h3><p>Continuing the session-owned NIP-46 work above, <a href="https://github.com/SnowCait/nostter/pull/2570">nostter&#x27;s merged signer migration</a> checks for an actual signer before offering write actions instead of treating every logged-in session as writable. <a href="https://github.com/SnowCait/nostter/pull/2574">Private bookmarks</a> now require NIP-04 or NIP-44 decryption capability, and <a href="https://github.com/SnowCait/nostter/pull/2576">remote-signer settings</a> require NIP-44 support. A read-only or anonymous account can still use non-writing profile actions.</p><h3>35:07 Pensieve makes archive reconciliation bounded and durable</h3><p><a href="https://github.com/andotherstuff/pensieve/pull/48">Pensieve&#x27;s archive receipt work</a> (maintainer: nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) waits for actual durable event markers before declaring a reconciliation attempt complete, retaining unresolved IDs across recovery. The <a href="https://github.com/andotherstuff/pensieve/pull/49">sealing change</a> separates periodic archive durability from optional Parquet publication, and the <a href="https://github.com/andotherstuff/pensieve/pull/50">bounded inventory</a> scans sealed segments with explicit limits and a persisted cursor.</p><h3>35:28 MDK reduces repeated replay work for parked encrypted messages</h3><p><a href="https://github.com/marmot-protocol/mdk/pull/2007">MDK&#x27;s merged replay fix</a> addresses work repeated after a publish confirmation, publish failure, or group join when messages remain parked because they cannot yet be decrypted. The previous path classified each row&#x27;s lineage again and rewound group state for each row and retained anchor. The new deferred-sweep ingest path skips redundant classification and shares a group-scoped cache of historical contexts, invalidating it when canonical state changes.</p><h3>35:46 NIP-02 clarifies petnames in follow lists</h3><p><a href="https://nostrcompass.org/en/topics/nip-02/">NIP-02 (Follow List)</a> standardizes the kind <code>3</code> event that records whom an account follows and can attach a local petname to each followed key. The <a href="https://github.com/nostr-protocol/nips/pull/2472">merged petname clarification</a> allows display-safe characters while preserving the field as a user&#x27;s local label, not a globally verified name.</p><h3>36:04 NIP-86 adds clear and list methods for relay management</h3><p><a href="https://nostrcompass.org/en/topics/nip-86/">NIP-86 (Relay Management API)</a> standardizes authenticated administrative calls for banning, allowing, inspecting, and configuring a relay. <a href="https://github.com/nostr-protocol/nips/pull/2477">PR #2477</a>, merged September 23, adds methods for clearing pubkeys or events from both allow and ban lists and for listing roles, allowed events, and disallowed kinds, including behavior already present in the khatru relay framework and the go-nostr library.</p><h3>36:21 NIP-69 proposes a stable creation time for trading orders</h3><p><a href="https://nostrcompass.org/en/topics/nip-69/">NIP-69 (Peer-to-Peer Trading)</a> standardizes addressable order events that let multiple trading applications share buy and sell liquidity. <a href="https://github.com/nostr-protocol/nips/pull/2476">PR #2476</a> proposes an optional creation-time tag that stays fixed across status updates, so a returned or republished order retains its original age even when a newer event records a status change.</p><h3>36:45 NIP-A3 proposes proof of payment-address ownership</h3><p><a href="https://nostrcompass.org/en/topics/nip-a3/">NIP-A3 (Payment Targets)</a> lets an account publish portable payment addresses for multiple networks in one replaceable event. <a href="https://github.com/nostr-protocol/nips/pull/2475">PR #2475</a> proposes an optional signature made by the payment address&#x27;s own key, giving compatible address types a proof that binds the destination to the Nostr author while treating missing proofs as neutral.</p><h3>37:13 BUD-16 proposes deterministic directory manifests</h3><p><a href="https://github.com/hzrd149/blossom/pull/105">BUD-16</a> is an open Blossom proposal for grouping content-addressed blobs into named directory trees with reproducible manifest hashes. The draft defines deterministic MessagePack encoding, named links, metadata, optional encryption keys, and <code>.bdir</code> path resolution while leaving servers to store ordinary blobs.</p><h3>37:49 Marmot adds encrypted group polls</h3><p><a href="https://nostrcompass.org/en/topics/marmot/">Marmot Protocol</a> defines interoperable application events inside MLS-encrypted groups carried over Nostr. NIP-88 defines poll questions and signed response events. <a href="https://github.com/marmot-protocol/marmot/pull/425">Merged MIP work</a> recognizes those polls inside a group while keeping relay selection bound to authenticated group routing and explicitly stating that they are not anonymous or election-grade.</p><h3>38:28 Marmot merges group reports and admin deletion</h3><p><a href="https://github.com/marmot-protocol/marmot/pull/423">Marmot group moderation</a> defines encrypted report, dismissal, and administrator-deletion events that converge under the group&#x27;s authenticated state. The proposal covered last week has now merged, fixing a status transition that lets implementations align report review and message removal against the accepted specification.</p><h3>38:59 NWC-13 proposes connection budget queries</h3><p><a href="https://nostrcompass.org/en/topics/nip-47/">Nostr Wallet Connect</a> lets an application request narrowly scoped wallet operations through encrypted Nostr events. <a href="https://github.com/nostr-wallet-connect/nwc/pull/7">NWC-13</a> proposes a separate <code>get_budget</code> permission and response so an application can inspect used, total, and renewal allowance without receiving permission to read the wallet&#x27;s balance.</p><h3>39:31 NIP-30: Custom Emoji</h3><p><a href="https://nostrcompass.org/en/topics/nip-30/">NIP-30 (Custom Emoji)</a> standardizes how a signed event maps readable <code>:shortcodes:</code> to image URLs, with an optional address that points to a reusable emoji set. The <a href="https://github.com/nostr-protocol/nips/blob/master/30.md">specification</a> permits letters, numbers, hyphens, and underscore (<code>_</code>) characters in a shortcode and applies the mapping to profiles, short text notes, comments, reactions, and live activities. NIP-51 defines public and private list formats, including the kind <code>30030</code> parameterized replaceable events that hold named emoji sets.</p><h3>41:54 NIP-71: Video Events</h3><p><a href="https://nostrcompass.org/en/topics/nip-71/">NIP-71 (Video Events)</a> standardizes Nostr events for horizontal and short-form video, including playback metadata, alternate files, captions, chapters, participants, and imported-source provenance. The <a href="https://github.com/nostr-protocol/nips/blob/master/71.md">canonical specification</a> assigns kinds <code>21</code> and <code>22</code> to immutable horizontal and portrait video posts, while kinds <code>34235</code> and <code>34236</code> use a <code>d</code> tag to create addressable videos whose metadata can be updated under a stable coordinate. Each <code>imeta</code> tag describes one playable variant with a URL and media type plus optional dimensions, hash, preview image, fallback, service, bitrate, and duration.</p><h3>43:39 Closing and Nostr Compass app</h3><p>Max thanks the builders and contributors, and invites listeners to join the asynchronous podcast through the Nostr Compass Android app.</p>]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #40</title>
      <description></description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqpymr0va3x7mmt94kx7emzdahkktf5xq0t0q9m</link>
      <pubDate>Thu, 01 Oct 2026 05:38:05 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:logbook-logbook-40</guid>
      <enclosure url="https://blossom.ditto.pub/99dc375a14cff28905c3de465938cc170eb12bd31a70362db6dd86889c8a1561.mpga" type="audio/mpeg" length="53123700" />
      
      <itunes:duration>36:53</itunes:duration>
      <itunes:episode>40</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
      <podcast:transcript url="https://blossom.ditto.pub/da143eb411d749751549c663cba0a8a7d2333fc66520162ae690cabb284a68db.txt" type="text/plain" />
      <podcast:chapters url="https://blossom.ditto.pub/a61135a5ccf4ea0c474b891bb462ba0ae115c5dc514442b3532d87fe84b67fe9" type="application/json+chapters" />
      <content:encoded><![CDATA[<p>Max, Form* and Infinity x2 discuss encrypted messaging, mesh networking, Nostr application releases, signer improvements, long-form articles, and media attachment metadata.</p><p>Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt · nostr:npub1qu7dsd44275lms4x9snnwvnnmgx926nsppmr7lcw9dlj36n4fltqgs7p98 · nostr:npub15gkmu50rcuv6mzevmslyllppwmeqxulnqfak0gwud3hfwmau6mvqqnpfvg</p><p><a href="https://nostrcompass.org/en/newsletters/2026-09-16-newsletter/">Newsletter 40</a> · <a href="https://gitworkshop.dev/npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923/relay.ngit.dev/nostr-compass-android">Nostr Compass Android source</a></p><h3>0:00 Episode intro</h3><p>Max introduces episode40 of the asynchronous Nostr Compass podcast and invites listeners to contribute recordings through Logbook.</p><h3>0:24 Marmot Protocol and MDK reach v0.10.0</h3><p><a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.10.0">Marmot Protocol’s MDK v0.10.0</a> adds bounded chat-list and conversation windows, independent account-attention summaries, revision-safe drafts, and viewer reaction state for applications building MLS-based encrypted groups over Nostr. It also restores account-scoped user blocking and counts pending invitations without counting them again as unread messages.</p><h3>2:08 Myco 0.7.0 runs napplets and file sharing over a multi-path FIPS mesh</h3><p><a href="https://github.com/Origami74/myco/releases/tag/v0.7.0">Myco v0.7.0</a> turns the Android mesh application into a host for napplets, single-file Nostr programs described by the open <a href="https://nostrcompass.org/en/topics/nip-5d/">NIP-5D proposal</a>. Each napplet runs in a sandbox without direct network or storage access and requests identity, relay, outbox, mesh, picture, or file capabilities through Myco. The install sheet shows those permissions before approval, users can change them later, and updates that request broader access return to the permission gate.</p><h3>3:33 Dart NDK changes relay, cache, and account behavior</h3><p><a href="https://github.com/relaystr/ndk/releases/tag/v0.10.0-dev.3">Dart NDK v0.10.0-dev.3</a> is a development release of the Dart client library, with breaking changes across relay handling, caching, authentication, and account streams. Client maintainers should expect code and behavioral migration work, especially where an application assumes that cached events, hidden events, or account updates follow the previous release line’s semantics.</p><h3>4:18 Keycast publishes its rebuilt signer release candidate</h3><p><a href="https://github.com/marmot-protocol/keycast/releases/tag/v2.0.0-rc.1">Keycast v2.0.0-rc.1</a> is the first numbered release of the rebuilt self-hosted NIP-46 remote signer. The release candidate adds multiplexed NIP-46 support, shared and per-key relay routing, durable request handling, encrypted key storage, invitations, sessions, and team workspaces.</p><h3>5:08 Nail 0.2.0 restores Nostr-to-email subscriptions</h3><p><a href="https://github.com/formstr-hq/nail/releases/tag/v0.2.0">Nail v0.2.0</a>, a service that delivers Nostr messages through email workflows, adds self-healing gift-wrap subscriptions. The change is aimed at restoring Nostr-to-email delivery after subscription failures instead of leaving the bridge silently stalled. Infinity x2 and Max also discuss PGP end-to-end email encryption in Mailstr and compatibility with providers such as Proton Mail.</p><h3>6:15 Nostr Mail Client 0.15.0 broadens account and relay control</h3><p><a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.15.0">Nostr Mail Client v0.15.0</a> adds one-tap account switching, per-account notifications, web push, and recovery of a missing relay list from a relay, Nostr address, or <code>nprofile</code>. It also republishes profiles and relay lists to indexing relays, reconnects when network access returns, and distinguishes a device outage from unreachable mail relays. Those changes tighten account recovery and delivery across desktop, web, and Android clients.</p><h3>7:04 Linky 26.9.17 keeps recovery seeds off its server</h3><p><a href="https://github.com/linky-fit/linky/releases/tag/v26.9.17">Linky v26.9.17</a>, a contacts, private Nostr messaging, and Lightning/Cashu payments application, fixes a path that sent recovery seeds to Linky&#x27;s server when users saved them through a password manager. The release also hardens payment-file URL handling and disables Android application backups, reducing the places where wallet and identity recovery material can escape the device.</p><h3>8:00 Calendar by Form* 2.4.0 adds Mailstr guest invitations</h3><p><a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v2.4.0">Calendar by Form* v2.4.0</a>, a Nostr calendar client, adds Mailstr guest invitations and mobile calendar fixes. The invitation path lets organizers include participants through mail-oriented coordination without requiring an existing calendar account.</p><h3>9:32 Hessible 0.1.2 speeds encrypted contact and photo sync</h3><p><a href="https://github.com/circumspace/hessible">Hessible 0.1.2</a>, a privacy-focused Android contacts application that stores encrypted contact data on Nostr relays, reduces synchronization overhead and mirrors encrypted contact photos across Blossom servers. The release also makes the application package smaller, while its own release guidance continues to caution users to back up keys and account for varying relay retention.</p><h3>10:07 Boris 0.12.5 bounds extraction and strengthens offline reading</h3><p><a href="https://github.com/dergigi/boris/releases/tag/v0.12.5">Boris v0.12.5</a>, a reading-list client built around Nostr bookmarks, follows v0.12.4 with bounded content extraction, offline caching, relay-query changes, unsafe-HTML handling, and a fix for nearly invisible text under the Paper White theme. These changes affect both content safety and the reliability of reading saved material without a live network path.</p><h3>10:40 Amethyst 1.15.2 refines media and root-scope replies</h3><p><a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.15.2">Amethyst v1.15.2</a> nostr:npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0, an Android Nostr client, closes a three-release sequence with media fixes, clearer Health Connect permission handling, source-name caching, and dedicated engagement filters for NIP-22 root-scope replies. The release also includes translation and package-metadata updates.</p><h3>11:11 LibreNostr 0.5.17 routes feeds through author write relays</h3><p><a href="https://primal.net/e/c118efbe649823a3258a6e7663f4d8b52195adbde0481019183792eb5274afd4">LibreNostr 0.5.17</a>, a relay-first Android client, now directs feed queries to the NIP-65 write relays of followed authors and defers interaction-count queries until notes enter view. Earlier work in the same release sequence limits concurrent relay queries and closes each relay subscription as soon as that relay answers, reducing self-inflicted request rejection during refreshes.</p><h3>12:07 Voca 1.2.0 improves speech cancellation and recovery</h3><p><a href="https://njump.me/nevent1qqsfcc5zel49t5zt96ufndumrzc2vzhrk7e2rnwq579gcs8yd9cn4pcflqxt3">Voca 1.2.0</a> nostr:npub17h9fn2ny0lycg7kmvxmw6gqdnv2epya9h9excnjw9wvml87nyw8sqy3hpu, an offline-oriented Android text-to-speech reader that can fetch and verify Nostr content, adds distinct cancellation and rendering behavior plus recovery for slow or unreliable speech engines after the 1.0 launch covered in issue #38. It also adds opt-in diagnostics sent with a fresh one-time Nostr key through a NIP-17 private message, with large reports encrypted locally before upload.</p><h3>13:01 Postr 1.1.1 adds dictation and publication recovery</h3><p><a href="https://njump.me/nevent1qqszw3dsskfz3u7pqxn4r5ytslrj0e3u26et90rpy9997vtfw3qkr6g9g0f03">Postr 1.1.1</a> nostr:npub1qwkd5wzftcxquuhtkcg0xn9ed7evksluuppf7qdmdh34ywe9uncs5uqfvl, a focused Android kind <code>1</code> composer, adds dictation and caret-aware mention handling after the launch covered in issue #37. The preceding 1.1.0 release also improves publication recovery by retrying the same signed event after ambiguous outcomes, preventing recovery from creating a duplicate note.</p><h3>13:47 earthly 0.1.10 repairs map sanitization and authoring</h3><p><a href="https://github.com/zeSchlausKwab/earthly/releases/tag/v0.1.10">earthly v0.1.10</a> nostr:npub1dmmh0futyszl4445mv4xrygkgsgj8vpu79yx3qyy9qxmz4pemtzqlqmc87, a collaborative Nostr map editor, materially changes map and story authoring while fixing a critical MapLibre attribution-sanitizer flaw through a MapLibre GL JS upgrade. The release also improves WebGL 2 compatibility messaging, mobile controls, geometry editing, selection, and map-presentation controls.</p><h3>14:20 Routstrd 0.4.10 tightens Nostr request routing</h3><p><a href="https://github.com/Routstr/routstrd/releases/tag/v0.4.10">Routstrd v0.4.10</a> nostr:npub130mznv74rxs032peqym6g3wqavh472623mt3z5w73xq9r6qqdufs7ql29s replaces a stale stored provider list with the list returned by live discovery. The preceding v0.4.9 release added manual and scheduled client refresh controls, named npubs in the CLI, and graceful daemon restarts that wait for active requests. Together, the releases make provider selection and refresh behavior more explicit for operators of the Nostr-routed service.</p><h3>14:53 Whistle 1.9.1 instruments background recovery</h3><p><a href="https://primal.net/e/bb3aae325f707b04dffd3b0b4a2d0c48022999fef7a793be3503b4c53e37eba4">Whistle 1.9.1</a>, an encrypted group location-sharing application built on Nostr, MLS, and Marmot Protocol, adds device-lifecycle instrumentation for iOS background recovery. Version 1.9.0 also introduces per-group sharing pauses and per-group last-event diagnostics, making a stalled group easier to distinguish from a healthy application-wide connection.</p><h3>15:28 nostr-wot-extension 0.7.0 encrypts wallet cache data</h3><p><a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.7.0">nostr-wot-extension v0.7.0</a> (maintainer Leon Acosta: nostr:npub1gxdhmu9swqduwhr6zptjy4ya693zp3ql28nemy4hd97kuufyrqdqwe5zfk), a browser extension that manages Nostr identities, signs events, and initiates Lightning payments, encrypts wallet and payment cache data and strengthens vault and account isolation. It also addresses NWC and wallet behavior, payment compatibility, request approvals, account management, backup imports, relay handling, accessibility, and local event decryption.</p><h3>16:01 Lightning.Pub 0.0.41 improves publication recovery</h3><p><a href="https://github.com/shocknet/Lightning.Pub/releases/tag/v0.0.41">Lightning.Pub v0.0.41</a> adds relay URL, timing, socket-state, and DNS details to Nostr publication failures. It also retries liquidity-provider startup calls, removes abandoned callbacks, and withholds invoice routing until a successful balance response proves the provider is ready. Operators now get a clearer split between relay-connectivity failures and backend-readiness failures.</p><h3>16:38 Gittr 1.0.0 advances NIP-34 collaboration</h3><p><a href="https://github.com/arbadacarbaYK/gittr/releases/tag/v1.0.0">Gittr v1.0.0</a>, a client for Nostr-based Git collaboration, advances NIP-34 clone-source handling, issue and discussion state, mobile usability, and interoperability. The v1.0.0 tag follows v0.3.0 and v0.3.1 from earlier this week, giving integrators a stable version marker for the release sequence.</p><h3>17:10 GitWorkshop 4.1.0 makes NIP-34 drafts recoverable</h3><p><a href="https://njump.me/nevent1qqswf45vw8y5metnu8tc2fge0lr7sy8nmuk264kryrd45wqles5kfvqqrtwl3">GitWorkshop 4.1.0</a> (maintainer: nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr), a Nostr-native client for NIP-34 issues, pull requests, code review, and repository browsing, adds account-scoped local drafts that survive refreshes and browser restarts. It also adds bounded recovery and explicit retry controls across Git reads, relay discovery, repository state, pull-request history, uploads, and release metadata while keeping signing and payment retries manual.</p><h3>17:48 ngit-ci 0.1.1 publishes signed CI coordination</h3><p><a href="https://njump.me/nevent1qqs2y0p5nxkfqsrqguth3hd4wmmel4p2te8q906ex748q35ug79e6eg9hms4s">ngit-ci 0.1.1</a>, a self-hosted coordinator for the proposed NIP-C1 Nostr CI protocol, is its first release published through Nostr. It covers signed workflow coordination, container or microVM execution, logs and artifacts, encrypted repository secrets, NIP-34 maintainer authorization, and signed publication of build results.</p><h3>18:22 pakstr 0.21.1 advances Nostr application packaging</h3><p><a href="https://git.nostrdev.com/stuff/pakstr/releases/tag/v0.21.1">pakstr v0.21.1</a> continues a five-release sequence for Nostr application packaging and app-shell behavior. NostrAppShell references point to this same pakstr release series, so the package and alias describe one shipped change.</p><h3>18:46 @elisym/cli 0.30.0 coordinates agent and delegation packages</h3><p><a href="https://github.com/elisymlabs/elisym/releases/tag/%40elisym/cli%400.30.0">@elisym/cli 0.30.0</a> concludes a coordinated CLI, SDK, and MCP release for Nostr-oriented agent delegation. Delegated jobs now wait for completion instead of sleeping for a fixed interval, and the application avoids paying the same delegation capability once per job. Teams using more than one package should keep CLI 0.30.0, SDK 0.36.0, and MCP 0.26.0 on the matched release line.</p><h3>19:15 Hashtree 0.2.150 advances hash-tree synchronization</h3><p><a href="https://github.com/mmalmi/hashtree/releases/tag/v0.2.150">Hashtree v0.2.150</a> (organization Sirius Business Ltd: nostr:npub1xdhnr9mrv47kkrn95k6cwecearydeh8e895990n3acntwvmgk2dsdeeycm) closes a six-release sequence with Android-safe locking for the embedded social graph. Earlier releases in the sequence keep Nostr subscriptions open briefly after an empty EOSE so delayed signed roots can arrive, select the newest valid root for the exact author and tree, and recover retained FIPS routes after transit outages. The result is more predictable mutable-root discovery and synchronization across relays, embedded clients, and intermittent network paths.</p><h3>19:56 nostr-relay 0.0.266 improves shared-database operation</h3><p><a href="https://github.com/mattn/nostr-relay/releases/tag/v0.0.266">nostr-relay v0.0.266</a> (maintainer Yasuhiro Matsumoto (mattn): nostr:npub1937vv2nf06360qn9y8el6d8sevnndy7tuh5nzre4gj05xc32tnwqauhaj6), a Nostr relay built on the relayer framework, advances shared-database and Redis behavior across six releases. This work is especially relevant to operators running more than one relay process against common persistence or notification infrastructure.</p><h3>20:21 fips-tcp 0.2.2 implements FIPS over TCP</h3><p><a href="https://github.com/mmalmi/fips-tcp/releases/tag/fips-tcp-v0.2.2">fips-tcp v0.2.2</a> repairs missing segments after a timed-out flight as acknowledgments advance. Small writes lost during a transit outage recover together instead of waiting through a growing timeout for every segment, while the Rust and TypeScript implementations preserve identical wire bytes, retry bounds, receive-window checks, sequence wrapping, and RTT sampling.</p><h3>20:57 Nenya marketplace library</h3><p><a href="https://github.com/Erya-Labs/Nenya">Nenya</a> is a new library for a non-custodial Nostr marketplace focused on commissioned digital media with Bitcoin settlement. The repository is pre-release, so its event and settlement interfaces may still change.</p><h3>21:18 GitHub-to-Nostr CI bridging</h3><p><a href="https://github.com/felixfelix-bot/gh-ngit-ci-bridge">gh-ngit-ci-bridge</a> is an early bridge that watches GitHub commits associated with configured identities and turns them into signed Nostr build evidence for NIP-34 workflows. The repository is pre-release, and its integration contract may still change.</p><h3>21:45 noscall encrypts voice attachments</h3><p><a href="https://github.com/sanah9/noscall/commit/3f0b9ef7cf0fbc6e0dced58240c32bb84ed6fea4">noscall’s encrypted voice-attachment commit</a> adds a concrete privacy feature for voice communication. The source-verified change supports encrypted voice attachments, reducing the need to expose recorded media as plaintext when attaching it to a call or messaging flow.</p><h3>22:03 relayer restores notifier fan-out across processes</h3><p><a href="https://github.com/fiatjaf/relayer/pull/167">relayer pull request #167</a> has merged a notifier fix for deployments where several relay processes share one database. The patch restores live fan-out across those processes, addressing the case where an event persisted successfully but connected clients on another process did not receive the corresponding live notification.</p><h3>22:20 Trackstr maps media through dedicated event kinds</h3><p><a href="https://github.com/besoeasy/Trackstr">Trackstr</a> is an unreleased, open-source Nostr media database for discovering and tracking movies, music, television, and other media. Its current design uses event kinds <code>35400</code> through <code>35402</code>, providing a reviewable schema and implementation surface. The kinds remain project-defined and may change before a release.</p><h3>22:55 NIP-A3 clarifies payment-type ambiguity</h3><p><a href="https://nostrcompass.org/en/topics/nip-a3/">NIP-A3 (Payment Targets)</a> standardizes typed payment targets in <code>[&quot;payto&quot;, &quot;&lt;type&gt;&quot;, &quot;&lt;address&gt;&quot;]</code> tags on kind <code>10133</code> events. The merged <a href="https://github.com/nostr-protocol/nips/pull/2463">payment-type clarification</a> adds <code>bitcoincash</code> and <code>tron</code> to the documented type list and clarifies rendering: clients use a type-specific URI scheme when one exists, otherwise they fall back to <code>payto://&lt;type&gt;/&lt;address&gt;</code>.</p><h3>23:19 NIP-CD proposes addressable slash commands</h3><p>The open <a href="https://github.com/nostr-protocol/nips/pull/2462">NIP-CD slash-command proposal</a> defines addressable kind <code>31992</code> events whose <code>command</code>, <code>title</code>, <code>description</code>, <code>arg</code>, scope, and ignore tags advertise executable commands. Invocations begin at the first byte of an event&#x27;s plaintext content, can target one executor by npub, and deliberately require no special client support. The draft also defines positional argument types and scope filters by event kind, relay, author, or tag; none of this is merged protocol behavior yet.</p><h3>23:58 NIP-90 proposes expiring DVM heartbeat events</h3><p><a href="https://nostrcompass.org/en/topics/nip-90/">NIP-90 (Data Vending Machines)</a> defines job requests, results, and feedback for services that perform work over Nostr. An open <a href="https://github.com/nostr-protocol/nips/pull/2465">DVM heartbeat proposal</a> adds optional kind <code>11998</code> events that should carry an <code>expiration</code> tag so clients can distinguish a live machine from a stale NIP-89 announcement. The heartbeat sits outside the NIP-90 job-kind range, lets relays discard expired or superseded heartbeats, and leaves existing DVM flows unchanged when a service does not emit it.</p><h3>24:26 NIP-73 proposes podcast-medium filters</h3><p><a href="https://nostrcompass.org/en/topics/nip-73/">NIP-73 (External Content IDs)</a> standardizes <code>i</code> tags for external identifiers and <code>k</code> tags for their categories. The open draft <a href="https://github.com/nostr-protocol/nips/pull/2468">podcast-medium proposal</a> adds optional <code>podcast:medium:music</code> and <code>podcast:medium:podcast</code> category tags so clients can filter notes by the medium declared in a podcast RSS feed. An absent category continues to imply a podcast feed, though clients should resolve the RSS source when they need to confirm its medium.</p><h3>24:58 NIP-F5 proposes permissioned FIPS transport for web apps</h3><p>The open <a href="https://github.com/nostr-protocol/nips/pull/2469">NIP-F5 browser-transport proposal</a> defines an optional <code>window.fipsTransport</code> API through which a Nostr web application can request user-approved HTTP or WebSocket access to a FIPS-addressed relay, Blossom server, Git service, or other private endpoint. The host binds each grant to the requesting web origin and target while keeping transport separate from Nostr signing, identity, and service authorization. The proposal also requires explicit consent and scoped permissions, but its address forms and browser contract remain draft behavior.</p><h3>25:38 Marmot clarifies KeyPackage relay discovery</h3><p><a href="https://nostrcompass.org/en/topics/marmot/">Marmot</a> carries MLS group state over Nostr events. The open <a href="https://github.com/marmot-protocol/marmot/pull/422">KeyPackage relay-discovery clarification</a> documents the current sequence: publish kind <code>10002</code> relay metadata, fetch the recipient&#x27;s kind <code>30443</code> KeyPackage from write-capable or unmarked destinations, then use kind <code>10050</code> separately to find the recipient&#x27;s Welcome inbox. It also states that read-only NIP-65 entries are not KeyPackage destinations and that the removed kind <code>10051</code> list is no longer a discovery step.</p><h3>26:44 Marmot proposes encrypted group reports and shared moderation</h3><p>The open <a href="https://github.com/marmot-protocol/marmot/pull/423">Marmot moderation specification</a> proposes unsigned inner events carried by the protocol&#x27;s existing encrypted group transport. Kind <code>1984</code> would report a specific message revision, kind <code>1985</code> would let administrators dismiss referenced reports without removing the content, and kind <code>4891</code> would let an authenticated administrator remove a message and its revisions. The proposal also defines deduplication, shared review visibility, ordering, retention, and authority rules, while keeping author deletion on kind <code>5</code> and host-application interfaces outside the wire contract.</p><h3>27:49 NWC adds payment lookup and BOLT12 records</h3><p><a href="https://nostrcompass.org/en/topics/nip-47/">Nostr Wallet Connect</a> lets applications control a wallet through encrypted requests and responses over Nostr. Covered previously as an open proposal, its payment-lookup work has now merged into the repository. The merged <a href="https://github.com/nostr-wallet-connect/nwc/pull/5"><code>lookup_payment</code> and BOLT12 specification</a> defines payment lookup by transaction ID, invoice, payment hash, or payment-type-specific selectors, and adds draft, optional BOLT12 payment records and states.</p><h3>28:30 NWC adds client-initiated connections</h3><p>The merged <a href="https://github.com/nostr-wallet-connect/nwc/pull/3">client-initiated connection flow</a> lets a client generate the connection secret, direct the user through HTTP confirmation or Nostr authorization, negotiate required and optional permissions, and receive the approved connection details. The change gives NWC clients and wallets a repository-hosted draft definition for creating a connection from the client side.</p><h3>29:02 NIP-23: Long-form Content</h3><p><a href="https://nostrcompass.org/en/topics/nip-23/">NIP-23 (Long-form Content)</a> standardizes long-form content on Nostr using addressable kind <code>30023</code> events, as defined in the <a href="https://github.com/nostr-protocol/nips/blob/master/23.md">canonical specification</a>. Publishers gain an editable article identity while kind <code>1</code> remains the short-note format.</p><h3>32:39 NIP-92: Media Attachments Metadata</h3><p><a href="https://nostrcompass.org/en/topics/nip-92/">NIP-92 (Media Attachments Metadata)</a> standardizes metadata for media attachments through <code>imeta</code> tags in the <a href="https://github.com/nostr-protocol/nips/blob/master/92.md">canonical specification</a>. It gives clients a common place to carry structured information about media associated with an event, allowing renderers and upload flows to exchange more than an unadorned media URL.</p>]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #39</title>
      <description></description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqpymr0va3x7mmt94kx7emzdahkktfn8ypj5zua</link>
      <pubDate>Thu, 01 Oct 2026 05:30:21 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:logbook-logbook-39</guid>
      <enclosure url="https://blossom.ditto.pub/32aeefab72e1c19c537fedc04b4a3cdfa84774b54f8f9c432f4f50283c08867e.mpga" type="audio/mpeg" length="20773032" />
      
      <itunes:duration>14:26</itunes:duration>
      <itunes:episode>39</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
      <podcast:transcript url="https://blossom.ditto.pub/f1b7f5c90e4cc96e9d3e25d9d679013573a32ca326f0b1a7dc5a362e1e107197.txt" type="text/plain" />
      <podcast:chapters url="https://blossom.ditto.pub/e93120a707831cacc41cfa2ea9664029013e0fe846ca1dd6a8c91d61138fc1df" type="application/json+chapters" />
      <content:encoded><![CDATA[<p>Max covers signed Git workflows, browser publishing, Nostr client updates, protocol implementation, and how URI links and event references work.</p><p>Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt</p><p><a href="https://nostrcompass.org/en/newsletters/2026-09-09-newsletter/">Newsletter 39</a> · <a href="https://gitworkshop.dev/npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923/relay.ngit.dev/nostr-compass-android">Nostr Compass Android source</a></p><h3>0:00 Signed git workflows move CI, private repositories, and releases onto Nostr</h3><p>Max opens this edition’s nine recordings with the ngit v3 launch and its signed Git workflow over Nostr. ngit-grasp v3 adds private repositories through GRASP-08, while ngit-ci 0.1 carries CI instructions and results as signed Nostr events. Max discusses working privately before a public release and considers sharing spare CI capacity.</p><h3>3:13 nsite-clay makes browser publishing recoverable</h3><p>An <a href="https://github.com/jooray/nsite-clay/commit/064a0c5350f1e2b107f7d8f1de00ad75ef2e69d8">August 31 signer-prompt fix</a>, <a href="https://github.com/jooray/nsite-clay/commit/d1ad514f8068eec2e007059dc62a5b6f1d240ae0">publication recovery</a>, and <a href="https://github.com/jooray/nsite-clay/commit/8f9d7d140dd3cd3e1db8726781fcd852041713f7">September 2 editing controls</a> make <a href="https://github.com/jooray/nsite-clay">nsite-clay</a> a browser publishing tool for a single-page site. A user edits the document object model in place, serializes the result, uploads it as a content-addressed <a href="https://nostrcompass.org/en/topics/blossom/">Blossom</a> blob, and republishes the site&#x27;s <a href="https://nostrcompass.org/en/topics/nip-5a/">NIP-5A</a> manifest. No local build or server is required.</p><h3>4:53 NIP-A3 payment targets reach three clients</h3><p>From September 1–3, <a href="https://github.com/vitorpamplona/amethyst/pull/4041">Amethyst</a>, <a href="https://github.com/purrgrammer/grimoire/commit/54052506f7a0da06dfc4cf7e969331ee61be7851">Grimoire</a>, and <a href="https://github.com/formstr-hq/nostr-polls/commit/5a015f1d17abecd036f3e10c88d493d23928fa98">Pollerama</a> implemented NIP-A3 kind <code>10133</code> payment targets. Amethyst offers an opt-in handoff only when a compatible target exists and does not turn it into a zap; Grimoire uses a fixed registry before building wallet URIs; Pollerama validates Monero addresses and fetches the author&#x27;s relay list before querying targets. Each client still needs an allowed payment method, a relay route, and an accurate display.</p><h3>5:16 Ditto expands Blossom fallback and mirroring</h3><p>Max explains how Ditto tries fallback Blossom servers when the preferred server is unavailable. He also discusses mirroring uploaded blobs so media can remain available through other servers.</p><h3>5:46 Nostr Implementation Possibilities</h3><p><a href="https://nostrcompass.org/en/topics/nip-01/">NIP-01</a> clarifies <code>limit: 0</code> as a live-only subscription: no stored events, an <code>EOSE</code> message, and continued delivery of matching new events. <a href="https://nostrcompass.org/en/topics/nip-78/">NIP-78</a> recommends NIP-42 authentication and author-only access for app data kinds <code>78</code> and <code>30078</code>; this is not a confidentiality guarantee. The open <a href="https://nostrcompass.org/en/topics/nip-ac/">NIP-AC</a> proposal uses ephemeral WebRTC signaling events and kind <code>30600</code> discovery.</p><h3>8:08 NIP Deep Dive: URI Links and References in Event Text</h3><p>A Nostr identifier needs a transportable meaning before another application can open it. <a href="https://nostrcompass.org/en/topics/nip-21/">NIP-21</a> puts a <a href="https://nostrcompass.org/en/topics/nip-19/">NIP-19</a> identifier after the <code>nostr:</code> URI scheme, giving browsers, operating systems, and applications one dispatchable form. <a href="https://nostrcompass.org/en/topics/nip-27/">NIP-27</a> defines what that same URI means inside readable event <code>content</code>.</p><h3>8:28 URI dispatch and NIP-19 semantics</h3><p><a href="https://github.com/nostr-protocol/nips/blob/master/21.md">NIP-21&#x27;s grammar</a> is <code>nostr:</code> followed by one NIP-19 bech32 entity. <code>nsec</code> is excluded because it encodes a private key. There is no authority, path, or query component, so a conforming link is <code>nostr:npub1...</code>, not <code>nostr://npub1...</code>. A platform or client may register as the handler; the specification does not choose the installed application or define a web fallback.</p><h3>10:35 NIP-27 rendering and optional tags</h3><p><a href="https://nostrcompass.org/en/topics/nip-27/">NIP-27</a> uses <code>nostr:</code> URIs in readable event content so clients can render profile or event references. Max explains how a mention picker writes those URIs into signed content and how other clients display them. Optional <code>p</code>, <code>e</code> and <code>q</code> tags support indexing and relationships alongside the reference; displaying a mention alone does not require a notification.</p><h3>12:19 Trust, failure behavior, and client implementations</h3><p><code>note</code> and <code>nevent</code> refer to immutable event ids, while <code>naddr</code> resolves an address whose event contents can change. Max discusses client choices for previews, profile metadata and URI handlers. He closes by thanking builders and inviting listeners to contribute through the Nostr Compass Logbook.</p>]]></content:encoded>
      
    </item>
    <item>
      <title>Logbook Episode 38</title>
      <description>Voca 1.0 reads verified Nostr notes and subscriptions aloud, nostream expands relay-side DVM routing, NDK for Dart fixes negentropy and request lifetimes, plus releases and a NIP-18/NIP-25 deep dive.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqq5etsd9ek7er995ens3u59yy</link>
      <pubDate>Mon, 14 Sep 2026 03:25:18 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-38</guid>
      <enclosure url="https://compass-blossom.samt.st/a53c0008e28445b321406d63a6139f12f26642707599ea77c0afd75f5f3e9cf4.mpga" type="audio/mpeg" length="32531896" />
      
      <itunes:duration>22:35</itunes:duration>
      <itunes:episode>38</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostrcompass.org/assets/images/profile.png" />
      
      <podcast:chapters url="https://compass-blossom.samt.st/089707636640c420d10ce2a47e56bdeb2b2a8410d15f6ca207544c2a6959e0cd" type="application/json+chapters" />
      <content:encoded><![CDATA[A weekly briefing on the people, software, and protocol work shaping Nostr.

### Chapters

- **0:00 — Episode intro**
- **1:17 — Voca 1.0 reads verified Nostr notes and subscriptions aloud on Android**
- **3:06 — nostream expands relay-side DVM routing and authenticated operation**
- **3:32 — NDK for Dart fixes negentropy, multi-relay request lifetimes, and signature verification**
- **4:11 — Divine Mobile makes wrapped direct-message deletion and signing deterministic**
- **5:01 — Conduit Relay hardens its NIP-42 protected inbox**
- **5:40 — Amethyst ships NIP-84 highlights and fixes two relay-facing failure paths**
- **7:19 — Mostro validates signed orders before expensive work and preserves order audit events**
- **8:23 — Napstr publishes audio catalogues on Nostr and transfers files over Tor**
- **10:38 — MDK v0.9.17: newest KeyPackages, membership activity, and durable sends**
- **11:36 — pakstr v0.16.0: kind-32267 identifiers on publish**
- **11:54 — Zap Cooking scopes bunker relays and signs paid endpoints**
- **12:53 — nostrord repairs wrapped DMs and shared event links**
- **13:42 — Nostr Implementation Possibilities**
- **15:09 — Nostr Wallet Connect**
- **15:35 — NIP Deep Dive: Reposts and Reactions**
- **15:46 — Reposts (NIP-18)**
- **17:56 — Reactions (NIP-25)**
- **20:51 — Current client implementations**
- **21:30 — How They Work Together**]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #37</title>
      <description>Postr Android composer, Nail key-free mail arrival watcher, Chama escrow timer bug, NIP-22 reply rollout, and Six Years of Nostr Augusts.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwph8yurjwpnxg6njd3dwfehqwr2wd3kvmsfwm267</link>
      <pubDate>Sat, 29 Aug 2026 07:50:32 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1787989832596-rsp8jscfn</guid>
      <enclosure url="https://blossom.primal.net/46d1df77794098f00cc8ec06a9b99977f9c7f87136d4791c9361664ec688e31b.ogg" type="audio/ogg" length="11473499" />
      
      <itunes:duration>29:06</itunes:duration>
      <itunes:episode>37</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/a4ba8571144df32353f6d18221bd90d2842603d488aa6d0fe5a50f0a59ae3bcb.png" />
      
      
      <content:encoded><![CDATA[### 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.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #36</title>
      <description>Amber 6.5.0 hardens relay auth, Citrine 3.1.0 hosts phone groups, Nail bridges email as gift wrap, NIP-58 badges and NIP-22 comments.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwph8yursvpsxq6nxved8qcx76mnvv6x76g4d9xp4</link>
      <pubDate>Sat, 29 Aug 2026 07:20:00 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1787988000533-80oksc4oi</guid>
      <enclosure url="https://blossom.primal.net/488aaf5b6f3a9a5f3251b43fb94f92151a2d68a399d19a7d11f0c61265b8142d.ogg" type="audio/ogg" length="22224053" />
      
      <itunes:duration>55:40</itunes:duration>
      <itunes:episode>36</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/54511e9dae2843f5175245f71c2a63de7821874f5728570c3a422d37fceb2dcf.png" />
      
      
      <content:encoded><![CDATA[### 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.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #35</title>
      <description>Post-quantum keys in nostr-wot-extension 0.4.0, MDK Marmot convergence hardening, merged CORD-02 control plane writes, NIP-09 deletion and NIP-56 reporting deep dives.

Announcement</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwph8yer2d3nxv6nxv3ddqekgdfsxuck6dgeh0d0d</link>
      <pubDate>Fri, 28 Aug 2026 14:00:33 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1787925633532-h3d5071m5</guid>
      <enclosure url="https://blossom.primal.net/a8ec1582bd9b7608211105a4571806c202716b11396cdcf4a46b56f642272a0b.ogg" type="audio/ogg" length="18491318" />
      
      <itunes:duration>47:37</itunes:duration>
      <itunes:episode>35</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/6e5b8a59cb58c9ab41614ef83d0bfd9abd9a326b2937081ea12405d9c3449968.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  Welcome to Nostr Compass Podcast #35 covering post-quantum identity keys, MDK Marmot convergence hardening, Amber grouped signing, and deep dives on NIP-09 deletion and NIP-56 reporting.

- **00:16 nostr-wot-extension 0.4.0 adds post-quantum keys beside a Nostr identity**
  nostr-wot-extension 0.4.0 derives ML-KEM-1024 encryption and ML-DSA-87 signing keys from 24-word seeds, publishes kind 10203 attestations binding post-quantum public keys with ML-DSA proof of possession, and adds opt-in post-quantum DMs combining ML-KEM with NIP-44 through HKDF inside NIP-59 gift wraps.

- **02:49 Divine Mobile 1.0.19 tightens accounts, private messages, and publishing**
  Divine Mobile 1.0.19 builds account-scoped identity containers, waits for explicit relay OK before confirming publish, rejects unauthenticated DM rumor fields and unsigned seals, routes followed-participant group chats into the inbox, and consumes observed deletion requests for removed videos.

- **03:52 MDK 0.9.11 hardens Marmot group convergence and recovery**
  MDK 0.9.11 reopens stale convergence at the current group tip, commits inbound capability projections atomically, queues non-stable sends across restarts, securely deletes pruned SQLite projections, and zeroizes imported keys and OpenMLS buffers.

- **06:51 Nostria 4.1.67 expands encrypted-community administration**
  Nostria 4.1.67 adds community dissolution, icon and banner administration, encrypted photo uploads, a full reaction picker, dual-pane community layout, threaded messaging, and a combined hub for public, group, and private chats over NIP-29 and Concord communities.

- **07:41 Amber 6.4.0 makes every grouped signing decision explicit**
  Amber 6.4.0 redesigns multi-request signing with per-request Approve and Deny controls, returns proper errors for denied NIP-46 bunker requests, and adds localized labels for 113 more event kinds including Concord and NIP-51 Git bookmarks.

- **09:05 Safebox Acorn separates a portable recovery component from the web app**
  Safebox Acorn extracts a standalone Python CLI for key, Nostr profile, relay, Cashu, and Lightning helpers with 256-bit record-protection keys encoded as checksummed 24-word phrases, framing Acorn as the replaceable protocol component for household Safebox recovery without one appliance dependency.

- **16:43 Pact brings mutually consented agent bonds to Nostr**
  Pact is an early-stage agent relationship layer on MATE.md and draft NIP-BD with signed mutually consented bonds published over Nostr or NIP-59 gift-wrapped for private bonds, plus MCP server, TypeScript SDK, CLI, daemon, and web interface.

### Releases

- **10:11 Mostro Core 0.14.2 changes the encrypted chat envelope**
  Mostro Core 0.14.2 replaces gift-wrapped chat with kind 14 envelopes using separate conversation-encryption and signing keys derived from peers' shared secrets, while legacy gift-wrap helpers remain for migration.

- **11:06 Mostro 0.18.1 starts a Cashu escrow path and hardens the daemon**
  Mostro 0.18.1 lays Cashu escrow foundation with mint integration and first lock action, uses trusted-node price announcements, advertises NIP-13 proof-of-work for first contact, and hardens LNURL fetches and hold-invoice subscriptions after restart.

- **12:12 LaWallet NWC 2.3.0 adds Nostr notifications and zap receipts**
  LaWallet NWC 2.3.0 sends received and forwarded notifications as configurable Nostr events with optional NIP-44 encryption and publishes signed NIP-57 kind 9735 receipts after zap settlement.

- **13:00 nostr-double-ratchet TypeScript 0.0.166 binds public invites to session keys**
  nostr-double-ratchet TypeScript 0.0.166 requires invite responses to prove session-key ownership, preventing reusable public invites from binding one Nostr identity to another party's session.

- **13:55 cln-nip47 0.2.0 expands and isolates NWC requests**
  cln-nip47 0.2.0 adds hold-invoice create, cancel, and settle NIP-47 methods, caps transaction lists at 500 entries, deduplicates requests by event ID, and isolates failed notifications per client.

- **14:45 ClipRelay 0.1.3 restores relay and signer connections after idle periods**
  ClipRelay desktop and Android 0.1.3 add typed clipboard send, test liveness with real relay round trips after idle periods, escalate from resubscription to socket replacement, and timeout stalled NIP-46 signer calls.

- **15:42 NoorNote 1.3.2 moves article discovery into the social graph**
  NoorNote 1.3.2 replaces its flat global article feed with first-, second-, and third-degree contact discovery and collapses replayed DMs from unknown senders into one rolling notification.

- **16:19 Bray 2.4.0 adds a compact remote-signing dialect**
  Bray 2.4.0 accepts object-form NIP-46 signing requests and adds sign_event_compact returning only event ID, signature, pubkey, and timestamp for constrained hardware signers.

### Project Updates

- **17:42 nostrord keeps group muting synchronized between devices**
  nostrord PR #250 stores per-group mute choices in self-encrypted NIP-78 kind 30078 events so settings follow the account across devices without revealing the group list to relays.

- **18:07 Amethyst completes Concord's invite lifecycle**
  Amethyst PR #3888 lets invite links survive community refounding, implements encrypted CORD-05 invite lists with per-link revocation tombstones, and adds amy CLI paths for control-key delivery, rekeying, and stranded-member recovery.

- **19:03 Buzz carries each community's appearance across desktop and mobile**
  Buzz desktop PR #3653 and mobile PR #3767 store each community's theme, accent, and system mode as encrypted NIP-78 records on the community relay, with Buzz Desktop 0.5.10 accelerating channel loading and bounding initial timeline retention.

### NIP Updates

- **28:42 NIPs PR #2435 adds an optional b tag to a pull-request event — Open**
  PR #2435 adds an optional b tag to NIP-34 pull-request events so authors can name a target branch other than the repository default.

- **29:00 NIPs PR #2434 proposes post-quantum identity keys — Open**
  PR #2434 proposes deriving ML-KEM and ML-DSA keys beside secp256k1 from a NIP-06 seed and binding them with kind 10203 attestations without replacing event signatures.

- **32:15 NIPs PR #2431 proposes an expected public key for NIP-07 requests — Open**
  PR #2431 lets browser clients attach the expected pubkey to NIP-07 signing requests so signers must use that account or reject the call.

- **32:46 NIPs PR #1813 remains an open double-ratchet proposal — Open**
  PR #1813 specifies forward-secret encrypted conversations with keys advancing per message, implemented in nostr-double-ratchet and Iris but not yet merged.

- **33:14 NIPs PR #2433 closed without merging — Closed**
  PR #2433 proposed distinguishing NIP-42 auth-required from restricted relay errors but closed without merging.

- **33:38 NIPs PR #2378 closed without merging — Closed**
  PR #2378 proposed agent passports, discovery, task, and marketplace events but closed without merging.

- **33:53 NIPs commit 656cecc corrects the NIP-29 metadata example — Merged**
  NIPs commit 656cecc adds a previous tag to the NIP-29 group metadata example showing how replacement events identify superseded events.

- **34:08 CORD PR #18 proposes sharded encrypted Community Lists — Open**
  CORD PR #18 proposes sharding encrypted community lists across kind 33302 events, removing the fifty-membership limit, and pruning retired entries to stay within relay size limits.

- **34:54 CORD-02 PR #15 restricts writes to a community's control plane — Merged**
  CORD-02 PR #15 merged 6 August and restricts Concord control-plane writes to owners and staff holding a control_root signing secret while all members retain read and verify keys.

- **35:16 CORD PR #12 closed without merging — Closed**
  CORD PR #12 closed without merging after its control-plane portion was superseded by merged CORD-02 PR #15.

### NIP Deep Dives

- **35:31 NIP Deep Dive: NIP-09 Event Deletion Requests**
  NIP-09 defines kind 5 deletion requests carrying e or a tags plus k tags naming referenced kinds, with addressable a references removing every version at that coordinate no later than the request timestamp. Relays should stop publishing only when the deletion request pubkey matches the target event author, and clients cannot treat relay acceptance as proof of authorization. Deletion is cooperative policy, not cryptographic revocation, unlike NIP-40 expiration chosen at publish time. Divine PR #6623, strfry PR #251, and Amethyst currently apply deletion at client or relay layers.

- **41:38 NIP Deep Dive: NIP-56 Reporting**
  NIP-56 standardizes kind 1984 signed reports with p tags for accounts, e tags for notes, and categories including spam, impersonation, and illegal, optionally extended with NIP-32 labels. Reports prove one key made an allegation without making content removable by default, and the specification advises against automatic relay moderation while allowing trusted-moderator action. Unlike NIP-09, reports can target others' content but confer no deletion authority. Divine PR #6591, Conduit PR #250, nostrord, and Amethyst currently publish or process kind 1984 events.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #34</title>
      <description>Sandstr mock client demos, nostr-mill signing consent, nostrord 2.5 relay groups, merged NIP-47 core, NIP-50 search and NIP-84 highlight deep dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwph8yerydf3xqcrwdpdxfuxy6fn89ck6ug5rum73</link>
      <pubDate>Fri, 28 Aug 2026 13:08:30 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1787922510074-2xbi39qmq</guid>
      <enclosure url="https://blossom.primal.net/ee9aa39987233ac171c58ea5f2bb4e751376a57340b058e8cb2be5cfc260c050.ogg" type="audio/ogg" length="16213984" />
      
      <itunes:duration>40:26</itunes:duration>
      <itunes:episode>34</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/00686d3dc383fa2c9b201385ac087bd8f75466ef4ff38a70edad32004b2e9d84.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  Welcome to Nostr Compass Podcast #34 covering Sandstr client simulations, nostr-mill browser signing, nostrord relay groups, six merged protocol changes, and deep dives on NIP-50 search and NIP-84 highlights.

- **00:20 nostr-mill 1.6.0 puts signing consent and account recovery in the browser**
  nostr-mill 1.6.0 asks consent by event kind with decoded content preview, time-limited grants, optional Google Drive NIP-49 key import, and experimental scrypt-HKDF relay backup with quorum verification before recovery.

- **01:57 nostrord 2.5.0 gives relay groups stable, relay-specific identities**
  nostrord 2.5.0 derives NIP-29 identity from group ID plus host relay, adds NIP-56 moderation inbox, NIP-84 highlight rendering, Blossom or NIP-96 uploads, and NIP-55 Amber login.

- **03:08 Primal Android 3.5.25 updates remote signing and follow-list filtering**
  Primal Android 3.5.25 updates remote signing, adds follow mute lists, auto-repairs stalled relay connections, rejects invalid follow-list entries, and caps cache at 100 MB with feed prefetching improvements.

- **03:47 Nostur 1.30.2 expands private replies and media in direct messages**
  Nostur 1.30.2 always exposes private-reply actions, adds per-conversation DM media caches with clearing controls, shows referenced messages in live chat, and fixes feed pagination and nested-reply rendering.

- **04:26 Chama 5.7.0 adds arbiter records and cached trade recovery**
  Chama 5.7.0 displays arbiter locked amounts and bond tenure, records backup-arbiter replacements, defines dormant kind 38136 fault attestations, and retries incomplete relay histories against durable device cache.

- **05:25 Auditable Voting 0.1.165 restores delegated ballot delivery**
  Auditable Voting 0.1.165 restores delegated blind-ballot issuance through authenticated delegation delivery and control-DM backfill, keeping blind-credential DMs on configured private relays.

- **07:13 Sandstr lets newcomers test-drive Nostr clients with mock data**
  Sandstr launched August 3 with reference-verified simulations of Damus, Amethyst, Primal, Snort, YakiHonne, Coracle, and Wisp plus previews of Gossip, Keychat, and Olas, all running locally against mock data without keys or relay connections.

- **09:07 mineracks signer pairs a browser extension with a desktop bunker**
  mineracks signer ships a NIP-07 browser extension and desktop 0.1.0 NIP-46 bunker with NIP-49 key storage, per-request approval, and optional per-application auto-approval on Apple Silicon.

### Releases

- **10:05 Jumble 26.8.1 adds proof-of-work controls and comment previews**
  Jumble 26.8.1 remembers NIP-13 proof-of-work difficulty, displays verified-work badges, previews linked comments above external content, and refreshes default relays.

- **11:34 nostr-calendar 2.1.0 restores private-form signer binding**
  nostr-calendar 2.1.0 binds private-form submissions to the active signer, saves intentional duplicate events, parses calendar dates in local time, and adds app notifications plus an iOS client.

- **13:47 Manent 2.0.0 adds tagging and search for saved notes**
  Manent 2.0.0 adds local tags and search for organizing saved Nostr notes without modifying signed event contents.

- **14:15 nosvelte 0.6.1 closes empty subscriptions after EOSE**
  nosvelte 0.6.1 closes empty subscriptions at End of Stored Events, cancels underlying REQ on cancellation, recognizes addressable events regardless of d tag position, and deduplicates reactions by event ID.

### Project Updates

- **15:01 NMP ties relay admission to declarations and broadens group queries**
  NMP PR #1254 ties relay admission to the declaration owner, and PR #1255 generalizes NIP-29 group queries beyond one narrow lookup shape.

- **15:42 Mosaico derives managed-group identity from relay records**
  Mosaico PR #758 derives managed-group identity from the hosting relay, and PR #757 observes published group records when resolving administration state.

- **16:42 Divine isolates slow relays during multi-relay queries**
  Divine PR #6673 gives each relay query its own timeout so responsive relays return results while stalled connections are abandoned independently.

- **17:04 rust-nostr hardens encryption, hashes, and reconciliation**
  rust-nostr PR #1421 reduces NIP-44 allocation, PR #1423 adds typed hashes, and commit 21e31c2 prevents malformed NIP-77 Negentropy messages from disconnecting the local relay.

- **17:38 Zeus serializes NWC payments before charging spending budgets**
  Zeus PR #4305 counts pending NIP-47 payments against budgets, and PR #4303 serializes payment handling to prevent concurrent authorization races.

- **18:04 Nostr Components shares one relay connection attempt**
  Nostr Components PR #105 lets concurrently mounted web components share one in-flight relay connection attempt instead of opening duplicate sockets during handshake.

### NIP Updates

- **18:42 NIPs PR #2430 proposes sticker packs as addressable kind 30031 definitions and a user's installed packs as replaceable kind 10031 — Open**
  PR #2430 proposes kind 30031 sticker pack definitions and kind 10031 installed packs with shortcode, SHA-256, and MIME tags while images stay on NIP-B7 Blossom servers.

- **20:39 NIPs PR #2429 proposes kind 31436 addressable Gopher documents — Open**
  PR #2429 proposes kind 31436 addressable Gopher nodes forming a gopherhole any relay-backed RFC 1436 bridge can serve.

- **22:45 NIPs PR #2428 proposes epoch-ticketed private groups — Open**
  PR #2428 proposes private groups that rotate membership credentials between epochs so clients present current-epoch tickets instead of permanent bearer tokens.

- **23:51 NIPs PR #2425 merges a URI clarification into NIP-B0 — Merged**
  PR #2425 merged a URI clarification into NIP-B0 bookmarks distinguishing omitted HTTPS prefixes from explicit URI schemes in d tags.

- **24:32 NIPs PR #2419 merges a smaller NIP-47 core — Merged**
  PR #2419 merged a smaller NIP-47 core keeping connection URIs and common methods in the NIP while moving notifications, hold invoices, and transaction history to an extension repository.

- **25:19 NWC PR #2 merges BIP-321 payment methods — Merged**
  NWC PR #2 merged BIP-321 pay and receive methods into the NIP-47 extension repository for wallet services choosing compatible BOLT11 or BOLT12 instructions from payment URIs.

- **25:38 NAP PR #95 proposes catalog discovery for Nostr-distributed sandbox applications — Open**
  NAP PR #95 proposes host-filtered catalog discovery so napplets learn available applications and capabilities without receiving execution authority during discovery.

- **26:21 NAP PR #33 proposes shell-mediated file and blob uploads — Open**
  NAP PR #33 proposes shell-mediated uploads where the host selects NIP-96 or Blossom rails, signs authorization, and returns NIP-94 tags without exposing storage credentials to the napplet.

- **27:15 Marmot PR #410 merged convergence and deferred-input rules — Merged**
  Marmot PR #410 merged rules distinguishing missing epoch dependencies from stale input, keeping objects eligible for refetch after resource refusal with a domain-separated state commitment for conformance tests.

- **29:24 Concord PR #14 merged CORD-08 disappearing messages — Merged**
  Concord PR #14 merged CORD-08 disappearing messages where community metadata sets lifetime, chat wraps carry NIP-40 expiration tags, and kind 1740 timer notices are exempt.

- **30:52 Concord PR #13 merged rotation-proof pinning into CORD-04 — Merged**
  Concord PR #13 merged CORD-04 rotation-proof pinning with one replace-entire pin list per channel, original signed seals plus per-message NIP-44 expansion keys, and author deletions removing pins without forking the control plane.

### NIP Deep Dives

- **32:10 NIP Deep Dive: NIP-50 Search Capability**
  NIP-50 adds an optional search string to NIP-01 filters for open-ended discovery when a client has a human query instead of known authors or tags. Supporting relays match primarily against content, sort by their own relevance score, and may implement key:value extensions like domain:, language:, and include:spam declared through NIP-11. The specification deliberately leaves tokenization and ranking implementation-defined, so clients should query several relays and drop poor-precision results. Nostria, Ditto, and NoorNote already send NIP-50 searches in different discovery surfaces.

- **35:53 NIP Deep Dive: NIP-84 Highlights**
  NIP-84 assigns kind 9802 to signed highlights carrying selected text or empty content for non-text media, with a or e tags pointing at Nostr sources and r tags for web URLs stripped of tracking parameters. Optional p tags attribute authors, context tags preserve surrounding passage, and comment tags enable quote highlights without a separate kind 1 note. Each highlight is a regular signed event, not replaceable, so corrections create new events and public highlights reveal reading interests. nostrord 2.5.0, NoorNote, and Ditto already render or publish kind 9802 events.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #33</title>
      <description>Amethyst 1.13.1 napplets and NIP-29 auth, Mosaico agent awareness, Nostrology maps relay concentration, Marmot Disbanded state, Six Years of Nostr Julys</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpk8y6nxd35xvmngwpdd3jngut40p6xgmq5a2z4r</link>
      <pubDate>Mon, 17 Aug 2026 08:00:43 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1786953643748-le4quxtdl</guid>
      <enclosure url="https://blossom.primal.net/f1881bf59dd940c2cc3da8ecb7fcbb67c60cf8a0914564b35937a4e3f5ff2e29.ogg" type="audio/ogg" length="17708761" />
      
      <itunes:duration>43:30</itunes:duration>
      <itunes:episode>33</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/94f4eadf1fb0044701644af5a0544eb63fb4232fdc783be89a09137a6caef75c.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Amethyst 1.13.1 follows its Nostr apps launch with authenticated group and Blossom access**
  Amethyst 1.13.0 opens napplets and NIP-5A nsites in an isolated keyless browser with consent-gated window.nostr, plus Git repos, Concord communities, NIP-29 groups, Buzz chat, wiki, RSS, and BOLT12 offers. 1.13.1 adds CORD-02 dissolution, kind 9008 deletion, NIP-29 host-relay authentication, and authenticated BUD-01 retries for gated Blossom downloads.

- **02:17 Code Call 0.2.68 adds a worker-folder browser after 0.2.66 introduced catch-up**
  Code Call 0.2.68 replaces its workspace list with a nested folder browser rooted at the worker directory. 0.2.66 adds catch-up from the latest phone message over NIP-17 DMs with locally encrypted Blossom attachments retaining original file types.

- **03:11 GitWorkshop coordinates maintainers and keeps repository sync independent**
  GitWorkshop 3.1.1 adds Android NIP-55 login, recursive lead-maintainer coordination, independent repository sync from invitation acceptance, cross-repo work-item references, and GRASP copies without coupling transfer to invitations.

- **04:10 Mosaico 0.1.2 lets coding agents share status over Nostr**
  Mosaico 0.1.2 lets Claude Code, Codex, Goose, Hermes, OpenCode, and Grok sessions publish short status updates over NIP-29 relay groups without sharing transcripts, with Codex profile discovery and explicit relay choice in PR #626 and PR #629.

- **05:08 Nostrology maps relay-list concentration from published NIP-65 events**
  Nostrology derives relay roles from latest NIP-65 kind 10002 events, charting 34,430 distinct relay URLs across 520,468 profiles at exactly one listed relay, with heavy concentration around relay.momostr.pink, relay.damus.io, nos.lol, and relay.primal.net.

- **32:08 Six Years of Nostr Julys**
  Nostr Compass #33 closes with a July retrospective from 2021 NIP-05 DNS lookup through 2022 tag filters and reactions, 2023 live activities and classified listings, 2024 protected events and Cashu wallets, 2025 ecash discovery and voice messages, and 2026 addressable discovery plus NIP-29 subgroup and migration work.

### Releases

- **06:00 Kairos 0.1.1 adds reminders and a local Astraea instruction**
  Kairos 0.1.1 adds due-date reminders and a local Astraea instruction to the offline-first task manager whose optional sync writes NIP-44 encrypted records with deterministic coordinates and NIP-09 tombstones.

- **06:36 Bray 2.3.0 gives its CLI general gift wrapping and a local Blossom test surface**
  Bray 2.3.0 adds general NIP-59 gift wrap in PR #75 with NIP-42 test-relay challenges, in-memory BUD-01/02 server in PR #77, and NIP-77 reconciliation flags in PR #76.

- **07:33 Buzz Desktop 0.5.0 tightens invitations, search, and relay identity updates**
  Buzz Desktop 0.5.0 adds use-limited invite links in PR #3141, author/channel/time search in PR #2871, join-policy retrieval in PR #2862, and persona identity republish after rename in PR #2607.

- **08:44 Shosho 1.0.0 expands its live-streaming marketplace**
  Shosho 1.0.0 redesigns around creators, live sessions, clips, and products with configurable relay search, unified notification feed, clip publishing from streams, and improved threaded chat.

- **09:34 Mafrend v1.0 previews place-based Nostr chat on Android**
  Mafrend v1.0 is the first public Android alpha of a place-based Nostr chat app where each map location is a dedicated chat room, distributed via Zapstore.

- **10:06 Hanami 0.1.0 gives Blossom servers a signer-mediated Android path**
  Hanami 0.1.0 is an Android Blossom server companion using NIP-55 approval-mediated signing and NIP-98 HTTP auth, locking the web shell to the chosen server origin.

- **10:43 Cordn launches its Nostr-identity group chat on Android**
  Cordn 0.2.1 adds Android NIP-05 identity onboarding and verified deep links alongside MLS group encryption with coordinator-assisted delivery.

- **11:24 Nostur 1.30.1 fixes threads and duplicate posts after 1.30.0 expands sharing**
  Nostur 1.30.1 fixes nested reply thread expansion and duplicate draft publishing after 1.30.0 added disappearing DMs and share-sheet media publishing.

- **12:20 Formstr Drive 0.0.2 pairs Nostr file metadata with Blossom blobs**
  Formstr Drive 0.0.2 adds in-app previews, Nostr Docs integration for office documents, chunked Blossom blob storage, and a local relay for metadata with Blossom holding file bytes.

- **13:27 NoorNote 1.3.1**
  NoorNote 1.3.1 adds disappearing-message timers and default DM relays for new accounts, filtering global articles without cover images and routing repost notifications into the article reader.

- **14:15 algia 0.0.133**
  algia 0.0.133 adds local-image uploads with NIP-92 tags to regular, channel, and group posting commands, following 0.0.132's NIP-29 and NIP-42 support.

- **14:55 swift-nostr 0.7.0**
  swift-nostr 0.7.0 lets one NIP-46 remote signer drive all features, adds NIP-98 and NIP-29 group flows, and validates NIP-44 v3 padding against official vectors.

- **15:30 lawallet-nwc 2.0.0**
  LaWallet NWC 2.0.0 adds WebAuthn PRF passkey login deriving the Nostr key in-browser without server exposure, multi-pubkey account linking, and webhook retry for wallet-connect events.

- **15:58 MDK 0.9.10**
  MDK 0.9.10 retains pending sends during inactive transport, adds paginated conversation history in PR #1159, republishes current KeyPackage in PR #1167, and supports terminal group disbanding.

- **17:13 pakstr 0.3.1**
  pakstr 0.3.1 lets web teams supply runtime configuration and an API proxy for Android Nostr client packages without rebuilding the shell, with Amber bridge and NIP-44 encryption support.

- **17:39 Ditto 2.34.2**
  Ditto 2.34.2 renders user statuses as cards with custom emoji and expiry, shows zap comments as replies, and retains optional NIP-5A profile globe buttons.

- **18:28 Earthly 0.0.9**
  Earthly 0.0.9 keeps likes visible across map entity drawer changes and sends valid NIP-57 zap-request JSON for verified receipt publication.

### Project Updates

- **18:55 Keep adds kind-scoped NIP-44 v3 signing and tightens approval policy**
  Keep merged PRs #451 through #455 carrying NIP-44 v3 encrypt and decrypt through NIP-55 and NIP-46 with kind-scoped grants separate from v2, and stops treating Basic policy as Auto.

- **19:34 Routstrd changes its default network bind after an unauthenticated exposure**
  Routstrd PR #56 changes the default bind from all interfaces to 127.0.0.1 after the prior default exposed unauthenticated wallet and daemon endpoints to any reachable host.

- **20:07 Imwald Android clarifies offline publishing status**
  Imwald Android treats local-relay acknowledgement as complete publish only when every configured target is local, keeping remote delivery pending when local acceptance precedes remote relay delivery.

- **20:37 FIPS adds an OpenWrt access layer; a FreeBSD port remains under review**
  FIPS merged PR #126 exposing an open !FIPS access network on OpenWrt routers, with open PR #129 proposing a FreeBSD port and the public UDP overlay reporting 300+ nodes.

- **22:15 Zap Cooking schedules posts and binds scanner requests**
  Zap Cooking PR #566 and PR #569 retain scheduled posts in encrypted storage for timed relay publish, and PR #599 authenticates fridge scanner requests with NIP-98 instead of body-supplied pubkeys.

- **22:53 Citrine turns an Android device into a manageable relay**
  Citrine PR #179 rebroadcasts stored events to external relays, PR #150 adds NIP-86 administration commands, PR #178 enables NIP-29 group admin via Amber, and PR #174 aligns Tor relay lifecycle through restarts.

- **23:42 Wired recovers complete conversations in the browser**
  Wired PR #148, PR #147, and PR #146 follow feed roots and replies to completion beyond fixed limits, with PR #145 and PR #144 preserving relay hints for still-missing context without overwriting partial snapshots.

### NIP Updates

- **24:10 NIPs: NIP-34 hosting boundary, group migration, and three live drafts — Merged/Open**
  NIP-34 commit 6d2979b removes GRASP hosting from kind 1618 pull-request descriptions. NIP-29 commit db5fe3d defines group metadata migration and fork distinction. Open: PR #2424 mutual kind 10045 key-set declarations, PR #2421 BOLT12 zap intents, PR #2425 non-HTTP schemes in NIP-B0 bookmarks.

- **25:57 Mill implements a draft for cloud-account key backup — Open**
  Mill merged a cloud-account key-backup draft using Google OIDC plus passphrase-derived keys to encrypt NIP-49 ncryptsec into provisional kind 30049 events, disabled by default without dedicated backup relays.

- **28:51 BUDs: Blossom servers may identify unknown uploads from their bytes — Open**
  BUD-02 PR #110 proposes server-side MIME detection when uploaders omit Content-Type or send application/octet-stream, preserving client-supplied types when specific.

- **29:26 NAPs: conventions replace numbered tracks as capture and filesystem contracts develop — Merged**
  NAP PR #87 removes numbered cross-napplet protocol tracks in favor of napplet:// convention URIs, with NAP-CAPTURE PR #94 for microphone consent boundaries and NAP-FS PR #88 for virtual filesystem handles.

- **30:52 Marmot: the specification defines a terminal group state — Open**
  Marmot PR #409 adds an authenticated irreversible Disbanded state blocking old branches, messages, and Welcomes from reviving a group after admin commit.

- **31:32 Concord: read and write capabilities may split inside one plane — Open**
  Concord PR #12 proposes separate read and write stream capabilities per plane, with the write key acting as a spam gate while roster checks carry authority.

- **31:47 NWC: one wallet method can choose between BOLT11 and BOLT12 — Open**
  NWC PR #2 proposes optional pay and receive methods for BIP-321 payment URIs letting wallet services choose compatible BOLT11 invoices or BOLT12 offers outside the NWC core.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #32</title>
      <description>IndieSats open music infrastructure, five NIP-29 merges, Zapstore portable keys, Iris FIPS browser stack, with nostream NIP-42 access control deep dive.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpkxucrzvfhxvur2veddse8zcnh0f3rjuc67dez3</link>
      <pubDate>Fri, 14 Aug 2026 09:52:53 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1786701173853-l2qbwzb9s</guid>
      <enclosure url="https://blossom.primal.net/f92b1d342d5e4ba29f3abff566a78484b9608a08868198c8f4eb3324d7c02497.ogg" type="audio/ogg" length="23205082" />
      
      <itunes:duration>52:15</itunes:duration>
      <itunes:episode>32</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/deace3d87b6a34be2096ea069919dc1bfe0ee239af30c39c03fe2295a22217b6.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 IndieSats drops its publisher role and relaunches as open Nostr music infrastructure**
  IndieSats retired key custody, its whitelist, and mandatory 2% revenue cut on July 20, relaunching as open relay, player, and discovery infrastructure where artists publish under their own keys. v1.1.5 changed track publication to the event format Amethyst and other music clients expect, with optional platform share and NIP-09 deletion support.

- **1:49 Nostrord v2.3.0 ships group moderation, mute lists, and onion relays**
  Nostrord v2.3.0 adds group moderation actions in PR #192, consent-gated invites in PR #195, cross-platform NIP-51 mute lists in PR #188, and Tor .onion relay support, landing alongside five merged NIP-29 spec PRs.

- **2:57 Zapstore 1.1.0 makes the device key portable and adds background auto-updates**
  Zapstore 1.1.0 adds opt-in Wi-Fi background auto-updates, portable encrypted device keys backed up through Amber over NIP-55, device-signed kind 10067 catalog events, NIP-56 verified reporting, and C1 proof verification before install.

- **5:56 The favorite-follow-sets list kind merges and immediately moves house**
  PR #2413 merged kind 10011 favorite follow sets under NIP-51, but PR #2417 opened within days to renumber to kind 10021 due to a collision before any client shipped against the merged number.

- **6:26 The Iris projects ship a pubsub library, browser FIPS runtime, and social-graph 2.0**
  nostr-pubsub v0.1.3 through v0.5.2 adds browser relay transport with signature verification at the boundary. fips-ts 0.0.24 through 0.0.30 brings FIPS Noise-over-secp256k1 into the browser with WebRTC datachannels and Nostr signaling. nostr-social-graph v2.0.0 adds signed roster operations and FIPS transport identity facets wire-compatible with the Rust stack.

### Releases

- **9:30 Amber v6.3.0 groups bunker signing approvals and adds Expert List support**
  Amber v6.3.0 adds grouped multi-request bunker approval, Expert List kind 12022 and Expert Pack kind 32022 support, privacy mode, and NIP-65 relay-list fetch before profile metadata.

- **12:14 Nostrord v2.2.0 follow-up**
  Nostrord v2.3.0 follows v2.2.0's DM controls from #31, making this the client's second consecutive weekly release.

- **12:32 Armada v0.37.0 opens Buzz workspaces from a second client**
  Armada v0.37.0 detects Buzz relays via NIP-11 metadata, rendering Buzz forum posts as kinds 45001 and 45003 with presence, workflow, job, huddle, and shared-canvas surfaces, plus NIP-34 repository work in Projects workspaces.

- **15:56 Wisp v1.2.0 adds a multi-account switcher and collapsible reply threads**
  Wisp v1.2.0 adds multi-account switching, collapsible reply threads, tracking-parameter stripping on links, and wallet transaction history.

- **16:56 Divine Mobile 1.0.17 hardens relay security and DM delivery**
  Divine Mobile 1.0.17 makes DMs wait for relay OK responses with durable retry queues and kind 10050 inbox routing in PR #6046, restores strict TLS validation in PR #6278, and adds resumable uploads.

- **17:45 ClipRelay v0.1.2 syncs clipboards across devices over Nostr relays**
  ClipRelay v0.1.2 syncs clipboards across Android, macOS, Windows, and Linux via NIP-44 encrypted self-addressed events, fixing sleep-wake publish-without-receive failures and dead subscription status indicators.

- **18:21 nak v0.20.2 adds NIP-34 pull-request workflows**
  nak v0.20.2 adds create, pull, and merge NIP-34 pull-request commands, NIP-29 parent-group handling, configurable relay timeouts, and bunker selection fixes.

- **19:30 Sonar v0.1-alpha.11 continues the alpha line**
  Sonar v0.1-alpha.11 continues mesh link engine, BLE, and relay diagnostics work as an incremental follow-up to the alpha line covered in #31.

- **20:47 Amethyst lands v1.13.0 pre-release QA**
  Amethyst merged 88 PRs ahead of v1.13.0 including napplet account isolation and Concord authority fixes in PR #3650, full Desktop NIP-88 polls in PR #3664, BM25 NIP-50 search in PR #3663, and relay-store index optimizations in PR #3660.

### Project Updates

- **22:46 Snort rewrites query synchronization around EOSE-proven coverage**
  Snort rewrote query sync to record EOSE-proven query windows, skip covered cache ranges, centralize event dispatch, and send NIP-50 filters only to advertising relays, with follow-up fixes for watermark serialization and live follows-feed subscriptions.

- **23:21 Shopstr binds payment validation to signed receipts and server-side prices**
  Shopstr PR #552 verifies kind 9735 zap receipt signatures, embedded requests, and BOLT11 amounts before treating purchases as valid. PR #449 moves Cashu quote creation server-side so browser-modified amounts cannot set mint invoices.

- **23:55 Mostr bridges ActivityPub private chats and Nostr DMs**
  Mostr now carries Pleroma ChatMessage objects and legacy NIP-04 kind 4 DMs in both directions through NIP-42 gated DM relays, without NIP-17 gift wrapping.

- **25:21 nostream merges eight PRs without cutting a release**
  nostream merged PR #702 restricting encrypted-kind reads to authenticated recipients and PR #676 adding join and leave request strategies, plus PR #694 fixing duplicate tag-filter results.

- **26:02 FIPS v0.4.1 tightens the Iris transport layer**
  FIPS v0.4.1 caps antipoison state, fixes convergence and MTU handling, and cuts CPU use, with fixes propagating to wire-compatible fips-ts in the browser.

### NIP Updates

- **38:27 NIP-29 (Relay-based Groups): Subgroups — Merged**
  PR #2319 adds subgroup parent tags to NIP-29 kind 39000 metadata without cascading membership or admin inheritance, advertised in NIP-11 under nip29.subgroups.

- **39:29 NIP-29: Message pinning — Merged**
  PR #2379 and PR #2416 add kind 9010 update-pin-list moderation events and kind 39005 relay pin mirrors accepting both e and a tags.

- **39:55 NIP-29: Banner tag and invite-code suffix — Merged**
  PR #2383 adds optional banner tags to group metadata. PR #2380 defines invite-code suffixes on naddr share links pairing with kind 9009 create-invite events.

- **40:33 NIP-51 (Lists): Favorite follow sets, kind:10011 — Merged**
  PR #2413 adds kind 10011 favorite follow sets with a tags pointing at kind 30000 follow sets, mirroring kind 10012 relay-feed bookmarking.

- **41:22 NIP-46 (Nostr Connect): Silent-timeout guidance — Merged**
  PR #2375 requires NIP-46 signers reply with an error for unknown methods instead of hanging until client timeout.

- **41:46 kind:10011 renumbering to kind:10021 — Open**
  PR #2417 renumbers favorite follow sets from kind 10011 to kind 10021 due to an existing collision before clients publish against the merged number.

- **42:11 NIP-47 (Nostr Wallet Connect): Core simplification — Open**
  PR #2419 proposes narrowing NIP-47 into a minimal core spec with optional extensions moved to the nostr-wallet-connect/nwc repository.

- **43:45 Trusted Relay Assertions (draft) — Open**
  PR #2418 proposes kind 30385 trusted relay assertions and kind 10385 provider lists as a trust layer alongside NIP-11 and NIP-66, reusing NIP-32 labels for reports.

- **44:53 AND operator for filters (proposed "NIP-91") — Open**
  PR #2252 adds an & modifier for indexable tag AND intersection in filters, with OR fallback tags for relays lacking the extension.

- **45:23 Nostr web applets (proposed "NIP-5D") — Open**
  PR #2303 defines a postMessage protocol for sandboxed napplets with shell-mediated signing, depending on NIP-5A manifests and active in Amethyst v1.13.0 napplet isolation work.

### NIP Deep Dives

- **46:17 NIP Deep Dive: NIP-42 and NIP-43**
  NIP-42 sends relay AUTH challenges answered with ephemeral kind 22242 signed events binding relay URL and challenge string, with auth-required: and restricted: prefixes on rejected subscriptions and writes. NIP-43 adds kind 13534 member lists, kind 28934 join requests with invite claims, and kind 8000/8001 membership announcements. nostream merged both halves this week in PR #702 and PR #676, with Amethyst signing kind 22242 for Concord communities.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #31</title>
      <description>Nostr Compass Podcast #31 is live: Vector v0.4.0 retires Marmot for Concord group chat, Amethyst merges a clean-room Concord implementation in PR #3566, and Sonar splits from Bitchat with a cross-platform alpha and sticker-pack spec.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpkxcengdekx5crjdedwak8v6fjvferz6sjt532y</link>
      <pubDate>Thu, 13 Aug 2026 15:26:05 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1786634765097-wlvi2br1j</guid>
      <enclosure url="https://blossom.primal.net/7a91958090b81bb1fd598f2a89791ab026a58263f3d9f31fe1ac6c30d8131a49.ogg" type="audio/ogg" length="35676329" />
      
      <itunes:duration>01:08:35</itunes:duration>
      <itunes:episode>31</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/c3a2f93c1b76887fceee0184c4ae9ae4f62640bc963d4c6ddbfada35814f065f.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Intro**
  This episode follows Nostr Compass #31 across Concord group messaging, tagged releases, unreleased commerce and signer work, six open NIP proposals, and a NIP-99 deep dive.

- **0:15 Vector v0.4.0 moves Group Chats from Marmot to Concord**
  Vector v0.4.0 retires Marmot as the default Group Chat transport in favor of Concord (CORD-01 through CORD-07), with Tor routing, NIP-46 bunker login, multi-account support, and delete-for-both-sides messaging. v0.4.1 ships Concord v2 with slash-command bot picker, self-destruct timers, and NIP-58 badges.

- **5:55 Amethyst ships a clean-room Concord implementation**
  Amethyst PR #3566 adds a full clean-room Concord implementation in quartz/ and commons/ with gift-wrapped control, chat, and guestbook planes, owner-rooted role enforcement, and rekeying, interoperating with Soapbox Armada via ported test vectors.

- **6:34 Sonar splits off from Bitchat with a cross-platform alpha and sticker-pack spec**
  Sonar v0.1-alpha.7 adds bounded transcript windowing, nearby-discovery sync, and Blossom upload fixes, with Marmot group DMs interoperable with White Noise. Sonar is the cited spec source for sticker-pack kinds in PR #2410.

- **8:50 Divine Mobile 1.0.16 ships a deeper video editor and ProofMode provenance**
  Divine v1.0.16 adds clip transitions, reverse playback, voice-over recording, timeline beat markers, at-rest encryption, background uploads, and ProofMode provenance that survives watermarked-clip downloads, plus under-16 account protections and 17-language localization.

- **10:28 Bitchat v1.7.0 adds live push-to-talk voice**
  Bitchat v1.7.0 adds live push-to-talk voice in PR #1403 with voice-note fallback, signed public-mesh push-to-talk in PR #1406, peer-ID rotation healing in PR #1401, and store-and-forward DM queuing in PR #1415.

- **11:33 MDK v0.9.4 bounds external-signer login and adds draft persistence**
  MDK v0.9.4 bounds external-signer login advisory-directory steps in PR #793 and adds draft-message persistence in PR #812.

### Releases

- **12:29 n_cord v1.1 adds NSEC Bunker support**
  n_cord v1.1 adds NIP-46 NSEC Bunker support alongside a reply-handling bug fix for the Discord-inspired Nostr chat client.

- **12:52 cdk v0.17.3 adds NIP-47 wallet-service support**
  cdk v0.17.3 adds NIP-47 Nostr Wallet Connect service support across cdk, cdk-nwc, and cdk-ffi with wallet integration and end-to-end test coverage.

- **14:37 Coop Mobile v0.2.4 improves Nostr Connect and adds ncryptsec1 import**
  Coop Mobile v0.2.4 improves NIP-46 Nostr Connect flow, fixes stuck loading indicators, and adds NIP-49 ncryptsec1 encrypted key import.

- **16:04 Nmail v0.14.0 ships on macOS with scheduled send**
  Nmail v0.14.0 lands on macOS with scheduled send, a Scheduled mailbox, push notifications, and NDK NIP-05 address resolution.

- **23:30 Nostrord v2.2.0 adds a DM master toggle**
  Nostrord v2.2.0 adds a master toggle to disable all DM features in PR #175 and richer direct messages in PR #186.

- **24:19 Nostr WoT 0.3.86 hardens key backups and signing prompts**
  Nostr WoT v0.3.86 moves encrypted-key backups to NIP-49 format, shows full events in signing prompts, verifies relay data signatures, and drops the unused scripting permission.

- **24:45 Keep Android v1.1.8 adds first-run FROST onboarding**
  Keep Android v1.1.8 adds first-run FROST key-share onboarding with Manual, Basic, or Auto signing policy selection before the first signature request.

- **26:36 Noscall v0.6.0 adds a Cashu wallet and relay-based push notifications**
  Noscall v0.6.0 adds an account-scoped Cashu wallet with multi-mint balances and Lightning pay/receive, migrates Android push off Firebase to UnifiedPush over Nostr relays, and improves iOS VoIP reliability.

- **29:23 Kubo ships tablet mode and group-chat photos**
  kubo-v2026.07.05 adds opt-in tablet grid layout for the child feed, group-chat photo attachments, and fixes for the sign-up button hiding behind the Android keyboard.

- **30:00 Nostr Codex Phone v0.2.9 adds git, diff, and read-file helper requests**
  Nostr Codex Phone v0.2.9 adds mobile OpenCode git, diff, read-file, status, and history helper requests, session pin and search improvements, and encrypted Blossom upload wrapper from v0.2.8.

- **30:51 GitWorkshop v3.0.3 fixes repo explorer refs and ships its first Android build**
  GitWorkshop v3.0.3 fixes newly announced refs failing to resolve in the repo explorer and published its first Zapstore Android build from v3.0.0 through v3.0.3.

- **32:03 Bitcoin-Safe reaches Flathub with Nostr Sync & Chat**
  Bitcoin-Safe reached Flathub this week, putting its Sync & Chat plugin in front of a mainstream Linux audience with NIP-17 DMs for wallet label sync and PSBT multisig co-signing between trusted participants.

### Project Updates

- **32:52 Amethyst adds encrypted NIP-85 contact nicknames**
  Amethyst PR #3548 lets accounts publish kind 30382 NIP-85 contact cards with NIP-44 encrypted petnames and custom emoji mappings synced through the extended outbox relay set.

- **35:04 Zap Cooking ships My Kitchen Phase 3**
  Zap Cooking merged 43 PRs landing My Kitchen Phase 3 with grocery-list generation, recipe picker, and planner week grid, plus an NDK connection-pool quorum-readiness fix.

- **36:26 Kehto streams outbox reads before relay discovery finishes**
  Kehto PR #193 opens validated relay hints immediately for outbox reads instead of waiting for NIP-65 relay-list loading to finish, with PR #196 aligning the identity-audit page to NAP-SHELL lifecycle.

- **37:27 Wired and TAO add NIP-57 creator revenue sharing**
  Wired and TAO merged PR #121 implementing NIP-57 creator revenue sharing so zaps split automatically to contributors beyond the original poster.

- **38:01 Conduit Mono rebuilds guest checkout and the merchant orders inbox**
  Conduit Mono PR #174 adds ephemeral-key guest checkout over NIP-17 and NIP-59 gift wrap, and PR #175 rebuilds the merchant orders inbox around a shared order-state model requiring tracking codes before shipped status.

- **39:01 Buzz hardens channel-creator provisioning**
  Buzz PR #1830 treats a channel creator as a member before kind 39002 channel-provisioning logic runs, closing a race where the creator could be rejected during setup.

- **41:09 Nostr Docs adopts a NIP-49 signer with multi-account and QR pairing**
  Nostr Docs PR #50 adopts @formstr/signer for full NIP-49 authentication with multi-account switching and QR pairing.

- **45:27 OpenDiscord v1.0.1 launches as a Discord-style client on Nostr**
  OpenDiscord v1.0.1 is the first tagged installer release of a Discord-style server-and-channel client on Nostr with role-based permissions and WebRTC/SFU voice lobbies.

- **45:44 Auditable Voting v0.1.140 aligns organiser, voter, and audit-proxy roles**
  Auditable Voting v0.1.140 aligns organiser, voter, and audit-proxy roles with the exact organiser-signed questionnaire-definition event, closing stale audit-proxy state gaps.

- **48:11 Cambium v0.3.2 pairs with Heartwood as a keyless NIP-55 signer**
  Cambium v0.3.2 is a keyless NIP-55 Android signer proxying every request over NIP-46 to a Heartwood hardware companion, with approval-sheet identity warnings and non-blocking activity-log writes.

- **50:04 echoes, Dispatch, and Linky launch**
  echoes is an offline-first encrypted notes app syncing over Nostr. Dispatch v0.3.0 is a local-first travel organizer with NIP-44 encrypted saves and Amber NIP-55 login. Linky combines Nostr contacts, DMs, Lightning, and Cashu in one PWA.

### NIP Updates

- **50:43 Protocol work and NIP updates**
  No PRs merged into the NIPs repository this week. Six proposals opened covering follow-set favoriting, encrypted drive storage, permissioned data sharing, sticker packs, group pinning, and relay discovery.

- **50:51 Favorite follow sets proposal — Open**
  PR #2413 adds kind 10011 favorite follow sets mirroring kind 10012 favorite relay sets, bookmarking kind 30000 follow sets without replacing the user's contact list.

- **51:26 Private encrypted drive proposal extending NIP-4E — Open**
  PR #2412 proposes kind 34578 Metadata events and a private encrypted file system on Blossom with drive-wide symmetric keys, building on NIP-4E and overlapping the contested NIP-17 wrapper-key proposals in PR #2397 and PR #2396.

- **56:36 NIP-DA permissioned private data sharing — Open**
  PR #2411 proposes NIP-DA scoped data grants via encrypted per-scope records on relays with symmetric keys delivered in NIP-59 gift wraps and revocation through key rotation.

- **57:43 Sticker pack kinds 10031 and 30031 — Open**
  PR #2410 registers kind 30031 addressable sticker packs and kind 10031 user sticker lists under the Sonar Stickers format, one slot above NIP-30 emoji kinds with plaintext hash references preventing silent pack tampering.

- **59:48 NIP-29 message pinning — Open**
  PR #2379 adds NIP-29 message pinning via kind 9010 update-pin-list moderation events and kind 39005 relay-generated pin mirrors.

- **1:00:45 NIP-66 relay discovery restructure — Open**
  PR #2241 restructures NIP-66 relay discovery with indexed tags, a W attributes tag, standardized l label namespaces, dedicated RTT/SSL/network/geographic sections, and fixed example events.

### NIP Deep Dives

- **1:01:35 Deep dive: NIP-99 and the Gamma Markets commerce extension**
  NIP-99 kind 30402/30403 classified listings leave checkout, shipping, orders, and reviews undefined beyond the listing itself. Gamma Markets adds kind 30405 collections, kind 30406 shipping options, and order flow over NIP-17 kind 14/16/17 messages plus kind 31555 reviews, with explicit a tag references instead of NIP-15 stall inheritance. Conduit Mono and Shopstr work this week sits in the same order-state territory.

- **1:08:02 Outro**
  That wraps Nostr Compass #31. Building something or have news to share? Reach out via NIP-17 DM or find us on Nostr.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #29</title>
      <description>FIPS v0.4.0 mixnet mesh, Whitenoise Linux Marmot desktop, CustID NIP-46 vault, myco nsite sharing, NIP-44 limit lift, NIP-86 and NIP-89 dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpnxumrqdecxccrjwfdwfmx7wrfd4ergaqdy6x9y</link>
      <pubDate>Sat, 11 Jul 2026 09:06:26 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1783760786099-rvo8imr4t</guid>
      <enclosure url="https://blossom.primal.net/beec66393de447b81850e5ae2b4b15307987e9af6972e07763549f5b1b11a607.ogg" type="audio/ogg" length="19921189" />
      
      <itunes:duration>46:41</itunes:duration>
      <itunes:episode>29</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/81db8e0ab8b6bc5ff13759268ae001fac31aca30d31221373e3ab0d4d5fa3ad5.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:16 — FIPS v0.4.0**
  FIPS v0.4.0 ships Nym mixnet outbound transport, opt-in mDNS/DNS-SD LAN discovery, a data-plane overhaul with per-peer crypto workers, hitless FMP/FSP rekey under packet loss, a rewritten fipstop TUI, Prometheus show_metrics, and OpenWrt apk plus Nix flake packaging, all wire-compatible with v0.3.0.

- **6:40 — Whitenoise Linux desktop client**
  Whitenoise Linux is a desktop Marmot client in Rust and Slint with a single password-encrypted vault. A protocol proposal moves message effects from inline dmfx: body markers to dedicated kind 9 sidecar events referencing the parent message.

- **10:04 — CustID mobile identity vault**
  CustID v0.1.10-beta stores multiple Nostr identities in hardware-backed secure storage, acts as a NIP-46 remote signer, and answers physical access challenges over NFC and QR, dropping background NIP-65 keep-alive in favor of signing-notification sockets only.

- **11:42 — myco peer-to-peer nsite sharing**
  myco v0.1.0 shares NIP-5A nsites peer-to-peer over a FIPS mesh with BLE L2CAP transport, per-peer speedtests, NFC-triggered sharing, and Zapstore distribution.

- **16:29 — Nostr Codex Phone**
  Nostr Codex Phone v0.1.122 controls a local Codex coding-assistant worker over encrypted Nostr DMs from Android, with multi-repo sessions, voice transcription, Blossom uploads, and optional spoken responses, sibling to CodeDeck from #28.

- **17:23 — Coop Mobile**
  Coop Mobile v0.2.1 and v0.2.2 are the first versioned builds of a NIP-17 encrypted DM client for Android, tightening crash safety around message parsing and QR handling and wiping stored data on logout.

- **17:51 — Amethyst**
  Amethyst adds a NIP-34 Git Repositories feed, a napplet Discover section from NIP-89 and NIP-5A events, NIP-89 client-tag display in PR #3422, and NIP-77 negentropy with streaming reconciliation and automatic created_at windowing.

- **19:02 — Buzz v0.3.38**
  Buzz v0.3.38 hardens relay attack surface on personas, teams, managed agents, and NIP-OA attestations, and adds provider-agnostic model selection including a Databricks AI Gateway v2 backend.

- **19:48 — Notedeck**
  Notedeck lands NIP-37 private-sync relays as kind 10013, a NIP-52 calendar pane redesign, and NIP-22 kind 1111 comments in the headway pane.

- **20:41 — Applesauce**
  Applesauce 6.2.x adds nbunksec portable NIP-46 session import/export and upgrades the wallet package to @cashu/cashu-ts v4 with Amount value objects.

### Releases

- **21:16 — mostro-core v0.14.0**
  mostro-core v0.14.0 ships the next protocol iteration for the Mostro P2P fiat trading network alongside mostro-cli v0.16.0.

- **21:36 — ngit v2.6.1**
  ngit v2.6.1 implements merged NIP-34 GRASP-06 fork semantics replacing personal-fork with a u upstream tag on repo-state events.

- **22:59 — mesh-llm v0.72.0/v0.72.1**
  mesh-llm v0.72.0 and v0.72.1 fix a batching crash on large single prompts and migrate the MCP bridge off deprecated helpers.

- **23:20 — Meiso v1.4.0**
  Meiso v1.4.0 introduces Shared-Key Collaborative Lists on addressable kind 35000 with NIP-44 self-encrypted tasks and relay Last-Write-Wins conflict resolution, replacing prior MLS-based task sharing.

- **24:15 — Cordn 0.3.2**
  Cordn 0.3.2 removes ephemeral sender pubkeys from group message posting and hardens join-request flow against stale re-requests on the coordinator side.

### Project Updates

- **24:53 — diVine**
  diVine merged 108 PRs in a post-launch polish wave, including a NIP-46 connect-flow stability pass migrating nostrconnect:// failures onto structured reason codes.

- **25:11 — Zap Cooking**
  Zap Cooking continues the cross-project NIP-46 fix and composer overhaul from #28.

- **25:27 — Conduit**
  Conduit continues marketplace correctness work on listing flow and buyer, merchant, and store-builder apps from #28's launch.

- **26:02 — Pollerama v1.12–v1.13.1**
  Pollerama v1.12.0 through v1.13.1 add user-selectable client tags, thread depth caps linking to full threads, profile Notes and Conversations tabs, and follow-persistence fixes.

- **26:30 — getwired.app / get-tao.app**
  getwired.app and get-tao.app fixed the NIP-13 confess submission flow so proof-of-work mining UX is coherent during anonymous posting.

- **26:59 — nostui**
  nostui added a mention timeline tab surfacing kind 1 events tagging the active pubkey as a dedicated TUI view.

- **27:17 — Heartwood**
  Heartwood landed a relay-to-serial HSM signing bridge and per-identity NIP-46 bunker URIs so one hardware device exposes distinct bunker connections per identity.

- **27:51 — Nostter**
  nostter reworked auth and signer dispatch into strategy modules with login state on a single signal, unifying NIP-07, NIP-46, and nsec paths.

- **28:07 — Dart NDK**
  Dart NDK moved the NIP-07 signer into ndk_flutter and randomized NIP-59 gift-wrap timestamps against timing correlation.

- **28:29 — Milk Market**
  Milk Market added NIP-23 storefront blog pages, Square payment processing, and automatic shipping-label purchases for paid orders.

- **28:54 — Calendar by Formstr**
  Calendar by Formstr merged PR #159 for an iOS app, PR #197 fixing local calendar-date parsing, and PR #201 adding Playwright E2E on a run-tests label.

- **29:27 — cagliostr**
  cagliostr tightened configurable NIP-13 proof-of-work, NIP-09 deletion by addressable coordinate, and configurable NIP-22 timestamp limits.

- **29:51 — Rapid fire of new projects (Vanderwarker, ntrack, etc.)**
  The Vanderwarker wellbeing suite publishes physical telemetry as kind 30078 Nostr events across five Zapstore apps: Holy Fit, Nunlock, Saint Stream, Sister Charge, and Cellibacy.

- **30:48 — ntrack & Haven**
  ntrack v0.1.9 is an encrypted serverless live location-sharing Android app in Rust and Slint, sibling to Haven from #28 but carrying location updates over encrypted NIP-44 DMs instead of Marmot groups.

- **31:02 — NostrAppShell**
  NostrAppShell published its first user-facing documentation as an early-stage application shell scaffold for building Nostr apps.

- **31:15 — NIPs by Pollerama / new NIP-34 repo clusters**
  NIPs by Pollerama (abh3po/better-nips) surfaces NostrHub kind 30817 community NIPs with trust-weighted NIP-32 approvals. New NIP-34 clusters include Vidstr and a nostrapps.com trio: verdana, hallway, and napps.

### NIP Updates

- **31:53 — Section start**
  Five NIPs merged this week alongside open proposals on NIP-17 wrapper keys, NIP-59 seal handling, NIP-29 group states, filter AND operators, and commerce consolidation into the Gamma Market Spec.

- **32:00 — NIP-44 payload limit — Merged**
  PR #1907 removes the 65,535-byte NIP-44 plaintext cap, raising it to 4 GiB via a longer-length field tagged into the version byte while keeping v2 wire compatibility.

- **32:56 — NIP-86 signevent method — Merged**
  PR #2389 adds a signevent method to NIP-86, and PR #2390 defines a Relay Roles replaceable event declaring administrator and moderator pubkeys.

- **33:43 — NIP-34 u tag for GRASP-06 — Merged**
  PR #2395 replaces the NIP-34 personal-fork tag with a u upstream tag on kind 30618 repo-state events, closing PR #2384 and aligning with ngit v2.6.1.

- **34:14 — NIP-46 client metadata — Merged**
  PR #2381 merges optional name, icon, and homepage metadata on NIP-46 connect requests, catching up to Amber v6.2.2 from #28.

- **34:37 — NIP-17 wrapper keys proposal — Open**
  PR #2397 and PR #2396 propose epoch-based deterministic NIP-17 wrap keys and conversation-key-signed wraps for filterable DM threads without metadata leakage.

- **35:37 — NIP-59 seal rejection proposal — Open**
  PR #2399 proposes relays reject top-level kind 13 seal events from NIP-59 gift wraps, with issue #2398 arguing seals should be ephemeral kinds.

- **35:59 — NIP-29 group states proposal — Open**
  PR #2372 adds explicit open, closed, public, private, and archived group-state semantics to NIP-29 relay-based groups.

- **37:01 — AND operator proposal (NIP-91) — Open**
  PR #2252 proposes an AND operator for Nostr filters, with implementations already in nostr-rs-relay, Applesauce, Amethyst, and worker-relay.

- **37:53 — Closed marketplace NIPs / Gamma Market Spec — Closed**
  Escrow PR #2334, Reservations PR #2335, Marketplace Listing Extension PR #2346, and Accommodation Listing PR #2333 closed as commerce consolidates into the Gamma Market Spec repository composing orders, checkout, escrow, and disputes atop NIP-99.

- **38:14 — Bitcoin identity linkage proposals — Open**
  Two proposals opened for linking Bitcoin identities to Nostr: a NIP-352 Bitcoin Silent Payment Address and a Bitcoin-OTC Identity Linkage Proof.

### NIP Deep Dives

- **38:39 — NIP-86 Relay Management API**
  NIP-86 defines JSON-RPC relay management over HTTP POST with NIP-98 auth. Merged signevent lets admins ask relays to sign events with the relay pubkey, and Relay Roles events declare administrators and moderators so clients validate admin requests without out-of-band trust.

- **42:08 — NIP-89 Recommended Application Handlers**
  NIP-89 defines kind 31990 application handlers and kind 31989 user recommendations so clients discover apps for unknown event kinds via socially filtered Open in... flows. Optional client tags surface authoring app identity with a documented privacy tradeoff. Amethyst's Discover section and napplet host build a full NIP-89 consumer surface on Android.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #28</title>
      <description>Buzz rename and Napplets trust boundary, Conduit marketplace MVP, BitBlik BLIK Lightning exchange, NIP-99 checkout proposal, Six Years of Nostr Junes.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpnxcurvdf3xuenqdpddgek5amzw4hhydgl7nvns</link>
      <pubDate>Fri, 10 Jul 2026 12:28:37 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1783686517304-j3jwbuor5</guid>
      <enclosure url="https://blossom.primal.net/a67cbf21ca2c6806f4c95108256cf57ba390242190f79e18acf4720006feb567.ogg" type="audio/ogg" length="27246176" />
      
      <itunes:duration>01:04:13</itunes:duration>
      <itunes:episode>28</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/dbaf6618ca9e1af211247e01f2b6ead9adb4bc9b3a6f7c9e6b8164e975602498.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 – Intro**
  This episode follows Nostr Compass #28 across Buzz and Napplets launches, commerce protocols, tagged releases, unreleased work, and a June retrospective.

- **0:16 – Amethyst v1.12.1–v1.12.6 follow-ups**
  Amethyst shipped six rapid patches after v1.12.0: Health Connect Workouts and deterministic Tor Active in v1.12.1, Road Events and collapsable replies in v1.12.2, relay-latency health tracking and macOS notarization in v1.12.3, and Crowdin translation passes through v1.12.6 with NIP-5A and NIP-5D napplet support.

- **2:10 – Sprout rebrands to Buzz**
  Sprout renamed to Buzz with personas, teams, and managed-agent records publishing as Nostr events in PR #1189, per-message read markers in PR #1178, NIP-OA owner attestations in PR #1198, 7-day default ephemeral channels in PR #1182, and per-agent relay overrides in PR #1131.

- **5:06 – Napplets (composable Nostr apps)**
  Napplets by sandwich.farm defines a trust-boundary protocol for composable sandboxed apps resolved over Nostr and Blossom, with spec work in NIP-5D PR #2303 and packages @napplet/core, @napplet/sdk, and @napplet/conformance cutting 51 version tags at launch.

- **46:15 – Conduit marketplace MVP hardening**
  Conduit landed 17 merged PRs hardening the buyer Market, Merchant Portal, and Store Builder apps, including listing safety states in PR #110, commerce capability detection in PR #102, public relay default in PR #128, and privacy-safe analytics in PR #109 and PR #129.

- **19:59 – BitBlik P2P BLIK-to-Lightning exchange**
  BitBlik opens a peer-to-peer BLIK to Lightning exchange over NIP-44 encrypted DMs, with kind 38383 offers, kind 25195/25196 RPC, and kind 25197 status updates settled atomically by a coordinator holding Lightning hold invoices.

- **55:41 – Six Years of Nostr Junes**
  Nostr Compass #28 closes June with a retrospective from 2021 protocol infancy through 2022 NIPs repo formation, 2023 post-Damus adoption, 2024 signers and NIP-17, 2025 Marmot and git-over-Nostr maturity, and 2026's Buzz, Napplets, Conduit, BitBlik, CodeDeck, and Haven launches.

### Releases

- **23:44 – Amber v6.2.2 NIP-46 client metadata**
  Amber v6.2.2 implements NIP-46 client metadata from PR #2381, surfacing native app icons and connect metadata on request screens, gating logcat behind BuildConfig.DEBUG, and storing encrypt/decrypt payloads as ciphertext decrypted on demand.

- **25:38 – Haven private location sharing on Marmot**
  Haven shipped v0.1.0 through v0.1.4 as a censorship-resistant location-sharing app on Marmot, extending MLS encrypted group state from messaging into consented location updates on Android and iOS via Zapstore.

- **26:10 – CodeDeck remote agentic coding**
  CodeDeck v2026.06.17 through v2026.6.20 lets users control Claude Code sessions on a laptop from a phone over encrypted Nostr relays, embeds nostr-vpn FIPS mesh as Android VPN in v2026.06.17, collapses pairing to a single QR scan in v2026.6.18, and adds per-session model selection in v2026.6.20.

- **27:27 – Grain v0.8.0-rc1**
  Grain v0.8.0-rc1 ships client/core, an importable Go outbox-model Nostr client engine with NIP-44, NIP-42, NIP-65, NIP-17, NIP-51, and Blossom support.

- **28:37 – Mostro Core v0.13.1**
  mostro-core v0.13.1 adds a PriceTooStale error variant. Mostro merged invalid order ID surfacing in PR #752, El Toque fiat-cross in PR #778, and protocol_version tag rename in PR #782.

- **29:36 – Wisp v1.1.2 & Dark Wisp**
  Wisp v1.1.2 keeps self-send wallet legs distinct in PR #586, adds lazy inline video players in PR #592, and incremental feed spam scoring. Dark Wisp v1.1.0 adds ZEC, DASH, BCH, and LTC zap targets plus anon mode.

- **30:16 – Citrine v3.0.1**
  Citrine v3.0.1 fixes a crash when unregistering an unregistered Pokey receiver.

- **30:29 – FIPS v0.4.0-rc2**
  FIPS v0.4.0-rc2 validates packaging on top of the v0.4.0 line with Nym mixnet transport, mDNS LAN discovery, data-plane throughput improvements, and hitless FMP/FSP rekey.

- **31:52 – Kubo v2026.06.12 & v2026.06.20**
  Kubo v2026.06.12 makes the TEPP trust-gated kid feed mandatory from first launch with managed parent group chat. v2026.06.20 adds parent-curated YouTube channels with HTTP fast lane and mention autocomplete in group chat.

- **34:16 – Pollerama v1.9.0–v1.9.4**
  Pollerama v1.9.0 adds an on-device relay engine for instant offline-capable feeds. v1.9.2 fixes launch feed loading and DM note fetching. v1.9.4 adds web-of-trust trust scores and a People you may know rail.

- **39:58 – Smaller tagged releases (rapid fire)**
  Smaller releases include nostr-mail-client v0.13.1 restoring NIP-55 login, nostream v3.0.0 script nonces, LaWallet NWC v1.0.0, Formstr Nostr Calendar v2.0.0 through v2.0.2 PWA, and bumps across NYM, ZapBook, noornote, nostr-relay, algia, astraea, boris, nak, nosflare, and nostrord.

### Project Updates

- **41:53 – Cordn Ad-hoc CVM**
  Cordn Ad-hoc by sandwich.farm opens as a browser-based MLS coordinator running ContextVM in a tab with no backend, publishing coordinator pubkeys and storing MLS state in browser storage for ad-hoc Cordn groups.

- **43:53 – SnowCait/nostter 19 PRs**
  nostter merged 19 PRs including app-manager.nostter.app replacing nostrapp.link in PR #2234, IndexedDB caching for followees' replaceable events in PR #2231, and reactive seen-on relay state in PR #2230.

- **44:35 – Zap Cooking fixes & composer overhaul**
  Zap Cooking merged PR #452 patching a Primal remote-signer pubkey stamping bug affecting uploads and zaps, and PR #458 rebuilding the composer with countdown timer and Write/Preview tabs.

- **45:43 – Shopstr Cashu escrow & storefront tools**
  Shopstr merged PR #512 implementing end-to-end P2PK Cashu escrow, read tools in PR #543, and profile image URL paste in PR #229.

- **46:47 – divine.video mobile/desktop work**
  divine.video merged feed deduplication in PR #5465, exact local Nostr tag filters in PR #5463, video editor draft recovery in PR #5474, and followed-but-unreplied Messages badge counts in PR #5473.

- **47:18 – Nostur NIP-46 & DM fixes**
  Nostur merged PR #74 adding NIP-46 client metadata to bunker connects, PR #75 and PR #76 fixing DM refresh after foreground transitions, and PR #78 adding QR scanning for custom NWC setup.

- **48:00 – Social Agents Prototype**
  Social Agents Prototype by Sruly Rosenblat explores decentralized agent-to-agent communication where agents broadcast atomic questions and every message passes through a human approval gate before transit.

- **48:36 – PRana worklist for NIP-34 issues**
  PRana by DocNR is a triage worklist of correctly-open NIP-34 issues across opt-in git-over-Nostr repos, launching the same week as maintainers-tag removal in PR #2384.

- **49:23 – routstr-chat**
  routstr-chat is a local LLM chat interface using the Routstr protocol to route inference through kind 38421 provider announcements on Nostr with Cashu settlement atop the Routstrd daemon.

### NIP Updates

- **50:00 – Protocol work (intro)**
  Protocol work this week included two merges and a wave of open proposals spanning signers, relay management, commerce, git-over-Nostr, groups, and short-form media.

- **23:44 – NIP-46 client metadata (same as Amber above) — Open**
  NIP-46 PR #2381 adds optional name, url, and icon client metadata to bunker connect requests, now shipped in Amber v6.2.2 and Nostur PR #74, closing the bunker-pairing identity gap alongside Clave's proposal.

- **50:42 – NIP-86 signevent — Merged**
  PR #2389 merges a signevent operation into NIP-86 relay management, letting admins manage NIP-43 events on behalf of the relay, paired with open PR #2390 defining relay-roles events.

- **51:20 – NIP-99 on-graph checkout layer — Open**
  PR #2323 proposes an on-graph checkout and escrow layer for NIP-99 marketplaces covering order flow, payment, delivery confirmation, and dispute resolution as public addressable events.

- **52:32 – NIP-34 remove maintainers tag — Open**
  PR #2384 removes the maintainers tag from NIP-34 repository announcements to fix undefined expiry semantics affecting downstream tools including PRana and ngit.

- **53:12 – NIP-29 group states — Open**
  PR #2372 proposes a groups-states framing for NIP-29 relay-based groups, shared as work in progress for feedback.

- **53:23 – NIP-79 Stories / NIP-76 Reels Feed — Open**
  PR #2386 proposes NIP-79 ephemeral 24-hour Stories with kind 19 slides and kind 34237 sequencing. PR #2385 proposes NIP-76 for a short-form video Reels Feed.

- **54:33 – Kind 1111 reply reactivation — Open**
  PR #2358 removes the discouragement of using kind 1111 NIP-22 comment replies on kind 1 notes, explicitly supporting threaded comments on ordinary timeline posts.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #27</title>
      <description>Amethyst v1.12.0 Cashu nutzaps, Mostro Protocol v2, Clave 1.0 App Store push signing, Signet NIP-17 fix, NIP-77 and NIP-61 deep dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpjxvmnwvfkxv6nwvfdw45hwafnxvuhweqve2pwp</link>
      <pubDate>Thu, 25 Jun 2026 08:46:03 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1782377163571-uiwu339wd</guid>
      <enclosure url="https://blossom.primal.net/564e5817b6149bb966d30a34b51fde86fdd3d6dc47a5254f6b14f6a747aa1e97.ogg" type="audio/ogg" length="19211276" />
      
      <itunes:duration>47:24</itunes:duration>
      <itunes:episode>27</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/cd3b6cd7ff34afc1a0c4f9f1c41dfff962eae94e333257cf97f4af0c2a4ddb30.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Intro**
  This episode follows Nostr Compass #27 across signer work, P2P trade protocols, flagship client releases, merged NIPs, and deep dives on NIP-77 and NIP-61.

- **0:19 Amethyst v1.12.0 – Cashu wallets, nutzaps, CLINK driver & Tor self-heal**
  Amethyst v1.12.0 bundles 170+ PRs including NIP-60 Cashu wallets and NIP-61 nutzaps in PR #3075, per-mint balance in PR #3115, unified payment cards in PR #3191, CLINK on-chain zap verification in PR #3039, private NIP-17 replies in PR #3201, and Tor self-heal across PR #3053, PR #3223, PR #3224, and PR #3231.

- **1:54 Mostro Core v0.13.0 – Protocol v2, relay-blind trade comms**
  mostro-core v0.13.0 replaces relay-routed trade messaging with Protocol v2 NIP-44 kind 14 direct transport bound to per-trade keys. Mostro v0.17.5 makes the anti-abuse bond optional and operator-configurable at the node level.

- **3:34 Signet v1.11.0 – NIP-17 admin-command signature bypass patch**
  Signet v1.11.0 fixes a NIP-17 gift-wrap admin-command bypass where kill-switch commands checked only the unsigned inner rumor author, letting attackers forge panic, resumeall, or alive commands from public information. The patch verifies the seal and binds the rumor author to the signature.

- **4:48 Chama v3.2–3.5 – Trade room redraw & money path hardening**
  Chama shipped v3.2.0 through v3.5.0 redrawing the trade room around per-seat color-coded action prompts, tightening consensus rules in v3.3.0, localizing prices in v3.3.1, hardening the money path in v3.4.0, and adding arbiter guardrails in v3.5.0.

- **5:54 Clave 1.0 – App Store launch with push-woken background signing**
  Clave v1.0.0 build 102 was submitted to the App Store with push-woken background signing, incoming BIP-340 Schnorr signature verification, NIP-44 v3 kind-scoped permissions, multi-account pairing, connect-metadata app identity, and NIP-46 logout support.

### Releases

- **7:21 Amber v6.2.1 – NIP-46 logout & battery drain fixes**
  Amber v6.2.1 adds NIP-46 logout, reduces relay reconnect battery drain, drops dead relays from the pool, parses kind 39701 bookmark events, and rebuilds settings with Material 3 grouped cards.

- **8:24 Nostur 1.29.0 – Anonymous replies & remote-signer logout**
  Nostur 1.29.0 adds anonymous replies, zap receipt replies, NIP-46 logout on account sign-out, improved bunker connection flow, DM relay conflict fixes, and notification media thumbnails.

- **9:02 Citrine v3.0.0 – Negentropy, NIP-42 AUTH & onion-relay filtering**
  Citrine v3.0.0 adds NIP-77 Negentropy sync, external signer and NIP-42 AUTH in the aggregator, NIP-51 mute-list honoring, three-relay-per-author fetch caps, and onion URL filtering when Tor is disabled.

- **11:32 FIPS v0.4.0-rc1 – Nym mixnet transport & mDNS LAN discovery**
  FIPS v0.4.0-rc1 adds Nym mixnet outbound transport and opt-in mDNS/DNS-SD LAN discovery while staying wire-compatible with v0.3.0, plus hitless FMP and FSP rekey under packet loss.

- **13:06 Calendar by Formstr v1.6.1-2 – Per-event notifications**
  Calendar by Formstr v1.6.1 adds per-event notification preferences in PR #109. v1.6.2 fixes Amber login in PR #185.

- **14:21 Bitchat v1.5.2-3 – Nostr & BLE transport hardening**
  Bitchat v1.5.2 rate-limits iOS peer notifications in PR #972 and hardens Nostr validation in PR #1012. v1.5.3 hotfixes a launch crash from recursive dispatch_once in PR #1343.

- **15:50 Keep v1.0.5 – Signer policy surface moves to audited Rust core**
  Keep v1.0.5 pins keep v0.4.8 with bunker init race fixes in PR #296 and authorized-clients population in PR #291. Upstream keep v0.4.9 moves NIP-55 and NIP-46 policy into the audited Rust core with NIP-44 v3 cipher support.

- **16:55 ants v0.4.5 – Article portal links & Habla restored**
  ants v0.4.5 adds article portal links, naddr sharing, and raw JSON access for long-form posts, restores Habla in the portal set, fixes footnote rendering, and waits for relay connection before profile restore.

- **17:41 Morganite v0.0.3 – Local Blossom cache for Android with Tor**
  Morganite v0.0.3 implements BUD-08 local Blossom mirroring with 1GB LRU pruning, on-demand Tor, inbox-relay-first blob discovery, and battery fixes for logcat streams and leaked HTTP clients.

- **19:09 Coracle 0.6.34-35 – NIP-46 login, stale feeds & reply toggle fixes**
  Coracle 0.6.34 fixes NIP-46 login, stale home feed refresh, and reply toggle filtering. 0.6.35 fixes reposts hidden when replies are disabled.

- **19:41 Zeus v13.1.0-rc1 – CLINK noffers & queue-less NWC**
  Zeus v13.1.0-rc1 adds queue-less NIP-47 NWC payments on iOS, CLINK noffer support with Zeus Pay generating a noffer per account, and opt-out for Nostr Zap receipts on Zeus Pay.

- **20:44 Alby Extension v3.14.3 – noble/scure crypto stack migration**
  Alby Extension v3.14.3 migrates @noble/curves, @noble/hashes, @noble/ciphers, @noble/secp256k1, @scure/bip32, and @scure/base to v2/v3 majors, touching the NIP-07 signing and NIP-44 encryption path.

- **21:13 Mostro Mobile v1.2.8-9 – Protocol v2 & bond policy surface**
  Mostro Mobile v1.2.8 lands Protocol v2 client support with maker anti-abuse bond in PR #608, bootstrap relay discovery in PR #610, and order cancellation history in PR #602. v1.2.9 surfaces bond policy from node info in PR #617.

- **21:41 ZapBook – Multi-account, Marmot key pub & circle re-invitations**
  ZapBook shipped builds 4 through 27 with multi-account switching in PR #25, automatic Marmot kind 443 key-package publication on onboarding in PR #20, removed-member re-invitation handling in PR #24, background ONNX embedding search in PR #19, and NWC environment suffix support.

- **27:34 Alby Hub v1.23.0 – NIP-47 publish fix & Bitrefill on NWC**
  Alby Hub v1.23.0 stops retrying NIP-47 info publish for deleted apps in PR #2391, switches Bitrefill to standard NWC in PR #2420, and adds readonly scopes for app-store apps in PR #2415.

### Project Updates

- **28:20 Rapid fire: diVine, Pollerama & more**
  diVine merged 119 PRs toward its next release including REST-first video publish in PR #5221, blocklist refilter in PR #5208, and DM list recovery in PR #5202. Pollerama merged 15 PRs including signer rework in PR #198 and profile editor in PR #205, queued for the next tag after v1.6.4.

### NIP Updates

- **31:18 NIP update: merged NIPs (NIP-46 logout, NIP-CC → NIP-GC) – Merged**
  PR #2373 adds a logout method to NIP-46, shipped the same week in Amber, Clave, and Nostur. PR #2365 updates NIP-CC to reference modern NIP-GC group chat machinery.

- **31:56 NIP-29 open PRs – banner tags, invite codes, message pinning, group reporting, RBAC – Open**
  Open NIP-29 proposals include banner tags in PR #2383, invite-code suffixes in PR #2380, message pinning in PR #2379, group reporting via NIP-17 DMs in PR #2377, and RBAC roles in PR #2376.

- **32:59 NIP-46 open PRs – client metadata & silent timeout fix – Open**
  PR #2381 adds optional name, url, and icon connect metadata for signer pairing screens, implemented in Clave build 101. PR #2375 requires signers to hold requests open until user input rather than silently timing out.

- **34:11 NIP-100 proposal – Sovereign Agent Identity Network – Open**
  PR #2378 proposes NIP-100 SNIN for agent-to-agent identity and capability discovery, a broad draft likely to split in review.

- **34:51 BUD-00 merged – broadens Blossom definitions – Merged**
  Blossom BUD-00 PR #108 merged June 15, broadening BUD definitions to cover client-side conventions like BUD-10 URI schemes and BUD-08 local-cache patterns Morganite implements this week.

### NIP Deep Dives

- **35:11 NIP Deep Dive: NIP-77 – Negentropy**
  NIP-77 defines set reconciliation over `NEG-OPEN` and `NEG-MSG` frames using sequenced Merkle-tree fingerprints keyed by `(created_at, id)`, reducing sync cost to roughly `O(d log n)` versus naive ID dumps. Citrine v3.0.0 is the first Android local-relay surface to reconcile against external relays in place of bulk `REQ` pulls.

- **41:11 NIP Deep Dive: NIP-61 – Nutzaps**
  NIP-61 delivers peer-to-peer Cashu ecash as Nostr events: kind 10019 mint recommendations, kind 9321 P2PK-locked payment proofs, and kind 7375 redeemed-proof wallet records. Unlike NIP-57 Lightning zaps, nutzaps carry inline cryptographic proof and need no real-time HTLC routing. Amethyst v1.12.0 is the first dominant Android client rendering received nutzaps in the timeline.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #26</title>
      <description>Marmot v2 darkmatter draft, Chama v3.1 standalone escrow, Coracle Caravel hosting, NIP-67 EOSE finish merges, NIP-50 autocomplete and Clave NIP-44 v3.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpjxgunwdps8qunjdpd09u85arsxpcxjagg64f3n</link>
      <pubDate>Wed, 24 Jun 2026 10:36:48 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1782297408994-yxztp0piu</guid>
      <enclosure url="https://blossom.primal.net/87045768ff82a89d16e26dc0ef40c75a3975404bd2cd3ad9ebfeb53e92ddf40f.ogg" type="audio/ogg" length="14437119" />
      
      <itunes:duration>33:36</itunes:duration>
      <itunes:episode>26</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/5e697f87eb1e76bd7c8d516fc7bb537f53461960daef51667712e4bef6fd1f4a.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Marmot v2: protocol redraft, native clients, archived Flutter app**
  The marmot-protocol organization opened darkmatter for a v2 protocol draft and OpenMLS-backed CGKA engine, plus darkmatter-ios and darkmatter-android native clients. The original Flutter Whitenoise is archived as whitenoise-archive while MDK remains the deployed implementation until the draft converges. MIP-01 monolithic group data splits into versioned app components, and cgka-engine separates transport and persistence from the MLS state machine with Tamarin convergence proofs.

- **5:17 Chama v2–v3.1: standalone P2P escrow updates**
  Chama shipped seventeen releases from v2.0.0 through v3.1.0 with holder-only Shamir share encryption, arbiter substitution, global community routing, dispute-deadline arbitration, and v3.0.0 end-to-end trade notifications. v3.1.0 redraws the trade room around a Reserved → Locked → Settled spine and adds per-seller storefronts for curated swaps, loanbooks, and bills without BTCPay or Zaprite.

- **7:52 Coracle Hosting: paid relay service + open-source Caravel stack**
  Hodlbod announced Coracle Hosting on June 3, a paid community-relay service powered by open-source Caravel billing and zooid multi-relay runtime, with recurring Lightning via NWC or card, optional LiveKit and Blossom integration, and planned Flotilla deep integration for managed infrastructure.

### Releases

- **9:16 Angor v0.2.29–v0.2.30: mainnet default + funding test**
  Angor v0.2.30 flips the default network to mainnet in PR #893, with mobile create-project flow in PR #889. v0.2.29 adds a 3-user UAT funding test over 10 rounds in PR #881 and an Angor CLI and MCP server plan in PR #792.

- **10:13 Sprout v0.3.15: ephemeral channel TTL refresh + ACP slash commands**
  Sprout v0.3.15 extends ephemeral channel TTL on unarchive in PR #902, adds mobile custom emojis in PR #906, fixes multi-word display name and NIP-27 mention extraction in PR #905, and forwards slash commands to ACP connectors in PR #919.

- **11:03 Wisp v1.1.1: Spark wallet integration + nsec paste guard**
  Wisp v1.1.1 adds Spark wallet Connect UI in PR #548, a system-wide nsec1 paste guard, QR-scan login with watch-only mode in PR #552, zap messages as mini-posts in PR #559, and web-of-trust thread reply filtering in PR #583.

- **12:21 Nostria v3.1.46: notification rework**
  Nostria v3.1.46 reworks the notification counter to count only new notifications since the last view, fixing badge inflation when scrolling loads older items. v3.1.45 fixed a split-payment bug for Lightning and QR payments.

- **12:52 nospeak 1.1.3: ICE restart failover**
  nospeak v1.1.3 adds ICE restart on FAILED state for 1-on-1 voice calls, letting WebRTC renegotiate candidates after transient NAT or network changes, and keeps the Android screen on during video calls.

### Project Updates

- **13:22 Amethyst: NIP-32 / NIP-F4 / Tor track (41 PRs)**
  Amethyst merged 41 PRs without a release tag, continuing NIP-32 hashtag labeling, NIP-F4 podcast screen, music playlists, Tor self-heal, ephemeral anonymous upload signers, and onchain zaps from last week's unreleased queue.

- **13:55 Damus: relay tracking from OK messages**
  Damus merged PR #3786 adding successful OK messages to the post-relay list so relays that acknowledge without delivering events remain visible, plus Profile View fixes in PR #3796 and the v1.17 changelog in PR #3725.

- **14:21 Shopstr: NIP-34 dual-publishing**
  Shopstr announced its shopstr repo on ngit as a NIP-34 git collaboration path alongside the primary GitHub development surface, following Mostro as the second major marketplace to dual-publish.

- **14:48 Hermes-Marmot: AI agent gateway over MLS**
  hermes-marmot connects the Hermes Agent to Marmot groups via mdk-python, letting users DM an AI agent from any kind 445 MLS client including White Noise, with npub allowlist access control and NIP-59 gift-wrap unwrapping for inbound messages.

### NIP Updates

- **15:47 NIP-67 EOSE completeness hint (PR #2317) — Merged**
  PR #2317 adds NIP-67 extending EOSE with an optional `"finish"` third element so relays can signal all stored matches were delivered versus hitting an internal cap.

- **16:43 NIP-50 autocomplete extension (PR #2357) — Merged**
  PR #2357 adds `autocomplete:true/false` tokens to NIP-50 search queries so relays can switch between prefix matching for typeahead UIs and full-text scoring.

- **17:32 NIP-GART: emergency alerts + encrypted location broadcasts (PR #2374) — Open**
  PR #2374 proposes a privacy-preserving wire format for emergency alerts and location broadcasts to trusted recipient groups, hiding sender identity, membership, and payload from relay operators while keeping events replay-safe and signature-verifiable.

- **18:50 NIP-46 logout method (PR #2373) — Open**
  PR #2373 by hzrd149 adds a `logout` method to NIP-46 so clients can explicitly end bunker sessions instead of waiting for timeout.

- **19:46 NIP-95: hybrid relay P2P proposal — Open**
  A long-form NIP-95 hybrid relay-P2P specification circulated as a kind 30023 post defining WebRTC direct client connections for live messaging while relays handle stored-event retrieval and offline delivery, not yet filed as a nostr-protocol/nips pull request.

- **20:22 NIP-44 v3: Clave ports the spec (second signer) — Open**
  Clave landed an independent NIP-44 v3 port with HKDF, ECDH, padding, and v3-context-aware approval prompts with sensitivity tiers, joining Amber v6.2.0 as a second production signer before the NIPs PR merges.

### NIP Deep Dives

- **21:14 NIP deep dive: NIP-67 (EOSE Completeness Hint)**
  NIP-67 fixes silent data loss when clients use `received < limit` heuristics against cap-enforcing relays and eliminates mandatory wasted pagination round trips when a filter matches exactly the relay cap. `["EOSE", "<sub_id>", "finish"]` means complete delivery; a bare EOSE from a NIP-67-advertising relay means more events remain.

- **23:28 NIP deep dive: NIP-50 (Search + autocomplete extension)**
  NIP-50 defines the `search` filter field with relay-specific semantics. PR #2357 elevates `autocomplete:true` from relay-private dialect to spec-blessed token for prefix matching on titles and profile typeahead, with graceful fallback when relays treat the token as literal search text.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #25</title>
      <description>Amber 6.2.0 NIP-44 v3, Mostro Cashu CDK escrow, NIP-F4 podcasts merged, Amethyst NIP-32 labels, contested NIP-17 key decoupling opens bunker debate.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwp3xccrsve48ymrzwpd0f6rg6mnvd5r2vq45c35z</link>
      <pubDate>Tue, 16 Jun 2026 11:12:39 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1781608359618-zt4ksch50</guid>
      <enclosure url="https://blossom.primal.net/3c024a40fd4bce1495c37fe50233fd5644cefd5514b39532f965e6164224abf0.ogg" type="audio/ogg" length="13903282" />
      
      <itunes:duration>34:14</itunes:duration>
      <itunes:episode>25</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/f0dc42e5bdd89f25c797c3985efd4e52dd3677d3ff1c472794f7c7e77f54e910.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Intro**
  This episode follows Nostr Compass #25 across top stories, releases, in-development work, a batch of merged NIPs, and deep dives on NIP-32 and NIP-F4.

- **0:15 Amber 6.2.0 – NIP-44 v3 encryption shipped**
  Amber v6.2.0 adds NIP-44 v3 encryption with a dedicated approval screen, intent and bunker previews, history logging, auto-reject for invalid requests, and ContentProvider authority registration for downstream Android apps. NIP-46 sessions auto-accept ping on connect, and the deprecated sign_message method was removed. Amber ships v3 before the NIPs PR lands, making it the de facto reference for other clients.

- **1:15 Mostro – Cashu escrow integration via CDK**
  grunch landed eight PRs integrating Cashu P2PK multisig (NUT-10 and NUT-11) as a second settlement backend alongside Lightning on the Mostro P2P exchange. mostro-core v0.12.0 adds 2-of-3 multisig escrow types, documented in PR #756 with per-order trade keys in PR #757, an EscrowBackend trait in PR #760, CDK wrapping in PR #759, CAS escrow locks in PR #761, and a containerized mint CI job in PR #762.

### Releases

- **2:47 ngit v2.5.0 – GRASP fallback and lazy git fetches**
  ngit v2.5.0 defaults git push pr/ and ngit send to produce PR kinds when a GRASP server is registered, falls back to GRASP-06 routing on push failure, preserves unknown tags on ngit init republish, and adds lazy fetch helpers shared across ngit pr apply, checkout, and list.

- **3:57 Jumble v26.5.7 – EXIF stripping and validated zap counts**
  Jumble v26.5.7 strips EXIF location and camera metadata from image uploads, computes zap counts only from cryptographically validated receipts, and adds sender-identity verification for NIP-17 DMs.

- **5:01 nostr-calendar v1.6.0 – RSVP and duplicate participant handling**
  nostr-calendar v1.6.0 lands RSVP flow in PR #169, duplicate participant prevention in PR #168, and non-blocking publish defaults in PR #170.

- **6:23 Sprout 0.3.6 – mesh-llm and channel sections**
  Sprout v0.3.6 adds in-process mesh-llm integration in PR #798, user-defined channel sections with relay sync in PR #792 and PR #800, thread-aware notifications in PR #761, arbitrary file attachments in PR #810, and a Pulse social feed tab in PR #772.

- **7:35 NostrBotKit v0.5.0 – Marmot group chat in a Rust bot framework**
  NostrBotKit v0.5.0 adds Marmot support with automatic group invitation handling, dm_marmot and dm_marmot_npub commands, MIP-04 attachment decryption, and MLS state encrypted with a key derived from the bot private key, making it the first Rust framework with NIP-104 bot support.

- **8:42 noscrypt v0.1.14 – signed cryptography library release**
  noscrypt v0.1.14 is a security release of the C cryptography library used for secp256k1, NIP-04, and NIP-44 primitives, shipped with PGP-signed downloads verifiable against the maintainer public key.

- **9:10 Chama v1.3.0 – Nostr-native P2P escrow with Fedimint**
  Chama v1.3.0 introduces trade healing that survives session restarts and pay-rail matching for US-leaning Chamas, building on Fedimint ecash and 2-of-3 Shamir secret sharing in a serverless Nostr-native escrow client.

### Project Updates

- **10:12 Amethyst – NIP-32 hashtag labeling, podcast screen, music tracks**
  Amethyst merged 52 PRs without a release tag, including NIP-32 hashtag labeling and a label-based feed in PR #3111, a dedicated podcast screen in PR #3105, software apps feed in PR #3071, music tracks via NIP-51 in PR #3067, ephemeral anonymous upload signers in PR #3123, and Tor self-heal in PR #3053.

- **12:08 Shopstr – OpenGraph preview URL validation**
  Shopstr PR #504 validates OpenGraph preview URLs before rendering in marketplace listings, closing an XSS surface where malicious sellers could inject scripted content via crafted OG metadata.

### NIP Updates

- **12:47 NIP-F4 (Podcasts) merged after two years – Merged**
  PR #1093 merged May 28 after 27 months, defining kind 54 podcast episodes with imeta audio metadata, kind 10154 podcast metadata, kind 10164 author counter-claims, and kind 10054 favorite-podcast lists, with RSS kept as the distribution layer and Nostr as the social layer.

- **14:09 NIP-17 key decoupling (PR #2361) – Open**
  PR #2361 proposes separating identity and encryption keys in NIP-17 via kind 10044 encryption key advertisements and an n tag on seals. Cody Tseng supports it for bunker UX; Vitor Pamplona argues it breaks interop and that Marmot key packages already solve the problem.

- **17:18 NIP-Silent Payments payment flow (PR #2362) – Open**
  PR #2362 defines kind 8352 silent payment receipt notifications via NIP-59 gift wrap and kind 10353 encrypted UTXO cache for cross-device Silent Payments wallet sync, companion to PR #2355.

- **19:03 NIP-PIP Perfect IP Packets (PR #2364) – Open**
  PR #2364 proposes addressable kinds 39078 (manifest), 39079 (slices), and 39080 (repair requests) for a packet-tree transport breaking large files into reconcilable slices.

- **20:01 NIP-29 audio/video live spaces (PR #2238) – Merged**
  PR #2238 extends NIP-29 relay-based groups with audio and video live-space support, anchoring NIP-53 live activity in group context.

- **20:26 NIP-71 video multiple audio tracks (PR #2255) – Merged**
  PR #2255 adds audio-track NIP-92 imeta tags to NIP-71 video events for multi-language tracks, audio-only streaming, and resolution switching with stable audio.

- **21:13 NIP-59 ephemeral gift wrap (PR #2245) – Merged**
  PR #2245 adds kind 21059 as an ephemeral NIP-59 gift wrap counterpart to kind 1059, letting relays drop typing indicators and presence pings after broadcast.

- **21:56 NIP-78 application-specific kind (PR #2292) – Merged**
  PR #2292 reclassifies NIP-78 application-specific data as a normal addressable kind, aligning replaceability with other application-state NIPs.

- **22:20 NIP-85 clarifications (PR #2304) – Merged**
  PR #2304 clarifies multiple keys and relays per service provider in NIP-85 Trusted Assertions, covering operator key rotation paths.

- **22:40 NIP-01 relay connection management one-liner (PR #2307) – Merged**
  PR #2307 adds a single sentence to NIP-01 on relay connection lifetimes, addressing silent message loss when clients differ on idle WebSocket handling.

- **23:08 NIP-C7 kind 9 chat constraint (PR #2310) – Merged**
  PR #2310 restricts NIP-C7 chat views to kind 9 messages only, separating ephemeral chat from kind 1 timeline posts.

- **23:26 NIP-55 simplification (PR #2363) – Open**
  PR #2363 simplifies the NIP-55 Android signer application spec, paving the way for Amber v6.2.0 ContentProvider authority registration.

- **23:42 NIP-44 v3 – Amber implementation ahead of spec – Open**
  Amber v6.2.0 ships NIP-44 v3 with version byte 0x03, dedicated approval UI, auto-reject, and per-direction history logging before the NIPs-repo spec PR merges, making v3 an Amber-specific extension until protocol consensus catches up.

### NIP Deep Dives

- **24:31 NIP deep dive: NIP-32 (Labeling)**
  NIP-32 defines kind 1985 label events with L namespace and l label tags targeting events, pubkeys, relays, URLs, or topics. Labels are assertions, not protocol truth: clients choose which labelers and namespaces to honor. Amethyst PR #3111 deploys hashtag discovery via trusted labelers, replacing brittle #tag text matching while keeping text fallback for unlabeled notes.

- **28:16 NIP deep dive: NIP-F4 (Podcasts)**
  NIP-F4 treats each podcast as its own Nostr keypair with kind 10154 metadata, kind 10164 author counter-claims, kind 54 episodes, and kind 10054 favorite lists. The merge settled on RSS as distribution layer and Nostr as social layer after 27 months of debate. Open items include a kind 10164 example typo, episode discovery without RSS GUID bridging, and stub fields on kind 54 audio tags.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #24</title>
      <description>Amethyst v1.11.0 calendars, Vector v0.4.0 Tor MCP rewrite, MDK NIP-40, Formstr calendar NIPs, Cordn MLS, Six Years of Nostr Mays recalled.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwp3x5erjwfexvunyvpd0gm85dmcx9jnqdcpup08w</link>
      <pubDate>Mon, 15 Jun 2026 13:26:33 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1781529993920-z6z7x1e07</guid>
      <enclosure url="https://blossom.primal.net/d948355a4fdf8ab73713c3e7bc257c7fd98401bebab3ebeb58224d9eabc04cc2.ogg" type="audio/ogg" length="18862188" />
      
      <itunes:duration>36:26</itunes:duration>
      <itunes:episode>24</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/a2c89899059c24beb8de841d59f278c9d5886a19d5c084aac3250242dbfd256f.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:25 Amethyst v1.11.0: calendars, on-chain zap splits, and Marmot replies**
  Amethyst v1.11.0 adds NIP-52 calendar UI and reminders in PR #2994, on-chain Bitcoin zap splits in PR #3018, paginated on-chain zap history in PR #2974, Marmot group reply support in PR #2995, hardened NIP-57 receipt validation in PR #2984, and NIP-92 floating-point imeta dimensions in PR #2968, plus Payment Targets support.

- **2:33 White Noise v2026.5.22: iOS push, block UX, and add members**
  White Noise v2026.5.22 ships iOS push through a Notification Service Extension that decrypts MLS ciphertext in PR #673, block and unblock UX in PR #676, an Add members button in PR #679, iOS notification settings in PR #688, and share-via-long-press in PR #687.

- **3:58 MDK adds NIP-40 disappearing messages across platforms**
  MDK merged PR #306 exposing NIP-40 expiration validation through UniFFI for shared iOS and Android behavior, with welcome failure reason hardening in PR #307.

- **4:53 Mostro v0.17.4: Phase 3 closes the slashed-bond loop**
  Mostro v0.17.4 lands slashed-bond payouts to dispute winners in PR #738, Phase 3.5 payout confirmation in PR #743, legacy dispute finalization in PR #746, Yadio null-rate tolerance in PR #748, and multi-source price provider groundwork in PR #745, with mobile claim path in PR #596.

- **5:39 Applesauce v6.1.0: lookup relays and NIP-34 git casts**
  Applesauce v6.1.0 adds NIP-51 kind 10086 lookup relay lists with User.lookupRelays$, NIP-34 git-cast factories for repo announcements, patches, and issues, and offline relay fixes in PR #73.

- **7:45 Notedeck merges NIP-77 negentropy for giftwraps and thread backfill**
  Notedeck merged PR #1459 wiring NIP-77 negentropy into the shared outbox path for giftwrap reconciliation and uncapped thread backfill, with separate live and negentropy filters and Dave PNS migrated to the shared implementation.

- **8:41 Vector v0.4.0: vector-core rewrite, Tor, NIP-46, full-negentropy MLS, and an MCP agent surface**
  Vector v0.4.0 rewrites all logic into shared vector-core with 440+ tests, one-click Tor with bridges, multi-account support, NIP-46 bunker login, delete-for-everyone in NIP-17 DMs and Marmot groups, full-negentropy MLS sync, Blossom multi-server failover, custom emoji packs, and vector-agent, a 21-tool MCP server for AI-driven messaging.

- **10:29 Cordn surfaces as a coordinator-mediated MLS messenger**
  Cordn (repos at Cordn-msg/cordn and Cordn-msg/cordn-web) is a new MLS messenger using a per-group ContextVM coordinator to order commits and distribute welcomes, trading Marmot's relay-agnostic model for tighter epoch ordering and simpler concurrent-commit resolution while keeping member pubkeys opaque to the coordinator.

- **11:36 deepmarks: NIP-B0 bookmarks with curator-monetized publishing**
  deepmarks-public is a reference client for proposed NIP-B0 kind 39701 bookmarks with curator, indexer, and viewer services, funded by direct-to-curator NIP-57 zaps and a 21,000-sat lifetime tier that converts paying readers into recurring zap recipients.

- **25:38 Six Years of Nostr Mays**
  Nostr Compass #24 closes May with a retrospective from 2021's single NIP-02 contact-list commit through 2022's NIPs repo formation, 2023's 64-NIP explosion and OpenSats funding, 2024's consolidation cycle, 2025's NIP-77 merge and Notedeck Beta, and 2026's MLS-on-Nostr production wave across MDK, White Noise, Scramble, Cordn, and Formstr calendar NIPs.

### Releases

- **12:15 Amber v6.1.0 GA: encrypted per-account backup**
  Amber v6.1.0 GA ships encrypted backup and restore for the permission database in PR #444 and per-account backup splits in PR #446, including last week's PSBT signing work.

- **12:41 Citrine: per-relay subscriptions and onion-URL leak prevention**
  Citrine merged per-relay tagged subscriptions in PR #157 and onion URL filtering when Tor is disabled in PR #162.

- **13:44 Angor v0.2.27 and v0.2.28: relay reliability and Boltz reconnect**
  Angor v0.2.27 and v0.2.28 fix a relay-dedup regression limiting connections to one relay in PR #874 and add WebSocket reconnect for Boltz submarine-swap monitoring in PR #876.

- **14:12 Nostrord v1.1.0: NIP-57 zaps and NIP-29 role distinction**
  Nostrord v1.1.0 adds NIP-57 Lightning zaps in PR #98 and separates NIP-29 role changes from member adds in PR #92.

- **14:27 ぬるぬる v1.5.x: SQLCipher MLS keystore and epoch catch-up**
  ぬるぬる (Nurunuru) shipped five releases with SQLCipher MLS keystore encryption in PR #184, platform extensions in PR #187 and PR #188, and MLS peer-epoch catch-up with replay cache in PR #189 and PR #191.

### Project Updates

- **14:49 Jumble opens Pomegranate-based Google login via threshold signing**
  Jumble opened PR #797 for Google login via the Pomegranate threshold signer, splitting a Nostr key across multiple parties so no single signer holds the full secret.

- **16:03 Shopstr opens MCP server infrastructure**
  Shopstr opened MCP server initialization in PR #492, supporting infrastructure in PR #494, and MCP relay allowlisting in PR #472, making it the first Nostr marketplace with a structured agent tool surface.

- **16:55 Keydex migrates custom kinds and hardens share encryption**
  Keydex opened kind migration from 1337-1345 to 713-721 in PR #226, AEAD over Shamir shares in PR #239, and GF256 arithmetic migration in PR #234.

- **17:20 Mill ships as a drop-in Nostr signer UI component**
  Mill (nostr-mill) from OceanSlim ships as a single-script-tag Web Component covering NIP-07, NIP-46, NIP-55, encrypted nsec, read-only npub, and in-browser keygen behind one unified UI at npm v1.5.0.

- **17:47 moStard v1.0.1 adds Zapstore apps, polls, and NIP-A3 tipping**
  moStard v1.0.1 adds Zapstore kind 32267 app embed cards, kind 20/21 polls, NIP-A3 Payment Targets tipping with per-method QR codes, markdown rendering, GIF picker support, and Amber signer pairing fixes on the Applesauce stack.

### NIP Updates

- **18:29 Calendar NIP stack: four proposals from the Formstr team — Open**
  Ix2 opened PR #2350 for kind 84 participant self-removal, PR #2351 for NIP-52E private calendar events and NIP-52R recurrence with view-key encryption, and PR #2352 for decentralized appointment scheduling, all with a live reference at calendar.formstr.app.

- **23:40 Payment Targets and Silent Payments — Open**
  A Payment Targets proposal (NIP-A3 / payto) defines replaceable kind 10133 events with payto tags mapping to RFC 8905 URIs across bitcoin, lightning, ethereum, monero, and other rails, with Amethyst implementing via PR #2953, PR #3009, and PR #3011. Two competing BIP-352 Silent Payments proposals circulated, with erskingardner flagging that deriving scan keys from nsec lets any scanning service recover the full private key.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #23</title>
      <description>Primal 3.5 Android rebuild, Amethyst v1.10.0 onchain zaps, Hostr P2P rentals, White Noise markdown, AgentNoise Marmot control, NIP-07 and NIP-39 dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwwpsxy6rqdekx5mnydfdw35nqemn0pukgaqh44zr7</link>
      <pubDate>Sat, 30 May 2026 11:32:45 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1780140765725-ti0gsxydt</guid>
      <enclosure url="https://blossom.primal.net/e15e96dd99ff78e8fe62e6a98de512b09a1434940ddd9836ceb5e4ee3dc4a4e6.ogg" type="audio/ogg" length="17838661" />
      
      <itunes:duration>39:40</itunes:duration>
      <itunes:episode>23</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/ca67d76f80767dbb5b86300f46f3746679901299dbf496a9fd4902b2405d4fb3.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  This episode follows Nostr Compass #23 across top stories, shipping releases, in-development work, protocol proposals, and deep dives on NIP-07 and NIP-39.

- **00:15 Primal 3.5 for Android**
  Primal shipped 3.5.9 with a rebuilt application shell, a dedicated Explore screen, inline audio playback for link previews, inline NIP-05 verification badges, notification filtering overhaul, and editor and database stability fixes.

- **01:21 White Noise: markdown, deep links, and audio metadata**
  White Noise added markdown rendering in PR #665, leave-group flow fixes in PR #675, and whitenoise:// deep links in PR #661. Backend work in whitenoise-rs PR #835 and PR #833 covers kind 30443 key package rotation and audio metadata, with MDK PR #300 and Marmot spec PR #68 security fixes.

- **03:43 Amethyst v1.10.0: Onchain Bitcoin Zaps**
  Amethyst v1.10.0 adds NIP-BC onchain Bitcoin zaps for send, receive, and display, with onchain zapper UI in PR #2977 and transaction history work in PR #2974. Earlier releases fixed Blossom blob detection and desktop ProGuard rules.

- **05:37 AgentNoise: control coding agents over White Noise**
  AgentNoise v0.1.24 is a Rust desktop helper that uses White Noise chats as a control surface for local Codex and Claude coding sessions, driving wn and wnd from whitenoise-rs with PIN-gated sender authentication.

- **07:29 Keycast security audit complete**
  Keycast completed a May 2026 security audit documented in AUDIT.md, tightening NIP-98 auth validation, ALLOWED_PUBKEYS enforcement, default-deny empty policies, SQLite foreign keys, and nested route protection.

- **09:02 Scramble: Marmot client for desktop and Android**
  Scramble (formerly OpenChat) shipped 13 releases with multi-device Marmot support via unique kind 30443 KeyPackage slots, admin-gated auto-add, forward-secrecy disclosure for newly linked devices, and external signer reconnect fixes for NIP-46 and Amber users.

- **10:39 Hostr: P2P rental accommodation on Nostr**
  Hostr is a peer-to-peer rental platform on Nostr covering listings, reservation negotiation, and EVM escrow settlement through four in-development NIPs extending NIP-99 listings, kind 32122 reservations, kind 30303 escrow advertisements, and marketplace profile tags, with app store submission prep and MCP client identity support this week.

### Releases

- **13:10 ngit v2.4.4**
  ngit v2.4.4 adds `ngit sync --trust-server` for cases where a git server is fast-forward ahead of Nostr state, with optional `nostr.trust-server-domains` allowlist configuration.

- **13:52 Amber v6.1.0-pre3 adds PSBT signing**
  Amber v6.1.0-pre3 adds PSBT signing through Intent and NIP-46 paths in PR #438, plus connect-flow layout fixes and permissions select/deselect-all support.

- **14:36 Wisp v1.1.0 ships private replies and drops Amber support**
  Wisp v1.1.0 adds private replies via NIP-17 in PR #540, gift-wrapped reactions and DIP-03 zaps in PR #543, and auto-translate in PR #523, while removing NIP-55 signer support in PR #531.

- **15:26 Calendar by Formstr v1.5.4 fixes gift wrap for new participants**
  Calendar by Formstr v1.5.4 fixes missing gift wrap delivery when adding participants in PR #160, with decryption error handling in PR #156 and timezone drift fixes in PR #138.

- **16:17 Applesauce v6.1.0 adds NIP-34 git casts and NIP-51 lookup relays**
  Applesauce v6.1.0 adds NIP-34 git repository casts, NIP-51 kind 10086 lookup relay lists, replaceable address helpers, and offline relay fixes in PR #73.

- **17:11 Sprout v0.0.16 ships Sprig binary and huddle protocol v2**
  Sprout v0.0.16 ships the Sprig all-in-one binary in PR #605, huddle voice protocol v2 for up to 10 peers in PR #609, and a `--no-memory` harness flag in PR #611.

- **17:48 Nostrord v1.0.3 adds OS keychain and multi-account**
  Nostrord v1.0.3 hardens local key storage with OS keychain and passphrase fallback, adds multi-account support, and ships a tappable bunker QR code for Android signer apps.

- **18:15 Angor migrates to NIP-44 and ships security hardening**
  Angor shipped v0.2.24 through v0.2.26 with NIP-44 migration in PR #860, Blossom uploads without wallet selection in PR #861, and security hardening across PR #854, PR #856, and PR #851.

- **19:07 Alby js-sdk v8.0 ships NWC multi-relay reconnect**
  Alby js-sdk v8.0.1 through v8.0.3 adds native NWC multi-relay reconnect in PR #516, injectable logging in PR #542, and drops the WebSocket polyfill for Node.js 22+.

- **19:55 KeyChat v1.41.1 fixes forward secrecy**
  KeyChat v1.41.1+6513 deletes Signal one-time prekeys immediately after successful decryption, adds URL preview for single-link messages, centralizes media auto-download under a 20 MB threshold, and refreshes NIP-11 relay info on cold start.

### Project Updates

- **24:39 Citrine implements NIP-70 enforcement and signer-based AUTH**
  Citrine merged NIP-70 repost blocking in PR #151, connection address display in PR #149, and NIP-42 AUTH via external signer in PR #141.

- **25:20 Mostro reaches Phase 2 of its anti-abuse bond rollout**
  Mostro Phase 2 lands solver-directed bond slash logic in PR #737, building on Phase 1.5 PayBondInvoice and WaitingTakerBond work in PR #736 and mobile UX in PR #592.

- **25:43 Damus restores relay signal indicator and reconnect behavior**
  Damus merged relay signal indicator restoration in PR #3773 and reconnect fixes after initial connection failure in PR #3775.

- **25:55 rust-nostr adds event finalization traits and NIP-46 race fix**
  rust-nostr added event finalization traits in PR #1358 and fixed a NIP-46 subscribe-before-connect race in PR #1363.

- **26:30 dart-nostr adds Namecoin .bit relay resolver and TLSA pin records**
  dart-nostr merged PR #44 adding .bit relay resolution and TLSA pin records for wss://example.bit/ WebSocket URLs.

- **26:44 Dart NDK adds NIP-77, web signer support, and NIP-17 DM relay lookup**
  Dart NDK merged NIP-77 in PR #464, web signer support in PR #602 and PR #601, kind 10050 DM relay lookup in PR #608, and NIP-46 field preservation in PR #600.

- **27:19 Pages by Form tightens encrypted attachment and document flows\***
  Pages by Form\* merged PR #37 inlining encrypted Blossom attachments in DOCX, HTML, and PDF exports, plus local search in PR #39 and shared backup fixes in PR #40.

- **29:27 Zap Cooking begins a feed overhaul with NIP-92 imeta parsing**
  Zap Cooking merged PR #396 introducing NIP-92 imeta parsing and a canonical blurhash decoder as the first phase of a feed overhaul.

- **29:47 Nurunuru v1.5.0 syncs Native and Web**
  Nurunuru merged PR #176 syncing Native and Web builds with birthday notifications, mutual-follow zap detection, custom emoji reaction UX, and recommendation engine filtering improvements.

### NIP Updates

- **30:57 PR #2251 tightens the NIP-70 protected events spec — Open**
  PR #2251 clarifies that relays must reject reposts embedding full content from NIP-70 protected events, closing ambiguity in the original spec.

- **31:36 PR #1653 proposes a Drafts NIP for private synced drafts — Open**
  PR #1653 proposes replaceable draft events with draft status and NIP-44 self-encryption so works in progress sync across devices without public visibility.

- **32:04 Snapshots (PR #2279) proposes immutable snapshots for replaceable events — Open**
  PR #2279 proposes immutable snapshot events preserving exact replaceable event versions with an `a` tag link back to the addressable coordinate.

- **33:08 Namecoin NIP-05 wave — Open**
  A coordinated .bit NIP-05 push landed open-source PRs against Aegis (#14), nostter (#2128), and dart-nostr (#44), alongside upstream NIP draft PR #2349. The Aegis PR places verification on the producer side, checking the Namecoin chain before signing kind 0 events that claim a .bit identity.

### NIP Deep Dives

- **33:38 NIP Deep Dive: NIP-07 (window.nostr for Web Browsers)**
  NIP-07 defines `window.nostr.getPublicKey()` and `window.nostr.signEvent()` so browser extensions sign events without exposing nsecs to pages, with optional NIP-04 and NIP-44 encrypt/decrypt methods. Keycast uses NIP-07 for NIP-98 HTTP auth, and extensions like Alby, nos2x, Flamingo, and horse implement the interface.

- **36:10 NIP Deep Dive: NIP-39 (external identities in profiles)**
  NIP-39 defines kind 10011 events with `i` tags asserting external platform identities using verifiable proofs such as GitHub Gists, tweets, or Mastodon posts. Clients fetch public artifacts independently to confirm ownership, providing a relay-agnostic cross-reference layer complementary to this week's Namecoin .bit NIP-05 work.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #22</title>
      <description>Nostr VPN v4.0.10 BoringSSL throughput jump, Marmot completes user blocking, Grain v0.6.0 four NIPs land, with NIP-78 and NIP-98 deep dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdeexyerjd3cxgenxvedv368wvnyva6njeqytlz84</link>
      <pubDate>Mon, 18 May 2026 18:41:22 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1779129682333-dtw2dgu9d</guid>
      <enclosure url="https://blossom.primal.net/05bb76bac48d16cbf27b8afda60bec63ace8e0aa922492b5d7894d3662b49641.ogg" type="audio/ogg" length="29718175" />
      
      <itunes:duration>58:04</itunes:duration>
      <itunes:episode>22</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/e452fe620cda707b5af4287867be417bb63e0bde5467c75e371a2e1be08d05f3.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Intro**
  This episode follows Nostr Compass #22 across top stories, shipping releases, in-development work, five new NIP proposals, and deep dives on NIP-78 and NIP-98.

- **0:20 Nostr VPN v4.0.10 — eight releases, full FIPS migration**
  Nostr VPN shipped v4.0.1 through v4.0.10, with v4.0.8 swapping AEAD to BoringSSL ChaCha20-Poly1305 in ring 0.17 for roughly 2x TCP throughput. The week also rebuilt device pairing in v4.0.1, improved LAN discovery in v4.0.2, fixed NAT traversal in v4.0.6, added sendmmsg batching in v4.0.9, and overhauled pairing UX in v4.0.10.

- **3:18 Marmot / White Noise — user blocking, video attachments, 31 MDK PRs**
  White Noise v2026.5.7+24 completes Marmot user blocking across invites, timelines, search, and notifications, with video attachments and offline notice coverage. Supporting work spans 31 merged PRs including MDK PR #258 and frontend fixes in PR #653, PR #644, and PR #635.

- **5:31 Grain v0.6.0 — NIP-40, NIP-50, NIP-70, NIP-45**
  Grain v0.6.0 adds NIP-40 expiration, NIP-50 search, NIP-70 protected events, and NIP-45 count queries, plus safer defaults and improved backpressure handling.

### Releases

- **7:33 Citrine v3.0.0-pre1 — built-in Tor, relay aggregation, Negentropy**
  Citrine v3.0.0-pre1 adds built-in Tor, relay aggregation, and NIP-77 Negentropy sync in PR #139, with Tor URL routing in PR #137 and battery improvements in PR #132.

- **11:51 Amber v6.1.0-pre2 — new-app connection flow improvements**
  Amber v6.1.0-pre2 fixes bunker dialog lifecycle, invalid-request handling, intent rate limiting, and signing hot-path leaks in PR #430.

- **13:38 Alby Hub v1.22.2 — AI & Agents page, Core Lightning support**
  Alby Hub v1.22.2 adds an AI and Agents page for MCP-compatible tools, on-chain wallet mode, transaction label improvements, settings redesign, and Core Lightning backend support alongside LND and LDK.

- **14:54 Mostro — concurrent taker bonds, mostro-core v0.11.0**
  Mostro merged concurrent taker bonds in PR #733 with spec alignment in PR #735. mostro-core v0.11.0 adds bond actions and statuses in PR #144 and PR #143, with mostro-cli v0.15.0 following.

- **16:29 Jumble — five releases, grouped notifications, Mac support**
  Jumble shipped v26.5.2 through v26.5.6 with grouped notifications, macOS zip auto-update support, emoji picker, recent search, and account persistence fixes after moving to a stable app:// origin.

- **17:42 Nostrord — NIP-29 group share, media upload, Arch Linux packages**
  Nostrord shipped v1.0.0 through v1.0.2 with Arch packages in PR #44, media paste in PR #46, and NIP-29 group sharing in PR #49.

- **19:37 FIPS v0.3.0 — cross-platform, Nostr peer discovery, LAN gateway**
  FIPS v0.3.0 adds Nostr-mediated peer discovery with STUN-assisted NAT traversal via kind 37195 adverts and NIP-59 signaling, plus a fips-gateway binary for unmodified LAN hosts and the same BoringSSL throughput improvements contributed from Nostr VPN.

- **23:58 Camelus v1.10.1 — desktop builds for Windows & Linux**
  Camelus v1.10.1 adds Windows and Linux desktop builds beyond its Android distribution.

- **24:36 Flotilla v1.8.0 — video calls, email rendering, room mentions**
  Flotilla 1.8.0 adds video calls in voice rooms, HTML email rendering via welshman updates, room mentions, expanded space search, native invite sharing, and always-visible calendar event dates in NIP-29 rooms.

- **26:27 Calendar by Formstr v1.5.1 — appointment scheduling, Android sync**
  Calendar by Formstr shipped v1.5.0 and v1.5.1 with appointment scheduling in PR #89, Android calendar sync in PR #123, notifications in PR #130, and relay publish feedback in PR #118.

### Project Updates

- **29:57 Amethyst — scheduled posts, NIP-9A community rules, desktop local relay**
  Amethyst merged 78 PRs including scheduled posts in PR #2765, embedded desktop relay support in PR #2841, and first client-side NIP-9A enforcement in PR #2798 through PR #2800. Security and media updates include log redaction in PR #2812 and NIP-92 HLS publishing in PR #2821.

- **33:57 Shopstr — MCP audit logging, session security**
  Shopstr added MCP audit logging in PR #456, session pinning and TTL eviction in PR #477, and reserved slug protections in PR #476.

- **34:48 Dart NDK — web support, seal signature verification**
  Dart NDK added web cache persistence in PR #571, NIP-59 seal verification in PR #595, and public tag parsing fixes in PR #597.

- **35:23 rust-nostr — tag refactor, proxy connection rework**
  rust-nostr merged tag normalization in PR #1347, Proxy connection rework in PR #1351, and multi-filter subscription verification fixes in PR #1349.

- **35:58 Sprout v0.0.10 & v0.0.11**
  Sprout shipped v0.0.10 and v0.0.11 with mention autocomplete, image download support, and agent error-handling fixes.

- **36:17 Clave — multi-account NostrConnect rollout**
  Clave promoted Connect to a top-level tab in PR #52 and fixed a per-account bunker connection-cap bypass with three-layer enforcement.

- **38:15 Tamagostrich — NIP-78 Tamagotchi with sats rewards**
  Tamagostrich is a browser pet game where state syncs via NIP-78 kind 30078 events and milestone rewards pay out through NIP-47 to the user’s lud16 address.

### NIP Updates

- **40:35 NIPs: PR #2331 — NIP-9A Verifiable Community Rules — Open**
  PR #2331 proposes NIP-9A kind 34551 machine-readable community rules with client-side pre-send validation, complementing NIP-72 community definitions.

- **42:55 NIPs: PR #2335 — Reservation Events for Nostr Marketplaces — Open**
  PR #2335 defines kind 32122 reservations, kind 1326 transition audits, and kind 32124 reviews, with private negotiation over NIP-59 gift wraps.

- **45:19 NIPs: PR #2334 — Escrow Services for Nostr Marketplaces — Open**
  PR #2334 proposes kind 30303 escrow service advertisements and kind 17388 trusted-provider declarations for EVM-settled marketplace flows.

- **46:56 NIPs: PR #2333 — Accommodation Listings for NIP-99 — Open**
  PR #2333 extends NIP-99 listings with H3 geospatial tags and accommodation-specific profile fields for short-term rentals.

- **48:00 NIPs: PR #2332 — NIP-BC Onchain Zaps (kind 8333) — Open**
  PR #2332 proposes kind 8333 onchain zap receipts using Taproot addresses derived from Nostr pubkeys, with optional inline SPV proof tags and signPsbt extensions for NIP-07 and NIP-46.

### NIP Deep Dives

- **51:24 NIP Deep Dive: NIP-78 (App-Specific Data)**
  NIP-78 standardizes kind 30078 parameterized replaceable events where a `d` tag scopes application-specific JSON or text for cross-device sync. Public data can remain plaintext while private payloads use NIP-44 or NIP-04 encryption, and apps avoid collisions by prefixing `d` tags with application names. Production users include Tamagostrich, Wisp, NosPress, and multiple client settings sync implementations.

- **53:32 NIP Deep Dive: NIP-98 (HTTP Auth)**
  NIP-98 defines kind 27235 signed HTTP auth events sent as `Authorization: Nostr` headers, binding method, URL, and optional body hash for replay-resistant API access without passwords. Servers authenticate any pubkey holder without prior registration, and the pattern is used in Blossom BUD-01, Routstr, Sprout, Clave, Alby Hub, and Nostr.build uploads.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #21</title>
      <description>MDK 0.8.0 MIP-05 notifications, LaWallet NWC v0.10.0 full wallet, Amethyst Nests JWT fixes, ngit GRASP fixes, NIP-53 and NIP-34 git dives.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdec8q6rqwpnxsunqdfdd4jx7ut5wvekwmc46xsx7</link>
      <pubDate>Fri, 15 May 2026 10:27:14 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1778840834905-mdoqts3go</guid>
      <enclosure url="https://blossom.primal.net/e999a8cdaa262cc1ad9c762c4c7d19e581b4f30132c6663a00d062e510e4c6be.ogg" type="audio/ogg" length="41575979" />
      
      <itunes:duration>01:21:23</itunes:duration>
      <itunes:episode>21</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/4404dd629d8b3e60171f5f7c6d9fcc9f1ac612d3b21ea66879fcd51675e58e32.png" />
      
      
      <content:encoded><![CDATA[### News

- **0:00 Intro**
  This episode follows Nostr Compass #21 across lead stories, tagged releases, unreleased changes, new projects, protocol drafts, and two NIP deep dives.

- **0:18 MDK 0.8.0 — MIP-05 notification primitives & addressable key packages**
  MDK v0.8.0 ships first MIP-05 notification primitives in PR #235, addressable NIP-51 key packages, mixed-version compatibility, and validation hardening across admin actions, commits, storage, and replay handling.

- **2:50 LaWallet NWC v0.10.0 — full monorepo & end-user Wallet**
  LaWallet NWC v0.10.0 ships the full monorepo with admin dashboard, end-user Wallet, Activity Log, and a LightningAddress 1→N plus NWCConnection schema for per-address NIP-47 routing in PR #191 through PR #196.

- **3:44 Amethyst — Nests keep-alive, JWT resilience & lifecycle subscriptions**
  Amethyst stabilizes NIP-53 Nests with JWT overlap in PR #2733, relay keep-alive in PR #2730, lifecycle-aware subscriptions in PR #2728, and speaking-participant UI in PR #2724.

- **5:35 ngit v2.4.2 & v2.4.3 — GRASP server detection & multi-remote state events**
  ngit shipped v2.4.2 and v2.4.3, fixing GRASP server detection for NIP-34 PR submissions and filtering multi-remote state events to the correct maintainer set.

- **15:29 GRAIN v0.5.4 — production hardening & silent data loss fix**
  GRAIN v0.5.4 fixes a silent Docker quick-start data-loss bug, addressable read correctness after restart, connection-tracking issues from the v0.5.x lockup chain, and adds per-IP rate limiting plus IP blacklist controls.

- **16:10 Mostro Core v0.10.1 — PGP-signed release artifacts**
  Mostro Core v0.10.1 adds PGP-signed release artifacts and a verify-release flow following v0.10.0 NIP-59 gift-wrap module work.

### Releases

- **17:13 Clave v0.2.0 — multi-account iOS with NIP-46 (Nostr Connect) signing**
  Clave v0.2.0 adds up to four isolated accounts on iOS with per-account APNs routing in PR #22, activity audit links in PR #19, and cold-start delivery fixes in PR #16.

- **25:03 Wisp v1.0.3 → v1.0.5 — stability work**
  Wisp shipped v1.0.3 through v1.0.5 with Thumbhash previews in PR #506, tab-switch performance in PR #514, and stale back-stack fixes in PR #516.

- **25:50 Amber 6.1.0-pre1 — layout & stability fixes**
  Amber v6.1.0-pre1 improves connect-app layout in PR #416, notification handling in PR #412, and signer activity lifecycle in PR #411.

- **27:07 Routstr Core v0.4.3 — payment, refund & usage reporting**
  Routstr Core v0.4.3 improves payment and refund handling, cost tracking, usage reporting, and fixes around API key display, message handling, and model validation.

- **31:34 Nostria v3.1.37 → v3.1.41 — Web Bookmarks & Auto theme**
  Nostria shipped v3.1.37 through v3.1.41 with NIP-B0 (Web Bookmarks) support, Auto theme, in-app PDF viewing, and editor and media-player polish.

- **34:06 NoorNote v0.8.9 — desktop first-launch empty screen fix**
  NoorNote v0.8.9 fixes an empty welcome and login screen on first desktop launch.

- **34:16 Kubo v0.3.4 → v0.4.1 — child-safe Nostr video platform with parent controls & WoT feed curation**
  Kubo shipped v0.3.4 through v0.4.1 as a Ditto-based child-safe video platform with parent time controls, trust levels, NIP-72 community curation, and NIP-66 relay discovery at kubo.watch.

### Project Updates

- **35:47 Sprout Desktop v0.0.4 & v0.0.5 — NIP-0A agent auth & pair-relay sidecar**
  Sprout shipped Desktop v0.0.4 and v0.0.5 with NIP-OA agent auth in PR #471, unified membership enforcement in PR #490, and NIP-AB pair-relay sidecar support in PR #467 and PR #470.

- **44:02 nostream — Marmot relay support & NIP-25 reactions**
  nostream merged Marmot relay support in PR #602, NIP-25 reactions in PR #589, geohash prefix matching in PR #586, and subscription limit hardening in PR #600.

- **45:25 strfry — per-connection observability & reduced nofiles ceiling**
  strfry merged per-connection observability in PR #218, monitor fanout performance work in PR #224, Prometheus counter fixes in PR #225, and operational hygiene updates in PR #235.

- **46:00 Damus — Purple GIF proxy & compaction UX**
  Damus replaced Tenor GIF access with a Damus Purple proxy in PR #3737 and improved large-database compaction UX in PR #3733 and PR #3732.

- **46:41 Primal Android — Explore, alerts & NIP-05 verified badge**
  Primal Android merged Explore landing in PR #1041, alerts filters in PR #1045, and NIP-05 badge flicker fixes in PR #1043.

- **47:08 Alby Hub — NWC payments from app connections**
  Alby Hub merged app-connection payments in PR #2267 and simplified onchain receive routing in PR #2268 on its NIP-47 surface.

- **47:28 routstrd-auth — Dockerized Routstrd for teams with NIP-98 auth & npub RBAC**
  routstrd-auth adds npub RBAC roles, NIP-98 HTTP auth, SQLite-backed /usage reporting, and Dockerized team deployment paths for shared Routstrd operation.

- **50:00 Routstrd — Hermes integration & remote mode**
  Routstrd integrated Hermes Agent provider discovery in PR #22, added remote mode in PR #20, and tightened client registration rules in PR #16.

- **50:52 diVine — NIP-07 web sign-in & 16-locale key parity**
  diVine added NIP-07 web sign-in in PR #3994, full 16-locale key parity in PR #3992, and notification grouping improvements in PR #3944.

- **51:37 OpenChat — 18 iterative UI improvements**
  OpenChat shipped iterative UI updates across releases v0.6.50 through v0.6.55.

- **51:53 whitenoise-rs — per-account database isolation & proposal upgrades**
  whitenoise-rs moved message and membership tables into per-account databases in PR #796 and PR #792, with proposal upgrades in PR #791.

- **54:09 whitenoise Flutter — leave-group, terminology consistency & Fastlane scaffolding**
  whitenoise added leave-group UI in PR #604, Follow and Unfollow terminology consistency in PR #595, and Fastlane release scaffolding in PR #601.

- **56:17 Angor 0.2.21 — compact app flows & key provider / network-switch hardening**
  Angor 0.2.21 ships compact mobile flows in PR #819, secure key provider support in PR #804, and network-switch cache resets in PR #806.

- **57:11 Keydex — data layer, recovery flow & steward owner-name display**
  Keydex merged data-layer refactor planning in PR #126, recovery-flow black-screen fixes in PR #122, and steward owner-name display corrections in PR #121.

- **58:23 BitMacro Signer — self-hostable NIP-46 bunker with client-side key encryption**
  BitMacro Signer is a self-hostable NIP-46 bunker with client-side key encryption before server storage.

- **58:52 gnostr — git implementation built on Nostr**
  gnostr is a Nostr-native git implementation with its own working-tree commands, distinct from git-remote-nostr.

- **59:40 nostr-archive — content-addressed archive spec on Nostr & Blossom**
  nostr-archive drafts a content-addressed archive specification and reference implementation on Nostr and Blossom.

- **1:00:05 flower-cache — local Blossom cache server**
  flower-cache provides a local Blossom cache server for hot local blob mirroring without repeated upstream fetches.

- **1:00:20 micro-vpn-ansible — Ansible playbooks for VPN over NIP-34**
  micro-vpn-ansible hosts Ansible playbooks for micro VPN deployment as a NIP-34 repository.

### NIP Updates

- **1:00:52 Draft Proposal: Brokerless hashrate market over Nostr — Open**
  The brokerless hashrate market draft proposes peer-to-peer Stratum listings and contract escrow over Nostr events without broker-controlled web apps.

- **1:02:13 Draft Proposal: Profile Colors — deterministic visual identity — Open**
  The Profile Colors draft defines deterministic pubkey-derived colors for consistent cross-client UI identity.

- **1:02:50 Draft Proposal: Namecoin-Track NIPs — identity, relays, TLS & reputation — Open**
  The Namecoin-Track draft cluster proposes Namecoin-anchored identity, relay metadata, TLS pinning, and reputation records.

### NIP Deep Dives

- **37:35 NIP Deep Dive: NIP-53 (Live Activities)**
  NIP-53 defines live streams (30311), meeting spaces (30312), conference events (30313), listener presence (10312), and live chat (1311) with participant proof requirements and room/event separation. This week’s Amethyst Nests stability sprint hardens the production failure modes this spec needs at scale.

- **1:03:50 NIP Deep Dive: NIP-34 (git stuff)**
  NIP-34 standardizes git repository announcements (30617), state pointers (30618), patches (1617), pull requests (1618), issues (1621), and status events (1630-1633) on relays while git data remains on forge servers. Active usage this week includes joinmarket-ng, GitWorkshop.dev, and ngit-indexer, building on last week’s in-browser PR merge workflow.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #20</title>
      <description>GitWorkshop expands git-over-Nostr review, Routstrd routes paid inference, and Six Nostr Aprils tracks protocol history, including NIP-34 and NIP-67 updates weekly.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdecxgen2dfcxccn2deddyehquthvenkkugtyl2nf</link>
      <pubDate>Fri, 08 May 2026 10:19:46 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1778235586157-i3pqwfgkq</guid>
      <enclosure url="https://blossom.primal.net/9109f346685bc0cd53473f7ad73e63f2961919d9409cd23afdaabe5c81d17413.ogg" type="audio/ogg" length="44486303" />
      
      <itunes:duration>01:27:34</itunes:duration>
      <itunes:episode>20</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/458209afb18ab50c6a79e4cecc573dd07152109e99db468f93a16c9f962226e9.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  Episode 20 follows Nostr Compass #20 across lead stories, tagged releases, unreleased changes, protocol work, and a multi-year April retrospective.

- **00:33 GitWorkshop ships in-browser PR merge, repository following, and a bandwidth-efficient git explorer**
  GitWorkshop added in-browser PR merge for GRASP repos, repository stars and follows via NIP-51 lists, and a more efficient git explorer built on GRASP's client/server model. It also introduced kind 1111 inline review comments with NIP-22 and NIP-32-based experimental moderation primitives.

- **07:55 Routstrd launches a local router for inference over Nostr**
  Routstrd is a local OpenAI-compatible daemon that discovers providers through kind 38421 announcements and routes requests using RIP scoring and failover. It pays providers with Cashu through local wallet tooling and keeps provider discovery and routing on Nostr.

### Releases

- **17:08 ngit v2.4.2 fixes GRASP server detection for PR submissions**
  ngit v2.4.2 fixes GRASP server detection for PR-kind submissions, while v2.4.1 fixed clone and fetch failures when open PR git data was missing from specified servers.

- **17:54 Wisp v1.0.0 graduates from beta**
  Wisp shipped v1.0.0 and v1.0.2, carrying forward Normie Mode, For You feed, NIP-29 group config, and NIP-65 broadcast from prior work. v1.0.2 adds Android 15 page-size support, QR scan tab access, inline video download, and notification list performance fixes.

- **20:25 grain v0.5.2 fixes WebSocket lockup, v0.5.3 continues polish**
  grain shipped v0.5.2 as a critical lockup fix for WebSocket and filter paths introduced in v0.5.0, then followed with v0.5.3. Operators on v0.5.0 and v0.5.1 are advised to upgrade.

- **28:16 Mostro Core v0.10.0 and Mostro Mobile v1.2.5 adopt NIP-59 dual-key gift wrap**
  Mostro Core v0.10.0 adopts NIP-59 split identity and wrapping keys, with migration work in Mostro PR #718 and mostro-cli PR #165. Mostro Mobile v1.2.5 adds maker age filtering in PR #581 and order-flow fixes.

- **30:09 marmot-ts v0.5.0 ships addressable KeyPackages**
  marmot-ts v0.5.0 adds dual support for legacy kind 443 and addressable kind 30443 KeyPackages in PR #68. The release removes old storage classes and moves invite and group management onto MarmotClient surfaces.

- **32:49 CruxCoach v0.1.3 ships encrypted climbing data backup with Nostr and Blossom**
  CruxCoach v0.1.3 adds opt-in encrypted cloud backup where a Nostr keypair anchors account identity and local encryption key derivation. It mirrors ciphertext to Blossom servers and integrates NIP-46, NIP-17, NIP-65, and Quartz.

- **36:50 Meiso v1.3.0 adds subtasks, Blossom attachments, and NIP-89 tagging**
  Meiso v1.3.0 adds subtasks, task relationship links, and Blossom attachment flows via NIP-96, while tagging events with NIP-89. It also improves relay cold-start behavior and Amber reuse.

- **38:07 NoorNote, Nostria, Nostr Calendar, nos2x-fox, and library releases**
  NoorNote shipped v0.8.7, v0.8.8, and v0.8.9, while Nostria shipped v3.1.29 through v3.1.31. Additional updates include Nostr Calendar v1.4.1, nos2x-fox v1.19.0, nostr-double-ratchet v0.0.97, nostr-wot-sdk 0.9.0, and nostr-tools PR #535.

- **44:19 applesauce 6.0.0 removes legacy event factories and adds Blossom URI parsing**
  applesauce-core@6.0.0 removes legacy event factory helpers and expands link and Blossom URI parsing, including BUD-10 regex coverage. Companion releases applesauce-content@6.0.0, applesauce-actions@6.0.0, and applesauce-wallet-connect@6.0.0 add BUD-10 nodes, NIP-51 list factories, and direct NIP-47 connect URI access.

### Project Updates

- **48:57 Amethyst advances Nests audio rooms with MoQ interop testing**
  Amethyst added MoQ cross-client interop testing in PR #2622, plus Nest UX and feed freshness changes in PR #2625, PR #2620, PR #2634, and PR #2635. The same week removes custom secp256k1 in PR #2627 for libschnorr256k1.

- **50:25 nostream adds NIP-65 relay list support and NWC payments**
  nostream adds kind 10002 relay list support in PR #585, NWC payments processor support in PR #539, and dead-connection cleanup fixes in PR #438.

- **50:52 FIPS adds Nostr-based udp:nat bootstrap**
  FIPS merged PR #53, adding Nostr-advertised udp:nat bootstrap with encrypted signaling, STUN-based address discovery, UDP hole punching, and rollback logic for failed traversal adoption.

- **51:37 strfry adds per-connection observability**
  strfry merged PR #214 for per-connection observability metrics, PR #204 for label normalization, and PR #215 for community integrations documentation.

- **52:06 Sprout adds Owner Attestation and multi-workspace support**
  Sprout adds NIP-OA owner attestation in PR #406, multi-workspace support in PR #409, channel and compose improvements in PR #411, and read-state sync via NIP-RS in PR #413, PR #420, and PR #422.

- **53:07 Zap Cooking adds recipe packs, delete requests, and bunker login**
  Zap Cooking adds NIP-09 delete requests for recipe packs in PR #367, reliability and retry logic in PR #366, one-click pack publishing in PR #365, and NIP-46 bunker login in PR #331.

- **53:53 Whitenoise-rs encrypts its local database**
  whitenoise-rs adds SQLCipher at-rest database encryption in PR #758, plus ongoing session refactor work in PR #775, PR #772, and PR #773. On mobile, whitenoise PR #577 enables daemon auto-restart after reboot.

- **58:04 Nostrord: a NIP-29 client built with Kotlin Multiplatform and WASM**
  Nostrord is a new NIP-29 group client targeting Discord-style workflows, built with Kotlin Multiplatform and WebAssembly and live at web.nostrord.com. It interoperates with existing NIP-29 relays and is an OpenSats grant recipient.

- **59:02 Clave brings NIP-46 remote signing to iOS via APNs**
  Clave is an iOS signer that handles NIP-46 requests while the app is backgrounded by using APNs-triggered extension windows. It uses NIP-44 encrypted request handling, NIP-98 token registration auth, and supports bunker:// and nostrconnect:// pairing.

- **1:02:12 Treasures: decentralized geocaching on Nostr**
  Treasures publishes caches as kind 37516 addressable events and records finds through QR-verified physical-visit proof data. It supports NIP-57 zap flows between finders and cache creators and is live at treasures.to.

- **1:03:41 smesh v0.5.1: self-hosted Nostr relay, client, and signer in one stack**
  smesh bundles relay, client, and signer components with AUTH, search, Blossom support, NIP-07 signing, NIP-04 and NIP-44 encryption, and MLS support. The stack also includes the gitea-nostr-auth OAuth2 and OIDC bridge.

- **1:05:20 Surveil: a Magic: The Gathering deck builder on Nostr**
  Surveil publishes decks as kind 37381 events, combines NIP-22 threaded comments, NIP-25 reactions, and kind 30078 profile data, and shipped v0.1.6 with mobile polish and deck UI updates. The app is available on web and through Zapstore.

- **1:06:43 Smaller additions: Fundstr, Nod City, deploy-nsite-to-pages, and null–nostr**
  Fundstr adds creator funding over Nostr and Cashu, Nod City ships signed review events with zap support, deploy-nsite-to-pages automates nsite to GitHub Pages deploys, and null–nostr continues client development with MLS, Amber, and NIP-50 support.

### NIP Updates

- **1:10:24 NIP-34 git repositories: remove unused refs tag extension (PR #2325) — Merged**
  PR #2325 removes an unused refs extension from NIP-34 to reduce ambiguity for git-over-Nostr implementations.

- **1:10:45 NIP-34 git repositories: remove incorrect NIP-09 claim (PR #2326) — Merged**
  PR #2326 removes an incorrect claim that NIP-09 deletion can reset repository state, clarifying that deletion requests are client-side hints.

- **1:11:18 GitWorkshop kind 1111 inline review comments — Open**
  GitWorkshop's kind 1111 inline review comments are documented in its NIP.md and used in production, but are not yet a formal NIP proposal. Related verdict and suggestion primitives remain draft-level and implementation-driven.

- **1:12:16 Nostr mail core and Nostrmon — Open**
  Nostr mail core and Nostrmon circulated as custom draft proposals this week. They are not merged NIPs.

- **1:12:53 NIP-67: EOSE Completeness Hint (PR #2317) — Open**
  PR #2317 continues iterating on an explicit EOSE completeness signal so relays can positively indicate full stored-event delivery.

### NIP Deep Dives

- **1:13:09 Six Nostr aprils**
  This segment traces April milestones across protocol eras, from the pre-NIPs document phase to NIP-34 hardening and grant-driven adoption work in 2026. It emphasizes how client pressure, library maturity, and maintenance funding shaped protocol evolution.

- **01:13:23 April 2021: the protocol document before the NIPs repo**
  April 2021 had no commits in the main protocol repository window, reflecting a pre-market phase where Nostr was still a compact relay and event model awaiting sustained contributor growth. The core architecture already existed in the original 2020 protocol article.

- **01:14:02 April 2022: NIPs still lived in the main repo**
  April 2022 was the final month before NIPs moved into a dedicated repo, with incremental main-repo changes around NIP-12, kinds lists, and JavaScript spec examples. Client and library foundations were beginning to consolidate during this period.

- **01:15:17 April 2023: post-Damus application expansion**
  After Damus launch, April 2023 protocol changes mirrored live client pressure around zaps, marketplaces, metadata, count semantics, and identity links. One merged PR landed while broader commit activity expanded across several active contributors and app surfaces.

- **01:18:06 April 2024: private messaging, git-over-Nostr, and maintainer support**
  April 2024 merged NIP-46 terminology fixes and substantial NIP-34 improvements, while NIP-17 gift-wrapped messaging landed in the same month. OpenSats long-term support grants also shifted maintenance economics toward sustained infrastructure work.

- **01:21:14 April 2025: dense NIP cleanup and Blossom formalization**
  April 2025 merged sixteen NIP PRs, including NIP-B7 Blossom interaction formalization, NIP-65 relay list cleanup, and NIP-26 deprecation. Protocol cleanup and application expansion ran in parallel with broad client and library shipping activity.

- **01:23:44 April 2026: NIP-34 hardening, badges, and adoption-focused grants**
  April 2026 merged NIP-58 badge model changes and three NIP-34 usability and correctness updates, including nostr:// clone URL support and cleanup of incorrect language. The period also coincided with OpenSats grant support for desktop clients, messaging, group UX, and onboarding.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #19</title>
      <description>Episode 19 tracks major client releases, relay hardening, Marmot interoperability work, and NIP proposals, plus deep dives on communities and zaps.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdeh8qungde4xcmnsdpdvenrxenzwp5kvecgqu47g</link>
      <pubDate>Mon, 04 May 2026 11:39:16 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1777894756784-ff3fbpifg</guid>
      <enclosure url="https://nostr.download/6e0ee90e56db3e5aa43bf195df4bab32e1f8429677f2b208e0754d251d8e1c66.oga" type="audio/ogg" length="67242355" />
      
      <itunes:duration>02:19:33</itunes:duration>
      <itunes:episode>19</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://nostr.download/0bc367c8c5d25a34662feff5fa0c7e04743143de66e9db719eb284853ba38b6a.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  This episode follows Nostr Compass #19 across top stories, shipping releases, in-development work, new projects, NIP updates, and two deep dives.

- **02:48 Amethyst ships Marmot MIP compliance, NIP-72 communities, zap goals, and MoQ audio rooms**
  Amethyst merged 57 PRs focused on Marmot compliance, NIP-72 communities, and audio rooms over Media over QUIC. Highlights include MIP and MLS work in PR #2462, PR #2466, and PR #2493, plus NIP-72 support in PR #2468, zap goals in PR #2469, and MoQ audio rooms in PR #2494.

- **19:16 TollGate v0.1.0 stabilizes pay-per-use internet over Nostr and Cashu**
  TollGate shipped v0.1.0 with a layered spec for prepaid connectivity using Cashu. The release pins protocol and transport definitions in TIP-01, TIP-02, HTTP-01..03, NOSTR-01, and WIFI-01.

- **46:28 nostream merges 53 PRs for NIP-45, NIP-62, compression, and query hardening**
  nostream merged 53 PRs adding NIP-45 COUNT support in PR #522, NIP-62 advertisement in PR #544, import/export compression in PR #514, and filter/schema/query correctness in PR #534. It also reached full NIP-11 parity in PR #557.

### Releases

- **00:20 Nostria v3.1.26 through v3.1.28 add background music playback on Android**
  Nostria shipped v3.1.22 through v3.1.28, with Android background music playback landing in v3.1.26. Follow-up releases v3.1.27 and v3.1.28 hardened media service behavior.

- **48:41 Primal Android ships Explore tab, NIP-05 verification, and audio player**
  Primal Android merged 11 PRs including an Explore tab in PR #1021, feed editor in PR #1015, NIP-05 verification in PR #994, and inline audio playback in PR #997. It also adds wallet-QR driven NIP-46 pairing in PR #1018.

- **50:01 strfry adds Prometheus write-path metrics and fixes NIP-42 AUTH envelope**
  strfry added write-path metrics in PR #194, per-connection traffic logging in PR #197, and configurable filter tag limits in PR #192. Protocol behavior for NIP-42 AUTH failures was corrected to use the proper OK envelope in PR #201.

- **51:41 Shopstr hardens storefront security across 13 PRs**
  Shopstr merged 13 security-heavy PRs, including XSS and script-injection fixes in PR #434 and PR #417, auth fixes in PR #418, PR #433, and PR #419, plus SSRF remediations in PR #435 and PR #414. Functional issues were also addressed in PR #421, PR #425, and PR #392.

- **53:24 Wisp v0.18.0-beta adds Normie Mode, For You feed, and NIP-29 group config**
  Wisp shipped v0.18.0-beta with fiat-centric Normie Mode in PR #462, onboarding updates in PR #464, and a For You feed in PR #469. It also adds NIP-29 group configuration in PR #471, AUTH sequencing fixes in PR #478, and NIP-65 inbox relay broadcast behavior in PR #481.

- **58:16 NoorNote v0.8.4 adds Scheduled Posts and live stream zapping**
  NoorNote shipped v0.8.4 and v0.8.5, adding scheduled signed-event publishing through a NoorNote relay and live-stream zapping tied to NIP-53. The v0.8.5 follow-up fixes timeline deduplication on long Android scrolls.

- **01:00:11 topaz v0.0.2 ships a Nostr relay for Android**
  topaz shipped v0.0.2 as a Kotlin-first Android relay package, focusing on a working personal relay running directly on a phone.

- **01:01:28 StableKraft v1.0.0 ships the first stable music-and-podcast PWA release**
  StableKraft reached v1.0.0, a Next.js PWA for podcast-based music discovery with Nostr auth and Lightning flows. The same week added feed-ingestion fixes including OPML cache and XML stripping and a reparse window reduction.

- **01:02:29 NipLock ships a NIP-17-based password manager**
  NipLock stores credentials as self-addressed NIP-17 gift-wrapped DMs so entries replicate across user devices. It supports raw keys, nos2x, and Amber via NIP-46.

- **01:07:37 flotilla-budabit polishes its NIP-34 repo surface**
  flotilla-budabit, a fork of Flotilla, shipped NIP-34 workflow polish including discussion controls, sticky tabs, saved relay announcement loading, and patch status sync.

- **01:08:55 rx-nostr 3.7.2 through 3.7.4 add default verifier and optional constructor args**
  rx-nostr shipped 3.7.2, 3.7.3, and 3.7.4. PR #192 adds a default signature verifier, crypto@3.1.6 fixes verification failures, and PR #195 makes createRxNostr() args optional.

- **01:09:46 Keep Android v1.0.0 ships with reproducible builds and zero trackers**
  Keep shipped v1.0.0 with reproducible builds in PR #241, ZXing migration in PR #248, and a zero-trackers Exodus Privacy report in PR #252. Distribution support for zapstore lands in PR #256.

- **01:10:53 Flotilla 1.7.3 and 1.7.4 add kind-9 wrapping for richer NIP-29 rooms**
  Flotilla shipped 1.7.3 and 1.7.4, introducing kind-9 wrapping for non-chat payloads in NIP-29 rooms, linked to NIP PR #2310. The release line also includes polls, NIP-46 Aegis URL support, invite sharing, and feed pagination improvements.

- **01:12:12 WoT Relay v0.2.1 migrates eventstore to LMDB**
  WoT Relay shipped v0.2.1 with LMDB eventstore migration in PR #97, security dependency updates in PR #99, and NIP-11 metadata updates in PR #100.

- **01:15:09 Formstr suite: Pollerama security pass, Forms i18n, Calendar RRULE support**
  The Formstr suite merged 26 PRs across Pollerama, Formstr, and Nostr Calendar with security and product updates. Pollerama hardened key and DM handling in PR #182, PR #175, and PR #171, while Formstr added media/i18n/import support in PR #475, PR #439, and PR #466, plus privacy fixes in PR #463. Nostr Calendar shipped v1.3.0 and v1.4.0 with RRULE support in PR #107 and UTC recurrence fixes in PR #101.

- **01:19:12 Also shipped: notedeck, nostr.blue, cliprelay, Captain's Log**
  notedeck shipped v0.10.0-beta.4, nostr.blue shipped v0.8.6 with Dioxus 0.7.5 and Android audio bridge work, and cliprelay shipped desktop v0.0.3 and android v0.0.4. Captain's Log published alpha builds with sync relay liveness detection.

### Project Updates

- **01:20:27 whitenoise-rs refactors to session-scoped account views**
  whitenoise-rs merged 15 PRs shifting from global singletons to per-account AccountSession and AccountManager surfaces, starting with PR #743 and scoped relay handles in PR #753. Session-owned dispatch closes in PR #770.

- **01:26:19 White Noise app adds block/unblock UI, leave-group, and offline notices**
  White Noise shipped group lifecycle and moderation UX updates including block/unblock in PR #578 on top of PR #573, group leave/delete wiring in PR #571 and PR #572, and offline notices in PR #569 and PR #576. PR #585 narrows key package deletion to legacy keys.

- **01:32:04 MDK adds mixed-version invite support and SelfUpdate convergence**
  MDK merged invite and state-rotation compatibility work, led by mixed-version invite capability negotiation in PR #261 and SelfUpdate convergence in PR #264. Additional robustness changes include PR #262, PR #256, PR #259, and proposal introspection in PR #265.

- **01:35:02 nostter adds NIP-44 encryption across people lists, bookmarks, and mutes**
  nostter added NIP-44 encryption to mute lists, bookmarks, and people lists via PR #2088, PR #2089, and PR #2090. It also removes a legacy migration path in PR #2087.

- **01:35:39 zap.cooking ships Nourish scoring and a reusable comment thread**
  zap.cooking merged 20 PRs, adding Nourish recipe scoring in PR #317 and PR #319. It also extracted a reusable CommentThread from PR #299 through PR #302, with further recipe and profile polish in PR #309, PR #307, and PR #310.

- **01:36:18 ridestr extracts shared rider coordinator**
  ridestr merged 10 PRs that modularize Compose UI and move rider and driver protocol logic into a shared coordinator in PR #70. It also adds kind 3189 driver ping receiving in PR #60.

- **01:37:20 Blossom drafts a BUD-01 Sunset header for blob expiration**
  Blossom opened PR #99 to add a Sunset header to BUD-01 so servers can advertise blob expiration timing before clients hit missing-content errors. The draft uses RFC 8594 semantics as advisory metadata.

- **01:38:14 Forgesworn publishes a 29-repo cryptographic toolkit for Nostr**
  Forgesworn published 29 repositories spanning signing, identity, attestations, trust, and paid API discovery, including nsec-tree, Heartwood, Signet v1.6.0, and nostr-attestations. The stack also includes toll-booth, toll-booth-dvm, 402-announce, 402-indexer, nip-drafts, and anvil.

- **01:44:46 ShockWallet ships Nostr-native Lightning wallet sync and multi-node connections**
  ShockWallet shipped wallet and node-pairing improvements including channels dashboard updates in PR #608, admin invite QR flow in PR #606, and metrics readability in PR #607. Its sync model uses NIP-78 for multi-device app state and complements NIP-47 wallet connect flows.

- **01:46:32 Nostrability issues migrate to git over Nostr after GitHub censorship**
  Nostrability moved issue tracking to git over Nostr after its GitHub organization was removed, preserving ongoing interoperability reports on Nostr-native infrastructure.

- **01:47:57 nowhere encodes full websites into URL fragments and routes orders through Nostr**
  nowhere serializes complete sites into URL fragments with compression and base64url encoding so hosts never receive content-bearing data. Live features use ephemeral-key Nostr messaging with NIP-44 encryption, and the project ships a companion reader at nowhr.xyz.

- **01:52:28 Small new surfaces: relayk.it and Brainstorm Search**
  relayk.it is a browser relay discovery client built with Shakespeare, and Brainstorm Search ships as a single-page Nostr search UI.

### NIP Updates

- **01:53:26 NIP-67: EOSE Completeness Hint (PR #2317) — Open**
  NIP-67 PR #2317 proposes an optional third EOSE element to signal whether a relay returned all matching stored events. The extension is backward compatible and helps clients stop pagination when completeness is explicit.

- **01:55:01 NIP-5D: Nostr Applets (PR #2303) — Open**
  PR #2303 proposes NIP-5D applets as sandboxed interactive front-end payloads, positioned between static NIP-5A sites and executable NIP-5C scrolls.

- **01:56:05 NIP-29: Subgroups spec (PR #2319) — Open**
  PR #2319 extends NIP-29 with subgroup hierarchy and moderation scoping while keeping compatibility for plain single-h tag messages.

- **01:57:05 NIP-29: Explicit role permissions on kind 39003 (PR #2316) — Open**
  PR #2316 defines explicit operation grants and optional expiries on kind 39003 role events so relay and client permission semantics are machine-readable and consistent.

- **01:57:56 NIP-11: access_control field for gated-relay discovery (PR #2318) — Open**
  PR #2318 adds optional access_control metadata to NIP-11 relay documents so clients can surface gating mode and access request endpoints.

- **01:58:35 NIP-63a: Minimal Payment Gateway Descriptor (PR #2315) — Open**
  PR #2315, previously covered in Newsletter #18, continues iterating on kind 10164 descriptor structure and subscription-tier field layout.

- **01:59:09 NIP-XX: Agent Reputation Attestations (Kind 30085) (PR #2320) — Open**
  PR #2320 proposes kind 30085 attestations for service and agent reputation, including bounded scores, evidence references, and signed target attribution for market filtering.

- **01:59:58 NIP-TPLD: Transient Private Location Data (PR #2309) — Open**
  PR #2309 continues work on kind 20411 transient location data, with ongoing tuning around NIP-44 per-recipient encryption and ttl retention semantics.

- **02:00:43 marmot-ts 0.5.0 release PR (PR #70) — Open**
  PR #70 prepares @internet-privacy/marmot-ts@0.5.0 with breaking API and storage changes, including dual key package event support and invite/group management moved onto MarmotClient.

### NIP Deep Dives

- **02:01:10 NIP Deep Dive: NIP-72 (Moderated Communities)**
  NIP-72 defines communities as kind 34550 addressable events with metadata and moderator sets, where submissions carry community `a` tags and moderator approvals are published as kind 4550 events. The design keeps moderation transparent and portable across relays because approvals are signed, auditable Nostr events and community identity is replaceable but stable via `d` tag coordinates. It trades strict gatekeeping for broad compatibility: submissions are publicly writable, while curation happens at the client read layer through approved views.

- **02:07:06 NIP Deep Dive: NIP-57 (Zaps)**
  NIP-57 standardizes Lightning-linked zap requests (kind 9734) and receipts (kind 9735) with verifiable linkage between request intent, invoice amount, and settlement preimage. It relies on LNURL callback coordination and requires clients to validate wallet-server signatures, invoice description hash commitments, and payment proof before counting receipts as real zaps. The model also supports private and anonymous zap variants, split payouts, and higher-level goal tracking as used by NIP-75 and Amethyst’s PR #2469.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass Podcast #18</title>
      <description>Episode 18 covers Amethyst&#39;s major architecture upgrades, rapid client releases, emerging Marmot tooling, and seven NIP proposals plus deep dives today.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdek8q6nyd33xycrzwpdvfhhsdmrvaskgwg4qh8dk</link>
      <pubDate>Wed, 22 Apr 2026 10:10:11 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1776852611018-box7cgad9</guid>
      <enclosure url="https://blossom.primal.net/5fa4433c37d2671c88c4b323838d2630a5bc8c9d47de464f0715f9915822fb6a.ogg" type="audio/ogg" length="67386985" />
      
      <itunes:duration>01:50:40</itunes:duration>
      <itunes:episode>18</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/287aa25971915427d3adcc2c9c94a77608382dcb0a99fc761caf1a22aa4e59be.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**
  Episode 18 covers major app shipping updates, protocol proposals, and two NIP deep dives from Nostr Compass #18. The first segment opens with Amethyst, nstrfy, and HAMSTR.

- **00:30 Amethyst merges desktop Tor, C secp256k1, WebRTC calls, and multi-wallet NWC**
  Amethyst merged 29 PRs including desktop Tor in PR #2381, JNI-backed C secp256k1 in PR #2374, and a full WebRTC NIP-AC call stack in PR #2203 through PR #2211. The week also included RFC 9420 MLS updates in PR #2202, multi-wallet NIP-47 support in PR #1988, and GIF-to-MP4 compression in PR #2189.

- **10:40 nstrfy launches Nostr-native push notifications for Android**
  nstrfy launched v1.0.0 through v1.2.0 as a Nostr transport fork of ntfy-android, using kind 7741 events on relays instead of centralized push. It supports plaintext and NIP-44 encrypted payloads, NIP-55 signing via Amber, NIP-65 relay import, and NIP-40 expiration, with companion tools at nstrfy.sh.

- **26:57 HAMSTR adds Reticulum for Nostr over LoRa mesh**
  HAMSTR added Reticulum networking in PR #10, enabling Nostr event transport over LoRa mesh without internet. The project keeps AX.25 and VARA paths, documents setup in RETICULUM.MD, and also moved frontend infrastructure in PR #11.

### Releases

- **27:54 Bloom v0.1.0 ships self-hosted Blossom server and relay**
  Bloom v0.1.0 ships a Tauri v2 desktop app that bundles a Blossom media server and a Nostr relay. The release includes BUD-00 through BUD-10 support, NIP-94 metadata, and blossom:// URI resolution.

- **30:17 WaveFunc v0.1.0 and v0.1.1 launch Nostr internet radio**
  WaveFunc launched v0.1.0 and v0.1.1 with custom kinds for stations, favorites, live chat, and comments, plus NIP-50 search on a Khatru relay backend. The update includes NIP-60 Cashu wallet support, a Tauri desktop build, and Zapstore listing.

- **31:45 Snort ships v0.5.0 through v0.5.3 with security hardening and performance overhaul**
  Snort v0.5.0-v0.5.3 added audited Schnorr verification, NIP-46 hardening, improved PIN encryption, and batched WASM verification. Messaging throughput improved via PR #620, and the client added kind 7000 invoice display for NIP-90 workflows.

- **33:16 Primal Android ships 3.0.21 and redesigns feed layout**
  Primal Android v3.0.21 shipped bug fixes and followed with merged UI and feed updates including PR #1008, PR #1010, PR #1009, PR #1012, and PR #1013. Changes include unified layout, updated cards, and quick reply refinements.

- **34:14 Nostria v3.1.19 through v3.1.21 add local AI image generation**
  Nostria shipped v3.1.19-v3.1.21 with local Janus Pro image generation using WebGPU acceleration and expanded multimodal and ONNX support. The series also includes editor and dialog updates and signer login flow changes.

- **36:06 TubeStr v1.0.3 ships feed and studio updates**
  TubeStr v1.0.3 adds feed and studio updates, with onboarding improvements in PR #3 and export fixes in PR #2. The app is built on NDK and MDK for encrypted family media sharing.

### Project Updates

- **38:16 Botburrow begins development as Marmot bot platform**
  Botburrow is a new self-hosted Marmot bot platform where each bot has its own Nostr identity and MLS group participation path. The Rails dashboard connects to whitenoise-rs over a Unix socket, with command, trigger, scheduling, and storage capabilities for operators.

- **44:47 Nostr Archives adds trending feeds relay and entity resolution**
  Nostr Archives shipped backend and frontend updates including API leaderboard and engagement work in PR #118 and PR #117. Frontend additions include entity path resolution in PR #85, API docs in PR #86, and a trending feeds relay at wss://feeds.nostrarchives.com.

- **48:44 Damus fixes favorites timeline**
  Damus merged PR #3708, rewriting subscribe_to_favorites() with filtering and deduplication updates and persisted tab selection behavior.

- **49:03 Nostur adds private zaps and custom emoji viewing**
  Nostur shipped ten commits including private zaps, custom emoji viewing, animated .webp fixes, and voice message format detection improvements.

- **49:56 Amber ships v6.0.1 through v6.0.3 with WebDAV backup and relay reconnection fixes**
  Amber v6.0.1-v6.0.3 added WebDAV and Google Drive sharing backup options, relay reconnection backoff logic, and Quartz updates to 1.08.0. Follow-up releases fixed startup relay reconnection and empty request ID intent handling.

- **53:38 Plektos v0.6.0 redesigns with Ditto themes**
  Plektos v0.6.0-v0.6.1 adds Ditto-style themes, background image uploads, and avatar shape configuration, plus review follow-ups in PR #6. The app is NIP-52 based and uses NIP-46 remote login and zap ticketing.

- **55:13 Shadow adds Nostr OS API and Cashu wallet app**
  Shadow added runtime features including a Cashu wallet app in commit 88cbda5 and a podcast player demo in commit 865c415. The runtime exposes Shadow.os.nostr and Shadow.os.audio, with Linux fixes in PR #1 and PR #2.

- **57:18 Lief fixes Amber login and adds Zapstore**
  Lief build v2026.04.12 fixes Android Amber signer login, simplifies signer nudge flow, upgrades nostrify, and adds Zapstore integration.

- **58:48 Espy overhauls color picker and fixes Amber login**
  Espy build v2026.04.12 overhauls its color picker with a curved saturation arc, fixes hue ring flicker, and reduces PNG footprint by 703KB. The same update also applies Amber signer login and Zapstore-related fixes.

- **01:00:19 Jumble adds per-feed kind filters and articles tab**
  Jumble added per-feed kind filtering, an Articles tab, notification read status sync options, avatar hide mode, and account switching race condition fixes across 13 commits.

- **01:01:05 Primal Web ships 8 version bumps**
  Primal Web shipped versions 3.0.93 through 3.0.101 with 21 commits focused on live stream chat behavior, mention boundaries, bookmark pagination, duplicate like prevention, and relay proxy fixes.

### NIP Updates

- **01:01:34 NIP-34 (Git Stuff): Add nostr:// clone URLs (PR #2312) — Merged**
  PR #2312 adds nostr:// clone URL patterns to NIP-34 for repository discovery and cloning via git-remote-nostr helpers. It defines direct, human-readable, and relay-hinted formats and tightens repository identifier handling.

- **01:03:43 NIP-63a: Minimal Payment Gateway Descriptor (PR #2315) — Open**
  PR #2315 proposes kind 10164 replaceable events for describing creator payment gateways, pricing models, and subscription rules. The goal is client interoperability without provider-specific hardcoding.

- **01:05:30 NIP-XX: Relay Self-Declaration Manifest and Retention Horizon (PR #2314) — Open**
  PR #2314 proposes kind 10100 relay manifests and a HORIZON message for explicit retention boundaries before EOSE. It aims to replace opaque empty responses with machine-readable retention limits.

- **01:08:11 NIP-TPLD: Transient Private Location Data (PR #2309) — Open**
  PR #2309 introduces kind 20411 for encrypted per-recipient geolocation sharing using NIP-44 payloads, ttl hints, and ephemeral relay handling semantics.

- **01:09:37 NIP-5C (Scrolls): WASM programs update (PR #2281) — Open**
  PR #2281 advances Scrolls conventions for publishing and discovering WebAssembly programs as Nostr events, with runtime interface refinements and browser demo alignment.

- **01:12:35 NIP-44 large payload support (PR #1907) — Open**
  PR #1907 proposes backward-compatible support for payloads beyond the 65,535-byte limit, primarily to unblock large NIP-46 remote-signing responses such as large kind 3 lists.

- **01:16:59 NIP-C7: Restrict kind 9 to chat views (PR #2310) — Open**
  PR #2310 requires clients rendering chat views to fetch only kind 9 messages, reducing context loss when mixed with kind 1 notes or kind 30023 articles.

### NIP Deep Dives

- **01:21:18 NIP Deep Dive: NIP-29 (Relay-based Groups)**
  NIP-29 defines relay-managed groups where membership and moderation are enforced by the relay, using IDs in `<host>'<group-id>` format and `h` tags on group events. It introduces moderation and config kinds, including 9000-9022 for role and membership actions and 39000-39003 for group metadata and policy publication. The model prioritizes operational simplicity over confidentiality, because the relay can read content, so it targets public and semi-public communities rather than end-to-end private chat use cases.

- **01:36:22 NIP Deep Dive: NIP-90 (Data Vending Machines)**
  NIP-90 standardizes request, result, and feedback flows for paid computation on Nostr across kind ranges 5000-5999, 6000-6999, and 7000. It defines structured job inputs, outputs, bids, parameters, payment-required statuses, and chaining semantics so multiple providers can fulfill pipeline steps. Current implementations and client support include growing DVM tooling and invoice rendering, with encrypted request options available when customers target a specific provider.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #17</title>
      <description>
Amethyst migrates to Arti Tor and ships pure Kotlin MLS and Marmot. NIP-58 badges migrate kinds. NIP-17 and NIP-46 deep dives.
</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdekxvmrxv3hxv6nxvfdxp4x7vrx89n8saqdexyh5</link>
      <pubDate>Thu, 16 Apr 2026 18:14:33 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1776363273531-0jo0f9fxt</guid>
      <enclosure url="https://blossom.primal.net/b482d9ce23c161bc943483b243e641f42c23d82f7a0d78a7eb503b8766a85c8b.ogg" type="audio/ogg" length="50501559" />
      
      <itunes:duration>01:29:57</itunes:duration>
      <itunes:episode>17</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/ee1e4bf3be790d0af801214581a2f025678ffee0a4dca28aeaef26086d454b33.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Intro**

- **00:12 Amethyst ships Arti Tor, merges pure Kotlin MLS and Marmot**
  [Amethyst](https://github.com/vitorpamplona/amethyst) shipped four releases from [v1.07.3](https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.3) through [v1.08.0](https://github.com/vitorpamplona/amethyst/releases/tag/v1.08.0). The headline is v1.08.0 "Arti Tor," which migrates Tor connectivity from C bindings to [Arti](https://gitlab.torproject.org/tpo/core/arti), the Tor Project's Rust rewrite, fixing random crashes. v1.07.3 redesigned the Shorts UI with edge-to-edge feeds for pictures, shorts, and long videos, and migrated badges to kind `10008` and bookmarks to kind `10003`. On main but not yet tagged, the team merged a full Kotlin implementation of both [MLS](/en/topics/mls/) and [Marmot](/en/topics/marmot/) ([PR #2147](https://github.com/vitorpamplona/amethyst/pull/2147), [PR #2149](https://github.com/vitorpamplona/amethyst/pull/2149), [PR #2150](https://github.com/vitorpamplona/amethyst/pull/2150)), plus a pure Kotlin secp256k1 implementation ([PR #2166](https://github.com/vitorpamplona/amethyst/pull/2166)) replacing C library dependencies. Together these make [Quartz](/en/topics/quartz/) capable of running Nostr signing and Marmot group messaging without any native bindings, unlocking Kotlin Multiplatform targets including iOS.

- **10:28 Nostur v1.27.0 adds video recording and private replies**
  [Nostur](https://github.com/nostur-com/nostur-ios-public) shipped [v1.27.0](https://github.com/nostur-com/nostur-ios-public/releases/tag/v1.27.0) with in-app video recording and trim-before-upload, animated GIF and WebP support for profile and banner photos, Apple Shortcuts integration for posting from automations, private replies, and DM compatibility fixes affecting message delivery between Nostur and other clients.

- **11:33 Shosho v0.15.0 launches Shows and vertical video carousel**
  [Shosho](https://github.com/r0d8lsh0p/shosho-releases) shipped [v0.15.0](https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.0) and [v0.15.1](https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.1). Shows let streamers configure titles, descriptions, and products before going live and connect to OBS or any external encoder, separating stream metadata from the act of broadcasting. The release also adds a TikTok-style vertical video carousel for swiping through lives, clips, and replays, and Quick Add for publishing clips from a profile page. v0.15.1 fixes the keyboard hiding live chat input.

### Releases

- **12:55 Notedeck v0.10.0-beta ships Zapstore self-update**
  [Notedeck](https://github.com/damus-io/notedeck) shipped [v0.10.0-beta.1](https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.1) and [v0.10.0-beta.2](https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.2). [PR #1417](https://github.com/damus-io/notedeck/pull/1417) adds APK self-update via the Nostr/Zapstore updater on Android: the client discovers new releases through Nostr events, downloads the APK from the developer's chosen host, verifies the SHA-256 hash against the signed Nostr event, and installs it.

- **17:43 Amber v6.0.0-pre1 adds per-connection NIP-46 signing keys**
  [Amber](https://github.com/greenart7c3/Amber) shipped [v6.0.0-pre1](https://github.com/greenart7c3/Amber/releases/tag/v6.0.0-pre1). The key change is per-connection signing keys for the [NIP-46](/en/topics/nip-46/) bunker protocol: Amber now generates a distinct key per connected client, so a compromised client connection cannot impersonate the signer to other clients. [PR #377](https://github.com/greenart7c3/Amber/pull/377) adds in-app Zapstore update checking and installation. [PR #375](https://github.com/greenart7c3/Amber/pull/375) handles AndroidKeyStore failures gracefully with a warning instead of a crash. [PR #371](https://github.com/greenart7c3/Amber/pull/371) adds database cleanup with size limits to prevent unbounded storage growth.

- **24:02 Nostria ships native mobile app**
  [Nostria](https://github.com/nostria-app/nostria) released a native mobile app for Android across eight releases from [v3.1.11](https://github.com/nostria-app/nostria/releases/tag/v3.1.11) through [v3.1.18](https://github.com/nostria-app/nostria/releases/tag/v3.1.18). The key addition is native local signer support for [Amber](https://github.com/greenart7c3/Amber) and Aegis. [PR #610](https://github.com/nostria-app/nostria/pull/610) reduces feed memory pressure with adaptive runtime limits and preview URL cleanup. Desktop installers for Linux, macOS, and Windows are also available. The Android app is on [Zapstore](https://zapstore.dev/apps/app.nostria).

- **30:16 diVine 1.0.8 ships resumable uploads and DMs**
  [diVine](https://github.com/divinevideo/divine-mobile) shipped [1.0.8](https://github.com/divinevideo/divine-mobile/releases/tag/1.0.8) with 87 merged PRs. Resumable uploads let creators pick up interrupted uploads chunk by chunk instead of restarting. The release adds video quality and bitrate settings, double-tap to like, DM improvements, a macOS camera plugin ([PR #2722](https://github.com/divinevideo/divine-mobile/pull/2722)), and a BLoC-based notification system with enrichment and grouping ([PR #2820](https://github.com/divinevideo/divine-mobile/pull/2820)).

- **31:34 Manent v1.3.0 adds sensitive note blurring and NIP-42 auth**
  [Manent](https://github.com/dtonon/manent) shipped [v1.3.0](https://github.com/dtonon/manent/releases/tag/v1.3.0). Users can mark notes as sensitive to blur them in the list view. The release also adds [NIP-42](/en/topics/nip-42/) (Authentication of Clients to Relays) support, expanding the set of relays Manent can use for encrypted storage.

- **32:44 Wisp v0.17.0 through v0.17.3 add live stream zaps and wallet backup**
  [Wisp](https://github.com/barrydeen/wisp) shipped six releases from [v0.16.2-beta](https://github.com/barrydeen/wisp/releases/tag/v0.16.2-beta) through [v0.17.3-beta](https://github.com/barrydeen/wisp/releases/tag/v0.17.3-beta) with 44 merged PRs. v0.17.0 adds wallet backup safety prompts. [v0.17.1](https://github.com/barrydeen/wisp/releases/tag/v0.17.1-beta) adds live stream chat visibility across platforms and live stream zap functionality. [PR #423](https://github.com/barrydeen/wisp/pull/423) adds auto-search profiles and a zap success animation. [PR #426](https://github.com/barrydeen/wisp/pull/426) fixes an out-of-memory crash in `computeId` for events with large tag lists.

- **33:31 Mostro ships deep links, Nostr exchange rates, and a duplicate payment fix**
  [Mostro](https://github.com/MostroP2P/mostro) fixed [PR #692](https://github.com/MostroP2P/mostro/pull/692) preventing stale order writes from causing duplicate payments (a bug that could pay a seller twice for the same trade). [Mostro Mobile](https://github.com/MostroP2P/mobile) shipped [v1.2.3](https://github.com/MostroP2P/mobile/releases/tag/v1.2.3) with deep link handling across different Mostro instances, Nostr-sourced exchange rates with HTTP fallback, background detection of admin and dispute DMs ([PR #498](https://github.com/MostroP2P/mobile/pull/498)), and a relay connection blocking fix ([PR #560](https://github.com/MostroP2P/mobile/pull/560)).

- **36:55 Unfiltered v1.0.12 adds hashtags and comments**
  [Unfiltered](https://github.com/dmcarrington/unfiltered) shipped [v1.0.12](https://github.com/dmcarrington/unfiltered/releases/tag/v1.0.12) adding hashtag support ([PR #69](https://github.com/dmcarrington/unfiltered/pull/69)), the ability to write and display comments ([PR #72](https://github.com/dmcarrington/unfiltered/pull/72)), and a fix for multi-image post navigation ([PR #71](https://github.com/dmcarrington/unfiltered/pull/71)).

- **37:21 Primal Android ships wallet multi-account sharing and remote signer auto-reconnect**
  [Primal Android](https://github.com/PrimalHQ/primal-android-app) shipped with wallet multi-account sharing, an overflow menu with wallet deletion in Dev Tools, remote signer auto-reconnect on drops, and wallet service auto-reconnect. Fixes include poll zap votes no longer appearing as Top Zaps, empty poll option crash prevention, and WalletException type mapping to NWC error codes.

- **38:20 Titan v0.1.0 launches native nsite:// browser with Bitcoin name registration**
  [Titan](https://github.com/btcjt/titan) shipped [v0.1.0](https://github.com/btcjt/titan/releases/tag/v0.1.0), a native desktop browser for the Nostr web. It resolves `nsite://` URLs by looking up human-readable names registered on Bitcoin, querying Nostr relays for content events, and rendering pages fetched from [Blossom](/en/topics/blossom/) servers. No DNS, no TLS certificates, no hosting providers. Names are registered through a web interface tied to Bitcoin transactions. Ships as a macOS `.dmg` with Nix dev environment support.

- **42:52 Bikel v1.5.0 ships native foreground service for de-Googled phones**
  [Bikel](https://github.com/Mnpezz/bikel) shipped [v1.5.0](https://github.com/Mnpezz/bikel/releases/tag/v1.5.0), migrating from GMS-dependent Expo TaskManager to a custom native foreground service for reliable background ride tracking on LineageOS, GrapheneOS, and other de-Googled Android variants. The Bikel Bot gained dual-pocket architecture with autonomous eCash collection via Cashu nutzaps.

- **44:26 Sprout adds NIP-01, NIP-23, and NIP-33 support**
  [Sprout](https://github.com/block/sprout), Block's communication platform with a built-in Nostr relay, shipped [desktop/v0.1.0-rc7](https://github.com/block/sprout/releases/tag/desktop/v0.1.0-rc7) adding [NIP-23](/en/topics/nip-23/) long-form content, [NIP-33](/en/topics/nip-33/) parameterized replaceable events with `d`-tag keyed replacement, and [NIP-01](/en/topics/nip-01/)/[NIP-02](/en/topics/nip-02/) kind `1` notes and kind `3` follow lists. The release also adds an adaptive IDE theme system with 54 themes.

- **46:16 mesh-llm v0.56.0 ships distributed config protocol**
  [mesh-llm](https://github.com/michaelneale/mesh-llm) shipped [v0.56.0](https://github.com/michaelneale/mesh-llm/releases/tag/v0.56.0) with a distributed config protocol with ownership semantics, asymmetric KV cache quantization (Q8_0 keys with Q4 values) for reduced memory, OS keychain storage for identity keystores, and smooth chat streaming with message queuing. The project uses Nostr keypairs for node identity in a distributed LLM inference mesh.

- **48:03 Nostr VPN ships exit node support and Umbrel packaging**
  [Nostr VPN](https://github.com/mmalmi/nostr-vpn) shipped six releases from [v0.3.0](https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.0) through [v0.3.6](https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.6). The v0.3.x cycle adds exit node support on Windows and macOS, invite and alias propagation synced over Nostr, Umbrel packaging for self-hosted deployment, NAT punch-through using remembered public endpoints, macOS self-healing default routes, and an Android build via Tauri. The project also published a protocol specification.

- **49:49 Nymchat reverts Marmot, ships enhanced NIP-17 group chats**
  [Nymchat](https://github.com/Spl0itable/NYM) shipped 14 releases from [v3.56.261](https://github.com/Spl0itable/NYM/releases/tag/3.56.261) through [v3.58.274](https://github.com/Spl0itable/NYM/releases/tag/v3.58.274). After adding Marmot MLS group chats in v3.57, [v3.58.268](https://github.com/Spl0itable/NYM/releases/tag/v3.58.268) reverted to [NIP-17](/en/topics/nip-17/) because Marmot's multi-device support is unfinished, causing group state sync issues. v3.58.271 introduces enhanced NIP-17 group chats with rotating ephemeral keys per message to prevent timing and correlation attacks. A friend system with granular settings controls ([v3.58.262](https://github.com/Spl0itable/NYM/releases/tag/v3.58.262)) and multiple relay connectivity fixes also shipped.

- **52:28 nak v0.19.5 adds Blossom multi-server and outbox publishing**
  [nak](https://github.com/fiatjaf/nak) shipped [v0.19.5](https://github.com/fiatjaf/nak/releases/tag/v0.19.5). The `blossom` command now accepts multiple `--server` flags for uploading to several [Blossom](/en/topics/blossom/) servers in one call. A new `key` command expands partial keys by left-padding with zeroes. The `event` command gains `--outbox` for outbox-model publishing, and `fetch` exits with an error code when no event is returned.

### Project Updates

- **54:07 White Noise adds thumbhash previews and push registration bridge**
  [White Noise](https://github.com/marmot-protocol/whitenoise) merged five PRs. [PR #549](https://github.com/marmot-protocol/whitenoise/pull/549) replaces blurhash image previews with thumbhash (sharper placeholders at under 30 bytes, with blurhash as fallback). [PR #548](https://github.com/marmot-protocol/whitenoise/pull/548) adds the [MIP-05](/en/topics/mip-05/) push registration bridge connecting the push notification spec to the client. [PR #493](https://github.com/marmot-protocol/whitenoise/pull/493) adds cursor-based pagination for chat messages.

- **55:29 Route96 adds dynamic label configuration and zero-egress cleanup**
  [Route96](https://github.com/v0l/route96) merged [PR #80](https://github.com/v0l/route96/pull/80) for dynamic label model configuration via the admin API, [PR #82](https://github.com/v0l/route96/pull/82) adding label config fields to the admin UI, and [PR #79](https://github.com/v0l/route96/pull/79) adding a zero-egress file cleanup policy that automatically removes files never downloaded.

- **56:17 Snort ships security hardening and DVM payment invoices**
  [Snort](https://github.com/v0l/snort) shipped two releases with a comprehensive security audit: real Schnorr signature verification, [NIP-46](/en/topics/nip-46/) relay message forgery protection, PIN encryption improvements, and removal of unverified NIP-26 delegation trust. Performance improvements include batched WASM signature verification, lazy-loaded routes, and pre-compiled translations. [PR #618](https://github.com/v0l/snort/pull/618) adds [NIP-90](/en/topics/nip-90/) kind `7000` payment-required invoice display so DVM payment requests render as Lightning invoices in the feed.

- **57:42 Damus improves LMDB compaction**
  [Damus](https://github.com/damus-io/damus) merged [PR #3719](https://github.com/damus-io/damus/pull/3719) adding automatic LMDB compaction on a schedule, preventing the local database from growing unbounded. [PR #3663](https://github.com/damus-io/damus/pull/3663) improves the BlurOverlayView appearance.

- **01:00:28 Captain's Log adds tag indexing and note sync**
  [Captain's Log](https://github.com/nodetec/captains-log) (Comet) merged four PRs adding tag indexing and sync across notes ([PR #156](https://github.com/nodetec/captains-log/pull/156)), refactoring note sync and tag handling ([PR #157](https://github.com/nodetec/captains-log/pull/157)), and fixing trashed note sync so deleted notes stay deleted across devices ([PR #159](https://github.com/nodetec/captains-log/pull/159)).

- **01:01:11 Relatr v0.2.x redesigns plugin system with Nostr-native validator marketplace**
  [Relatr](https://github.com/ContextVM/relatr), a [Web of Trust](/en/topics/web-of-trust/) scoring engine, shipped the v0.2.x family with a complete plugin system redesign. Validators are now written in Elo, a portable functional expression language with multi-step host-orchestrated capabilities (Nostr queries, social graph lookups, NIP-05 resolution). Plugins are published as kind `765` Nostr events. A new [plugin marketplace](https://relatr.net) lets operators discover, install, and weight validators from the browser. The architecture is sandboxed: plugins can only invoke capabilities the host explicitly provides.

- **01:03:11 Shopstr improves mobile navigation and access control**
  [Shopstr](https://github.com/shopstr-eng/shopstr) pushed 158 commits across its main app and [Milk Market](https://github.com/shopstr-eng/milk-market). Fixes include mobile community layout, menu close-on-navigation, and dropdown auto-close. Protected routes now block direct URL access without authentication, and slug matching logic handles multiple exact matches correctly.

- **01:03:52 Pollerama adds notifications, movie search, and rating UI**
  [Pollerama](https://github.com/formstr-hq/nostr-polls) added thread notifications, a movie search feature, a rating UI overhaul, feed loading fixes, and dependency bumps.

- **01:04:17 Purser builds Nostr-native payment daemon with Marmot encryption**
  [Purser](https://github.com/EthnTuttle/purser), a Nostr-native payment daemon designed as a Zaprite replacement, merged nine PRs building out core architecture. The project uses [Marmot](/en/topics/marmot/) MLS via MDK for encrypted merchant-customer messaging with Strike and Square as payment providers. This week landed config and catalog loading, message schema validation, the MDK communication layer, Strike and Square provider implementations, a polling engine, anti-spam rate limiting, and the order processing pipeline. All 99 tests now exercise real mdk-core MLS operations.

- **01:05:48 Vector refactors DM attachments and adds profile editing**
  [Vector](https://github.com/VectorPrivacy/Vector) merged [PR #55](https://github.com/VectorPrivacy/Vector/pull/55) moving DM attachment decryption and saving to the vector-core library, adding profile editing support, and properly wiring the upload cancel flag through TauriSendCallback.

### NIP Updates

- **01:06:26 NIP-58 (Badges): Profile Badges move to kind 10008, Badge Sets to kind 30008 ([PR #2276](https://github.com/nostr-protocol/nips/pull/2276)) — Merged**
  [NIP-58](/en/topics/nip-58/) defines badge awards and profile badge display on Nostr. Previously, Profile Badges (the list a user displays) used kind `30008`, the same kind as Badge definitions (parameterized replaceable events keyed by a `d` tag). This created ambiguity. The merged PR migrates Profile Badges to kind `10008`, a simple replaceable event with one per pubkey and no `d` tag needed, while kind `30008` is repurposed for Badge Sets (curated collections of badge definitions). Clients now query a single replaceable event per user for their displayed badges rather than scanning parameterized replaceable events. Amethyst v1.07.3 already ships this migration.

- **01:07:35 NIP-34 (Git Stuff): Add git-related follow lists ([PR #2130](https://github.com/nostr-protocol/nips/pull/2130)) — Merged**
  [NIP-34](/en/topics/nip-34/) defines how to host git repositories on Nostr using kind `30617` repository announcements. This merged PR adds follow list conventions for repository and issue tracking: users publish kind `30000` follow sets with `d` tags like `git-repos` or `git-issues` containing `a` tag references to repositories they want to track. Clients can subscribe to these follow sets to show repository activity in a user's feed, working the same way kind `3` contact lists work for pubkeys. This closes a gap where there was no Nostr-native way to follow repository activity without subscribing to a specific relay.

- **01:08:22 NIP-AC: P2P Voice and Video Calls over WebRTC ([PR #2301](https://github.com/nostr-protocol/nips/pull/2301)) — Open**
  [NIP-AC](/en/topics/nip-ac/) expands the original NIP-100 (already implemented by 0xChat) with three changes: migration to [NIP-44](/en/topics/nip-44/) encryption wrapped in [NIP-59](/en/topics/nip-59/) gift wraps to eliminate metadata leaks, a specified WebRTC workflow for call setup (offer, answer, ICE candidates), and a mesh group call model where each peer establishes a direct WebRTC connection to every other peer. The new spec is not backwards-compatible with NIP-100. Amethyst is actively building against it, with a call state machine test suite ([PR #2143](https://github.com/vitorpamplona/amethyst/pull/2143)) and stale call offer handling ([PR #2164](https://github.com/vitorpamplona/amethyst/pull/2164)) already merged this week.

- **01:09:38 NIP-340 (FROST Quorum) ([PR #2299](https://github.com/nostr-protocol/nips/pull/2299)) — Open**
  [NIP-340](/en/topics/nip-340/) proposes conventions for [FROST](/en/topics/frost/) (Flexible Round-Optimized Schnorr Threshold) signing on Nostr. FROST lets a group of signers collectively control a Nostr identity where any t-of-n members can sign events without reconstructing the full private key. Signing rounds are coordinated, key shares are distributed, and threshold-signed events are published using the conventions defined in the NIP. This builds on the Igloo iOS signer work from the [FROSTR project](/en/newsletters/2026-04-01-newsletter/#igloo-signer-11) and addresses custody and security use cases where no single device should hold a complete key.

- **01:10:41 NIP-5D (Nostr Web Applets) ([PR #2303](https://github.com/nostr-protocol/nips/pull/2303)) — Open**
  [NIP-5D](/en/topics/nip-5d/) defines a `postMessage` protocol for sandboxed web applications ("napplets") running in iframes to communicate with a hosting application ("shell"). The shell provides the napplet with Nostr signing, relay access, and user context through a structured message API, while the iframe sandbox prevents direct key access. This extends the static website hosting model from [NIP-5A](/en/topics/nip-5a/) toward interactive applications that can read and write Nostr events: where NIP-5A serves a page, NIP-5D runs a program. A working runtime implementation accompanies the proposal.

- **01:12:08 NIP-5C (Scrolls) ([PR #2281](https://github.com/nostr-protocol/nips/pull/2281)) — Open**
  [NIP-5C](/en/topics/nip-5c/) (renamed from the earlier NIP-A5 proposal) defines conventions for publishing and discovering WebAssembly programs on Nostr. WASM binaries are stored as Nostr events on relays, and clients can download and execute them in a sandboxed runtime. Scrolls are self-contained programs that turn Nostr into a distribution network for executable code. A [demo app](https://nprogram.netlify.app/) shows scrolls running in-browser, with example programs published as Nostr events that any client can fetch and execute. The concept extends NIP-5A from serving HTML to running interactive programs across the same relay infrastructure.

- **01:13:14 NIP-85 (Trusted Assertions): Clarifications ([PR #2304](https://github.com/nostr-protocol/nips/pull/2304)) — Open**
  [NIP-85](/en/topics/nip-85/) defines a model for trusted assertions where service providers attest to facts about users. This PR tightens the specification language around multiple keys and relays per service provider, clarifying how clients should handle assertions from providers that operate across several pubkeys or relay endpoints. The changes address ambiguity in the current spec that leads to inconsistent client implementations.

- **01:13:42 NIP-24 (Extra Metadata Fields): published_at for replaceable events ([PR #2300](https://github.com/nostr-protocol/nips/pull/2300)) — Open**
  [NIP-24](/en/topics/nip-24/) defines extra metadata fields for Nostr events. This PR generalizes the `published_at` tag from [NIP-23](/en/topics/nip-23/) long-form content to all replaceable and addressable events. The tag is display-only: if `published_at` equals `created_at`, the event was created at that time; if they differ (because the event was updated), clients can show both a creation and an update timestamp. This lets kind `0` profiles display "joined at" dates and all replaceable events preserve their original publication timestamp across updates. A companion [NIP-51](/en/topics/nip-51/) proposal ([PR #2302](https://github.com/nostr-protocol/nips/pull/2302)) adds the same tag to list events.

- **01:15:47 NIP-59 (Gift Wrap): Ephemeral gift wrap kind ([PR #2245](https://github.com/nostr-protocol/nips/pull/2245)) — Open**
  [NIP-59](/en/topics/nip-59/) defines the gift wrap protocol used by [NIP-17](/en/topics/nip-17/) private DMs and other metadata-protecting applications. The existing kind `1059` gift wrap is a regular event that relays are expected to store. This PR adds kind `21059` as an ephemeral counterpart: relays are not expected to store ephemeral events and may discard them after delivery. This lets applications send gift-wrapped messages that disappear from relays once delivered, reducing storage requirements for high-volume or transient messaging while keeping the same three-layer encryption model as regular NIP-17 DMs.

- **01:16:35 OpenSats announces sixteenth wave of Nostr grants**
  [OpenSats](https://opensats.org) announced its [sixteenth wave of Nostr grants](https://opensats.org/blog/sixteenth-wave-of-nostr-grants) on April 8 with four first-time grants and one renewal. [Amethyst Desktop](https://github.com/vitorpamplona/amethyst/tree/main/desktopApp) receives funding for contributor Robert Nagy to build a standalone desktop app on the [Quartz](/en/topics/quartz/) and Commons modules. [Nostr Mail](https://github.com/nogringo/nostr-mail) receives funding to build an email system using kind `1301` events in [NIP-59](/en/topics/nip-59/) gift wraps with an SMTP bridge. [Nostrord](https://github.com/Nostrord/nostrord) receives funding for a Kotlin Multiplatform [NIP-29](/en/topics/nip-29/) client with Discord-style moderation. [Nurunuru](https://github.com/tami1A84/null--nostr) receives funding for a native iOS Japanese-focused client with passkey biometric login. HAMSTR receives a renewal grant.

### NIP Deep Dives

- **01:17:48 NIP Deep Dive: NIP-17 (Private Direct Messages)**
  [NIP-17](https://github.com/nostr-protocol/nips/blob/master/17.md) replaces [NIP-04](/en/topics/nip-04/) as the standard for private DMs on Nostr, using [NIP-44](/en/topics/nip-44/) encryption with [NIP-59](/en/topics/nip-59/) gift wrap in a three-layer system. The innermost layer is an unsigned kind `14` message (the "rumor") providing limited deniability. The kind `13` seal is signed by the real sender and NIP-44-encrypted to the recipient, with no tags to avoid revealing the recipient if decrypted alone. The outermost kind `1059` gift wrap is signed by a random throwaway key with a randomized timestamp up to two days in the past, so relays see only an anonymous event addressed to the recipient. NIP-17 does not provide forward secrecy: all messages use the static Nostr keypair, so a compromised nsec decrypts all past and future messages. Kind `10050` events publish a user's preferred DM relay list for delivery routing. Implementations include Amethyst, Primal, Nostur, Damus, noStrudel, Coracle, Flotilla, and nospeak.

- **01:26:23 NIP Deep Dive: NIP-46 (Nostr Remote Signing)**
  [NIP-46](https://github.com/nostr-protocol/nips/blob/master/46.md) separates the private key from the client application. The user runs a remote signer ("bunker") that holds the key and responds to signing requests over Nostr relays using kind `24133` events encrypted with [NIP-44](/en/topics/nip-44/). A client generates a disposable session keypair and sends JSON-RPC-like requests: `connect`, `sign_event`, `get_public_key`, `ping`, `nip04_encrypt`, `nip04_decrypt`, `nip44_encrypt`, `nip44_decrypt`, and `switch_relays`. Clients request specific capabilities at connection time through a permission string (`sign_event:1,nip44_encrypt`). Connections are initiated by either side: `bunker://` URLs from signers, `nostrconnect://` URLs from clients, with a `secret` parameter preventing spoofing. Amber v6.0.0-pre1 adds per-connection signing keys so each client gets an isolated key. [nsec.app](https://github.com/nicktee/nsecapp) provides a web-based bunker. Auth challenges via `auth_url` handle cases where the signer needs a password, biometric, or hardware token before approving a request.
]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #16</title>
      <description>Amethyst ships NIP-62 Request to Vanish and relay management, NIP-5A merges for static websites on Nostr, and Marmot adoption widens.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde4xvmnydf3xcunsded095hq7ngvaenxusjnh9wl</link>
      <pubDate>Sun, 05 Apr 2026 07:01:56 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1775372516987-yipzhgs3r</guid>
      <enclosure url="https://blossom.primal.net/b4d5028dd53ca10f4ca75ac2fafd47fdeaf253b92657b3aef1f4a34975fbb990.ogg" type="audio/ogg" length="37786258" />
      
      <itunes:duration>01:04:39</itunes:duration>
      <itunes:episode>16</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/85d36c609918fd36318175ccbd3749ed0f458dc245a6d80ce85f94a8ff6b9711.png" />
      
      
      <content:encoded><![CDATA[### News

- **00:00 Amethyst ships pinned notes, relay management, and Request to Vanish**
  Amethyst shipped six releases from v1.07.0 through v1.07.5 in three days. The headline features span pinned notes, a polls feed, [NIP-62](/en/topics/nip-62/) Request to Vanish for requesting full event deletion from relays, [NIP-86](/en/topics/nip-86/) relay management API directly from the client, [NIP-66](/en/topics/nip-66/) relay liveness in the info screen, and [NIP-43](/en/topics/nip-43/) member info display. v1.07.2 added GIF keyboard uploads and fixed an Amber signing regression, and v1.07.5 fixes an image uploading crash.

- **01:44 NIP-5A merges, bringing static websites to Nostr**
  [NIP-5A](https://github.com/nostr-protocol/nips/blob/master/5A.md) merged via [PR #1538](https://github.com/nostr-protocol/nips/pull/1538), defining kind `15128` for root sites and kind `35128` for named sites. Each manifest maps URL paths to SHA256 hashes, with `server` tags pointing to [Blossom](/en/topics/blossom/) storage hosts. A host server resolves the author's pubkey from the subdomain, fetches the manifest from the author's relay list, and serves files by downloading matching blobs. Existing implementations include [nsite](https://github.com/lez/nsite) and [nsite-manager](https://github.com/hzrd149/nsite-manager).

- **09:16 White Noise fixes relay churn and expands client controls**
  White Noise shipped [v2026.3.23](https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.3.23) with quorum-based relay-list publishing, scoped ephemeral relay sessions, NIP-C7 reply threading, deleted message placeholders, in-app bug reports via [NIP-44](/en/topics/nip-44/) anonymous reports, chat archiving, mute with configurable durations, notification settings, and preparatory push-registration work for iOS and Android.

- **11:33 Nostr VPN reaches v0.3.0 with roster sync and invite v2**
  [nostr-vpn](https://github.com/mmalmi/nostr-vpn) shipped through [v0.3.3](https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.3) with two breaking changes: invite format v2 and admin-signed roster sync. An admin node can now push membership changes to all peers without manual per-peer configuration updates.

- **13:22 nospeak launches as a 1.0 private messenger**
  [nospeak](https://github.com/psic4t/nospeak) shipped [1.0.0](https://github.com/psic4t/nospeak/releases/tag/v1.0.0) with [NIP-17](/en/topics/nip-17/) one-on-one chats using [NIP-59](/en/topics/nip-59/) gift wrap and [NIP-44](/en/topics/nip-44/) encryption, AES-256-GCM media encryption before upload to Blossom, and a self-hostable container deployment.

- **13:49 Flotilla v1.7.0 adds voice rooms and email login**
  [Flotilla](https://gitea.coracle.social/coracle/flotilla) shipped [v1.7.0](https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.0) and [v1.7.1](https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.1) with voice rooms contributed by mplorentz, email/password login, proof-of-work DMs, DM editing, Blossom support detection, Android push notification fallback, and redesigned relay onboarding. The voice room join dialog solves a UX problem where entering a voice-enabled room previously forced microphone activation.

- **19:02 Caravel**
  [Caravel](https://gitea.coracle.social/coracle/caravel), hodlbod's new hosting manager and dashboard for zooid relays, logged 40 commits this week in initial development.

- **20:15 Nymchat ships Marmot-powered group chats**
  [Nymchat](https://github.com/Spl0itable/NYM) announced all new group chats now use the [Marmot](/en/topics/marmot/) protocol for MLS-encrypted messaging with [NIP-17](/en/topics/nip-17/) fallback. The v3.55 and v3.56 series fixed group chat edge cases, patched an XSS vulnerability, and added keyword/phrase blocking. This makes Nymchat another Marmot client joining White Noise and OpenChat.

### Releases

- **21:28 Calendar by Form* v1.0.0**
  [Calendar by Form*](https://github.com/formstr-hq/nostr-calendar) reached [v1.0.0](https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.0.0) with private calendar lists using encrypted kind `32123` events with [NIP-44](/en/topics/nip-44/) self-encryption, ICS intent handling, and invitation requests.

- **22:08 Amber v5.0.2 through v5.0.4**
  [Amber](https://github.com/greenart7c3/Amber) shipped three point releases adding mnemonic recovery phrase login, a [NIP-42](/en/topics/nip-42/) relay auth whitelist, and encryption scope selection for decrypt permissions. v5.0.4 fixes scoped permission handling and improves bunker request performance.

- **24:24 Aegis v0.4.0**
  [Aegis](https://github.com/ZharlieW/Aegis) shipped [v0.4.0](https://github.com/ZharlieW/Aegis/releases/tag/v0.4.0) with Full and Selective authorization modes, QR-scanning fixes, batch select controls, and per-permission usage statistics.

- **24:45 Schemata v0.2.7 through v0.3.0**
  [Schemata](https://github.com/nostrability/schemata) shipped four releases with 21 merged PRs. v0.3.0 brings pattern consistency fixes across relay URLs, hex IDs, MIME types, and BOLT-11 strings, NIP-19 bech32 base type schemas, and kind 777 spell event validation. The release pipeline now publishes a kind `1` note on each release. Schemata now supports 12+ languages beyond JS/TS.

- **26:52 BigBrotr v6.5.0 through v6.5.4**
  [BigBrotr](https://github.com/BigBrotr/bigbrotr) shipped five releases with centralized relay URL validation, geohash location tags for announcement events, [NIP-66](/en/topics/nip-66/) timeout protection, and a PostgreSQL 16 to 18 upgrade.

- **30:09 Vertex Lab relay adds NIP-50 profile search**
  [Vertex Lab](https://vertexlab.io) announced `wss://relay.vertexlab.io` now supports [NIP-50](/en/topics/nip-50/) profile search, combining full-text user discovery with existing Web of Trust data.

- **30:50 Hashtree v0.2.17 and v0.2.18 ship WebRTC mesh and Iris Desktop**
  [Hashtree](https://github.com/mmalmi/hashtree) shipped two releases adding WebRTC peer-to-peer blob distribution, Windows build artifacts, and Iris Desktop 0.1.0 bundled as AppImage, .deb, and Windows installer.

- **32:01 Nostr Mail Client v0.7.0 through v0.7.2**
  [Nostr Mail Client](https://github.com/nogringo/nostr-mail-client) shipped three releases with onboarding, profile editing, and fresh Android and Linux builds.

- **32:30 Wisp v0.14.0 through v0.16.1**
  [Wisp](https://github.com/barrydeen/wisp) shipped 13 releases with NIP-17 rumor JSON fixes, repost badges, expandable reaction details, persistent emoji sets, and video autoplay controls.

- **33:49 Primal Android 3.0.17**
  [Primal Android](https://github.com/PrimalHQ/primal-android-app) shipped [3.0.17](https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.17) with [NIP-47](/en/topics/nip-47/) structured error codes, a poll zap vote fix, and wallet balance visibility fix.

- **34:19 OpenChat v0.2.4 through v0.3.0**
  [OpenChat](https://github.com/DavidGershony/openChat) shipped six releases adding [NIP-42](/en/topics/nip-42/) relay auth, voice message controls (pause, resume, seek), Amber connection fixes, AES-256-GCM secure storage on Linux/macOS, and [NIP-65](/en/topics/nip-65/) relay discovery with local metadata caching.

- **35:14 Igloo Signer 1.1**
  [Igloo](https://github.com/FROSTR-ORG/igloo-ios-prototype) shipped [v1.1](https://github.com/FROSTR-ORG/igloo-ios-prototype/releases/tag/v1.1), the iOS [FROST](/en/topics/frost/) threshold signer from the FROSTR project. FROST signatures let a group of signers collectively control a Nostr keypair where any t-of-n participants can sign without any single party holding the full key.

- **36:23 nak v0.19.3 and v0.19.4**
  [nak](https://github.com/fiatjaf/nak) shipped two releases fixing panic conditions in string splitting and curl flag parsing.

- **36:34 Flora v0.3.0**
  [Flora](https://github.com/shawnyeager/flora-extension) shipped [v0.3.0](https://github.com/shawnyeager/flora-extension/releases/tag/v0.3.0) adding private encrypted video sharing with AES-256-GCM via [NIP-17](/en/topics/nip-17/).

- **37:04 YakiHonne Mobile 2.0.3**
  [YakiHonne](https://github.com/YakiHonne/mobile-app) shipped [2.0.3](https://github.com/YakiHonne/mobile-app/releases/tag/YakiHonne-2.0.3) with relay reviews, nested replies, auto-translation, and NWC multi-relay support.

### Project Updates

- **37:31 Zap Cooking adds zap polls and Branta payment verification**
  [Zap Cooking](https://github.com/zapcooking/frontend) merged 11 PRs adding zap polls (kind 6969) and [Branta](https://branta.pro/) payment destination verification with camera-based QR scanning.

- **38:13 diVine lays groundwork for unified search and hardens video delivery**
  [diVine](https://github.com/divinevideo/divine-mobile) added a unified search screen foundation, shared pagination controller, video delivery retry with fallback to raw blobs, and resumable upload recovery.

- **38:39 Shopstr adds custom storefronts and Milk Market keeps shipping marketplace work**
  [Shopstr](https://github.com/shopstr-eng/shopstr) added custom storefronts. [Milk Market](https://github.com/shopstr-eng/milk-market) continued with storefront optimizations, account recovery, and beef splits.

- **41:21 Notedeck adds sound effects and extends its updater path toward Android**
  [Notedeck](https://github.com/damus-io/notedeck) added a sound effects subsystem and Agentium CLI updates. An open PR proposes APK self-update via Nostr/Zapstore on Android.

- **41:53 Nostria adds repost relay hints and NIP-98 alignment**
  [Nostria](https://github.com/nostria-app/nostria) added [NIP-18](/en/topics/nip-18/) repost relay hints, aligned HTTP auth with [NIP-98](/en/topics/nip-98/), and added Schemata validation tests.

- **43:20 Nostr-Doc adds desktop packaging and offline-first work**
  [Nostr-Doc](https://github.com/formstr-hq/nostr-docs) added desktop app packaging, native app work, offline-first behavior, and Ctrl+S save.

- **43:59 rust-nostr optimizes NIP-21 parsing and adds relay-side NIP-62 support**
  [rust-nostr](https://github.com/rust-nostr/nostr) optimized NIP-21 URI parsing and has four open PRs adding [NIP-62](/en/topics/nip-62/) support across memory, LMDB, SQLite, and database test backends.

- **44:20 nostr-tools adds bunker relay control and fixes NIP-47 multi-relay parsing**
  [nostr-tools](https://github.com/nbd-wtf/nostr-tools) added `skipSwitchRelays` for manual bunker relay management and fixed [NIP-47](/en/topics/nip-47/) connection string parsing for multiple relays.

- **44:36 Nostrability integrates Sherlock audit data and publishes Schemata overview**
  [Nostrability](https://github.com/nostrability/nostrability) merged 14 PRs integrating Sherlock scan statistics into the dashboard with per-client schema fail rates. elsat published a Schemata overview covering 179 event kind schemas across 65 NIPs.

- **46:04 Nalgorithm adds digest generation and local score caching**
  [Nalgorithm](https://github.com/jooray/nalgorithm) started public development with a relevance-ranked feed, CLI digest tool for spoken-word summaries, and file-based score caching with incremental preference learning.

- **46:54 TENEX adds RAG vector store and targeted MCP startup**
  [TENEX](https://github.com/tenex-chat/tenex) added a pluggable vector store (SQLite-vec, LanceDB, Qdrant), targeted MCP startup, and a proactive `send_message` tool for Telegram-bound agents.

- **48:21 Dart NDK moves Amber signer and adds Alby Go 1-click**
  [Dart NDK](https://github.com/relaystr/ndk) moved Amber signer support into ndk_flutter and added Alby Go one-click wallet connection.

- **48:44 Marmot moves KeyPackages to addressable events and tightens push notifications**
  The [Marmot spec](https://github.com/marmot-protocol/marmot) migrated KeyPackage events from regular `kind:443` to addressable `kind:30443`, allowed non-admin SelfRemove, required admins to relinquish status before departure, and tightened MIP-05 push notification wire format.

### NIP Updates

- **50:48 NIP-5A: Static Websites (PR #1538)**
  Merged. Kind `15128` and `35128` manifest events for hosting static websites under Nostr keypairs using Blossom storage.

- **51:10 NIP-30: Custom Emoji**
  Merged via [PR #2297](https://github.com/nostr-protocol/nips/pull/2297). Allows hyphens in shortcodes, documenting existing usage.

- **51:33 NIP-C1: Agent TUI Messages (PR #2295)**
  Proposes structured message format for agents to send interactive UI elements (text, buttons, card, table) through encrypted DMs using existing [NIP-17](/en/topics/nip-17/) and [NIP-04](/en/topics/nip-04/) content as JSON.

- **51:58 NIP-95: Hybrid Peer-to-Peer Relay Protocol (PR #2293)**
  Proposes relays coordinating peer-to-peer event distribution over WebRTC, with stable clients as Super Peers and the relay as seed node and fallback.

- **52:27 NIP-B9: Zap Poll Events (PR #2284)**
  Reopens zap-poll idea with kind `6969` poll definitions and kind `9734` zaps as votes for economic Sybil resistance, complementing free NIP-88 polls.

- **52:49 NIP-AD: Super Zap (PR #2289)**
  Proposes zaps to relay/client pubkeys displayed as promotional notes, turning zap receipts into an ad surface with minimum-sats spam thresholds.

- **53:16 NIP-XX: Agent Reputation Attestations (PR #2285)**
  Proposes kind `30085` for structured reputation attestations with temporal decay, negative ratings with evidence, and graph-diversity Sybil resistance.

- **53:55 NIP-XX: Paid API Service Announcements (PR #2291)**
  Proposes kind `31402` for advertising paid HTTP APIs with tags-first filtering and optional request/response schemas.

- **54:25 NIP-XX: Key Derivation from LNURL-auth via SplitSig (PR #2294)**
  Proposes deriving a Nostr keypair from an LNURL-auth ECDSA signature combined with a client-side nonce, using the Lightning wallet as recovery anchor.

- **55:25 NIP-55: Document rejected field (PR #2290)**
  Documents the `rejected` field for intent-based signer responses, formalizing the behavior Amethyst's v1.07.x fix had to work around.

### NIP Deep Dives

- **55:46 NIP Deep Dive: NIP-5A (Static Websites)**
  [NIP-5A](https://github.com/nostr-protocol/nips/blob/master/5A.md) defines how kind `15128`/`35128` manifests map paths to SHA256 hashes, the three-part serving flow (host server, Blossom storage, author's signed manifest), DNS subdomain format with base36 encoding limited to 13-character `d` tags, and why any component (author, Blossom server, host server) is independently replaceable.

- **1:00:12 NIP Deep Dive: NIP-62 (Request to Vanish)**
  [NIP-62](https://github.com/nostr-protocol/nips/blob/master/62.md) defines kind `62` for requesting full event deletion. Targeted requests use specific `relay` tags, global requests use `ALL_RELAYS`. Goes beyond NIP-09 in scope (everything vs. individual events) and strength (MUST comply vs. MAY comply). Includes gift wrap cleanup and sticky deletion preventing re-broadcast. Amethyst ships client-side support while rust-nostr has relay-side PRs open in the same week. The design resolves the censorship-resistance tension by limiting the request to self-directed deletion.
]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #15</title>
      <description>Primal shipped Follow Packs and deep links, BigBrotr turned leaked nsecs into a network-wide warning system, nostr-vpn and P2P DOOM pushed Nostr beyond social use cases, and the episode closed with a six-year March retrospective.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde58yurvdfhxymnzwpdvdh8seejx33hy6cx7jpaf</link>
      <pubDate>Tue, 31 Mar 2026 19:49:31 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1774986571718-cnxg24crk</guid>
      <enclosure url="https://blossom.primal.net/f7556db630e4ac275a92ae3626056db317c505f0259b32ca5145c172c35bbde4.mp3" type="audio/mpeg" length="83694185" />
      
      <itunes:duration>58:07</itunes:duration>
      <itunes:episode>15</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/fc613561449a16e08122b22e8bcbb2f80972ebf64e876414b785efb4a5ec1669.png" />
      
      
      <content:encoded><![CDATA[Pip, Abh3po, Pete and Max join Nostr Compass Podcast #15 to walk through the biggest stories from [Newsletter #15](https://nostrcompass.org/en/newsletters/2026-03-25-newsletter/), from Primal's new Follow Packs and BigBrotr's relay-scale nsec leak analysis to nostr-vpn, peer-to-peer DOOM, and a dense week of client and protocol releases.

The second half of the episode moves from weekly updates into a longer retrospective, tracing what happened in Nostr each March from 2021 through 2026. That arc runs from fiatjaf making two protocol commits in March 2021 to a March 2026 ecosystem where VPNs, games, signers, CI pipelines, and agent proposals all coexist on the same event-and-relay model.

## Full Show Notes

### News

- **00:00 Intro**
  Opening setup for the week, the guests, and the main themes from Newsletter #15.

- **00:16 Primal adds Follow Packs, zap enrichment, and deep links**
  Primal Android follows last week's 3.0 wallet work with Follow Packs for onboarding, zap enrichment for wallet context, and a `primalconnect://` deep-link protocol for cross-app navigation. The discussion also touches the parallel TestFlight work landing on iOS.

- **03:18 BigBrotr maps exposed private keys across the relay network**
  BigBrotr scans 41 million events across 1,085 relays looking for exposed nsec strings, then separates bot noise from real user exposure. The segment covers the NIP-90 leak checker, npub.world profile warnings, and why the result is both a security story and a Nostr-native service story.

- **09:03 Nostr VPN launches as a Tailscale alternative**
  Martti Malmi's nostr-vpn uses Nostr relays for signaling and WireGuard for encrypted tunnels, replacing centralized account-based coordination with Nostr keypairs. The conversation covers its rapid release cadence, LAN pairing, Windows support, and the broader idea of Nostr as infrastructure rather than only social media.

- **11:14 Open-source DOOM runs peer-to-peer over Nostr**
  Vector's P2P DOOM uses Nostr for discovery, Marmot for encryption, and Iroh for low-latency QUIC transport. This chapter digs into why the stack matters: Nostr coordinates the session, but the actual gameplay moves onto a transport layer built for real-time performance.

- **12:42 FIPS v0.2.0 ships Tor transport, reproducible builds, and sidecar examples**
  FIPS v0.2.0 adds Tor transport for anonymized mesh links, reproducible builds, a sidecar example that connects through a Nostr relay, and OpenWrt workflow improvements. The wire format changes, so the hosts also note that v0.1.0 nodes do not interoperate with v0.2.0 without upgrading.

- **14:29 Nostrability Schemata goes multilingual**
  Nostrability expands from JavaScript-only packages into Rust, Go, Dart, Swift, and Python, while the interop tracker adds a What's New feed and better filtering. The broader point is that event kind validation is becoming a reusable cross-language building block instead of copy-pasted app logic.

### Releases

- **15:11 Amethyst v1.06.0 and v1.06.1**
  Poll support lands with weighted voting based on [NIP-85](/en/topics/nip-85/) (Trusted Assertions), plus redesigned poll cards. The follow-up point release fixes concurrent modification crashes introduced along that new path.

- **16:30 Amber v5.0.0 and v5.0.1**
  Amber promotes its recent relay-auth, Tor, permission-scoping, and encrypted PIN work into stable, then removes internet permission from the offline build flavor in v5.0.1. The hosts frame this as signer hardening reaching production maturity.

- **17:13 Mostro v0.17.0 and Mostro Mobile v1.2.2**
  Mostro continues building out buyer and seller reputation data as Nostr events, while Mostro Mobile stays aligned with the latest protocol changes on the client side.

- **17:39 Shosho v0.14.0**
  Shosho Shop adds storefront surfaces to profiles, browse flows, and live streams. The open question is whether the implementation maps onto [NIP-99](/en/topics/nip-99/) listings or a separate event model.

- **18:13 Applesauce v5.2.0**
  Applesauce ships fixes and new helper APIs across six packages, including `AndroidNativeSigner`, [NIP-42](/en/topics/nip-42/) auth challenge tracking, duplicate event reference helpers, and Blossom server resolution. Because it sits under multiple web clients, the impact reaches well beyond one app.

- **19:15 Wisp ships 16 releases in one week**
  Wisp's release sprint adds multi-account support, zen notifications, drafts, scheduled posts, safety filters, and other UX improvements. The hosts use the run to talk about what raw release count does and does not tell you about a project's momentum.

- **21:03 Manent v1.2.0**
  Manent adds camera capture, image resizing before upload, and pinch-to-zoom for reviewing encrypted notes and files stored across relays.

- **21:37 diVine 1.0.7**
  diVine adds a playback watchdog that auto-resumes stalled videos, targeting the remaining failure path after its earlier test infrastructure and direct MP4 work.

- **21:46 Alby Extension v3.14.2**
  The Alby browser extension adds Lightning address QR display and Schnorr signing support, tightening its alignment with Nostr's native signature scheme.

- **21:55 NoorNote v0.6.5 through v0.6.11**
  NoorNote introduces Follow Packs, NDK v3 migration, picture notes, and a cleaner relay connection flow over seven rapid releases.

- **22:31 nak v0.19.1 and v0.19.2**
  nak continues its steady CLI iteration after last week's group-forum UI addition, reinforcing its role as the Swiss army knife for relay queries, signing, and encoding work.

- **22:45 Calendar by Form* v0.2.1**
  Calendar fixes a notification template problem affecting reminders and offers another concrete example of [NIP-52](/en/topics/nip-52/) calendar events as reusable protocol primitives.

- **25:45 NYM v3.50 through v3.53**
  NYM adds Nymbot, relay management features, and a hardcore mode that rotates to a fresh keypair for every message. The tradeoff between anonymity and persistent identity becomes the center of this segment.

### Project Updates

- **26:29 Ditto adds Bluesky bridge and Wikipedia integration**
  Ditto pushes beyond Nostr-only consumption by rendering Bluesky threads inline through [NIP-73](/en/topics/nip-73/) external content IDs and by turning Wikipedia into a first-class content source. The app starts to look more like a multi-protocol aggregator than a single-network client.

- **27:12 Pika builds a NIP-34 forge CI pipeline**
  Pika's self-hosted forge receives patches as [NIP-34](/en/topics/nip-34/) git events, runs lane-based CI, and reports status back through Nostr events. The hosts treat this as one of the clearest examples yet of Nostr-native development workflows moving past basic patch exchange.

- **27:51 Nostria adds communities, code snippets, and voice event handling**
  Nostria expands into [NIP-72](/en/topics/nip-72/) communities, syntax-highlighted code snippets, voice replies, DM payment flows, better media handling, and more. This segment is about the app surface area that modern clients are expected to cover.

- **28:54 Comet automated builds**
  Comet ships over 40 automated alpha builds in a week, showing constant active development even if the raw build count overstates user-visible feature velocity.

### NIP Updates

- **29:35 NIP-AA: Autonomous Agents on Nostr (PR #2259)**
  A proposal for how autonomous agents identify themselves, discover services, and coordinate over Nostr. The conversation frames it as part of the broader shift from user apps to agent-capable infrastructure.

- **29:52 NIP-50 (Search): Sort extensions (PR #2283)**
  Search relays may gain top, hot, zaps, and new sort modes, moving more result ranking into relay-supported search instead of client-only sorting.

- **34:00 NIP-A5: WASM Programs (PR #2281)**
  A proposal for publishing and discovering WebAssembly programs over Nostr, raising questions about executable distribution, trust, and portable app surfaces.

- **35:16 NIP-CF: Combine Forces interoperable napps (PR #2277)**
  Interoperable napps aim to let different clients and services compose around shared conventions rather than isolated product silos.

- **38:03 Snapshots NIP (PR #2279)**
  A relay snapshot proposal for synchronization and backup.

- **38:24 Checkpoints NIP (PR #2278)**
  A companion proposal for known-good relay state markers.

- **38:45 NIP-58 (Badges): Badge Sets refactor (PR #2276)**
  Badge collections may be reorganized to make issuer and badge-set relationships cleaner and easier to reference.

- **40:12 NIP-11 (Relay Information Document): Extensions (PR #2280)**
  Additional relay metadata fields would make [NIP-11](/en/topics/nip-11/) more useful for machine-readable discovery and feature negotiation.

### Five Years of Nostr Marches

- **40:30 Five Years of Nostr Marches**
  The episode shifts from weekly reporting into a historical retrospective across six March snapshots.

- **40:44 March 2021: Two Commits**
  Four months into Nostr's existence, March 2021 produced just two protocol commits, one of which merely added `kind` to filter definitions. The scale contrast with 2026 sets the frame for the whole retrospective.

- **41:35 March 2022: Pre-Damus Building**
  The protocol repo was quiet, but client tooling kept moving. Branle and more-speech represent the small builder culture that existed before the Damus App Store breakout.

- **42:52 March 2023: Post-Explosion Infrastructure**
  Nostr absorbs its growth wave with 28 merged NIP PRs, the birth of NDK, and the creation of NWC. This segment focuses on the libraries and protocols that made the next phase of app development possible.

- **45:55 March 2024: Protocol Maturation**
  [NIP-34](/en/topics/nip-34/) dominates the month, with debates over decentralized git collaboration showing how far the protocol had moved beyond simple social posting.

- **48:03 March 2025: Infrastructure Expansion**
  [NIP-66](/en/topics/nip-66/) finally merges after a long gestation, while MCP servers, code snippets, and new grants show the ecosystem broadening its technical surface area.

- **55:15 March 2026: Convergence**
  The retrospective lands in the present: VPNs, games, signers, CI pipelines, release distribution, commerce surfaces, and agent proposals all building on the same core event-and-relay model. March 2026 feels less like isolated experiments and more like separate lines locking into a larger system.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #14</title>
      <description>Wallet clients broadened NWC support while removing risky paths, Notedeck pushed signed release discovery onto Nostr, relay selection became more runtime-aware, and the episode closed with deep dives into NIP-94 and NIP-54.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde5xccn2v35xqurgdpdv4hx76n6v9hhxasuyksuk</link>
      <pubDate>Fri, 27 Mar 2026 12:40:40 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1774615240844-enojzaosv</guid>
      <enclosure url="https://blossom.primal.net/3d6522f1d1a26483ddb6189266a96f9549b19d4c2ad4ef7d9ae259353b1ccb47.mp3" type="audio/mpeg" length="50925968" />
      
      <itunes:duration>35:21</itunes:duration>
      <itunes:episode>14</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/db255d2b81069dfbd18087f0ea27c72448d067e9c0dc8f0aa0c1bbbf9e83ada4.png" />
      
      
      <content:encoded><![CDATA[Fmar, Sondre, Paul, and Max join Nostr Compass Podcast #14 to walk through [Newsletter #14](/en/newsletters/2026-03-18-newsletter/), covering the rapid expansion of Nostr Wallet Connect support, Notedeck's move to Nostr-native software release discovery, and a week of client, signer, relay, and protocol updates.

The episode then closes with two protocol deep dives, first on [NIP-94](/en/topics/nip-94/) file metadata and then on [NIP-54](/en/topics/nip-54/) wiki events, tying the week's concrete releases back to the specs shaping how software distribution and collaborative content work on Nostr.

### News

- **00:00 Intro**
  Opening setup for the week's topics, the guests, and the thread connecting wallet infrastructure, relay behavior, and spec work.

- **00:12 Wallet Connect support broadens, and wallet clients tighten failure paths**
  Amethyst pushes its [NIP-47](/en/topics/nip-47/) implementation toward near-full coverage with more request types, capability discovery, notifications, and hold invoice support. At the same time, Alby Hub adds multi-relay support, while Zeus removes an NWC keysend path after identifying a silent fund-drain risk, making this segment as much about narrowing dangerous failure modes as adding features.

- **03:58 Notedeck moves release discovery onto Nostr**
  Notedeck's signed updater now subscribes to kind `1063` release events, matches platform-specific binaries, and verifies SHA256 hashes before install. The hosts focus on why this matters: software release publishing and release discovery can now both move through Nostr-native events instead of depending on GitHub APIs or project websites.

- **06:10 Relay state is moving closer to runtime behavior**
  Damus fixes stale relay-list and LMDB crash paths, Primal iOS starts subscribing directly to a chat partner's write relays while conversations are open, and Nostur experiments with randomized scoring plus [NIP-66](/en/topics/nip-66/) liveness filtering. The broader point is that relay choice is turning from static setup into live runtime policy that clients measure, adapt, and repair.

### Releases

- **09:19 Primal Android 3.0.7**
  Primal Android adds zap-based poll voting, paginated vote loading, richer wallet transaction receipt fetching, and [NIP-89](/en/topics/nip-89/) client metadata tagging. The segment centers on how the app is connecting polling, wallets, and event attribution into one release cycle.

- **15:17 Amber v4.1.3**
  Amber adds built-in Tor, narrows signer permissions down to content-type-specific rules, hardens the offline flavor, and moves PIN storage into encrypted DataStore. The hosts frame this as signer-boundary hardening, not just another feature release.

- **16:13 Route96 v0.6.0**
  Route96 moves configuration and whitelist state into the database with hot reload, adds retention policies, and exposes stronger operator visibility through file stats and a richer user files endpoint.

- **16:45 OpenChat v0.1.0-alpha.11**
  OpenChat keeps tightening Marmot interoperability with NIP-59 gift wrap for Welcome events, MIP-02 and MIP-03 compliance work, and consolidation around the shared `marmot-cs` NIP-44 implementation. The emphasis here is reducing crypto and protocol drift across clients.

- **17:37 nak v0.19.0 and v0.19.1**
  nak's 0.19 line adds a group-forum UI, updates group metadata editing to a full replace flow, and replaces older `no-text` handling with `supported_kinds`, keeping the CLI aligned with current group spec direction.

### Project Updates

- **18:12 Amethyst**
  Beyond wallet connectivity, Amethyst adds [NIP-45](/en/topics/nip-45/) count queries to relay management, encrypted file uploads for [NIP-17](/en/topics/nip-17/) chats, and fuller [NIP-46](/en/topics/nip-46/) bunker login with heartbeat status. The conversation is about making complex remote-signing and relay states visible instead of mysterious.

- **18:58 Nostria**
  Nostria adds Web of Trust filtering for feeds and replies, expands content filtering and repost support on the summary page, and keeps broadening its payments, media, and publishing surface. This chapter is really about how ranking, media, and money are becoming one connected app layer.

- **22:03 Nostur**
  Nostur changes relay routing from a fixed plan into a scored policy using randomized scoring, nostr.watch liveness data, and Thompson sampling. It stands out as one of the clearest examples of adaptive outbox logic moving into production clients.

- **24:15 White Noise backend**
  whitenoise-rs hardens Blossom media boundaries by enforcing HTTPS, adding upload timeouts, and capping blob downloads at `100 MiB`. The hosts treat this as a practical example of securing the edge between encrypted messaging software and untrusted media infrastructure.

- **24:50 rust-nostr**
  rust-nostr adds convenience constructors for `LocalRelayBuilderNip42`, making it easier to turn relay auth policy into embedded relay or test code without repeating boilerplate.

- **25:19 Pika**
  Pika's latest releases focus on runtime convergence: a shared Marmot runtime facade, tighter OpenClaw agent lifecycle handling, and stricter backup and recovery safety. The user-facing surface is smaller this week, but the architectural cleanup matters as the stack grows.

### NIP Updates

- **26:14 NIP-54 (Wiki): Switch from Asciidoc to Djot (PR #2242)**
  [NIP-54](/en/topics/nip-54/) now treats Djot as canonical markup for wiki content. The segment focuses on parser simplicity, better cross-language tooling, and clearer agreement between independent clients.

- **27:16 NIP-19 (Bech32-Encoded Entities): Add input limit (PR #2264)**
  [NIP-19](/en/topics/nip-19/) now recommends capping encoded entity strings at 5000 characters, a small but useful guardrail for QR scans, deep links, share sheets, and pasted user input.

- **28:00 Nostr Key File for NIP-49 (Private Key Encryption) (PR #2269)**
  This proposal would standardize a `.nostrkey` format for encrypted key export and import, giving apps a more normal backup file flow than asking users to move raw `ncryptsec` strings around.

- **28:37 Membership state consistency for NIP-43 (Relay Access Metadata and Requests) (PR #2267)**
  The draft clarifies that relays should maintain one authoritative membership state per pubkey, simplifying group logic around joins, leaves, and replayed history.

- **29:01 Deletion guidance for NIP-17 (Private Direct Messages) (PR #2260)**
  This proposal tackles editing and deleting private messages through gift-wrapped delete events, which matters if [NIP-17](/en/topics/nip-17/) is going to fully replace older DM flows.

- **29:25 Share-intent URI for NIP-222 (PR #2266)**
  The proposed URI scheme would standardize how apps hand shared content into a Nostr client, smoothing one of the roughest app-to-app interop paths on desktop and mobile.

### NIP Deep Dives

- **30:11 NIP Deep Dive: NIP-94 (File Metadata)**
  [NIP-94](/en/topics/nip-94/) defines kind `1063` file metadata events with tags for URLs, MIME types, hashes, previews, fallbacks, and storage service hints. The hosts connect that spec directly to Notedeck's release updater, showing how the same event shape can describe both software artifacts and ordinary media.

- **32:51 NIP Deep Dive: NIP-54 (Wiki)**
  [NIP-54](/en/topics/nip-54/) wiki events use kind `30818`, normalized `d` tags, and article content in `content`, leaving clients to solve both rendering and ranking. The Djot switch matters because it removes parser ambiguity beneath that ranking problem, making multi-client wiki behavior easier to implement consistently.]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #13</title>
      <description>Shopstr commerce MCP, NIP-42 relay auth, Route96 labeling, Samizdat&#39;s Android alpha, and NIP-49 plus NIP-70 trace this week&#39;s Nostr hardening push.
</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde5xv6rsdph8qmnjv3dw4mkzut5xcukw7s0pud9g</link>
      <pubDate>Tue, 24 Mar 2026 10:34:38 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1774348478792-uwaqt69gz</guid>
      <enclosure url="https://blossom.primal.net/2d32f45baaea6746f0f95efc4e197e3c09e29fa1b0dac3847a2454c6382d6b20.ogg" type="audio/ogg" length="39466630" />
      
      <itunes:duration>01:04:05</itunes:duration>
      <itunes:episode>13</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/b163fad781e3b51742ad20577bd23e6a025b7d8a2fb52b86c70f470e17f216ef.png" />
      
      
      <content:encoded><![CDATA[Source newsletter: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/

### 00:00 Intro to ep13

This episode opens on a week where commerce tooling, relay authentication, signer UX, and protected-event enforcement all moved forward together. The throughline is practical hardening: better machine interfaces, tighter auth boundaries, and fewer shortcuts around key management.

### 00:32 Shopstr and Milk Market Open MCP Commerce Surfaces

Shopstr and Milk Market both added MCP surfaces so agents can move through listings, checkout, and post-purchase actions without scraping a web UI. The segment covers agent discovery via `.well-known/agent.json`, API-key auth, seller-side actions, and why Bitcoin-native and mixed fiat flows can now be exposed to tools in a cleaner way.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#shopstr-and-milk-market-open-mcp-commerce-surfaces
- Shopstr PR #234: https://github.com/shopstr-eng/shopstr/pull/234
- Shopstr PR #236: https://github.com/shopstr-eng/shopstr/pull/236
- Shopstr PR #235: https://github.com/shopstr-eng/shopstr/pull/235
- Milk Market commit: https://github.com/shopstr-eng/milk-market/commit/da6c0b499494b4e4861c4ff8a220e066c46285b3
- Milk Market PR #10: https://github.com/shopstr-eng/milk-market/pull/10
- Milk Market PR #11: https://github.com/shopstr-eng/milk-market/pull/11
- NIP-99 topic: https://nostrcompass.org/en/topics/nip-99/
- NIP-47 topic: https://nostrcompass.org/en/topics/nip-47/
- NIP-60 topic: https://nostrcompass.org/en/topics/nip-60/

### 06:07 NIP-42 Relay Auth Across Bunker, Signer, and Relay

This chapter follows NIP-42 from bunker to signer to relay. OAuth Bunker improves delegated identity handling, Amber adds relay-specific auth approval for kind `22242`, and strfry starts enforcing NIP-42 and NIP-70 together so protected events cannot be trivially republished through reposts.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nip-42-relay-auth-across-bunker-signer-and-relay
- OAuth Bunker commit f0c7683: https://github.com/flox1an/oauth-bunker/commit/f0c7683cb2374fd9a3ebd1b186055da8abd2c2ff
- OAuth Bunker commit 6b8796c: https://github.com/flox1an/oauth-bunker/commit/6b8796c6c59c7d48dc1ede92d6de6bf54feb56cc
- Amber v4.1.3-pre4: https://github.com/greenart7c3/Amber/releases/tag/v4.1.3-pre4
- Amber PR #317: https://github.com/greenart7c3/Amber/pull/317
- Amber PR #318: https://github.com/greenart7c3/Amber/pull/318
- strfry PR #156: https://github.com/hoytech/strfry/pull/156
- strfry PR #176: https://github.com/hoytech/strfry/pull/176
- NIP-42 topic: https://nostrcompass.org/en/topics/nip-42/
- NIP-70 topic: https://nostrcompass.org/en/topics/nip-70/

### 14:36 Notedeck Adds NIP-11 Relay Limits and Agentium Features

Notedeck now respects relay limits from NIP-11 documents, adding background fetching, retry backoff, and more polite outbox behavior. The conversation also covers Agentium's clipboard image paste, synced run configs, worktree creation, model picker, and new headless UI testing infrastructure.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#notedeck-adds-nip-11-relay-limits-and-agentium-features
- PR #1316: https://github.com/damus-io/notedeck/pull/1316
- PR #1312: https://github.com/damus-io/notedeck/pull/1312
- PR #1333: https://github.com/damus-io/notedeck/pull/1333
- PR #1336: https://github.com/damus-io/notedeck/pull/1336
- PR #1338: https://github.com/damus-io/notedeck/pull/1338
- PR #1339: https://github.com/damus-io/notedeck/pull/1339
- PR #1314: https://github.com/damus-io/notedeck/pull/1314
- NIP-11 topic: https://nostrcompass.org/en/topics/nip-11/
- NIP-33 topic: https://nostrcompass.org/en/topics/nip-33/

### 17:26 diVine Ships v1.0.6 with E2E Test Infrastructure and NIP-49 Import

diVine v1.0.6 adds NIP-49 account import, multi-account handling, desktop targets, and a locally backed drafts library. The segment also highlights Patrol-based end-to-end testing against a full Docker stack, faster video loading via MP4-first fetches, cached cold starts, and stricter handling of AI-generated content labels.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#divine-ships-v106-with-e2e-test-infrastructure-and-nip-49-import
- diVine v1.0.6: https://github.com/divinevideo/divine-mobile/releases/tag/1.0.6
- PR #1928: https://github.com/divinevideo/divine-mobile/pull/1928
- PR #2105: https://github.com/divinevideo/divine-mobile/pull/2105
- PR #2076: https://github.com/divinevideo/divine-mobile/pull/2076
- PR #2104: https://github.com/divinevideo/divine-mobile/pull/2104
- PR #2100: https://github.com/divinevideo/divine-mobile/pull/2100
- NIP-49 topic: https://nostrcompass.org/en/topics/nip-49/
- NIP-05 topic: https://nostrcompass.org/en/topics/nip-05/

### 21:02 Vector v0.3.2 Ships NIP-77 Negentropy Sync and MLS Improvements

Vector pushes faster catch-up for MLS groups with negentropy-style sync, while also rebuilding audio, adding spoilers, richer previews, mentions, muting, and cancellable uploads. The show notes focus on why Vector is drawing a hard line around MLS for groups instead of mixing in NIP-17 group events.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#vector-v032-ships-nip-77-negentropy-sync-and-mls-improvements
- Vector v0.3.2: https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.2
- Commit b06adf4: https://github.com/VectorPrivacy/Vector/commit/b06adf4af2673fb5ac5add01356999ea70628eac
- Commit 2179a51: https://github.com/VectorPrivacy/Vector/commit/2179a51c0449b3a70663a1573195b7945adf58ba
- NIP-17 topic: https://nostrcompass.org/en/topics/nip-17/
- NIP-44 topic: https://nostrcompass.org/en/topics/nip-44/

### 23:21 Route96 v0.5.0 and v0.5.1

Route96 adds automated AI labeling, retroactive backfill, moderation queues, EXIF privacy rejection, perceptual hashing, and a machine-readable `SKILL.md` for agent tooling. This is one of the clearest examples this week of media infrastructure becoming more inspectable and more automation-friendly at the same time.

- Release v0.5.0: https://github.com/v0l/route96/releases/tag/v0.5.0
- Release v0.5.1: https://github.com/v0l/route96/releases/tag/v0.5.1
- PR #58: https://github.com/v0l/route96/pull/58
- Commit 97b00a3: https://github.com/v0l/route96/commit/97b00a39e27b07053c2ad335dbf475bacba57bf8
- NIP-96 topic: https://nostrcompass.org/en/topics/nip-96/

### 25:21 Samizdat v1.0.0-alpha

Samizdat ships its first Android alpha with native key storage, biometric unlock, deep-link handling, signer handoff, and a more native mobile shell around the long-form reader. The segment covers why NIP-55 signing matters here: publishing can stay delegated while local reading and account access remain simple.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#samizdat-v100-alpha
- Samizdat v1.0.0-alpha: https://github.com/satsdisco/samizdat/releases/tag/v1.0.0-alpha
- Commit d17308f: https://github.com/satsdisco/samizdat/commit/d17308f3c2e6020e14074fbb1c03a8f60f29a3e6
- Commit e29dab8: https://github.com/satsdisco/samizdat/commit/e29dab84f7b58edd621f7b86ed7ca6458f965614
- NIP-55 topic: https://nostrcompass.org/en/topics/nip-55/

### 31:41 Calendar by Form* v0.2.0

Calendar by Form* extends recurring-event handling for NIP-52 and keeps building on private-event sharing with NIP-59 gift wrap support. The practical story is steady app-layer progress on private calendaring rather than one-off demos.

- Release: https://github.com/formstr-hq/nostr-calendar/releases/tag/v0.2.0
- PR #38: https://github.com/formstr-hq/nostr-calendar/pull/38
- NIP-52 topic: https://nostrcompass.org/en/topics/nip-52/
- NIP-59 topic: https://nostrcompass.org/en/topics/nip-59/

### 32:35 Mostro v0.16.4

Mostro adds rating-event duration and expiration fields, configurable order expiration, and duplicate development-fee protection. This chapter focuses on how P2P Bitcoin trading apps keep moving from protocol novelty toward operational correctness.

- Release: https://github.com/MostroP2P/mostro/releases/tag/v0.16.4
- PR #625: https://github.com/MostroP2P/mostro/pull/625
- PR #612: https://github.com/MostroP2P/mostro/pull/612
- PR #614: https://github.com/MostroP2P/mostro/pull/614
- PR #622: https://github.com/MostroP2P/mostro/pull/622

### 33:22 Mostro Mobile v1.2.1

Mostro Mobile adds encrypted multimedia in dispute chat, terminal-state UI auto-close, QR-based NWC wallet import, French localization, and push notification handling. It also carries the Schnorr padding fix that was critical for signing reliability.

- Release: https://github.com/MostroP2P/mobile/releases/tag/v1.2.1
- PR #514: https://github.com/MostroP2P/mobile/pull/514
- PR #503: https://github.com/MostroP2P/mobile/pull/503
- Commit 12eaee4: https://github.com/MostroP2P/mobile/commit/12eaee4d154fa31b07f82b96819de520e825aee6
- PR #496: https://github.com/MostroP2P/mobile/pull/496

### 34:34 0xchat v1.5.4

0xchat focuses this release on Linux polish, image upload fixes, npub.cash integration, and less wasteful UI behavior. The removal of a pointless 3-second polling timer is a small change with big user-facing impact on desktop responsiveness.

- Release: https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.4-release
- PR #49: https://github.com/0xchat-app/0xchat-app-main/pull/49

### 35:40 Keep v0.6.0

Keep ships backup and restore, threshold-share-based nsec recovery, Rust-generated animated QR frames, wallet descriptor coordination, and a signing audit trail. The release closes with a move to MIT in v0.6.1, which changes the project's downstream reuse posture as well as its feature set.

- Release v0.6.0: https://github.com/privkeyio/keep-android/releases/tag/v0.6.0
- Release v0.6.1: https://github.com/privkeyio/keep-android/releases/tag/v0.6.1
- PR #184: https://github.com/privkeyio/keep-android/pull/184
- PR #187: https://github.com/privkeyio/keep-android/pull/187
- PR #188: https://github.com/privkeyio/keep-android/pull/188
- PR #189: https://github.com/privkeyio/keep-android/pull/189
- PR #191: https://github.com/privkeyio/keep-android/pull/191

### 36:33 njump v0.3.0

njump's v0.3.0 release updates its underlying nostr library and makes a breaking change to `note1` parsing. Short segment, but important for anyone relying on njump as a gateway into Nostr content.

- Release: https://github.com/fiatjaf/njump/releases/tag/v0.3.0
- njump: https://njump.me

### 36:57 Roadstr v0.1.1

Roadstr debuts with a map-based interface for decentralized road event reporting, using vector tiles from openfreemap.org. The discussion treats it as another example of Nostr identity and event distribution being used for domain-specific utility apps.

- Release: https://github.com/jooray/roadstr/releases/tag/v0.1.1
- openfreemap: https://openfreemap.org

### 39:52 Bitcredit v0.5.3

Bitcredit adds clearer payment-state fields to the API and fixes signing-address handling for anonymous signers. The segment connects this to the broader trend of Nostr transport getting embedded into business and finance software that is not primarily social.

- Release: https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.3
- PR #846: https://github.com/BitcreditProtocol/Bitcredit-Core/pull/846
- PR #849: https://github.com/BitcreditProtocol/Bitcredit-Core/pull/849

### 42:08 OpenChat v0.1.0-alpha.3

OpenChat adds Amber and NIP-46 signer support, moves MLS persistence deeper into the service layer, and expands its CI-built targets. This section highlights the steady growth of the Marmot and .NET stack outside the original Rust implementation orbit.

- Release: https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.3
- Commit e568d97: https://github.com/DavidGershony/openChat/commit/e568d979fe15eead19172f2eb6f8cf26ca845247
- Commit 4720bc8: https://github.com/DavidGershony/openChat/commit/4720bc8625136a0d5b0e23322bc0c50cd80577e8
- NIP-46 topic: https://nostrcompass.org/en/topics/nip-46/

### 43:00 OpenSignal v1.0.0

OpenSignal packages trading-copilot logic, chart rendering, Nostr publishing, Blossom uploads, and AI inference hooks into a Kotlin Multiplatform release. The story here is less about a single feature and more about how far application specialization on Nostr has now spread.

- Release: https://github.com/turizspace/OpenSignal/releases/tag/v1.0.0
- NIP-96 topic: https://nostrcompass.org/en/topics/nip-96/

### 44:02 Formstr

Formstr's new signup flow uses NIP-49 to encrypt private keys client-side into `ncryptsec`, letting users log in with a password without installing a browser signer. The notes use this segment as a bridge into the NIP-49 deep dive later in the episode.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#formstr
- PR #434: https://github.com/formstr-hq/nostr-forms/pull/434
- Commit e9c4fd5: https://github.com/formstr-hq/nostr-forms/commit/e9c4fd5dadfa0b83f1e87d7596eaf35f9fdb7da8
- NIP-49 topic: https://nostrcompass.org/en/topics/nip-49/

### 44:25 Amethyst

Amethyst lands Namecoin-backed NIP-05 resolution with race-condition fixes, follow-list import support, and custom ElectrumX server settings. This segment emphasizes censorship-resistant identity verification and the practical complexity of resolving non-DNS identifiers on mobile.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#amethyst
- PR #1734: https://github.com/vitorpamplona/amethyst/pull/1734
- PR #1771: https://github.com/vitorpamplona/amethyst/pull/1771
- PR #1785: https://github.com/vitorpamplona/amethyst/pull/1785
- PR #1786: https://github.com/vitorpamplona/amethyst/pull/1786
- NIP-05 topic: https://nostrcompass.org/en/topics/nip-05/

### 45:23 nostr-idb

nostr-idb adds NIP-91 AND-filter support plus interface updates and a deadlock fix. It is a useful reminder that protocol merges only matter once local storage and query libraries actually implement the new semantics.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nostr-idb
- PR #6: https://github.com/hzrd149/nostr-idb/pull/6
- PR #8: https://github.com/hzrd149/nostr-idb/pull/8
- Commit b49b3d3: https://github.com/hzrd149/nostr-idb/commit/b49b3d32c575ff8214dc3fb07675109c2a971972
- NIP-91 topic: https://nostrcompass.org/en/topics/nip-91/

### 46:43 Pensieve

Pensieve adds cache TTL enforcement and miss coalescing to keep expensive time-series endpoints from stampeding the server. The point here is infrastructure economics: efficient archive and analytics layers matter as Nostr datasets grow.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#pensieve
- PR #8: https://github.com/andotherstuff/pensieve/pull/8

### 48:24 Blossom

Blossom merged two BUD-11 auth clarifications that tighten upload verification and clarify request hashing across media-management flows. This closes out the project update section with a protocol-and-server cleanup that matters for anyone building on hosted media.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#blossom
- PR #91: https://github.com/hzrd149/blossom/pull/91
- PR #93: https://github.com/hzrd149/blossom/pull/93

### 49:41 NIP-91 (AND Operator for Filters) (PR #1365)

NIP-91 is now merged, giving tag filters intersection semantics instead of plain OR behavior. The segment explains why that matters for both relay efficiency and downstream libraries like nostr-idb.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nip-updates
- PR #1365: https://github.com/nostr-protocol/nips/pull/1365
- NIP-91 topic: https://nostrcompass.org/en/topics/nip-91/

### 50:15 NIP-66 (Relay Discovery and Liveness Monitoring): Defensive Measures (PR #2240)

PR #2240 adds explicit warnings about stale, wrong, or malicious monitoring data so clients do not over-trust one feed and cut off healthy relay graph edges. This is effectively the defensive appendix that outbox benchmark results demanded.

- PR #2240: https://github.com/nostr-protocol/nips/pull/2240
- NIP-66 topic: https://nostrcompass.org/en/topics/nip-66/

### 50:50 NIP-39 (External Identities in Profiles): kind 10011 Registry Cleanup (PR #2256)

This cleanup aligns the spec directly with the kind `10011` registry Amethyst already implemented, tightening the gap between documentation and deployed client behavior.

- PR #2256: https://github.com/nostr-protocol/nips/pull/2256
- NIP-39 topic: https://nostrcompass.org/en/topics/nip-39/

### 51:26 NIP-70 (Protected Events): Reject reposts that embed protected events (PR #2251)

PR #2251 closes a loophole in protected events by requiring relays to reject reposts that carry protected content. The show notes connect this back to the earlier strfry implementation and the real meaning of relay-enforced protection.

- PR #2251: https://github.com/nostr-protocol/nips/pull/2251
- NIP-70 topic: https://nostrcompass.org/en/topics/nip-70/
- strfry PR #176: https://github.com/hoytech/strfry/pull/176

### 52:30 NIP-71 (Video Events): Multiple Audio Tracks (PR #2255)

This proposal adds alternate audio tracks and audio-only streams to video events, making multilingual video and podcast-like delivery much easier to express through one stable video object.

- PR #2255: https://github.com/nostr-protocol/nips/pull/2255
- NIP-71 topic: https://nostrcompass.org/en/topics/nip-71/

### 53:28 NIP-11 (Relay Information Document) and NIP-66 Relay Attributes (PR #2257)

PR #2257 proposes a structured `attributes` field for relay info documents, giving clients machine-readable metadata that goes beyond human description text. That fits neatly with this week's broader theme of turning implicit behavior into explicit interfaces.

- PR #2257: https://github.com/nostr-protocol/nips/pull/2257
- NIP-11 topic: https://nostrcompass.org/en/topics/nip-11/
- NIP-66 topic: https://nostrcompass.org/en/topics/nip-66/

### 54:11 NIP Deep Dive: NIP-49 (Private Key Encryption)

The NIP-49 deep dive explains how `ncryptsec` works: scrypt-based key derivation, XChaCha20-Poly1305 encryption, bech32 encoding, and a one-byte security-history flag. The conversation centers on where NIP-49 fits relative to plain `nsec` handling, NIP-46 remote signing, and Android signer delegation through NIP-55.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nip-deep-dive-nip-49-private-key-encryption
- NIP-49 topic: https://nostrcompass.org/en/topics/nip-49/
- Formstr PR #434: https://github.com/formstr-hq/nostr-forms/pull/434
- nsec.app: https://nsec.app
- Alby Hub: https://github.com/getAlby/hub
- NIP-46 topic: https://nostrcompass.org/en/topics/nip-46/
- NIP-55 topic: https://nostrcompass.org/en/topics/nip-55/

### 59:17 NIP Deep Dive: NIP-70 (Protected Events)

The final segment walks through the `-` tag, the AUTH challenge flow, kind `22242` signed responses, relay-side enforcement, and the limits of what protected events can actually guarantee. It is a clean closing theme for the episode because it ties together bunker behavior, signer UX, relay policy, and repost enforcement.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nip-deep-dive-nip-70-protected-events
- NIP-70 topic: https://nostrcompass.org/en/topics/nip-70/
- NIP-42 topic: https://nostrcompass.org/en/topics/nip-42/
- strfry PR #156: https://github.com/hoytech/strfry/pull/156
- strfry PR #176: https://github.com/hoytech/strfry/pull/176]]></content:encoded>
      <podcast:value type="lightning" method="lightning">
        <podcast:valueRecipient name="Grafton" type="lnaddress" address="Browntiger1@primal.net" split="20" />
        <podcast:valueRecipient name="Florian" type="lnaddress" address="npub1klr0dy2ul2dx9llk58czvpx73rprcmrvd5dc7ck8esg8f8es06qs427gxc@npub.cash" split="20" />
        <podcast:valueRecipient name="Calvadev" type="lnaddress" address="calvadev@npub.cash" split="20" />
        <podcast:valueRecipient name="Max" type="lnaddress" address="Max@npub.cash" split="20" />
        <podcast:valueRecipient name="Marcano" type="lnaddress" address="marcano@getalby.com" split="20" />
      </podcast:value>
    </item>
    <item>
      <title>Nostr Compass #12</title>
      <description>Podcast #12 is out. We unpack outbox benchmarks, ContextVM&#39;s MCP, and MDK&#39;s public release. We also run through this week&#39;s releases and NIP updates. Then we trace five Februaries of Nostr from the 2021 rewrite to 2026 infrastructure growth. Read the issue at nostrcompass.org.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde5xqurgwphxscnjwpdd4shjurp0q6x76sy36rd6</link>
      <pubDate>Sat, 21 Mar 2026 09:21:14 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1774084874198-maypax4oj</guid>
      <enclosure url="https://blossom.primal.net/d2b742322a8f1a804adacaf863581b7d2b8cb138c21c5281d9bf529d620d23e2.ogg" type="audio/ogg" length="60491962" />
      
      <itunes:duration>01:46:08</itunes:duration>
      <itunes:episode>12</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/788ab3ac36f8f12c13f022aa108ffbbe3fa0bd1f4b3882a37b5ab62349fe2fa8.png" />
      
      
      <content:encoded><![CDATA[Source newsletter: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/

### 00:00 Intro

This episode opens with the week's big themes: relay routing, AI transport over Nostr, Marmot's first public release, and a February-by-February retrospective.

### 00:30 Outbox Model Under the Microscope

Nostrability benchmarked 14 relay selection algorithms across 15 clients and libraries, showing how far smarter relay routing can push recall compared with hardcoded relay sets. The segment covers set-cover plus Thompson Sampling, NIP-66 liveness filtering, faster feed load times, and the practical case for hybrid outbox enrichment in legacy clients.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#outbox-model-under-the-microscope
- Nostrability outbox repo: https://github.com/nostrability/outbox
- NIP-65 topic: https://nostrcompass.org/en/topics/nip-65/
- NIP-66 topic: https://nostrcompass.org/en/topics/nip-66/
- nostr.watch liveness data: https://nostr.watch

### 14:39 ContextVM Opens MCP NIP and Ships Ephemeral Gift Wraps

ContextVM opened the two proposals that anchor its Nostr transport strategy: one for MCP JSON-RPC over Nostr and one for ephemeral gift wraps. This section explains why AI tool traffic benefits from relay-discarded delivery semantics and how ContextVM is trying to standardize that workflow without overloading the base protocol.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#contextvm-opens-mcp-nip-and-ships-ephemeral-gift-wraps
- ContextVM: https://contextvm.org
- MCP over Nostr PR: https://github.com/nostr-protocol/nips/pull/2246
- Ephemeral Gift Wrap PR: https://github.com/nostr-protocol/nips/pull/2245
- CEP-19: https://docs.contextvm.org/spec/ceps/cep-19/

### 27:09 Marmot Development Kit Ships First Public Release

MDK v0.6.0 lands as the first public release of the Marmot Development Kit, bundling encrypted media, deterministic commit race handling, zeroizing secrets, and bindings beyond Rust. The segment also digs into the breaking switch from NIP-44 strings to ChaCha20-Poly1305 for kind 445 messages and the knock-on changes across the Marmot spec, MDK, and marmot-ts.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#marmot-development-kit-ships-first-public-release
- MDK v0.6.0: https://github.com/marmot-protocol/mdk/releases/tag/v0.6.0
- MIP-03 change: https://github.com/marmot-protocol/marmot/pull/48
- MDK PR #208: https://github.com/marmot-protocol/mdk/pull/208
- marmot-ts PR #54: https://github.com/marmot-protocol/marmot-ts/pull/54

### 32:56 Wisp Ships from Alpha to Beta

Wisp moved from its first alpha to beta in eight days, shipping outbox support, NIP-55 signing, Tor, NIP-47, local translation, and a real-time social graph surprisingly fast for a new client. This chapter looks at what that pace says about modern Nostr app bootstrapping and where the feature set already overlaps with longer-running clients.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#wisp-ships-from-alpha-to-beta
- Wisp repo: https://github.com/barrydeen/wisp
- v0.1.0-alpha: https://github.com/barrydeen/wisp/releases/tag/v0.1.0-alpha
- v0.3.4-beta: https://github.com/barrydeen/wisp/releases/tag/v0.3.4-beta

### 34:44 Vector v0.3.1

Vector ships group management upgrades, deterministic negentropy sync, GPU-accelerated voice-to-text, and broad performance wins. The discussion focuses on why reliable offline recovery matters for Marmot messaging and why 15x improvements across startup and UI paths are notable for an encrypted chat app.

- Release: https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.1
- Negentropy topic: https://nostrcompass.org/en/topics/negentropy/

### 36:20 Alby Hub v1.21.5

Alby Hub adds a second default relay for NWC reliability, fixes malformed zap display issues, and expands its app store integrations. The key point here is operational resilience: fewer relay restart failures for self-custodial wallet control.

- Release: https://github.com/getAlby/hub/releases/tag/v1.21.5
- NIP-47 topic: https://nostrcompass.org/en/topics/nip-47/
- NIP-57 topic: https://nostrcompass.org/en/topics/nip-57/

### 38:00 nospeak v0.12.x

nospeak adds app locking, a large translation wave, theme work, Android video poster generation, chat export, and profile-view shortcuts. The segment centers on how quality-of-life work and localization keep text-first messaging clients competitive.

- v0.12.0: https://github.com/psic4t/nospeak/releases/tag/v0.12.0
- v0.12.1: https://github.com/psic4t/nospeak/releases/tag/v0.12.1
- v0.12.2: https://github.com/psic4t/nospeak/releases/tag/v0.12.2

### 39:00 Citrine v2.0.0-pre2

Citrine improves relay performance with new indexes and coroutine changes, gives each hosted web app its own port, and expands search plus event inspection. This is a useful look at the personal-relay side of Nostr scaling.

- Release: https://github.com/greenart7c3/Citrine/releases/tag/v2.0.0-pre2

### 39:36 NoorNote v0.5.x

NoorNote shipped eight releases, bringing Amber support, NIP-71 publishing, relay browsing, custom emoji reactions, and sync fixes in its collaborative tribes system. The episode uses NoorNote as an example of how smaller apps now iterate like full platform products.

- v0.5.0: https://github.com/77elements/noornote/releases/tag/v0.5.0
- v0.5.7: https://github.com/77elements/noornote/releases/tag/v0.5.7
- NIP-55 topic: https://nostrcompass.org/en/topics/nip-55/
- NIP-71 topic: https://nostrcompass.org/en/topics/nip-71/
- NIP-30 topic: https://nostrcompass.org/en/topics/nip-30/

### 40:35 NosCall v0.5.1

NosCall adds voice messages, better desktop entry and contact management, export tools, and accessibility support tied to system font size. The broader theme is steady usability work in Nostr-native calling.

- Release: https://github.com/sanah9/noscall/releases/tag/v0.5.1-release

### 41:06 Shosho v0.13.0

Shosho adds replay downloads, NIP-05 profile verification, better RTMP publishing internals, and fixes for low-bandwidth and older-device streaming. This segment highlights how live media apps keep maturing on top of Nostr identity and distribution.

- Release: https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.13.0
- NIP-05 topic: https://nostrcompass.org/en/topics/nip-05/
- Zap.Stream: https://zap.stream

### 41:56 nostr-java v2.0.0

nostr-java's major bump adds configurable WebSocket buffer sizes so Java apps can process larger events without truncation. It is a small but meaningful library update for developers dealing with growing event payload sizes.

- Release: https://github.com/tcheeric/nostr-java/releases/tag/v2.0.0

### 42:34 Prism 1.1.0

Prism adds kind 30023 long-form support and a Markdown editor, then follows quickly with a bug-fix release. The discussion connects this to ongoing expansion of writing and publishing workflows inside Nostr clients.

- Prism 1.1.0: https://github.com/hardran3/Prism/releases/tag/1.1.0
- Prism 1.1.1: https://github.com/hardran3/Prism/releases/tag/1.1.1

### 42:56 Angor v0.2.6

Angor ships Boltz integration and a one-click invest flow while pushing both invest and fund project paths through testnet. This section looks at crowdfunding UX and how much of the interface still remains to be finished.

- Release: https://github.com/block-core/angor/releases/tag/v0.2.6

### 43:47 NIP-91: AND Operator for Filters

NIP-91 merges and gives relays an AND operator for tag-array filters, which means clients can ask for events matching all specified tag values instead of any one of them. It is a technical change with practical bandwidth and indexing benefits.

- PR #1365: https://github.com/nostr-protocol/nips/pull/1365

### 46:21 NIP-30: Emoji Set Address in Tags

The NIP-30 update lets custom emoji tags include an optional set address, so clients can jump from an individual emoji to the pack it came from. This comes straight out of work in Chachi and makes emoji ecosystems more navigable.

- PR #2247: https://github.com/nostr-protocol/nips/pull/2247
- NIP-30 topic: https://nostrcompass.org/en/topics/nip-30/
- Chachi: https://github.com/purrgrammer/chachi

### 46:47 NIP-29: Add unallowpubkey and unbanpubkey

NIP-29 gets two new moderation commands that separate removing someone from an allowlist from banning them outright. That sounds small, but it fixes awkward group-admin flows that previously forced harsher actions than moderators intended.

- PR #2111: https://github.com/nostr-protocol/nips/pull/2111
- NIP-29 topic: https://nostrcompass.org/en/topics/nip-29/

### 47:30 NIP-A7: Spells

Spells proposes portable saved queries as kind 777 events, with runtime variables like `$me` and `$contacts` plus relative timestamps. The episode treats it as a serious attempt to make feed logic portable across clients rather than trapped in app-specific UI.

- PR #2244: https://github.com/nostr-protocol/nips/pull/2244
- nak: https://github.com/fiatjaf/nak
- Grimoire: https://github.com/purrgrammer/grimoire

### 48:40 NIP-59: Ephemeral Gift Wrap (kind 21059)

This deeper pass on PR #2245 explains why ephemeral gift wrap matters beyond ContextVM specifically. The core idea is simple: keep delivery semantics, drop persistence, and reduce the metadata trail for short-lived encrypted exchanges.

- PR #2245: https://github.com/nostr-protocol/nips/pull/2245
- NIP-59 topic: https://nostrcompass.org/en/topics/nip-59/
- NIP-01 topic: https://nostrcompass.org/en/topics/nip-01/

### 54:52 ContextVM: MCP JSON-RPC over Nostr

Here the conversation zooms in on PR #2246 itself: ephemeral kind 25910 events, `p` and `e` tags for addressing and correlation, and a deliberately thin NIP that leaves richer semantics to the ContextVM spec. It is a useful case study in how adjacent protocol layers should standardize without overfitting the base layer.

- PR #2246: https://github.com/nostr-protocol/nips/pull/2246
- ContextVM spec docs: https://docs.contextvm.org
- Model Context Protocol: https://modelcontextprotocol.io/

### 55:58 NIP-29: Audio/Video Live Spaces

fiatjaf's draft extends NIP-29 groups into live audio and video spaces using LiveKit plus relay-issued JWTs. The segment unpacks the appeal of inheriting group permissions from relay-side membership and the trade-offs in pulling real-time media into relay-backed group systems.

- PR #2238: https://github.com/nostr-protocol/nips/pull/2238
- LiveKit: https://livekit.io/
- NIP-29 topic: https://nostrcompass.org/en/topics/nip-29/

### 57:44 Collaborative Event Ownership

This proposal introduces a pointer event that lists multiple authorized co-owners for a shared addressable resource. The show notes focus on the implications for shared wikis, collaborative docs, and other multi-author state that no longer has to live under one key.

- PR #2235: https://github.com/nostr-protocol/nips/pull/2235

### 01:01:24 NIP-09: Cascading Deletion of Reposts

PR #2234 would have relays delete reposts when an original author deletes the source note, targeting privacy leaks that survive through repost history. The discussion turns on whether relay-side cleanup is the right place to enforce that expectation.

- PR #2234: https://github.com/nostr-protocol/nips/pull/2234
- NIP-09 topic: https://nostrcompass.org/en/topics/nip-09/

### 01:03:55 NIP-07: peekPublicKey

The proposed `peekPublicKey()` method gives browser extensions a no-prompt way to expose the current pubkey when auto-login is already enabled. This chapter weighs convenience for web clients against the long-running caution around silent identity access in NIP-07 signers.

- PR #2233: https://github.com/nostr-protocol/nips/pull/2233
- NIP-07 topic: https://nostrcompass.org/en/topics/nip-07/

### 01:05:31 NIP-BB: Book

NIP-BB sketches a book-publishing format using four addressable event kinds for cover metadata, chapter structure, and episode prose. The episode focuses on how fractional indexing and zap-based reviews could make long-form publishing more native to Nostr.

- PR #2248: https://github.com/nostr-protocol/nips/pull/2248
- NIP-32 topic: https://nostrcompass.org/en/topics/nip-32/

### 01:09:08 NIP-54: Switch from Asciidoc to Djot

This proposal would move NIP-54 wiki content from Asciidoc to Djot, partly to improve internationalized wikilinks and editor ergonomics. It is a standards-maintenance conversation, but one with real downstream effects for documentation tooling.

- PR #2242: https://github.com/nostr-protocol/nips/pull/2242
- NIP-54 topic: https://nostrcompass.org/en/topics/nip-54/
- Djot: https://djot.net/

### 01:09:50 NIP-66: Defensive Measures

PRs #2240 and #2241 fold lessons from the outbox benchmarks back into NIP-66, especially around edge cases and monitoring output tags. The segment closes the loop between empirical relay-routing research and protocol refinement.

- PR #2240: https://github.com/nostr-protocol/nips/pull/2240
- PR #2241: https://github.com/nostr-protocol/nips/pull/2241
- NIP-66 topic: https://nostrcompass.org/en/topics/nip-66/

### 01:10:25 NIP-31402: SARA Revenue Share Offering Registry

The SARA registry wiki entry proposes addressable events for revenue-share offerings discovered across relays. The episode frames it as another sign that Nostr keeps expanding into application-specific registries rather than staying a social-only protocol.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#nip-updates
- SARA entry context: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/

### 01:11:39 Damus: NIP-89 (Recommended Application Handlers)

Damus adds NIP-89 client tags on posting paths, a privacy toggle for emission, and storage usage tooling, while an open PR improves quoted-note fallback through NIP-65 relay lists. The takeaway is that even a mature flagship client is still tightening attribution, storage introspection, and relay recovery behavior.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#damus-nip-89-recommended-application-handlers
- PR #3337: https://github.com/damus-io/damus/pull/3337
- PR #3652: https://github.com/damus-io/damus/pull/3652
- PR #3657: https://github.com/damus-io/damus/pull/3657

### 01:12:27 Amethyst: NIP-39 (External Identities), NIP-C0, NIP-66

Amethyst merged a broad wave of NIPs, spanning external identities, code snippets, relay monitoring, encrypted desktop DMs, and alternative NIP-05 verification through Namecoin. This section is a reminder that Amethyst remains one of the fastest protocol-adoption clients in the ecosystem.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#amethyst-nip-39-external-identities-nip-c0-nip-66
- PR #1747: https://github.com/vitorpamplona/amethyst/pull/1747
- PR #1744: https://github.com/vitorpamplona/amethyst/pull/1744
- PR #1742: https://github.com/vitorpamplona/amethyst/pull/1742
- PR #1710: https://github.com/vitorpamplona/amethyst/pull/1710
- PR #1733: https://github.com/vitorpamplona/amethyst/pull/1733
- PR #1734: https://github.com/vitorpamplona/amethyst/pull/1734

### 01:14:11 Notedeck: Outbox Architecture

Notedeck is moving from ad-hoc relay pool management toward a centralized outbox model with account-scoped subscriptions. In practice that means better DM routing and a clearer relay architecture for a cross-platform client that keeps getting more ambitious.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#notedeck-outbox-architecture
- PR #1303: https://github.com/damus-io/notedeck/pull/1303

### 01:14:29 Pika: Per-Group Profiles and Tutorial Feed

Pika adds encrypted per-group profiles inside Marmot chats and a `pika-news` tutorial site that turns PR diffs into walkthroughs. This segment uses Pika to show how encrypted group apps are starting to build their own internal social and educational layers.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#pika-per-group-profiles-and-tutorial-feed
- PR #368: https://github.com/sledtools/pika/pull/368
- PR #401: https://github.com/sledtools/pika/pull/401

### 01:15:41 diVine: Embeddable Widgets and Video Replies

diVine's latest work includes embeddable widgets, feature-flagged video replies, and Bluesky-style content filters. The episode treats this as a strong example of video products on Nostr iterating toward distribution plus moderation tooling at the same time.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#divine-embeddable-widgets-and-video-replies
- PR #1843: https://github.com/divinevideo/divine-mobile/pull/1843
- PR #1915: https://github.com/divinevideo/divine-mobile/pull/1915
- PR #1797: https://github.com/divinevideo/divine-mobile/pull/1797

### 01:16:17 strfry: REQ Filter Validation

strfry adds configurable REQ filter validation for operators that need tighter query controls, especially for NWC relay deployments. The discussion also flags the open zstd-compression work as part of the same operational-efficiency trend.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#strfry-req-filter-validation
- PR #163: https://github.com/hoytech/strfry/pull/163
- PR #173: https://github.com/hoytech/strfry/pull/173

### 01:17:11 rust-nostr: NIP-62 Request to Vanish

rust-nostr now supports NIP-62 across LMDB, SQLite, and in-memory backends, including options around NIP-09 and vanish enforcement. That makes the library-side privacy story more consistent across deployment environments.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#rust-nostr-nip-62-request-to-vanish
- PR #1268: https://github.com/rust-nostr/nostr/pull/1268
- PR #1270: https://github.com/rust-nostr/nostr/pull/1270
- PR #1272: https://github.com/rust-nostr/nostr/pull/1272
- NIP-62 topic: https://nostrcompass.org/en/topics/nip-62/

### 01:17:29 NDK: Collaborative Events and NIP-46 Timeout

NDK adds collaborative events for multi-author documents and a timeout for NIP-46 signers so bunker calls no longer hang forever. It is a good snapshot of NDK's role as developer infrastructure rather than just a client helper library.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#ndk-collaborative-events-and-nip-46-timeout
- PR #380: https://github.com/nostr-dev-kit/ndk/pull/380
- PR #381: https://github.com/nostr-dev-kit/ndk/pull/381

### 01:18:00 TENEX: Agent Categorization and Pubkey Gating

TENEX merges role-based agent categorization and front-door pubkey gating, both aimed at constraining who gets routed and what tools different agents can use. This chapter sits at the intersection of Nostr and agent security architecture.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#tenex-agent-categorization-and-pubkey-gating
- PR #91: https://github.com/tenex-chat/tenex/pull/91
- PR #87: https://github.com/tenex-chat/tenex/pull/87

### 01:19:14 Zap Cooking: Membership Dashboard

Zap Cooking ships subscription dashboards, two-phase group loading, proper wallet mnemonic encryption, invite-only groups, Nostr backups, performance work, and print customization. The segment makes the case that Nostr apps are now doing ordinary product engineering at a high clip, not just protocol demos.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#zap-cooking-membership-dashboard
- PR #228: https://github.com/zapcooking/frontend/pull/228
- PR #227: https://github.com/zapcooking/frontend/pull/227
- PR #224: https://github.com/zapcooking/frontend/pull/224
- PR #213: https://github.com/zapcooking/frontend/pull/213
- PR #218: https://github.com/zapcooking/frontend/pull/218
- PR #210: https://github.com/zapcooking/frontend/pull/210
- PR #208: https://github.com/zapcooking/frontend/pull/208
- PR #205: https://github.com/zapcooking/frontend/pull/205
- PR #222: https://github.com/zapcooking/frontend/pull/222

### 01:20:36 Keep: Rust-Driven State Migration

Keep removes multiple Kotlin config stores in favor of Rust-driven shared state and adds encrypted backup and restore. The main throughline is consolidation around Rust cores even in Android-first apps.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#keep-rust-driven-state-migration
- PR #178: https://github.com/privkeyio/keep-android/pull/178
- PR #179: https://github.com/privkeyio/keep-android/pull/179

### 01:21:01 Mostro Mobile: Dispute Chat Encryption

Mostro Mobile migrates dispute chat toward a cleaner shared-key and gift-wrap-based design, fixes a BIP-340 signature bug, adjusts payment methods, and gains better status labels. The segment covers both mobile and server-side Mostro fixes as evidence of protocol hardening in P2P Bitcoin markets.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#mostro-mobile-dispute-chat-encryption
- PR #495: https://github.com/MostroP2P/mobile/pull/495
- PR #501: https://github.com/MostroP2P/mobile/pull/501
- PR #496: https://github.com/MostroP2P/mobile/pull/496
- PR #502: https://github.com/MostroP2P/mobile/pull/502
- PR #493: https://github.com/MostroP2P/mobile/pull/493
- Mostro PR #599: https://github.com/MostroP2P/mostro/pull/599
- Mostro PR #606: https://github.com/MostroP2P/mostro/pull/606

### 01:22:56 Five Years of Nostr Februaries

The episode shifts from current development to historical perspective, tracing what February meant for Nostr from the rewrite era to today's application-layer sprawl. It is the connective tissue that makes the week's stories feel like part of a longer arc.

- Newsletter section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#five-years-of-nostr-februaries

### 01:23:07 February 2021: The Rewrite

February 2021 brought the NIP-01 rewrite that introduced the EVENT, REQ, and CLOSE model that still defines Nostr. The segment also covers early NIP-04 messaging, noscl, nostr-rs, and the tiny relay network that existed before the protocol stabilized.

- February 2021 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2021-the-rewrite
- NIP-01 rewrite commit: https://github.com/nostr-protocol/nostr/commit/33a1a70
- noscl: https://github.com/fiatjaf/noscl
- nostr-rs: https://github.com/futurepaul/nostr-rs

### 01:25:49 February 2022: Building Momentum

The 2022 segment covers early NIP growth, nostr-rs-relay's heavy lifting, Uncle Bob's more-speech client, nos2x, and the first real momentum after Hacker News attention. It shows a protocol still small enough for one relay implementation to matter enormously.

- February 2022 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2022-building-momentum
- Hacker News thread: https://news.ycombinator.com/item?id=29749061
- nostr-rs-relay: https://github.com/scsibug/nostr-rs-relay
- more-speech: https://github.com/unclebob/more-speech
- nos2x: https://github.com/fiatjaf/nos2x
- branle: https://github.com/fiatjaf/branle
- nostr-tools: https://github.com/nbd-wtf/nostr-tools
- go-nostr: https://github.com/nbd-wtf/go-nostr

### 01:30:08 February 2023: International Attention

This is the Damus breakout chapter: App Store approval, China's removal, explosive relay and user growth, and the merge wave that brought zaps, long-form content, relay lists, Nostr Connect, and badges. It is the month where Nostr stopped being obscure.

- February 2023 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2023-international-attention
- Damus App Store coverage: https://www.coindesk.com/tech/2023/02/01/decentralized-social-media-project-nostrs-damus-gets-listed-on-apple-app-store
- China removal coverage: https://techcrunch.com/2023/02/02/damus-pulled-from-apples-app-store-in-china-after-two-days/
- HRF grant: https://hrf.org/devfund2023q1

### 01:33:20 February 2024: Protocol Durability

By 2024 the focus had shifted from breakout attention to better foundations: NIP-17 and gift wrap, NIP-29 groups, NIP-92 media metadata, BREAKING.md, and hard evidence that relay economics were still fragile. This segment explains why durability became the central protocol concern.

- February 2024 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2024-protocol-durability
- NIP-29 merge: https://github.com/nostr-protocol/nips/pull/566
- BREAKING.md commit: https://github.com/nostr-protocol/nips/commit/62c48eff
- Relay economics paper: https://arxiv.org/abs/2402.05709

### 01:38:36 February 2025: Infrastructure Growth

February 2025 highlights vanish requests, ecash standard simplification, steady client releases, meetups, and early DVMCP work linking Nostr with MCP-like agent workflows. The episode frames it as the year infrastructure got more specialized and more useful.

- February 2025 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2025-infrastructure-growth
- NIP-62 topic: https://nostrcompass.org/en/topics/nip-62/
- GRAIN: https://github.com/0ceanSlim/grain

### 01:40:22 February 2026: Beyond Social Media

The closing historical chapter covers Mostro, Zapstore, White Noise, agent proposals, ContextVM, Burrow, FIPS mesh networking, OpenSats grants, and the sense that Nostr is now infrastructure for far more than public posting. That broader scope is the episode's final thesis.

- February 2026 section: https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/#february-2026-beyond-social-media
- ContextVM coverage: https://nostrcompass.org/en/newsletters/2026-02-25-newsletter/#contextvm-mcp-over-nostr
- Burrow coverage: https://nostrcompass.org/en/newsletters/2026-02-25-newsletter/#burrow-mls-messaging-for-ai-agents
- FIPS coverage: https://nostrcompass.org/en/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking
- OpenSats grants: https://opensats.org/blog/fifteenth-wave-of-nostr-grants
]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #11</title>
      <description>FIPS mesh networking, White Noise real-time messaging, HAVEN multi-npub relay, Burrow agent messaging, and NIP-55 Android signing deep dive.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdej8ymn2dfhxqmnwdedxpk8zdmsw56hqagsrwap2</link>
      <pubDate>Sun, 08 Mar 2026 13:32:25 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1772975570777-0lq7pu5pu</guid>
      <enclosure url="https://blossom.primal.net/f3665be995ebe188b9c8a84ca2d392c452dc061e4f9eb4a4181eee1aa49be9b3.ogg" type="audio/ogg" length="51036892" />
      
      <itunes:duration>01:24:24</itunes:duration>
      <itunes:episode>11</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/fef8d19860f851aaeda64e643ffe9b03714f7b92997a059f8d68b8b56cf55ec4.png" />
      
      
      <content:encoded><![CDATA[Walking through newsletter #11 covering FIPS mesh networking with Nostr keypairs, White Noise v0.3.0 real-time messaging, HAVEN v1.2.0 multi-npub relay support, Burrow MLS messaging for AI agents, and deep dives into NIP-55 Android signing and NIP-60 Cashu wallet synchronization.

### News

Notecrumbs fixes concurrency deadlocks in damus.io link previews with watch channels and adds relay rate limiting. ContextVM bridges Nostr with the Model Context Protocol, enabling MCP servers across the relay network with CEP-8 payments. A blog post from jgmontoya details how White Noise handles decentralized user search through a five-tier producer-consumer architecture. FIPS ships a working Rust implementation of self-organizing mesh networking using Nostr keypairs, spanning tree routing, and dual-layer encryption over any datagram transport.

### Releases

- **HAVEN v1.2.0** - Multi-npub support, JSONL backup, configurable Web of Trust depth
- **White Noise v0.3.0** - Real-time messaging, Amber signer (NIP-55), image sharing, 160+ improvements
- **diVine 1.0.5** - Video playback fixes, Kind 22236 view events for creator analytics
- **Coracle 0.6.30** - Video thumbnail support
- **Nostur v1.26.0** - Live Streams feed, Blossom GIF hosting, redesigned Settings
- **nak v0.18.5** - New `nak profile` subcommand, NIP-05 support in `git clone`
- **Pika v0.5.3** - File upload and drag-and-drop media on desktop
- **Ridestr v0.2.6** - Accessibility fixes, Broadcast RoadFlare, HTLC escrow payments
- **Unfiltered v1.0.6** - Improved user search, automatic relay reconnection

### New Projects

- **Burrow** - MLS-encrypted messaging for AI agents and humans on Nostr, with Rust CLI daemon and Flutter app
- **Nostria Signer Extension** - Chromium browser extension for vault and identity management with NIP-07 signing

### Project Updates & Open PRs

Formstr migrates to the formstr-hq organization. Open PRs: Damus outbox model

---

## Timestamps

00:00:00 Intro
00:00:19 Notecrumbs Stability Improvements
00:03:25 MCP Over Nostr
00:06:51 Documents Decentralized User Search
00:13:04 FIPS - Nostr-Native Mesh Networking
00:24:40 HAVEN v1.2.0
00:29:07 White Noise v0.3.0
00:30:50 diVine 1.0.5
00:36:36 Coracle 0.6.30
00:37:32 Nostur v1.26.0
00:38:57 nak v0.18.5
00:39:49 Pika v0.5.3
00:44:34 Ridestr v0.2.6
00:47:02 Unfiltered v1.0.6
00:48:11 Burrow - MLS Messaging for AI Agents
00:54:36 MOQ
00:56:54 Nostria Signer Extension
00:58:31 Formstr Migrates to New Organization
00:59:05 Damus Outbox Model (PR #3602)
00:59:50 Notedeck Cross-Platform Notifications (PR #1296)
01:00:34 NDK Cashu v3 Upgrade (PR #370)
01:00:47 Zeus Cashu Offline (PR #3742)
01:01:36 Shopstr Encrypted Digital Delivery (PR #231)
01:02:18 NIP-85 Service Provider Discoverability
01:02:50 NIP-29 Removes Unmanaged Groups
01:03:50 NIP-11 Removes Deprecated Fields
01:04:58 NIP-39 Moves Identity Tags
01:05:25 NIP-AE: Agents
01:05:55 NIP-XX: AI Agent Messages
01:07:27 NIP-AC: DVM Agent Coordination
01:08:06 NIP-144: Service Authorization Protocol
01:08:21 NIP-DC: Nostr Webxdc
01:10:23 NIP Deep Dive: NIP-55 (Android Signer Application)
01:15:01 NIP Deep Dive: NIP-60 (Cashu Wallet)]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #10</title>
      <description>Blossom local caching, competing AI agent NIPs, FROST signing, decentralized maps, Mostro Lightning wallet, and NIP-85 Trusted Assertions deep dive.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwdejxu6r2wpexs6rjvpdwee8zvrxv3khw6glqdj84</link>
      <pubDate>Thu, 05 Mar 2026 21:24:54 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1772745894490-vrq0fdmwi</guid>
      <enclosure url="https://blossom.primal.net/193b251f8368b793351f9d37c23d725b4b9fcc532a444388f0e48fc775b53cd3.mp3" type="audio/mpeg" length="80928828" />
      
      <itunes:duration>00:00</itunes:duration>
      <itunes:episode>10</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/429a28f2393accf0f3955b5a5d05144bc8ac88fa5fe6453667bd6fb6bf2ae41c.png" />
      
      
      <content:encoded><![CDATA[This week the panel walks through a Blossom local cache layer emerging from four independent projects, Alby's new NWC developer sandbox, and competing AI agent proposals arriving on the same week. The conversation covers HAVEN's multi-npub relay, Mostro Mobile's built-in Lightning wallet, decentralized map tiles, FROST threshold signing, and a wave of NIP merges including Trusted Assertions and calendar event indexing. Deep dives into NIP-85 and NIP-52 round out the episode.

### Blossom & Media Infrastructure

- **Blossom Local Cache Layer** - Four independent projects (Morganite, Aerith, a reference spec, and Prism) converge on offline media access for Android, moving beyond simple upload-and-retrieve
- **Aerith v0.2** - Image labeling, bulk mirror/tag/delete operations, filtering by label and file type, plus initial local Blossom cache support
- **Hashtree** - Content-addressed blob storage with Merkle roots published on Nostr, enabling git remote URLs like `htree://npub.../repo-name`
- **Espy on Shakespeare** - Color palette capture from photos, shared as Nostr events on the AI-powered app builder platform

### Payments & Wallet Connect

- **Alby NWC Developer Sandbox** - Hosted sandbox for testing NIP-47 integrations without real funds, with live request/response event observation
- **Mostro Mobile v1.2.0** - Built-in Lightning wallet through NWC integration; automatic hold invoice detection for sellers and invoice generation for buyers
- **Primal Android NWC Expansion** - 11 merged PRs adding dual wallet support, automatic service lifecycle, and connection routing by wallet type

### AI Agents on Nostr

- **NIP-XX: AI Agent Messages** - joelklabo's complete protocol with event kinds for prompts, responses, streaming, tool telemetry, errors, and capability discovery via kind 31340
- **NIP-AE: Agents** - pablof7z's agent identity kinds from TENEX: definitions, nudges for runtime capability control, and agent lessons
- **NIP-AD: MCP Server Announcements** - Announcing Model Context Protocol servers and skills on Nostr with NIP-22 comment support
- **Nostr MCP Server v3.0.0** - Social actions, relay list management, NIP-65 support, NIP-42 auth, and NIP-17/NIP-44 direct messaging for AI agents

### Relay & Infrastructure Releases

- **HAVEN v1.2.0-rc3** - Multi-npub support, cloud backup with `--from-cloud`/`--to-cloud` flags, Web of Trust double-counting fix
- **Citrine v2.0.0-pre1** - Android relay with optimized database indexes, per-app port assignment for hosted web apps
- **Granary v10.0** - Social web translation library switches Nostr IDs from bech32 to hex, adds NIP-27 mention parsing

### New Projects

- **Mapnolia** - Decentralized map tile distribution over Nostr using kind 34444 events with PMTiles chunks and Blossom server references
- **Pika** - MLS-encrypted messaging via Marmot protocol with Rust core and thin SwiftUI/Kotlin UI shells
- **Keep** - FROST threshold signing for Android using NIP-55 and NIP-46, with DKG ceremonies over Nostr relays
- **Prism** - Android share target for publishing text, URLs, images, and video to Nostr from any app

### Client Updates

- **Flotilla 1.6.4** - Push notifications via NIP-9a, wallet receive flow, classified listings, space URL support
- **Shosho v0.12.0** - Video Clips with in-player replies, custom emoji integration, QR profile sharing, horizontal playback mode
- **Aegis v0.3.8** - Multilingual UI, incremental update manager for built-in Nostr app browser, 5-minute key caching
- **SNSTR v0.3.1** - Package verification guards with CI enforcement on Node and Bun
- **Notedeck Android App Store Prep** - UGC compliance plan, NIP-56 reporting, Terms of Service, signed release APK/AAB generation
- **Nostria: Discovery Relays** - Auto-initialization of discovery relays for profile lookup, DM textarea and video fixes
- **Camelus: Riverpod v3 Migration** - API migration, generic feed refactor, embedded note cache

### NIP Updates

**Merged:**
- **NIP-85: Service Provider Discoverability** - Client discovery guidance for Trusted Assertions providers
- **NIP-11: Relay Information Cleanup** - Removed unused privacy_policy, retention, relay_countries, and community preferences
- **NIP-52: Day-Granularity Timestamp Tag** - Required `D` tag on time-based calendar events for efficient relay-side indexing
- **NIP-47: Simplification** - Removed `multi_pay_invoice` and `multi_pay_keysend`

**Open:**
- **NIP-74: Podcasts** - Heated discussion with at least three competing podcast standards
- **NIP-XX: AI Agent Messages** - Complete AI agent communication protocol
- **NIP-PNS: Private Note Storage** - jb55's deterministic pseudonymous keypair scheme, actively being implemented in Notedeck
- **NIP-AE: Agents** - Agent identity with definitions, nudges, and lessons
- **NIP-AD: MCP Server Announcements** - MCP server and skill discovery
- **NIP-73: OSM Tag Kind** - OpenStreetMap identifiers for NIP-73 External Content IDs
- **NIP-XX: Responsive Image Variants** - Resolution-aware image variants for NIP-94 file metadata

### NIP Deep Dives

- **NIP-85 (Trusted Assertions)** - Delegating expensive Web of Trust calculations to trusted service providers who publish signed results as standard Nostr events. Four event kinds for users, events, addressable events, and external identifiers. Provider discovery through kind 10040 declarations.
- **NIP-52 (Calendar Events)** - Date-based (kind 31922) and time-based (kind 31923) events with calendars, RSVPs, and the new `D` tag enabling relay-side temporal indexing. Design intentionally omits recurring events.

---

### Timestamps

00:00 Intro
00:22 Blossom Local Cache Layer Emerges
03:16 Alby NWC Developer Sandbox
04:48 AI Agent NIPs Arrive
08:21 HAVEN v1.2.0-rc3
09:50 Mostro Mobile v1.2.0: Built-In Lightning Wallet
10:58 Aerith v0.2
15:16 Mapnolia: Decentralized Map Tiles Over Nostr
19:26 Pika: Marmot-Based Encrypted Messaging
20:07 Keep: FROST Threshold Signing for Android
22:47 Prism: Share Anything to Nostr from Android
24:15 Hashtree: Content-Addressed Storage with Nostr Integration
25:23 Espy: Color Palette Capture on Shakespeare
25:47 Flotilla 1.6.4
27:04 Shosho v0.12.0
27:31 Granary v10.0
28:12 Nostr MCP Server v3.0.0
29:10 Aegis v0.3.8
29:03 SNSTR v0.3.1
30:29 Citrine v2.0.0-pre1
31:01 Primal Android: NWC Infrastructure Expansion
31:38 Notedeck: Android App Store Prep
32:21 Nostria: Discovery Relays and DM Fixes
33:28 Camelus: Riverpod v3 Migration
33:54 NIP-85: Service Provider Discoverability
34:29 NIP-11: Relay Information Cleanup
34:48 NIP-52: Day-Granularity Timestamp Tag
35:32 NIP-47: Simplification
35:59 NIP-74: Podcasts
36:27 NIP-XX: AI Agent Messages
36:45 NIP-PNS: Private Note Storage
37:37 NIP-AE: Agents
38:11 NIP-AD: MCP Server and Skill Announcements
38:27 NIP-73: OSM Tag Kind
38:59 NIP-XX: Responsive Image Variants
39:39 NIP Deep Dive: NIP-85 (Trusted Assertions)
50:49 NIP Deep Dive: NIP-52 (Calendar Events)]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #9</title>
      <description>Mostro ships its first public beta for P2P Bitcoin trading on mobile, Zapstore reaches 1.0 stable, and OpenSats renews funding for Minibits Wallet. NIP-45 gains HyperLogLog for approximate cross-relay event counting. Primal Android expands NWC infrastructure while Antiprimal bridges Primal&#39;s cache to standard Nostr protocols. A campaign to slim kind 0 metadata begins with identity tags moving to their own event kind. NIP-96 continues its deprecation as projects migrate to Blossom for content-addressed media hosting.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde38ymrydfexcmrzwpdv3cxumpe8pa8z7qvpm54w</link>
      <pubDate>Tue, 24 Feb 2026 19:49:56 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1771962596618-dpnl98zqx</guid>
      <enclosure url="https://blossom.primal.net/fbe06d68714282a05c669396aa55ef57a8c34abb9020aed580f4a0e7de3a63bb.ogg" type="audio/ogg" length="73434700" />
      
      <itunes:duration>00:00</itunes:duration>
      <itunes:episode>9</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/cae5f4e63f75634dd43873a41b7743ea44f3da8a8a2ddf8c2ee1d3e41beeb3c8.png" />
      
      
      <content:encoded><![CDATA[Mostro reaches public beta after three years of development, bringing peer-to-peer Bitcoin trading to mobile via Nostr. Lightning handles settlement while Nostr coordinates orders with no custodial intermediary. The app is available on Zapstore and GitHub.
Zapstore hits 1.0 stable, marking a milestone for Nostr's permissionless Android app distribution. The release includes better error handling, a new updates screen, and encrypted issue reporting via Nostr DMs.
OpenSats awards its sixteenth wave of Bitcoin grants. Minibits Wallet received a renewal for its Nostr-integrated Cashu wallet with NIP-60 support and nutzap integration.
Primal Android ships 18 PRs expanding NWC infrastructure with dual wallet support, audit logging, and the lookup_invoice method. This continues their wallet connectivity buildout from previous weeks.
Antiprimal launches as a standards-compliant gateway bridging Primal's proprietary cache to standard Nostr NIPs. The project enables any Nostr client to access Primal's event statistics, search, and Web of Trust calculations through standard protocol messages.
Kind 0 slimming begins with vitorpamplona's series of PRs extracting underused data from user metadata events. Identity tags moved to kind 10011, with proposals pending for NIP-05 verification and Lightning addresses.
NIP-45 gains HyperLogLog support, enabling approximate event counting across multiple relays. The 256-byte probabilistic data structure solves the deduplication problem for follower and reaction counts without requiring full event downloads.
The deep dive covers NIP-96's deprecation in favor of Blossom. While Angor v0.2.5 adds NIP-96 server configuration, ZSP v0.3.1 uploads exclusively to Blossom, illustrating a protocol transition underway.
Other releases include Coracle 0.6.29 with topics and highlight commenting, Igloo Desktop v1.0.3 with security hardening for threshold signing, Amber v4.1.2-pre1 migrating to Flow architecture, and NostrPress for converting Nostr profiles into static blogs.

00:05 Intro
00:20 Mostro Ships First Public Beta
01:11 OpenSats Sixteenth Wave of Bitcoin Grants
02:06 NostrPress: Nostr Profile to Static Blog
05:38 Antiprimal: Standards-Compliant Gateway to Primal’s Cache
09:02 Ikaros: AI Agent Messaging Gateway for Signal and Nostr
11:04 Kind 0 Slimming Campaign
15:02 NIP-70 Relay Support Critical for Encrypted Messaging Security
18:43 Releases
18:52 Coracle 0.6.29
19:15 Igloo Desktop v1.0.3
20:00 Amber v4.1.2-pre1
20:45 Mostro Mobile v1.1.0 and Daemon v0.16.1
22:20 Angor v0.2.5
34:16 Ridestr v0.2.2 and v0.2.3
44:03 Zapstore v1.0.0
51:48 ZSP v0.3.1
55:34 Nostr PHP 1.9.4
55:50 Damus iOS 1.17
56:12 nak v0.18.3
56:27 Mi: Browser-Based Local Relay
58:06 Agora v1.0.2
59:26 xonos v0.1.6
59:55 Project Updates
59:58 Primal Android Expands NWC Infrastructure
01:07:46 diVine Ships API-First Video Feeds
01:08:25 White Noise: Keyring Unification and User Search
01:09:35 Marmot TS Extracts Reference Chat App
01:11:44 Alby Hub Updates
01:11:56 Notedeck Ships Dashboard and Agentium
01:12:48 Agora Ships Major UI Overhaul
01:13:28 Clawstr Ships CLI and Lightning Zap Buttons
01:25:22 NIP Updates
01:25:27 Merged: NIP-45: HyperLogLog Relay Response - NIP-45 (Event Counting)
01:44:34 Merged: NIP-39: Identity Tags Moved from Kind 0 - NIP-39
01:45:40 Open PRs and Discussions
01:45:44 NIP-XX: Nostr Relay Connect (NRC)
01:46:39 Nostr Web Tokens (NWT)
01:53:50 NIP-47 Simplification
01:55:05 NIP-05: Move to Own Event Kind
01:55:21 NIP-57: Lightning Addresses from Kind 0
01:57:52 NIP Deep Dive: NIP-96 (HTTP File Storage) and the Transition to Blossom
02:13:22 Outro]]></content:encoded>
      
    </item>
    <item>
      <title>Nostr Compass #8</title>
      <description>rust-nostr ships a sweeping SDK overhaul. New clients like Nostria, Frostr, and Vector raise the bar. NIP deep dives follow.</description>
      <link>https://podcast.nostrcompass.org/naddr1qvzqqqr4vcpzqa6e2nmnzsgjfzdy520vdy4hywr06c9ue6crpr2zxyq749uu275qqyt8wumn8ghj7un9d3shjtnwdaehgu3wvfskueqpp4mhxue69uhkummn9ekx7mqpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqp7etsd9ek7er995cnwde3xy6nvwfc8ymrxwfddgcn2vp5xd5r2dcrsa24c</link>
      <pubDate>Sun, 15 Feb 2026 12:03:09 GMT</pubDate>
      <guid isPermaLink="false">775954f7314112489a4a29ec692b72386fd60bcceb0308d423101ea979c57a80:episode-1771156989639-j15043h57</guid>
      <enclosure url="https://blossom.primal.net/ad85e46e66cad4d6e672e63573533cd67bbaea4206d8a4a6e5242af8bb53ca43.ogg" type="audio/ogg" length="58200935" />
      
      <itunes:duration>01:46:29</itunes:duration>
      <itunes:episode>8</itunes:episode>
      <itunes:explicit>no</itunes:explicit>
      <itunes:image href="https://blossom.primal.net/1ef8aeeb478df79c18b9e4032174e6e46e0f00bb113a92fc28e4c90db8eb29d9.png" />
      
      
      <content:encoded><![CDATA[This week on Nostr Compass: rust‑nostr ships a sweeping SDK redesign impacting core APIs. Nostria 3.0 launches with a complete UX overhaul while Vector pushes massive SIMD performance gains. Frostr arrives on iOS, marketplace and AI‑native social apps expand the ecosystem, and we explore new NIP proposals for podcasting, wallet workflows, local databases, and encrypted social models.

### Infrastructure and Ecosystem Growth

- **rust‑nostr SDK redesign** – 21 PR overhaul bringing consistency to client, relay, and signer APIs
- **Instagram → Nostr v2** – Content migration tooling lowering onboarding friction
- **Pod21** – Decentralized 3D printing marketplace coordinated via Nostr messaging
- **Clawstr** – AI‑agent moderated communities built on open protocol interaction

### App Releases

- **Ridestr v0.2.0** – Trusted driver networks and improved escrow reliability
- **Nostria 3.0** – Dual‑pane navigation, unified UI, advanced filtering and list management
- **Applesauce v5.1.0** – Signer controls, async loading utilities, and event mapping updates
- **NAK v0.18.3** – Stability hardening and CLI resilience improvements
- **Aegis v0.3.7** – Browser signing visibility and encryption tracking
- **BitChat v1.5.1** – Mesh security hardening and identity spoof prevention
- **KeyChat v1.39.2** – Adds NIP‑47 wallet connectivity
- **Nostrmo v3.5.0** – Flexible feed architecture and routing improvements
- **NosCall v0.5.0** – Contact groups and relay optimization for P2P calls
- **diVine 1.0.4** – Nostr key workflow testing and interoperability fixes
- **Frostr iOS** – Threshold signing distributed across Apple devices

### Client + Project Updates

- **Damus relay hints** – Cross‑relay discovery via NIP‑19 references
- **Primal Android** – Encrypted NWC wallet connectivity and export tooling
- **Marmot SDK** – Message persistence and retryable state handling
- **HAVEN relay** – Periodic Web‑of‑Trust refresh
- **nostr‑tools / NDK** – Reliability and parsing improvements
- **njump / Amethyst / Jumble / Formstr / Pollerama** – Gateway rendering, media uploads, encrypted forms, and DM poll sharing
- **Vector** – Massive SIMD acceleration and encrypted group messaging stack

### Protocols and NIPs

- **NIP‑47** – Hold invoices enabling escrow‑style payment flows
- **NIP‑05** – Explicit lowercase enforcement for identity validation
- **NIP‑73** – Country‑code geotagging
- **NIP‑82** – Cross‑platform software distribution standard
- **NIP‑74** – Podcast publishing event model
- **NIP‑FR** – Friends‑only encrypted note sharing
- **NIP‑DB** – Browser‑native local event database interface
- **TRUSTed Filters** – Delegated ranking and moderation infrastructure
- **NIP‑9a** – Relay‑driven push notifications
- **Catallax** – Escrowed decentralized contract work protocol
- **NIP‑59** – Gift‑wrap multi‑layer encryption for metadata privacy

---

### Timestamps

00:00 Nostr Development Updates  
00:19 rust-nostr Ships Major API Redesign  
02:00 Onboarding New Developers and Users  
04:28 Bridging Social Networks  
07:04 Community Building and User Engagement  
09:52 Marketplaces and NIP Protocols  
10:23 Pod21: Decentralized 3D Printing Network  
12:51 Clawstr: AI Agent Social Network  
17:22 Ridestr v0.2.0: RoadFlare Release  
18:31 Nostria v3.0  
24:28 Applesauce v5.1.0  
27:07 nostr army knife v0.18.3  
28:31 Aegis v0.3.7  
29:18 BitChat v1.5.1 (iOS)  
29:59 KeyChat v1.39.2  
30:19 Nostrmo v3.5.0  
31:49 Noscall v0.5.0  
32:30 diVine 1.0.4  
33:22 Frostr iOS Test Flight  
37:44 Damus New Implementation  
41:23 Marmot Protocol Typescript Implementation  
42:10 Amber integration on the Rust side  
43:53 Haven Update  
44:23 Nostr Tools  
48:41 Changes to njump  
49:01 Amethyst Fixes  
49:22 Jumble New Ability  
51:19 Formstr Update  
52:11 Security Enhancements in Nostr Applications  
52:47 Pollerama  
53:58 Nostrability Schemata  
56:23 Vector  
01:01:19 NIP Updates  
01:01:27 NIP-47: Hold Invoice Support  
01:03:54 NIP-05: Lowercase Requirement  
01:06:57 NIP-73: Country Codes  
01:07:27 NIP-82: Software Applications  
01:13:18 NIP-74: Podcasts  
01:15:16 NIP-FR: Friends-Only Notes  
01:19:51 NIP-DB: Browser Nostr Event Database Interface  
01:24:15 TRUSTed Filters  
01:24:50 NIP-9a: Push Notifications  
01:25:29 Catallax  
01:27:57 NIP Deep Dive: NIP-47 (Nostr Wallet Connect)  
01:33:46 NIP Deep Dive: NIP-59 (Gift Wrap)  
01:45:35 Outro]]></content:encoded>
      
    </item>
  </channel>
</rss>