### News
- **0:00 Intro**
This episode follows Nostr Compass #25 across top stories, releases, in-development work, a batch of merged NIPs, and deep dives on NIP-32 and NIP-F4.
- **0:15 Amber 6.2.0 – NIP-44 v3 encryption shipped**
Amber v6.2.0 adds NIP-44 v3 encryption with a dedicated approval screen, intent and bunker previews, history logging, auto-reject for invalid requests, and ContentProvider authority registration for downstream Android apps. NIP-46 sessions auto-accept ping on connect, and the deprecated sign_message method was removed. Amber ships v3 before the NIPs PR lands, making it the de facto reference for other clients.
- **1:15 Mostro – Cashu escrow integration via CDK**
grunch landed eight PRs integrating Cashu P2PK multisig (NUT-10 and NUT-11) as a second settlement backend alongside Lightning on the Mostro P2P exchange. mostro-core v0.12.0 adds 2-of-3 multisig escrow types, documented in PR #756 with per-order trade keys in PR #757, an EscrowBackend trait in PR #760, CDK wrapping in PR #759, CAS escrow locks in PR #761, and a containerized mint CI job in PR #762.
### Releases
- **2:47 ngit v2.5.0 – GRASP fallback and lazy git fetches**
ngit v2.5.0 defaults git push pr/ and ngit send to produce PR kinds when a GRASP server is registered, falls back to GRASP-06 routing on push failure, preserves unknown tags on ngit init republish, and adds lazy fetch helpers shared across ngit pr apply, checkout, and list.
- **3:57 Jumble v26.5.7 – EXIF stripping and validated zap counts**
Jumble v26.5.7 strips EXIF location and camera metadata from image uploads, computes zap counts only from cryptographically validated receipts, and adds sender-identity verification for NIP-17 DMs.
- **5:01 nostr-calendar v1.6.0 – RSVP and duplicate participant handling**
nostr-calendar v1.6.0 lands RSVP flow in PR #169, duplicate participant prevention in PR #168, and non-blocking publish defaults in PR #170.
- **6:23 Sprout 0.3.6 – mesh-llm and channel sections**
Sprout v0.3.6 adds in-process mesh-llm integration in PR #798, user-defined channel sections with relay sync in PR #792 and PR #800, thread-aware notifications in PR #761, arbitrary file attachments in PR #810, and a Pulse social feed tab in PR #772.
- **7:35 NostrBotKit v0.5.0 – Marmot group chat in a Rust bot framework**
NostrBotKit v0.5.0 adds Marmot support with automatic group invitation handling, dm_marmot and dm_marmot_npub commands, MIP-04 attachment decryption, and MLS state encrypted with a key derived from the bot private key, making it the first Rust framework with NIP-104 bot support.
- **8:42 noscrypt v0.1.14 – signed cryptography library release**
noscrypt v0.1.14 is a security release of the C cryptography library used for secp256k1, NIP-04, and NIP-44 primitives, shipped with PGP-signed downloads verifiable against the maintainer public key.
- **9:10 Chama v1.3.0 – Nostr-native P2P escrow with Fedimint**
Chama v1.3.0 introduces trade healing that survives session restarts and pay-rail matching for US-leaning Chamas, building on Fedimint ecash and 2-of-3 Shamir secret sharing in a serverless Nostr-native escrow client.
### Project Updates
- **10:12 Amethyst – NIP-32 hashtag labeling, podcast screen, music tracks**
Amethyst merged 52 PRs without a release tag, including NIP-32 hashtag labeling and a label-based feed in PR #3111, a dedicated podcast screen in PR #3105, software apps feed in PR #3071, music tracks via NIP-51 in PR #3067, ephemeral anonymous upload signers in PR #3123, and Tor self-heal in PR #3053.
- **12:08 Shopstr – OpenGraph preview URL validation**
Shopstr PR #504 validates OpenGraph preview URLs before rendering in marketplace listings, closing an XSS surface where malicious sellers could inject scripted content via crafted OG metadata.
### NIP Updates
- **12:47 NIP-F4 (Podcasts) merged after two years – Merged**
PR #1093 merged May 28 after 27 months, defining kind 54 podcast episodes with imeta audio metadata, kind 10154 podcast metadata, kind 10164 author counter-claims, and kind 10054 favorite-podcast lists, with RSS kept as the distribution layer and Nostr as the social layer.
- **14:09 NIP-17 key decoupling (PR #2361) – Open**
PR #2361 proposes separating identity and encryption keys in NIP-17 via kind 10044 encryption key advertisements and an n tag on seals. Cody Tseng supports it for bunker UX; Vitor Pamplona argues it breaks interop and that Marmot key packages already solve the problem.
- **17:18 NIP-Silent Payments payment flow (PR #2362) – Open**
PR #2362 defines kind 8352 silent payment receipt notifications via NIP-59 gift wrap and kind 10353 encrypted UTXO cache for cross-device Silent Payments wallet sync, companion to PR #2355.
- **19:03 NIP-PIP Perfect IP Packets (PR #2364) – Open**
PR #2364 proposes addressable kinds 39078 (manifest), 39079 (slices), and 39080 (repair requests) for a packet-tree transport breaking large files into reconcilable slices.
- **20:01 NIP-29 audio/video live spaces (PR #2238) – Merged**
PR #2238 extends NIP-29 relay-based groups with audio and video live-space support, anchoring NIP-53 live activity in group context.
- **20:26 NIP-71 video multiple audio tracks (PR #2255) – Merged**
PR #2255 adds audio-track NIP-92 imeta tags to NIP-71 video events for multi-language tracks, audio-only streaming, and resolution switching with stable audio.
- **21:13 NIP-59 ephemeral gift wrap (PR #2245) – Merged**
PR #2245 adds kind 21059 as an ephemeral NIP-59 gift wrap counterpart to kind 1059, letting relays drop typing indicators and presence pings after broadcast.
- **21:56 NIP-78 application-specific kind (PR #2292) – Merged**
PR #2292 reclassifies NIP-78 application-specific data as a normal addressable kind, aligning replaceability with other application-state NIPs.
- **22:20 NIP-85 clarifications (PR #2304) – Merged**
PR #2304 clarifies multiple keys and relays per service provider in NIP-85 Trusted Assertions, covering operator key rotation paths.
- **22:40 NIP-01 relay connection management one-liner (PR #2307) – Merged**
PR #2307 adds a single sentence to NIP-01 on relay connection lifetimes, addressing silent message loss when clients differ on idle WebSocket handling.
- **23:08 NIP-C7 kind 9 chat constraint (PR #2310) – Merged**
PR #2310 restricts NIP-C7 chat views to kind 9 messages only, separating ephemeral chat from kind 1 timeline posts.
- **23:26 NIP-55 simplification (PR #2363) – Open**
PR #2363 simplifies the NIP-55 Android signer application spec, paving the way for Amber v6.2.0 ContentProvider authority registration.
- **23:42 NIP-44 v3 – Amber implementation ahead of spec – Open**
Amber v6.2.0 ships NIP-44 v3 with version byte 0x03, dedicated approval UI, auto-reject, and per-direction history logging before the NIPs-repo spec PR merges, making v3 an Amber-specific extension until protocol consensus catches up.
### NIP Deep Dives
- **24:31 NIP deep dive: NIP-32 (Labeling)**
NIP-32 defines kind 1985 label events with L namespace and l label tags targeting events, pubkeys, relays, URLs, or topics. Labels are assertions, not protocol truth: clients choose which labelers and namespaces to honor. Amethyst PR #3111 deploys hashtag discovery via trusted labelers, replacing brittle #tag text matching while keeping text fallback for unlabeled notes.
- **28:16 NIP deep dive: NIP-F4 (Podcasts)**
NIP-F4 treats each podcast as its own Nostr keypair with kind 10154 metadata, kind 10164 author counter-claims, kind 54 episodes, and kind 10054 favorite lists. The merge settled on RSS as distribution layer and Nostr as social layer after 27 months of debate. Open items include a kind 10164 example typo, episode discovery without RSS GUID bridging, and stub fields on kind 54 audio tags.