
Sign up to save your podcasts
Or


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.
TL;DR: Synthetic narration and Max’s recordings cover White Noise polls, Myco app sharing, Marmot history recovery, Nostr releases and ongoing protocol work.
Contributor: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt
Newsletter42
0:00 IntroWelcome to Nostr Compass, the weekly podcast following what's being built on Nostr, the open network for sharing messages through apps and relays. Thanks for joining us. If you're new here, we'll explain the projects as we go.
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'll explain what changed and what you can try, then look back at six years of Nostr Septembers.
The newsletter narration is read by a synthetic voice. You'll find the sources in the show notes, and chapter markers let you jump to a topic that interests you.
First, a quick update on Nostr Compass itself.
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.
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's scheduling and on the permissions you grant.
2:40 Holoboard adds Nostr promotion commands and an Android appHoloboard is a board for finding Nostr notes 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's ordering to be a relay-native feed.
Its September 23 changelog records direct-message promotion commands over both encrypted NIP-17 and legacy NIP-04 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 September 24 update adds an Android app and simplifies the invoice flow.
The project's relay integration notes describe ordinary notes and comments on Nostr, encrypted inbox routing, and quote and delete handling. Its signed Zapstore Android listing supports the existence of an app release, but the listing key has not been established as Holoboard's public board identity. This is the first Compass coverage of the project.
4:25 fips-pub-domains tests signed public names for a meshfips-pub-domains is a new resolver and naming experiment that binds public domain names to nodes on FIPS, an encrypted mesh that uses Nostr messages for peer discovery. Its first release 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.
The 0.2.0 release 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. Version 0.2.1 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.
On Android, a merged fips2go change follows verified public-name bindings in its DNS proxy. A second merged change 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.
The project's two-node and mesh-only relay tests are maintainer-reported evidence for an early implementation, not a production deployment. Its NIP-DB proposal is still open, and the event kinds in its draft remain placeholders pending registration. Last week's fips2go story covered mesh bootstrap and peer discovery; this week's work tackles public names and verification.
6:26 Marmot MDK 0.11.0 makes account history gaps visibleMarmot MDK, the Rust runtime and generated bindings for MLS-encrypted Nostr group messaging, follows last week's durable-send release with version 0.11.0. 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.
The full release notes 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.
8:12 Myco 0.8.0–0.8.1 gives nearby apps their own Nostr storeMyco is an Android app for exchanging small Nostr programs, called napplets, with nearby phones, including when they are offline. Version 0.8.0 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's Circle without an internet connection.
Version 0.8.1 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.
9:41 White Noise Android adds group polls and account-specific disappearing-message defaultsWhite Noise Android nostr:npub1whtn0s68y3cs98zysa4nxrfzss5g5snhndv35tk5m2sudsr7ltms48r3ec is a Nostr messenger for private Marmot-encrypted conversations. Following the delivery and sharing improvements covered last week, the September 30 release adds group polls with selectable answers, result bars, and deadlines through the Marmot Development Kit. It also adds device-local disappearing-message defaults for each account: new direct conversations and groups inherit the chosen duration, while existing conversations and their individual settings keep their current policy. Wave hi sends a greeting that mentions a newly added member without disturbing the current draft.
The release lets users choose the focal crop for profile and group images and delete a chat folder without deleting its conversations. Its history notices show when recovery leaves account or group history potentially incomplete, with separate dismissal controls. Conversation paging avoids rebuilding the displayed timeline on a jump to recent messages, and pending-message edits 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.
Dictation now chooses Paste or Send for each recording, with automatic finishing placing the transcript in the draft. Offline-provider setup explains on-device processing, keeps its consent separate from other speech providers, and restores interrupted media after capture ends. General-file handling accepts bounded, nonempty documents with accurate filenames, MIME metadata, and failure messages; explicit attachment downloads use Android's user-initiated transfer jobs with a foreground fallback. Paste controls now use Android’s system action so GrapheneOS Secure Paste can grant clipboard access. Android also renders iOS GIPHY shares as animated media while respecting download policy.
Notification fixes refresh sender nicknames and clean up alerts when a conversation opens. The notification recovery changes preserve pending push work through unavailable foreground ownership and use bounded retries. Amber signing (maintainer: nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5) coordinates same-account approval bursts to prevent rate limits from cancelling sends. The new audit configuration asks for a fresh log-sharing choice before uploading to the new receiver. The source also adopts AGPL-3.0-only licensing.
12:57 nostream 3.1.0 adjusts relay proof of work to loadnostream is a TypeScript Nostr relay backed by PostgreSQL. Version 3.1.0 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's measured rate, and leaves the existing static public-key threshold independent, so operators must opt in before senders see a different admission requirement.
The same release 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.
After its load-sensitive proof-of-work release, nostream merged actions for trusted-moderator reports. NIP-56 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.
14:45 Nostr double ratchet 0.0.171–0.0.172 closes a removed-member gapNostr double ratchet is a TypeScript library for encrypted private chats carried by Nostr. Version 0.0.171 rotates a group'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.
Version 0.0.172 carries the existing account-signed device approval in an optional encrypted invite response. A recipient using the update can verify the sender'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.
Versions 0.0.173–0.0.175 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 0.0.173 notes also report Rust 0.0.168 with receive-session fallback and local group-echo filtering.
16:52 Scramble 0.7.4–0.7.5 fetches the messages a new group member should seeScramble is a cross-platform Marmot group messenger with a native Android interface. In version 0.7.5, each group gets its own relay history cutoff: previously the most active conversation'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.
The preceding 0.7.4 release 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.
Scramble 0.7.6 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. Version 0.7.7 also drains held messages when another member’s commit arrives; 0.7.8 adds a regression test for that passive-member path.
18:58 Amber 6.6.6 repairs remote-signer connection secretsAmber is an Android signer that approves Nostr event signatures without handing an application's account key to it. After last week's backup-encryption change, version 6.6.6 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.
The release also sends feedback issues to the relays advertised by Amber'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's themes.
20:25 FIPS 0.5.2 stops a Nostr discovery privacy leakFIPS is an encrypted mesh that uses Nostr identities and relay messages to discover peers. Its 0.5.2 maintenance release stops signing NAT-traversal deletion requests with the node'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.
The release notes 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.
21:47 napplet soyLI 0.23.1–0.23.4 repairs backend publishing and signer approvalnapplet.soy's soyLI (maintainer: nostr:npub1uac67zc9er54ln0kl6e4qp2y6ta3enfcg7ywnayshvlw9r5w6ehsqq99rx) is the creator and publishing toolkit for small sandboxed Nostr programs. After last week's shared-creations release, version 0.23.1 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.
Version 0.23.2 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 0.23.4 release 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's CLI alone has not repaired a deployed host.
23:28 Dart NDK 0.10.0 scopes Blossom auth and remote signingDart NDK (maintainer: nostr:npub1xpuz4qerklyck9evtg40wgrthq5rce2mumwuuygnxcg6q02lz9ms275ams) is a Flutter and Dart library for Nostr relay access, signing, wallet requests, and media operations. Following last week's prerelease, 0.10.0-dev.7 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.
Dev.9 stops holding a remote-signer response until the slowest relay acknowledges it. Dev.8 reduces background relay polling and cache work; its other fixes concern wallet seed persistence and settlement deadlines. The stable 0.10.0 release now packages this development series together with the connection-metadata and private subscription-ID changes below. The comparison with dev.9 includes those merged changes. Applications upgrading should review both the media-auth API change and the remote-signer response path.
The stable release includes NIP-46 connection metadata and requested permissions, 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 request-ID change 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's 64-character limit, while debug mode retains a short diagnostic name.
25:33 Mostro Core 0.16.0 removes the old gift-wrap transportMostro Core nostr:npub1m0str0d7z2ww8rdh20t2n9lx520xjwhaq24p68umqp06wwrwtsnqen40un supplies the message protocol used by Mostro's Nostr-based peer-to-peer trading clients and coordinator. Version 0.16.0 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.
The library release precedes the coordinator's now-published 0.19.0 release. Operators serving older clients need to update both sides of the transport migration. The preceding 0.15.1 tag adds a cooperative-cancellation dispute state, but the transport removal is the compatibility milestone.
26:48 Cambium 0.6.0–0.7.1 enrolls an unlock phone through relay messagesCambium nostr:npub1mgvlrnf5hm9yf0n5mf9nqmvarhvxkc6remu5ec3vf8r0txqkuk7su0e7q2 is an Android signing companion for a Heartwood hardware key that can also unlock the board after a restart. Version 0.6.0 lets a phone enroll for unlock through the board's Nostr relays without a USB cable; the user compares five request words on the phone, the board, and Sapwood, the board's enrollment interface, before pressing the board's button. Newly announced relays receive a randomized connection delay so the phone's first contact does not reveal exactly when it saw the board's update.
Version 0.7.0 reverses the invitation flow: a phone scans Sapwood'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 0.7.1 patch keeps the final check code visible and improves F-Droid build reproducibility; the QR flow still requires the specified recent Sapwood and Heartwood versions.
28:29 Bray 3.5.0–3.5.2 limits agent-initiated Nostr wallet spendingBray is a Nostr tool server that lets an AI assistant request relay, identity, and wallet actions through a scoped interface. Its 3.5.0 release 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.
The release 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. Version 3.5.2 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.
29:50 Mafrend 1.3.0-alpha moves private map groups to current MarmotMafrend nostr:npub19jvs7ry26263w3l6h4hst46t0fsukcmyhhmmshh8rsavfqd95xnsa5guks is a map-based Nostr social app that lets people explore places and chat around destinations. Its 1.3.0-alpha release upgrades private groups to a newer Marmot encrypted-group 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.
The same release 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.
31:07 Sonar alpha.15–alpha.15.1 repairs encrypted-group publishingSonar nostr:npub1wg2m9ku823y5l5699dlj6294dc3cvwu4g34ldrtelxq20t27clxsd7dzaw is a private messenger that can carry conversations over Bluetooth mesh and Nostr. Alpha.15 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.
Alpha.15.1 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.
32:31 Elisym's commerce packages introduce private Nostr ordersElisym is a Nostr-based agent toolkit now building a signed-event commerce flow. Its merged `commerce` package defines store products, owner authorization, privately wrapped orders and receipts, and offer verification for the checkout and merchant components. A later commerce 0.2.0 tag derives an order's payment reference from that order, tying the payment lookup to the signed purchase flow.
The package series also introduces separate payment-core and browser-checkout work, but its release tags do not establish that a complete merchant checkout is deployed. The store-authorization event kind is explicitly provisional in the project's primary source. The eleven SDK, MCP, CLI, and payment-core tags mark one developing commerce feature.
Elisym's new package releases package the self-hosted merchant node, while MCP 0.31.0 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.
34:02 Flotilla 1.11.2 unsticks signers and incomplete relay feedsFlotilla (maintainer: nostr:npub1jlrs53pkdfjnts29kveljul2sm0actt6n8dxrrzqcersttvcuv3qdjynqn) is a Nostr client for conversations, rooms, and shared spaces. Version 1.11.2 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.
The same release also publishes an F-Droid build signed with the app'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.
35:05 Ditto 2.42.3 shows relay delivery and tightens account boundariesDitto nostr:npub10qdp2fc9ta6vraczxrcs8prqnv69fru2k6s2dj48gqjcylulmtjsg9arpj is a Nostr social client that lets users choose and authenticate to their relays. In version 2.42.3, a post'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.
The release notes say that switching accounts no longer sends posts to the previous account's relays, muted users cannot trigger generic phone alerts, and links or images in posts cannot reach devices on the reader'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.
36:36 Iris Chat 2026.9.24.4 brings calls into encrypted conversationsIris Chat is an end-to-end encrypted Nostr messenger using the double-ratchet family of chat protocols. Its September 24 release 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's call interface; answering or declining also stops the other linked devices from ringing.
The release also lets a person sign in through a separate signing app and see which linked devices are connected. Later September 24 patches keep delayed messages' 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.
The later developer-signed September 30 update retains a removed member'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 second update improves access to files cached by other Iris apps on the same device and keeps local file sharing available with Nearby disabled.
38:29 LibreNostr 0.6.0–0.7.0 routes relays through built-in TorLibreNostr is an Android Nostr client with configurable relay and privacy settings. Version 0.6.0 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.
Version 0.6.2 adds an on-device web-of-trust filter built from public follow lists and chooses supplemental relays by the additional followed people they reach. Version 0.7.0 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.
Its developer-signed first stable release, 1.0.0, 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.
The same release 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. Version 1.0.1 fixes a tablet-deck startup crash in the new layout.
41:01 Newlay 0.3.45 streams large relay queries instead of closing themNewlay is an Android-hosted Nostr relay and related local services. Its signed 0.3.45 release announcement says that large query results now stream with backpressure instead of closing the client'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.
The release 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.
41:52 ngit-grasp 3.0.5 keeps Git pushes and relay sync movingngit-grasp nostr:npub15qydau2hjma6ngxkl2cyar74wzyjshvl65za5k5rl69264ar2exs5cyejr is a self-hosted Nostr relay and Git server for signed repository collaboration. Its signed 3.0.5 release announcement 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.
The same release 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.
42:42 Armada 0.63.0 carries push alerts across signer typesArmada is a Nostr client for encrypted communities, channels, and direct messages. Following last week's media-privacy release, its signed 0.63.0 announcement 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.
The release 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.
The signed 0.63.1 follow-up 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.
Version 0.63.2 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.
43:39 deed 0.3.0–0.3.2 makes Zig Nostr publishing steadierdeed is a Zig command-line tool for reading and publishing Nostr events. Its September 24 version 0.3.2 adds an agent skill and fixes relay ping deadlines; the preceding 0.3.1 and 0.3.0 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.
44:15 Cordn 0.5.1 keeps other groups moving when a coordinator failsCordn (maintainer: nostr:npub1atv4akyv986nswm4f87zdspfgehzgsva82l5jsd2k3dzgrtzpagssl84q8) is an MLS-encrypted group messenger that uses Nostr identities and relays to locate conversation coordinators. Its signed 0.5.1 client release follows last week'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.
The release 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.
45:03 Nymbot 1.0.7 adds local document handling and encrypted chat sharingNymbot nostr:npub16jdfqgazrkapk0yrqm9rdxlnys7ck39c7zmdzxtxqlmmpxg04r0sd733sv is an assistant reached through encrypted, gift-wrapped Nostr messages. Its developer-signed 1.0.7 release 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.
The same release 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.
45:55 0xchat 1.5.6 ships its signing and message-authentication fixes0xchat nostr:npub1tm99pgz2lth724jeld6gzz6zv48zy6xp4n9xu5uqrwvx9km54qaqkkxn72 is a Nostr messenger with private chats, external signing, and wallet features. Version 1.5.6 ships the security fixes covered as source merges last week, 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.
The release 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.
46:58 Nostr Mail Client 0.17.0 hides mailbox actions from relaysNostr Mail Client (maintainer nogringo: nostr:npub1kg4sdvz3l4fr99n2jdz2vdxe2mpacva87hkdetv76ywacsfq5leqquw5te) exchanges email through Nostr while supporting conventional email delivery. Following last week's per-recipient transport and media-privacy release, version 0.17.0 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' read relays.
The release 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.
The same release 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.
47:53 Nostr WoT 0.8.7 binds authentication to the destinationNostr WoT (maintainer Leon: nostr:npub1gxdhmu9swqduwhr6zptjy4ya693zp3ql28nemy4hd97kuufyrqdqwe5zfk) is a browser extension that combines Nostr signing with trust tools. Version 0.8.7 requires consent for NIP-98 signed HTTP authentication against the exact URL, query, method, account, and requesting origin. Older broad approvals require fresh consent. NIP-42 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.
The release verifies remote NIP-46 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.
In the request interface, 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.
49:20 Iris's shared runtime keeps relay and peer history consistentnostr-pubsub supplies a shared Nostr event runtime with persistent event storage and an outgoing publication queue. Versions 0.5.7–0.5.13 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.
Hashtree's runtime updates 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. FIPS TypeScript 0.0.44–0.0.45 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.
Iris Kit 0.2.5 adds a persistent plain-event application client and transport-neutral NIP-46 signing while preserving account keys and offline reads. Version 0.2.6 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.
Iris Meet's September 30 source update 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 meeting app 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.
50:32 Chama propagates listing cancellation and background alertsChama nostr:npub1m7nypkfk259h5h0dqwj9px0pqq7nz0cs7gjdhr7g793wspskeavqrljsln uses signed events for community trading and private conversations. Versions 6.4.14–6.4.16 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'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.
The grouped releases 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'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.
51:16 Earthly 0.1.12 adds reusable map configurationsEarthly nostr:npub1dmmh0futyszl4445mv4xrygkgsgj8vpu79yx3qyy9qxmz4pemtzqlqmc87 is a Nostr collaborative map editor with signed publication and encrypted sharing. Version 0.1.12 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.
The configuration work migrated existing publication addresses and preferences and added review or withdrawal of configuration updates. Its initial Android workflow failed before compilation; a tooling fix prepared the subsequently tagged release.
51:56 Mostro 0.19.0 retires its first-generation transportMostro coordinates peer-to-peer trades over Nostr. Version 0.19.0 now ships the removal of its first-generation gift-wrap transport, so clients must use the newer protocol. The existing order-creation and dispute-opening timestamp tags are renamed `published_at` without changing their stored values; the enclosing event's `created_at` remains its signing time. Restore responses return the counterparty'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.
Mostro's trade-key admission fix 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 dispute transaction commits the order transition and dispute row atomically, closing inconsistent-state failures. Closure notifications send the assigned solver a best-effort private message when the users resolve a dispute, with the existing replaceable event remaining the offline fallback.
52:51 SCRUTINY Lens brings security research onto NostrSCRUTINY Lens v0.1.0, 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 release notes describe relay limitations explicitly and identify local build dependencies that still require sibling repositories.
53:32 Mangatsu and Noteds reach AndroidMangatsu v0.1.11 (maintainer lostcause (imattau): nostr:npub1khf5amw8mrupe649a5mhkk3d2d8wjj06urz6kwawpftk4f68tjlstdmd3q) is part of the comic reader and publisher's first Android release series this week. Its source adds Amber login through NIP-55, 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.
Noteds v0.1.2 brings a Nostr classifieds marketplace to Android through Tauri. Its Android signer integration 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.
54:23 Statim combines Nostr DMs with other networksStatim v0.4.0 follows its initial September 23 release. The tagged source 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's documented capabilities, not independently tested guarantees or confirmation of app-store availability.
55:04 Amethyst repairs encrypted-group interoperabilityAmethyst is an Android Nostr client with Marmot encrypted-group support. White Noise is another Marmot messenger; an interoperability batch tested with its clients addresses group administration, deletion wording, and other behavior exposed when the two clients share a conversation. More pointed fixes send reactions and deletions inside the Marmot group instead of as separate NIP-17 gift-wrapped private messages and apply edits from another client after restart. Those are source merges; the testing described in the PRs is narrower than a published cross-client release.
A separate Cordn group runtime and interface merge 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.
Amethyst also merged HTTP relay commands in its Geode relay and Quartz client under its NIP-FE proposal, and a backup-conflict review interface 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.
Amethyst also develops Concord, a separate encrypted-community protocol used by Armada and Accordion. A conformance batch adds fragmented community lists, pin proofs, key rotation and dissolution records, followed by disappearing messages and direct invitations. An invitation stays in a private inbox until accepted; receiving it does not contact the community's relays. The same change corrects an author comparison that could let another author's deletion remove a message. Cross-client fixes 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.
A later private-channel implementation 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.
Quartz's MLS engine now preserves skipped message-generation secrets across restart, enabling out-of-order messages to remain decryptable after restoring saved state. Four retained former epochs let callers authenticate late application messages, retain their authenticated data and prevent a consumed generation opening again. A secret-tree update loads unexpanded node secrets from ts-mls-style state; sender-specific stale-generation errors distinguish a client's own ratchet collision from another member's replay. The PR explicitly says Marmot's existing retained-epoch fallback remains separate, so this is an engine capability, not proof that every Amethyst message path uses it.
A Quartz tag-reader audit 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. Additional event models cover Buzz's project-container, artifact-revision and team proposals, while video-view and encrypted push-control models follow Divine's schemas; these additions establish parsing and construction support, not complete client interfaces or adopted numbered NIPs.
The client also renders Ultra HDR photographs in the feed and fullscreen viewer on Android 14 or newer. Android 15 and newer cap the feed's brightness boost at twice the ordinary range, while fullscreen can use the display's full range; the reported test devices ran newer Android APIs, leaving Android 14 and 15 untested. A shared UI and upload-port merge 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.
56:59 Divine adds encrypted video to direct messagesDivine is a Nostr video client. NIP-17 carries private messages in encrypted gift wraps that hide their sender from relays. Divine's merged video-message work 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 history-restore fix keeps an ambiguous relay refusal from prematurely ending recovery when other relays can still answer.
Divine's retired-moderation-key fix 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'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. Deleted-comment cache handling prevents a successfully deleted recent comment from reappearing when a thread reloads.
For creators, a live color-mask recording mode previews the replacement backdrop before a take is recorded, and white-wall masking adds brightness-sensitive masking through the video plugin. Word-by-word captions preserve recognized word timings and use approximate timing when the server supplies whole cues only. Stop-motion continuation appends new stills at the existing composition's pace, while returning detached clips, grouped font selection and speed presets add editing controls without changing the Nostr event format.
Square-export alignment and its smaller-clip follow-up keep text and stickers in place across mixed-resolution clips. Third-party HLS playback 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 account-preference reload 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.
57:51 Buzz extends its relay's channel and identity controlsBuzz nostr:npub16l0ck0s5zened29dsaqtqm6z0t4fmk2mwtszw64fz7fppcnls8mss3yj9s is a Nostr-based workspace with its own relay and clients. Its merged channel-artifact implementation gives an editable record one channel home and a revision chain; conflicting edits cannot both become the head. The project's NIP-AR label refers to its own proposal and implementation, not an established Nostr standard.
For protected HTTP ingress, another merged change pairs a federated-identity assertion with the same key proven by NIP-98 authorization. NIP-98 defines signed HTTP authentication events; Buzz's NIP-FI assertion is a project specification. It also merged HPKE encryption for secret-key backup envelopes. That PR establishes source-level security work; distribution to every client remains unverified.
Buzz desktop 0.5.26 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 repository-wide notes 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.
Buzz's WebSocket NIP-FI enforcement checks a federated-identity assertion before accepting frames, then requires its Nostr key to match the key authenticated through NIP-42, which proves a client'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.
Owner-deletion preparation moves operator-attested requests through an inventory-bound automatic approval into the existing deletion executor. A relay follow-up makes retrying the same request return its current state and reserves the owner'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 partition-catalog audit detects catch-all partitions and uncovered months before creating new event and delivery-log partitions, exposing serving-safety and audit freshness to operators.
Buzz mobile now disambiguates people and agents that share a display name. Its identity-name resolver qualifies agents by their owner and adds a short key suffix only when necessary; conversation integration uses those names for authors, mentions and membership notices. Lists, search and Pulse complete the same behavior outside a conversation. The visible qualification changes the local label while a selected mention keeps the identity's original wire name.
59:01 Conduit advances checkout after relay acceptanceConduit nostr:npub1nkfqwlz7xkhhdaa3ekz88qqqk7a0ks7jpv9zdsv0u206swxjw9rq0g2svu is a Nostr marketplace that sends private order messages to merchants. Progressive relay publishing distinguishes the first positive relay acknowledgement from completion of all relay attempts, and a checkout follow-up persists that first acknowledgement before proceeding. A relay's acceptance means the signed order reached a relay; it does not prove a merchant read or fulfilled it.
Conduit also merged recoverable remote-signer sessions and transactional signer-relay negotiation. NIP-46 lets an application request signatures from a key held by a separate signer; these changes keep a user'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.
Conduit's ranked product-search merge sends one ordinary NIP-50 full-text-search query for kind 30402 products and preserves the relay'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.
59:50 Elisym builds a Nostr commerce checkoutElisym is developing a commerce toolkit that signs products and carries private order and receipt messages over Nostr. Its merged commerce package defines offer verification and gift-wrapped order events; a checkout interface handles offer review, wallet payment, and delivery status, while a self-hosted merchant node 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.
Elisym's agent checkout tools 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's local file backend. Tempo checkout support 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.
A later checkout fix 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.
60:34 nostter improves signer checks and event retrievalnostter is a Nostr social client. Its merged signer-capability change asks whether a usable signer is present before offering follow and reaction actions. New pin tags carry the author's key and a known relay hint without guessing one, and replaceable-event cache ordering follows NIP-01's timestamp and event-ID tie-break. NIP-01 defines the core Nostr event rules, including how clients choose between replaceable events.
61:00 Pensieve prepares isolated archive reconciliationPensieve (maintainer: nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) is a Nostr archive and recovery tool. Its merged isolated negentropy runtime 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.
61:25 ContextVM avoids duplicate calls across relaysContextVM's TypeScript SDK nostr:npub1dvmcpmefwtnn6dctsj3728n64xhrf06p9yude77echmrkgs5zmyqw33jdm carries tool and resource requests as Nostr events. Its merged inbound deduplication fix 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 resource-notification change sends updates only to subscribed clients; initialized sessions without a subscription no longer receive them.
61:56 Cyberspace revises the DECK-0003 object rulesCyberspace develops the DECK-0003 format for structured Nostr objects and encrypted region bags, which Amethyst began implementing in last week's issue. New parts and hidden-object rules and bag references let a bag refer to a separately published object instead of embedding every part. A later correction 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's wording has been superseded.
62:29 Wisp fixes replies to Nostr commentsWisp (maintainer: nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8) is a Nostr client with relay-routing and wallet features. After last week's released NIP-22 comment support, a merged follow-up 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's 1.2.5 tag, whose notes only bump the version, so this is source-level progress whose release is still unverified.
63:00 Cordn sends coordinator locations to a second deviceCordn coordinates encrypted group messaging over Nostr. Its merged multi-device specification change carries a group'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's Cordn offline-queue release, not a new client release.
63:30 Nostr Atlas opens a directory for checkable identitiesNostr Atlas is a new directory that presents Nostr profiles alongside claims to external accounts. Its merged site publication separates the directory from the project's component demo, and the site responds publicly. A claim-flow merge lets an X account owner publish a signed NIP-39 proof with a browser signer, while profile enrichment 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.
64:01 nostr-java adds media hosting tools and preserves tag positionsnostr-java is a Java library and MCP tool set for Nostr applications. Its merged Blossom tools let a caller upload, find, list, and delete hash-addressed media and manage the user's server list. A separate publishing fix 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.
64:33 Zap Cooking changes how account history can be recoveredZap Cooking nostr:npub1xxdd8eusvdxmaph3fkuu9x2mymhrcc3ghe2l38zv0l4f4nqp659qskkt7a is a recipe-sharing Nostr client. Its merged Lazarus recovery work replaces a backup built on NIP-78 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.
The client also merged optional NIP-13 proof-of-work controls for notes and replies and an attachment model that keeps media order and NIP-92 descriptions consistent between preview and publication. NIP-13 lets a sender spend local computation on an event before posting; NIP-92 carries media metadata as event tags.
Zap Cooking's NIP-05 claim fix requires NIP-98 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'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.
A mute-list repair 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.
65:30 Opal brings remote signing to OmarchyOpal (maintainer: nostr:npub18ams6ewn5aj2n3wt2qawzglx9mr4nzksxhvrdc4gzrecw7n5tvjqctp424) is a desktop Nostr signer built for the Omarchy Linux environment. Its September 28 version 0.3.3 follows the first public series with NIP-46 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.
66:00 WatchTower opens a NIP-86 relay control panelWatchTower (maintainer takuya (iqbqioza): nostr:npub1takuya0nl8u82tgppggscgnpfz5m5vueckmr5r6xnm5nkyu555lq2uqwf4) is a newly published panel for relay administration through NIP-86, the protocol for authenticated relay management requests. A public instance 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.
66:29 Hubstr Blossom opens a personal media originThe newly published Hubstr Blossom server 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.
The server's documented options also extract file metadata for NIP-94 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.
Hubstr Relay 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 September 25 update corrects records returned by NIP-86 pubkey-list methods.
67:18 Meshstr experiments with a permissionless relay meshMeshstr is an alpha design for Nostr relays to negotiate peer budgets and exchange signed usage receipts. Its first implementation includes a write-policy bridge for strfry, a Nostr relay, added September 27, with a socket fix the next day. The repository describes DIDComm negotiation and NIP-77 reconciliation, which lets peers compare event sets without exchanging their full inventories, alongside verifiable reports of peers exceeding agreed budgets.
Those project rules 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's write policy to the proposed mesh accounting.
67:54 Dossier shows what a public Nostr history can revealDossier is a new browser-side self-audit tool for a person's Nostr and Lightning footprint, with a public demo. It gathers visible profile links, zap trails, posting times, metadata from old NIP-04 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. NIP-07 signer support lets a user authorize cleanup actions without pasting a private key into the page.
The project's documented limits 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's past activity.
68:32 Marmot MDK extends polls, custom emoji, and account metadataMarmot MDK supplies the runtime and bindings for encrypted Nostr group messaging. Later MDK source merges expose paginated per-voter poll selections using the same effective-response rules as aggregate tallies. Optional application-owned group components give hosts admin-controlled settings that survive message retention and reach newcomers in their Welcome. Tagged sends and media reactions 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.
A convergence correction keeps messages pending when no canonical branch was selected instead of invalidating them without trying the live state. An accompanying unreachable-path cleanup routes unresolved staged commits into retained retry behavior. Encrypted-media reads align the HTTP read timeout with resumable-body idle handling, addressing stalled large transfers without claiming the pending incoming-APK device acceptance test passed. Startup-stage markers show which account-opening step timed out, adding diagnostic evidence without claiming the underlying startup stall is solved.
The local agent connector also merges existing profile metadata when publishing a kind 0 update, preserving fields the request omitted. Group-profile updates expose changes to a group'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.
69:23 rust-nostr correlates relay count repliesrust-nostr (maintainer: nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet), a Rust library and SDK for Nostr applications, merged correlated COUNT responses and clearer waiter errors. 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.
69:55 ZapTracker adds Nostr network and quote metricsZapTracker (maintainer Pratik (pratik227): nostr:npub1s56kqwj9ewz89dn5ns8elfwc4y7vygl0v4etglamw2gkc84cp8ts893h9f) is a creator dashboard for Nostr engagement and wallet activity. A network-dashboard merge replaces Lightning network statistics with online Nostr relay data from nostr.watch and capability information from NIP-11 documents. A quote-metrics change 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.
70:26 LaWallet NWC routes card top-ups to the card walletLaWallet NWC nostr:npub1ek4262k6nv3l9axh403w2e66pzl2pqhhnjrhgv2wpzx2akak285scxv4pd connects Lightning wallets to applications over Nostr Wallet Connect. Its BoltCard top-up merge advertises a LUD-19 pay link that creates an invoice through the card wallet'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's separate Lightning address. A follow-up exposes the same link in the emulator and carries recipient-accepted payer notes on LNURL sends.
70:58 A new khatru relay exposes owner moderation controlsnostr-relay-khatru published its initial source on September 29 as a general relay derived from the discontinued HiveScope-specific implementation. The public instance serves a NIP-11 document naming this repository and advertising authentication, event expiry, protected events, counting, reconciliation and relay administration. A September 30 implementation adds moderation controls to its owner panel. The public metadata verifies a deployed endpoint, not successful testing of every advertised method.
71:36 A local web-of-trust builder tracks unfollowsetemiz/wot 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 project documentation 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.
72:09 Moyu opens a Marmot workspace clientMoyu has published the source for a Rust workspace chat client built on Marmot, with command-line, terminal, and desktop interfaces. Its September 30 changes 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.
72:42 NIP-39 extends identity proofs to Bluesky and DiscordNIP-39 lets a Nostr account point to proof that it controls an identity on another platform. A change merged September 27 gives new proofs one recommended sentence and tells verifiers to accept older proofs that contain the account'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.
73:30 NIP-86 adds invite-code management for relay administratorsCompass described in the July 8 issue the NIP-86 invitation proposal while it was open; it has now merged. NIP-86 defines a standard relay-management API, and NIP-43 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.
A correction to last week's NIP-86 coverage: the merged specification 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.
74:17 NIP-51 moves favorite follow sets to an unused event kindNIP-51 defines public and private lists, including a list of a user's favorite follow sets. Compass described the kind-collision proposal 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.
74:50 NIP-51 proposes hidden replies for each threadAn open NIP-51 proposal would let a thread'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's author applies. Listing the root asks clients to hide other authors' 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.
75:32 NIP-DB proposes verified domain names for key-addressed servicesThe open NIP-DB proposal, submitted September 28, describes Nostr events that bind an ordinary Internet domain to the key serving it over a key-addressed network such as FIPS, 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's domain in a Nostr event. fips-pub-domains is the author'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's evidence, not a claim that the proposal is an accepted NIP.
76:18 A private-feed draft explores encrypted groups of recipientsA new multi-recipient envelope proposal, 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.
The proposal's author 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.
76:57 A Blossom proposal lets other people announce mirrored mediaAn open NIP proposal describes a way for someone who mirrors another author'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'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.
77:28 Road-event reports seek a shared Nostr formatThe open Road Event Reports proposal describes reports and confirmations for potholes, closures, cameras, and other road conditions. It uses location tags and NIP-40'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 Roadstr clients for reporting road conditions, but the draft still leaves a compact-encoding question open, and the proposed NIP number has not been adopted.
78:01 Marmot revisits multi-device coordinationMarmot's multi-device redesign 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.
78:36 Six Years of Nostr SeptembersThe last September issue is a chance to trace how Nostr moved from sketches to a larger set of interoperable tools. A 2021 ride-matching prototype used signed events to coordinate a service; five years later, identity proof wording and list-kind collisions 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.
79:04 September 2021: early experiments with useful shapesA September 4 BUber commit 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.
Later that month, Loquaz's September 23 source 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.
79:46 September 2022: chat and delegated actions enter the specificationsThe September 10 NIP-28 change described public chat channels with messages and metadata that clients could interpret together. NIP-28 made a shared room an explicit protocol subject and gave clients a common channel convention.
On September 23, NIP-26's delegated-signing text 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. NIP-26 is now marked unrecommended, 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.
80:27 September 2023: clients grow up around relay discovery and metadataDamus is a Nostr social client. Its September 21 changelog 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.
The protocol details were moving too. A September 26 change to NIP-24 clarified optional profile metadata fields, while NIP-65's September 29 change addressed relay URI normalization and deduplication. NIP-65 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's events depends on knowing where they are published.
81:19 September 2024: posts acquire richer contextDamus's September 22 release notes described support for NIP-84 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.
Meanwhile, NIP-34 received a September 20 change refining issue subjects and labels for git collaboration over Nostr, and NIP-73 received a change that day refining external content identifiers. These are separate specification changes: one helps a repository'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.
81:57 September 2025: access controls and payment context become more preciseA September 6 NIP-42 revision addressed multi-user relay authentication. NIP-42 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.
A September 15 NIP-47 update added optional payment metadata to Nostr Wallet Connect requests. NIP-47 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.
82:42 September 2026: interoperability details meet public identityThis September, a merged NIP-51 change moved the follow-set event kind away from a collision. NIP-51 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.
A second merged change to NIP-39 clarified proof text and added more ways to associate an external account with a Nostr identity. NIP-39 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.
Across these six Septembers, the pattern is a progression from proving that a signed event can describe an application request to asking how a client verifies a claim about a person. 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.
We finally stopped being lazy and brought a guest onto the Roundtable. Max Hillebrand joins Steve, Jeff, and I to talk about the absolute madness happening in the freedom tech space right now.
Max has been using AI agents to solve challenging computer science problems for White Noise and the Marmot protocol. We talk about the possibility that we are moving toward a future where the average user base for a custom piece of software is exactly one person. I share how I sent my AI agents after a spam caller company to track down the CEO's personal cell phone, and Steve explains how he's automating his bar's point-of-sale system with some interesting techniques.
But we don't just stick to software. We also discuss the need for open-source modular and repairable hardware. And of course, we cover the latest in the Bitcoin space. We review the latest exploits, how exchanges are handling flagged coins, and Steve pitches an incredibly clever way to measure Bitcoin's true purchasing power without ever looking at the fiat price.
It was a wild conversation with the guys about where this whole decentralized, peer-to-peer future is actually heading.
Chapters
(00:00:00) - Episode intro
(00:09:42) - AI cycle and Freedom tech update
(00:38:29) - Sovereign Engineering cohorts
(00:41:27) - AI, decentralization, and the global brain
(00:48:33) - Responsibility, hierarchy, and decentralized companies
(00:57:59) - Open source cars, power tools, and hardware
(01:25:41) - Current Bitcoin drama
(01:47:19) - Measuring Bitcoin purchasing power with UTXO size
(01:56:29) - Marmot protocol and MLS group encryption explained
Guest Links
Steve Simple Nostr (Link: https://tinyurl.com/3s6a8yn8)
Steve Simple on X (Link: https://x.com/stevesimple)
Jeff Swann Nostr (Link: https://tinyurl.com/3sjc3bcp)
Jeff Swann on X (Link: https://x.com/agoristview)
Max Hillebrand Nostr (Link: https://tinyurl.com/y4bsmpkk)
Max Hillebrand's website (Link: https://towardsliberty.com/)
Affiliate Links
Host Links
Guy on Nostr (Link: http://tinyurl.com/2xc96ney)
Guy on X (Link: https://twitter.com/theguyswann)
Guy on Instagram (Link: https://www.instagram.com/theguyswann)
Guy on TikTok (Link: https://www.tiktok.com/@theguyswann)
Guy's Takes on YouTube (Link: https://www.youtube.com/@GuysTake)
Guy Swann on YouTube (Link: https://www.youtube.com/@theguyswann)
Bitcoin Audible on X (Link: https://twitter.com/BitcoinAudible)
The Guy Swann Network Broadcast Room on Keet (Link: https://tinyurl.com/3na6v839)
Max, Form* and Infinity x2 discuss encrypted messaging, mesh networking, Nostr application releases, signer improvements, long-form articles, and media attachment metadata.
Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt · nostr:npub1qu7dsd44275lms4x9snnwvnnmgx926nsppmr7lcw9dlj36n4fltqgs7p98 · nostr:npub15gkmu50rcuv6mzevmslyllppwmeqxulnqfak0gwud3hfwmau6mvqqnpfvg
Newsletter 40 · Nostr Compass Android source
0:00 Episode introMax introduces episode40 of the asynchronous Nostr Compass podcast and invites listeners to contribute recordings through Logbook.
0:24 Marmot Protocol and MDK reach v0.10.0Marmot Protocol’s MDK v0.10.0 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.
2:08 Myco 0.7.0 runs napplets and file sharing over a multi-path FIPS meshMyco v0.7.0 turns the Android mesh application into a host for napplets, single-file Nostr programs described by the open NIP-5D proposal. 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.
3:33 Dart NDK changes relay, cache, and account behaviorDart NDK v0.10.0-dev.3 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.
4:18 Keycast publishes its rebuilt signer release candidateKeycast v2.0.0-rc.1 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.
5:08 Nail 0.2.0 restores Nostr-to-email subscriptionsNail v0.2.0, 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.
6:15 Nostr Mail Client 0.15.0 broadens account and relay controlNostr Mail Client v0.15.0 adds one-tap account switching, per-account notifications, web push, and recovery of a missing relay list from a relay, Nostr address, or nprofile. 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.
7:04 Linky 26.9.17 keeps recovery seeds off its serverLinky v26.9.17, a contacts, private Nostr messaging, and Lightning/Cashu payments application, fixes a path that sent recovery seeds to Linky'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.
8:00 Calendar by Form* 2.4.0 adds Mailstr guest invitationsCalendar by Form* v2.4.0, 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.
9:32 Hessible 0.1.2 speeds encrypted contact and photo syncHessible 0.1.2, 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.
10:07 Boris 0.12.5 bounds extraction and strengthens offline readingBoris v0.12.5, 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.
10:40 Amethyst 1.15.2 refines media and root-scope repliesAmethyst v1.15.2 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.
11:11 LibreNostr 0.5.17 routes feeds through author write relaysLibreNostr 0.5.17, 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.
12:07 Voca 1.2.0 improves speech cancellation and recoveryVoca 1.2.0 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.
13:01 Postr 1.1.1 adds dictation and publication recoveryPostr 1.1.1 nostr:npub1qwkd5wzftcxquuhtkcg0xn9ed7evksluuppf7qdmdh34ywe9uncs5uqfvl, a focused Android kind 1 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.
13:47 earthly 0.1.10 repairs map sanitization and authoringearthly v0.1.10 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.
14:20 Routstrd 0.4.10 tightens Nostr request routingRoutstrd v0.4.10 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.
14:53 Whistle 1.9.1 instruments background recoveryWhistle 1.9.1, 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.
15:28 nostr-wot-extension 0.7.0 encrypts wallet cache datanostr-wot-extension v0.7.0 (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.
16:01 Lightning.Pub 0.0.41 improves publication recoveryLightning.Pub v0.0.41 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.
16:38 Gittr 1.0.0 advances NIP-34 collaborationGittr v1.0.0, 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.
17:10 GitWorkshop 4.1.0 makes NIP-34 drafts recoverableGitWorkshop 4.1.0 (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.
17:48 ngit-ci 0.1.1 publishes signed CI coordinationngit-ci 0.1.1, 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.
18:22 pakstr 0.21.1 advances Nostr application packagingpakstr v0.21.1 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.
18:46 @elisym/cli 0.30.0 coordinates agent and delegation packages@elisym/cli 0.30.0 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.
19:15 Hashtree 0.2.150 advances hash-tree synchronizationHashtree v0.2.150 (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.
19:56 nostr-relay 0.0.266 improves shared-database operationnostr-relay v0.0.266 (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.
20:21 fips-tcp 0.2.2 implements FIPS over TCPfips-tcp v0.2.2 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.
20:57 Nenya marketplace libraryNenya 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.
21:18 GitHub-to-Nostr CI bridginggh-ngit-ci-bridge 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.
21:45 noscall encrypts voice attachmentsnoscall’s encrypted voice-attachment commit 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.
22:03 relayer restores notifier fan-out across processesrelayer pull request #167 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.
22:20 Trackstr maps media through dedicated event kindsTrackstr is an unreleased, open-source Nostr media database for discovering and tracking movies, music, television, and other media. Its current design uses event kinds 35400 through 35402, providing a reviewable schema and implementation surface. The kinds remain project-defined and may change before a release.
22:55 NIP-A3 clarifies payment-type ambiguityNIP-A3 (Payment Targets) standardizes typed payment targets in ["payto", "", "
"] tags on kind 10133 events. The merged payment-type clarification adds bitcoincash and tron to the documented type list and clarifies rendering: clients use a type-specific URI scheme when one exists, otherwise they fall back to payto:///.23:19 NIP-CD proposes addressable slash commandsThe open NIP-CD slash-command proposal defines addressable kind 31992 events whose command, title, description, arg, scope, and ignore tags advertise executable commands. Invocations begin at the first byte of an event'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.
23:58 NIP-90 proposes expiring DVM heartbeat eventsNIP-90 (Data Vending Machines) defines job requests, results, and feedback for services that perform work over Nostr. An open DVM heartbeat proposal adds optional kind 11998 events that should carry an expiration 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.
24:26 NIP-73 proposes podcast-medium filtersNIP-73 (External Content IDs) standardizes i tags for external identifiers and k tags for their categories. The open draft podcast-medium proposal adds optional podcast:medium:music and podcast:medium:podcast 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.
24:58 NIP-F5 proposes permissioned FIPS transport for web appsThe open NIP-F5 browser-transport proposal defines an optional window.fipsTransport 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.
25:38 Marmot clarifies KeyPackage relay discoveryMarmot carries MLS group state over Nostr events. The open KeyPackage relay-discovery clarification documents the current sequence: publish kind 10002 relay metadata, fetch the recipient's kind 30443 KeyPackage from write-capable or unmarked destinations, then use kind 10050 separately to find the recipient's Welcome inbox. It also states that read-only NIP-65 entries are not KeyPackage destinations and that the removed kind 10051 list is no longer a discovery step.
26:44 Marmot proposes encrypted group reports and shared moderationThe open Marmot moderation specification proposes unsigned inner events carried by the protocol's existing encrypted group transport. Kind 1984 would report a specific message revision, kind 1985 would let administrators dismiss referenced reports without removing the content, and kind 4891 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 5 and host-application interfaces outside the wire contract.
27:49 NWC adds payment lookup and BOLT12 recordsNostr Wallet Connect 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 lookup_payment and BOLT12 specification defines payment lookup by transaction ID, invoice, payment hash, or payment-type-specific selectors, and adds draft, optional BOLT12 payment records and states.
28:30 NWC adds client-initiated connectionsThe merged client-initiated connection flow 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.
29:02 NIP-23: Long-form ContentNIP-23 (Long-form Content) standardizes long-form content on Nostr using addressable kind 30023 events, as defined in the canonical specification. Publishers gain an editable article identity while kind 1 remains the short-note format.
32:39 NIP-92: Media Attachments MetadataNIP-92 (Media Attachments Metadata) standardizes metadata for media attachments through imeta tags in the canonical specification. 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.
Max covers signed Git workflows, browser publishing, Nostr client updates, protocol implementation, and how URI links and event references work.
Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt
Newsletter 39 · Nostr Compass Android source
0:00 Signed git workflows move CI, private repositories, and releases onto NostrMax 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.
3:13 nsite-clay makes browser publishing recoverableAn August 31 signer-prompt fix, publication recovery, and September 2 editing controls make nsite-clay 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 Blossom blob, and republishes the site's NIP-5A manifest. No local build or server is required.
4:53 NIP-A3 payment targets reach three clientsFrom September 1–3, Amethyst, Grimoire, and Pollerama implemented NIP-A3 kind 10133 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's relay list before querying targets. Each client still needs an allowed payment method, a relay route, and an accurate display.
5:16 Ditto expands Blossom fallback and mirroringMax 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.
5:46 Nostr Implementation PossibilitiesNIP-01 clarifies limit: 0 as a live-only subscription: no stored events, an EOSE message, and continued delivery of matching new events. NIP-78 recommends NIP-42 authentication and author-only access for app data kinds 78 and 30078; this is not a confidentiality guarantee. The open NIP-AC proposal uses ephemeral WebRTC signaling events and kind 30600 discovery.
8:08 NIP Deep Dive: URI Links and References in Event TextA Nostr identifier needs a transportable meaning before another application can open it. NIP-21 puts a NIP-19 identifier after the nostr: URI scheme, giving browsers, operating systems, and applications one dispatchable form. NIP-27 defines what that same URI means inside readable event content.
8:28 URI dispatch and NIP-19 semanticsNIP-21's grammar is nostr: followed by one NIP-19 bech32 entity. nsec is excluded because it encodes a private key. There is no authority, path, or query component, so a conforming link is nostr:npub1..., not nostr://npub1.... A platform or client may register as the handler; the specification does not choose the installed application or define a web fallback.
10:35 NIP-27 rendering and optional tagsNIP-27 uses nostr: 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 p, e and q tags support indexing and relationships alongside the reference; displaying a mention alone does not require a notification.
12:19 Trust, failure behavior, and client implementationsnote and nevent refer to immutable event ids, while naddr 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.
Max and Sam discuss FIPS mesh tools, private messaging, Nostr application releases, relay operations, custom emoji, and video events this week.
Guests: nostr:npub1klkk3vrzme455yh9rl2jshq7rc8dpegj3ndf82c3ks2sk40dxt7qulx3vt nostr:npub1yzfm42rzr3dj2h50flpvdl0uzrv22kv2y4ghve804w5xqu6lzqcqkyfxu5
Newsletter 41 · Nostr Compass Android source
0:00 Welcome and Nostr Compass Android appMax opens the asynchronous podcast and introduces the Nostr Compass Android app, which brings the newsletter, podcasts and voice-note contributions together.
0:47 fips2go 0.7.0 keeps the mesh connected through bootstrap failuresfips2go is an Android client that lets selected applications reach peers and services over the FIPS encrypted mesh. The new 0.7.0 release 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.
1:43 fips-initramfs opens encrypted roots over FIPS before bootfips-initramfs 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 0.1.0 release, published September 6, packages the mesh client, SSH access, and passphrase-entry scripts for systems that need unattended or remote encrypted-root startup.
2:53 Grain 0.8.0-rc4 turns relay health into an operator dashboardGrain is a self-hosted Nostr relay with an integrated reference client and administration interface. Version 0.8.0-rc4 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.
3:18 Marmot Protocol 0.10.4 makes local sends durableMarmot Protocol's MDK is an SDK for MLS-encrypted group messaging whose transport and discovery run over Nostr. Version 0.10.4 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.
4:19 MintRadar makes Cashu mints easier to compareMintRadar is a privacy-focused Cashu dashboard that uses Nostr to discover mints and bind community reviews to signed identities. Its current source adds persistent NIP-87 mint announcements, same-operator detection from NUT-06 pubkeys, shareable comparison URLs, and Nostr naddr deep links.
4:52 Nostr WoT Oracle 0.3.1 makes trust queries restart-safeNostr WoT Oracle (maintainer Leon Acosta: nostr:npub1gxdhmu9swqduwhr6zptjy4ya693zp3ql28nemy4hd97kuufyrqdqwe5zfk) is a server that ingests public follow and mute events and answers bounded web-of-trust path queries. Versions 0.3.0 and 0.3.1 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.
5:43 Nostr WoT SDK 1.0.2 compresses browser graph storageNostr WoT SDK is a JavaScript toolkit for crawling, storing, and querying Nostr follow graphs in applications. Version 1.0.2 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.
6:19 napplet.soy publishes small sandboxed Nostr programsnapplet.soy 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 soyLI 0.18.2 release follows the project's September launch with signed listings, Blossom-hosted assets, Git and NIP-34 source references, and relay-discovered manifests.
7:10 RelayKit installs a self-hosted Nostr stackRelayKit 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 current source repository documents the new operator-focused deployment surface.
10:15 Threshold Sessions turns coding transcripts into private training dataThreshold Sessions 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.
10:55 White Noise Android 2026.9.21 improves encrypted-chat reliability and sharingWhite Noise Android 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.
12:40 Nostr Mail Client 0.16.0 adds per-recipient delivery choicesNostr Mail Client (maintainer nogringo: nostr:npub1kg4sdvz3l4fr99n2jdz2vdxe2mpacva87hkdetv76ywacsfq5leqquw5te) is a web, desktop, and Android mail client that exchanges messages through Nostr relays while supporting conventional email delivery. Version 0.16.0 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.
13:29 Amber 6.6.5 separates backup encryption from app permissionsAmber (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. Version 6.6.5 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.
14:00 Amethyst 1.16.0 hardens Blossom signing and adds BOLT12 offersAmethyst nostr:npub142gywvjkq0dv6nupggyn2euhx4nduwc7yz5f24ah9rpmunr2s39se3xrj0 is an Android Nostr client with media, wallet, and signer integrations. Version 1.16.0 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.
14:46 Alby Extension 3.15.0 hardens website-initiated requestsAlby Extension nostr:npub1getal6ykt05fsz5nqu4uld09nfj3y3qxmv8crys4aeut53unfvlqr80nfm is a browser wallet and Nostr signer that grants websites scoped Lightning and signing capabilities. Version 3.15.0 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.
15:28 LaWallet NWC 2.7.1 unifies zap receipts across walletsLaWallet NWC 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. Version 2.7.0 decouples that receipt publication from wallet-specific settlement paths so every supported NWC wallet can emit zap receipts, then 2.7.1 brings receive and activity screens onto the same receipt flow as sends.
15:55 NoorNote 1.6.0–1.7.0 adds calendars and bookingNoorNote (maintainer: nostr:npub175nul9cvufswwsnpy99lvyhg7ad9nkccxhkhusznxfkr7e0zxthql9g6w0) is a Nostr notes application with optional productivity modules and local reminders. Version 1.6.0 adds public and encrypted calendar events, month, week, and list views, Android reminders, and interactive timeline cards for shared events.
16:22 Citrine 3.2.0 bounds relay-aggregator memoryCitrine is an Android Nostr relay that gives other applications a local event store and relay interface. Version 3.2.0 streams matching events in batches, caps aggregator fan-out at 200 relays, and bounds caches to prevent large queries from exhausting memory.
16:44 Wisp 1.2.4 routes threads through inbox relaysWisp (maintainer: nostr:npub1utx00neqgqln72j22kej3ux7803c2k986henvvha4thuwfkper4s7r50e8) is a privacy-oriented Nostr client with built-in Cashu and Lightning wallet support. NIP-22 defines generic kind 1111 comments that can reply to many kinds of Nostr content. Version 1.2.4 sends thread and notification reads only to inbox relays, treats those comments as replies, and lets users withdraw their full wallet balance on chain.
17:14 nostr-wot-extension 0.8.3 adds scoped NWC connectionsnostr-wot-extension is a browser signer and identity extension with wallet payments and local web-of-trust analysis. Version 0.8.0 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.
18:32 pakstr 0.22.0–0.24.0 adds Android signer handoffpakstr packages web applications with native Nostr capabilities. Last week's issue covered its 0.21.x packaging sequence. The new 0.22.0 release adds NIP-55 signing through the NIP-46 bunker, letting an Android application hand signing requests to an external signer.
19:18 Nail 0.2.2 makes mail attachments fail softNail nostr:npub1qu7dsd44275lms4x9snnwvnnmgx926nsppmr7lcw9dlj36n4fltqgs7p98 is a bridge and application that carries Nostr messages into email workflows. Version 0.2.2 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.
19:45 Mostro CLI 0.16.2 removes its legacy chat transportMostro CLI nostr:npub1m0str0d7z2ww8rdh20t2n9lx520xjwhaq24p68umqp06wwrwtsnqen40un is a terminal client for coordinating peer-to-peer Bitcoin trades through Mostro's Nostr protocol. Version 0.16.2 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.
20:17 Dart NDK dev.4–dev.5 adds signed app updates and hardens relay deliveryDart NDK (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. Version 0.10.0-dev.4 adds NIP-82 application-update support; dev.5 makes Cashu quote recovery resumable and lets a broadcast declare the identity to which it may be attributed.
20:49 BitBlik 0.11.0 brings disputes into the appBitBlik nostr:npub1k3g092rlzvn7nftz3jte9pkx63zp705nh78r6hjpjm55fjg7r2cqx8stj3 is a mobile peer-to-peer Bitcoin trading client that coordinates orders and chat over Nostr. Version 0.11.0 adds coordinator dispute chat, BOLT12 payouts where supported, Android self-updates sourced from NIP-82 release events, and wallet backup and recovery fixes.
21:11 Scramble 0.7.2 changes MLS engines and offers two Android viewsScramble is a Nostr-based encrypted group-chat application. Its 0.7.0 release 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.
22:19 Morganite 0.0.5 makes onion Blossom media seekableMorganite is an Android Blossom media cache for Nostr clients. Version 0.0.5 fetches blobs from Tor .onion 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.
22:43 Bitcredit 0.5.16 recovers stalled Nostr bill eventsBitcredit E-Bills nostr:npub1eajvs8x67vmzsnwaf9ltfgt59e6acmeztx9shduewvfgwftx8ahsagcd93 carries bill, company, and identity chains through Nostr events. Version 0.5.16 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.
23:24 fips-ts 0.0.43 protects concurrent FIPS sessionsfips-ts (maintainer: nostr:npub1g53mukxnjkcmr94fhryzkqutdz2ukq4ks0gvy5af25rgmwsl4ngq43drvk) supplies the shared TypeScript FIPS mesh runtime used by compatible clients. Its runtime 0.0.43 release 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.
23:59 Bookshelf 0.1.25 makes signed book reviews editableBookshelf (organization Decent Newsroom: nostr:npub1ez09adke4vy8udk3y2skwst8q5chjgqzym9lpq4u58zf96zcl7kqyry2lz) is a Nostr-connected Android reader with community book ratings and private highlights. Version 0.1.25 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.
24:34 Cordn 0.5.0 queues encrypted messages offlineCordn (maintainer: nostr:npub1atv4akyv986nswm4f87zdspfgehzgsva82l5jsd2k3dzgrtzpagssl84q8) is an encrypted Nostr group-chat client. Version 0.5.0 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's NIP-44 capability before offering an encrypted action, surfacing unsupported signers instead of failing silently.
25:00 21Meetup 1.6.6 restores multi-hop trust paths21Meetup nostr:npub1rl4wlgapxcapk0p3242kqcw7az584sjxgssuwh38u2gatk0cwewsudjz85 issues Nostr-backed attendance badges for in-person events. Version 1.6.6 restores second- and third-degree trust paths by fetching contacts' meetup records in bounded stages. Failed badge publications can be retried, and a send counts as successful only after a relay acknowledges it.
25:29 TWENTY ONE Companion 1.13.0 explains public Nostr RSVPsTWENTY ONE Companion nostr:npub1pt0kw36ue3w2g4haxq3wgm6a2fhtptmzsjlc2j2vphtcgle72qesgpjyc6 combines Nostr rooms and articles with meetup listings. Version 1.13.0 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.
25:56 Armada 0.61.0 adds media privacy and member controlsArmada is a Nostr-based encrypted community client. Version 0.61.0 adds an opt-in image proxy list so a sender's media host need not learn a reader'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.
26:30 Ditto 2.40.0 brings Top 8 rankings to Nostr profilesDitto nostr:npub10qdp2fc9ta6vraczxrcs8prqnv69fru2k6s2dj48gqjcylulmtjsg9arpj is a social client on Nostr. Version 2.40.0 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' feeds.
26:53 XM Arcade 1.1.3 binds mini-app approval to one runXM Arcade runs small games and mini-apps within a Nostr group context. Version 1.1.3 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.
27:34 Zzub 0.0.15–0.0.16 expands mobile project boardsZzub 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.
28:15 Table Mesh 0.1.0 brings Nostr game discovery to offline board gamesTable Mesh 0.1.0 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.
28:57 0xchat merges fixes for signing, message-authentication, and redirect flaws0xchat's merged security PR 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.
29:17 nos2x-fox closes a PIN exposure pathnos2x-fox is a Firefox extension that offers Nostr signing to websites. A merged access-control fix 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.
29:54 nostream publishes relay health eventsnostream is a Nostr relay implementation that also runs a relay monitor. Its merged NIP-66 work publishes signed relay-discovery and monitor-announcement events after a probe, giving other clients a way to find the monitor's measurements through Nostr. NIP-66 defines relay-discovery and monitor events so relay status can be shared in a common format.
30:24 nostter ties remote signing to the active sessionnostter is a web Nostr client for reading and publishing through relays. Its NIP-46 connection lifecycle now belongs to the authenticated session's signer, so a failed login or session reset can dispose of the remote connection instead of leaving a module-global signer behind. NIP-46 lets a client ask a separate signer to approve cryptographic operations over Nostr.
30:43 Zap Cooking publishes image descriptions and blocks secret-key searchesZap Cooking is a Nostr recipe and long-form publishing site. Its NIP-92 image-description work lets authors write alternative text for images in notes, replies, recipes, articles, and products, then carries that text in imeta tags that other clients can render. NIP-92 standardizes media metadata attached to Nostr events, including image descriptions.
31:05 Divine Mobile reconnects idle relay subscriptionsDivine Mobile (maintainer rabble: nostr:npub1wmr34t36fy03m8hvgl96zl3znndyzyaqhwmwdtshwmtkg03fetaqhjg240) is a short-video client that publishes and reads Nostr events. A merged relay fix 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.
31:30 Conduit uploads product images through BlossomConduit is a Nostr-based marketplace with merchant publishing tools. Its merged image-upload work 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.
31:52 Buzz adds authenticated relay moderation controlsBuzz nostr:npub16l0ck0s5zened29dsaqtqm6z0t4fmk2mwtszw64fz7fppcnls8mss3yj9s includes a Nostr relay and community administration tools. Its merged relay-admin routes let authorized operators list active bans and timeouts and lift them through a signed HTTP request. NIP-98 defines Nostr-event authorization for HTTP calls, allowing the relay to verify who made the administrative request.
32:12 ContextVM SDK shortens publish waits and repairs streamsContextVM SDK nostr:npub1dvmcpmefwtnn6dctsj3728n64xhrf06p9yude77echmrkgs5zmyqw33jdm is a TypeScript toolkit for applications that exchange signed requests and streams over Nostr relays. Its relay-pool change sends an event to every connected relay but, by default, finishes the caller'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.
32:44 Mostro preserves an order's original creation timeMostro is a peer-to-peer Bitcoin exchange coordinator that publishes orders over Nostr. Its merged kind 38383 change adds a stable created_at 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. NIP-69 defines the Nostr order format used by interoperable trading clients.
33:11 Amethyst implements DECK-0003 objects and encrypted bag searchAmethyst's merged DECK-0003 work reads and renders Simple Nostr Objects, a JSON 3D-mesh format carried in Nostr events. It supports kind 11333 avatars, kind 3330 shards, and opening encrypted kind 33330 region bags from a location hint. CLI commands parse and verify objects or calculate the bounded search needed to open a bag.
33:59 Amethyst broadens MLS interoperability and repairs desktop group renderingAmethyst's Quartz library now lets callers choose an MLS group ID and omit Marmot-only required capabilities when interoperating with other MLS stacks. Separate merged changes allow extensions supported by every group member, carry authenticated application-message data, and set an optional key-package lifetime. The Marmot defaults remain unchanged; these are shared-library capabilities, not a claim that every client UI exposes them.
34:44 nostter gates signing and private reads on real capabilitiesContinuing the session-owned NIP-46 work above, nostter's merged signer migration checks for an actual signer before offering write actions instead of treating every logged-in session as writable. Private bookmarks now require NIP-04 or NIP-44 decryption capability, and remote-signer settings require NIP-44 support. A read-only or anonymous account can still use non-writing profile actions.
35:07 Pensieve makes archive reconciliation bounded and durablePensieve's archive receipt work (maintainer: nostr:npub1zuuajd7u3sx8xu92yav9jwxpr839cs0kc3q6t56vd5u9q033xmhsk6c2uc) waits for actual durable event markers before declaring a reconciliation attempt complete, retaining unresolved IDs across recovery. The sealing change separates periodic archive durability from optional Parquet publication, and the bounded inventory scans sealed segments with explicit limits and a persisted cursor.
35:28 MDK reduces repeated replay work for parked encrypted messagesMDK's merged replay fix 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'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.
35:46 NIP-02 clarifies petnames in follow listsNIP-02 (Follow List) standardizes the kind 3 event that records whom an account follows and can attach a local petname to each followed key. The merged petname clarification allows display-safe characters while preserving the field as a user's local label, not a globally verified name.
36:04 NIP-86 adds clear and list methods for relay managementNIP-86 (Relay Management API) standardizes authenticated administrative calls for banning, allowing, inspecting, and configuring a relay. PR #2477, 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.
36:21 NIP-69 proposes a stable creation time for trading ordersNIP-69 (Peer-to-Peer Trading) standardizes addressable order events that let multiple trading applications share buy and sell liquidity. PR #2476 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.
36:45 NIP-A3 proposes proof of payment-address ownershipNIP-A3 (Payment Targets) lets an account publish portable payment addresses for multiple networks in one replaceable event. PR #2475 proposes an optional signature made by the payment address's own key, giving compatible address types a proof that binds the destination to the Nostr author while treating missing proofs as neutral.
37:13 BUD-16 proposes deterministic directory manifestsBUD-16 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 .bdir path resolution while leaving servers to store ordinary blobs.
37:49 Marmot adds encrypted group pollsMarmot Protocol defines interoperable application events inside MLS-encrypted groups carried over Nostr. NIP-88 defines poll questions and signed response events. Merged MIP work 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.
38:28 Marmot merges group reports and admin deletionMarmot group moderation defines encrypted report, dismissal, and administrator-deletion events that converge under the group'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.
38:59 NWC-13 proposes connection budget queriesNostr Wallet Connect lets an application request narrowly scoped wallet operations through encrypted Nostr events. NWC-13 proposes a separate get_budget permission and response so an application can inspect used, total, and renewal allowance without receiving permission to read the wallet's balance.
39:31 NIP-30: Custom EmojiNIP-30 (Custom Emoji) standardizes how a signed event maps readable :shortcodes: to image URLs, with an optional address that points to a reusable emoji set. The specification permits letters, numbers, hyphens, and underscore (_) 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 30030 parameterized replaceable events that hold named emoji sets.
41:54 NIP-71: Video EventsNIP-71 (Video Events) standardizes Nostr events for horizontal and short-form video, including playback metadata, alternate files, captions, chapters, participants, and imported-source provenance. The canonical specification assigns kinds 21 and 22 to immutable horizontal and portrait video posts, while kinds 34235 and 34236 use a d tag to create addressable videos whose metadata can be updated under a stable coordinate. Each imeta tag describes one playable variant with a URL and media type plus optional dimensions, hash, preview image, fallback, service, bitrate, and duration.
43:39 Closing and Nostr Compass appMax thanks the builders and contributors, and invites listeners to join the asynchronous podcast through the Nostr Compass Android app.
From the publisher's feed