<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Nieuwsbrieven on Nostr Compass</title><link>https://nostrcompass.org/nl/newsletters/</link><description>Recent content in Nieuwsbrieven on Nostr Compass</description><generator>Hugo</generator><language>nl</language><atom:link href="https://nostrcompass.org/nl/newsletters/feed.xml" rel="self" type="application/rss+xml"/><item><title>Nostr Compass #26</title><link>https://nostrcompass.org/nl/newsletters/2026-06-10-newsletter/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-06-10-newsletter/</guid><description>&lt;p>De Marmot Protocol-organisatie opent drie nieuwe repos voor een v2 protocol draft en een native client-lijn: een Rust workspace genaamd &lt;code>darkmatter&lt;/code>, een SwiftUI iOS-app &lt;code>darkmatter-ios&lt;/code> en een Kotlin/Compose Android-app &lt;code>darkmatter-android&lt;/code>. De originele Flutter Whitenoise is gearchiveerd. Chama comprimeert zeventien releases in één week en steekt de standalone-app grens over bij v3.0.0 voordat een volledige trade-room UI-herteken en per-verkoper storefronts landen in v3.1.0, bovenop holder-only Shamir shares, arbiter-substitutie, wereldwijde community-routing en end-to-end trade-notificaties. Coracle lanceert een betaalde hosted-relay service ondersteund door de open-source Caravel en zooid stack, met diepe Flotilla-integratie gepland. Angor schakelt over naar mainnet als standaard in v0.2.30 en landt een 3-user UAT funding test in v0.2.29. Amethyst landt 41 onuitgebrachte PRs die het NIP-32 / NIP-F4 / Tor werk van vorige week voortzetten. NIP-67 (EOSE completeness hint) en NIP-50 autocomplete worden gemerged, waarmee twee langstaande correctheidsgaten in het core relay-protocol worden gesloten. NIP-GART stelt een privacy-behoudend wire format voor voor noodmeldingen, en NIP-46 krijgt een logout-methode.&lt;/p></description><content:encoded>&lt;p>De Marmot Protocol-organisatie opent drie nieuwe repos voor een v2 protocol draft en een native client-lijn: een Rust workspace genaamd &lt;code>darkmatter&lt;/code>, een SwiftUI iOS-app &lt;code>darkmatter-ios&lt;/code> en een Kotlin/Compose Android-app &lt;code>darkmatter-android&lt;/code>. De originele Flutter Whitenoise is gearchiveerd. Chama comprimeert zeventien releases in één week en steekt de standalone-app grens over bij v3.0.0 voordat een volledige trade-room UI-herteken en per-verkoper storefronts landen in v3.1.0, bovenop holder-only Shamir shares, arbiter-substitutie, wereldwijde community-routing en end-to-end trade-notificaties. Coracle lanceert een betaalde hosted-relay service ondersteund door de open-source Caravel en zooid stack, met diepe Flotilla-integratie gepland. Angor schakelt over naar mainnet als standaard in v0.2.30 en landt een 3-user UAT funding test in v0.2.29. Amethyst landt 41 onuitgebrachte PRs die het NIP-32 / NIP-F4 / Tor werk van vorige week voortzetten. NIP-67 (EOSE completeness hint) en NIP-50 autocomplete worden gemerged, waarmee twee langstaande correctheidsgaten in het core relay-protocol worden gesloten. NIP-GART stelt een privacy-behoudend wire format voor voor noodmeldingen, en NIP-46 krijgt een logout-methode.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="marmot-v2-dark-matter-protocol-herschrijving-native-clients-gearchiveerde-flutter-app">Marmot v2 (Dark Matter): protocol-herschrijving, native clients, gearchiveerde Flutter-app&lt;/h3>
&lt;p>Deze week verschenen drie nieuwe repos onder de &lt;a href="https://github.com/marmot-protocol">marmot-protocol&lt;/a> GitHub-organisatie, samen vormen ze de vroege vorm van een Marmot v2 protocol draft en een native-client lijn die de Flutter-app-lijn vervangt. &lt;a href="https://github.com/marmot-protocol/darkmatter">&lt;code>darkmatter&lt;/code>&lt;/a> (Rust, aangemaakt 13 mei, vierendertig commits in de afgelopen zeven dagen) bevat de v2 protocol draft in &lt;code>spec/&lt;/code>, een OpenMLS-ondersteunde CGKA-engine in &lt;code>crates/cgka-engine&lt;/code>, een conformance-simulator met property tests en een Tamarin formeel model voor convergence proofs. &lt;a href="https://github.com/marmot-protocol/darkmatter-ios">&lt;code>darkmatter-ios&lt;/code>&lt;/a> (Swift, aangemaakt 25 mei) is een SwiftUI-client ondersteund door een vendored &lt;code>MarmotKit&lt;/code> UniFFI xcframework gegenereerd uit de Rust workspace. &lt;a href="https://github.com/marmot-protocol/darkmatter-android">&lt;code>darkmatter-android&lt;/code>&lt;/a> (Kotlin/Jetpack Compose, aangemaakt 25 mei) rust op dezelfde Rust bindings. De originele Flutter Whitenoise is gemarkeerd als &lt;a href="https://github.com/marmot-protocol/whitenoise-archive">&lt;code>whitenoise-archive&lt;/code>&lt;/a> (&amp;ldquo;ARCHIVED: This was the original White Noise Flutter app&amp;rdquo;); een nieuwe &lt;a href="https://github.com/marmot-protocol/whitenoise">&lt;code>whitenoise&lt;/code>&lt;/a> Dart-repo draagt de actieve Flutter-lijn parallel.&lt;/p>
&lt;p>Lees dit als vroege voortgang naar een betrouwbaardere Marmot, geen voltooide pivot. De darkmatter README bestempelt zichzelf als &amp;ldquo;Candidate Marmot v2 protocol draft, CGKA engine, and conformance workspace&amp;rdquo; en zegt direct: &amp;ldquo;MDK remains the deployed Rust protocol implementation until this draft and engine are adopted.&amp;rdquo; Binnen de workspace is de cgka-engine crate getagd &lt;code>0.1.0&lt;/code>, &amp;ldquo;single internal consumer, not semver-stable.&amp;rdquo; Elke spec-pagina draagt &amp;ldquo;Status: draft for internal review&amp;rdquo;. Drie sterren op de workspace-repo en nul op de iOS- en Android-apps bevestigen dat het werk pre-announce is. Richting, scope en discipline zijn hier het signaal; production readiness is niet de claim.&lt;/p>
&lt;p>De protocol-draft maakt de v1-naar-v2 delta&amp;rsquo;s concreet. MIP-01&amp;rsquo;s monolithische &lt;code>marmot_group_data&lt;/code> MLS-extensie, die sinds het begin van Marmot groepsnaam, beschrijving, admin pubkeys, Nostr group routing id, relay-lijst, groepsafbeelding-data en disappearing-message settings onder één paraplu draagt, wordt &lt;a href="https://github.com/marmot-protocol/darkmatter/blob/master/spec/mip-coverage.md">gesplitst in versioned app componenten&lt;/a>: &lt;code>marmot.group.profile.v1&lt;/code> voor naam en beschrijving, &lt;code>marmot.group.admin-policy.v1&lt;/code> voor admin pubkeys, &lt;code>marmot.transport.nostr.routing.v1&lt;/code> voor de willekeurige &lt;code>nostr_group_id&lt;/code> en de canonieke relay-lijst, &lt;code>marmot.group.blossom.image.v1&lt;/code> voor image hash, encryption key, nonce en upload key, en &lt;code>marmot.group.message-retention.v1&lt;/code> voor disappearing-message seconden. Elk component bezit zijn exacte bytes en zijn eigen versiepad, dus een toekomstige feature kan één component reven zonder de rest van de group state te dwingen om MLS-extensie-consensus opnieuw te doorlopen. MIP-00 credentials krijgen ook een nieuw fundamenteel document &lt;code>account-identity-proof-v1.md&lt;/code>, aangeduid als &amp;ldquo;new in v2 and breaking&amp;rdquo;. Het identiteitsbewijs leeft nu op zijn eigen oppervlak, gescheiden van KeyPackage-constructie.&lt;/p>
&lt;p>De library-delta&amp;rsquo;s ondersteunen de spec-herwerking. &lt;code>cgka-engine&lt;/code> is de nieuwe lokale group state machine: het wraps OpenMLS, bezit de &lt;code>Stable&lt;/code>, &lt;code>PendingPublish&lt;/code>, &lt;code>Merging&lt;/code> en &lt;code>Recovering&lt;/code> epoch states, vertaalt intents naar MLS commits, retourneert getypeerde &lt;code>IngestOutcome&lt;/code> en &lt;code>GroupEvent&lt;/code> waarden voor elke inkomende transport-envelop en levert expliciet geen transport en geen persistentie. Een &lt;code>TransportPeeler&lt;/code> trait scheidt Nostr van de engine, en een &lt;code>StorageProvider&lt;/code> trait scheidt SQLite (via &lt;code>storage-sqlite&lt;/code>, SQLCipher-ondersteund) van de engine. De huidige MDK pakt dit allemaal samen; het splitsen van de lagen laat één engine onder een Nostr-relay transport zitten nu en de ook-geleverde &lt;a href="https://github.com/marmot-protocol/darkmatter/blob/master/docs/quic-broker-deployment.md">QUIC stream en broker transports&lt;/a> later, zonder herschrijving van het convergence-model. Convergence zelf is gedocumenteerd als &lt;code>distributed-convergence.md&lt;/code> en bewezen in een Tamarin-model dat deterministic branch-selectie, policy-gated eligibility, retained-anchor replay, stale-branch afwijzing, delivery reordering, duplicatie, app-output-invalidering, welcome/commit handoff, proposal-consumptie en outbound gating tijdens synchroniseren dekt. Rust property tests controleren vervolgens of de engine dezelfde regels volgt met echte OpenMLS-objecten en de simulator-harness. Formele-methoden betrouwbaarheidswerk van deze omvang ontbreekt in de huidige Marmot-stack.&lt;/p>
&lt;p>Beide native clients laten Flutter vallen voor platform-native UI-toolkits. &lt;a href="https://github.com/marmot-protocol/darkmatter-ios">&lt;code>darkmatter-ios&lt;/code>&lt;/a> is pure SwiftUI met een Notification Service Extension die MIP-05 push-wakes op het apparaat decodeert, vendort een gegenereerd &lt;code>MarmotKit&lt;/code> Swift-pakket gebouwd uit de Rust workspace en registreert onder de &lt;code>dev.ipf.darkmatter&lt;/code> bundle-ID en app-group. &lt;a href="https://github.com/marmot-protocol/darkmatter-android">&lt;code>darkmatter-android&lt;/code>&lt;/a> is Kotlin en Jetpack Compose, met een &lt;code>just&lt;/code>-gedreven build die een signed &lt;code>arm64-v8a&lt;/code> APK produceert en telemetry-endpoints leest uit &lt;code>local.properties&lt;/code>. De Android README noemt het architecturale principe direct: &amp;ldquo;Dark Matter owns protocol data and stores it in SQLite. The Android app should render that data, manage Android platform behavior, and keep UI lifecycle state. The Android app should not become a second database for Dark Matter data.&amp;rdquo; Dat spiegelt de grens-discipline die de cgka-engine README afdwingt in de Rust-laag, toegepast op de UI-laag.&lt;/p>
&lt;p>Native clients zijn belangrijk voor Marmot omdat de meest genoemde zwakte van het protocol mobiele betrouwbaarheid onder ongelijke leveringscondities is geweest: gemiste-deadline notificatie-wakes, MLS commit races tijdens netwerk-flaps, background-fetch limieten die epoch-advances laten stranden. SwiftUI en Compose geven de clients directe toegang tot platform background-processing primitieven die Flutter bereikt via een plugin-brug, en het UniFFI binding-pad houdt protocollogica in één Rust workspace geleverd als een statische library op beide platforms. De Flutter Whitenoise-lijn gaat door in de niet-gearchiveerde &lt;a href="https://github.com/marmot-protocol/whitenoise">&lt;code>whitenoise&lt;/code>&lt;/a> repo, dus de aankondiging is additief: een nieuwe native-client lijn draait naast de Flutter-app terwijl de v2-spec convergeert. Productie-cutover vanaf MDK of de huidige Whitenoise-app wacht op de draft, engine en clients die productie-klare releases bereiken.&lt;/p>
&lt;h3 id="chama-v200-tot-en-met-v310-standalone-p2p-escrow-in-één-week">Chama v2.0.0 tot en met v3.1.0: standalone P2P escrow in één week&lt;/h3>
&lt;p>De Nostr-native P2P escrow-client geïntroduceerd in Newsletter #25 op v1.3.0 leverde de afgelopen zeven dagen zeventien getagde releases, eindigend bij &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.1.0">v3.1.0&lt;/a> op 9 juni met een trade-room UI-herteken en per-verkoper storefronts. Het versiespoor vertelt het verhaal: &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.0">v2.0.0&lt;/a> is de BREAKING basis, dan sluiten &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.1">v2.0.1&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.2">v2.0.2&lt;/a> en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.3">v2.0.3&lt;/a> Fedi WebView funding-rail gaten; &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.1.0">v2.1.0&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.2.0">v2.2.0&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.3.0">v2.3.0&lt;/a> en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.3.1">v2.3.1&lt;/a> verharden de arbiter-laag; &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.4.0">v2.4.0&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.5.0">v2.5.0&lt;/a> en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.6.0">v2.6.0&lt;/a> voegen self-custody oppervlakken en wereldwijde community-routing toe; &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.7.0">v2.7.0&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.8.0">v2.8.0&lt;/a>, &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.9.0">v2.9.0&lt;/a> en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.10.0">v2.10.0&lt;/a> leggen simpel-Engelse key-copy, groepsaanmeldingen, dispute-deadline arbitrage en reputatie eroverheen. &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.0.0">v3.0.0&lt;/a> bindt het pakket samen met end-to-end trade-notificaties, en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.1.0">v3.1.0&lt;/a> op 9 juni hertekent het trade-scherm rond een Reserved → Locked → Settled voortgangsruggengraat, rol-gekleurde action cards en een per-verkoper storefront-listingsklasse (curated swaps, loanbooks en bills) die worden geleverd.&lt;/p>
&lt;p>De architecturale pivot leeft in v2.0.0. Het escrow LOCK-formaat veranderde zodat elke share van een 2-of-3 Shamir-split alleen wordt versleuteld naar zijn houder (sharePolicy &lt;code>holder-only-v1&lt;/code>). De bearer ecash van de federatie reconstrueert niet langer vanuit één deelnemer alleen, waarmee een pad wordt gesloten waar een kwaadaardige partij met zowel zijn eigen share als een federatie-gehouden share de trade zonder toestemming kon voltooien. Pre-2.0 clients falen luidruchtig met &amp;ldquo;can&amp;rsquo;t find your share&amp;rdquo;; de trade kan niet voltooid worden op een verouderde client, en er gaan geen fondsen verloren in het proces. Een v2.0 lock vereist dat elke partij op v2.x settled. v2.0.0 voegde ook multi-unit storefronts en een sats-only Market-weergave toe.&lt;/p>
&lt;p>v2.1.0 introduceerde arbiter-substitutie: de arbiter share bij Shamir index 2 wordt nu versleuteld naar een deterministische prioriteitsvolgorde over de community arbiter pool, zodat een afwezige arbiter kan worden vervangen zonder de trade te laten stranden. v2.2.0 bewees dat de substitutie werkte in de praktijk op een ₿121 trade en voegde healing-substitutie back-ups toe. v2.3.0 sloot het laatste arbiter front-running gat door listing-arbiter community-lidmaatschap te controleren op lock-tijd, en v2.3.1 sloot de zuster-race waarbij een auto-toegewezen arbiter-slot een preview was totdat de lock ze plaatste.&lt;/p>
&lt;p>De self-custody oppervlakken kwamen in v2.4.0 (BIP-39 recovery phrase voor de Fedimint ecash wallet, versleuteld opgeslagen op Nostr) en v2.5.0 (master nsec back-up die de Nostr-identiteit en de wallet seed bezit). v2.6.0 herwerkte onboarding rond een globale community picker zodat gebruikers in landen zonder een lokale Chama naar de dichtstbijzijnde federatie worden gerouteerd; eerdere builds stuiterden de gebruiker af zonder fallback. v2.7.0 schreef het recovery-key scherm opnieuw in simpel Engels (&amp;ldquo;the only key to your account and the money in it; Chama never sees it and can&amp;rsquo;t reset it; if you lose it, no one can get your account back&amp;rdquo;). v2.8.0 voegde groepsaanmeldingen, dark/light theming toe en voegde twee nieuwe event-kinds toe (38120 roster, 38121 application). v2.9.0 veranderde dispute resolution bij deadline: betwiste trades die hun expiry raken lossen nu op via arbiter-uitspraak; eerder gedrag automatisch-refunded. De release is gemarkeerd COORDINATED zodat alle partijen in een dispuut moeten updaten. v2.10.0 voegde per-trade thumb-up/thumb-down ratings toe als een nieuwe event kind 38123.&lt;/p>
&lt;p>v3.0.0 is de mijlpaal waarbij de app een coördinerende community niet meer nodig heeft om te functioneren. End-to-end trade-notificaties pingen de gebruiker alleen bij actionable state-overgangen: tegenpartij locked de sats, uitbetaling klaar om te claimen, dispuut vereist de uitspraak van de gebruiker als arbiter, of trade settled of expired. Één toggle in het Me-scherm zet notificaties aan of uit, en de permission prompt vuurt alleen wanneer de toggle is ingeschakeld. De fire-once dedup houdt een state-herlading tegen om een alert storm te triggeren. Een wrong-chama guardrail bug werd ook gesloten in &lt;a href="https://github.com/jesuspirate/chama/pull/103">PR #103&lt;/a>, waar eerdere versies een listing met het label van één chama maar de federatie van een andere chama konden stempelen. Windows- en Linux-desktopbundels worden bij de release meegeleverd; de macOS dmg wordt achtergehouden totdat signing en notarisatie landen.&lt;/p>
&lt;p>Chama voegt zich nu bij Mostro en Shopstr als een Nostr-native marktplaats, onderscheiden door serverloze architectuur, Fedimint-ondersteunde 2-of-3 Shamir-escrow, holder-only share-versleuteling en de enige van de drie die een zelfstandige desktop- en mobiele client levert zonder coördinerende community.&lt;/p>
&lt;h3 id="coracle-hosting-betaalde-relay-service-plus-open-source-caravel-stack">Coracle Hosting: betaalde relay-service plus open-source Caravel-stack&lt;/h3>
&lt;p>Op 3 juni &lt;a href="https://nos.lol/e/f8586160cd12df479c261397353c99e6f3e4d870b616382e1b4338bad3ab498a">kondigde Hodlbod Coracle Hosting aan&lt;/a> op &lt;a href="https://hosting.coracle.social">hosting.coracle.social&lt;/a>, een gehoste community-relay service die terugkerende lightning-betalingen via NWC of kaart accepteert. De service wordt aangedreven door &lt;a href="https://gitea.coracle.social/coracle/caravel">Caravel&lt;/a>, Coracle&amp;rsquo;s billing- en provisioning-frontend, en &lt;a href="https://gitea.coracle.social/coracle/zooid">zooid&lt;/a>, een relay-runtime die veel virtuele relays op één machine host. Beide zijn open source op Coracle&amp;rsquo;s self-hosted gitea. Caravel wordt geleverd met optionele &lt;a href="https://livekit.io">livekit&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> integratie die operators per relay kunnen aan-/uitzetten. Een gratis tier met member-count limieten laat operators de service evalueren voordat ze zich verplichten tot betalingsdetails.&lt;/p>
&lt;p>Hodlbod is openhartig over het businessmodel: open source monetariseren door een gehoste versie te verkopen van een stack die iedereen anders ook kan draaien. De concurrentiegracht is de &lt;a href="https://flotilla.social">Flotilla&lt;/a> integratie, die de volgende geplande stap is. Flotilla bezit het gebruikersoppervlak, dus de gehoste optie geserveerd vanuit Flotilla wordt het standaardpad voor elke gebruiker die managed infrastructuur verkiest. Hodlbod bood aan andere Caravel-operators toe te voegen aan Flotilla&amp;rsquo;s alternative-hosting picker als ze contact opnemen, waarmee de deur open blijft voor een gefedereerde hosting-markt.&lt;/p>
&lt;p>Caravel voegt zich bij &lt;a href="https://relay.tools">relay.tools&lt;/a> als een publiek Nostr relay-provisioning platform met betaalde member-tiers. relay.tools dateert van vóór Caravel en levert als de dominante relay-creator service vandaag, met zijn eigen directory van community-relays en betaalde-member of moderator join-flows. Caravel&amp;rsquo;s onderscheidende functie is de gecoördineerde stack: de relay-runtime (zooid), de billing- en provisioning-frontend (Caravel zelf) en de client-side picker (Flotilla-integratie, nog in ontwikkeling) leveren als één ontwerp. De andere onderscheidende functie is zooid&amp;rsquo;s veel-relays-per-proces dichtheid, waar customer-relays één host-proces delen zodat de operator hosting-kosten amortiseert over veel kleine communities. Dit is hetzelfde dichtheidsargument dat shared web hosting levensvatbaar maakte in het begin van de jaren 2000, toegepast op Nostr&amp;rsquo;s relay-laag.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="angor-v0229-en-v0230-mainnet-standaard-en-3-user-uat-funding-test">Angor v0.2.29 en v0.2.30: mainnet-standaard en 3-user UAT funding test&lt;/h3>
&lt;p>&lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.29">Angor v0.2.29&lt;/a> op 4 juni en &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.30">v0.2.30&lt;/a> op 8 juni zijn de twee releases van deze week voor het gedecentraliseerde Bitcoin-en-Nostr funding-protocol. v0.2.30&amp;rsquo;s hoofdverandering is &lt;a href="https://github.com/block-core/angor/pull/893">PR #893&lt;/a>, die de standaardnetwerk overschakelt naar mainnet. Angor wordt nog steeds geleverd als een unstable alpha release, maar de default-mainnet switch signaleert dat het protocol voorbij de testnet-only fase is voor de desktop- en mobiele clients. v0.2.30 landt ook een single-tap mobile create-project flow met image upload en scroll reset (&lt;a href="https://github.com/block-core/angor/pull/889">PR #889&lt;/a>) en lost een race condition op waarbij de lightning invoice spinner kon blijven hangen (&lt;a href="https://github.com/block-core/angor/pull/890">PR #890&lt;/a>).&lt;/p>
&lt;p>v0.2.29 voegde een end-to-end UAT test toe in &lt;a href="https://github.com/block-core/angor/pull/881">PR #881&lt;/a> die 3-user send funds over 10 rondes met onbevestigde uitgaven dekt, de eerste multi-user funding-flow test in de Angor testsuite. De release voegde ook een implementatieplan toe voor een Angor CLI en MCP-server (&lt;a href="https://github.com/block-core/angor/pull/792">PR #792&lt;/a>), met CLI-verbeteringen voor MCP testing workflow in &lt;a href="https://github.com/block-core/angor/pull/880">PR #880&lt;/a>. &lt;a href="https://github.com/block-core/angor/pull/885">PR #885&lt;/a> door DavidGershony verhielp een Boltz lightning invoice die het verkeerde netwerk gebruikte na een runtime network switch, een bug die zou zijn opgekomen in productie na de v0.2.30 mainnet-standaard. Settings biedt nu een optionele recovery-wallet file purge tijdens data wipe (&lt;a href="https://github.com/block-core/angor/pull/883">PR #883&lt;/a>).&lt;/p>
&lt;h3 id="sprout-v0315-ephemeral-channel-ttl-refresh-en-acp-slash-commands">Sprout v0.3.15: ephemeral channel TTL refresh en ACP slash-commands&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout/releases/tag/v0.3.15">Sprout v0.3.15&lt;/a>, uitgebracht 10 juni, is de achtste release in een reeks die begon met v0.3.7 op 2 juni. Newsletter #25 behandelde de v0.3.1 tot en met v0.3.6 reeks met de mesh-llm integratie en channel-secties werk; v0.3.7 tot en met v0.3.15 zijn downstream daarvan, gericht op polish en enkele door de gebruiker zichtbare toevoegingen. De meest zichtbare wijziging voor de gebruiker is een TTL-refresh voor ephemeral channels in &lt;a href="https://github.com/block/sprout/pull/902">PR #902&lt;/a>: wanneer een gebruiker een ephemeral channel unarchiveert, breidt Sprout de time-to-live van het channel uit zodat de unarchive niet direct opnieuw-archiveert onder de oorspronkelijke expiry-timer. Mobiele custom emojis komen in &lt;a href="https://github.com/block/sprout/pull/906">PR #906&lt;/a> naast een settings redesign, en reactie-tellingen animeren nu bij verandering (&lt;a href="https://github.com/block/sprout/pull/904">PR #904&lt;/a>).&lt;/p>
&lt;p>&lt;a href="https://github.com/block/sprout/pull/905">PR #905&lt;/a> verhelpt een langstaand gat waarbij multi-word display names braken en &lt;a href="https://github.com/nostr-protocol/nips/blob/master/27.md">NIP-27&lt;/a> &lt;code>nostr:npub&lt;/code> mention-extractie stilletjes wegviel. Een directory-ondersteunde team UI voor desktop komt in &lt;a href="https://github.com/block/sprout/pull/912">PR #912&lt;/a> met install, sync en reveal commando&amp;rsquo;s. Slash-commands worden nu doorgegeven aan &lt;a href="https://agentclientprotocol.com">ACP&lt;/a> connectors in &lt;a href="https://github.com/block/sprout/pull/919">PR #919&lt;/a>, waardoor Sprout &lt;code>/help&lt;/code>-stijl commando&amp;rsquo;s direct kan doorsturen naar agent runtimes terwijl de Sprout UI uit het pad blijft.&lt;/p>
&lt;h3 id="wisp-v111-spark-wallet-integratie-en-nsec-paste-guard">Wisp v1.1.1: Spark wallet-integratie en nsec paste guard&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.1.1">Wisp v1.1.1&lt;/a>, uitgebracht 5 juni, brengt een twee-tier wallet Connect-scherm met &lt;a href="https://www.spark.money">Spark&lt;/a> sub-scherm in &lt;a href="https://github.com/barrydeen/wisp/pull/548">PR #548&lt;/a> en dashboard-pariteit met de iOS wallet UI in &lt;a href="https://github.com/barrydeen/wisp/pull/549">PR #549&lt;/a>. De release bevat een systeem-brede &lt;a href="https://github.com/barrydeen/wisp/pull/553">nsec paste guard&lt;/a> die een &lt;code>nsec1&lt;/code>-prefixed paste ergens in de app detecteert en het veld blokkeert om het te accepteren, waarmee een van de meest genoemde footguns in Nostr UX wordt gesloten. QR-scan login plus een watch-only modus voor &lt;code>npub&lt;/code> en &lt;code>nprofile&lt;/code> komt in &lt;a href="https://github.com/barrydeen/wisp/pull/552">PR #552&lt;/a>, waardoor een gebruiker een profiel alleen-lezen kan browsen. Zap-berichten renderen nu als mini-posts in de engagement drawer (&lt;a href="https://github.com/barrydeen/wisp/pull/559">PR #559&lt;/a>) zodat zap-notes hun tekst naast het sat-bedrag dragen. Een web-of-trust filter op thread replies komt in &lt;a href="https://github.com/barrydeen/wisp/pull/583">PR #583&lt;/a>, waardoor gebruikers reply-spam kunnen verbergen van accounts buiten hun follow-graaf.&lt;/p>
&lt;h3 id="nostria-v3146-en-nospeak-113-notificatieherwerking-en-ice-restart">Nostria v3.1.46 en nospeak 1.1.3: notificatieherwerking en ICE restart&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.46">Nostria v3.1.46&lt;/a> op 7 juni beëindigt een drie-release reeks die de notificatieteller herwerkte om alleen nieuwe notificaties sinds de laatste weergave te tellen, waarmee een langstaande inflatie wordt geëlimineerd waarbij het laden van oudere notificaties door scrollen de badge-count verhoogde. &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.45">Nostria v3.1.45&lt;/a> verhielp een split-payment bug die lightning- en QR-code betalingen raakte en liet een eerder gepland translucent UI vallen als onhaalbaar op Android&amp;rsquo;s compositor.&lt;/p>
&lt;p>&lt;a href="https://github.com/psic4t/nospeak/releases/tag/v1.1.3">nospeak v1.1.3&lt;/a> op 4 juni voegt ICE restart toe op FAILED state voor 1-op-1 voice calls. Standaard WebRTC-gedrag laat een call vallen wanneer ICE-kandidaten aflopen zonder alternatief pad; het ICE-restart pad herhandelt kandidaten zodat de call herstelt van transiënte NAT- of netwerkveranderingen. Android calls houden het scherm nu aan tijdens video calls.&lt;/p>
&lt;h2 id="onuitgebrachte-wijzigingen">Onuitgebrachte wijzigingen&lt;/h2>
&lt;h3 id="amethyst-41-prs-die-de-nip-32--nip-f4--tor-track-voortzetten">Amethyst: 41 PRs die de NIP-32 / NIP-F4 / Tor track voortzetten&lt;/h3>
&lt;p>Amethyst mergde deze week 41 PRs zonder een release tag te knippen, bovenop de 52 PRs van vorige week en het &lt;a href="https://nostrcompass.org/nl/topics/nip-32/">NIP-32&lt;/a> hashtag labeling en &lt;a href="https://nostrcompass.org/nl/topics/nip-f4/">NIP-F4&lt;/a> podcast werk behandeld in Newsletter #25. De actieve branch blijft features accumuleren voor de volgende getagde release, met polish op de hoofdtoevoegingen van vorige week: hashtag labeler discovery, podcastscherm, muziektracks en playlists, Tor self-heal watchdog, ephemeral signers voor anonieme uploads en onchain zaps met NIP-05 filtering. Amethyst&amp;rsquo;s PR throughput blijft de hoogste van elke Nostr-client, en de onuitgebrachte queue is de de facto roadmap voor wat andere Android Nostr-clients moeten matchen.&lt;/p>
&lt;h3 id="damus-relay-tracking-uit-ok-messages-en-v117-changelog">Damus: relay tracking uit OK messages en v1.17 changelog&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3786">Damus PR #3786&lt;/a>, gemerged 3 juni, voegt succesvolle &lt;code>OK&lt;/code> berichten van een relay toe aan de post-relay lijst. Eerdere Damus-builds vulden de seen-relays lijst alleen bij het ontvangen van een generiek bericht van de relay, wat betekende dat een relay die de post erkende maar geen events terug leverde onzichtbaar was voor de gebruiker. De verandering is belangrijk voor gebruikers die willen bevestigen dat hun post op hun geprefereerde outbox-relay is geland. &lt;a href="https://github.com/damus-io/damus/pull/3796">PR #3796&lt;/a> verhelpt een &lt;code>AttributeGraph&lt;/code> cyclus op Profile View, en &lt;a href="https://github.com/damus-io/damus/pull/3725">PR #3725&lt;/a> landt de v1.17 changelog vooruitlopend op de volgende getagde release.&lt;/p>
&lt;h3 id="shopstr-nip-34-dual-publishing">Shopstr: NIP-34 dual-publishing&lt;/h3>
&lt;p>Shopstr&amp;rsquo;s &lt;a href="https://relay.ngit.dev/npub1u350hpq840naxzkkle4gmdtvzanfxmjd9m9tytn5355aua7jh2cqgfuw39/shopstr.git">shopstr repo op ngit&lt;/a> werd deze week op Nostr aangekondigd als een &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> git-repo, en voegt zich bij ngit&amp;rsquo;s tracked repos. De GitHub-repo van de shop-client blijft het primaire ontwikkelingsoppervlak; de NIP-34-aankondiging maakt een parallel git-over-Nostr collaboratiepad beschikbaar. Dit is het tweede grote Nostr-marktplaatsproject dat dual-publisht naar NIP-34 na &lt;a href="https://relay.ngit.dev/">Mostro&lt;/a>, en zet de geleidelijke migratie van project-metadata naar Nostr&amp;rsquo;s git-transport voort.&lt;/p>
&lt;h3 id="hermes-marmot-ai-agent-gateway-over-mls">Hermes-Marmot: AI-agent gateway over MLS&lt;/h3>
&lt;p>&lt;a href="https://github.com/notmandatory/hermes-marmot">hermes-marmot&lt;/a>, een plugin voor de &lt;a href="https://github.com/NousResearch/hermes-agent">Hermes Agent&lt;/a>, verbindt het berichten-oppervlak van een AI-agent met &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> (MLS-over-Nostr) groepen met behulp van &lt;a href="https://github.com/marmot-protocol/mdk-python">mdk-python&lt;/a>, de Python bindings aan de Rust Marmot Development Kit. De plugin laat een gebruiker een AI-agent DM&amp;rsquo;en vanuit elke Nostr-client die kind 445 MLS-berichten spreekt, inclusief &lt;a href="https://whitenoise.chat">Whitenoise&lt;/a>. Inkomende DMs gebruiken &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift-wrap unwrapping via &lt;a href="https://github.com/rust-nostr/nostr">nostr-sdk&lt;/a> Python bindings, en inkomende welcomes stromen door &lt;code>UnwrappedGift.from_gift_wrap&lt;/code> naar &lt;code>mdk.process_welcome&lt;/code> en &lt;code>mdk.accept_welcome&lt;/code>. Toegangscontrole loopt via &lt;code>MARMOT_ALLOWED_USERS&lt;/code> (een komma-gescheiden npub allowlist) of &lt;code>MARMOT_ALLOW_ALL_USERS=true&lt;/code> voor open dev-toegang.&lt;/p>
&lt;p>De repo is nieuw (laatst bijgewerkt 27 mei) en klein. De betekenis is architecturaal: het is de eerste publieke brug tussen een LLM agent-runtime en een MLS-versleuteld Nostr messaging-kanaal, en het eerste productiegebruik van mdk-python buiten Whitenoise zelf. Het patroon wijst naar agent-tot-agent communicatie waarbij beide endpoints MLS-sleutels hebben en de relay alleen ciphertext ziet.&lt;/p>
&lt;h2 id="nip-updates-en-protocol-spec-werk">NIP-updates en protocol-spec werk&lt;/h2>
&lt;h3 id="nip-67-eose-completeness-hint-pr-2317-gemerged">NIP-67 EOSE completeness hint (PR #2317) gemerged&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2317">PR #2317&lt;/a> door mattn werd gemerged op 6 juni, waarmee &lt;a href="https://nostrcompass.org/nl/topics/nip-67/">NIP-67&lt;/a> aan het protocol werd toegevoegd. De NIP breidt het &lt;code>EOSE&lt;/code> relaybericht uit met een optioneel derde element: &lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;subscription_id&amp;gt;, &amp;quot;finish&amp;quot;]&lt;/code> signaleert dat elke opgeslagen event die aan het filter voldoet is afgeleverd, terwijl een kale &lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;subscription_id&amp;gt;]&lt;/code> geen completeness-claim draagt. Een relay die de hint weglaat vertelt de client dat er meer kan zijn; een relay die de NIP-67 advertentie in NIP-11 weglaat houdt het huidige gedrag onder de bestaande legacy-heuristiek. De verandering is backward compatible in beide richtingen: legacy clients negeren het trailing array-element, en legacy relays laten het weg.&lt;/p>
&lt;p>De motivatie in de gemergde spec is tweeledig. Ten eerste: silent data loss. Een client vraagt om de laatste 500 notes tegen een relay met een 300-event interne cap, de relay retourneert 300 events, en de client (met de standaard &lt;code>received &amp;lt; limit&lt;/code> heuristiek) concludeert dat het resultaat compleet is. De 201e tot en met de Nde oudste matching notes blijven op de relay ongelezen, met de client blind voor dat feit. Ten tweede: verplichte verspilde round trips. Wanneer een relay responses capt op 300 events, vereist elk abonnement dat de cap uitput een tweede &lt;code>REQ&lt;/code> met &lt;code>until=&amp;lt;oldest_created_at&amp;gt;&lt;/code> puur om voltooiing te bevestigen, zelfs wanneer het filter precies 300 events matcht. Beide faalmodi worden betaald door elke client op elk cap-uitgeputte abonnement. De &lt;code>&amp;quot;finish&amp;quot;&lt;/code> hint is één optionele string op één bestaand bericht en elimineert beide kosten.&lt;/p>
&lt;h3 id="nip-50-autocomplete-uitbreiding-pr-2357-gemerged">NIP-50 autocomplete-uitbreiding (PR #2357) gemerged&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2357">PR #2357&lt;/a> door Alex Gleason werd gemerged op 6 juni, waarmee een &lt;code>autocomplete:true/false&lt;/code> token wordt toegevoegd aan &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> search. De uitbreiding laat een client een query markeren als een typeahead lookup zodat de relay prefix matching gebruikt, met full-text search als standaard voor queries zonder de token. Ditto&amp;rsquo;s relay implementeert het voor follow packs, lijsten en elke event met een &lt;code>title&lt;/code> tag, en retourneert matches tegen de title prefix; het standaard search-pad draait full-text scoring. Zonder deze token hadden autocomplete-stijl UIs geen manier om de prefix-search intentie te communiceren en moesten relays gokken uit de vorm van de query. De token is een per-search hint, geen relay-brede capability, dus een relay kan het implementeren voor één event-klasse (titles) zonder algemene autocomplete-ondersteuning te claimen.&lt;/p>
&lt;h3 id="nip-gart-noodmeldingen-en-locatiebroadcasts-pr-2374">NIP-GART noodmeldingen en locatiebroadcasts (PR #2374)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2374">PR #2374&lt;/a> door disinqa, geopend 9 juni, definieert een privacy-behoudend wire format op Nostr voor noodmeldingen en locatiebroadcasts geadresseerd aan een groep vertrouwde ontvangers. Het genoemde ontwerpdoel is het verbergen van afzenderidentiteit, groepslidmaatschap en payload voor relay-operators terwijl de events replay-veilig en handtekening-verifieerbaar end to end blijven. NIP-nummer is nog TBD, voorstel is early-draft. Use case is het standaard noodmelding-patroon: een gebruiker onder dreiging broadcast een locatieping die alleen een vooraf gedeelde groep vertrouwde contacten kan decoderen, met de relay blind voor afzender, ontvangersset en payload. Wire-format details leven in de PR en zullen waarschijnlijk evolueren naarmate maintainers reviewen.&lt;/p>
&lt;h3 id="nip-46-logout-methode-pr-2373">NIP-46 logout-methode (PR #2373)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2373">PR #2373&lt;/a> door hzrd149, geopend 8 juni, voegt een &lt;code>logout&lt;/code> methode toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> zodat een client een bunker expliciet kan vertellen dat de sessie is beëindigd. Tot nu toe was de enige manier om een bunker-sessie te beëindigen wachten op de sessie-timeout of stoppen met het gebruik van de verbinding, die beide de bunker sessiestatus laten vasthouden voor een client die weg is. Het voorstel is kort (één nieuwe methode) en is het soort huishoudelijke wijziging dat langlevende bunker-integraties schoner maakt.&lt;/p>
&lt;h3 id="nip-95-hybride-relay-p2p-voorstel-gecirculeerd-als-long-form">NIP-95 hybride relay-P2P voorstel gecirculeerd als long-form&lt;/h3>
&lt;p>Een long-form &lt;a href="https://github.com/nostr-protocol/nips">NIP-95 specificatie&lt;/a> werd gecirculeerd als een &lt;code>kind:30023&lt;/code> post van npub &lt;code>91bea5cd9361504c409aaf459516988f68a2fcd482762fd969a7cdc71df4451c&lt;/code> op 4 juni onder de titel &lt;em>Protocolo Híbrido Relay-P2P via WebRTC&lt;/em>. Het Portugeestalige document definieert een hybride peer-to-peer relay-protocol waar Nostr-clients rechtstreeks met elkaar verbinden via WebRTC voor live berichten terwijl ze relays blijven gebruiken voor stored-event retrieval en offline levering. De auteur formuleerde de spec expliciet als &amp;ldquo;LLM-ready&amp;rdquo; en bood bericht-definities, logische flows, dataschema&amp;rsquo;s en state-regels op een detailniveau dat een AI-model werkende client- of server-code laat genereren. Het voorstel is nog niet geland als een NIP PR; circulatie via &lt;code>kind:30023&lt;/code> is de gebruikelijke voorloper op een formele nostr-protocol/nips pull request.&lt;/p>
&lt;h3 id="nip-44-v3-krijgt-een-tweede-signer-clave-port-de-spec">NIP-44 v3 krijgt een tweede signer: Clave port de spec&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-06-03-newsletter/#nip-44-v3-amber-implementatie-vooruitlopend-op-spec">Amber&amp;rsquo;s v6.2.0 NIP-44 v3 uitrol van vorige week&lt;/a> werd geleverd vooruitlopend op enige gemergde NIPs PR, waardoor v3 als een Amber-specifieke uitbreiding overbleef die andere clients moesten spiegelen om te interop. Dat single-implementation framing veranderde deze week. &lt;a href="https://github.com/DocNR/clave">Clave&lt;/a>, de push-gebaseerde iOS NIP-46 remote signer, landde een onafhankelijke NIP-44 v3 port op 3 en 4 juni over acht commits. Cryptografische primitieven leveren in drie commits: &lt;a href="https://github.com/DocNR/clave/commit/99ca5a5aacb501d1666c489fcdea30187c7853fa">HKDF + ECDH keys laag&lt;/a>, &lt;a href="https://github.com/DocNR/clave/commit/8808cdca54d32b4ae57856bd4b07ed73a45e8e5c">het v3 padding-algoritme&lt;/a> en een &lt;a href="https://github.com/DocNR/clave/commit/ae1f506a53cb2c8aa16523540dbe790876c1839e">top-level publieke API plus encryption Context&lt;/a>. Bovenop die volgt het NIP-46 oppervlak in &lt;a href="https://github.com/DocNR/clave/commit/f37aa1afc8368862fc3ebac533408442349bfc38">RPC dispatch-bedrading binnen LightSigner&lt;/a> en een &lt;a href="https://github.com/DocNR/clave/commit/e51bcb49fc61cfa89b6030d61b203e046aeddb0a">PendingRequest schema dat de v3-context draagt (kind plus scope)&lt;/a>, zodat de signer kan vastleggen voor welke event-kind en use case de v3-payload is goedgekeurd.&lt;/p>
&lt;p>Clave wijkt af van Amber op het gebruikersgerichte oppervlak. Een &lt;a href="https://github.com/DocNR/clave/commit/0a8b7de63c1f2994a80a66bf139ec519fab12877">permission grant schema met sensitivity tiers&lt;/a> laat gebruikers v3-versleuteling verlenen voor een bepaalde event-kind en scope op een gekozen sensitivity-niveau. Bij eerste ontmoeting introduceren &lt;a href="https://github.com/DocNR/clave/commit/2cf563cb15b0406f5e8aaa0b4e34b887ff1896a1">v3-context-aware approval prompts met een one-time explainer card&lt;/a> v3 aan gebruikers. Het werk zit in main en is &lt;a href="https://github.com/DocNR/clave/commit/4bd0c26d7cf308386ef15e5d96ee5673d6db2d4a">aangesloten op het Xcode project&lt;/a> maar is onuitgebracht; de meest recente getagde build is &lt;a href="https://github.com/DocNR/clave/releases/tag/v0.2.0-build79">v0.2.0-build79&lt;/a> van 12 mei.&lt;/p>
&lt;p>Twee onafhankelijke implementaties landen NIP-44 v3 in productiepaden voordat de NIPs PR merged, wat de zaak versterkt voor het onderliggende wire format dat de protocol-PR zal formaliseren. Cross-implementation interop-testing wordt nu het pad naar spec-convergentie, met Amber&amp;rsquo;s Android approval-oppervlak en Clave&amp;rsquo;s iOS sensitivity-tier model als de twee referentiepunten. Andere remote signers die v3 aansluiten (nsec.app&amp;rsquo;s noauth is sluimerend sinds mei 2025, en andere bunkers hebben geen v3-werk aangekondigd) zouden de consensus verder aanscherpen.&lt;/p>
&lt;h3 id="nip-34-activiteit-iris-adopteert-de-stack-met-een-nieuwe-hashtree-transport">NIP-34 activiteit: Iris adopteert de stack met een nieuwe hashtree-transport&lt;/h3>
&lt;p>Iris publiceerde NIP-34 repo-announcements voor &lt;a href="https://njump.me/nevent1qqs8kmy7a9dn5awurlp9q26lsaetl7dc4wauzdl8ww68dzmn09e074gpzfmhxue69uhhgetdwqhxjunfwvh8gmc850du0">&lt;code>hashtree&lt;/code>&lt;/a> op 8 juni en &lt;a href="https://njump.me/nevent1qqsq4grx000f6p0r8hdv4lqhcgn7707vmktv2j528kn0ldps4y9g49qpzfmhxue69uhhgetdwqhxjunfwvh8gmcmq47as">&lt;code>iris-apps&lt;/code>&lt;/a>, &lt;a href="https://njump.me/nevent1qqsyj5r0tyqvpp9v7qnras90u6kzqtpqx6ktntwym66m8qyngvf59vqpzfmhxue69uhhgetdwqhxjunfwvh8gmcpts6pf">&lt;code>iris-drive&lt;/code>&lt;/a> en &lt;a href="https://njump.me/nevent1qqs0x98hpsv8vmrxvwm2rs9exxttrue5qv5p2n2sqjeylz2kgdmd7tgpzfmhxue69uhhgetdwqhxjunfwvh8gmca8783s">&lt;code>iris-chat-rs&lt;/code>&lt;/a> op 9 juni, met clone-URLs onder een nieuw &lt;code>htree://&lt;/code> schema geserveerd vanaf &lt;code>wss://temp.iris.to&lt;/code>. De hashtree-transport is een content-addressed alternatief voor GRASP-gerouteerde clones, en deze vier announcements zijn de eerste publieke uses. De repos dragen lege beschrijvingen en de architecturale details ontstaan nog, maar de keuze om via NIP-34 announcement te publiceren (in plaats van via een aangepast Iris-intern manifest) signaleert dat Iris zich committeert aan de bredere NIP-34 git-over-Nostr stack.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-67-eose-completeness-hint">NIP deep dive: NIP-67 (EOSE Completeness Hint)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-67/">NIP-67&lt;/a> sluit een van de langststaande correctheidsgaten in &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a>. De oorspronkelijke spec definieert &lt;code>EOSE&lt;/code> als de grens tussen opgeslagen events en live subscription-events voor een &lt;code>REQ&lt;/code>, maar heeft nooit gespecificeerd of de relay alle opgeslagen matches had geleverd of halverwege was gestopt vanwege een interne cap. Elke relay handhaaft een per-subscription cap (vaak 300 tot 1000 events) onafhankelijk van de &lt;code>limit&lt;/code> van de client, en clients hebben geen manier gehad om die cap waar te nemen.&lt;/p>
&lt;p>De standaard workaround was het vergelijken van de received count tegen de gevraagde &lt;code>limit&lt;/code>. Als &lt;code>received &amp;lt; limit&lt;/code>, behandel het resultaat dan als compleet; anders pagineer met &lt;code>until=&amp;lt;oldest_created_at&amp;gt;&lt;/code>. Beide takken zijn kapot. De &lt;code>received &amp;lt; limit&lt;/code> tak trunceert stil: een client die 500 notes vraagt tegen een relay gecapt op 300 ziet 300 events, concludeert dat het resultaat compleet is omdat &lt;code>300 &amp;lt; 500&lt;/code> en haalt de rest nooit op. Gehouden events op de relay kunnen &amp;ldquo;more available&amp;rdquo; niet signaleren via enig bestaand bericht. Paginering als de tweede tak is verspillend: een filter dat precies de cap matcht vereist een tweede &lt;code>REQ&lt;/code> om voltooiing te bevestigen, en retourneert nul events terwijl een volledige filter-scan op de relay wordt verbruikt.&lt;/p>
&lt;p>De fix van NIP-67 is één optionele string op het &lt;code>EOSE&lt;/code> bericht:&lt;/p>
&lt;pre tabindex="0">&lt;code>[&amp;#34;EOSE&amp;#34;, &amp;#34;&amp;lt;sub_id&amp;gt;&amp;#34;, &amp;#34;finish&amp;#34;] // expliciet: alle opgeslagen events geleverd
[&amp;#34;EOSE&amp;#34;, &amp;#34;&amp;lt;sub_id&amp;gt;&amp;#34;] // geen completeness claim
&lt;/code>&lt;/pre>&lt;p>Een relay die NIP-67 adverteert in &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> &lt;code>supported_nips&lt;/code> en een kale &lt;code>EOSE&lt;/code> uitzendt vertelt de client dat er meer is. Een relay die de advertentie weglaat houdt het huidige gedrag en de client valt terug op de bestaande heuristiek. Legacy clients negeren het trailing array-element. Backward compatibility geldt in beide richtingen, zonder nieuwe verbs of event-kinds.&lt;/p>
&lt;p>Wat NIP-67 het bekijken waard maakt is de scope die het bewust beperkt. De spec definieert geen cursor of paginatietoken, dus &lt;code>until&lt;/code>-gebaseerde paginering blijft het mechanisme. Relay-caps blijven waar ze zijn, en de NIP vereist geen blootstelling ervan. NIP-67 behoudt de betekenis van &lt;code>EOSE&lt;/code> als de opgeslagen-naar-live grens en voegt alleen een ja-of-nee signaal toe op de grens: &amp;ldquo;Ik heb meer voor je&amp;rdquo; versus &amp;ldquo;dat is alles.&amp;rdquo; Dit minimale oppervlak is waarom de PR merged na een relatief korte reviewperiode voor een NIP-01 uitbreiding, en waarom mattn in de PR expliciet opmerkt dat AI-vertaling werd gebruikt voor de Engelse tekst. De verandering is klein genoeg dat de vertaalonzekerheid er niet toe doet.&lt;/p>
&lt;p>Voorbeeld van een NIP-67-bewuste uitwisseling tussen een client en een cap-afdwingende relay. NIP-11 advertentie van de relay:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a5f87fe2d4c8b9a0e3f1c4d5e6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1781136000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">11&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;{\&amp;#34;supported_nips\&amp;#34;:[1,11,50,67]}&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f1e2d3c4b5a6978869504132c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De wire-level uitwisseling die volgt:&lt;/p>
&lt;pre tabindex="0">&lt;code>→ [&amp;#34;REQ&amp;#34;, &amp;#34;abc&amp;#34;, {&amp;#34;kinds&amp;#34;:[1],&amp;#34;limit&amp;#34;:500}]
← [...300 EVENT messages...]
← [&amp;#34;EOSE&amp;#34;, &amp;#34;abc&amp;#34;] // no &amp;#34;finish&amp;#34;: cap hit, more available
→ [&amp;#34;REQ&amp;#34;, &amp;#34;def&amp;#34;, {&amp;#34;kinds&amp;#34;:[1],&amp;#34;limit&amp;#34;:300,&amp;#34;until&amp;#34;:1780900000}]
← [...178 EVENT messages...]
← [&amp;#34;EOSE&amp;#34;, &amp;#34;def&amp;#34;, &amp;#34;finish&amp;#34;] // explicit complete
&lt;/code>&lt;/pre>&lt;p>De 178-event response zou eerder een derde &lt;code>REQ&lt;/code> hebben getriggerd om voltooiing te bevestigen. Met NIP-67 stopt de client daar.&lt;/p>
&lt;p>NIP-67 is ook opmerkelijk als een NIP-01 amendement dat landt met zeldzame consensus. De meeste NIP-01 wijzigingen trekken lange debat-threads aan omdat het minuscule oppervlak van het protocol dragend is voor elke implementatie. NIP-67 merged na een uitgebreide reviewperiode (ongeveer zeven weken van open tot merge), wat suggereert dat wanneer een NIP-01 wijziging klein genoeg is en de faalmodus concreet genoeg (silent data loss, verplichte verspilde round trip), de maintainers van het protocol bereid zijn de core message-vocabulaire uit te breiden.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-50-search">NIP deep dive: NIP-50 (Search)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> definieert het &lt;code>search&lt;/code> filterveld in &lt;code>REQ&lt;/code> berichten, waardoor clients een relay kunnen vragen events te filteren op full-text match tegen een query-string. De gemergde basisspec is bewust minimaal: het &lt;code>search&lt;/code> veld is een string, elke relay bepaalt zijn eigen search-semantiek (welke velden geïndexeerd zijn, hoe scoring werkt, of stemming toepast) en relays adverteren NIP-50 ondersteuning in hun NIP-11 document. Clients besturen het search-algoritme alleen via de query-string zelf.&lt;/p>
&lt;p>Dit minimalisme is zowel NIP-50&amp;rsquo;s kracht als zijn beperking. De kracht is dat elke relay search op elk kwaliteitsniveau kan implementeren: een basis-substring scan voldoet aan de spec, en een relay die Elasticsearch of Meilisearch draait voldoet er gelijkwaardig aan. De beperking is dat clients geen manier hebben om search-intentie uit te drukken. Een profile-mention typeahead UI wil prefix-matching tegen display names; een full-text content search wil getokeniseerde full-text scoring over de note-body. Hetzelfde &lt;code>search&lt;/code> veld draagt beide, en de relay moet gokken uit de query-vorm.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2357">PR #2357&lt;/a> voegt de eerste NIP-50 uitbreidings-token toe: &lt;code>autocomplete:true&lt;/code> of &lt;code>autocomplete:false&lt;/code> ingebed in de search-query signaleert welke modus de client wil. Ditto&amp;rsquo;s relay implementeert de token voor follow packs, lijsten en elke event met een &lt;code>title&lt;/code> tag, waarbij wordt overgeschakeld naar prefix matching wanneer &lt;code>autocomplete:true&lt;/code> aanwezig is. De token leeft inline in de query (aparte filtervelden blijven onaangeroerd), dus het reist met de search-string en vereist geen wire-protocol bump:&lt;/p>
&lt;pre tabindex="0">&lt;code>search: &amp;#34;fiat autocomplete:true&amp;#34;
&lt;/code>&lt;/pre>&lt;p>Token-shaped hints zoals deze zijn hoe NIP-50 altijd relay-specifieke dialecten heeft afgehandeld. Relays ondersteunden al tokens zoals &lt;code>language:en&lt;/code> en &lt;code>domain:example.com&lt;/code>. Elk blijft relay-specifiek, waarbij elke relay zijn eigen dialect documenteert. NIP-50&amp;rsquo;s PR #2357 verheft &lt;code>autocomplete&lt;/code> van een relay-privé token naar een spec-gezegend token, waardoor de weg wordt geëffend voor typeahead-bewuste search over relays heen.&lt;/p>
&lt;p>Voorbeeld NIP-50 &lt;code>REQ&lt;/code> met de autocomplete-token, gericht op een relay die kind 0 profieltitels indexeert:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;b7c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f7081a2b3c4d5e6f70819a2b3c4d5&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1781136000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;client&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;example-mention-picker&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Sent search: kinds=[0], search=\&amp;#34;fiat autocomplete:true\&amp;#34;, limit=10&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;12d3e4f5061728394a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f7081a2b3c4d5e6f70819a2b3c4d5e6f7081a2b3c4d5e6f708192&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De daadwerkelijke wire-level REQ:&lt;/p>
&lt;pre tabindex="0">&lt;code>[&amp;#34;REQ&amp;#34;, &amp;#34;mention-picker&amp;#34;, {&amp;#34;kinds&amp;#34;:[0],&amp;#34;search&amp;#34;:&amp;#34;fiat autocomplete:true&amp;#34;,&amp;#34;limit&amp;#34;:10}]
&lt;/code>&lt;/pre>&lt;p>Een relay die de token niet herkent behandelt &lt;code>autocomplete:true&lt;/code> als onderdeel van de literale search-string en valt terug op full-text matching, waarbij correcte (zij het anders gerangschikte) resultaten worden geretourneerd. De graceful degradation maakt de token veilig om onvoorwaardelijk op te nemen voor clients die prefix-matching verkiezen wanneer beschikbaar.&lt;/p>
&lt;p>De volgende waarschijnlijke NIP-50 uitbreiding is per-kind ranking-controle: een hint die zegt &amp;ldquo;rangschik op &lt;code>created_at&lt;/code> aflopend&amp;rdquo; versus de standaard relevantie-score. Verschillende relays accepteren al &lt;code>sort:newest&lt;/code> als een relay-privé token, en hetzelfde verheffingspad dat &lt;code>autocomplete&lt;/code> in de spec bracht is van toepassing. Search blijft een van de weinige Nostr-primitieven waarin relays concurreren op resultaatkwaliteit; betrouwbaarheid van levering is hetzelfde over alle conforme relays. Incrementele tokens laten clients die kwaliteitsconcurrentie exploiteren zonder relays te dwingen een zware nieuwe spec te leveren.&lt;/p></content:encoded></item><item><title>Nostr Compass #25</title><link>https://nostrcompass.org/nl/newsletters/2026-06-03-newsletter/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-06-03-newsletter/</guid><description>&lt;p>Amber 6.2.0 levert NIP-44 v3 versleuteling vooruitlopend op de spec. Mostro legt de basis voor Cashu-afgewikkelde escrow over acht PRs, waarbij de bestaande Cashu Development Kit wordt gewrapt als een tweede afwikkelingsbackend naast Lightning. NIP-F4 podcasts wordt gemerged na 27 maanden debat. fiatjaf opent een controversieel NIP-17 key-ontkoppeling voorstel dat het bunker-versus-Marmot architecturale argument heropent. Amethyst levert NIP-32 hashtag-labeling, een dedicated podcastscherm en onchain zaps over 52 onuitgebrachte PRs.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="amber-620-nip-44-v3-versleuteling-geleverd">Amber 6.2.0: NIP-44 v3 versleuteling geleverd&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.2.0">Amber v6.2.0&lt;/a>, uitgebracht op 1 juni, voegt &lt;a href="https://github.com/greenart7c3/Amber/pull/448">NIP-44 v3 versleutelingsondersteuning&lt;/a> toe met een dedicated goedkeuringsscherm, intent preview, bunker preview, historieregistratie en auto-reject voor ongeldige verzoeken. De release registreert ook &lt;a href="https://github.com/greenart7c3/Amber/commit/8b93340">NIP-44 v3 ContentProvider authorities&lt;/a> zodat andere Android-apps v3-versleuteling kunnen aanvragen naast het bestaande v2-pad. NIP-44 zelf is de versioned versleutelde payload-spec gebruikt door &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> private DMs, NIP-46 bunker-verkeer en andere Nostr-primitieven; v3 in Amber is een opt-in naast v2, gesignaleerd door een aparte signer-methode zodat receiver-side clients het algoritme expliciet kunnen negotiëren. De bijbehorende NIPs PR moet nog landen, dus Amber rolt v3 uit vooruitlopend op de protocolconsensus, met het wire format en ContentProvider-authority geregistreerd voor downstream client-integratie.&lt;/p></description><content:encoded>&lt;p>Amber 6.2.0 levert NIP-44 v3 versleuteling vooruitlopend op de spec. Mostro legt de basis voor Cashu-afgewikkelde escrow over acht PRs, waarbij de bestaande Cashu Development Kit wordt gewrapt als een tweede afwikkelingsbackend naast Lightning. NIP-F4 podcasts wordt gemerged na 27 maanden debat. fiatjaf opent een controversieel NIP-17 key-ontkoppeling voorstel dat het bunker-versus-Marmot architecturale argument heropent. Amethyst levert NIP-32 hashtag-labeling, een dedicated podcastscherm en onchain zaps over 52 onuitgebrachte PRs.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="amber-620-nip-44-v3-versleuteling-geleverd">Amber 6.2.0: NIP-44 v3 versleuteling geleverd&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.2.0">Amber v6.2.0&lt;/a>, uitgebracht op 1 juni, voegt &lt;a href="https://github.com/greenart7c3/Amber/pull/448">NIP-44 v3 versleutelingsondersteuning&lt;/a> toe met een dedicated goedkeuringsscherm, intent preview, bunker preview, historieregistratie en auto-reject voor ongeldige verzoeken. De release registreert ook &lt;a href="https://github.com/greenart7c3/Amber/commit/8b93340">NIP-44 v3 ContentProvider authorities&lt;/a> zodat andere Android-apps v3-versleuteling kunnen aanvragen naast het bestaande v2-pad. NIP-44 zelf is de versioned versleutelde payload-spec gebruikt door &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> private DMs, NIP-46 bunker-verkeer en andere Nostr-primitieven; v3 in Amber is een opt-in naast v2, gesignaleerd door een aparte signer-methode zodat receiver-side clients het algoritme expliciet kunnen negotiëren. De bijbehorende NIPs PR moet nog landen, dus Amber rolt v3 uit vooruitlopend op de protocolconsensus, met het wire format en ContentProvider-authority geregistreerd voor downstream client-integratie.&lt;/p>
&lt;p>NIP-46 sessies accepteren nu automatisch ping-verzoeken bij connect, waardoor de prompt bij de eerste round trip na pairing wordt verwijderd. De &lt;code>sign_message&lt;/code> signer-methode werd volledig verwijderd nadat deze werd gedeprecieerd en ongebruikt was.&lt;/p>
&lt;p>Omdat Amber de dominante Android-signer is, moet elke downstream client die v3 wil richten op Amber&amp;rsquo;s wire format totdat de NIPs PR landt. Dat geeft Amber impliciete zeggenschap over de uiteindelijke v3-spec totdat het protocol inhaalt. De ruil is reëel: v3 in productie laat Amber implementatiefeedback verzamelen voor de uiteindelijke NIP, ten koste van een tijdelijk single-implementation referentiepunt dat andere clients nu moeten matchen.&lt;/p>
&lt;h3 id="mostro-cashu-escrow-integratie-via-cdk">Mostro: Cashu escrow-integratie via CDK&lt;/h3>
&lt;p>grunch landde deze week acht PRs door MostroP2P heen die Cashu&amp;rsquo;s bestaande P2PK multisig-primitieven (NUT-10 en NUT-11) integreren als een tweede afwikkelingsbackend naast Lightning op de Nostr-gecoördineerde P2P Bitcoin-uitwisseling. De cryptografische primitieven zijn van Cashu; het werk is integratie-scaffolding en een nieuwe escrow-backend trait. &lt;a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.12.0">Mostro core v0.12.0&lt;/a>, uitgebracht op 30 mei, voegt de &lt;a href="https://github.com/MostroP2P/mostro-core/pull/150">protocoltypes voor 2-of-3 multisig escrow&lt;/a> toe, per-proof P_M signatures en staat escrow events toe via responsvalidatie. De architectuur is gedocumenteerd in &lt;a href="https://github.com/MostroP2P/mostro/pull/756">PR #756&lt;/a> en gebruikt per-order trade keys verduidelijkt in &lt;a href="https://github.com/MostroP2P/mostro/pull/757">PR #757&lt;/a>.&lt;/p>
&lt;p>De implementatie werd uitgerold over zes follow-up PRs binnen één dag. &lt;a href="https://github.com/MostroP2P/mostro/pull/758">F2 (PR #758)&lt;/a> voegde de config, escrow-modus en conditional boot toe. Het volgende deel, &lt;a href="https://github.com/MostroP2P/mostro/pull/760">F3 (PR #760)&lt;/a>, definieerde een &lt;code>EscrowBackend&lt;/code> trait met een Lightning-implementatie en een Cashu-stub, waardoor Mostro afwikkelingsbackends kan wisselen zonder de order state machine te veranderen. &lt;a href="https://github.com/MostroP2P/mostro/pull/759">F4 (PR #759)&lt;/a> wrapte &lt;a href="https://github.com/cashubtc/cdk">CDK&lt;/a> (de Cashu Development Kit) voor mint- en wallet-operaties. Databasewerk in &lt;a href="https://github.com/MostroP2P/mostro/pull/761">F5 (PR #761)&lt;/a> voegde compare-and-swap escrow locks en active-locked queries toe. &lt;a href="https://github.com/MostroP2P/mostro/pull/762">F6 (PR #762)&lt;/a> bouwde een containerized mint in een dedicated CI-job voor end-to-end escrow-testen. De Mostro-flow gebruikt al NIP-59 gift-wrapped DMs voor ordercoördinatie via de relay, dus Cashu escrow past in als een tweede afwikkelingsoptie naast Lightning zonder het wire-protocol aan te raken.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="ngit-v250-grasp-fallback-en-lazy-git-fetches">ngit v2.5.0: GRASP fallback en lazy git-fetches&lt;/h3>
&lt;p>&lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.5.0">ngit v2.5.0&lt;/a> verandert het standaardgedrag van &lt;code>git push pr/&amp;lt;branch&amp;gt;&lt;/code> en &lt;code>ngit send&lt;/code> om een PR-kind te produceren voor nieuwe voorstellen wanneer de repository ten minste één GRASP-server geregistreerd heeft. Voorheen werd dit alleen getriggerd voor oversized commits van meer dan 60 KB of commits die submodules bevatten. Wanneer een PR niet naar de GRASP-servers van de repository kan worden gepusht, valt ngit nu terug op GRASP-06 routing via de gedeclareerde servers. De &lt;code>ngit send --git-server&lt;/code> flag of &lt;code>git push -o git-server=&amp;lt;url&amp;gt;&lt;/code> laat contributors expliciet een aangepaste git-URL of GRASP-server richten.&lt;/p>
&lt;p>&lt;code>ngit init&lt;/code> republish behoudt nu onbekende tags van bestaande announcements, zodat tags toegevoegd door een toekomstige ngit-versie of derde-partij tool republish overleven. Een gele waarschuwing lijst de meegedragen tags en &lt;code>--clean&lt;/code> verwijdert ze op verzoek. &lt;code>ngit pr apply&lt;/code>, &lt;code>ngit pr checkout&lt;/code> en &lt;code>ngit pr list&lt;/code> raadplegen git-servers lazy en delen een enkele fetch-helper, zodat checkout niet langer onvoorwaardelijk fetch wanneer de commit al lokaal is. &lt;code>ngit pr checkout&lt;/code> probeert ook door submitter aangeleverde clone-URLs uit het PR-event als fallback wanneer de gedeclareerde git-servers van de repo de PR-tip niet dragen, wat overeenkomt met het bestaande gedrag in &lt;code>ngit pr apply&lt;/code>. ngit is de referentie &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> implementatie voor git-collaboratie via Nostr, en v2.5.0 maakt GRASP het first-class pad voor nieuwe contributors.&lt;/p>
&lt;h3 id="jumble-v2657-exif-strippen-en-gevalideerde-zap-counts">Jumble v26.5.7: EXIF-strippen en gevalideerde zap counts&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.7">Jumble v26.5.7&lt;/a> voegt twee wijzigingen toe die gebruikersprivacy en data-integriteit direct beïnvloeden. EXIF-locatie en camera-identifiers worden nu gestript uit image uploads voordat ze de client verlaten, waarmee een langstaand metadata-leak oppervlak wordt gesloten dat elk vanuit Jumble geplaatst beeld raakte. Zap counts worden nu alleen berekend uit cryptografisch gevalideerde receipts, waarmee opgeblazen counts van misvormde zap events worden verholpen die aanvallers hadden laten overdrijven op zap-totalen op notes. De release voegt ook zender-identiteitsverificatie toe voor &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DMs, waarmee een spoofing-oppervlak wordt gesloten waar een zender zijn &lt;code>pubkey&lt;/code> in de seal kon vervalsen.&lt;/p>
&lt;h3 id="nostr-calendar-v160-rsvp-en-dubbele-deelnemer-verwerking">nostr-calendar v1.6.0: RSVP en dubbele deelnemer-verwerking&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.6.0">nostr-calendar v1.6.0&lt;/a> brengt Formstr&amp;rsquo;s RSVP-flow (&lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/169">PR #169&lt;/a>) en voorkomt dubbele deelnemers in event uitnodigingen (&lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/168">PR #168&lt;/a>). De &lt;code>waitForAll&lt;/code> optie in de publish-functie defaults nu naar false zodat de UI niet blokkeert op langzame relays (&lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/170">PR #170&lt;/a>). &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/157">PR #157&lt;/a> leverde Formstr&amp;rsquo;s twee NIP-voorstel drafts voor appointment scheduling en reserveringen.&lt;/p>
&lt;h3 id="sprout-036-sprout--mesh-llm-en-channel-secties">Sprout 0.3.6: Sprout × mesh-llm en channel-secties&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout/releases/tag/v0.3.6">Sprout v0.3.6&lt;/a> is het hoofdverhaal van een zes-release reeks van v0.3.1 tot en met v0.3.6 deze week. In-process Sprout × mesh-llm integratie landt in &lt;a href="https://github.com/block/sprout/pull/798">PR #798&lt;/a>, waardoor Sprout mesh-llm nodes kan serveren en consumeren via relay-admissie. Door de gebruiker gedefinieerde channel-secties synchroniseren over apparaten via Nostr in &lt;a href="https://github.com/block/sprout/pull/792">PR #792&lt;/a>, en channel-secties komen naar mobile met relay sync in &lt;a href="https://github.com/block/sprout/pull/800">PR #800&lt;/a>. Thread-bewuste notificaties met mutable follow- en mute-controle komen in &lt;a href="https://github.com/block/sprout/pull/761">PR #761&lt;/a>.&lt;/p>
&lt;p>Willekeurige file-type bijlagen met download cards kwamen in &lt;a href="https://github.com/block/sprout/pull/810">PR #810&lt;/a>, waarmee Sprout wordt uitgebreid voorbij alleen-image bijlagen. Mobile kreeg een Pulse social feed-tab (&lt;a href="https://github.com/block/sprout/pull/772">PR #772&lt;/a>) en Pulse-polish over feed, compose en filter-oppervlakken (&lt;a href="https://github.com/block/sprout/pull/796">PR #796&lt;/a>).&lt;/p>
&lt;h3 id="nostrbotkit-v050-marmot-groepschat-in-een-rust-bot-framework">NostrBotKit v0.5.0: Marmot groepschat in een Rust bot-framework&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/Tuxor/NostrBotKit/src/branch/main/CHANGELOG.md">NostrBotKit v0.5.0&lt;/a>, uitgebracht op 24 mei op Codeberg, voegt &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> (MLS-over-Nostr, &lt;a href="https://github.com/nostr-protocol/nips/pull/2014">NIP-104&lt;/a>) ondersteuning toe aan het self-hosted Rust bot-framework. Wanneer &lt;code>marmot: true&lt;/code> is ingesteld, publiceert de bot zijn MLS key packages (kind 443, 30443, 10051), accepteert groepsuitnodigingen automatisch en luistert naar berichten in gejoinede groepen. Twee nieuwe commandotypes, &lt;code>dm_marmot&lt;/code> en &lt;code>dm_marmot_npub&lt;/code>, laten bots berichten sturen naar benoemde Marmot-groepen of 1:1 Marmot-chats via cron jobs of webhooks. Om feedback-loops met andere bots te voorkomen, reageren NostrBotKit-bots alleen op berichten die expliciet aan hen zijn geadresseerd via &lt;code>/command&lt;/code> of &lt;code>@botname/command&lt;/code>. Versleutelde bijlagen met MIP-04 worden automatisch ontsleuteld en opnieuw geüpload via Blossom of NIP-96, en de MLS state-database wordt versleuteld met een sleutel afgeleid van de private key van de bot. NostrBotKit is het eerste Rust-framework dat NIP-104 bot-ondersteuning levert, waardoor Marmot-versleutelde bot-deployment beschikbaar komt voor een ander operator-profiel dan het bestaande TypeScript-pad.&lt;/p>
&lt;h3 id="noscrypt-v0114-ondertekende-cryptography-library-release">noscrypt v0.1.14: ondertekende cryptography library release&lt;/h3>
&lt;p>&lt;a href="https://github.com/vnuge/noscrypt/releases/tag/v0.1.14">noscrypt v0.1.14&lt;/a> is een security release van de C cryptography library gebruikt door verschillende Nostr clients voor secp256k1, NIP-04 en NIP-44 primitieven. De release wordt geleverd met &lt;a href="https://www.vaughnnugent.com/resources/software/modules/noscrypt">PGP-signed downloads&lt;/a> verifieerbaar tegen de public key van de maintainer. Downstream clients die noscrypt bundelen moeten de handtekening valideren voordat ze integreren.&lt;/p>
&lt;h3 id="chama-v130-nieuwe-nostr-native-p2p-escrow-met-fedimint">Chama v1.3.0: nieuwe Nostr-native P2P escrow met Fedimint&lt;/h3>
&lt;p>&lt;a href="https://github.com/jesuspirate/chama/releases/tag/v1.3.0">Chama v1.3.0&lt;/a>, uitgebracht op 1 juni, is het hoofdverhaal van een vier-release reeks voor een nieuwe Nostr-native P2P escrow-client die Fedimint ecash en 2-of-3 Shamir secret sharing gebruikt voor afwikkeling. Het project draait op &lt;a href="https://getchama.app">getchama.app&lt;/a> en werkt zonder server. v1.3.0 introduceert &amp;ldquo;heal that sticks&amp;rdquo; (succesvolle re-broadcast en trade healing die sessieherstarts overleeft) en pay-rail matching, waarbij US-georiënteerde Chamas eerst US-betalingsrails tonen. Multi-unit storefront-basiswerk landde in &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v1.2.11">v1.2.11&lt;/a> (multi-unit schema) en &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v1.2.12">v1.2.12&lt;/a> (storefront stock accountant + native Fedimint bridge recovery hardening). Chama voegt zich bij Mostro en Shopstr in de Nostr-marktplaats categorie, onderscheiden door zijn serverloze architectuur en Fedimint-gebaseerde escrow-afwikkeling.&lt;/p>
&lt;h2 id="onuitgebrachte-wijzigingen">Onuitgebrachte wijzigingen&lt;/h2>
&lt;h3 id="amethyst-nip-32-hashtag-labeling-podcastscherm-muziektracks">Amethyst: NIP-32 hashtag-labeling, podcastscherm, muziektracks&lt;/h3>
&lt;p>Amethyst mergde deze week 52 PRs en 411 commits zonder een release tag te knippen. De grootste functionele toevoeging is &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3111">PR #3111&lt;/a>, waarmee &lt;a href="https://nostrcompass.org/nl/topics/nip-32/">NIP-32&lt;/a> hashtag-labeling en een label-gebaseerde hashtag feed worden geïmplementeerd met kind 1985 events met &lt;code>L&lt;/code> namespace en &lt;code>l&lt;/code> label tags. Dit vervangt het brosse text-match &lt;code>#tag&lt;/code> mechanisme door een labeler-gebaseerd discovery-model waarbij gebruikers specifieke labeler npubs kunnen volgen zoals ze contentmakers volgen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> voegt een dedicated podcastscherm toe met episode-lijst en inline player, dat landt binnen dagen na de &lt;a href="https://nostrcompass.org/nl/topics/nip-f4/">NIP-F4&lt;/a> podcast-spec merge. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3071">PR #3071&lt;/a> voegt een Software Apps feed toe met follow-list filtering, en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3067">PR #3067&lt;/a> voegt music tracks en playlist-ondersteuning toe via &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> sets.&lt;/p>
&lt;p>Ephemeral signers voor anonieme post uploads landen in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3123">PR #3123&lt;/a>, waardoor gebruikers anoniem kunnen posten zonder hun identity key bloot te stellen aan upload-services. Een Tor self-heal watchdog met integratietests tegen Arti v2.3.0 komt in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3053">PR #3053&lt;/a>, wat Amethyst&amp;rsquo;s Tor-routing versterkt tijdens transiënte netwerkuitval. Onchain zaps en een NIP-05 filter voor terugkerende gebruikers van Gemini landen in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3052">PR #3052&lt;/a>, waarmee het zap-oppervlak wordt verbreed voorbij Lightning naar onchain Bitcoin-betalingen.&lt;/p>
&lt;h3 id="shopstr-opengraph-preview-url-validatie">Shopstr: OpenGraph preview URL-validatie&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr/pull/504">PR #504&lt;/a> valideert OpenGraph preview URLs voordat ze worden gerenderd in marktplaats-listings, waarmee een potentieel XSS-oppervlak wordt gesloten waar kwaadaardige verkopers scripted content konden embedden via vervaardigde OG-metadata. Door Shopstr gehoste shops tonen OG previews voor externe links, en ongevalideerde URLs laten een aanvaller willekeurige content injecteren in de shop-UI.&lt;/p>
&lt;h2 id="nip-updates-en-protocol-spec-werk">NIP-updates en protocol-spec werk&lt;/h2>
&lt;h3 id="nip-f4-podcasts-gemerged-na-twee-jaar">NIP-F4 (Podcasts) gemerged na twee jaar&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/1093">PR #1093&lt;/a> werd gemerged op 28 mei, twee jaar en drie maanden nadat fiatjaf de oorspronkelijke draft opende. NIP-F4 definieert podcast-afleveringen als kind 54 events met &lt;code>imeta&lt;/code> tags voor audio-bestandsmetadata (URL, mime type, taal ISO code, fallback URLs, NIP-96 service flag, bitrate, duur), een &lt;code>title&lt;/code> tag, optionele &lt;code>image&lt;/code> en &lt;code>description&lt;/code> tags, en &lt;code>t&lt;/code> tags voor onderwerplabels. De spec houdt bewust RSS als de bron van waarheid: afleveringen kunnen een &lt;code>i&lt;/code> tag dragen die verwijst naar de RSS podcast GUID, waardoor Nostr-clients kunnen linken naar bestaande podcastfeeds zonder audio-hosting te dupliceren. Het lange debat in de PR-thread (met podcast-namespace co-auteur Dave Jones, Alex Gleason en Mike Terenzio) kwam uit op een coëxistentiemodel waarbij Nostr de sociale laag biedt bovenop RSS terwijl RSS de distributielaag behoudt. Amethyst&amp;rsquo;s &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> podcastscherm landt binnen dagen na de spec-merge, en Jumble&amp;rsquo;s GIF picker-werk bevat ook vroege podcast-attachment scaffolding.&lt;/p>
&lt;h3 id="nip-17-key-ontkoppeling-pr-2361">NIP-17 key ontkoppeling (PR #2361)&lt;/h3>
&lt;p>fiatjaf opende &lt;a href="https://github.com/nostr-protocol/nips/pull/2361">PR #2361&lt;/a> op 1 juni, met het voorstel dat NIP-17 de identity key scheidt van de encryption key. Ontvangers adverteren hun encryption key in een nieuw kind 10044 event, en verzenders gebruiken die geadverteerde key (indien aanwezig) voor de gift-wrap inner seal, waarbij ze alleen terugvallen op de identity key van de ontvanger wanneer de advertentie afwezig is. De PR voegt ook een &lt;code>n&lt;/code> tag toe aan de seal die de encryption pubkey van de zender draagt, zodat ontvangers de juiste conversation key kunnen afleiden zonder trial-decryption tegen elke retired key. De genoemde motivatie is bunker UX: onder het huidige ontwerp moet een bunker-gebruiker elke ontvangen DM door de signer round-trippen om te ontsleutelen, aangezien de encryption key de signer-gehouden identity key is. Ontkoppeling laat de client de encryption key lokaal houden terwijl de identity key in de bunker blijft voor signatures.&lt;/p>
&lt;p>Het voorstel trok de meest controversiële review van de week. Cody Tseng (Jumble) steunt het als het gemakkelijkste pad naar cross-client DM interop. Vitor Pamplona (Amethyst) maakt bezwaar op twee gronden: het voegt een nieuw langlevend decryptie-geheim toe buiten de bunker, en clients die het niet leveren zullen stilletjes falen om berichten te ontsleutelen van clients die dat wel doen, zonder degradatiepad omdat de breuk op de seal-laag zit. Pamplona betoogt dat het probleem al correct is opgelost door &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>&amp;rsquo;s key packages en epoch-rotatie, en dat het retrofitten van key-scheiding in de basis-NIP-17 spec het soort interop-falen creëert waar Marmot twee jaar over deed om er omheen te engineeren. fiatjaf&amp;rsquo;s tegenwerping heeft drie delen: ontkoppeling is optioneel per ontvanger, de n-tag fix pakt de trial-decryption zorg aan, en het alternatief is de bunker-UX gebroken houden terwijl Telegram de messaging use case opeet. De thread blijft open zonder merge-beslissing en is de meest bekeken NIP-discussie van het kwartaal.&lt;/p>
&lt;h3 id="nip-silent-payments-payment-flow-pr-2362">NIP-Silent Payments payment flow (PR #2362)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2362">silentius-satoshi opende PR #2362&lt;/a> op 1 juni als een companion aan de bredere &lt;a href="https://github.com/nostr-protocol/nips/pull/2355">Nostr Silent Payments NIP draft (PR #2355)&lt;/a>. De payment-flow NIP definieert kind 8352 voor silent payment receipt notifications (geleverd via &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrap zodat de receipt link niet publiekelijk waarneembaar is) en kind 10353 voor een versleutelde UTXO-cache die synchroniseert over apparaten voor dezelfde Silent Payments wallet. Het paar samen laat een betaler een betaling signaleren aan een Silent Payments adres met Nostr-native primitieven zonder de on-chain link bloot te leggen op de open relaylaag.&lt;/p>
&lt;h3 id="nip-pip-perfect-ip-packets-pr-2364">NIP-PIP Perfect IP Packets (PR #2364)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2364">RandyMcMillan opende PR #2364&lt;/a> op 1 juni als draft. Het introduceert een packet-tree transport met drie nieuwe addressable kinds: 39078 draagt het manifest, 39079 draagt individuele slices en 39080 draagt repair requests. De spec definieert een wire format waarbij grote bestanden worden opgesplitst in addressable slices, waarbij manifests de slice-tree beschrijven en repair requests ontvangers laten vragen om ontbrekende slices. Early-draft status is van toepassing en het voorstel heeft nog geen maintainer-review aangetrokken.&lt;/p>
&lt;h3 id="nip-29-audiovideo-live-spaces-pr-2238">NIP-29 audio/video live spaces (PR #2238)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2238">PR #2238&lt;/a> werd gemerged op 28 mei, waarbij &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> relay-gebaseerde groepen worden uitgebreid met audio- en video-live-space ondersteuning. Groepen kunnen nu verwijzen naar een actieve live-space sessie, waardoor &lt;a href="https://nostrcompass.org/nl/topics/nip-53/">NIP-53&lt;/a>-stijl live activity events kunnen ankeren in een NIP-29 groepscontext.&lt;/p>
&lt;h3 id="nip-71-video-multiple-audio-tracks-pr-2255">NIP-71 video multiple audio tracks (PR #2255)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2255">PR #2255&lt;/a> werd gemerged op 28 mei, met de toevoeging van audio-track &lt;code>imeta&lt;/code> tags aan NIP-71 video events. Het nieuwe formaat draagt URL, hash, mime type, taal-tag (met ISO-639-1 plus original-version flag), fallback URLs, NIP-96 service signal, bitrate en duur. Dit maakt audio-only streaming (video podcasts), resolutie-switching met stabiele audio, meerdere taaltracks en verminderde opslag mogelijk wanneer servers geen audio direct in videobestanden inbedden. Clients moeten controleren op audio-track beschikbaarheid voordat single-track gedrag wordt aangenomen.&lt;/p>
&lt;h3 id="nip-59-ephemeral-gift-wrap-pr-2245">NIP-59 ephemeral gift wrap (PR #2245)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2245">PR #2245&lt;/a> werd gemerged op 28 mei, waarbij kind 21059 wordt toegevoegd als ephemeral tegenhanger van de bestaande kind 1059 gift wrap. De semantiek komt overeen met de standaard NIP-59 wrap maar volgt ephemeral event-regels per NIP-01 (relays laten ze vallen na broadcast en persisteren ze niet). Dit laat apps persistentie kiezen op basis van vereisten: typing-indicators en presence-pings profiteren van ephemeral, terwijl DM-geschiedenis persistentie nodig heeft.&lt;/p>
&lt;h3 id="nip-78-application-specific-kind-pr-2292">NIP-78 application-specific kind (PR #2292)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2292">PR #2292&lt;/a> werd gemerged op 28 mei, waarbij NIP-78 application-specific data wordt herclassificeerd als een normale addressable kind, waarbij het vorige aparte bereik wordt gedropt. Dit vereenvoudigt replaceability-semantiek en stemt NIP-78 af op het addressable event-model dat door andere application-state NIPs wordt gebruikt.&lt;/p>
&lt;h3 id="nip-85-verduidelijkingen-pr-2304">NIP-85 verduidelijkingen (PR #2304)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2304">PR #2304&lt;/a> werd gemerged op 28 mei met kleine verbeteringen aan de taal rond meerdere keys en relays per service provider in &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> Trusted Assertions, waarmee het operator-key-rotation pad voor relay assertion services wordt verduidelijkt.&lt;/p>
&lt;h3 id="nip-01-relay-connection-management-one-liner-pr-2307">NIP-01 relay connection management one-liner (PR #2307)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2307">PR #2307&lt;/a> werd gemerged op 28 mei, met de toevoeging van één zin aan NIP-01 over hoe clients relay-connectielevens moeten verwerken. De fix pakt een langlopend gat aan waar clients van mening verschilden over of ze WebSocket-verbindingen open zouden houden na fetching, wat leidde tot silent message loss op relays die idle-verbindingen laten vallen.&lt;/p>
&lt;h3 id="nip-c7-kind-9-chat-constraint-pr-2310">NIP-C7 kind 9 chat constraint (PR #2310)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2310">PR #2310&lt;/a> werd gemerged op 28 mei, waarbij NIP-C7 chat-weergaven worden beperkt tot alleen kind 9 berichten. Dit scheidt ephemeral chat van kind 1 timeline-posts in clients die NIP-C7-stijl chatoppervlakken implementeren.&lt;/p>
&lt;h3 id="nip-55-vereenvoudiging-pr-2363">NIP-55 vereenvoudiging (PR #2363)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2363">PR #2363&lt;/a> door greenart7c3, geopend op 1 juni, vereenvoudigt de Android signer applicatie-spec. Vitor Pamplona tekende af als &amp;ldquo;Looks good&amp;rdquo; en fiatjaf vroeg of het klaar was om te mergen. De wijziging maakt de weg vrij voor de NIP-44 v3 ContentProvider-authority registratie die Amber deze week leverde.&lt;/p>
&lt;h3 id="nip-44-v3-amber-implementatie-vooruitlopend-op-spec">NIP-44 v3 (Amber-implementatie vooruitlopend op spec)&lt;/h3>
&lt;p>Amber leverde NIP-44 v3 in v6.2.0 met acht commits die de versleuteling-upgrade en ContentProvider-authority registratie implementeren, maar de NIPs-repo spec PR moet nog landen. NIP-44 zelf definieert een versioned versleuteld payload-formaat gebruikt binnen ondertekende events; de bestaande v2 (in productie sinds 2024) gebruikt secp256k1 ECDH, HKDF, padding, ChaCha20, HMAC-SHA256 en base64. Het v3 wire format voegt een nieuwe versie-byte (0x03) toe voor de nonce, waardoor receiver clients het algoritme expliciet kunnen negotiëren. Amber&amp;rsquo;s implementatie omvat auto-reject voor ongeldige v3-verzoeken, een dedicated goedkeuringsscherm onderscheiden van v2-goedkeuringen, en per-direction plaintext logging voor de historie. Totdat de NIPs PR merged, staat v3 als een Amber-specifieke uitbreiding. Behandel het als een toekomstgericht signaal, niet als een stabiele protocol-brede signalering.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-32-labeling">NIP deep dive: NIP-32 (Labeling)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-32/">NIP-32&lt;/a> definieert een gestructureerde manier voor elke Nostr-actor om events, pubkeys, relays, URLs of onderwerpen te labelen met addressable kind 1985 events met een namespaced label-vocabulaire. De spec introduceert twee nieuwe tags: &lt;code>L&lt;/code> duidt een label-namespace aan en &lt;code>l&lt;/code> duidt een label binnen die namespace aan. Label-target tags (&lt;code>e&lt;/code>, &lt;code>p&lt;/code>, &lt;code>a&lt;/code>, &lt;code>r&lt;/code> of &lt;code>t&lt;/code>) specificeren wat wordt gelabeld. De namespace-vereiste voorkomt dat meerdere labelsystemen botsen: een &lt;code>spam&lt;/code> label in &lt;code>nip28.moderation&lt;/code> draagt andere semantiek dan een &lt;code>spam&lt;/code> label in &lt;code>relay-report&lt;/code>.&lt;/p>
&lt;p>De ontwerpkeuze die NIP-32 nuttig maakt buiten moderatie is dat labels beweringen zijn, geen protocol-niveau waarheid. Een kind 1985 event zegt alleen dat een bepaalde pubkey een bepaald doel labelde in een bepaalde namespace. Het vertrouwensmodel wordt gedelegeerd aan de client: elke client kiest welke labelers te honoreren, welke namespaces te lezen en welke UI-affordance aan elk label te geven. Hetzelfde primitief draagt content warnings, licentietoewijzing, ISO-639-1 taal-tags op kind 1 notes, ISO-3166-2 geografische tags, contentclassificatie, gedistribueerde moderatie-suggesties en reputatiescores.&lt;/p>
&lt;p>Amethyst&amp;rsquo;s &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3111">PR #3111&lt;/a> deze week is de grootste deployment tot nu toe. Het voegt hashtag labeling toe via NIP-32 en een label-gebaseerde hashtag feed, waardoor gebruikers kunnen browsen op labels toegewezen door vertrouwde labelers. Het eerdere &lt;code>#tag&lt;/code> text-match mechanisme dat oorspronkelijk hashtag discovery op Nostr aandreef blijft als fallback voor niet-gelabelde notes. Het hashtag-as-label model betekent dat dezelfde note kan worden ontdekt onder meerdere labels toegewezen door verschillende labelers, en gebruikers kunnen specifieke labelers muten of boosten zonder de onderliggende notes te beïnvloeden.&lt;/p>
&lt;p>Zelflabeling wordt ook ondersteund. Een auteur kan &lt;code>L&lt;/code> en &lt;code>l&lt;/code> tags direct aan zijn eigen kind 1 notes hangen om taal, locatie en onderwerp te verklaren. Een note getagd &lt;code>[&amp;quot;L&amp;quot;, &amp;quot;ISO-639-1&amp;quot;], [&amp;quot;l&amp;quot;, &amp;quot;en&amp;quot;, &amp;quot;ISO-639-1&amp;quot;]&lt;/code> identificeert zichzelf als Engels en kan door taal-bewuste clients worden gefilterd zonder derde-partij labeling-infrastructuur.&lt;/p>
&lt;p>Voorbeeld van een NIP-32 label event dat een kind 1 note als Engels tagt en een moderation-tag toewijst:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a5f87fe2d4c8b9a0e3f1c4d5e6a7b8c9d0e1f2a3b4c5d6e7f8091a2b3c4d5e6f&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1748908800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1985&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;L&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;ISO-639-1&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;l&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;en&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;ISO-639-1&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;L&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip28.moderation&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;l&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;approve&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip28.moderation&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;8b39f4e5d6c7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Labeled as English-language content approved for NIP-28 chat moderation&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f1e2d3c4b5a6978869504132c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5d6e7f80192a3b4c5&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De Amethyst-uitrol gecombineerd met het recente Trusted Relay Assertions-werk suggereert dat NIP-32 het standaardsubstraat wordt voor elk &amp;ldquo;gebruiker-gedreven bewering over een doelwit&amp;rdquo; patroon op Nostr. De volgende test is of labelers zelf vertrouwenshiërarchieën ontwikkelen: of gebruikers specifieke labeler npubs zullen volgen zoals ze contentmakers volgen.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-f4-podcasts">NIP deep dive: NIP-F4 (Podcasts)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/F4.md">NIP-F4&lt;/a> werd deze week gemerged, twee jaar en drie maanden nadat fiatjaf de oorspronkelijke draft opende (PR #1093). Het F-prefix is gewoon hex-nummering: NIP-F0 tot en met NIP-FF gebruiken dezelfde 1-byte hex space als NIP-0A tot en met NIP-0D, waarbij het bovenste hex-bereik dient als overflow nu het 01-99 decimale bereik zich vult. NIP-F4 definieert hoe podcasts afleveringen en metadata publiceren als Nostr-events terwijl RSS wordt gehouden als een complementaire laag voor het audio-bestand zelf.&lt;/p>
&lt;p>De centrale architecturale keuze is dat elke podcast zijn eigen Nostr keypair is. De spec opent direct hiermee: &amp;ldquo;each podcast is its own Nostr keypair&amp;rdquo;. Dit laat podcasts hun podcasting-aanwezigheid combineren met een normale kind 0 / kind 1 microblogging-aanwezigheid, en laat een podcast eigendom veranderen in de tijd via key handover of MuSig2-stijl gedeelde signing. Vier event-kinds dragen de publicatielaag:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>kind:10154&lt;/code>&lt;/strong>: replaceable podcast metadata. Draagt &lt;code>title&lt;/code>, &lt;code>image&lt;/code>, &lt;code>description&lt;/code>, optionele &lt;code>website&lt;/code> tags en optionele &lt;code>p&lt;/code> tags die auteurs markeren met een &lt;code>role&lt;/code> van &lt;code>host&lt;/code>, &lt;code>cohost&lt;/code> of &lt;code>editor&lt;/code>.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:10164&lt;/code>&lt;/strong>: auteur counter-claim. Het voorbeeld in de spec gebruikt kind &lt;code>10064&lt;/code> (een typo open voor correctie), maar de kop en omringende tekst identificeren het als &lt;code>kind:10164&lt;/code>. Gebruikers noemen de podcast-pubkeys die ze schrijven, zodat clients de &lt;code>p&lt;/code> tags in &lt;code>kind:10154&lt;/code> kunnen verifiëren tegen een equivalente claim van de veronderstelde auteur. Zonder dit zou een podcast valselijk iedereen als host kunnen taggen.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:54&lt;/code>&lt;/strong>: episode-events geschreven door de podcast-pubkey direct. Tags omvatten &lt;code>title&lt;/code>, optioneel &lt;code>image&lt;/code>, &lt;code>description&lt;/code> en één of meer &lt;code>audio&lt;/code> tags. Elke &lt;code>audio&lt;/code> tag is &lt;code>[&amp;quot;audio&amp;quot;, &amp;quot;&amp;lt;audio-url&amp;gt;&amp;quot;, &amp;quot;&amp;lt;optional_media_type&amp;gt;&amp;quot;]&lt;/code>. De spec merkt op &amp;ldquo;other important fields to be specified here later after further discovery&amp;rdquo;, en de gemergde vorm is bewust minimaal.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:10054&lt;/code>&lt;/strong>: een &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a>-stijl favoriete-podcasts lijst, waardoor gebruikers kunnen markeren welke podcasts ze volgen.&lt;/li>
&lt;/ul>
&lt;p>Het thread-debat rond de merge betrof Podcasting 2.0 co-auteur &lt;a href="https://github.com/daveajones">Dave Jones&lt;/a>, &lt;a href="https://github.com/alexgleason">Alex Gleason&lt;/a>, &lt;a href="https://github.com/mterenzio">Mike Terenzio&lt;/a>, &lt;a href="https://github.com/pablof7z">Pablo F7z&lt;/a> en &lt;a href="https://github.com/staab">staab&lt;/a>. Jones argumenteerde sterk tegen elke poging om RSS te vervangen: &amp;ldquo;It&amp;rsquo;s been tried many times and always fails&amp;rdquo;, verwijzend naar JSONfeed, XMPP, AMP, Twitter&amp;rsquo;s API en Spotify&amp;rsquo;s mislukte migratie. Terenzio herformuleerde het voorstel als een sociale laag bovenop RSS, waarbij RSS zelf als de distributielaag wordt gehouden. fiatjaf stemde ermee in een stapje terug te doen en het voorstel te laten rijpen: &amp;ldquo;I agree with everything you said but I still think we can pull it off, let&amp;rsquo;s stop here for a while&amp;rdquo;. Twee jaar later landt de gemergde spec dichter bij coëxistentie dan vervanging.&lt;/p>
&lt;p>Drie ontwerpvragen blijven expliciet in de gemergde spec:&lt;/p>
&lt;ul>
&lt;li>De &lt;code>kind:10164&lt;/code> typo (voorbeeld toont &lt;code>10064&lt;/code>) moet worden verzoend voordat clients veilig kunnen interopereren.&lt;/li>
&lt;li>Episode-niveau discovery zonder RSS GUID-linking wordt open gelaten. De gemergde spec heeft geen &lt;code>i&lt;/code> tag, geen &lt;code>podcast:item:guid&lt;/code> formaat en geen RSS-bridging mechanisme. Clients die een bestaande RSS-catalogus in kind 54 events willen overbruggen moeten de bridge-conventie zelf definiëren.&lt;/li>
&lt;li>De &amp;ldquo;other important fields&amp;rdquo; stub op de &lt;code>kind:54&lt;/code> definitie laat bitrate, duur, taal, transcript pointers, chapters en per-segment metadata als open territorium voor follow-up voorstellen.&lt;/li>
&lt;/ul>
&lt;p>Amethyst&amp;rsquo;s &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> brengt een dedicated podcastscherm met episode-lijst en inline player binnen dagen na de merge, de eerste grote client-implementatie. Jumble leverde vroege podcast-attachment scaffolding naast zijn GIF-picker. Wavlake blijft het grootste Nostr-native podcastplatform en zal moeten beslissen of het zijn bestaande kind 31337 music track events afstemt op NIP-F4&amp;rsquo;s kind 54 episode-model.&lt;/p>
&lt;p>Voorbeeld van een NIP-F4 kind 54 episode-event, overeenkomstig de minimale tag-set van de gemergde spec:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;55807e7d5cd90d0303d7dce7397f996fdbaed8697903f326c7cf8ad999b9de3d&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1748995200&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">54&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Episode 42: Why RSS Won&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;image&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://podcast.example.com/ep42-cover.jpg&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;description&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Dave Jones and fiatjaf on protocol coexistence and the social layer.&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;audio&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://podcast.example.com/audio/ep42.mp3&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;audio/mpeg&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;In this episode we discuss the two-year journey of NIP-F4 from draft to merge, and why coexistence with RSS turned out to be the right architectural choice.&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;abc123def456789012345678901234567890abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef01234567&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>PR #1093 was 27 maanden open, ruim boven de mediane open-duur voor gemergde NIPs PRs. De volgende test voor NIP-F4 is of de kind 10164 typo wordt verzoend, of episode-discovery en RSS-bridge conventies opkomen vanuit de implementers, en of de grote podcasthosts publiceren onder per-podcast keypairs zoals de spec aanbeveelt.&lt;/p></content:encoded></item><item><title>Nostr Compass #24</title><link>https://nostrcompass.org/nl/newsletters/2026-05-28-newsletter/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-05-28-newsletter/</guid><description>&lt;p>Amethyst v1.11.0 levert een volledige NIP-52 kalenderimplementatie met herinneringen, on-chain Bitcoin zap-splits en ondersteuning voor Marmot groepsantwoorden. White Noise v2026.5.22 levert iOS-pushmeldingen via een Notification Service Extension, samen met block-UX en een add-members knop. Vector v0.4.0 levert een fundamentele vector-core herschrijving, één-klik Tor met bridges, NIP-46 remote signers, volledige-negentropy MLS-groepssynchronisatie en een 21-tool MCP-server voor AI-agents. Applesauce v6.1.0 introduceert NIP-51 lookup relay-lijsten (kind 10086) en een complete NIP-34 git-cast factory-set. MDK voegt NIP-40 verdwijnende berichten toe op iOS en Android via een uniform UniFFI-oppervlak, en Mostro v0.17.4 sluit de anti-abuse bond-lus met Phase 3 slashed-bond uitbetalingen aan de winnaar. Notedeck merged volledige NIP-77 negentropy reconciliation voor giftwraps en thread-backfill, Cordn verschijnt als een coördinator-gemedieerde MLS-messenger die een single-point availability afhankelijkheid inruilt voor strakkere epoch-ordening en een eenvoudiger operationeel model, een NIP-B0 referentie-implementatie genaamd deepmarks levert een curator-monetized bookmark-client, en het Formstr-team opent vier gecoördineerde kalender-NIP voorstellen die deelnemer-zelfverwijdering, private events, herhaling en gedecentraliseerd afspraak plannen dekken.&lt;/p></description><content:encoded>&lt;p>Amethyst v1.11.0 levert een volledige NIP-52 kalenderimplementatie met herinneringen, on-chain Bitcoin zap-splits en ondersteuning voor Marmot groepsantwoorden. White Noise v2026.5.22 levert iOS-pushmeldingen via een Notification Service Extension, samen met block-UX en een add-members knop. Vector v0.4.0 levert een fundamentele vector-core herschrijving, één-klik Tor met bridges, NIP-46 remote signers, volledige-negentropy MLS-groepssynchronisatie en een 21-tool MCP-server voor AI-agents. Applesauce v6.1.0 introduceert NIP-51 lookup relay-lijsten (kind 10086) en een complete NIP-34 git-cast factory-set. MDK voegt NIP-40 verdwijnende berichten toe op iOS en Android via een uniform UniFFI-oppervlak, en Mostro v0.17.4 sluit de anti-abuse bond-lus met Phase 3 slashed-bond uitbetalingen aan de winnaar. Notedeck merged volledige NIP-77 negentropy reconciliation voor giftwraps en thread-backfill, Cordn verschijnt als een coördinator-gemedieerde MLS-messenger die een single-point availability afhankelijkheid inruilt voor strakkere epoch-ordening en een eenvoudiger operationeel model, een NIP-B0 referentie-implementatie genaamd deepmarks levert een curator-monetized bookmark-client, en het Formstr-team opent vier gecoördineerde kalender-NIP voorstellen die deelnemer-zelfverwijdering, private events, herhaling en gedecentraliseerd afspraak plannen dekken.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="amethyst-v1110-kalenders-on-chain-zap-splits-en-marmot-antwoorden">Amethyst v1.11.0: kalenders, on-chain zap-splits en Marmot antwoorden&lt;/h3>
&lt;p>Amethyst, de Nostr-client voor Android onderhouden door Vitor Pamplona, bracht &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.11.0">v1.11.0&lt;/a> uit. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2994">PR #2994&lt;/a> voegt een &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> calendar event-implementatie toe met een dedicated UI en een remindersysteem, waardoor calendar events nu in hun eigen timeline-categorie renderen, gescheiden van de generieke kind-30023 long-form weergave. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3018">PR #3018&lt;/a> breidt on-chain Bitcoin zaps uit met split-ondersteuning, waarbij een enkele Bitcoin-transactie wordt verdeeld over meerdere ontvangers volgens de bestaande zap-split tag, zodat een on-chain betaling zich hetzelfde gedraagt als een Lightning split. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2974">PR #2974&lt;/a> voegt een gepagineerd on-chain transactiegeschiedenisscherm toe dat elke afgewikkelde zap toont met block-confirmatiestatus.&lt;/p>
&lt;p>Groepsberichten krijgen pariteit met één-op-één chat: &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2995">PR #2995&lt;/a> voegt reply-ondersteuning toe voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>/MLS groepsberichten, waardoor threads binnen versleutelde groepen nu renderen met dezelfde parent-reference UI als publieke notes. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2984">PR #2984&lt;/a> hardt &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zap-receipt validatie door te controleren of de LNURL-provider overeenkomt met de lud16 van de ontvanger, waarmee een klasse van vervalsing wordt gesloten waarbij een derde-partij LNURL een ontvangstbewijs kon uitgeven voor een betaling die nooit is aangekomen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2968">PR #2968&lt;/a> accepteert floating-point afmetingen in &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> &lt;code>imeta&lt;/code> tags, waarmee Amethyst wordt afgestemd op clients die fractionele pixel-density waarden publiceren vanaf apparaten zoals de iPhone Retina display. De release sluit ook Payment Targets aan, een nieuwe replaceable-event multi-rail tip jar die in het protocolgedeelte hieronder wordt behandeld.&lt;/p>
&lt;h3 id="white-noise-v2026522-ios-push-block-ux-en-add-members">White Noise v2026.5.22: iOS-push, block-UX en add members&lt;/h3>
&lt;p>White Noise, de Marmot-protocol groepsmessenger, bracht &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.5.22%2B25">v2026.5.22&lt;/a> uit met iOS-pushmeldingen als kopfeature. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/673">PR #673&lt;/a> implementeert een iOS Notification Service Extension (NSE) die MLS-berichten binnen het extensieproces ontsleutelt en ze als systeemmeldingen toont, zodat iPhone-gebruikers de app niet langer op de voorgrond hoeven te hebben om berichten te ontvangen. Android push-token plumbing routeert door dezelfde backend-pijplijn, waarbij de per-platform NSE ciphertext buiten de broker houdt.&lt;/p>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/676">PR #676&lt;/a> voegt een volledige block- en unblock-UX toe met bevestigingsflows en contactlijst-filtering. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/679">PR #679&lt;/a> voegt de langgevraagde &amp;ldquo;Add members&amp;rdquo; knop toe aan het groepsinformatiescherm, waarmee een UX-gat wordt gesloten waarbij groepsadmins moesten terugvallen op share-links. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/688">PR #688&lt;/a> introduceert een dedicated iOS notification-settings scherm en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/687">PR #687&lt;/a> sluit share-via-long-press aan voor media en berichten.&lt;/p>
&lt;h3 id="mdk-voegt-nip-40-verdwijnende-berichten-toe-over-platforms">MDK voegt NIP-40 verdwijnende berichten toe over platforms&lt;/h3>
&lt;p>De Marmot Development Kit, de gedeelde Rust-core gebruikt door White Noise iOS, White Noise Android en elke toekomstige Marmot-client, mergde &lt;a href="https://github.com/marmot-protocol/mdk/pull/306">PR #306&lt;/a> om disappearing-message validatie en &lt;a href="https://nostrcompass.org/nl/topics/nip-40/">NIP-40&lt;/a> expiratie-verwerking bloot te stellen via de UniFFI-brug. De PR is de tweede van een driedelige serie. iOS en Android delen nu één Rust-implementatie van de expiratielogica; de timing-regels leven in één gecontroleerd codepad geconsumeerd door beide platforms via UniFFI. &lt;a href="https://github.com/marmot-protocol/mdk/pull/307">PR #307&lt;/a> beperkt de opgeslagen lengte van welcome failure reasons en saneert ze voor persistentie, een aparte hardening-pass die de welcome-event verwerking van vorige week aanvult.&lt;/p>
&lt;p>Verdwijnende berichten in MLS zijn niet alleen een UI-affordance. De expiratietag wordt gepubliceerd met de versleutelde bericht-envelop, zodat een ontvanger die het bericht nooit opent, toch de onderliggende ciphertext op de relaylaag ziet verlopen naast elke gecachte kopie in de ontvangende client. Nu MDK het validatiepad bezit, blijft het gedrag consistent over clients: elke conforme Marmot-implementatie handhaaft dezelfde expiratiesemantiek, waardoor het niet langer een portabiliteitsrisico is dat de ene client expiratie eert terwijl de andere voor altijd cachet.&lt;/p>
&lt;h3 id="mostro-v0174-phase-3-sluit-de-slashed-bond-lus">Mostro v0.17.4: Phase 3 sluit de slashed-bond lus&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, het peer-to-peer Bitcoin-uitwisselingsprotocol gebouwd op Nostr, bracht Phase 3 van zijn anti-abuse bond uitrol uit in &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.4">v0.17.4&lt;/a>. &lt;a href="https://github.com/MostroP2P/mostro/pull/738">PR #738&lt;/a> landt de uitbetalingsflow voor geslashte bonds, waarbij het verbeurde onderpand van de verliezer wordt afgeboekt naar de dispuutwinnaar. &lt;a href="https://github.com/MostroP2P/mostro/pull/743">PR #743&lt;/a> voegt Phase 3.5 toe, een expliciet uitbetalingsbevestigingsbericht aan de winnaar zodat ze weten dat de geslashte sats zijn afgewikkeld, met het bevestigingsevent dat aankomt op dezelfde Nostr-sessie als de dispuutoplossing. Phase 2, vorige week behandeld, introduceerde slashing als een admin-actie; Phase 3 is het verschil tussen dreigen met een straf en die afdwingen.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro/pull/746">PR #746&lt;/a> laat de daemon disputen finaliseren die geen solver row hebben, een edge case die eerder de resolutie op legacy disputen stagneerde. &lt;a href="https://github.com/MostroP2P/mostro/pull/748">PR #748&lt;/a> tolereert null rates in Yadio&amp;rsquo;s &lt;code>/exrates/BTC&lt;/code> response zodat een korte Yadio-uitval niet langer Mostro&amp;rsquo;s fiat-conversiepad breekt. &lt;a href="https://github.com/MostroP2P/mostro/pull/745">PR #745&lt;/a> documenteert de spec voor multi-source prijsproviders, de basis voor het verwijderen van Yadio als een single point of failure. De Mostro mobiele client sloot het bijpassende Phase 3 claim-pad aan in &lt;a href="https://github.com/MostroP2P/mobile/pull/596">PR #596&lt;/a>.&lt;/p>
&lt;h3 id="applesauce-v610-lookup-relays-en-nip-34-git-casts">Applesauce v6.1.0: lookup relays en NIP-34 git casts&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/applesauce">Applesauce&lt;/a>, de modulaire Nostr-toolkit die Coracle, noStrudel en Pablo F7z&amp;rsquo;s stack aandrijft, bracht &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-actions%406.1.0">v6.1.0&lt;/a> uit over zijn pakketten. De release voegt first-class &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> lookup-relay lijstondersteuning toe: kind 10086 events laten een gebruiker signaleren &amp;ldquo;vraag deze relays als je mij wilt vinden,&amp;rdquo; naast &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> outbox-lijsten als een discovery-primitief. Applicaties gebouwd op &lt;code>applesauce-core&lt;/code> krijgen een reactieve &lt;code>User.lookupRelays$&lt;/code> observable en een bijpassende loader in &lt;code>applesauce-relay&lt;/code>.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> git-cast factories komen in &lt;code>applesauce-factory&lt;/code>, waarbij elke Applesauce-gebouwde client een één-regel pad krijgt om repo announcements (kind 30617), patches (kind 1617) en issues (kind 1621) te publiceren. &lt;code>User.favoriteGitRepos$&lt;/code>, &lt;code>User.gitAuthors$&lt;/code> en &lt;code>User.graspServers$&lt;/code> reactieve properties laten applicaties de gevolgde repos, repo-maintainers en geconfigureerde GRASP-servers van een gebruiker direct weergeven vanuit hetzelfde User-object. De release verhelpt ook pool manual methods die stilletjes offline relays lieten wegvallen in &lt;a href="https://github.com/hzrd149/applesauce/pull/73">PR #73&lt;/a>.&lt;/p>
&lt;h3 id="notedeck-mergde-nip-77-negentropy-voor-giftwraps-en-thread-backfill">Notedeck mergde NIP-77 negentropy voor giftwraps en thread-backfill&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, Damus&amp;rsquo;s native multi-column desktop-client, mergde &lt;a href="https://github.com/damus-io/notedeck/pull/1459">PR #1459&lt;/a> op 25 mei om volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-77/">NIP-77&lt;/a> negentropy reconciliation aan te sluiten op het gedeelde outbox-pad. De PR voegt NIP-77 client- en relayframes toe, relay-local negentropy-sessies en een outbox full-history tracker die local-set reconciliation en missing-event fetches aandrijft. Message giftwraps krijgen negentropy reconciliation zodat privé-berichtenveloppen kunnen worden hersteld van de leesrelays van het geselecteerde account. Thread-weergaven worden niet langer beperkt door de live-subscription reply-limit. Dave PNS vervangt zijn Dave-local negentropy-implementatie door het gedeelde outbox-pad terwijl het bestaande bounded-history gedrag behouden blijft.&lt;/p>
&lt;p>Live subscriptions en negentropy gebruiken nu aparte filters. Een flow kan een klein live verzoek behouden terwijl een breder negentropy-filter wordt uitgegeven om te reconcileren wat de relay al heeft. De PR schakelt bewust geen brede negentropy-sync in voor home- of profiel-timelines, wat de cold-start kostenkenmerken zou veranderen. Testdekking werd toegevoegd voor reconciliation, giftwrap-levering, thread-backfill, Dave PNS-herstel, account-omschakeling, relay-herritargeting, fetch-retries en NIP-77 relaygedrag.&lt;/p>
&lt;h3 id="vector-v040-vector-core-herschrijving-tor-nip-46-volledige-negentropy-mls-en-een-mcp-agentoppervlak">Vector v0.4.0: vector-core herschrijving, Tor, NIP-46, volledige-negentropy MLS en een MCP-agentoppervlak&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, de privacy-gerichte cross-platform messenger gebouwd op NIP-17 DMs en Marmot-groepen, bracht &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.0">v0.4.0&lt;/a> uit als een aanzienlijke release. Het kernpunt is een fundamentele engine-herschrijving: alle logica van Vector leeft nu in één ontkoppelde crate, &lt;code>vector-core&lt;/code>, gedeeld over desktop, Android en elke toekomstige client, met 440+ tests in de core zelf en de application shell ontdaan van duizenden regels. De herschrijving is de basis voor een Vector CLI, bots en SDKs die dezelfde protocolcode aandrijven als de GUI.&lt;/p>
&lt;p>Tor-integratie levert met één-klik traffic routing en bridge-ondersteuning voor censuuromzeiling. Multi-account-ondersteuning landt met een in-app switcher. Remote-signer login komt via &lt;a href="https://nostrcompass.org/nl/topics/nl-topics/nip-46/">NIP-46&lt;/a> met bunker pairing per QR of geplakte URI, zodat gebruikers kunnen inloggen zonder ooit hun nsec bloot te stellen. Delete-for-everyone werkt in zowel &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DMs als &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> groepschats, waarbij Vector de kortstondige signing key behoudt als een bewuste spec-afwijking die de release notes expliciet noemen: &amp;ldquo;a diversion from the traditional NIP-17/Marmot specs for enhanced user privacy controls.&amp;rdquo; De behouden kortstondige key geeft Vector-clients lokaal bewijs dat een verwijdering was gesanctioneerd door de oorspronkelijke afzender, maar het betekent ook dat elke andere Vector-aanrakende client een ander verwijdering-verifieerbaarheidsoppervlak ziet dan baseline NIP-17/Marmot-clients.&lt;/p>
&lt;p>MLS groepssync wordt nu volledig gereconcileerd via &lt;a href="https://nostrcompass.org/nl/topics/nip-77/">NIP-77&lt;/a> negentropy, dezelfde richting die Notedeck deze week nam voor giftwraps en threads. De Blossom-uploader faalt over meerdere servers, leert de capabilities van elke server en synchroniseert de serverlijst over apparaten. Custom emoji-packs zijn door gebruikers te maken, deelbaar en cross-compatibel met andere Nostr-clients. SQLite-geheugen daalde van ongeveer 308MB naar 5MB. Het emoji-paneel opent vanuit disk-cache en Discord-stijl shortcodes (&lt;code>:smile:&lt;/code>) plus Unicode-frequentierangschikking tonen de juiste glyph eerst.&lt;/p>
&lt;p>De meest nieuwe toevoeging is &lt;code>vector-agent&lt;/code>, een MCP (Model Context Protocol) server die 21 tools blootstelt zodat AI-agents Vector kunnen aansturen: DMs verzenden, groepen beheren, bestanden uploaden, profielen bewerken. Dit is het tweede Nostr-project deze week (naast Shopstr) dat een MCP-oppervlak levert, en de eerste messenger-klasse applicatie die dat doet. Gekoppeld met AgentNoise (vorige week behandeld), beweegt het patroon van agent-bestuurde Nostr-clients zich van eenmalige experimenten naar een bewuste platformrichting.&lt;/p>
&lt;h3 id="cordn-verschijnt-als-een-coördinator-gemedieerde-mls-messenger">Cordn verschijnt als een coördinator-gemedieerde MLS-messenger&lt;/h3>
&lt;p>&lt;a href="https://cordn.net">Cordn&lt;/a> (web client op &lt;a href="https://cordn.net">cordn.net&lt;/a>, repos op &lt;a href="https://github.com/Cordn-msg/cordn">Cordn-msg/cordn&lt;/a> en &lt;a href="https://github.com/Cordn-msg/cordn-web">Cordn-msg/cordn-web&lt;/a>) is een nieuwe MLS-messenger die een andere architecturale richting neemt dan Marmot. Waar &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> volledig relay-gebaseerd is zonder bevoorrechte coördinator (elk groepslid schrijft direct naar relays en elke conforme relay kan het verkeer dragen), introduceert Cordn een per-groep coördinatorrol geïmplementeerd als een &lt;a href="https://nostrcompass.org/nl/topics/contextvm/">ContextVM&lt;/a> service. De coördinator ordent MLS commits en verzorgt welcome-distributie.&lt;/p>
&lt;p>Het Cordn-argument, uiteengezet op zijn &lt;a href="https://cordn.net/why">/why&lt;/a> pagina, is dat MLS zoals geïmplementeerd in productie-messengers &amp;ldquo;not coordination-free&amp;rdquo; is en dat &amp;ldquo;weakly ordered public dissemination&amp;rdquo; groep-state convergentie &amp;ldquo;much harder&amp;rdquo; maakt zonder een sterk coördinatiepunt. Een coördinator-gemedieerd ontwerp biedt voorspelbare epoch-voortgang en eenvoudigere concurrent-commit resolutie. Deelnemers verbinden met de coördinator via kortstondige sleutels, zodat de coördinator de groep-ID en de timing van commit-verkeer leert, maar niet welke lange-termijn pubkeys leden zijn. Elke partij die relays bevraagt voor een Marmot-groep kan al hetzelfde oppervlak zien: groepsactiviteit per groep-ID, met timing afleidbaar uit event-aankomst. Cordn erkent ook dat &amp;ldquo;availability trust remains&amp;rdquo; met self-hosting: een self-hosted coördinator vermijdt de operator-laag centralisatiezorg maar introduceert een single point of failure voor groepliveness. Marmot vermijdt dat single point door ordening aan MLS zelf over te laten (epochs en Commit-berichten verzorgen ordening binnen het protocol) en Welcome events te distribueren via &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrap, ten koste van admin-side discipline: admins moeten wachten op relay-bevestiging van een Commit voordat ze de bijpassende Welcome verzenden, en clients moeten concurrent commits reconcileren wanneer relay-levering wedloopt met een state-transitie.&lt;/p>
&lt;p>Het contrast is de moeite waard om aan te trekken voor elk team dat een privé-berichten-stack kiest. Marmot ruilt enige implementatiecomplexiteit voor een relay-agnostische deployment zonder een bevoorrechte actor in het pad. Cordn ruilt een single-point availability afhankelijkheid voor strakkere ordening en een eenvoudiger operationeel model. Beide projecten bouwen op &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a> en gebruiken Nostr als identiteits- en transportlaag. De onenigheid gaat over waar de coördinatiekosten leven. De cordn-msg repos tonen een gestage commit-cadans met de coördinator-service geïmplementeerd via ContextVM en de MLS-laag gebouwd op &lt;code>ts-mls&lt;/code>.&lt;/p>
&lt;h3 id="deepmarks-nip-b0-bookmarks-met-curator-gemonetariseerde-publicatie">deepmarks: NIP-B0 bookmarks met curator-gemonetariseerde publicatie&lt;/h3>
&lt;p>&lt;a href="https://github.com/ostermayer/deepmarks-public">deepmarks-public&lt;/a> is een referentieclient voor de voorgestelde &lt;a href="https://nostrcompass.org/nl/topics/nip-b0/">NIP-B0&lt;/a> bookmark-spec (kind 39701), met een drie-doos architectuur (curator, indexer, viewer) en een tier-systeem gefinancierd door direct-to-curator &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zaps. De client implementeert NIP-B0, &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>, NIP-57, &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-98/">NIP-98&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> en Blossom BUD-01 en BUD-04 voor bestandsopslag. Een 21.000-sat lifetime tier zet betalende lezers om in terugkerende zap-ontvangers voor de curator. De curator publiceert bookmark events, de indexer verrijkt ze met machine-leesbare metadata en de viewer rendert de feed; elke rol is een aparte deploybare service.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="amber-v610-ga-versleutelde-per-account-back-up">Amber v6.1.0 GA: versleutelde per-account back-up&lt;/h3>
&lt;p>&lt;strong>Amber&lt;/strong> ging deze week van &lt;code>v6.1.0-pre3&lt;/code> naar GA &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0">v6.1.0&lt;/a>. &lt;a href="https://github.com/greenart7c3/Amber/pull/444">PR #444&lt;/a> levert versleutelde back-up en herstel voor de application permission database, en &lt;a href="https://github.com/greenart7c3/Amber/pull/446">PR #446&lt;/a> splitst de back-up per account, zodat gebruikers met meerdere Nostr-identiteiten elke set app-grants onafhankelijk kunnen back-uppen en herstellen. Het PSBT signing-werk van vorige week is opgenomen in de GA-cut.&lt;/p>
&lt;h3 id="citrine-per-relay-abonnementen-en-onion-url-lekpreventie">Citrine: per-relay abonnementen en onion-URL lekpreventie&lt;/h3>
&lt;p>&lt;strong>Citrine&lt;/strong>, de on-device personal relay die meegeleverd wordt met Amethyst, leverde deze cyclus twee fixes. &lt;a href="https://github.com/greenart7c3/Citrine/pull/157">PR #157&lt;/a> schakelt over van één globaal abonnement naar per-relay getagde abonnementen, zodat twee bron-relays die een &lt;code>kinds: [1]&lt;/code> filter delen niet langer botsen aan de aggregator-kant. &lt;a href="https://github.com/greenart7c3/Citrine/pull/162">PR #162&lt;/a> filtert onion relay-URLs wanneer de uitgaande Tor-proxy is uitgeschakeld, waarmee wordt voorkomen dat onion-adressen op het clearnet-routeringspad lekken.&lt;/p>
&lt;h3 id="angor-v0227-en-v0228-relay-betrouwbaarheid-en-boltz-reconnect">Angor v0.2.27 en v0.2.28: relay-betrouwbaarheid en Boltz reconnect&lt;/h3>
&lt;p>&lt;strong>Angor&lt;/strong> leverde &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.27">v0.2.27&lt;/a> en &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.28">v0.2.28&lt;/a>. &lt;a href="https://github.com/block-core/angor/pull/874">PR #874&lt;/a> verhelpt een relay-dedup bug waarbij slechts één relay tegelijk was verbonden, een regressie die stilletjes de betrouwbaarheid degradeerde voor projecten met meerdere relay endpoints. &lt;a href="https://github.com/block-core/angor/pull/876">PR #876&lt;/a> voegt WebSocket reconnect-logica toe voor Boltz submarine-swap monitoring, zodat een korte disconnect niet langer een swap in onbekende status laat.&lt;/p>
&lt;h3 id="nostrord-v110-nip-57-zaps-en-nip-29-role-onderscheid">Nostrord v1.1.0: NIP-57 zaps en NIP-29 role-onderscheid&lt;/h3>
&lt;p>&lt;strong>Nostrord&lt;/strong> bracht &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.1.0">v1.1.0&lt;/a> uit met &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> Lightning zap-ondersteuning voor berichten en profielen (&lt;a href="https://github.com/nostrord/nostrord/pull/98">PR #98&lt;/a>) en een correct onderscheid in de activity feed tussen &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> rolwijzigingen en member adds (&lt;a href="https://github.com/nostrord/nostrord/pull/92">PR #92&lt;/a>), die eerder identiek renderden en verhulden wie was gepromoveerd versus wie was uitgenodigd.&lt;/p>
&lt;h3 id="ぬるぬる-v15x-sqlcipher-mls-keystore-en-epoch-catch-up">ぬるぬる v1.5.x: SQLCipher MLS keystore en epoch catch-up&lt;/h3>
&lt;p>&lt;strong>ぬるぬる&lt;/strong> (nurunuru, door tami1A84), een Japans-talige Nostr-client die MLS groepsberichten (kind 443) implementeert naast NIP-44, NIP-50 advanced search, NIP-55 en NIP-70, leverde deze week vijf releases. &lt;a href="https://github.com/tami1A84/null--nostr/pull/184">PR #184&lt;/a> introduceert SQLCipher-versleuteling voor de MLS keystore in de rust-engine laag. &lt;a href="https://github.com/tami1A84/null--nostr/pull/187">PR #187&lt;/a> en &lt;a href="https://github.com/tami1A84/null--nostr/pull/188">PR #188&lt;/a> breiden SQLCipher uit naar respectievelijk Android en iOS, met een legacy-plaintext purge-stap en CI-guards. &lt;a href="https://github.com/tami1A84/null--nostr/pull/189">PR #189&lt;/a> en &lt;a href="https://github.com/tami1A84/null--nostr/pull/191">PR #191&lt;/a> voegen MLS peer-epoch catch-up toe met een replay cache en een herstelbanner op beide platforms, zodat een client die achterloopt op group commits kan herstellen zonder de conversatie te verliezen. ぬるぬる is een Marmot-client gebouwd op &lt;code>mdk-core&lt;/code>, &lt;code>mdk-sqlite-storage&lt;/code> en &lt;code>mdk-storage-traits&lt;/code> van &lt;code>marmot-protocol/mdk&lt;/code>, zodat het SQLCipher en epoch catch-up werk landt binnen dezelfde MDK-runtime die White Noise gebruikt.&lt;/p>
&lt;h3 id="bitcredit-core-v0510-nostr-geworteld-block-propagatie-fix">Bitcredit Core v0.5.10: Nostr-geworteld block propagatie-fix&lt;/h3>
&lt;p>&lt;strong>Bitcredit Core&lt;/strong> bracht &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.10">v0.5.10&lt;/a> uit met een fix voor een ontbrekend Nostr-node-id veld tijdens block propagatie, wat company-creation flows die identity upload bevatten brak. Bitcredit is een e-bill protocol dat Nostr-identiteiten gebruikt als vertrouwenswortel voor company- en bill propagatie-events.&lt;/p>
&lt;h2 id="onuitgebrachte-wijzigingen">Onuitgebrachte wijzigingen&lt;/h2>
&lt;p>&lt;strong>Jumble&lt;/strong> opende &lt;a href="https://github.com/CodyTseng/jumble/pull/797">PR #797&lt;/a> voor Google-login via de Pomegranate threshold signer, waarmee een gebruiker zijn Nostr-sleutel over meerdere partijen kan splitsen zodat geen enkele signer het volledige geheim in handen heeft. Dit is een betekenisvolle stap voorbij bunker of nsec-import flows: een gebruiker kan zijn account herstellen zelfs als één signer-partij is gecompromitteerd, zonder dat die partij ooit de volledige private key in handen heeft gehad.&lt;/p>
&lt;p>&lt;strong>Shopstr&lt;/strong> opende &lt;a href="https://github.com/shopstr-eng/shopstr/pull/492">PR #492&lt;/a> waarmee een MCP (Model Context Protocol) server wordt geïnitialiseerd, met &lt;a href="https://github.com/shopstr-eng/shopstr/pull/494">PR #494&lt;/a> die de ondersteunende infrastructuur bouwt (relay fetch, parsers, validatie, errors, dedup, audit logging) en &lt;a href="https://github.com/shopstr-eng/shopstr/pull/472">PR #472&lt;/a> die een relay allowlist toevoegt voor de MCP relay manager. Dit maakt Shopstr de eerste Nostr-marktplaats die zichzelf blootstelt als MCP-server, zodat AI-agents NIP-99 listings kunnen doorbladeren en erop kunnen handelen als een gestructureerde tool.&lt;/p>
&lt;p>&lt;strong>Keydex&lt;/strong>, de Shamir-secret-sharing vault, opende een substantiële migratie in &lt;a href="https://github.com/mplorentz/keydex/pull/226">PR #226&lt;/a> waarbij custom kinds 1337-1345 worden verplaatst naar het 713-721 bereik, naast &lt;a href="https://github.com/mplorentz/keydex/pull/239">PR #239&lt;/a> die AEAD over Shamir shares toevoegt en &lt;a href="https://github.com/mplorentz/keydex/pull/234">PR #234&lt;/a> die migreert naar GF256 arithmetic. De kind-range migratie stemt Keydex af op de manier waarop de NIPs repo custom kinds toewijst, wegbewegend van een zelf-geclaimd bereik.&lt;/p>
&lt;p>&lt;strong>Mill&lt;/strong> (&lt;a href="https://github.com/0ceanSlim/nostr-mill">nostr-mill&lt;/a>) is een nieuwe drop-in Nostr signer UI van &lt;a href="https://github.com/0ceanSlim">OceanSlim&lt;/a> (maintainer van de &lt;a href="https://github.com/0ceanSlim/grain">grain&lt;/a> Go relay), geleverd als één-script-tag Web Component op &lt;a href="https://www.npmjs.com/package/nostr-mill">npm&lt;/a> en &lt;a href="https://cdn.jsdelivr.net/npm/nostr-mill/dist/mill.umd.js">jsDelivr&lt;/a>. Één &lt;code>&amp;lt;script&amp;gt;&lt;/code> tag geeft een web-app alle zes gebruikelijke signer-ingangen achter een uniforme UI: &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> browser-extensie, &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> bunker (URL plakken of QR-koppeling met door de gebruiker specificeerbare relays, ongebruikelijk onder in-page bunker-integraties), &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> Amber via Android intents, versleutelde nsec opgeslagen in &lt;code>sessionStorage&lt;/code> via AES-256-GCM met PBKDF2, alleen-lezen &lt;code>npub&lt;/code> en in-browser keypair-generatie. De component is themeable via 29 CSS custom properties scoped naar de Shadow DOM en biedt een kleine SemVer-getrackte API (&lt;code>MILL.open&lt;/code>, &lt;code>mill:connected&lt;/code> / &lt;code>mill:disconnected&lt;/code> events, named theme exports). De motivatie van de maintainer is dat bunker login-flows één webapp tegelijk over Nostr opnieuw zijn geïmplementeerd. Consolideren op een gedeelde component laat clients convergeren op hoe signer UX zich moet gedragen en verandert optionele flows (zoals delegated-key login via threshold signers, spiegel van Wisp&amp;rsquo;s Pomegranate-gebaseerde Google login hierboven behandeld) in een herbruikbaar oppervlak dat elke app kan invoegen. Mill staat op npm v1.5.0, single-maintainer, alpha-stage, met grain als de geplande eerste integrator.&lt;/p>
&lt;p>&lt;strong>moStard&lt;/strong>, een Monero-first fork van &lt;a href="https://github.com/hzrd149/nostrudel">noStrudel&lt;/a> door &lt;a href="https://github.com/roguehashrate">roguehashrate&lt;/a>, bereikte deze week &lt;a href="https://github.com/roguehashrate/moStard/releases">v1.0.1&lt;/a> met een uitgeklede feature-set en een Monero-thema identiteit gelaagd op dezelfde Applesauce + worker-relay stack. Het werk van deze week bracht rendering voor Zapstore&amp;rsquo;s kind 32267 software-application events (embed cards in de timeline die app-naam, icoon, screenshots, platform, licentie en een launch-link naar &lt;code>zapstore.dev/apps/&amp;lt;d-tag&amp;gt;&lt;/code> tonen), polls via kind 20 en kind 21, NIP-A3 Payment Targets-gebaseerd tippen met per-methode QR-codes, markdown-rendering in notes, GIF picker-ondersteuning voor externe GIF-toetsenborden en Amber signer pairing-fixes. Monero-framing strekt zich uit tot de tip-flow: NIP-A3 &lt;code>payto&lt;/code> entries voor &lt;code>monero&lt;/code> adressen krijgen first-class knoppen in dezelfde UI naast &lt;code>lightning&lt;/code> en &lt;code>bitcoin&lt;/code>. De client is single-maintainer en alpha-stage, maar het werk van 27 mei toont een bouwer die NIP-A3 uit de protocol-spec aankondigingen van deze week rechtstreeks in een shipping fork trekt binnen dagen.&lt;/p>
&lt;h2 id="nip-updates-en-protocol-spec-werk">NIP-updates en protocol-spec werk&lt;/h2>
&lt;h3 id="calendar-nip-stack-vier-voorstellen-van-het-formstr-team">Calendar NIP-stack: vier voorstellen van het Formstr-team&lt;/h3>
&lt;p>Ix2 (&lt;a href="https://github.com/geralt-debugs">@geralt-debugs&lt;/a>) opende vier gecoördineerde NIP PRs op 17 mei, allemaal verwijzend naar de &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a> implementatie die al onder dezelfde auteur draait. &lt;a href="https://github.com/nostr-protocol/nips/pull/2350">PR #2350&lt;/a> stelt kind 84 voor als een gegeneraliseerd &amp;ldquo;participant self-removal&amp;rdquo; event: een getagde deelnemer op elk event kan een kind 84 publiceren die verwijst naar het origineel via &lt;code>e&lt;/code>, &lt;code>a&lt;/code> en &lt;code>k&lt;/code> tags om opt-out te signaleren. Relays moeten valideren dat de kind 84 signer voorkomt in een &lt;code>p&lt;/code> tag van het verwezen event voordat verwijdering wordt gehonoreerd, en een kind 5 deletion heeft altijd voorrang. De PR generaliseert een patroon dat eerder alleen werd beschreven binnen de NIP-52 calendar-context, zodat kind 84 de standaardmanier wordt voor niet-auteurs om zich terug te trekken uit elk participant-event.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> is de basis van de calendar-stack: NIP-52E voor private calendar events (kinds 32678 time-based, 32681 day-event, 32123 private calendar list, 31926 busy list, 1052 gift wrap, 52 rumor) en NIP-52R voor terugkerende events. In de architecturale kern zit het view-key patroon: een willekeurig gegenereerd keypair versleutelt event content met NIP-44, en de geheime helft (bech32-gecodeerd als &lt;code>nsec&lt;/code>) wordt gift-wrapped naar elke deelnemer. De signer bezit alleen de publieke &lt;code>d&lt;/code> tag; al het andere leeft in versleutelde &lt;code>content&lt;/code>. Het ontkoppelen van content-versleuteling van identiteit op deze manier betekent dat het bewerken van een event geen re-keying van ontvangers vereist. NIP-52R definieert twee optionele tags op bestaande kinds 31923 en 31922 om herhaling te declareren met behulp van kale RFC 5545 RRULE-waarden, waarbij &lt;code>D&lt;/code> day-index optioneel wordt wanneer RRULE aanwezig is. Forward secrecy is expliciet afwezig: een gelekte view key onthult alle vorige en toekomstige versies van het event onder dezelfde &lt;code>d&lt;/code> tag.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2352">PR #2352&lt;/a> bouwt voort op NIP-52E met een gedecentraliseerde appointment-scheduling spec die de PR-beschrijving &amp;ldquo;a drop-in alternative to Calendly/Cal.com with no central intermediary&amp;rdquo; noemt. Kind 31927 adverteert een scheduling-pagina met versleutelde beschikbaarheidsvensters; kind 32680 is een host-side self-encrypted recovery record voor de view key; kinds 1057 en 1058 zijn de gift-wrapped booking request en response. Het slimme mechanisme: de booker genereert zowel de &lt;code>d&lt;/code> tag als de view key voor het toekomstige private event voordat het verzoek wordt verzonden, zodat de booker de afspraak onmiddellijk aan zijn eigen kalender kan toevoegen met de juiste key, en de host hoeft nooit een key terug te round-trippen. Booking responses dragen een niet-versleutelde &lt;code>status&lt;/code> tag op de outer wrap zodat relays kunnen filteren zonder te ontsleutelen.&lt;/p>
&lt;p>Een referentie-implementatie is al live op &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a> en als de Calendar Android-app op Zapstore. &lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> sluit &lt;a href="https://github.com/nostr-protocol/nips/pull/2027">PR #2027&lt;/a> ten gunste ervan, waarmee een eerder privé-calendar voorstel dat sinds het begin van het jaar openstond wordt geconsolideerd.&lt;/p>
&lt;h3 id="payment-targets-en-silent-payments">Payment Targets en Silent Payments&lt;/h3>
&lt;p>Nog twee NIP-voorstellen circuleerden deze week in &lt;code>kind:30023&lt;/code> long-form documenten.&lt;/p>
&lt;p>Een &lt;strong>Payment Targets&lt;/strong> voorstel (NIP-A3 / payto) definieert een replaceable kind 10133 event dat één of meer &lt;code>[&amp;quot;payto&amp;quot;, &amp;quot;&amp;lt;type&amp;gt;&amp;quot;, &amp;quot;&amp;lt;authority&amp;gt;&amp;quot;]&lt;/code> tags draagt die mappen naar RFC 8905 &lt;code>payto:&lt;/code> URIs. Ondersteunde types zijn onder meer bitcoin, lightning, ethereum, monero, nano, cashme, revolut en venmo. De bedoeling is om een multi-rail tip jar te standaardiseren die lud16-gebaseerde NIP-57 zaps aanvult (niet vervangt). Amethyst v1.11.0 is de eerste implementer; gemergde PRs &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2953">#2953&lt;/a> en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3009">#3009&lt;/a> leveren het abonnements- en observatie-oppervlak, en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3011">PR #3011&lt;/a> sluit de UI voor &lt;code>PaymentTargetsEvent&lt;/code> aan.&lt;/p>
&lt;p>Twee concurrerende Silent Payments-voorstellen kwamen van verschillende auteurs. De eerste variant leidt BIP-352 silent-payment scan- en spendsleutels af van &lt;code>nsec&lt;/code> via publieke additieve tweaks, zodat elke verzender een &lt;code>sp1q...&lt;/code> adres kan construeren vanuit een &lt;code>npub&lt;/code> zonder setup. De auteurwaarschuwing is expliciet in de spec: &amp;ldquo;bscan and bspend MUST be treated with exactly the same care as nsec,&amp;rdquo; omdat de scan-key de nsec onthult. Een tweede variant neemt de omgekeerde benadering en voegt een &lt;code>sp_address&lt;/code> veld toe aan kind 0 profielmetadata dat een standaard BIP-352 silent-payment adres bevat waarvan de sleutels onafhankelijk worden gehouden van de Nostr-identiteit. Variant twee is structureel veiliger. Beide voorstellen trokken een doordachte reviewthread aan; erskingardner (Marmot-lead) plaatste een gedetailleerde &lt;a href="https://gist.github.com/trbouma/77648ebe1005b181b67d1c4b42c7f31d?permalink_comment_id=6167489#gistcomment-6167489">opmerking&lt;/a> op de trbouma gist die het voorstel volgt. Zijn centrale zorg is dat variant 1 de scan private key afleidt van &lt;code>nsec&lt;/code> plus een publiek berekenbare tweak, wat betekent dat iedereen die de scan key houdt (inclusief een derde-partij scanning-service waaraan de gebruiker in de praktijk moet delegeren) de volledige &lt;code>nsec&lt;/code> kan herstellen door die tweak af te trekken. Dezelfde key die een remote service inkomende betalingen voor je laat scannen, laat die service ook je identiteit en alle daaruit afgeleide fondsen stelen.&lt;/p>
&lt;p>Aan de NIP-34 git-over-Nostr kant publiceerde hzrd149 2 patches op &lt;a href="https://gitworkshop.dev/npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5/relay.ngit.dev/schemata">schemata&lt;/a>. &lt;a href="https://gitworkshop.dev/">gitworkshop.dev&lt;/a> zelf trok twee issue-reports: één die aangaf dat login-sessies verloren gaan bij page refresh bij gebruik van een NIP-46 remote signer, de andere die vroeg om onderscheidende link-styling in README previews.&lt;/p>
&lt;h2 id="zes-jaren-nostr-mei-maanden">Zes jaren Nostr mei-maanden&lt;/h2>
&lt;p>De laatste newsletter van mei 2026 stapt terug van de releases van de week om de maand mei door Nostr&amp;rsquo;s geschiedenis te lopen. Elk jaar had een ander zwaartepunt: 2021 was een enkele commit, 2022 was de vorming van de NIPs-repo zelf, 2023 was de protocol-spec explosie, 2024 was de consolidatiecyclus, 2025 was toen negentropy werd gemerged en Damus&amp;rsquo;s Notedeck graduated naar Beta, en 2026 is de maand die in dit en de drie vorige nummers wordt behandeld.&lt;/p>
&lt;h3 id="mei-2021">Mei 2021&lt;/h3>
&lt;p>Nostr was zes maanden oud. De enige Nostr-code leefde in &lt;a href="https://github.com/fiatjaf/nostr">fiatjaf/nostr&lt;/a> en de hele maand produceerde precies één commit, maar die commit werd één van de meest gebruikte delen van het protocol. Op 22 mei &lt;a href="https://github.com/fiatjaf/nostr/commit/9ee3a02">herbestemde fiatjaf NIP-02&lt;/a> als de contact list NIP. Het commit-bericht luidt: &amp;ldquo;repurpose NIP-02 and add NIP authorship,&amp;rdquo; en de expliciete credit gaat naar &lt;a href="https://github.com/nostr-protocol/nostr/pull/16">PR #16&lt;/a> door arcbtc (Ben Arc van LNbits), geopend op 9 februari en gesloten de dag voordat fiatjaf het idee opnam in NIP-02. arcbtc&amp;rsquo;s pitch was klein: een kind voor &amp;ldquo;sending follower list to relays&amp;rdquo; dat &amp;ldquo;useful for restoring accounts and recommending public keys to follow&amp;rdquo; zou zijn. fiatjaf generaliseerde het tot één &lt;code>kind:3&lt;/code> event waarvan de tags drie doelen tegelijk dienen. Ze zijn een follow-lijst (de sociale graaf), een petname-opslag (lokale bijnamen voor vrienden) en een relay-aanbevelingsbron (welke relays een follow gebruikt). Hetzelfde event, replaceable per auteur, werd het canonieke antwoord op &amp;ldquo;wie volgt deze persoon,&amp;rdquo; &amp;ldquo;hoe noemen ze ze&amp;rdquo; en &amp;ldquo;waar lezen ze.&amp;rdquo; Elke client die in de volgende vijf jaar werd gebouwd leest &lt;code>kind:3&lt;/code>. De conventie toegevoegd in dezelfde commit, dat elke NIP zijn auteur noemt, is de reden dat elke spec nu bylines heeft.&lt;/p>
&lt;h3 id="mei-2022">Mei 2022&lt;/h3>
&lt;p>De maand waarin de NIPs-repo een community-project werd. Op 1 mei &lt;a href="https://github.com/nostr-protocol/nips/commit/f25c7e6">migreerde fiatjaf de specs&lt;/a> van &lt;code>fiatjaf/nostr&lt;/code> naar een dedicated &lt;a href="https://github.com/nostr-protocol/nips">&lt;code>nostr-protocol/nips&lt;/code>&lt;/a> repo en op 2 mei voegde hij &lt;a href="https://github.com/nostr-protocol/nips/commit/c053670">formele acceptatiecriteria&lt;/a> toe. Twee dagen later opende Robert C. Martin (Uncle Bob) &lt;a href="https://github.com/nostr-protocol/nips/pull/1">PR #1&lt;/a>, de eerste externe pull request, waarin threading-conventies voor &lt;code>e&lt;/code> en &lt;code>p&lt;/code> tags werden voorgesteld. De PR was oorspronkelijk genummerd NIP-13, vervolgens &lt;a href="https://github.com/nostr-protocol/nips/commit/bd4a81a">hernoemd naar NIP-10&lt;/a> om ruimte te maken voor proof-of-work. Drie van de eerste zes NIPs zijn van Uncle Bob: NIP-10 (threading markers), NIP-14 (&lt;a href="https://github.com/nostr-protocol/nips/commit/ebacbcc">de Subject tag&lt;/a>) en de commit van 21 mei die &lt;a href="https://github.com/nostr-protocol/nips/commit/e22ea1a">&lt;code>kind:1&lt;/code> vastlegde als de canonieke short text-note kind&lt;/a>. Op 5 mei maakte William Casarin zijn eerste NIP-commits: &lt;a href="https://github.com/nostr-protocol/nips/commit/d7a4aad">NIP-13 Proof of Work&lt;/a> en het &lt;a href="https://github.com/nostr-protocol/nips/commit/ad1eb96">kind:2 recommend-relay event&lt;/a>. De volgende dag publiceerde fiatjaf &lt;a href="https://github.com/nostr-protocol/nips/commit/37eb53e">NIP-07 &lt;code>window.nostr&lt;/code>&lt;/a>, twintig regels markdown die de browser-extensie signer-interface definieerden die vandaag nog wordt gebruikt. NIP-05&amp;rsquo;s &lt;a href="https://github.com/nostr-protocol/nips/commit/57b86d2">CORS-waarschuwing&lt;/a> door David A. Harding en NIP-01&amp;rsquo;s &lt;a href="https://github.com/nostr-protocol/nips/commit/a4aea53">&lt;code>filter.limit&lt;/code>&lt;/a> landden dezelfde week. nostr-tools leverde zijn &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/dc489bf">eerste browser-importable ESM build&lt;/a> op 8 mei. Semisol schreef aan het einde van de maand &lt;a href="https://github.com/nostr-protocol/nips/commit/a787093">NIP-15 (End Of Stored Events)&lt;/a> en &lt;a href="https://github.com/nostr-protocol/nips/commit/62fde6c">NIP-16 (event kind ranges)&lt;/a>, de documenten die nog steeds relay-syncsemantiek en de regelmatig-vs-replaceable-vs-ephemeral classificatie regeren.&lt;/p>
&lt;h3 id="mei-2023">Mei 2023&lt;/h3>
&lt;p>De protocol-spec explosie. Vierenzestig NIP PRs werden die maand geopend, met meerdere van de voorstellen die Nostr&amp;rsquo;s oppervlaktegebied voor de volgende twee jaar definieerden allemaal landend in 31 dagen, en de grootste financieringsaankondiging die Nostr ooit had ontvangen landde op 4 mei met de OpenSats &lt;a href="https://opensats.org/blog/opensats-receives-additional-funding-of-dollar10m-from-startsmall">$10 million grant van Jack Dorsey&amp;rsquo;s #startsmall&lt;/a>, het geld dat elke Nostr-grant golf sindsdien heeft ondersteund. NIP-47 (Nostr Wallet Connect) werd &lt;a href="https://github.com/nostr-protocol/nips/pull/406">gemerged op 2 mei&lt;/a>, waarmee Alby&amp;rsquo;s wallet-connect spec in het hoofdprotocol werd gebracht. Twee dagen later &lt;a href="https://github.com/nostr-protocol/nips/pull/498">stelde Vitor Pamplona NIP-53 Live Activities voor&lt;/a> met &lt;code>kind:30311&lt;/code> rooms en &lt;code>kind:1311&lt;/code> chat-berichten, de basis voor elk Nostr livestreaming-oppervlak dat volgde. Pablo Fernandez opende &lt;a href="https://github.com/nostr-protocol/nips/pull/501">NIP-84 Highlights&lt;/a> op 5 mei en &lt;a href="https://github.com/nostr-protocol/nips/pull/530">NIP-89 Recommended Application Handlers&lt;/a> op 14 mei. v0l (Kieran Babich, Snort-auteur) stelde &lt;a href="https://github.com/nostr-protocol/nips/commit/29f26e7">NIP-98 HTTP Auth&lt;/a> voor op 8 mei, het authenticatieprimitief waar NIP-96 en Blossom later beide op vertrouwden. Jonathan Staab stelde &lt;a href="https://github.com/nostr-protocol/nips/pull/532">NIP-32 Labels&lt;/a> voor op 15 mei, en &lt;a href="https://github.com/nostr-protocol/nips/pull/484">NIP-30 Custom Emoji&lt;/a> werd dezelfde dag gemerged. Arthur Franca stelde &lt;a href="https://github.com/nostr-protocol/nips/pull/547">NIP-96 HTTP File Storage Integration&lt;/a> voor op 21 mei. Twee dagen later voegde Vitor &lt;a href="https://github.com/nostr-protocol/nips/commit/e4937be">zap splits toe aan NIP-57&lt;/a> en voegde verbiricha &lt;a href="https://github.com/nostr-protocol/nips/commit/0495931">&lt;code>kind:30024&lt;/code> long-form drafts toe aan NIP-23&lt;/a>, de spec die de basis werd voor moderne Nostr long-form auteurworkflows in Habla, YakiHonne en Highlighter. fiatjaf stelde &lt;a href="https://github.com/nostr-protocol/nips/pull/566">NIP-29 Simple Groups&lt;/a> voor op 28 mei, de eerste relay-managed group-spec die &lt;code>kind:9000&lt;/code> tot en met &lt;code>kind:9020&lt;/code> moderatie-events dekt. De maand eindigde met Paul Miller die &lt;a href="https://github.com/nostr-protocol/nips/pull/574">de NIP-44 conversatie&lt;/a> opende op 31 mei, een XChaCha20-gebaseerd versleuteld DM-ontwerp bedoeld om NIP-04 te vervangen. De client-kant bewoog net zo snel: Damus leverde NWC, zap pool en Pending Zaps over &lt;a href="https://github.com/damus-io/damus/commits/master/?since=2023-05-10&amp;amp;until=2023-05-15">10 mei tot en met 15 mei&lt;/a>; Snort lanceerde &lt;a href="https://github.com/v0l/snort/commit/6cbc3ae">zap pool&lt;/a> en &lt;a href="https://github.com/v0l/snort/commit/d5032d6">L402 paywalled media&lt;/a>; &lt;a href="https://github.com/vitorpamplona/amethyst/releases">Amethyst&lt;/a> leverde gedurende de maand ongeveer dertig versioned releases, van v0.40.1 op 1 mei tot het v0.55.x bereik aan het einde van de maand, met zap splits in v0.45.0 en NIP-32 labels in v0.46.0; de &lt;a href="https://github.com/PrimalHQ/primal-android-app/commit/6654cf9">Primal Android repo&lt;/a> werd aangemaakt op 16 mei; &lt;a href="https://github.com/rust-nostr/nostr/releases/tag/v0.22.0">rust-nostr v0.22.0&lt;/a> voegde NIP-47 en NIP-58 toe. Op 1 mei &lt;a href="https://github.com/hoytech/strfry/commit/de475c5">leverde strfry zijn negentropy-integratie&lt;/a>, de eerste relay-implementatie van Doug Hoyte&amp;rsquo;s set-reconciliatieprotocol dat later NIP-77 zou worden. De maand eindigde met &lt;a href="https://www.forbes.com/sites/digital-assets/2023/05/30/bitcoin-social-network-nostr-creator-fiatjaf-/">Forbes die op 30 mei een lange profiel van fiatjaf publiceerde&lt;/a>, één van de eerste mainstream-pers deep dives over Nostr&amp;rsquo;s anonieme oprichter.&lt;/p>
&lt;h3 id="mei-2024">Mei 2024&lt;/h3>
&lt;p>De consolidatiecyclus. Minder flitsende voorstellen, meer leveringen. &lt;a href="https://github.com/nostr-protocol/nips/pull/787">NIP-54 Decentralized Wikis&lt;/a> werd gemerged op 2 mei met &lt;code>kind:30818&lt;/code> articles en case-normalized &lt;code>d&lt;/code> tags. Drie dagen later werd &lt;a href="https://github.com/nostr-protocol/nips/pull/1213">NIP-56&lt;/a> uitgebreid zodat abuse reports digitale bedreigingen (malware, phishing) konden markeren naast content-only categorieën. Op 6 mei werden &lt;a href="https://github.com/nostr-protocol/nips/pull/1221">NIP-25 reacties vereenvoudigd&lt;/a> om te stoppen met het opnemen van de hele reply-thread als &lt;code>e&lt;/code>-tags. Arthur Franca &lt;a href="https://github.com/nostr-protocol/nips/pull/1233">stelde NIP-22 Comment voor&lt;/a> op 12 mei, waarbij &lt;code>kind:1111&lt;/code> werd geïntroduceerd zodat antwoorden op niet-&lt;code>kind:1&lt;/code> events (articles, files, products) een gestructureerde manier krijgen om te threaden. Op 19 mei &lt;a href="https://github.com/nostr-protocol/nips/pull/1248">herzag fiatjaf NIP-46&lt;/a> om NIP-04 volledig te verlaten en al het bunker-verkeer om te schakelen naar NIP-44 versleuteling, de deprecatiebeweging die elke bunker-implementatie sindsdien vormgaf. Op 20 mei werd &lt;a href="https://github.com/nostr-protocol/nips/pull/923">NIP-71 Video Events&lt;/a> gemerged met &lt;code>kind:21&lt;/code> en &lt;code>kind:22&lt;/code>, en &lt;a href="https://github.com/nostr-protocol/nips/pull/1171">NIP-10&lt;/a> voegde het optionele pubkey-argument toe op &lt;code>e&lt;/code> tags zodat clients thread-auteurs kunnen oplossen zonder eerst het verwezen event op te halen. Kieran Walsh&amp;rsquo;s &lt;a href="https://github.com/nostr-protocol/nips/pull/1175">NIP-35 Torrents&lt;/a> werd gemerged op 22 mei, en op 24 mei refereerde de NIPs README voor het eerst naar &lt;a href="https://github.com/nostr-protocol/nips/pull/1251">CIP-01&lt;/a> als een off-repo voorstel, wat het begin signaleerde van het &amp;ldquo;NIPs als één van meerdere voorstelvenues&amp;rdquo; patroon. Op 25 mei verwijderde een &lt;a href="https://github.com/nostr-protocol/nips/pull/1254">cleanup PR&lt;/a> de &lt;code>aes-256-gcm&lt;/code> tag uit NIP-71 voordat downstream-implementaties het bevroren. NIP-96 voegde &lt;a href="https://github.com/nostr-protocol/nips/pull/1262">&lt;code>list files&lt;/code> en dropte de transform-vereiste&lt;/a> op 27 mei. Op 28 mei stelde Jonathan Staab voor om &lt;a href="https://github.com/nostr-protocol/nips/pull/1264">de NIP-acceptatiedrempel te verhogen&lt;/a> door minimaal twee interoperabele implementaties te vereisen voordat een draft kan gradueren. Client-kant: Damus taggede &lt;a href="https://github.com/damus-io/damus/releases/tag/v1.7.2">v1.7.2&lt;/a> en &lt;a href="https://github.com/damus-io/damus/releases/tag/v1.8">v1.8&lt;/a> plus een &lt;a href="https://github.com/damus-io/damus/commits/v1.9">v1.9 met volledige NIP-10 marker-handling&lt;/a> op 9-10 mei, landde &lt;a href="https://github.com/damus-io/damus/commit/8feb228">NIP-98 authenticatie op pushmeldingen&lt;/a> en leverde volledige &lt;a href="https://github.com/damus-io/damus/commit/52aefc8">NIP-10 marker-ondersteuning&lt;/a>. Amethyst maakte &lt;a href="https://github.com/vitorpamplona/amethyst/commit/1f45a63">NIP-17 de standaard DM-modus&lt;/a> op 14 mei, bouwde &lt;a href="https://github.com/vitorpamplona/amethyst/commit/aa97c7e">NIP-65 outbox-model relay management&lt;/a> uit, voegde &lt;a href="https://github.com/vitorpamplona/amethyst/commit/ff94f45">NIP-96 server-selectie&lt;/a> toe en leverde &lt;a href="https://github.com/vitorpamplona/amethyst/commit/04c4490">NIP-06 BIP-32/BIP-39 key derivation&lt;/a>. Primal Android &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/0.99.2">0.99.2&lt;/a> op 10 mei voegde user tagging en externe-wallet NWC toe, gevolgd door &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/0.99.4">0.99.4&lt;/a>. Pablo Fernandez landde een &lt;a href="https://github.com/nostr-dev-kit/ndk/commits/master/?since=2024-05-01&amp;amp;until=2024-06-01">NDK optimistic-update cluster&lt;/a> over 24-31 mei. Snort voegde &lt;a href="https://github.com/v0l/snort/commit/5763d91">NIP-96 server-selectie&lt;/a> toe en cashu-ts &lt;a href="https://github.com/cashubtc/cashu-ts/commit/3e20f45">scheidde zijn crypto-primitieven&lt;/a> in &lt;code>@cashu/crypto&lt;/code>.&lt;/p>
&lt;h3 id="mei-2025">Mei 2025&lt;/h3>
&lt;p>De maand waarin &lt;a href="https://github.com/nostr-protocol/nips/pull/1494">NIP-77 (Negentropy Syncing)&lt;/a> werd gemerged op 27 mei, fiatjaf en Doug Hoyte&amp;rsquo;s spec voor het wire-protocol dat brute-force REQ-filters vervangt door logaritmische-kosten difference-computation. Dit was dezelfde negentropy die strfry twee jaar eerder had geleverd als een relay-side feature, nu geformaliseerd als een client-relay protocol, en &lt;a href="https://github.com/nostr-protocol/nips/pull/1939">de README-entry&lt;/a> landde dezelfde dag. De week ervoor definieerde &lt;a href="https://github.com/nostr-protocol/nips/pull/1897">NIP-23 long-form&lt;/a> hoe HTML-documenten zichzelf associëren met Nostr-entiteiten via een &lt;code>&amp;lt;link&amp;gt;&lt;/code> tag op 24 mei, het canonieke-webkopie primitief. NIP-25 voegde &lt;a href="https://github.com/nostr-protocol/nips/pull/1702">reactie-target relay hints&lt;/a> toe op 22 mei en &lt;a href="https://github.com/nostr-protocol/nips/pull/1486">dropte de emoji-to-like/dislike aanbeveling&lt;/a>, waarbij emoji&amp;rsquo;s als afzonderlijke semantische eenheden werden behandeld. NIP-52 werd &lt;a href="https://github.com/nostr-protocol/nips/pull/1922">vereenvoudigd&lt;/a> op 14 mei om zich te concentreren op de kinds die clients in productie leverden, de trim die de Formstr calendar-uitbreidingen van een jaar later schoner te enten maakte. Op 9 mei kwamen &lt;a href="https://github.com/nostr-protocol/nips/commit/873afc5fb823f58c3b7f29c5090f9c56172623f2">Follow Packs&lt;/a> (kind 39089 gecureerde follow-lijsten) en &lt;a href="https://github.com/nostr-protocol/nips/pull/1848">Favorite Relays&lt;/a> (een nieuwe replaceable-lijst onder NIP-51) op dezelfde dag in de README. De Marmot Protocol-arc was nog niet begonnen: alleen de &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> repo bestond (eerste commit 9 september 2024), en mei 2025 was zijn Svelte+Tauri prototypefase, met de &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/commit/b8e6754">commit van 14 mei&lt;/a> die Tauri-specifieke code verwijderde toen het project overging naar zijn huidige architectuur. De dedicated MDK Rust-core (12 september 2025), de Marmot spec repo (19 september 2025) en de Flutter UI (2 december 2025) kwamen allemaal later in het jaar. Aan de client-kant leverde Damus&amp;rsquo;s &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.4.0">Notedeck v0.4.0&lt;/a> op 5 mei als de eerste Beta, met graduatie van Alpha met full-text search, de Dave AI-assistent, zaps via NWC, GIFs, user tagging en mute lists. Twee dagen later stak hodlbod&amp;rsquo;s &lt;a href="https://github.com/coracle-social/flotilla/releases/tag/1.0.0">Flotilla 1.0.0&lt;/a> de publieke-lanceringsgrens over als een NIP-29-gebaseerde group-chat client, naast &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.12">Coracle 0.6.12&lt;/a>, de eerste van zes Coracle-releases die tot &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.17">0.6.17 op 14 mei&lt;/a> liepen. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v3.4.0">Amber v3.4.0&lt;/a> op 12 mei ging weg van gedeprecieerde Android Autofill en ClipboardManager APIs en migreerde van encrypted shared preferences naar DataStore. Primal Android &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.2.20">2.2.20&lt;/a> op 20 mei voegde de Redeem Code flow voor Primal Premium en een herontworpen image gallery toe. &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.14.0">nak v0.14.0&lt;/a> op 21 mei sneed een minor van de canonieke CLI in dezelfde week als de Coracle-, Flotilla- en Notedeck-releases. OpenSats ontving zijn grootste niet-Bitcoin-treasury donatie tot nu toe toen &lt;a href="https://opensats.org/blog/opensats-receives-two-million-donation-from-the-reynolds-foundation">de Reynolds Foundation $2 miljoen gaf&lt;/a> op 22 mei.&lt;/p>
&lt;h3 id="mei-2026">Mei 2026&lt;/h3>
&lt;p>De maand behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-05-06-newsletter/">Newsletter #21&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-05-13-newsletter/">#22&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-05-21-newsletter/">#23&lt;/a> en dit nummer. De bepalende draad is MLS-op-Nostr die multi-client productie bereikt: &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.8.0">MDK 0.8.0&lt;/a> leverde MIP-05 leaf-index primitieven en adresseerbare key packages, gevolgd door &lt;a href="https://github.com/marmot-protocol/mdk/pull/306">PR #306&lt;/a> die NIP-40 disappearing-message validatie toevoegt over iOS en Android via een gedeeld UniFFI-oppervlak. &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.5.22%2B25">White Noise v2026.5.22+25&lt;/a> leverde iOS-push via een Notification Service Extension die MLS-ciphertext binnen het extensieproces ontsleutelt zodat de broker nooit plaintext ziet, en twee nieuwe Marmot-clients verschenen: &lt;a href="https://github.com/DavidGershony/Scramble">Scramble&lt;/a> (een .NET/Avalonia desktop- en Android-client met multi-device KeyPackage slots) en &lt;a href="https://cordn.net">Cordn&lt;/a> (een alternatieve MLS-architectuur met een per-groep coördinator via ContextVM). Angor migreerde zijn versleutelde berichten van NIP-04 naar NIP-44 in &lt;a href="https://github.com/block-core/angor/pull/860">PR #860&lt;/a>, waarmee de deprecatie-arc werd gesloten die opende met &lt;a href="https://github.com/nostr-protocol/nips/pull/574">Paul Miller&amp;rsquo;s NIP-44 voorstel in mei 2023&lt;/a>. Het Formstr-team opende de grootste gecoördineerde NIP-inzending in recent geheugen op 17 mei, met &lt;a href="https://github.com/nostr-protocol/nips/pull/2350">PR #2350&lt;/a> voor participant self-removal, &lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> voor private calendar events en herhaling (NIP-52E en NIP-52R), en &lt;a href="https://github.com/nostr-protocol/nips/pull/2352">PR #2352&lt;/a> voor gedecentraliseerde appointment-scheduling, allemaal met &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a> die al de referentie-implementatie levert. &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.11.0">Amethyst v1.11.0&lt;/a> renderde NIP-52 kalenders als een first-class timeline categorie en breidde on-chain Bitcoin zaps uit tot split-distributies. Een jaar nadat &lt;a href="https://github.com/nostr-protocol/nips/pull/1494">NIP-77 werd gemerged in mei 2025&lt;/a>, leverden drie onafhankelijke implementaties negentropy-adoptie in hetzelfde venster: &lt;a href="https://github.com/damus-io/notedeck/pull/1459">Notedeck PR #1459&lt;/a> sloot het aan op Damus&amp;rsquo;s desktop-client voor giftwrap en thread-backfill, &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.0">Vector v0.4.0&lt;/a> gebruikte volledige-negentropy MLS sync als onderdeel van zijn fundamentele &lt;code>vector-core&lt;/code> herschrijving naast één-klik Tor en een 21-tool MCP-agentoppervlak, en &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v3.0.0-pre1">Citrine v3.0.0-pre1&lt;/a> voegde het toe aan de Android-native relay naast ingebouwde Tor en multi-relay aggregatie. &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.4">Mostro v0.17.4&lt;/a> sloot de anti-abuse bond lus met Phase 3 slashed-bond uitbetalingen in &lt;a href="https://github.com/MostroP2P/mostro/pull/738">PR #738&lt;/a>, waarmee wordt afgedwongen wat het protocol eerder alleen dreigde. Drie jaar van &amp;ldquo;shall we replace NIP-04&amp;rdquo; naar &amp;ldquo;shall we replace NIP-44 with full MLS group state.&amp;rdquo;&lt;/p>
&lt;hr>
&lt;p>Als je wilt discussiëren, DM ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #23</title><link>https://nostrcompass.org/nl/newsletters/2026-05-21-newsletter/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-05-21-newsletter/</guid><description>&lt;p>Primal 3.5 levert een herbouwde Android-shell, Amethyst voegt onchain Bitcoin zaps toe, White Noise krijgt markdown-rendering en deep links, Keycast passeert een security audit, en AgentNoise laat je lokale AI-coding agents besturen via Marmot-versleutelde chat. Hostr lanceert een P2P huuraccommodatieplatform op Nostr met vier concept-NIPs die listings, reserveringen en EVM-gebaseerde escrow behandelen. Angor migreert versleutelde berichten van NIP-04 naar NIP-44, Dart NDK voegt NIP-77 en een web signer toe, Alby js-sdk v8 levert native NWC multi-relay reconnect, en KeyChat verhelpt een forward secrecy-gat in Signal one-time prekey deletion. Aan de protocolzijde bereikt Mostro&amp;rsquo;s anti-abuse bond fase 2, levert Wisp private replies en gift-wrapped reactions, en raakt een Namecoin NIP-05 implementatiegolf een half dozijn clients in één week.&lt;/p></description><content:encoded>&lt;p>Primal 3.5 levert een herbouwde Android-shell, Amethyst voegt onchain Bitcoin zaps toe, White Noise krijgt markdown-rendering en deep links, Keycast passeert een security audit, en AgentNoise laat je lokale AI-coding agents besturen via Marmot-versleutelde chat. Hostr lanceert een P2P huuraccommodatieplatform op Nostr met vier concept-NIPs die listings, reserveringen en EVM-gebaseerde escrow behandelen. Angor migreert versleutelde berichten van NIP-04 naar NIP-44, Dart NDK voegt NIP-77 en een web signer toe, Alby js-sdk v8 levert native NWC multi-relay reconnect, en KeyChat verhelpt een forward secrecy-gat in Signal one-time prekey deletion. Aan de protocolzijde bereikt Mostro&amp;rsquo;s anti-abuse bond fase 2, levert Wisp private replies en gift-wrapped reactions, en raakt een Namecoin NIP-05 implementatiegolf een half dozijn clients in één week.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="primal-35-voor-android">Primal 3.5 voor Android&lt;/h3>
&lt;p>Primal, de social client ondersteund door zijn eigen caching relay-infrastructuur, bracht deze week &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.5.9">3.5.9&lt;/a> uit met een herbouwde applicatie-shell. Het redesign vervangt de vorige navigatiestructuur door een bijgewerkte lay-out en een nieuw Explore-scherm, waardoor het belangrijkste discovery-oppervlak zijn eigen dedicated home krijgt. De release voegt audio-afspelen toe voor link-previews, zodat audiobestanden ingebed in notes inline afspelen zonder de feed te verlaten. NIP-05 verificatie-badges tonen nu inline op profielen, waardoor identiteitsbevestiging in één oogopslag zichtbaar wordt. Notificatiefiltering kreeg een herziening, waarmee gebruikers kunnen beperken welke event-typen hun notificatielijst bereiken. De editor kreeg betere event-link handling en de onderliggende databaselaag ontving stabiliteitsfixes.&lt;/p>
&lt;h3 id="white-noise-markdown-deep-links-en-audio-metadata">White Noise: markdown, deep links en audio-metadata&lt;/h3>
&lt;p>White Noise, de Marmot-versleutelde groepsberichten-app gebouwd op Nostr en MLS (&lt;a href="https://www.rfc-editor.org/rfc/rfc9420">RFC 9420&lt;/a>), had een van zijn drukste weken tot nu toe over de frontend- en backend-repositories.&lt;/p>
&lt;p>Aan de frontend voegt &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/665">PR #665&lt;/a> volledige markdown-rendering voor chatberichten toe, zodat bold, italic, codeblokken en links nu native renderen in de berichtweergave. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/675">PR #675&lt;/a> activeert de leave-group flow die eerder was geblokkeerd voor niet-laatste admins, en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/661">PR #661&lt;/a> voegt native deep link-ondersteuning toe voor &lt;code>whitenoise://&lt;/code> en &lt;code>whitenoise-staging://&lt;/code> URIs voor gebruikers, chats en instellingen, zonder dat er HTTP redirect-infrastructuur nodig is.&lt;/p>
&lt;p>Aan de backend in whitenoise-rs zorgt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/835">PR #835&lt;/a> ervoor dat key package rotation goed werkt door de &lt;code>d_tag&lt;/code> slot te hergebruiken voor kind:30443 publicaties, waardoor NIP-33 replaceable event-semantiek wordt ingeschakeld zodat opeenvolgende key package rotaties het vorige event op relays vervangen en alleen het huidige key package behouden. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/833">PR #833&lt;/a> breidt &lt;code>FileMetadata&lt;/code> uit met optionele &lt;code>duration_ms&lt;/code> en &lt;code>waveform&lt;/code> velden voor audiobijlagen, gecoördineerd met MDK&amp;rsquo;s &lt;a href="https://github.com/marmot-protocol/mdk/pull/300">PR #300&lt;/a> die dezelfde velden toevoegt aan MIP-04 media-tags. Een nieuwe &lt;code>whitenoise-markdown&lt;/code> crate (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/836">PR #836&lt;/a>) vervangt de vorige nostr-sdk token parser door een dedicated markdown rendering library.&lt;/p>
&lt;p>De Marmot protocolspecificatie zelf ontving een security fix in &lt;a href="https://github.com/marmot-protocol/marmot/pull/68">PR #68&lt;/a>, die een security-probleem sluit door HKDF-SHA256 expliciet te specificeren voor image key derivations in MIP-01, waardoor ambiguïteit die tot implementatiedivergentie kon leiden wordt verwijderd. In MDK saneert &lt;a href="https://github.com/marmot-protocol/mdk/pull/307">PR #307&lt;/a> welcome failure reasons en beperkt de opgeslagen lengte, waarmee een aparte security-bevinding wordt gesloten.&lt;/p>
&lt;h3 id="amethyst-v1100-onchain-bitcoin-zaps">Amethyst v1.10.0: Onchain Bitcoin Zaps&lt;/h3>
&lt;p>Amethyst leverde deze week vier releases, met &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.10.0">v1.10.0&lt;/a> als het hoofdverhaal. De release voegt ondersteuning toe voor NIP-BC onchain Bitcoin zaps, waardoor gebruikers zaps kunnen verzenden, ontvangen en weergeven die direct onchain worden afgewikkeld via Bitcoin-transacties. Eerdere releases in de reeks verhielpen Blossom blob-detectie om niet-conforme bestandsnamen te weigeren (&lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.09.2">v1.09.2&lt;/a>), patchten ProGuard-regels voor desktopbuilds, en mergeden pull request &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2977">#2977&lt;/a> om onchain Bitcoin zappers te tonen als een dedicated ₿ rij in de uitgebreide reactions-galerij. Een in-progress on-chain transactiegeschiedenisscherm met paginering landde in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2974">PR #2974&lt;/a>.&lt;/p>
&lt;h3 id="agentnoise-controleer-coding-agents-via-white-noise">AgentNoise: controleer coding agents via White Noise&lt;/h3>
&lt;p>&lt;a href="https://github.com/nvk/agentnoise">AgentNoise&lt;/a> door nvk is een Rust-native desktop-helper die je een telefoon met White Noise laat gebruiken als besturingsoppervlak voor lokale Codex- en Claude coding agent-sessies. De tool luistert naar een of meer White Noise chats, authenticeert afzenders via een first-pairing PIN-flow en start lokale coding agents via de geconfigureerde launcher. Het verzenden van &lt;code>/claude &amp;lt;prompt&amp;gt;&lt;/code> vanaf je telefoon opent een nieuwe White Noise-werksessie genoemd naar de machine hostname en een korte prompt-samenvatting, en streamt vervolgens voortgangsupdates en eindresultaat terug naar die chat. Het is bewust Rust-first en houdt Node buiten het vertrouwde brugpad. Het project bereikte deze week &lt;a href="https://github.com/nvk/agentnoise/releases/tag/v0.1.24">v0.1.24&lt;/a>, met kortere telefoon-leesbare antwoorden, jobreferenties op korte unieke prefix en een opt-in lokale sessie-watcher. AgentNoise stuurt de &lt;code>wn&lt;/code> en &lt;code>wnd&lt;/code> CLIs van &lt;code>marmot-protocol/whitenoise-rs&lt;/code> aan als subprocessen, zodat het zijn Nostr-transport deelt met de White Noise-client zelf.&lt;/p>
&lt;h3 id="keycast-security-audit-voltooid">Keycast security audit voltooid&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/keycast">Keycast&lt;/a>, de team-georiënteerde NIP-46 remote signing-server die Nostr private keys versleuteld at-rest opslaat in SQLite, voltooide in mei 2026 een security audit. De hardening-pass behandelde auth-, permission-, data-integriteit- en dependency-issues, en de resultaten zijn gedocumenteerd in &lt;a href="https://github.com/marmot-protocol/keycast/blob/master/AUDIT.md">AUDIT.md&lt;/a>. Wijzigingen zijn onder meer: NIP-98 HTTP auth vereist nu precies één &lt;code>u&lt;/code> tag en één &lt;code>method&lt;/code> tag, wijst verouderde timestamps af en valideert &lt;code>payload&lt;/code> hashes; de &lt;code>ALLOWED_PUBKEYS&lt;/code> allowlist wordt exact geparsed en server-side afgedwongen; lege policies gaan nu standaard uit van deny voor sign/encrypt/decrypt verzoeken; foreign-key enforcement is ingeschakeld op SQLite-connecties; en geneste app-routes zoals &lt;code>/teams/:id&lt;/code> worden server-side beschermd. Een SQL-migratie normaliseert oude allowed-kinds permission JSON bij opstart. Het project is nog in een vroeg stadium en de audit vermeldt overgebleven items voordat het kan worden vertrouwd met echte team-keys.&lt;/p>
&lt;h3 id="scramble-marmot-client-voor-desktop-en-android">Scramble: Marmot-client voor desktop en Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/DavidGershony/Scramble">Scramble&lt;/a> (voorheen OpenChat) is een .NET/Avalonia desktop- en Android-client voor het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot Protocol&lt;/a>, die MIPs 00-04 implementeert: KeyPackage publishing (kind:30443), groepsmetadata met de NostrGroupData MLS-extensie, NIP-59 gift-wrapped welcome events (kind:444), ChaCha20-Poly1305 versleutelde berichten (kind:445) en Blossom versleutelde mediabijlagen. Het is volledig interop met White Noise en elke andere Marmot-compatibele client.&lt;/p>
&lt;p>Het project leverde deze week 13 releases, met multi-device-ondersteuning als hoofdfunctie. Elk apparaat genereert een uniek KeyPackage-slot (een &lt;code>d&lt;/code>-tag op kind:30443). Bij opstart haalt Scramble de eigen KeyPackages van de gebruiker op van relays, detecteert peer-device slot-IDs en voegt ze automatisch toe aan bestaande MLS-groepen met behulp van de staged commit-flow. Auto-add is beperkt tot groepen waar de huidige gebruiker admin is; niet-admin-groepen worden overgeslagen met begeleiding om de groepsadmin te vragen. Een forward-secrecy disclosure banner informeert nieuw-gekoppelde apparaten dat oude berichten niet beschikbaar zijn. Een slot-ID reconciliation pass (&lt;code>TryReconcileSlotId&lt;/code>) verwerkt apparaten die vanaf pre-multi-device versies zijn gemigreerd door relay KeyPackage bytes te matchen tegen lokaal keymateriaal om de juiste &lt;code>d&lt;/code>-tag over te nemen. External signer reconnect voor Amber- en NIP-46-gebruikers werd ook verholpen: de &lt;code>IsConnected&lt;/code> guard die &lt;code>ExternalSignerService&lt;/code>&amp;rsquo;s ingebouwde auto-reconnect blokkeerde werd verwijderd op alle negen call sites in &lt;code>NostrService&lt;/code>.&lt;/p>
&lt;h3 id="hostr-p2p-huuraccommodatie-op-nostr">Hostr: P2P huuraccommodatie op Nostr&lt;/h3>
&lt;p>&lt;a href="https://hostr.network">Hostr&lt;/a> (&lt;a href="https://github.com/sudonym-btc/hostr">source&lt;/a>) is een peer-to-peer huuraccommodatieplatform volledig gebouwd op Nostr. Het bestrijkt de volledige Airbnb-achtige flow (zoeken en aanbieden van eigendommen, onderhandelen van reserveringen en afhandelen van betalingen) met behulp van vier concept-NIPs die het project parallel met de applicatie ontwikkelt.&lt;/p>
&lt;p>De accommodation NIP breidt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/99.md">NIP-99&lt;/a> classified listings (kind:30402 actief, kind:30403 concept) uit met accommodatie-specifieke tags voor type (&lt;code>room&lt;/code>, &lt;code>house&lt;/code>, &lt;code>apartment&lt;/code>, &lt;code>villa&lt;/code>, &lt;code>hotel&lt;/code>, &lt;code>hostel&lt;/code>, &lt;code>resort&lt;/code>), check-in/check-out tijden, minimumverblijf en H3 geospatial cel-indexen voor locatie-gebaseerd zoeken op configureerbare precisie. De reservation NIP definieert een volledig onderhandelings- en levenscyclusprotocol: kind:32122 replaceable reservation events dragen een &lt;code>d&lt;/code> trade ID, een listing anchor &lt;code>a&lt;/code> tag en deelnemer &lt;code>p&lt;/code> tags met rollen (&lt;code>buyer&lt;/code>, &lt;code>seller&lt;/code>, &lt;code>escrow&lt;/code>); kind:1327 structured message rumors leveren private negotiate-stage tegenaanbiedingen via NIP-59 gift wraps zodat de onderhandeling buiten publieke relays blijft; kind:1326 append-only transition events creëren een openbaar audit trail zodra een reservering wordt vastgelegd. Koperprivacy wordt behouden via per-trade tijdelijke Nostr-sleutels gebonden aan de werkelijke identiteit van de koper via versleutelde &lt;code>participant_proof&lt;/code> tags. De escrow NIP definieert kind:30303 escrow service advertisements en kind:17388 user trust declarations; de referentie-implementatie gebruikt EVM smart contracts op Rootstock, waarbij &lt;code>contractBytecodeHash&lt;/code> clients in staat stelt te verifiëren dat het gedeployde contract overeenkomt met een bekende gecontroleerde implementatie. De marketplace listing NIP definieert generieke tags gedeeld over alle NIP-99 marktplaatsprofielen, waaronder &lt;code>instantBook&lt;/code>, &lt;code>negotiable&lt;/code>, &lt;code>quantity&lt;/code>, &lt;code>securityDeposit&lt;/code>, &lt;code>cancellationPolicy&lt;/code> en &lt;code>maxDisputePeriod&lt;/code>. Deze week bereidde het project zijn app store-indiening voor en mergde MCP client identity-ondersteuning voor agent-gerichte automatisering.&lt;/p>
&lt;p>Twee nieuwe entries verschenen deze week op het Shakespeare MiniApps-platform: &lt;a href="https://inkpress.shakespeare.wtf">InkPress&lt;/a>, een AI-magazine generator die gestructureerde tijdschriftachtige inhoud publiceert als Nostr events, en &lt;a href="https://pressstr.shakespeare.wtf">PressStr&lt;/a>, een schrijf- en publicatieplatform voor de Soapbox-stack.&lt;/p>
&lt;h2 id="uitgebracht-deze-week">Uitgebracht deze week&lt;/h2>
&lt;h3 id="ngit-v244">ngit v2.4.4&lt;/h3>
&lt;p>&lt;strong>ngit&lt;/strong> bracht &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.4">v2.4.4&lt;/a> uit met de toevoeging van &lt;code>ngit sync --trust-server&lt;/code> (&lt;code>-t&lt;/code>) voor gevallen waarin een git-server fast-forward voor loopt op Nostr-status. Wanneer deze situatie wordt gedetecteerd, rapporteert sync de betrokken refs en vereist de flag om een bijgewerkt state event te ondertekenen en publiceren; een &lt;code>nostr.trust-server-domains&lt;/code> git config-instelling biedt een puntkomma-gescheiden allowlist voor servers die automatisch moeten worden vertrouwd zonder de flag.&lt;/p>
&lt;h3 id="amber-v610-pre3-voegt-psbt-signing-toe">Amber v6.1.0-pre3 voegt PSBT signing toe&lt;/h3>
&lt;p>&lt;strong>Amber&lt;/strong> bracht &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0-pre3">v6.1.0-pre3&lt;/a> uit met verbeterde lay-out voor nieuwe appverbindingen, crashfixes en een select/deselect all optie op het permissions-scherm. &lt;a href="https://github.com/greenart7c3/Amber/pull/438">PR #438&lt;/a> voegt PSBT signing-ondersteuning toe via zowel de Intent-gebaseerde als de NIP-46 relay-gebaseerde paden, waardoor Amber Partially Signed Bitcoin Transactions kan ondertekenen zonder de nsec bloot te stellen aan de aanvragende app.&lt;/p>
&lt;h3 id="wisp-v110-levert-private-replies-en-laat-amber-ondersteuning-vallen">Wisp v1.1.0 levert private replies en laat Amber-ondersteuning vallen&lt;/h3>
&lt;p>&lt;strong>Wisp&lt;/strong> bracht &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.1.0">v1.1.0&lt;/a> uit met private replies via NIP-17 gift wrap (&lt;a href="https://github.com/barrydeen/wisp/pull/540">PR #540&lt;/a>), gift-wrapped reactions en DIP-03 zaps op private replies (&lt;a href="https://github.com/barrydeen/wisp/pull/543">PR #543&lt;/a>), auto-translate voor notes (&lt;a href="https://github.com/barrydeen/wisp/pull/523">PR #523&lt;/a>) en een register-style fiat input op de zap-dialoog. &lt;a href="https://github.com/barrydeen/wisp/pull/541">PR #541&lt;/a> migreert private zaps van een eigen DM-relay plaintext-schema naar DIP-03 met correcte DM-relay routing. Dezelfde release-cyclus verwijderde NIP-55 remote signer-ondersteuning (&lt;a href="https://github.com/barrydeen/wisp/pull/531">PR #531&lt;/a>), waardoor Amber en andere externe signer-integraties werden gedropt, en verwijderde de bundled local relay (&lt;a href="https://github.com/barrydeen/wisp/pull/533">PR #533&lt;/a>). Wisp is een Nostr social client voor Android.&lt;/p>
&lt;h3 id="calendar-by-formstr-v154-verhelpt-gift-wrap-voor-nieuwe-deelnemers">Calendar by Formstr v1.5.4 verhelpt gift wrap voor nieuwe deelnemers&lt;/h3>
&lt;p>&lt;strong>Calendar by Formstr&lt;/strong> bracht &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.5.4">v1.5.4&lt;/a> uit (de laatste in een v1.5.2 → v1.5.4 reeks). &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/160">PR #160&lt;/a> verhelpt een bug waarbij het bewerken van een private calendar event met nieuwe deelnemers het bijgewerkte event met de nieuwe pubkeys in &lt;code>p&lt;/code> tags publiceerde maar nooit gift wrap uitnodigingen creëerde of leverde aan die deelnemers, wat de invite-flow voor last-minute toevoegingen brak. &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/156">PR #156&lt;/a> voegt error handling toe rond private event decryption zodat clients niet langer een fout gooien op niet-ontsleutelbare events, en &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/138">PR #138&lt;/a> corrigeert terugkerende event-tijden die over tijdzones dreven.&lt;/p>
&lt;h3 id="applesauce-v610-voegt-nip-34-git-casts-en-nip-51-lookup-relays-toe">Applesauce v6.1.0 voegt NIP-34 git casts en NIP-51 lookup relays toe&lt;/h3>
&lt;p>&lt;strong>Applesauce&lt;/strong> bracht &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%406.1.0">v6.1.0&lt;/a> uit over zijn pakketten met significante NIP-34 (git-over-Nostr) ondersteuning: applesauce-common voegt nieuwe &lt;code>GitRepository&lt;/code>, &lt;code>GitGraspList&lt;/code> en &lt;code>FavoriteGitRepos&lt;/code> casts toe plus bijbehorende factories, en exposeert &lt;code>User.favoriteGitRepos$&lt;/code>, &lt;code>User.gitAuthors$&lt;/code> en &lt;code>User.graspServers$&lt;/code> reactieve properties zodat applicaties de gevolgde git-repos, repo-maintainers en geconfigureerde GRASP-servers van een gebruiker direct kunnen weergeven vanuit hetzelfde User-object. Dezelfde release voegt ondersteuning toe voor NIP-51 kind 10086 lookup relay-lijsten, een recente toevoeging aan de relay-list familie die wordt gebruikt om te ontdekken waar specifieke data te vinden is. applesauce-core krijgt &lt;code>replaceableAddress&lt;/code> op &lt;code>EventCast&lt;/code> voor NIP-01 replaceable address lookup, plus &lt;code>pointer&lt;/code>, &lt;code>kind&lt;/code> en een &lt;code>getReplaceableAddressForEvent&lt;/code> helper, en voegt een &lt;code>timeline$()&lt;/code> methode toe op de base &lt;code>User&lt;/code> cast. &lt;a href="https://github.com/hzrd149/applesauce/pull/73">PR #73&lt;/a> verhelpt pool manual methods die stilletjes offline relays lieten wegvallen.&lt;/p>
&lt;h3 id="sprout-v0016-levert-sprig-binary-en-huddle-protocol-v2">Sprout v0.0.16 levert Sprig binary en huddle protocol v2&lt;/h3>
&lt;p>&lt;strong>Sprout&lt;/strong> door Block, een self-hosted Nostr-relay-gebaseerde team-workspace waar mensen en AI-agents dezelfde ruimtes en event log delen, bracht &lt;a href="https://github.com/block/sprout/releases/tag/v0.0.16">v0.0.16&lt;/a> van de desktop-app uit naast rolling builds van de nieuwe Sprig all-in-one binary (&lt;a href="https://github.com/block/sprout/pull/605">PR #605&lt;/a>), die de ACP-harness, agent en developer MCP bundelt in één busybox-stijl binary voor eenvoudige deployment. De &lt;code>--no-memory&lt;/code> flag toegevoegd in &lt;a href="https://github.com/block/sprout/pull/611">PR #611&lt;/a> laat operators NIP-AE core memory injection voor de ACP-harness uitschakelen. Aan de realtime kant breidt &lt;a href="https://github.com/block/sprout/pull/609">PR #609&lt;/a> het huddle voice-protocol uit naar een v2 frame header met ondersteuning voor tot 10 gelijktijdige peers.&lt;/p>
&lt;h3 id="nostrord-v103-voegt-os-keychain-en-multi-account-toe">Nostrord v1.0.3 voegt OS-keychain en multi-account toe&lt;/h3>
&lt;p>&lt;strong>Nostrord&lt;/strong> bracht &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.3">v1.0.3&lt;/a> uit met lokale key-opslag gehard met OS-keychain en passphrase-fallback, multi-account-ondersteuning en een aantikbare bunker QR-code die op Android de signer-app opent.&lt;/p>
&lt;h3 id="angor-migreert-naar-nip-44-en-levert-security-hardening">Angor migreert naar NIP-44 en levert security hardening&lt;/h3>
&lt;p>&lt;strong>Angor&lt;/strong>, de Bitcoin crowdfunding-app gebouwd op Nostr en Taproot, bracht deze week drie unstable releases uit (&lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.24">v0.2.24&lt;/a>, &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.25">v0.2.25&lt;/a> en &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.26">v0.2.26&lt;/a>) met een set aan security hardening en Nostr-integratieveranderingen. &lt;a href="https://github.com/block-core/angor/pull/860">PR #860&lt;/a> migreert Nostr versleutelde berichten van NIP-04 naar NIP-44, waarbij het gedeprecieerde XOR-gebaseerde schema wordt vervangen door ChaCha20-Poly1305-versleuteling. &lt;a href="https://github.com/block-core/angor/pull/861">PR #861&lt;/a> staat Blossom media-uploads toe zonder een geselecteerde wallet door een kortstondige Nostr auth-sleutel te gebruiken, waardoor uploads worden gedeblokkeerd voor gebruikers die nog geen wallet hebben verbonden. De security-reeks behandelde meerdere gehardde categorieën: &lt;a href="https://github.com/block-core/angor/pull/854">PR #854&lt;/a> voegt type safety toe voor AngorKey en mnemonic memory protection, &lt;a href="https://github.com/block-core/angor/pull/856">PR #856&lt;/a> dwingt protocol-niveau validatie af voor timelocks, fee rates, dust thresholds en penalty rules, en &lt;a href="https://github.com/block-core/angor/pull/851">PR #851&lt;/a> past niet-brekende hardening toe over acht medium- en low-severity categorieën. &lt;a href="https://github.com/block-core/angor/pull/859">PR #859&lt;/a> verhelpt GrapheneOS-compatibiliteit door AOT-compilatie in te schakelen en runtime code generation te verwijderen, en &lt;a href="https://github.com/block-core/angor/pull/855">PR #855&lt;/a> voorkomt walletverlies bij Android swipe-kill door de walletstatus te persisteren voordat het OS het proces beëindigt.&lt;/p>
&lt;h3 id="alby-js-sdk-v80-levert-nwc-multi-relay-reconnect">Alby js-sdk v8.0 levert NWC multi-relay reconnect&lt;/h3>
&lt;p>&lt;strong>Alby js-sdk&lt;/strong> bracht de v8.0-lijn uit (&lt;a href="https://github.com/getAlby/js-sdk/releases/tag/v8.0.1">v8.0.1&lt;/a> tot en met &lt;a href="https://github.com/getAlby/js-sdk/releases/tag/v8.0.3">v8.0.3&lt;/a>) met NWC multi-relay subscription-ondersteuning. &lt;a href="https://github.com/getAlby/js-sdk/pull/516">PR #516&lt;/a> update de nostr-tools dependency en schakelt native auto-reconnect over meerdere relays in, waarbij de vorige polling-benadering wordt vervangen door relay-native reconnection-logica. &lt;a href="https://github.com/getAlby/js-sdk/pull/542">PR #542&lt;/a> vervangt alle &lt;code>console.debug&lt;/code> calls door een injecteerbare logger-interface zodat applicatie-ontwikkelaars SDK-diagnostiek door hun eigen logging-infrastructuur kunnen routeren. De release laat de WebSocket-polyfill vallen en vereist Node.js 22 of hoger voor server-side consumers. v8.0.2 voegde een fix toe voor een utils crypto import bug die bepaalde bundlers brak.&lt;/p>
&lt;h3 id="keychat-v1411-verhelpt-forward-secrecy">KeyChat v1.41.1 verhelpt forward secrecy&lt;/h3>
&lt;p>&lt;strong>KeyChat&lt;/strong>, een berichten-app die het Signal-protocol combineert met Nostr relay-transport, bracht &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.41.1&amp;#43;6513">v1.41.1+6513&lt;/a> uit. De belangrijkste fix dwingt forward secrecy af door Signal one-time prekeys onmiddellijk na een succesvolle decryptie te verwijderen, waardoor een gat wordt gesloten waarin een behouden prekey gebruikt kon worden om eerdere berichten te ontsleutelen als het apparaat later werd gecompromitteerd. De release voegt ook URL-preview toe voor berichten die uit één link bestaan, centraliseert media auto-download onder een nieuwe &lt;code>FileDownloadManager&lt;/code> met een 20 MB automatische drempel en refactort NIP-11 relay info-fetching om een force-refresh bij cold start uit te voeren zodat betaalde relay fee-configuraties altijd correct worden geladen.&lt;/p>
&lt;h2 id="in-ontwikkeling">In ontwikkeling&lt;/h2>
&lt;p>&lt;strong>Citrine&lt;/strong> mergde &lt;a href="https://github.com/greenart7c3/Citrine/pull/151">PR #151&lt;/a> waarmee NIP-70 enforcement wordt geïmplementeerd: de Android-relay blokkeert nu reposts die beschermde event-inhoud embedden, zoals de spec vereist. &lt;a href="https://github.com/greenart7c3/Citrine/pull/149">PR #149&lt;/a> voegt weergave- en kopieeracties toe voor meerdere connectieadressen, localhost, lokaal Wi-Fi en Tor, vanuit het relay-instellingenscherm. &lt;a href="https://github.com/greenart7c3/Citrine/pull/141">PR #141&lt;/a> voegt NIP-42 AUTH challenge handling toe via externe signer-integratie met Amber.&lt;/p>
&lt;p>&lt;strong>Mostro&lt;/strong> bereikte fase 2 van zijn anti-abuse bond-uitrol. &lt;a href="https://github.com/MostroP2P/mostro/pull/737">PR #737&lt;/a> landt solver-gestuurde dispute slash-logica: admin-handlers consumeren nu de &lt;code>BondResolution&lt;/code> payload van mostro-core, waardoor een admin de bond van beide partijen kan slashen bij het oplossen van een dispuut. Fase 1.5, gemerged in &lt;a href="https://github.com/MostroP2P/mostro/pull/736">PR #736&lt;/a>, introduceerde een dedicated &lt;code>PayBondInvoice&lt;/code> actie en &lt;code>WaitingTakerBond&lt;/code> status, waarbij de anti-abuse bond-betaling van de taker wordt gescheiden van de trade-uitbetaling van de koper. De mobiele client voegde de volledige Phase 1.5 UX toe in &lt;a href="https://github.com/MostroP2P/mobile/pull/592">PR #592&lt;/a>. Mostro is een peer-to-peer Bitcoin-uitwisselingsprotocol gebouwd op Nostr.&lt;/p>
&lt;p>&lt;strong>Damus&lt;/strong> mergde &lt;a href="https://github.com/damus-io/damus/pull/3773">PR #3773&lt;/a> waarmee de relay signal-indicator wordt hersteld, en &lt;a href="https://github.com/damus-io/damus/pull/3775">PR #3775&lt;/a> verhelpt relays die weigerden opnieuw te verbinden na een initiële verbindingsfout.&lt;/p>
&lt;p>&lt;strong>rust-nostr&lt;/strong> mergde &lt;a href="https://github.com/rust-nostr/nostr/pull/1358">PR #1358&lt;/a> waarmee event finalization-traits en NIP-specifieke event builders worden toegevoegd, waardoor het gemakkelijker wordt om correct-getypte events voor specifieke protocolfuncties te construeren. &lt;a href="https://github.com/rust-nostr/nostr/pull/1363">PR #1363&lt;/a> backport een fix die ervoor zorgt dat de NIP-46 signer zich abonneert op notificaties voordat het connect-antwoord wordt verzonden, waardoor een race condition wordt gesloten waarin client-berichten die onmiddellijk na connect binnenkomen konden worden gemist.&lt;/p>
&lt;p>&lt;strong>dart-nostr&lt;/strong> mergde &lt;a href="https://github.com/ethicnology/dart-nostr/pull/44">PR #44&lt;/a> met de toevoeging van een Namecoin &lt;code>.bit&lt;/code> relay resolver en TLSA pin records, waardoor Flutter-applicaties &lt;code>wss://example.bit/&lt;/code> relay-URLs kunnen oplossen via Namecoin DNS naar hun daadwerkelijke WebSocket-adressen.&lt;/p>
&lt;p>&lt;strong>Dart NDK&lt;/strong> (de Dart/Flutter Nostr development kit, nu op &lt;code>relaystr/ndk&lt;/code>) mergde &lt;a href="https://github.com/relaystr/ndk/pull/464">PR #464&lt;/a> waarmee NIP-77, het offline event signing-protocol, wordt geïmplementeerd. Aan de signer-kant voegen &lt;a href="https://github.com/relaystr/ndk/pull/602">PR #602&lt;/a> en &lt;a href="https://github.com/relaystr/ndk/pull/601">PR #601&lt;/a> een web-specifieke event signer en een &lt;code>PlatformEventVerifier&lt;/code> abstractie toe, waardoor Flutter web-apps de platform-signer kunnen gebruiken zonder een apart codepad; &lt;a href="https://github.com/relaystr/ndk/pull/604">PR #604&lt;/a> introduceert een event signer factory voor runtime signer-selectie. &lt;a href="https://github.com/relaystr/ndk/pull/608">PR #608&lt;/a> voegt &lt;code>getDmRelays()&lt;/code> toe om de NIP-17 DM relay-lijst van een gebruiker op te halen (kind:10050), en &lt;a href="https://github.com/relaystr/ndk/pull/600">PR #600&lt;/a> verhelpt NIP-46 signed field preservation zodat remote signers geen velden verliezen bij round-trip.&lt;/p>
&lt;p>&lt;strong>Pages by Form*&lt;/strong> (&lt;a href="https://github.com/formstr-hq/nostr-docs">repo&lt;/a>), Formstr&amp;rsquo;s Nostr-native collaboratieve document-app gehost op &lt;a href="https://pages.formstr.app">pages.formstr.app&lt;/a>, mergde deze week vier PRs die de flows voor versleutelde bijlagen en documentbeheer aanscherpen. &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/37">PR #37&lt;/a> verhelpt ontbrekende afbeeldingen in DOCX, HTML en PDF exports door versleutelde bijlagen inline te plaatsen: het haalt &lt;code>&amp;lt;encrypted-file&amp;gt;&lt;/code> blobs op van Blossom-servers, ontsleutelt ze met AES-GCM 256-bit met de opgeslagen sleutel en nonce, valideert het image MIME-type en converteert ze naar base64 data-URLs zodat exports afbeeldingen behouden die alleen in versleutelde vorm op Blossom bestaan. &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/39">PR #39&lt;/a> voegt een lokaal document-zoekmechanisme toe, &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/38">PR #38&lt;/a> ruimt de rename-flow op en &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/40">PR #40&lt;/a> verhelpt shared backup handling.&lt;/p>
&lt;p>&lt;strong>Zap Cooking&lt;/strong> mergde &lt;a href="https://github.com/zapcooking/frontend/pull/396">PR #396&lt;/a>, de eerste fase van een feed-herziening die feed-rendering primitieven legt zonder al enige door de gebruiker zichtbare wijziging. De PR introduceert een NIP-92 &lt;code>imeta&lt;/code> tag parser die de &lt;code>url&lt;/code>, &lt;code>m&lt;/code> (MIME), &lt;code>dim&lt;/code> (afmetingen), &lt;code>blurhash&lt;/code>, &lt;code>alt&lt;/code>, &lt;code>x&lt;/code> (file hash) en &lt;code>fallback&lt;/code> slots leest, plus een handmatig geporteerde canonieke blurhash decoder (~200 LOC) die PNG data-URLs produceert via canvas met een SSR-veilige null-fallback. Wanneer &lt;code>imeta&lt;/code> tags ontbreken, valt de parser terug op het extraheren van ruwe afbeeldings- en video-URLs uit de event-inhoud met dezelfde heuristieken die de huidige feed al gebruikt.&lt;/p>
&lt;p>&lt;strong>Nurunuru&lt;/strong> (ぬるぬる, &lt;code>tami1A84/null--nostr&lt;/code>), een Nostr-client met native Android-, iOS- en Web-varianten die een Rust FFI engine delen, mergde zijn v1.5.0 Native → Web sync in &lt;a href="https://github.com/tami1A84/null--nostr/pull/176">PR #176&lt;/a>. De sync brengt verschillende feature-toevoegingen naar de Web-build die al op Android v1.4.9 en iOS 1.0.4 werden geleverd: de &lt;a href="https://github.com/tami1A84/null--nostr/pull/176">NotificationModal&lt;/a> toont nu birthday notifications, mutual-follow zap-detectie en custom-emoji reactie-notificaties; de reactie-picker laat de Unicode default-reactions quick-row vallen en centreert de UX op custom emoji; de recommendation engine in &lt;code>lib/recommendation.js&lt;/code> filtert gebruikers zonder iconen of display names uit en prioriteert Following entries met Recommended die op de achtergrond laden. Voice input is de ene feature die de andere kant op gaat: de Web-build gebruikt al ElevenLabs Scribe streaming, en v1.5.0 sync partieel de Native-kant naar de OS-standaard &lt;code>SpeechRecognizer&lt;/code> (Android) en &lt;code>SFSpeechRecognizer&lt;/code> + &lt;code>AVAudioEngine&lt;/code> (iOS) terwijl de volledige Native Scribe-integratie is uitgesteld tot v1.6.&lt;/p>
&lt;h2 id="protocol--en-spec-werk">Protocol- en spec-werk&lt;/h2>
&lt;p>&lt;strong>PR &lt;a href="https://github.com/nostr-protocol/nips/pull/2251">#2251&lt;/a>&lt;/strong> scherpt de NIP-70 protected events spec aan: er staat nu expliciet dat reposts die de volledige inhoud van een beschermd event embedden door relays moeten worden afgewezen. NIP-70 definieert de &lt;code>-&lt;/code> tag die aangeeft dat een note-auteur niet toestaat dat zijn note wordt hergepubliceerd. De originele spec dekte relay filtering-gedrag, maar liet het repost-geval onduidelijk. Deze PR sluit dat gat. Citrine&amp;rsquo;s &lt;a href="https://github.com/greenart7c3/Citrine/pull/151">PR #151&lt;/a> implementeert de enforcement aan de relay-kant in dezelfde week.&lt;/p>
&lt;p>&lt;strong>PR &lt;a href="https://github.com/nostr-protocol/nips/pull/1653">#1653&lt;/a>&lt;/strong> stelt een Drafts NIP voor voor het opslaan en synchroniseren van private draft events. Het voorstel gebruikt replaceable events met een &lt;code>draft&lt;/code> status en NIP-44 versleuteling naar de eigen key van de auteur, waardoor clients works in progress naar relays kunnen opslaan zonder dat die events voor iemand anders zichtbaar zijn. Het draft event draagt de volledige beoogde-publicatie event als versleutelde inhoud, inclusief zijn uiteindelijke kind en tags.&lt;/p>
&lt;p>&lt;strong>Snapshots (&lt;a href="https://github.com/nostr-protocol/nips/pull/2279">PR #2279&lt;/a>)&lt;/strong> is een open voorstel om een immutable snapshot-event te definiëren voor het bewaren van één exacte versie van een replaceable Nostr-event. Het snapshot-event draagt de volledige inhoud van het replaceable event op een bepaald tijdstip, met een &lt;code>a&lt;/code> tag die het terugkoppelt naar het adres van het replaceable event zodat alle historische versies samen opvraagbaar zijn. Dit maakt het mogelijk voor waarnemers om historische status te inspecteren, zelfs nadat relays oude versies niet meer bewaren.&lt;/p>
&lt;p>&lt;strong>Namecoin NIP-05 golf:&lt;/strong> Deze week was er een gecoördineerde push om &lt;code>.bit&lt;/code> NIP-05 resolutie toe te voegen aan Nostr-clients. De NIP-discussiefeed legde open-source PRs vast tegen Aegis (&lt;a href="https://github.com/ZharlieW/Aegis/pull/14">#14&lt;/a>, die sign-time verificatie bij de signer toevoegt), nostter (&lt;a href="https://github.com/SnowCait/nostter/pull/2128">#2128&lt;/a>) en dart-nostr (&lt;a href="https://github.com/ethicnology/dart-nostr/pull/44">#44&lt;/a>), naast een upstream NIP draft (&lt;a href="https://github.com/nostr-protocol/nips/pull/2349">PR #2349&lt;/a>). De Aegis PR is opmerkelijk omdat het verificatie aan de producentenkant plaatst: de signer controleert de Namecoin-chain voordat een kind:0 event dat een &lt;code>.bit&lt;/code> identiteit claimt wordt ondertekend en waarschuwt de gebruiker bij een mismatch, waarbij het probleem wordt opgevangen voordat het event een relay bereikt.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-07-windownostr-voor-webbrowsers">NIP Deep Dive: NIP-07 (window.nostr voor webbrowsers)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/07.md">NIP-07&lt;/a> definieert de &lt;code>window.nostr&lt;/code> interface die browserextensies aan webapplicaties blootstellen. Het is de meest wijdverbreid gedeployde signer-interface op het web, geïmplementeerd door extensies waaronder Alby, nos2x, Flamingo en horse.&lt;/p>
&lt;p>De interface heeft twee vereiste methoden en verschillende optionele. &lt;code>window.nostr.getPublicKey()&lt;/code> retourneert de public key van de gebruiker als hex string zonder ooit de private key bloot te stellen aan de aanroepende pagina. &lt;code>window.nostr.signEvent(event)&lt;/code> neemt een gedeeltelijk event met &lt;code>created_at&lt;/code>, &lt;code>kind&lt;/code>, &lt;code>tags&lt;/code> en &lt;code>content&lt;/code>, en retourneert het volledig ondertekende event met &lt;code>id&lt;/code>, &lt;code>pubkey&lt;/code> en &lt;code>sig&lt;/code> toegevoegd. Het belangrijkste punt is dat de private key nooit de geïsoleerde context van de extensie verlaat; de webapplicatie dient een niet-ondertekend event in en ontvangt een ondertekende terug.&lt;/p>
&lt;p>De optionele methoden dekken versleuteling: &lt;code>window.nostr.nip04.encrypt&lt;/code> en &lt;code>window.nostr.nip04.decrypt&lt;/code> voor het oudere NIP-04-schema (nu gedeprecieerd) en &lt;code>window.nostr.nip44.encrypt&lt;/code> en &lt;code>window.nostr.nip44.decrypt&lt;/code> voor het huidige NIP-44-schema. Extensies die NIP-44 ondersteunen kunnen daarom zowel direct message-versleuteling als elke andere applicatie die pubkey-gekoppelde versleuteling nodig heeft afhandelen zonder dat de aanroepende pagina de nsec ziet.&lt;/p>
&lt;p>De spec bevat ook een aanbeveling aan extensie-auteurs: laad scripts met &lt;code>&amp;quot;run_at&amp;quot;: &amp;quot;document_end&amp;quot;&lt;/code> in het extensiemanifest zodat &lt;code>window.nostr&lt;/code> synchroon beschikbaar is wanneer de pagina wordt geladen, waarmee race conditions worden vermeden waarbij een client &lt;code>window.nostr&lt;/code> controleert voordat de extensie het heeft geïnjecteerd.&lt;/p>
&lt;p>Een belangrijk voorbeeld van NIP-07 in actie is het Keycast-project dat hierboven werd behandeld. De Keycast web-frontend gebruikt NIP-07 om NIP-98 HTTP auth events te ondertekenen: de SvelteKit-app hanteert nooit de nsec van de gebruiker direct. Het roept &lt;code>window.nostr.signEvent&lt;/code> aan om de auth-header te produceren en verzendt die header vervolgens naar de Keycast API. Deze architectuur betekent dat het key-materiaal in de browserextensie blijft gedurende de gehele team key management flow.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;7f8e9d0c1b2a3e4f5d6c7b8a9f0e1d2c3b4a5f6e7d8c9b0a1f2e3d4c5b6a7f8a&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1747785600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Hello from a NIP-07 signed event&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2cdd&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="nip-deep-dive-nip-39-externe-identiteiten-in-profielen">NIP Deep Dive: NIP-39 (externe identiteiten in profielen)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/39.md">NIP-39&lt;/a> definieert hoe een Nostr-gebruiker controle over externe platform-identiteiten kan verklaren in zijn profiel. Elke verklaring gebruikt een &lt;code>i&lt;/code> tag binnen een kind:10011 event, waarbij eigendom van een specifieke account op een ander platform wordt geclaimd samen met een bewijs dat onafhankelijk kan worden geverifieerd.&lt;/p>
&lt;p>Elke tag volgt het formaat &lt;code>[&amp;quot;i&amp;quot;, &amp;quot;platform:identity&amp;quot;, &amp;quot;proof&amp;quot;]&lt;/code>, waarbij &lt;code>platform:identity&lt;/code> de platformnaam en gebruikersnaam combineert met een dubbele punt als scheidingsteken (&lt;code>github:semisol&lt;/code>, &lt;code>twitter:semisol_public&lt;/code>). &lt;code>proof&lt;/code> verwijst naar een verifieerbaar artefact op het platform zelf.&lt;/p>
&lt;p>Voor GitHub is het bewijs een Gist ID. De gebruiker maakt een publieke Gist aan vanaf zijn GitHub-account met de tekst &lt;code>Verifying that I control the following Nostr public key: npub1...&lt;/code>. Een client die de claim verifieert haalt &lt;code>https://gist.github.com/&amp;lt;identity&amp;gt;/&amp;lt;proof&amp;gt;&lt;/code> op en controleert dat de Gist is geschreven door de geclaimde GitHub-gebruikersnaam en de verwachte pubkey bevat. Voor Twitter is het bewijs een tweet ID, voor Mastodon een post ID en voor Telegram een berichtreferentie in een publieke groep.&lt;/p>
&lt;p>De identity provider-naam mag alleen &lt;code>a-z&lt;/code>, &lt;code>0-9&lt;/code> en de tekens &lt;code>._-/&lt;/code> bevatten, en mag geen &lt;code>:&lt;/code> bevatten. Identiteitsnamen moeten worden genormaliseerd naar kleine letters, waarbij de primaire alias wordt gebruikt wanneer er meerdere bestaan.&lt;/p>
&lt;p>De Namecoin &lt;code>.bit&lt;/code> NIP-05 discussie die deze week plaatsvindt laat de rol van NIP-39 in de bredere identiteitsstack zien: het biedt een gestandaardiseerde, relay-agnostische manier om een Nostr-sleutel te kruisverwijzen met een gevestigde identiteit elders, zonder dat er een centrale verificatie-autoriteit nodig is. Een client kan het bewijs onafhankelijk verifiëren door een publiek artefact op het genoemde platform op te halen, en het bewijs is gebonden aan de specifieke Nostr-pubkey in de Gist- of tweet-tekst, niet aan een generieke platform-credential.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;7f8e9d0c1b2a3e4f5d6c7b8a9f0e1d2c3b4a5f6e7d8c9b0a1f2e3d4c5b6a7f8a&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1747785600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">10011&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;i&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;github:semisol&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;9721ce4ee4fceb91c9711ca2a6c9a5ab&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;i&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;twitter:semisol_public&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1619358434134196225&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;i&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;mastodon:bitcoinhackers.org/@semisol&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;109775066355589974&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3eff&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;hr>
&lt;p>Dat was het voor deze week. Als je iets aan het bouwen bent of nieuws hebt om te delen, DM ons op Nostr of vind ons op &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #22</title><link>https://nostrcompass.org/nl/newsletters/2026-05-13-newsletter/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-05-13-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, uw wekelijkse gids voor de ontwikkeling van het Nostr-protocol.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Nostr VPN brengt acht releases uit in zeven dagen, van een opnieuw ontworpen apparaatkoppelingsflow tot een FIPS AEAD-wissel die de TCP-doorvoer ruwweg verdubbelt. Marmot Protocol (de basis voor White Noise) brengt een frontend-release uit die de gebruikersblokkering voltooit en 31 samengevoegde PR&amp;rsquo;s over MDK en de backend. Grain brengt v0.6.0 uit met vier nieuwe NIP-implementaties in één mijlpaal. Citrine brengt v3.0.0-pre1 uit met ingebouwde Tor en relay-aggregatie. Amber brengt v6.1.0-pre2 uit met verbeteringen in de verbindingsflow en ondertekening. Alby Hub brengt v1.22.2 uit met een AI en Agents-pagina en Core Lightning-integratie. Mostro brengt gelijktijdige taker bonds en mostro-core v0.11.0 uit. Jumble brengt vijf releases uit met recente zoekgeschiedenis en fixes voor het bewaren van accountgegevens. Nostrord brengt drie releases uit met groepsdeelvensters en Arch Linux-pakketten. Flotilla brengt 1.8.0 uit met videogesprekken, e-mailweergave en kamerverwijzingen. Calendar by Formstr brengt v1.5.1 uit met afspraakplanning en Android-kalendersynchronisatie. Tamagostrich lanceert een gedecentraliseerde NIP-78 Tamagotchi met sats-beloningen.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, uw wekelijkse gids voor de ontwikkeling van het Nostr-protocol.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Nostr VPN brengt acht releases uit in zeven dagen, van een opnieuw ontworpen apparaatkoppelingsflow tot een FIPS AEAD-wissel die de TCP-doorvoer ruwweg verdubbelt. Marmot Protocol (de basis voor White Noise) brengt een frontend-release uit die de gebruikersblokkering voltooit en 31 samengevoegde PR&amp;rsquo;s over MDK en de backend. Grain brengt v0.6.0 uit met vier nieuwe NIP-implementaties in één mijlpaal. Citrine brengt v3.0.0-pre1 uit met ingebouwde Tor en relay-aggregatie. Amber brengt v6.1.0-pre2 uit met verbeteringen in de verbindingsflow en ondertekening. Alby Hub brengt v1.22.2 uit met een AI en Agents-pagina en Core Lightning-integratie. Mostro brengt gelijktijdige taker bonds en mostro-core v0.11.0 uit. Jumble brengt vijf releases uit met recente zoekgeschiedenis en fixes voor het bewaren van accountgegevens. Nostrord brengt drie releases uit met groepsdeelvensters en Arch Linux-pakketten. Flotilla brengt 1.8.0 uit met videogesprekken, e-mailweergave en kamerverwijzingen. Calendar by Formstr brengt v1.5.1 uit met afspraakplanning en Android-kalendersynchronisatie. Tamagostrich lanceert een gedecentraliseerde NIP-78 Tamagotchi met sats-beloningen.&lt;/p>
&lt;h2 id="hoofdverhalen">Hoofdverhalen&lt;/h2>
&lt;h3 id="nostr-vpn-brengt-acht-releases-uit-die-culmineren-in-v4010">Nostr VPN brengt acht releases uit die culmineren in v4.0.10&lt;/h3>
&lt;p>Nostr VPN, het op Rust gebaseerde gedecentraliseerde mesh-VPN dat Nostr gebruikt voor peer-discovery, bracht acht releases uit van v4.0.1 tot v4.0.10 voor macOS, Linux, Windows en Android. De belangrijkste wijziging in v4.0.8: de AEAD werd gewisseld van de RustCrypto chacha20poly1305 soft backend naar BoringSSL&amp;rsquo;s ChaCha20-Poly1305 in ring 0.17, dat gebruik maakt van handmatig afgestemde NEON op aarch64 en AVX2/AVX-512 op x86_64. Docker-benchmarks op identieke hardware toonden een directe TCP-doorvoer van 2-knooppunten die sprong van 437 naar 1097 Mbps. v4.0.9 voegde sendmmsg(2)-batching toe op het UDP-verzendpad, waardoor de TCP-enkelvoudige stroom steeg van 1066 naar 1548 Mbps (1,45×). v4.0.10 bracht een volledige UX-revisie voor apparaatkoppeling.&lt;/p>
&lt;h3 id="marmot--white-noise-brengt-frontend-release-uit-die-gebruikersblokkering-voltooit-en-31-samengevoegde-prs-over-mdk-en-backend">Marmot / White Noise brengt frontend-release uit die gebruikersblokkering voltooit en 31 samengevoegde PR&amp;rsquo;s over MDK en backend&lt;/h3>
&lt;p>White Noise bracht v2026.5.7+24 uit op 7 mei, waarmee de blokkeerfeatureset wordt voltooid. Een geblokkeerde gebruiker is nu verborgen in uitnodigingen, chatvoorbeelden, berichttijdlijnen, zoekresultaten en meldingen, en hun berichten tellen niet meer mee voor ongelezen badges. MDK landde PR #258 met het extensie v3-draadformaat en het disappearing_message_secs-schema, waarmee de basis wordt gelegd voor verdwijnende berichten.&lt;/p>
&lt;h3 id="grain-v060-voegt-nip-40-nip-50-nip-70-en-nip-45-toe">Grain v0.6.0 voegt NIP-40, NIP-50, NIP-70 en NIP-45 toe&lt;/h3>
&lt;p>Grain bracht v0.6.0 uit op 6 mei met vier nieuwe NIP-implementaties. NIP-40 event-vervaldatum laat uitgevers een vervaltijdstempel instellen zodat de relay events verwijdert nadat ze vervallen. NIP-50 volledige tekstzoekopdracht laat clients zoekfilters uitsturen in REQ-berichten. NIP-70 beschermde events voorkomt dat relays events opnieuw delen zonder expliciete toestemming van de auteur. NIP-45 telquery&amp;rsquo;s laten clients een relay vragen om een telling van overeenkomende events te retourneren.&lt;/p>
&lt;h2 id="deze-week-verschenen">Deze week verschenen&lt;/h2>
&lt;h3 id="citrine-v300-pre1-brengt-ingebouwde-tor-en-relay-aggregatie">Citrine v3.0.0-pre1 brengt ingebouwde Tor en relay-aggregatie&lt;/h3>
&lt;p>Citrine bracht v3.0.0-pre1 uit met ingebouwde Tor-ondersteuning voor privacybesparende relay-toegang en relay-aggregatie, waarbij Citrine events kan ophalen uit meerdere upstream-relays en ze kan bedienen aan lokale clients. PR #139 voegt NIP-77 (Negentropy Reconciliation)-ondersteuning toe voor efficiënte set-reconciliatie-gebaseerde eventsynchronisatie.&lt;/p>
&lt;h3 id="amber-v610-pre2-verbetert-de-nieuwe-app-verbindingsflow">Amber v6.1.0-pre2 verbetert de nieuwe app-verbindingsflow&lt;/h3>
&lt;p>Amber bracht v6.1.0-pre2 uit. De belangrijkste fixes: het ondertekeningsvenster sluit nu correct na het accepteren van een bunker-verzoek, misvormde bunker-verzoeken tonen een scherm voor ongeldig verzoek, en snelheidsbegrenzing wordt toegevoegd voor op intent gebaseerde ondertekeningsverzoeken.&lt;/p>
&lt;h3 id="alby-hub-v1222-voegt-ai-en-agents-pagina-en-core-lightning-ondersteuning-toe">Alby Hub v1.22.2 voegt AI en Agents-pagina en Core Lightning-ondersteuning toe&lt;/h3>
&lt;p>Alby Hub bracht v1.22.2 uit. De nieuwe AI en Agents-pagina stelt de Lightning- en NWC-mogelijkheden van Alby Hub beschikbaar aan AI-agents en MCP-compatibele tools. Core Lightning (CLN) is nu een ondersteunde backend naast LND en LDK.&lt;/p>
&lt;h3 id="mostro-brengt-gelijktijdige-taker-bonds-en-mostro-core-v0110-uit">Mostro brengt gelijktijdige taker bonds en mostro-core v0.11.0 uit&lt;/h3>
&lt;p>Mostro voegde 11 PR&amp;rsquo;s samen voor de taker bond-feature. PR #733 implementeert gelijktijdige taker bonds waarbij meerdere takers tegelijkertijd bond-facturen kunnen indienen en de eerste die vergrendelt wint. mostro-core bracht v0.11.0 uit met PR #144 die Action::PayBondInvoice en Status::WaitingTakerBond toevoegt. mostro-cli bracht v0.15.0 uit.&lt;/p>
&lt;h3 id="jumble-brengt-vijf-releases-uit-met-recente-zoekfunctie-en-accountpersistentie">Jumble brengt vijf releases uit met recente zoekfunctie en accountpersistentie&lt;/h3>
&lt;p>Jumble bracht v26.5.2 tot en met v26.5.6 uit. v26.5.5 voegt recente zoekgeschiedenis toe. Een kritieke persistentiebug is opgelost in v26.5.6: accounts en gecachte gegevens overleven nu een volledig opnieuw starten van de app.&lt;/p>
&lt;h3 id="nostrord-brengt-groepsdeelvensters-media-upload-en-arch-linux-pakketten-uit">Nostrord brengt groepsdeelvensters, media-upload en Arch Linux-pakketten uit&lt;/h3>
&lt;p>Nostrord bracht v1.0.0, v1.0.1 en v1.0.2 uit. v1.0.1 brengt Arch Linux-pakketten via AUR als nostrord-bin met PGP-ondertekende artefacten, een knop om naar het laatste bericht te springen, en afbeeldingen/media plakken in chat. v1.0.2 voegt groepsdeling toe via PR #49 met een deelvenster dat zowel een nostr:naddr URI als een nostrord.com/open/-link genereert.&lt;/p>
&lt;h3 id="fips-v030-brengt-platformoverschrijdend-bereik-nostr-peer-discovery-en-een-gateway-voor-ongewijzigde-lans">FIPS v0.3.0 brengt platformoverschrijdend bereik, Nostr peer-discovery en een gateway voor ongewijzigde LAN&amp;rsquo;s&lt;/h3>
&lt;p>FIPS bracht v0.3.0 uit, een belangrijke mijlpaal die uitbreidt van alleen Linux naar Linux, macOS, Windows en OpenWrt. Knooppunten publiceren nu ondertekende overlay-advertenties als kind:37195 geparametriseerde vervangbare events op publieke Nostr-relays. Dezelfde ring 0.17 ChaCha20-Poly1305-wissel die de Nostr VPN-doorvoersprong aandreef, landt ook in FIPS v0.3.0.&lt;/p>
&lt;h3 id="camelus-v1101-brengt-desktopbuilds-uit">Camelus v1.10.1 brengt desktopbuilds uit&lt;/h3>
&lt;p>Camelus bracht v1.10.1 uit met Windows- en Linux-desktopbuilds, waarmee de distributie wordt uitgebreid van alleen mobiel.&lt;/p>
&lt;h3 id="flotilla-180-brengt-videogesprekken-e-mailweergave-en-kamerverwijzingen-uit">Flotilla 1.8.0 brengt videogesprekken, e-mailweergave en kamerverwijzingen uit&lt;/h3>
&lt;p>Flotilla bracht 1.8.0 uit. Spraakkamers ondersteunen nu video: deelnemers kunnen camera&amp;rsquo;s aanzetten of hun scherm delen tijdens een gesprek. E-mailweergave arriveert via een update van de welshman-bibliotheek. Kamerverwijzingen laten gebruikers andere kamers en relays verwijzen met klikbare inline-links.&lt;/p>
&lt;h3 id="calendar-by-formstr-brengt-v151-uit-met-afspraakplanning-en-android-kalendersynchronisatie">Calendar by Formstr brengt v1.5.1 uit met afspraakplanning en Android-kalendersynchronisatie&lt;/h3>
&lt;p>Calendar by Formstr bracht v1.5.0 uit op 10 mei en v1.5.1 op 11 mei. Afspraakplanning laat gebruikers boekbare tijdslots aanmaken. Alleen-lezen Android-kalenderintegratie synchroniseert Nostr-events naar de apparaatkalender.&lt;/p>
&lt;h2 id="in-ontwikkeling">In ontwikkeling&lt;/h2>
&lt;h3 id="amethyst-voegt-geplande-berichten-nip-9a-community-regels-en-een-lokale-desktayrelay-toe">Amethyst voegt geplande berichten, NIP-9A community-regels en een lokale desktayrelay toe&lt;/h3>
&lt;p>Amethyst voegde 78 PR&amp;rsquo;s samen deze week. Geplande berichten landen in PR #2765. Een desktopbuild krijgt een ingebedde lokale relay met SQLite-eventpersistentie in PR #2841. Drie PR&amp;rsquo;s implementeren NIP-9A community-regels: PR #2798 valideert berichten tegen community-regels voor verzending, PR #2799 voegt een gestructureerde NIP-9A regeleditor toe, en PR #2800 voegt een opt-in NIP-9A-feedfilter toe.&lt;/p>
&lt;h3 id="shopstr-voegt-mcp-auditlogboekregistratie-en-sessiebeveiliging-toe">Shopstr voegt MCP-auditlogboekregistratie en sessiebeveiliging toe&lt;/h3>
&lt;p>Shopstr voegde vijf PR&amp;rsquo;s samen. Auditlogboekregistratie voor de MCP-toollaag landt in PR #456. Sessiebeveiliging wordt aangescherpt in PR #477 met sessieverankering aan de oorspronkelijke API-sleutel en TTL-verwijdering.&lt;/p>
&lt;h3 id="dart-ndk-voegt-webondersteuning-en-seal-handtekeningverificatie-toe">Dart NDK voegt webondersteuning en seal-handtekeningverificatie toe&lt;/h3>
&lt;p>Dart NDK voegde zes PR&amp;rsquo;s samen. Webondersteuning arriveert in SembastCacheManager via PR #571. Seal-handtekeningverificatie landt in PR #595 voor de NIP-59 Gift Wrap-flow.&lt;/p>
&lt;h2 id="nieuwe-projecten">Nieuwe projecten&lt;/h2>
&lt;h3 id="tamagostrich-lanceert-een-gedecentraliseerde-nip-78-tamagotchi-met-sats-beloningen">Tamagostrich lanceert een gedecentraliseerde NIP-78 Tamagotchi met sats-beloningen&lt;/h3>
&lt;p>Tamagostrich is een browsergebaseerd virtueel huisdierengame gelanceerd op IDENTITY Hackathon 2026, waarbij een babystruisvogel, Nori, evolueert via uw Nostr sociale activiteit. De toestand van het huisdier leeft in een NIP-78 kind:30078-event voor synchronisatie tussen apparaten. Mijlpaalbeloningen worden uitbetaald in sats via NIP-47: 50 sats op level 5, 210 sats op level 10, en 420 sats op het maximale level 21, verzonden naar het lud16-adres van de gebruiker.&lt;/p>
&lt;h2 id="protocol--en-specificatiewerk">Protocol- en specificatiewerk&lt;/h2>
&lt;p>Vijf nieuwe voorstellen werden deze week ingediend:&lt;/p>
&lt;p>PR #2331 stelt NIP-9A voor: Verifieerbare Community-regels, met introductie van kind:34551 voor machineleesbare cryptografisch ondertekende community-regeldocumenten.&lt;/p>
&lt;p>PR #2335 stelt Reservation Events voor Nostr Marketplaces voor, waarbij kind:32122 (geparametriseerde vervangbare reserveringsevents), kind:1326 (alleen-toevoegen overgangsauditrecords) en kind:32124 (post-handelsevaluaties) worden gedefinieerd. Onderhandeling is privé via NIP-59 gift-wrapped berichten.&lt;/p>
&lt;p>PR #2334 stelt Escrow Services voor Nostr Marketplaces voor met kind:30303 zodat escrow-operators hun EVM-contractadres en tariefschema kunnen verklaren.&lt;/p>
&lt;p>PR #2333 stelt Accommodation Listing Profiles voor NIP-99 Marketplace Listings voor, waarmee NIP-99 wordt uitgebreid met H3 geospatiale index g-tags voor kortetermijnverhuurlijsten.&lt;/p>
&lt;p>PR #2332 stelt NIP-BC voor: Onchain Zaps (kind 8333), waarbij de directe identiteit tussen Nostr-sleutels en Bitcoin Taproot-adressen wordt benut. Het kind-nummer weerspiegelt NIP-57: 9735 is de Lightning P2P-poort; 8333 is de P2P-poort van Bitcoin mainnet.&lt;/p>
&lt;h2 id="nip-diepteduik-nip-78-app-specifieke-gegevens">NIP-diepteduik: NIP-78 (App-specifieke gegevens)&lt;/h2>
&lt;p>NIP-78 definieert een standaardmanier voor applicaties om willekeurige privé- of openbare gegevens namens een gebruiker op te slaan met behulp van Nostr-events. Het kerntype is 30078, een geparametriseerd vervangbaar event waarbij de d-tag een door de applicatie gedefinieerde identificatiereeks is. Een applicatie geeft zijn opslagslot een unieke d-tag en publiceert een 30078-event met de JSON- of tekstinhoud die het moet bewaren. De primaire motivatie is apparaatoverschrijdende synchronisatie zonder een gecentraliseerde server. Voor privé-applicatiegegevens kunnen NIP-78-events het inhoudsfeld versleutelen met NIP-44 voor publicatie. Huidige gebruikers zijn onder meer Tamagostrich (synchronisatie van huisdiertoestand), Wisp (portefeuilleback-up en beveiligingsinstellingen), NosPress (CMS-orchestratiestatus) en verschillende Nostr-clientinstellingen voor synchronisatie-implementaties.&lt;/p>
&lt;hr>
&lt;p>Primaire bronnen:&lt;/p>
&lt;ul>
&lt;li>NIP-78-specificatie: &lt;a href="https://github.com/nostr-protocol/nips/blob/master/78.md">https://github.com/nostr-protocol/nips/blob/master/78.md&lt;/a>&lt;/li>
&lt;li>Tamagostrich: &lt;a href="https://github.com/Negr087/tamagostrich">https://github.com/Negr087/tamagostrich&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Zie ook: NIP-51 Lijsten, NIP-65 Relay-lijstmetadata&lt;/p>
&lt;h2 id="nip-diepteduik-nip-98-http-auth">NIP-diepteduik: NIP-98 (HTTP Auth)&lt;/h2>
&lt;p>NIP-98 definieert een HTTP-authenticatieschema waarmee Nostr-sleutelparen verzoeken aan HTTP-servers autoriseren, waardoor gebruikersnamen, wachtwoorden of OAuth-tokens overbodig worden. Een client construeert een kortlevend Nostr-event van kind 27235, ondertekent het met zijn privésleutel, codeert de JSON in base64 en verzendt het in een Authorization: Nostr &lt;base64> HTTP-header. Het kind 27235-event bevat de HTTP-methode in een method-tag, de volledige verzoek-URL in een u-tag, en een created_at-tijdstempel. De server valideert de handtekening, controleert of methode en URL overeenkomen, en verifieert of het tijdstempel recent is om hergebruiksaanvallen te voorkomen. NIP-98 wordt gebruikt in Blossom (BUD-01) voor blob-uploadauthenticatie, Routstr voor API-toegangscontrole per verzoek, Sprout voor git-transportauthenticatie en Alby Hub voor admin-API-authenticatie.&lt;/p>
&lt;hr>
&lt;p>Primaire bronnen:&lt;/p>
&lt;ul>
&lt;li>NIP-98-specificatie: &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">https://github.com/nostr-protocol/nips/blob/master/98.md&lt;/a>&lt;/li>
&lt;li>BUD-01: &lt;a href="https://github.com/hzrd149/blossom/blob/master/buds/01.md">https://github.com/hzrd149/blossom/blob/master/buds/01.md&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Zie ook: NIP-96 HTTP-bestandsopslagintegratie&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Als u iets bouwt of nieuws te delen heeft, stuur ons een DM op Nostr of vind ons op nostrcompass.org.&lt;/p></content:encoded></item><item><title>Nostr Compass #21</title><link>https://nostrcompass.org/nl/newsletters/2026-05-06-newsletter/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-05-06-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, uw wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Marmot Protocol levert MDK 0.8.0 met de eerste MIP-05 notificatieprimitieven, adresseerbare NIP-51 sleutelpakketten en een aangescherpte beveiligingsreview. LaWallet NWC levert v0.10.0 als de grootste release sinds de OpenSats-financiering, met een volledig beheerdersdashboard, gebruikersportemonnee, activiteitenlog van begin tot eind en het nieuwe LightningAddress 1→N en NWCConnection-schema. Amethyst voert een Nests-stabilisatiesprint uit met eliminatie van audiogaten tijdens JWT-vernieuwing, levenscyclusbewuste sleuteldata-abonnementen, relay keep-alive herverbinding en een geanimeerde indicator voor de sprekende deelnemer. ngit levert v2.4.2 en v2.4.3 met fixes voor GRASP-serverdetectie bij PR-indieningen en filtering van multi-remote statusgebeurtenissen. GRAIN levert v0.5.4 met productieharding en een stille fix voor gegevensverlies. Mostro Core levert v0.10.1 met PGP-ondertekende release-artefacten. Clave lanceert v0.2.0 met multi-accountondersteuning op iOS.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, uw wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Marmot Protocol levert MDK 0.8.0 met de eerste MIP-05 notificatieprimitieven, adresseerbare NIP-51 sleutelpakketten en een aangescherpte beveiligingsreview. LaWallet NWC levert v0.10.0 als de grootste release sinds de OpenSats-financiering, met een volledig beheerdersdashboard, gebruikersportemonnee, activiteitenlog van begin tot eind en het nieuwe LightningAddress 1→N en NWCConnection-schema. Amethyst voert een Nests-stabilisatiesprint uit met eliminatie van audiogaten tijdens JWT-vernieuwing, levenscyclusbewuste sleuteldata-abonnementen, relay keep-alive herverbinding en een geanimeerde indicator voor de sprekende deelnemer. ngit levert v2.4.2 en v2.4.3 met fixes voor GRASP-serverdetectie bij PR-indieningen en filtering van multi-remote statusgebeurtenissen. GRAIN levert v0.5.4 met productieharding en een stille fix voor gegevensverlies. Mostro Core levert v0.10.1 met PGP-ondertekende release-artefacten. Clave lanceert v0.2.0 met multi-accountondersteuning op iOS.&lt;/p>
&lt;h2 id="hoofdverhalen">Hoofdverhalen&lt;/h2>
&lt;h3 id="mdk-080-voegt-mip-05-notificatieprimitieven-en-adresseerbare-sleutelpakketten-toe">MDK 0.8.0 voegt MIP-05 notificatieprimitieven en adresseerbare sleutelpakketten toe&lt;/h3>
&lt;p>MDK, de Rust-kernbibliotheek voor het Marmot-protocol, leverde v0.8.0 op 4 mei. Deze release bevat de eerste MIP-05 notificatiebouwstenen, verplaatst MIP-00 sleutelpakketten naar adresseerbare gebeurtenissen zodat het sleutelpakket van een gebruiker ter plekke kan worden vervangen, verbetert de compatibiliteit van groepen met gemengde versies, breidt UniFFI-dekking voor mobiele bindingen uit en scherpt validatiepaden aan rondom beheerdersacties, commits, opslag, versleutelingsgrenzen en replay-afhandeling. MIP-05-primitieven bevatten bladindexhelpers toegevoegd in PR #235, die downstream clients voldoende informatie geven om per-ontvanger pushnotificaties te bezorgen zonder de groepsstructuur te onthullen. PR #273 herstelt de publicatie van mdk-core op crates.io, en PR #269 onthult de test_util-module achter een test-utils Cargo-functie zodat externe clienttestsuites het testharnas van Marmot kunnen delen.&lt;/p>
&lt;h3 id="lawallet-nwc-v0100-levert-het-volledige-monorepo-en-gebruikersportemonnee">LaWallet NWC v0.10.0 levert het volledige monorepo en gebruikersportemonnee&lt;/h3>
&lt;p>LaWallet NWC, de NIP-47 Nostr Wallet Connect-implementatie van het LaWallet-team, leverde v0.10.0 op 30 april. Dit is de grootste release sinds het project OpenSats-financiering ontving. Het levert het volledige monorepo, het complete beheerdersdashboard, een gebruikersportemonnee, een activiteitenlog van begin tot eind, dynamische branding en het nieuwe LightningAddress 1→N en NWCConnection-schema. De gebruikersgerichte portemonnee in PR #191 omvat onboarding, startpagina, verzenden/ontvangen, scannen, valuta&amp;rsquo;s, een activiteitenfeed en een offline cache.&lt;/p>
&lt;h3 id="amethyst-stabiliseert-nests-met-keep-alive-jwt-veerkracht-en-levenscyclusabonnementen">Amethyst stabiliseert Nests met keep-alive, JWT-veerkracht en levenscyclusabonnementen&lt;/h3>
&lt;p>Amethyst, de veelzijdige Android-client, zette het NIP-53 Nests audiokamerwerk voort met een stabilisatiesprint gericht op faalwijzen die gesprekken in productie verbraken. De audiogat-fix in PR #2733 overlapt nieuwe referentieverkrijging met de actieve stream tijdens JWT-vernieuwing. Een nieuw keep-alive-mechanisme in PR #2730 verbindt verbroken relays opnieuw zonder handmatige gebruikersactie, en PR #2728 vervangt het verouderde KeyDataSourceSubscription door LifecycleAwareKeyDataSourceSubscription. PR #2724 voegt een geanimeerde buitenringindicator toe die de sprekende deelnemer benadrukt in sessies met meerdere sprekers.&lt;/p>
&lt;h3 id="ngit-v242-en-v243-fixen-grasp-serverdetectie-en-multi-remote-statusgebeurtenissen">ngit v2.4.2 en v2.4.3 fixen GRASP-serverdetectie en multi-remote statusgebeurtenissen&lt;/h3>
&lt;p>ngit, het commandoregelgereedschap en git-plugin voor NIP-34-samenwerking, leverde v2.4.2 op 28 april en v2.4.3 op 1 mei. v2.4.2 repareert een URL-normalisatiemismatch waarbij repo_grasps genormaliseerde hostnamen bevatte maar de vergelijking plaatsvond met volledige kloon-URL&amp;rsquo;s. v2.4.3 repareert een statusgebeurtenisambiguïteit die optrad wanneer een repository meerdere nostr://-remotes heeft met dezelfde identifier.&lt;/p>
&lt;h3 id="grain-v054-brengt-productieharding-en-een-stille-fix-voor-gegevensverlies">GRAIN v0.5.4 brengt productieharding en een stille fix voor gegevensverlies&lt;/h3>
&lt;p>GRAIN, de op Go gebaseerde Nostr-relay en clientbibliotheek, leverde v0.5.4 op 30 april. De release bundelt zes geaccumuleerde fixes sinds v0.5.3, waaronder een stil gegevensverliesbug in de Docker-snelstart die eerder gebeurtenissen verwierp wanneer de container herstartte, en een opslaglaag-correctheidbug in adresseerbare gebeurtenislezingen.&lt;/p>
&lt;h3 id="mostro-core-v0101-voegt-pgp-ondertekende-release-artefacten-toe">Mostro Core v0.10.1 voegt PGP-ondertekende release-artefacten toe&lt;/h3>
&lt;p>Mostro Core, de Rust-bibliotheek die peer-to-peer-functionaliteit levert voor de Mostro-daemon, leverde v0.10.1 op 28 april. De nieuwe release voegt PGP-ondertekende release-artefacten en een release-verificatiestroom toe zodat downstream-packagers de artefactherkomst kunnen bevestigen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="clave-v020-lanceert-multi-account-op-ios-met-nip-46-nostr-connect-ondertekening">Clave v0.2.0 lanceert multi-account op iOS met NIP-46 (Nostr Connect) ondertekening&lt;/h3>
&lt;p>Clave, de iOS NIP-46 remote signing-app, leverde v0.2.0 op 5 mei. De grootste update introduceert multi-accountondersteuning: Clave kan nu tot vier accounts op één apparaat bewaren, met een éénklik-wisselaar en per-accountisolatie. PR #23 voegt de iOS-loodgieterij toe voor multi-account, en PR #22 voegt een signer_pubkey-veld toe aan de APNs-lading zodat het apparaat weet bij welk account een remote ondertekeningsverzoek hoort.&lt;/p>
&lt;h3 id="wisp-levert-v103--v105-stabiliteitswerk">Wisp levert v1.0.3 → v1.0.5 stabiliteitswerk&lt;/h3>
&lt;p>Wisp, de Android-client, leverde v1.0.3, v1.0.4 en v1.0.5 op 4 mei met stabiliteitswerk. PR #506 voegt Thumbhash toe voor wazige afbeeldingsvoorbeelden terwijl volledige media laadt, en PR #514 vermindert haperingen bij het wisselen van onderste tabbladen.&lt;/p>
&lt;h3 id="amber-610-pre1-levert-layout--en-stabiliteitsfixes">Amber 6.1.0-pre1 levert layout- en stabiliteitsfixes&lt;/h3>
&lt;p>Amber, de Android-ondertekeningsapp voor NIP-55 en NIP-46, leverde v6.1.0-pre1 met een layoutpass op de nieuwe app-verbindingsstroom en diverse crashfixes. PR #416 repareert ActivityStatsBar-layout en tekstoverloopproblemen.&lt;/p>
&lt;h3 id="routstr-core-v043-verbetert-betaling-terugbetaling-en-gebruiksrapportage">Routstr Core v0.4.3 verbetert betaling, terugbetaling en gebruiksrapportage&lt;/h3>
&lt;p>Routstr Core leverde v0.4.3 als pre-release op 1 mei met verbeteringen in betaling- en terugbetalingsafhandeling, kostentracking en gebruiksrapportage.&lt;/p>
&lt;h3 id="nostria-v3137-tm-v3141-voegen-webbladwijzers-en-een-automatisch-thema-toe">Nostria v3.1.37 t/m v3.1.41 voegen webbladwijzers en een automatisch thema toe&lt;/h3>
&lt;p>Nostria, de multi-platform Nostr-client, leverde v3.1.37 t/m v3.1.41 met NIP-B0 webbladwijzerondersteuning, een automatisch thema dat apparaatinstellingen volgt en in-app PDF-weergave.&lt;/p>
&lt;h3 id="noornote-v089-repareert-leeg-scherm-bij-eerste-start-op-desktop">NoorNote v0.8.9 repareert leeg scherm bij eerste start op desktop&lt;/h3>
&lt;p>NoorNote leverde v0.8.9 op 28 april en repareert een leegscherm-bug bij de eerste start van de desktopapp.&lt;/p>
&lt;h3 id="kubo-v034-tm-v041-lanceren-een-kindveilig-nostr-videoplatform-met-ouderlijk-toezicht-en-web-of-trust-feedcuratie">Kubo v0.3.4 t/m v0.4.1 lanceren een kindveilig Nostr-videoplatform met ouderlijk toezicht en Web of Trust-feedcuratie&lt;/h3>
&lt;p>Kubo, een kindveilig videoplatform op Nostr, leverde v0.3.4 t/m v0.4.1 op 4 en 5 mei. Elk kind krijgt een apart Nostr-sleutelpaar en een videogericht feed waarbij ouders tijdslimieten (15 tot 180 minuten per dag), toegestane tijdvensters en zichtbaarheid van plaatsingsacties beheren.&lt;/p>
&lt;h2 id="niet-uitgebrachte-wijzigingen">Niet-uitgebrachte wijzigingen&lt;/h2>
&lt;h3 id="sprout-levert-desktop-v004-en-v005-naast-nip-oa-agentauthenticatie-en-de-pair-relay-sidecar">Sprout levert Desktop v0.0.4 en v0.0.5 naast NIP-OA agentauthenticatie en de pair-relay sidecar&lt;/h3>
&lt;p>Sprout, Block&amp;rsquo;s Nostr-client met ingebouwde relay, leverde Desktop v0.0.4 op 5 mei en v0.0.5 op 6 mei. PR #471 koppelt NIP-OA agentauthenticatie aan de NIP-43 lidmaatschapsstroom van de relay zodat een autonome agent kan bewijzen dat een specifieke menselijke publieke sleutel zijn acties heeft geautoriseerd. Een nieuwe tijdelijke sidecar-relay voor NIP-AB apparaatkoppeling arriveeert in PR #467 als sprout-pair-relay.&lt;/p>
&lt;h3 id="nostream-voegt-marmot-relayondersteuning-en-nip-25-reacties-toe">nostream voegt Marmot-relayondersteuning en NIP-25-reacties toe&lt;/h3>
&lt;p>nostream, de Node.js relay-implementatie, fuseerde Marmot Protocol-relayondersteuning voor MIPs 00 t/m 03 in PR #602, NIP-25-reactieondersteuning in PR #589 en geohash-prefixmatching voor #g-filters in PR #586.&lt;/p>
&lt;h3 id="strfry-voegt-per-verbinding-observeerbaarheid-toe-en-verlaagt-nofiles-plafond">strfry voegt per-verbinding observeerbaarheid toe en verlaagt nofiles-plafond&lt;/h3>
&lt;p>strfry, de C++ Nostr-relay, fuseerde 14 PR&amp;rsquo;s gericht op observeerbaarheid. PR #218 voegt per-verbinding observeerbaarheid van uitstaande uitgaande berichten en een configureerbaar tegendrukplafond toe. PR #224 verwijdert std::function heap-allocaties uit de per-gebeurtenismonitor-fanout.&lt;/p>
&lt;h3 id="damus-vervangt-tenor-gifs-door-een-purple-proxy-en-levert-compressie-ux">Damus vervangt Tenor-GIF&amp;rsquo;s door een Purple-proxy en levert compressie-UX&lt;/h3>
&lt;p>Damus fuseerde PR #3737 dat de Tenor GIF-integratie vervangt door een Damus Purple-proxy.&lt;/p>
&lt;h3 id="primal-android-polijst-verkennen-meldingen-en-de-nip-05-geverifieerde-badge">Primal Android polijst Verkennen, meldingen en de NIP-05 geverifieerde badge&lt;/h3>
&lt;p>Primal Android fuseerde PR #1043 dat een knipperende NIP-05 geverifieerde badge repareert voor gebruikers met _@domein-identifiers.&lt;/p>
&lt;h3 id="alby-hub-voegt-nwc-betalingen-toe-vanuit-appverbindingen">Alby Hub voegt NWC-betalingen toe vanuit appverbindingen&lt;/h3>
&lt;p>Alby Hub fuseerde PR #2267 waarmee betalingen vanuit appverbindingen mogelijk worden.&lt;/p>
&lt;h3 id="routstrd-auth-een-gedockeriseerde-routstrd-voor-teams-met-nip-98-auth-en-npub-rbac">routstrd-auth: een gedocker­iseerde Routstrd voor teams met NIP-98-auth en npub RBAC&lt;/h3>
&lt;p>routstrd-auth, aangemaakt op 27 april, is een gedockeriseerde variant van Routstrd voor multi-gebruiker teamimplementaties met op npub gebaseerde rolgebaseerde toegangscontrole en NIP-98 HTTP-authenticatie.&lt;/p>
&lt;h3 id="routstrd-integreert-hermes-voor-daemonclients-en-externe-modus">Routstrd integreert Hermes voor daemonclients en externe modus&lt;/h3>
&lt;p>Routstrd fuseerde PR #22 die integratie met Hermes Agent toevoegt zodat het configuratiebestand van de agent gevuld wordt met modelleveranciers en API-sleutels die Routstrd via Nostr ontdekt.&lt;/p>
&lt;h3 id="whitenoise-rs-levert-per-account-database-isolatie-en-voorstelupgrades">whitenoise-rs levert per-account database-isolatie en voorstelupgrades&lt;/h3>
&lt;p>whitenoise-rs fuseerde PR #796 dat berichtprojectietabellen naar per-account databases verplaatst, en PR #791 voegt voorstelupgrades toe zodat groepen functionaliteit kunnen uitbreiden met nieuwe voorsteltypes.&lt;/p>
&lt;h3 id="angor-0221-levert-compacte-appstromen-naast-sleutelleverancier--en-netwerkswitchharding">Angor 0.2.21 levert compacte appstromen naast sleutelleverancier- en netwerkswitchharding&lt;/h3>
&lt;p>Angor leverde 0.2.21 op 6 mei met verbeteringen in mobiel ontwerpprestaties, compacte appstromen en een veilige sleutelleverancier.&lt;/p>
&lt;h2 id="nieuw-gevolgd-en-ontdekt">Nieuw gevolgd en ontdekt&lt;/h2>
&lt;h3 id="bitmacro-signer-een-zelf-te-hosten-nip-46-bunker-met-client-side-sleutelversleuteling">BitMacro Signer: een zelf te hosten NIP-46 bunker met client-side sleutelversleuteling&lt;/h3>
&lt;p>BitMacro Signer is een zelf te hosten Nostr-ondertekeningsgereedschap met het NIP-46 bunkermodel. Sleutels worden aan de clientzijde versleuteld vóór opslag zodat de server nooit platte tekst bezit.&lt;/p>
&lt;p>NIP-34 repository-ontdekking leverde deze week 26 nieuwe repository-aankondigingen op, waarvan vier opvallen:&lt;/p>
&lt;h3 id="gnostr-een-git-implementatie-gebouwd-direct-op-nostr">gnostr: een git-implementatie gebouwd direct op Nostr&lt;/h3>
&lt;p>gnostr is een git-implementatie gebouwd direct op Nostr, met eigen werktreeopdrachten als een from-scratch Nostr-native versiebeheerclient.&lt;/p>
&lt;h3 id="nostr-archive-een-inhoudsgeadresseerde-archiefspecificatie-op-nostr-en-blossom">nostr-archive: een inhoudsgeadresseerde archiefspecificatie op Nostr en Blossom&lt;/h3>
&lt;p>nostr-archive is een conceptspecificatie en referentie-implementatie voor inhoudsgeadresseerde archieven op Nostr en Blossom.&lt;/p>
&lt;h3 id="flower-cache-een-lokale-blossom-cacheserver">flower-cache: een lokale Blossom-cacheserver&lt;/h3>
&lt;p>flower-cache is een lokale Blossom-cacheserver, nuttig voor clients die een warme lokale spiegel willen van de blobset van een externe Blossom-server.&lt;/p>
&lt;h3 id="micro-vpn-ansible-ansible-playbooks-voor-vpn-implementatie-via-nip-34">micro-vpn-ansible: Ansible-playbooks voor VPN-implementatie via NIP-34&lt;/h3>
&lt;p>micro-vpn-ansible is een kleine verzameling Ansible-playbooks voor het implementeren van een micro-VPN, gehost als een NIP-34 repository.&lt;/p>
&lt;h2 id="protocolwerk">Protocolwerk&lt;/h2>
&lt;h3 id="nip-updates">NIP-updates&lt;/h3>
&lt;ul>
&lt;li>Een makelaarsloze hashratemarkt via Nostr (conceptvoorstel): Anoniem concept-NIP dat stelt dat huidige hashratemarktspelers bewaarnemende makelaars zijn die gebruikers KYC-screenen. Stelt een P2P-hashratemarkt op Nostr-gebeurtenissen voor.&lt;/li>
&lt;li>Curated Feeds: een eenvoudiger alternatief voor DVM-feeds (conceptvoorstel): Betoogt dat NIP-90 DVM&amp;rsquo;s te zwaar zijn voor eenvoudige feedcuratie; stelt in plaats daarvan dunne adresseerbare gebeurtenissen met geordende lijsten van gebeurtenis-ID&amp;rsquo;s voor.&lt;/li>
&lt;li>Profile Colors: deterministische visuele identiteit (conceptvoorstel): Nieuw NIP-concept voor het afleiden van deterministische leesbare kleuren van een Nostr-publieke sleutel voor consistente visuele identiteit over clients heen.&lt;/li>
&lt;li>Namecoin-Track NIPs: identiteit, relays, TLS en reputatie verankeren (conceptcluster): Een cluster van concept-NIP&amp;rsquo;s dat Nostr-stackonderdelen naar Namecoin-verankerde records verplaatst.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-diepteduik-nip-34-git-stuff">NIP-diepteduik: NIP-34 (git stuff)&lt;/h2>
&lt;p>NIP-34 definieert gebeurtenissoorten voor het hosten van git-repositories, patches, pull requests, issues en samenvoegstatus op Nostr-relays. Een repository wordt aangekondigd als een adresseerbare gebeurtenis van soort 30617. Patches gebruiken soort 1617 met git format-patch-uitvoer. Pull requests gebruiken soort 1618. Issues gebruiken soort 1621 met markdown-inhoud. Statusgebeurtenissen verplaatsen een thread tussen Open (1630), Applied/Merged of Resolved (1631), Closed (1632) en Draft (1633). Het NIP-34-verhaal deze week is hetzelfde als de GitWorkshop v2-lancering van vorige week: de PR-samenvoegknop in de browser werkt omdat GRASP-servers, ngit en het nostr://-kloon-URL-schema samen de lus sluiten op een volledig gedecentraliseerde forge.&lt;/p>
&lt;h2 id="nip-diepteduik-nip-53-live-activities">NIP-diepteduik: NIP-53 (Live Activities)&lt;/h2>
&lt;p>NIP-53 definieert het standaard gebeurtenisoppervlak voor live-activiteiten op Nostr: livestreams, persistente vergaderruimten, geplande conferentie-evenementen, aanwezigheid van luisteraars en live chat. Een livestream wordt aangekondigd als een adresseerbare gebeurtenis van soort 30311. NIP-53 scheidt de persistente ruimte van de geplande gebeurtenis die daarbinnen plaatsvindt: een soort 30312 Meeting Space definieert een ruimte, en een soort 30313 Conference Event vertegenwoordigt een geplande of lopende vergadering in die ruimte. Het Nostr live-activiteitsoppervlak is opzettelijk smal: NIP-53 kondigt de activiteit aan, terwijl andere NIP&amp;rsquo;s aangrenzende zaken afhandelen zoals zaps (NIP-57), zapdoelen (NIP-75) en video-opnames (NIP-71).&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Als u iets bouwt of nieuws wilt delen, stuur ons een DM op Nostr of bezoek nostrcompass.org.&lt;/p></content:encoded></item><item><title>Nostr Compass #20</title><link>https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#gitworkshop-levert-in-browser-pr-merge-repository-following-en-een-bandbreedte-efficiente-git-explorer">GitWorkshop&lt;/a> maakt van git-over-Nostr een vollediger codereview-oppervlak met een merge-knop voor PRs in de browser, Stars en repository following, een bandbreedte-efficiënte git explorer, kind &lt;code>1111&lt;/code> inline reviewopmerkingen en versleutelde multi-device notificatiestatus. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#routstrd-lanceert-een-lokale-router-voor-inference-over-nostr">Routstrd&lt;/a> lanceert een lokale daemon die model providers ontdekt via Nostr kind &lt;code>38421&lt;/code> announcements en ze betaalt met Cashu. Getagde releases zijn onder meer &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#ngit-v242-lost-grasp-relay-detectie-op-voor-pr-submissions">ngit v2.4.2&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#wisp-v100-verlaat-de-beta">Wisp v1.0.0&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#grain-v052-lost-websocket-lockup-op-v053-zet-polish-voort">grain v0.5.2 en v0.5.3&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#mostro-core-v0100-en-mostro-mobile-v125-nemen-nip-59-dual-key-gift-wrap-over">Mostro Core v0.10.0 en Mostro Mobile v1.2.5&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#marmot-ts-v050-levert-adresseerbare-keypackages">marmot-ts v0.5.0&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#cruxcoach-v013-levert-versleutelde-back-up-van-klimdata-met-nostr-en-blossom">CruxCoach v0.1.3&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#meiso-v130-voegt-subtaken-blossom-bijlagen-en-nip-89-tagging-toe">Meiso v1.3.0&lt;/a>, NoorNote, Nostria, Nostr Calendar, nos2x-fox, applesauce, nostr-double-ratchet en meer. Onuitgebrachte wijzigingen behandelen &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#amethyst-brengt-nests-audioruimten-vooruit-met-moq-interop-testing">Amethyst Nests&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#nostream-voegt-nip-65-relay-list-ondersteuning-en-nwc-betalingen-toe">nostream NIP-65 en NWC&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#fips-voegt-nostr-gebaseerde-udpnat-bootstrap-toe">FIPS Nostr-gebaseerde udp:nat bootstrap&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#strfry-voegt-per-verbinding-observability-toe">strfry observability&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#sprout-voegt-owner-attestation-en-multi-workspace-ondersteuning-toe">Sprout owner attestations&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#zap-cooking-voegt-recipe-packs-verwijderverzoeken-en-bunker-login-toe">Zap Cooking recipe packs&lt;/a>. Nieuw gevolgde projecten zijn onder meer &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#nostrord-een-nip-29-client-gebouwd-met-kotlin-multiplatform-en-wasm">Nostrord&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#clave-brengt-nip-46-remote-signing-naar-ios-via-apns">Clave&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#treasures-gedecentraliseerde-geocaching-op-nostr">Treasures&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#smesh-v051-self-hosted-nostr-relay-client-en-signer-in-een-stack">smesh&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#surveil-een-magic-the-gathering-deckbuilder-op-nostr">Surveil&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#kleinere-toevoegingen-fundstr-nod-city-deploy-nsite-to-pages-en-null--nostr">andere&lt;/a>. De maandelijkse terugblik behandelt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#zes-nostr-aprils">Nostr Aprils van 2021 tot 2026&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#gitworkshop-levert-in-browser-pr-merge-repository-following-en-een-bandbreedte-efficiente-git-explorer">GitWorkshop&lt;/a> maakt van git-over-Nostr een vollediger codereview-oppervlak met een merge-knop voor PRs in de browser, Stars en repository following, een bandbreedte-efficiënte git explorer, kind &lt;code>1111&lt;/code> inline reviewopmerkingen en versleutelde multi-device notificatiestatus. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#routstrd-lanceert-een-lokale-router-voor-inference-over-nostr">Routstrd&lt;/a> lanceert een lokale daemon die model providers ontdekt via Nostr kind &lt;code>38421&lt;/code> announcements en ze betaalt met Cashu. Getagde releases zijn onder meer &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#ngit-v242-lost-grasp-relay-detectie-op-voor-pr-submissions">ngit v2.4.2&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#wisp-v100-verlaat-de-beta">Wisp v1.0.0&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#grain-v052-lost-websocket-lockup-op-v053-zet-polish-voort">grain v0.5.2 en v0.5.3&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#mostro-core-v0100-en-mostro-mobile-v125-nemen-nip-59-dual-key-gift-wrap-over">Mostro Core v0.10.0 en Mostro Mobile v1.2.5&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#marmot-ts-v050-levert-adresseerbare-keypackages">marmot-ts v0.5.0&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#cruxcoach-v013-levert-versleutelde-back-up-van-klimdata-met-nostr-en-blossom">CruxCoach v0.1.3&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#meiso-v130-voegt-subtaken-blossom-bijlagen-en-nip-89-tagging-toe">Meiso v1.3.0&lt;/a>, NoorNote, Nostria, Nostr Calendar, nos2x-fox, applesauce, nostr-double-ratchet en meer. Onuitgebrachte wijzigingen behandelen &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#amethyst-brengt-nests-audioruimten-vooruit-met-moq-interop-testing">Amethyst Nests&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#nostream-voegt-nip-65-relay-list-ondersteuning-en-nwc-betalingen-toe">nostream NIP-65 en NWC&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#fips-voegt-nostr-gebaseerde-udpnat-bootstrap-toe">FIPS Nostr-gebaseerde udp:nat bootstrap&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#strfry-voegt-per-verbinding-observability-toe">strfry observability&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#sprout-voegt-owner-attestation-en-multi-workspace-ondersteuning-toe">Sprout owner attestations&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#zap-cooking-voegt-recipe-packs-verwijderverzoeken-en-bunker-login-toe">Zap Cooking recipe packs&lt;/a>. Nieuw gevolgde projecten zijn onder meer &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#nostrord-een-nip-29-client-gebouwd-met-kotlin-multiplatform-en-wasm">Nostrord&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#clave-brengt-nip-46-remote-signing-naar-ios-via-apns">Clave&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#treasures-gedecentraliseerde-geocaching-op-nostr">Treasures&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#smesh-v051-self-hosted-nostr-relay-client-en-signer-in-een-stack">smesh&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#surveil-een-magic-the-gathering-deckbuilder-op-nostr">Surveil&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#kleinere-toevoegingen-fundstr-nod-city-deploy-nsite-to-pages-en-null--nostr">andere&lt;/a>. De maandelijkse terugblik behandelt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#zes-nostr-aprils">Nostr Aprils van 2021 tot 2026&lt;/a>.&lt;/p>
&lt;h2 id="belangrijkste-verhalen">Belangrijkste verhalen&lt;/h2>
&lt;h3 id="gitworkshop-levert-in-browser-pr-merge-repository-following-en-een-bandbreedte-efficiënte-git-explorer">GitWorkshop levert in-browser PR merge, repository following en een bandbreedte-efficiënte git explorer&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev">GitWorkshop&lt;/a>, Dan Conway&amp;rsquo;s webgebaseerde collaboratielaag voor &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> git-over-Nostr, bracht deze week een grote release uit die de workflow veel dichter bij bij wat ontwikkelaars van GitHub of GitLab verwachten brengt, terwijl opmerkingen, repository-lijsten en notificaties binnen ondertekende Nostr events blijven.&lt;/p>
&lt;p>De belangrijkste toevoeging is een langverwachte merge-knop voor PRs in de browser voor repositories die GRASP relays gebruiken. De release voegt ook Stars en repository following toe, gebouwd op reacties en &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> lijsten, met vastgepinde repositorysets die worden gepubliceerd als kind &lt;code>10617&lt;/code> events die via geordende &lt;code>a&lt;/code> tags naar kind &lt;code>30617&lt;/code> repo announcements verwijzen. Profielpagina&amp;rsquo;s kunnen nu een draagbare lijst met repositories tonen.&lt;/p>
&lt;p>Een bandbreedte-efficiënte git explorer vervangt de vorige shallow clone in de browser. De nieuwe explorer leunt op het onderliggende git client/server-protocol waarop GRASP bouwt, zodat het grote repositories kan verwerken zonder de browser te dwingen een volledige pack op te halen. Zoeken bestrijkt nu gebruikersnamen en repository-metadata, aangedreven door &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50&lt;/a> en een &lt;code>ngit-indexer&lt;/code> relay-implementatie die repository announcements over het netwerk ontdekt en synchroniseert. Een repository-aanmaakworkflow in de browser maakt het ontdekkings- en onboardingpad compleet.&lt;/p>
&lt;p>Reviewtooling is opnieuw opgebouwd rond een Files Changed-tabblad, een per-patch diff viewer en een reeks experimentele nieuwe primitieven. Inline codereview-opmerkingen gebruiken kind &lt;code>1111&lt;/code>, gebouwd op &lt;a href="https://github.com/nostr-protocol/nips/blob/master/22.md">NIP-22&lt;/a>: elke opmerking verwijst naar een bestandspad (&lt;code>f&lt;/code> tag), een commit SHA (&lt;code>c&lt;/code> tag) en een geselecteerd regelbereik (&lt;code>line&lt;/code> tag) zodat een client de opmerking op de juiste positie in een diff kan renderen. Een tweede laag van experimentele primitieven wordt gemachtigd door auteur en repo-beheerders en gebruikt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/32.md">NIP-32&lt;/a> labels: hernoem een Issue- of PR-onderwerp na indiening, voeg hashtags toe na indiening, pin een versie-beheerde CoverNote bovenaan een PR of Issue voor een bewerkbare samenvatting en markeer inline codediscussie-subthreads als opgelost. Verdict events en &lt;code>suggestion&lt;/code> blokken blijven in draft en zijn nog niet uitgebracht.&lt;/p>
&lt;p>Notificatiestatus tussen apparaten wordt ook gesynchroniseerd via Nostr, maar met een privacy-vriendelijke draai. GitWorkshop genereert een dedicated notificatie-keypair, versleutelt die nsec en slaat deze op binnen een kind &lt;code>30078&lt;/code> event. De notificatie-nsec ondertekent vervolgens de daadwerkelijke notification state events. De indirectie voorkomt dat de hoofdsigner van de gebruiker wordt gespamd met frequente encrypt- en decrypt-verzoeken voor elke lees- of archiveringsactie, en het voorkomt dat externe waarnemers gemakkelijk zien wanneer een gebruiker zijn notification state aanraakt. Een gebruiker kan lees- en archiveringstatus tussen apparaten synchroniseren; relays zien alleen versleutelde blobs.&lt;/p>
&lt;h3 id="routstrd-lanceert-een-lokale-router-voor-inference-over-nostr">Routstrd lanceert een lokale router voor inference over Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/routstr/routstrd">Routstrd&lt;/a> is een nieuwe TypeScript-daemon die lokale tools een OpenAI-compatibel endpoint geeft en elk verzoek routeert naar een concurrerende &lt;a href="https://routstr.com">Routstr&lt;/a> provider. De daemon ontdekt providers via Nostr kind &lt;code>38421&lt;/code> announcements gedefinieerd in Routstr&amp;rsquo;s RIP-02 specificatie. Het scoort providers vervolgens op prijs, vertrouwen en recente prestaties onder RIP-06 en stuurt elk verzoek naar de huidige beste optie.&lt;/p>
&lt;p>Betaling loopt via een lokale Cashu-wallet beheerd door cocod en gefinancierd met Lightning. Dat geeft de client een sats-genoteerd afwikkelingspad terwijl provider discovery publiek en permissieloos blijft via Nostr relays. Als een provider tijdens een sessie faalt, kan Routstrd terugvallen op de volgende node in de rangschikking. Het installatiepad is &lt;code>bun install -g routstrd&lt;/code>, gevolgd door &lt;code>routstrd onboard&lt;/code> voor wallet- en relay-setup.&lt;/p>
&lt;p>De bredere &lt;a href="https://github.com/routstr">Routstr org&lt;/a> onderhoudt de daemon, de Python node software (&lt;code>routstr-core&lt;/code>), een chat UI en protocolspecificaties. Voor gebruikers wordt de lokale poort de stabiele interface: bestaande OpenAI-compatibele tools wijzen naar Routstrd, terwijl de daemon provider discovery, routing en betaling afhandelt.&lt;/p>
&lt;h2 id="getagde-releases">Getagde releases&lt;/h2>
&lt;h3 id="ngit-v242-lost-grasp-relay-detectie-op-voor-pr-submissions">ngit v2.4.2 lost GRASP relay-detectie op voor PR submissions&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/DanConwayDev/ngit-cli">ngit&lt;/a> bracht &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.2">v2.4.2&lt;/a> uit met een fix voor repository GRASP server-detectie, waardoor PR-indiening op het gelukkige pad blijft wanneer een voorstel de PR-kind gebruikt. Merk op dat ngit momenteel standaard de &lt;code>Patch&lt;/code>-kind gebruikt voor de meeste wijzigingen tenzij ze groot zijn; de maintainer werkt eraan om de standaardwaarde te wijzigen. &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.1">v2.4.1&lt;/a>, eerder deze week uitgebracht, verhielp &lt;code>fatal&lt;/code> fouten tijdens clone en fetch wanneer de git-data van een open PR niet beschikbaar was op de opgegeven git-servers van de repository.&lt;/p>
&lt;h3 id="wisp-v100-verlaat-de-beta">Wisp v1.0.0 verlaat de beta&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, een Kotlin en Jetpack Compose Android-client gericht op relay routing, privacy en een kleine native UI, bracht &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.0">v1.0.0&lt;/a> uit en volgde met &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.2">v1.0.2&lt;/a>. De 1.0.0-mijlpaal bundelt de Normie Mode fiat-denominatietoggle, de For You-feed, &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> relay-gebaseerde groepsconfiguratie en &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relay-list broadcasting, behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-22-newsletter/#wisp-v0180-beta-adds-normie-mode-for-you-feed-and-nip-29-group-config">Newsletter #19&lt;/a>. v1.0.2 voegt Android 15 16 KB paginagrootte-ondersteuning toe, een QR scan-tab in het drawer sheet, een downloadknop voor inline video-bediening en performancefixes voor de notificatielijst.&lt;/p>
&lt;h3 id="grain-v052-lost-websocket-lockup-op-v053-zet-polish-voort">grain v0.5.2 lost WebSocket lockup op, v0.5.3 zet polish voort&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/grain">grain&lt;/a>, de Go relay van 0ceanSlim, bracht &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.5.2">v0.5.2&lt;/a> uit als kritieke hotfix voor een WebSocket-lockup geïntroduceerd in v0.5.0, en volgde vervolgens met &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.5.3">v0.5.3&lt;/a>. De lockup zorgde ervoor dat verbindingen bleven hangen onder sommige filter- en WebSocket-paden, dus operators op v0.5.1 of v0.5.0 zouden moeten upgraden. grain volgt alle belangrijke Nostr event-categorieën, biedt NIP-11 relay-informatie, ondersteunt whitelist/blacklist toegangscontrole, per-kind rate limits, een web dashboard en een Go clientbibliotheek toegevoegd in de v0.5.x-lijn.&lt;/p>
&lt;h3 id="mostro-core-v0100-en-mostro-mobile-v125-nemen-nip-59-dual-key-gift-wrap-over">Mostro Core v0.10.0 en Mostro Mobile v1.2.5 nemen NIP-59 dual-key gift wrap over&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.10.0">Mostro Core v0.10.0&lt;/a> voegt de nieuwe &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift-wrap module toe met gescheiden identity- en trade-keys. Eerdere transportcode gebruikte één identiteitssleutel voor zowel trade-identiteit als gift wrapping. v0.10.0 scheidt de stabiele trade-identiteit van de kortstondige wrapping key, zodat elke handel een verse transportsleutel kan gebruiken terwijl de identiteit die nodig is voor het handelsprotocol behouden blijft. Daemon-integratie landt via &lt;a href="https://github.com/MostroP2P/mostro/pull/718">Mostro PR #718&lt;/a>, en &lt;a href="https://github.com/MostroP2P/mostro-cli/pull/165">mostro-cli PR #165&lt;/a> brengt dezelfde migratie naar de commandoregelclient.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.5">Mostro Mobile v1.2.5&lt;/a> verschijnt naast het protocolwerk. &lt;a href="https://github.com/MostroP2P/mobile/pull/581">PR #581&lt;/a> laat takers aanbiedingen filteren op leeftijd van de maker&amp;rsquo;s account, waardoor gebruikers pas aangemaakte maker-accounts in het orderboek kunnen vermijden. &lt;a href="https://github.com/MostroP2P/mobile/pull/580">PR #580&lt;/a> verhelpt rollabels op geannuleerde bestelgegevens en &lt;a href="https://github.com/MostroP2P/mobile/pull/576">PR #576&lt;/a> ruimt de knoppen voor coöperatieve annulering op.&lt;/p>
&lt;h3 id="marmot-ts-v050-levert-adresseerbare-keypackages">marmot-ts v0.5.0 levert adresseerbare KeyPackages&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a> bracht &lt;a href="https://github.com/marmot-protocol/marmot-ts/releases/tag/%40internet-privacy%2Fmarmot-ts%400.5.0">@internet-privacy/marmot-ts@0.5.0&lt;/a> uit, de eerste geplande breaking-change release voor de TypeScript &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> client. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/68">PR #68&lt;/a> voegt ondersteuning voor adresseerbare KeyPackages toe: &lt;code>KeyPackageManager&lt;/code> kan nu zowel legacy kind &lt;code>443&lt;/code> als nieuwe kind &lt;code>30443&lt;/code> KeyPackage-events verwerken. De release verwijdert &lt;code>KeyPackageStore&lt;/code> en de group-state opslagklassen en vervangt ze door generieke key-value stores die worden doorgegeven aan &lt;code>KeyPackageManager&lt;/code> en &lt;code>MarmotGroup&lt;/code>. Het verplaatst ook invite- en groepsbeheer naar &lt;code>MarmotClient.invites&lt;/code> en &lt;code>MarmotClient.groups&lt;/code>, dus directe embedders hebben constructor- en opslagwijzigingen nodig voordat ze kunnen upgraden.&lt;/p>
&lt;h3 id="cruxcoach-v013-levert-versleutelde-back-up-van-klimdata-met-nostr-en-blossom">CruxCoach v0.1.3 levert versleutelde back-up van klimdata met Nostr en Blossom&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/CruxCoach/CruxCoach">CruxCoach&lt;/a> is een nieuwe open-source Android-app voor Kilter Board-klimmers. De Kilter Board is een interactieve trainingsmuur waarvan de grepen via Bluetooth oplichten om routes weer te geven. De app werd op 14 april gelanceerd en bereikte op 26 april &lt;a href="https://codeberg.org/CruxCoach/CruxCoach/releases/tag/v0.1.3">v0.1.3&lt;/a>.&lt;/p>
&lt;p>v0.1.3 voegt opt-in versleutelde cloudback-up toe. Een CruxCoach-account van een gebruiker is een Nostr keypair, en de private key fungeert tevens als input voor de lokale back-up-encryptiesleutel. De app versleutelt klimdata on-device en spiegelt de ciphertext naar Blossom-opslagservers (&lt;code>blossom.primal.net&lt;/code> en &lt;code>nostr.download&lt;/code>). Delete-remote acties roepen het Blossom cleanup pad aan. Naast back-up gebruikt CruxCoach &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing voor Amber-ondersteuning, &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> privé DMs voor in-app ontwikkelaarscontact, &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relay lists voor relay discovery en Vitor Pamplona&amp;rsquo;s &lt;a href="https://github.com/vitorpamplona/quartz">Quartz&lt;/a> library voor Nostr-plumbing. Gebruikers kunnen het installeren via Zapstore of directe Codeberg APKs.&lt;/p>
&lt;h3 id="meiso-v130-voegt-subtaken-blossom-bijlagen-en-nip-89-tagging-toe">Meiso v1.3.0 voegt subtaken, Blossom-bijlagen en NIP-89 tagging toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/higedamc/meiso">Meiso&lt;/a> is een minimalistische Flutter-taakbeheerder voor Android die taken opslaat als &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> versleutelde kind &lt;code>30078&lt;/code> application data op Nostr relays. &lt;a href="https://github.com/higedamc/meiso/releases/tag/v1.3.0">v1.3.0&lt;/a>, uitgebracht op 6 april, voegt subtaken toe met parent/child-relaties, taaklinks voor blocks/blocked-by/related-to/duplicate-of, afbeeldingsbijlagen via Blossom en &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> HTTP file upload endpoints, een &lt;a href="https://github.com/nostr-protocol/nips/blob/master/89.md">NIP-89&lt;/a> aanbevolen-applicatie &lt;code>client&lt;/code> tag op gepubliceerde events en een Go commandoregel sync-tool. v1.3.0 verhelpt ook cold-start relaygedrag en hergebruik van Amber-client.&lt;/p>
&lt;h3 id="noornote-nostria-nostr-calendar-nos2x-fox-en-library-releases">NoorNote, Nostria, Nostr Calendar, nos2x-fox en library releases&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a> publiceerde &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.7">v0.8.7&lt;/a>, &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.8">v0.8.8&lt;/a> en &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.9">v0.8.9&lt;/a>. Die releases verhelpen click handling voor afbeeldingen en video&amp;rsquo;s in geciteerde reposts, voegen lightbox-ondersteuning toe voor long-form artikelafbeeldingen en verhelpen het blanke desktop-startscherm. &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> bracht &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.29">v3.1.29&lt;/a>, &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.30">v3.1.30&lt;/a> en &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.31">v3.1.31&lt;/a> uit, met toevoeging van afbeeldingscompressie in de artikeleditor, een wallet USD-toggle, promotionele-kaart bediening, PDF-ondersteuning en mobiele lay-outverbeteringen.&lt;/p>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.4.1">Nostr Calendar v1.4.1&lt;/a> ontkoppelt calendar event-publicatie van calendar-list beheer en verhelpt tracking van uitnodigingen. &lt;a href="https://github.com/diegogurpegui/nos2x-fox/releases/tag/v1.19.0">nos2x-fox v1.19.0&lt;/a> voegt aangepaste autorisatietijdvensters toe voor Firefox NIP-07 browser-signing grants. &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.97">nostr-double-ratchet v0.0.97&lt;/a> levert nieuwe binaries. &lt;a href="https://github.com/nostr-wot/nostr-wot-sdk/releases/tag/nostr-wot-sdk%400.9.0">nostr-wot-sdk 0.9.0&lt;/a> mount &lt;code>NostrSessionProvider&lt;/code> standaard, en &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/535">nostr-tools PR #535&lt;/a> voegt multi-relay parsing-ondersteuning toe voor NIP-47 wallet-connect strings.&lt;/p>
&lt;p>Aan het einde van de week bracht &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0-pre1">Amber v6.1.0-pre1&lt;/a> een pre-release uit met een betere layout voor het verbinden van nieuwe apps, signer-dialoog fixes, verbeterde notification permission handling en gerefactorde accountselectie. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.14">nostr-vpn v0.3.14&lt;/a> leverde een verse build met macOS Apple Silicon, Linux en Windows artifacts. &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.8">Bitcredit Core v0.5.7-hotfix-1 en v0.5.8&lt;/a> leverden opeenvolgende fixes voor een orphaned-block validatieprobleem. &lt;a href="https://gitlab.com/chad.curtis/surveil/-/tags/v0.1.6">Surveil v0.1.6&lt;/a> bracht mobiele UI-polish en een vernieuwde About-pagina; het project zelf wordt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-29-newsletter/#surveil-een-magic-the-gathering-deckbuilder-op-nostr">hieronder&lt;/a> geïntroduceerd.&lt;/p>
&lt;h3 id="applesauce-600-verwijdert-legacy-event-factories-en-voegt-blossom-uri-parsing-toe">applesauce 6.0.0 verwijdert legacy event factories en voegt Blossom URI parsing toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/applesauce">applesauce&lt;/a>, hzrd149&amp;rsquo;s TypeScript Nostr toolkit, bracht een 6.0.0 release-trein uit over de monorepo. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%406.0.0">applesauce-core@6.0.0&lt;/a> verwijdert de legacy &lt;code>EventFactory&lt;/code> klasse en oude &lt;code>buildEvent&lt;/code>, &lt;code>modifyEvent&lt;/code> en &lt;code>createEvent&lt;/code> helpers, en duwt aanroepers naar de nieuwere factoryklassen in &lt;code>applesauce-core/factories&lt;/code> en &lt;code>applesauce-common&lt;/code>. Het voegt ook IP-adres- en localhost-verwerking toe aan link parsing, BUD-10 Blossom URI reguliere expressies en nieuwe observable helpers zoals &lt;code>timeoutWithIgnore&lt;/code>, &lt;code>combineLatestBy&lt;/code>, &lt;code>combineLatestByIndex&lt;/code> en &lt;code>combineLatestByKey&lt;/code>.&lt;/p>
&lt;p>Releases op pakketniveau vullen de Nostr-specifieke stukken in. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-content%406.0.0">applesauce-content@6.0.0&lt;/a> voegt BUD-10 Blossom URI-nodes toe voor tekst en Markdown, waardoor renderers een first-class manier krijgen om Blossom-referenties in content te parsen. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-actions%406.0.0">applesauce-actions@6.0.0&lt;/a> voegt base factoryklassen toe voor NIP-51 lijsten die relays, gebruikers en items dekken, waardoor lijstconstructie minder ad hoc wordt. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-wallet-connect%406.0.0">applesauce-wallet-connect@6.0.0&lt;/a> exposeert &lt;code>WalletConnect.connectURI&lt;/code>, zodat apps direct toegang hebben tot een bestaande NIP-47 wallet-connect URI.&lt;/p>
&lt;h2 id="onuitgebrachte-wijzigingen">Onuitgebrachte wijzigingen&lt;/h2>
&lt;h3 id="amethyst-brengt-nests-audioruimten-vooruit-met-moq-interop-testing">Amethyst brengt Nests audioruimten vooruit met MoQ interop testing&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> merged deze week verschillende Nests-gerichte PRs, voortbouwend op de &lt;a href="https://datatracker.ietf.org/group/moq/about/">Media over QUIC&lt;/a> audioruimte-stack van vorige week. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2622">PR #2622&lt;/a> voegt een cross-client interop harness toe die de Amethyst MoQ-client afzet tegen de referentie webimplementatie. Het doel is Android/browser wire-level divergentie op te vangen voordat gebruikers erop stuiten. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2625">PR #2625&lt;/a> verbetert picture-in-picture speakerfocus en verbindingsstatus, terwijl &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2620">PR #2620&lt;/a> avatars, mute-status en spraakstatus in het deelnemersgrid verduidelijkt. Later in de week verhelpt &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2634">PR #2634&lt;/a> IME padding en window insets in de volledig-schermweergave van Nest en voegt &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2635">PR #2635&lt;/a> presence-gebaseerde freshness filtering toe aan de Nests-feed. Los daarvan verwijdert &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2627">PR #2627&lt;/a> Amethyst&amp;rsquo;s aangepaste C secp256k1-implementatie en migreert naar &lt;code>libschnorr256k1&lt;/code>.&lt;/p>
&lt;h3 id="nostream-voegt-nip-65-relay-list-ondersteuning-en-nwc-betalingen-toe">nostream voegt NIP-65 relay list-ondersteuning en NWC-betalingen toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> merged drie opmerkelijke PRs na de 53-PR relay-sprint van vorige week. Ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relay-list metadata landt in &lt;a href="https://github.com/Cameri/nostream/pull/585">PR #585&lt;/a>, zodat de relay kind &lt;code>10002&lt;/code> relay-list events kan indexeren en serveren. Een Nostr Wallet Connect payments-processor volgt in &lt;a href="https://github.com/Cameri/nostream/pull/539">PR #539&lt;/a> en voegt een pay-to-relay pad toe. Verbindingsopruiming verbetert in &lt;a href="https://github.com/Cameri/nostream/pull/438">PR #438&lt;/a>, dat een dood-verbindingsbug sluit waarbij sockets met actieve abonnementen niet werden opgeruimd, waardoor het aantal abonnementen zou wegdrijven op langlopende instances.&lt;/p>
&lt;h3 id="fips-voegt-nostr-gebaseerde-udpnat-bootstrap-toe">FIPS voegt Nostr-gebaseerde udp:nat bootstrap toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a>, het Free Internetworking Peering System eerder behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking">Newsletter #6&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#fips-v020-ships-tor-transport-reproducible-builds-and-sidecar-examples">Newsletter #10&lt;/a>, merged &lt;a href="https://github.com/jmcorgan/fips/pull/53">PR #53&lt;/a> met Nostr-gebaseerde &lt;code>udp:nat&lt;/code> bootstrap. De wijziging laat nodes Nostr-adverts publiceren, versleutelde offer/answer-signalering uitwisselen, publieke adressen ontdekken via STUN, UDP hole punching uitvoeren en de gepuncte socket doorgeven aan de normale FIPS-transportstack. De implementatie bindt signaal-payload-identiteiten aan de daadwerkelijke Nostr-afzender, doet inbox-lookups op geconfigureerde DM- en advert-relays en rolt mislukte overgenomen-traversal handoffs terug zodat verweesde UDP-transporten niet actief blijven. Dit is het Nostr-aankondigings- en NAT-traversal-werk om te volgen in de canonieke repo, &lt;code>jmcorgan/fips&lt;/code>.&lt;/p>
&lt;h3 id="strfry-voegt-per-verbinding-observability-toe">strfry voegt per-verbinding observability toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> merged &lt;a href="https://github.com/hoytech/strfry/pull/214">PR #214&lt;/a>, waarmee per-verbinding observability en verbindings-niveau metrics worden toegevoegd die exporteerbaar zijn via Prometheus. &lt;a href="https://github.com/hoytech/strfry/pull/204">PR #204&lt;/a> normaliseert Prometheus-labels, en &lt;a href="https://github.com/hoytech/strfry/pull/215">PR #215&lt;/a> voegt een Community Integrations sectie toe aan de docs die Namecoin-identiteitsprojecten behandelt die bovenop strfry zijn gebouwd.&lt;/p>
&lt;h3 id="sprout-voegt-owner-attestation-en-multi-workspace-ondersteuning-toe">Sprout voegt Owner Attestation en multi-workspace-ondersteuning toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout">Sprout&lt;/a>, Block&amp;rsquo;s Nostr-client, merged &lt;a href="https://github.com/block/sprout/pull/406">PR #406&lt;/a> waarmee NIP-OA (Owner Attestation) wordt geïmplementeerd. De feature geeft een autonome agent een cryptografisch bewijs dat een specifieke menselijke pubkey zijn acties heeft geautoriseerd. &lt;a href="https://github.com/block/sprout/pull/409">PR #409&lt;/a> voegt multi-workspace-ondersteuning toe aan de desktop-app, &lt;a href="https://github.com/block/sprout/pull/411">PR #411&lt;/a> voegt &lt;code>#channel&lt;/code> autocomplete toe aan mobile compose, en &lt;a href="https://github.com/block/sprout/pull/410">PR #410&lt;/a> sluit een race-window dat actieve channel-berichten kon laten wegvallen. &lt;a href="https://github.com/block/sprout/pull/413">PR #413&lt;/a> introduceert NIP-RS voor cross-device read state sync, en vervolg-&lt;a href="https://github.com/block/sprout/pull/420">PR #420&lt;/a> en &lt;a href="https://github.com/block/sprout/pull/422">PR #422&lt;/a> sluiten die read state aan op de mobiele ongelezen badges.&lt;/p>
&lt;h3 id="zap-cooking-voegt-recipe-packs-verwijderverzoeken-en-bunker-login-toe">Zap Cooking voegt recipe packs, verwijderverzoeken en bunker login toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a> merged een productieve week aan recipe-publishing werk. &lt;a href="https://github.com/nostr-protocol/nips/blob/master/09.md">NIP-09&lt;/a> verwijderverzoeken voor eigen Recipe Packs van een gebruiker landen in &lt;a href="https://github.com/zapcooking/frontend/pull/367">PR #367&lt;/a>. Publicatiebetrouwbaarheid verbetert via &lt;a href="https://github.com/zapcooking/frontend/pull/366">PR #366&lt;/a>, die elk nieuw recept dwingt op de garden relay en een retry-queue toevoegt voor de gedeelde recept-set. Een-klik authored pack publishing landt in &lt;a href="https://github.com/zapcooking/frontend/pull/365">PR #365&lt;/a>, en &lt;a href="https://github.com/zapcooking/frontend/pull/331">PR #331&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> bunker login-ondersteuning toe.&lt;/p>
&lt;h3 id="whitenoise-rs-versleutelt-zijn-lokale-database">Whitenoise-rs versleutelt zijn lokale database&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> merged &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/758">PR #758&lt;/a>, waarmee SQLCipher-versleuteling wordt toegevoegd voor de on-disk Whitenoise-database. Dat sluit een langlopend at-rest beveiligingsgat voor de Marmot-daemon stack. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/775">PR #775&lt;/a> exposeert groepsvereiste capabilities, &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/772">PR #772&lt;/a> migreert groepsmedia-operaties naar session-owned &lt;code>MediaOps&lt;/code>, en &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/773">PR #773&lt;/a> extraheert een &lt;code>SharedServices&lt;/code>-houder als onderdeel van de session-ops refactor. Aan de mobiele kant schakelt &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/577">whitenoise PR #577&lt;/a> boot auto-restart in voor de Android foreground-service, waarmee het geval wordt opgelost waarbij de daemon niet terugkwam na een herstart van het apparaat.&lt;/p>
&lt;h2 id="nieuw-gevolgd-en-ontdekt">Nieuw gevolgd en ontdekt&lt;/h2>
&lt;h3 id="nostrord-een-nip-29-client-gebouwd-met-kotlin-multiplatform-en-wasm">Nostrord: een NIP-29 client gebouwd met Kotlin Multiplatform en WASM&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a> is een nieuwe &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> group-chat client gericht op de Discord-vervanging use case. Groepen leven op Nostr relays met relay-afgedwongen lidmaatschap, rollen, moderatie en toegangscontrole, dus groepsstatus wordt gehost door de geselecteerde NIP-29 relay. De client-ontwikkelaar beheert geen aparte applicatiedatabase voor die groepen. De web-app draait op &lt;a href="https://web.nostrord.com">web.nostrord.com&lt;/a> en is gebouwd met Kotlin Multiplatform dat compileert naar WebAssembly, met native Android-, iOS- en desktopbuilds in ontwikkeling. Nostrord is een &lt;a href="https://opensats.org">OpenSats&lt;/a> grantontvanger en werkt interop met dezelfde NIP-29 relays die door Flotilla, Chachi en 0xChat worden gebruikt.&lt;/p>
&lt;h3 id="clave-brengt-nip-46-remote-signing-naar-ios-via-apns">Clave brengt NIP-46 remote signing naar iOS via APNs&lt;/h3>
&lt;p>&lt;a href="https://github.com/DocNR/clave">Clave&lt;/a> is een iOS remote signer in beta die Nostr events ondertekent wanneer de app niet open is. De private key blijft in de iPhone Keychain. Wanneer een client een &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote-signing verzoek verzendt, levert een server-side proxy een Apple Push Notification, die tot 30 seconden een Notification Service Extension wekt. Die extensie decodeert het verzoek met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> versleuteling, ondertekent met de Keychain-sleutel en publiceert het antwoord. Device token registratie gebruikt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a> HTTP Auth om token hijacking te voorkomen. Clave ondersteunt &lt;code>bunker://&lt;/code> en &lt;code>nostrconnect://&lt;/code> pairing, per-client vertrouwensniveaus, per-kind overrides, en is getest met Nostur en noStrudel.&lt;/p>
&lt;h3 id="treasures-gedecentraliseerde-geocaching-op-nostr">Treasures: gedecentraliseerde geocaching op Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/treasures">Treasures&lt;/a> is een geocaching-platform waar caches en vondsten ondertekende Nostr events zijn. Cache-makers publiceren kind &lt;code>37516&lt;/code> adresseerbare events met GPS-coördinaten. Vinders loggen ontdekking door een QR-code te scannen die aan de fysieke cache is bevestigd; de code codeert de creator pubkey, de cache &lt;code>d&lt;/code> tag en een verificatie-private key die als bewijs van het fysieke bezoek wordt gebruikt. &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zaps kunnen van vinders naar cache-makers stromen, en de live app is beschikbaar op &lt;a href="https://treasures.to">treasures.to&lt;/a>.&lt;/p>
&lt;h3 id="smesh-v051-self-hosted-nostr-relay-client-en-signer-in-één-stack">smesh v0.5.1: self-hosted Nostr relay, client en signer in één stack&lt;/h3>
&lt;p>&lt;a href="https://git.smesh.lol/smesh/smesh">smesh&lt;/a> is een self-hosted Nostr-stack geschreven in Moxie, een aangepaste taal afgeleid van Go en TinyGo door mleku. De stack levert een native relay-binary met HTTP, WebSocket, AUTH, search en Blossom-ondersteuning; &lt;code>sm3sh&lt;/code>, een webclient gecompileerd naar ES modules; en een browser signer-extensie met NIP-07 browser signing plus NIP-04 en NIP-44 versleutelingsondersteuning. Recent werk omvat MLS (RFC 9420) groepsberichten in v0.5.0, negentropy set reconciliation voor relay-sync en een Web of Trust graph engine. De code leeft op mleku&amp;rsquo;s self-hosted forge op &lt;code>git.smesh.lol&lt;/code>, gebouwd met zijn eigen &lt;code>git-web&lt;/code> tool. De gerelateerde &lt;a href="https://git.smesh.lol/smesh/gitea-nostr-auth">gitea-nostr-auth&lt;/a> repo is een OAuth2/OIDC-brug voor Gitea: gebruikers authenticeren met een NIP-07 browser signer, de brug ontdekt relays via NIP-65 en Gitea ontvangt standaard OIDC identity claims.&lt;/p>
&lt;h3 id="surveil-een-magic-the-gathering-deckbuilder-op-nostr">Surveil: een Magic: The Gathering deckbuilder op Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/surveil">Surveil&lt;/a> is een Nostr-client voor Magic: The Gathering-spelers waarmee gebruikers kaarten kunnen zoeken, decks kunnen bouwen, papieren kaarten kunnen scannen op Android met on-device ML Kit OCR en decks kunnen delen over het netwerk. Decks worden gepubliceerd als kind &lt;code>37381&lt;/code> adresseerbare events, en de deck event-specificatie is gedocumenteerd in het &lt;code>NIP.md&lt;/code> van het project. De sociale laag is gebouwd uit standaard Nostr-primitieven: NIP-22 (kind &lt;code>1111&lt;/code>) threaded comments scoped naar elk deck, NIP-25 (kind &lt;code>7&lt;/code>) reacties, &lt;a href="https://github.com/nostr-protocol/nips/blob/master/78.md">NIP-78&lt;/a> (kind &lt;code>30078&lt;/code>) profieldata voor speler-homes, kind &lt;code>3&lt;/code> follow-feeds, en forks die een &lt;code>a&lt;/code> tag terug dragen naar het originele deck. &lt;a href="https://gitlab.com/chad.curtis/surveil/-/tags/v0.1.6">v0.1.6&lt;/a> verscheen deze week met mobiele UI-polish, verbeteringen aan de life counter, een vernieuwde About-pagina en een relay pill op de deck hero banner. De web-app draait overal waar statische HTML wordt geserveerd, de Android-build wordt geleverd via &lt;a href="https://zapstore.dev">Zapstore&lt;/a>, en kind &lt;code>37381&lt;/code> events worden ook native geïndexeerd door &lt;a href="https://about.ditto.pub/reference">Ditto&lt;/a> als Magic-decks. De repo staat op GitLab op &lt;a href="https://gitlab.com/chad.curtis/surveil">chad.curtis/surveil&lt;/a>.&lt;/p>
&lt;h3 id="kleinere-toevoegingen-fundstr-nod-city-deploy-nsite-to-pages-en-null--nostr">Kleinere toevoegingen: Fundstr, Nod City, deploy-nsite-to-pages en null&amp;ndash;nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/ritty65/Fundstr">Fundstr&lt;/a> is een creator-fundingplatform op Nostr dat Cashu ecash gebruikt voor eenmalige en terugkerende pledges, met creator tier-definities en Nostr DMs. &lt;a href="https://nod.city">Nod City&lt;/a> is een Bitcoin-service reviewsite waar reviews ondertekende Nostr events zijn en reviewers zaps kunnen ontvangen; geen publieke source repo gevonden. &lt;a href="https://github.com/Origami74/deploy-nsite-to-pages">deploy-nsite-to-pages&lt;/a> is een GitHub Action die een nsite spiegelt naar GitHub Pages door &lt;code>nsyte download&lt;/code> te gebruiken, met ondersteuning voor root kind &lt;code>15128&lt;/code> en named kind &lt;code>35128&lt;/code> nsites. &lt;a href="https://github.com/tami1A84/null--nostr">null&amp;ndash;nostr&lt;/a>, ook ontdekt in de NIP-34-data van deze week, is de client behandeld in de recente OpenSats-golf als Nurunuru; het ondersteunt MLS groepsberichten, Amber, NIP-50 search, NIP-70 protected posts, ProofMode badges en Zapstore-distributie.&lt;/p>
&lt;p>FIPS is geen nieuw project voor Compass. Het werd behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking">Newsletter #6&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#fips-v020-ships-tor-transport-reproducible-builds-and-sidecar-examples">Newsletter #10&lt;/a>. De database wijst nu naar de juiste canonieke repo, &lt;a href="https://github.com/jmcorgan/fips">jmcorgan/fips&lt;/a>, en de NIP-34-ontdekking van deze week bracht ook gerelateerde git-over-Nostr mirrors zoals &lt;code>fips&lt;/code> en &lt;code>awesome-fips&lt;/code> naar voren.&lt;/p>
&lt;h2 id="protocolwerk">Protocolwerk&lt;/h2>
&lt;h3 id="nip-updates">NIP-updates&lt;/h3>
&lt;p>Recente voorstellen en discussies in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Deze week gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-34 git repositories: verwijder ongebruikte refs tag-extensie&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2325">PR #2325&lt;/a>): Verwijdert een &lt;code>refs&lt;/code> tag-extensie uit &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> die was gedefinieerd maar ongebruikt bleef. De opruiming vermindert implementatie-onduidelijkheid voor git-over-Nostr tools.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-34 git repositories: verwijder onjuiste NIP-09 claim&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2326">PR #2326&lt;/a>): Verwijdert een onjuiste claim dat &lt;a href="https://github.com/nostr-protocol/nips/blob/master/09.md">NIP-09&lt;/a> deletion events repository-status kunnen resetten. NIP-09 deletion is een client-side event-deletion verzoek, geen repository state machine. De correctie voorkomt dat NIP-34-implementors deletion-hints als gezaghebbend behandelen voor repo-resets.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open en implementatie-gedreven werk:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>GitWorkshop kind &lt;code>1111&lt;/code> inline reviewopmerkingen&lt;/strong>: De inline code review comment-kind is gedocumenteerd in GitWorkshop&amp;rsquo;s &lt;code>NIP.md&lt;/code> en is nu in actief gebruik, maar is nog niet als formele NIP voorgesteld. Verdict events (kind &lt;code>7321&lt;/code>) en &lt;code>suggestion&lt;/code> blokken blijven in draft en zijn nog niet uitgebracht. Implementatiefeedback van GitWorkshop en ngit zal bepalen of de vormen een op zichzelf staande git-review NIP worden of een applicatieconventie blijven bovenop NIP-34.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Nostr mail core en Nostrmon&lt;/strong>: Twee nieuwe custom-NIP drafts circuleerden deze week. &lt;a href="https://njump.me/57d11cdf2f9ed73f7f39d6a7a6012ee3d642584ab11887f96a031f7d00fd9697">Nostr mail core&lt;/a> stelt kind &lt;code>1301&lt;/code> voor voor RFC 2822 e-mailinhoud, gewikkeld met NIP-59 voor private levering en gebrugd naar legacy e-mail via NIP-05-opgeloste brug-pubkeys. &lt;a href="https://njump.me/5e9a8cee19d464f5f0322518ac9ccaf2399c69da6572346b4fb12d36acb17a27">Nostrmon&lt;/a> schetst adresseerbare event-kinds voor regio&amp;rsquo;s, kaarten, wezens, NPCs, spelersaves en items. Beide blijven custom drafts, geen gemergede NIPs.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-67: EOSE Completeness Hint&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2317">PR #2317&lt;/a>): Het voorstel blijft itereren op het toevoegen van een positieve completeness-marker aan &lt;code>EOSE&lt;/code>, waarmee relays kunnen onderscheiden tussen &amp;ldquo;opgeslagen events volledig geleverd&amp;rdquo; en legacy &lt;code>EOSE&lt;/code> gevallen waarin de relay geen completeness-claim maakt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="zes-nostr-aprils">Zes Nostr aprils&lt;/h2>
&lt;p>April biedt een schone dwarsdoorsnede van Nostr&amp;rsquo;s ontwikkelingspad: het protocoldocument in 2021, vroeg client-werk in 2022, de post-Damus applicatiegolf in 2023, private messaging en git-over-Nostr werk in 2024, Blossom en relay-list opruiming in 2025, en adoption-gerichte client-grants in 2026.&lt;/p>
&lt;h3 id="april-2021-het-protocoldocument-voor-de-nips-repo">April 2021: het protocoldocument voor de NIPs-repo&lt;/h3>
&lt;p>Fiatjaf publiceerde het oorspronkelijke Nostr-artikel, &lt;a href="https://fiatjaf.com/nostr.html">&amp;ldquo;Notes and Other Stuff Transmitted by Relays&amp;rdquo;&lt;/a>, op 20 november 2020. Die eerste tekst bevatte al de kernvorm die het protocol nog steeds definieert: gebruikers ondertekenen events met sleutels, publiceren ze naar relays en lezen van relays die zij kiezen. Het &lt;a href="https://github.com/nostr-protocol/nostr/commits?since=2021-04-01&amp;amp;until=2021-04-30">&lt;code>nostr-protocol/nostr&lt;/code> commit log&lt;/a> toont geen commits tussen 1 april en 30 april. Activiteit zit aan beide zijden: maart 2021 commits voegden vroege &amp;ldquo;nostwitter&amp;rdquo; links en een &lt;code>kind&lt;/code> filter toe, terwijl mei 2021 NIP-02 hergebruikte en NIP-authorship toevoegde.&lt;/p>
&lt;p>In april 2021 was er geen publieke client-markt, geen zichtbaar relay-netwerk en geen NIPs-repo. Het protocol leefde nog als een klein document en enkele experimenten. Nostr was nog geen sociaal netwerk of ontwikkelplatform geworden. Het was nog steeds een relay/key/event model dat wachtte op zijn eerste aanhoudende contributor-golf.&lt;/p>
&lt;h3 id="april-2022-nips-leefden-nog-in-de-hoofdrepo">April 2022: NIPs leefden nog in de hoofdrepo&lt;/h3>
&lt;p>April 2022 was de laatste maand voordat NIPs uit de hoofd &lt;code>nostr-protocol/nostr&lt;/code> repo werden verplaatst. Omdat de splitsing nog niet had plaatsgevonden, had de dedicated &lt;a href="https://github.com/nostr-protocol/nips">&lt;code>nostr-protocol/nips&lt;/code>&lt;/a> repo geen april pull-request geschiedenis. In de hoofdrepo landden drie april-commits: &lt;a href="https://github.com/nostr-protocol/nostr/commit/bae286312a233b971bee5429adda7aff41747eb8">&amp;ldquo;Update readme to add nip12&amp;rdquo;&lt;/a> op 8 april door goswami1999, &lt;a href="https://github.com/nostr-protocol/nostr/commit/4b9e9d123273ba8a5c70d77df46922070c11c11d">&amp;ldquo;add kinds list&amp;rdquo;&lt;/a> op 25 april door jb55, en &lt;a href="https://github.com/nostr-protocol/nostr/commit/759997657f07e0344064228ffe5e93febe85d367">&amp;ldquo;add js formatting to sample code&amp;rdquo;&lt;/a> op 28 april door steliosrammos.&lt;/p>
&lt;p>Client-werk begon ook vorm te krijgen. Damus-commits van april 2022 voegden vroeg chatroom-gedrag, profielverwerking en app-iconen toe, terwijl nostr-tools het JavaScript-bibliotheekpad werd voor vroege clients en experimenten. Aan de protocolkant gaf NIP-12 generic tag queries tag search een gedocumenteerde plaats, verplaatste de kinds list Nostr naar een registrymodel en maakten betere JavaScript-voorbeelden de spec makkelijker om te implementeren voor client- en libraryauteurs. Op 1 mei verplaatste fiatjaf NIPs naar de dedicated repo. April 2022 was de laatste maand van het originele single-repo tijdperk.&lt;/p>
&lt;h3 id="april-2023-post-damus-applicatie-expansie">April 2023: post-Damus applicatie-expansie&lt;/h3>
&lt;p>April 2023 kwam drie maanden na de lancering van Damus in de iOS App Store op 31 januari 2023, en nadat Jack Dorsey zijn Nostr publieke sleutel had gepost. Het netwerk had zojuist zijn eerste grote publieke groeigolf verwerkt. Clients zoals Damus, Snort, Iris, Coracle en Amethyst waren actief, terwijl relay-operators leerden wat een grotere sociale graaf deed met bandbreedte-, spam-, search- en moderatie-aannames.&lt;/p>
&lt;p>April 2023 had één gemergede NIPs PR: &lt;a href="https://github.com/nostr-protocol/nips/pull/456">PR #456&lt;/a>, gemerged op 17 april, die NIP-19 bech32 entity-links aan NIP-21 URI-verwerking toevoegde. De omringende commits laten de applicatiedruk zien achter het protocolwerk. April 2023 zag werk aan &lt;a href="https://github.com/nostr-protocol/nips/commit/8b39976e78f90fe766ad7149e250777cddacbb5e">NIP-45 COUNT&lt;/a>, event-specifieke zap markers, &lt;a href="https://github.com/nostr-protocol/nips/commit/bf0a0da6a48b96467172414d8e41dc72b0ca379c">NIP-15 marketplace&lt;/a>, NIP-26 delete delegation-semantiek, NIP-94 file metadata, NIP-47 wallet-connect error handling en &lt;a href="https://github.com/nostr-protocol/nips/commit/e91ce3409e1ce8267fc07a21784d2538621267c3">NIP-30 custom emoji&lt;/a>. De contributorlijst was uitgebreid met fiatjaf, staab, pablof7z, Semisol, CodyTseng, sethforprivacy, mikedilger, AsaiToshiya, alexgleason, martindsq, frbittencourt en arkin0x.&lt;/p>
&lt;p>Damus, Snort, Iris, Coracle en Amethyst waren geen demo&amp;rsquo;s meer rond een spec; ze waren productieclients die te maken hadden met onboarding, feeds, spam, zaps, media en relay-selectie. Het protocolwerk van april 2023 leest als de backlog die deze clients creëerden: zaps, marktplaatsen, file metadata, tellen, emoji en identiteitslinks duwden de spec allemaal voorbij eenvoudige notes en follows.&lt;/p>
&lt;h3 id="april-2024-private-messaging-git-over-nostr-en-maintainer-ondersteuning">April 2024: private messaging, git-over-Nostr en maintainer-ondersteuning&lt;/h3>
&lt;p>April 2024 had twee NIP PR-merges. &lt;a href="https://github.com/nostr-protocol/nips/pull/1167">PR #1167&lt;/a>, gemerged op 10 april, verhielp verwarrende terminologie in &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing, waar clients en signers exacte taal nodig hebben voor gevraagde en geautoriseerde acties. &lt;a href="https://github.com/nostr-protocol/nips/pull/1108">PR #1108&lt;/a>, gemerged op 17 april, breidde &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> git repositories uit met status events, verduidelijkingen, optionele maintainers, repo-identifiers en discoverability tags. Die stap maakte git-over-Nostr praktischer voor ngit en later GitWorkshop.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/commit/df30012430c88d49fb5b124992b04d5c61b6338b">NIP-17&lt;/a>, voorheen NIP-24, landde op 24 april als sealed gift-wrapped messages voor private DMs en kleine groepschats. Client- en librarywerk liep ernaast: Amethyst, Primal, Gossip, nostr-tools, NDK en rust-nostr waren allemaal actief in dezelfde periode.&lt;/p>
&lt;p>OpenSats kondigde in april 2024 ook long-term support aan voor Nostr-ontwikkelaars: &lt;a href="https://opensats.org/blog/pablofz7-receives-lts-grant">PabloF7z&lt;/a> op 9 april, &lt;a href="https://opensats.org/blog/stuart-bowman-receives-lts-grant">Stuart Bowman&lt;/a> op 12 april en &lt;a href="https://opensats.org/blog/hzrd149-receives-lts-grant">hzrd149&lt;/a> op 15 april. Die grants verplaatsten de financiering van geïsoleerde projectgrants naar aanhoudend onderhoud van relays, libraries en client-infrastructuur.&lt;/p>
&lt;h3 id="april-2025-dichte-nip-opruiming-en-blossom-formalisatie">April 2025: dichte NIP-opruiming en Blossom-formalisatie&lt;/h3>
&lt;p>April 2025 was de dichtste protocolmaand in deze terugblik, met zestien gemergede NIPs PRs. De maand begon met &lt;a href="https://github.com/nostr-protocol/nips/pull/1846">PR #1846&lt;/a>, waarmee blockchain-transacties en -adressen aan NIP-73 werden toegevoegd, en &lt;a href="https://github.com/nostr-protocol/nips/pull/1865">PR #1865&lt;/a>, waarmee NIP-C0 tags aan de standardized tags table werden toegevoegd. Het ging verder met &lt;a href="https://github.com/nostr-protocol/nips/pull/1801">PR #1801&lt;/a> en &lt;a href="https://github.com/nostr-protocol/nips/pull/1889">PR #1889&lt;/a>, beide met verbetering van kind &lt;code>10002&lt;/code> relay-list republicatie-richtlijnen, en &lt;a href="https://github.com/nostr-protocol/nips/pull/1879">PR #1879&lt;/a>, die &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> verkleinde en verduidelijkte.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/1822">PR #1822&lt;/a> voegde NIP-B7 toe voor Blossom-interactie en gaf Nostr-clients en Blossom-servers een canonieke coördinatielaag na meer dan een jaar informele praktijk. &lt;a href="https://github.com/nostr-protocol/nips/pull/1051">PR #1051&lt;/a> deprecateerde &lt;a href="https://github.com/nostr-protocol/nips/blob/master/26.md">NIP-26&lt;/a>, de delegated event signing spec. NIP-26 was moeilijk veilig te implementeren geweest en werd minder aantrekkelijk naarmate NIP-46 en andere signer-patronen volwassen werden.&lt;/p>
&lt;p>De rest van de maand combineerde opruiming met applicatie-expansie: &lt;a href="https://github.com/nostr-protocol/nips/pull/1882">PR #1882&lt;/a> voegde privacy policy- en terms of service-velden toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a>, &lt;a href="https://github.com/nostr-protocol/nips/pull/1849">PR #1849&lt;/a> breidde kind &lt;code>39701&lt;/code> web bookmarks uit onder NIP-B0, &lt;a href="https://github.com/nostr-protocol/nips/pull/1891">PR #1891&lt;/a> voegde die bookmark-kind toe aan de README en &lt;a href="https://github.com/nostr-protocol/nips/pull/1895">PR #1895&lt;/a> voegde NIP-B0 standardized tags toe. OpenSats kondigde zijn &lt;a href="https://opensats.org/blog/eleventh-wave-of-nostr-grants">Eleventh Wave of Nostr Grants&lt;/a> aan op 16 april en financierde Swae, HAMSTR, Vertex, Nostr Double Ratchet en Nostr Game Engine. Primal, Coracle, noStrudel, nostr-tools, NDK en rust-nostr leverden ook door deze periode, zodat de protocolopruiming naast actief client- en librarywerk zat.&lt;/p>
&lt;h3 id="april-2026-nip-34-hardening-badges-en-adoption-gerichte-grants">April 2026: NIP-34 hardening, badges en adoption-gerichte grants&lt;/h3>
&lt;p>April 2026, de maand waarin dit nummer wordt afgesloten, had vier gemergede NIPs PRs. De eerste was &lt;a href="https://github.com/nostr-protocol/nips/pull/2276">PR #2276&lt;/a>, gemerged op 1 april, die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/58.md">NIP-58&lt;/a> profile badges veranderde in kind &lt;code>10008&lt;/code> en kind &lt;code>30008&lt;/code> badge sets toevoegde, waardoor badge-toewijzing en badge-collecties beter samenstelbaar werden. Een tweede git-over-Nostr bruikbaarheidswijziging kwam in &lt;a href="https://github.com/nostr-protocol/nips/pull/2312">PR #2312&lt;/a>, gemerged op 10 april, met de toevoeging van &lt;code>nostr://&lt;/code> clone URL-semantiek aan &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a>. De opruimingen van 25 april, &lt;a href="https://github.com/nostr-protocol/nips/pull/2325">PR #2325&lt;/a> en &lt;a href="https://github.com/nostr-protocol/nips/pull/2326">PR #2326&lt;/a>, verwijderden ongebruikte en onjuiste NIP-34-taal.&lt;/p>
&lt;p>Gerelateerde commits maken dezelfde oppervlakken scherper. Op 22 april voegde fiatjaf een Blossom-serverlijst toe aan NIP-51 en paste NIP-29 metadata editing aan om overeen te komen met Flotilla&amp;rsquo;s PUT-stijl gedrag. Op 26 april hernoemde hij NIP-5A voor de duidelijkheid. April 2026 richtte zich op het gemakkelijker maken om reeds gebruikte protocoloppervlakken te implementeren en moeilijker om ze verkeerd te lezen.&lt;/p>
&lt;p>OpenSats kondigde zijn &lt;a href="https://opensats.org/blog/sixteenth-wave-of-nostr-grants">Sixteenth Wave of Nostr Grants&lt;/a> aan op 8 april, ter ondersteuning van Amethyst Desktop, Nostr Mail, Nostrord, Nurunuru (null&amp;ndash;nostr) en een HAMSTR-verlenging: desktopclients, e-mail-achtige messaging, group UX, Japanse onboarding en off-grid connectiviteit.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Bedankt voor het lezen van Nostr Compass #20. &lt;a href="https://nostr.com">Stuur ons een DM op Nostr&lt;/a> met tips, correcties of nieuwe projecten om te behandelen.&lt;/em>&lt;/p></content:encoded></item><item><title>Nostr Compass #19</title><link>https://nostrcompass.org/nl/newsletters/2026-04-22-newsletter/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-04-22-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> levert een grote update rond &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>, communities en MoQ-audiorooms. &lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> stabiliseert pay-per-use internettoegang over Nostr en Cashu in v0.1.0, en &lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> sluit een week relaywerk af rond &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a>, compressie, query hardening en volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> parity. Forgesworn publiceert een volledige signing-, identity- en paid-API-stack voor Nostr. ShockWallet blijft Nostr-native Lightning-walletflows doorontwikkelen. De Formstr-suite (Pollerama, Forms, Calendar) merge&amp;rsquo;t 26 PR&amp;rsquo;s rond security hardening en RRULE support. StableKraft, Keep, topaz, WoT Relay, Flotilla en NipLock ronden de shipping-lijst af. De deep dives behandelen &lt;a href="https://nostrcompass.org/nl/topics/nip-72/">NIP-72&lt;/a> moderated communities en &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zaps.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> levert een grote update rond &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>, communities en MoQ-audiorooms. &lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> stabiliseert pay-per-use internettoegang over Nostr en Cashu in v0.1.0, en &lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> sluit een week relaywerk af rond &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a>, compressie, query hardening en volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> parity. Forgesworn publiceert een volledige signing-, identity- en paid-API-stack voor Nostr. ShockWallet blijft Nostr-native Lightning-walletflows doorontwikkelen. De Formstr-suite (Pollerama, Forms, Calendar) merge&amp;rsquo;t 26 PR&amp;rsquo;s rond security hardening en RRULE support. StableKraft, Keep, topaz, WoT Relay, Flotilla en NipLock ronden de shipping-lijst af. De deep dives behandelen &lt;a href="https://nostrcompass.org/nl/topics/nip-72/">NIP-72&lt;/a> moderated communities en &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zaps.&lt;/p>
&lt;h2 id="top-stories">Top Stories&lt;/h2>
&lt;h3 id="amethyst-ships-marmot-mip-compliance-nip-72-communities-zap-goals-and-moq-audio-rooms">Amethyst ships Marmot MIP compliance, NIP-72 communities, zap goals, and MoQ audio rooms&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> merge&amp;rsquo;de deze week 57 PR&amp;rsquo;s. De hoofdthema&amp;rsquo;s zijn encrypted-group compliance voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>, first-class moderated communities, zap goals op live streams en een nieuwe audiorooms-stack gebouwd op Media over QUIC.&lt;/p>
&lt;p>Aan de Marmot-kant brengt &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2462">PR #2462&lt;/a> de embedded &lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a>-implementatie in lijn met MIP-01 en MIP-05, inclusief VarInt-encoding van TLS-achtige length prefixes en round-trip-validatie tegen MDK-testvectors. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2435">PR #2435&lt;/a> voegt MIP-00 KeyPackage Relay List support toe, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2436">PR #2436&lt;/a> sluit admin- en mediagaten uit cross-client tests met White Noise, en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2466">PR #2466&lt;/a> plus &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2471">PR #2471&lt;/a> repareren MLS commit framing en outer-layer decryptie. De vervolg-PR&amp;rsquo;s &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2477">PR #2477&lt;/a> en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2493">PR #2493&lt;/a> dichten de resterende commit- en message-encryptiongaten en voegen een volledige cryptografische validator toe. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2488">PR #2488&lt;/a> levert daarnaast &lt;code>amy&lt;/code>, een CLI voor Marmot- en MLS-groepsoperaties.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2468">PR #2468&lt;/a> voegt first-class &lt;a href="https://nostrcompass.org/nl/topics/nip-72/">NIP-72&lt;/a> community creation en management toe, inclusief kind &lt;code>34550&lt;/code> community definitions, moderator- en relay hints, posting via &lt;code>a&lt;/code>-tags en approvalbeheer via kind &lt;code>4549&lt;/code>. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2469">PR #2469&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-75/">NIP-75&lt;/a> zap goals toe aan het &lt;a href="https://nostrcompass.org/nl/topics/nip-53/">NIP-53&lt;/a> Live Activities-scherm, met progress bars, one-tap zaps en een top-zappers leaderboard op basis van kind &lt;code>9735&lt;/code> receipts. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2494">PR #2494&lt;/a> brengt ten slotte een Media over QUIC-client en audio-rooms support, terwijl &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2487">PR #2487&lt;/a> het Public Chats-scherm toevoegt.&lt;/p>
&lt;h3 id="tollgate-v010-stabilizes-pay-per-use-internet-over-nostr-and-cashu">TollGate v0.1.0 stabilizes pay-per-use internet over Nostr and Cashu&lt;/h3>
&lt;p>&lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> bracht op 21 april &lt;a href="https://github.com/OpenTollGate/tollgate/releases/tag/v0.1.0">v0.1.0&lt;/a> uit, de eerste getagde snapshot van zijn specification set voor pay-per-use network access. Het protocol laat een apparaat dat connectiviteit kan afschermen, zoals een WiFi-router of Bluetooth-tether, prijzen adverteren, &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> ecash accepteren en sessies beheren via prepaid lokale tokens in plaats van accounts of abonnementen.&lt;/p>
&lt;p>De release fixeert drie architectuurlagen. &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/TIP-01.md">TIP-01&lt;/a> definieert Advertisement-, Session- en Notice-events. &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/TIP-02.md">TIP-02&lt;/a> legt Cashu-betalingen daarbovenop, zodat klanten tokens van elke geadverteerde mint kunnen inwisselen. &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/HTTP-01.md">HTTP-01&lt;/a> tot en met HTTP-03 definiëren een plain-HTTP-oppervlak voor beperktere apparaten, &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/NOSTR-01.md">NOSTR-01&lt;/a> beschrijft het Nostr-relaytransport en &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/WIFI-01.md">WIFI-01&lt;/a> de captive-portal routinglaag.&lt;/p>
&lt;p>Het betaalmiddel is een bearer token, zodat een klant met een lokale Cashu-wallet de eerste minuut connectiviteit kan kopen zonder voorafgaande internettoegang. TollGates kunnen ook uplink van elkaar kopen, wat het bereik voorbij één operator duwt. De nieuwe &lt;a href="https://nostrcompass.org/nl/topics/tollgate/">TollGate topic page&lt;/a> behandelt de volledige laagstapel.&lt;/p>
&lt;h3 id="nostream-merges-53-prs-for-nip-45-nip-62-compression-and-query-hardening">nostream merges 53 PRs for NIP-45, NIP-62, compression, and query hardening&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> merge&amp;rsquo;de 53 PR&amp;rsquo;s in één week rond nieuwe NIP-support, queryperformance, security hardening en operationele polish. &lt;a href="https://github.com/Cameri/nostream/pull/522">PR #522&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a> &lt;code>COUNT&lt;/code>-support toe, &lt;a href="https://github.com/Cameri/nostream/pull/544">PR #544&lt;/a> adverteert &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> right-to-vanish, &lt;a href="https://github.com/Cameri/nostream/pull/548">PR #548&lt;/a> laat uppercase tag filters toe en &lt;a href="https://github.com/Cameri/nostream/pull/514">PR #514&lt;/a> voegt gzip- en xz-compressie toe aan import en export van events.&lt;/p>
&lt;p>Aan de correctheids- en securitykant brengt &lt;a href="https://github.com/Cameri/nostream/pull/534">PR #534&lt;/a> een benchmarkharnas en SQL-optimalisatie, &lt;a href="https://github.com/Cameri/nostream/pull/524">PR #524&lt;/a> vervangt prefix matching voor whitelist/blacklist pubkeys door exact-match checks, &lt;a href="https://github.com/Cameri/nostream/pull/553">PR #553&lt;/a> maakt &lt;code>upsertMany&lt;/code> deterministisch bij gelijke &lt;code>created_at&lt;/code>-waarden en &lt;a href="https://github.com/Cameri/nostream/pull/493">PR #493&lt;/a> beperkt vertrouwen in &lt;code>X-Forwarded-For&lt;/code> tot geconfigureerde trusted proxies. &lt;a href="https://github.com/Cameri/nostream/pull/557">PR #557&lt;/a> brengt de relay bovendien naar volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> parity.&lt;/p>
&lt;h2 id="shipping-this-week">Shipping This Week&lt;/h2>
&lt;h3 id="primal-android-ships-explore-tab-nip-05-verification-and-audio-player">Primal Android ships Explore tab, NIP-05 verification, and audio player&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> bouwde door op de feed-redesign van vorige week met 11 nieuwe PR&amp;rsquo;s. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1021">PR #1021&lt;/a> introduceert een Explore-tab rond populaire gebruikers, follow packs en curated feeds, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1015">PR #1015&lt;/a> voegt een feed editor toe, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/994">PR #994&lt;/a> levert NIP-05-verificatie-UI en &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/997">PR #997&lt;/a> een inline audiospeler. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1018">PR #1018&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> nostr-connect-pairing toe vanuit de wallet-QR-scanner.&lt;/p>
&lt;h3 id="strfry-adds-prometheus-write-path-metrics-and-fixes-nip-42-auth-envelope">strfry adds Prometheus write-path metrics and fixes NIP-42 AUTH envelope&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> bracht operatorgerichte verbeteringen uit. &lt;a href="https://github.com/hoytech/strfry/pull/194">PR #194&lt;/a> voegt Prometheus write-path metrics toe, &lt;a href="https://github.com/hoytech/strfry/pull/197">PR #197&lt;/a> logt bytes up/down en compressieratio&amp;rsquo;s per verbinding, en &lt;a href="https://github.com/hoytech/strfry/pull/192">PR #192&lt;/a> maakt de filter-taglimiet runtime-configureerbaar. &lt;a href="https://github.com/hoytech/strfry/pull/201">PR #201&lt;/a> wijzigt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/42.md">NIP-42&lt;/a> AUTH-fouten van &lt;code>NOTICE&lt;/code> naar de &lt;code>OK&lt;/code> envelope die de NIP voorschrijft.&lt;/p>
&lt;h3 id="shopstr-hardens-storefront-security-across-13-prs">Shopstr hardens storefront security across 13 PRs&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> merge&amp;rsquo;de 13 PR&amp;rsquo;s die grotendeels door security fixes worden gedomineerd. &lt;a href="https://github.com/shopstr-eng/shopstr/pull/434">PR #434&lt;/a> sluit stored JavaScript in storefrontlinks, &lt;a href="https://github.com/shopstr-eng/shopstr/pull/417">PR #417&lt;/a> blokkeert reflected XSS in storefront policy-rendering, &lt;a href="https://github.com/shopstr-eng/shopstr/pull/418">PR #418&lt;/a> sluit een ongeauthenticeerde cached-event deletion API en &lt;a href="https://github.com/shopstr-eng/shopstr/pull/433">PR #433&lt;/a> maakt cached-message reads auth-verplicht. Andere fixes behandelen SSRF, veilige replay van failed-relay publish queues, wallet-event fetches en discount-hervalidatie.&lt;/p>
&lt;h3 id="nostria-v3126-through-v3128-add-background-music-playback-on-android">Nostria v3.1.26 through v3.1.28 add background music playback on Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> bracht zes releases uit van &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.22">v3.1.22&lt;/a> tot &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.28">v3.1.28&lt;/a>. De hoofdfunctie in &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.26">v3.1.26&lt;/a> is achtergrondmuziekweergave op Android, inclusief mediabediening in de notificatiebalk en op het lockscreen. De vervolgreleases harden dat nieuwe media-service-oppervlak.&lt;/p>
&lt;h3 id="wisp-v0180-beta-adds-normie-mode-for-you-feed-and-nip-29-group-config">Wisp v0.18.0-beta adds Normie Mode, For You feed, and NIP-29 group config&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> bracht &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.18.0-beta">v0.18.0-beta&lt;/a> uit op 16 april. &lt;a href="https://github.com/barrydeen/wisp/pull/462">PR #462&lt;/a> voegt een Normie Mode met fiatbedragen toe, &lt;a href="https://github.com/barrydeen/wisp/pull/464">PR #464&lt;/a> vernieuwt onboarding en &lt;a href="https://github.com/barrydeen/wisp/pull/469">PR #469&lt;/a> bouwt een For You-feed. Aan protocolzijde voegt &lt;a href="https://github.com/barrydeen/wisp/pull/471">PR #471&lt;/a> &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> group configuration toe en &lt;a href="https://github.com/barrydeen/wisp/pull/478">PR #478&lt;/a> repareert AUTH-volgorde voor groepsacties.&lt;/p>
&lt;h3 id="noornote-v084-adds-scheduled-posts-and-live-stream-zapping">NoorNote v0.8.4 adds Scheduled Posts and live stream zapping&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a> bracht &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.4">v0.8.4&lt;/a> en &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.5">v0.8.5&lt;/a> uit. v0.8.4 voegt Scheduled Posts toe via een NoorNote-relay die een volledig ondertekend event op het ingestelde moment publiceert, zodat private keys het apparaat niet verlaten. Diezelfde release voegt one-tap zapping toe vanaf live-stream cards via &lt;a href="https://nostrcompass.org/nl/topics/nip-53/">NIP-53&lt;/a>. v0.8.5 repareert een timeline deduplication bug.&lt;/p>
&lt;h3 id="topaz-v002-ships-a-nostr-relay-for-android">topaz v0.0.2 ships a Nostr relay for Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/topaz">topaz&lt;/a>, een nieuwe Nostr-relay van fiatjaf die op Android-telefoons draait, publiceerde &lt;a href="https://github.com/fiatjaf/topaz/releases/tag/v0.0.2">v0.0.2&lt;/a> op 2026-04-17. De scope is nog smal maar bruikbaar: een werkende relay in een installeerbaar Android-pakket.&lt;/p>
&lt;h3 id="stablekraft-v100-ships-the-first-stable-music-and-podcast-pwa-release">StableKraft v1.0.0 ships the first stable music-and-podcast PWA release&lt;/h3>
&lt;p>&lt;a href="https://github.com/ChadFarrow/stablekraft-app">StableKraft&lt;/a> is een Next.js PWA voor het ontdekken en streamen van muziek uit podcastfeeds, met Nostr voor auth en social features en Lightning voor V4V-betalingen. Het project bereikte &lt;a href="https://github.com/ChadFarrow/stablekraft-app/releases/tag/v1.0.0">v1.0.0&lt;/a> op 2026-04-18. In dezelfde week verkleinde het team de nightly reparse-window en verstevigde feed-ingestie met OPML-cache en illegal-XML stripping.&lt;/p>
&lt;h3 id="niplock-ships-a-nip-17-based-password-manager">NipLock ships a NIP-17-based password manager&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/npub1z5jf78uhd68znuwwwu926th55rzd0wy8nd9clkr03cx22mwme0jqazk56h/relay.ngit.dev/passwd">NipLock&lt;/a> is een password manager die credentials op meerdere apparaten opslaat en synchroniseert via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> gift-wrapped direct messages. Elke password entry is een NIP-17 DM van de sleutel van de gebruiker naar zichzelf, zodat dezelfde events repliceren naar elk apparaat dat met dezelfde sleutel authenticeert. Signing werkt met een ruwe &lt;code>nsec&lt;/code>, browserextensies zoals &lt;a href="https://github.com/fiatjaf/nos2x">nos2x&lt;/a> of &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> via &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>.&lt;/p>
&lt;h3 id="flotilla-budabit-polishes-its-nip-34-repo-surface">flotilla-budabit polishes its NIP-34 repo surface&lt;/h3>
&lt;p>De Budabit-fork van &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, &lt;a href="https://github.com/Pleb5/flotilla-budabit">flotilla-budabit&lt;/a>, bracht een cluster fixes uit voor zijn NIP-34 git-over-Nostr-workflow. De week herstelt repo-discussiebediening, houdt sticky tabs zichtbaar, laadt repo-announcements van opgeslagen GRASP-relays en synchroniseert maintainer-applied patch status.&lt;/p>
&lt;h3 id="rx-nostr-372-through-374-add-default-verifier-and-optional-constructor-args">rx-nostr 3.7.2 through 3.7.4 add default verifier and optional constructor args&lt;/h3>
&lt;p>&lt;a href="https://github.com/penpenpng/rx-nostr">rx-nostr&lt;/a> bracht &lt;a href="https://github.com/penpenpng/rx-nostr/releases/tag/rx-nostr%403.7.2">3.7.2&lt;/a>, &lt;a href="https://github.com/penpenpng/rx-nostr/releases/tag/rx-nostr%403.7.3">3.7.3&lt;/a> en &lt;a href="https://github.com/penpenpng/rx-nostr/releases/tag/rx-nostr%403.7.4">3.7.4&lt;/a> uit. &lt;a href="https://github.com/penpenpng/rx-nostr/pull/192">PR #192&lt;/a> voegt een default Schnorr verifier toe, een bijpassende &lt;code>crypto@3.1.6&lt;/code> corrigeert een &lt;code>@noble/curves&lt;/code>-bug en &lt;a href="https://github.com/penpenpng/rx-nostr/pull/195">PR #195&lt;/a> maakt de argumenten van &lt;code>createRxNostr()&lt;/code> optioneel.&lt;/p>
&lt;h3 id="keep-android-v100-ships-with-reproducible-builds-and-zero-trackers">Keep Android v1.0.0 ships with reproducible builds and zero trackers&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> bracht &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v1.0.0">v1.0.0&lt;/a> uit op 21 april. &lt;a href="https://github.com/privkeyio/keep-android/pull/241">PR #241&lt;/a> voegt een reproduceerbaar buildrecept toe, &lt;a href="https://github.com/privkeyio/keep-android/pull/248">PR #248&lt;/a> vervangt Google ML Kit door ZXing om Google Play Services te verwijderen en &lt;a href="https://github.com/privkeyio/keep-android/pull/252">PR #252&lt;/a> publiceert een Exodus Privacy-scan met nul trackers op de releasebuild.&lt;/p>
&lt;h3 id="flotilla-173-and-174-add-kind-9-wrapping-for-richer-nip-29-rooms">Flotilla 1.7.3 and 1.7.4 add kind-9 wrapping for richer NIP-29 rooms&lt;/h3>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groups-client van hodlbod, bracht &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.3">1.7.3&lt;/a> en &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.4">1.7.4&lt;/a> uit. De belangrijkste protocolwijziging is kind-9-wrapping van niet-chat-contenttypes, waardoor polls, kalenderitems en andere objecten hun roomcontext behouden wanneer ze in een groep worden geplaatst. Dezelfde releaselijn voegt polls, Aegis URL scheme support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> login, native share support, room mentions, drafts, video in calls en feed-paginationverbeteringen toe.&lt;/p>
&lt;h3 id="wot-relay-v021-migrates-eventstore-to-lmdb">WoT Relay v0.2.1 migrates eventstore to LMDB&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/wot-relay">WoT Relay&lt;/a> bracht &lt;a href="https://github.com/bitvora/wot-relay/releases/tag/v0.2.1">v0.2.1&lt;/a> uit op 2026-04-22. &lt;a href="https://github.com/bitvora/wot-relay/pull/97">PR #97&lt;/a> migreert de eventstore naar LMDB en stemt de bootstrap-fetches opnieuw af zodat de relay zijn initiële trust graph kan opbouwen zonder upstream read budgets uit te putten. &lt;a href="https://github.com/bitvora/wot-relay/pull/99">PR #99&lt;/a> werkt &lt;code>golang.org/x/crypto&lt;/code> bij en &lt;a href="https://github.com/bitvora/wot-relay/pull/100">PR #100&lt;/a> actualiseert de geadverteerde &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> software-URL en versie.&lt;/p>
&lt;h3 id="formstr-suite-pollerama-security-pass-forms-i18n-calendar-rrule-support">Formstr suite: Pollerama security pass, Forms i18n, Calendar RRULE support&lt;/h3>
&lt;p>De Formstr-suite merge&amp;rsquo;de 26 PR&amp;rsquo;s over Pollerama, Formstr Forms en Nostr Calendar, met een duidelijke securityfocus in de polling-app en featurewerk in de rest. &lt;a href="https://pollerama.fun">Pollerama&lt;/a> hardent key handling met logout-expiry voor cached DMs, secure browser storage voor lokale sleutels en defensieve &lt;code>JSON.parse&lt;/code> rond kind &lt;code>0&lt;/code>-profielen. &lt;a href="https://formstr.app">Formstr&lt;/a> voegt audio- en video-URL support, i18n en een Google Forms-importer toe, plus een fix die gevoelige key-logs uit de browserconsole verwijdert.&lt;/p>
&lt;p>&lt;a href="https://calendar.formstr.app">Nostr Calendar by Formstr&lt;/a> bracht &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.3.0">v1.3.0&lt;/a> en &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.4.0">v1.4.0&lt;/a> op dezelfde dag uit, met als hoofdfunctie een echte recurrence-rule-laag. &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/107">PR #107&lt;/a> voegt multiple en custom RRULE support toe, &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/101">PR #101&lt;/a> interpreteert floating RRULE-datums als UTC en andere PR&amp;rsquo;s voegen gedeelde events, list-level notification preferences en een vernieuwde loginflow toe. Alle drie de projecten bouwen voort op &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a>.&lt;/p>
&lt;h3 id="also-shipped-notedeck-nostrblue-cliprelay-captains-log">Also shipped: notedeck, nostr.blue, cliprelay, Captain&amp;rsquo;s Log&lt;/h3>
&lt;p>Een handvol clients bracht iteratieve releases uit zonder grote headline-functies. &lt;a href="https://github.com/damus-io/notedeck">notedeck&lt;/a> publiceerde &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.4">v0.10.0-beta.4&lt;/a> met fixes voor kolomrendering en relaypools. &lt;a href="https://github.com/patrickulrich/nostr.blue/releases/tag/v0.8.6">nostr.blue v0.8.6&lt;/a> trok Dioxus 0.7.5 binnen en maakte de Android-build weer mogelijk. &lt;a href="https://github.com/tajava2006/cliprelay">cliprelay&lt;/a> bracht desktop- en Android-updates uit voor clipboard-sync via Nostr, en &lt;a href="https://github.com/nodetec/comet">Captain&amp;rsquo;s Log&lt;/a> publiceerde alpha-builds met liveness detection voor sync-relays.&lt;/p>
&lt;h2 id="in-development">In Development&lt;/h2>
&lt;h3 id="whitenoise-rs-refactors-to-session-scoped-account-views">whitenoise-rs refactors to session-scoped account views&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a>, de Rust-daemon onder de &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-client, merge&amp;rsquo;de 15 PR&amp;rsquo;s die een meerfasige refactor van globale singletons naar &lt;code>AccountSession&lt;/code>-views per account voortzetten. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/743">PR #743&lt;/a> zette de &lt;code>AccountSession&lt;/code>- en &lt;code>AccountManager&lt;/code>-scaffolding neer, waarna vervolgfases relay handles, drafts en settings, message ops, group read/write, membership, push notifications, key-package reads, group creation en uiteindelijk event dispatch naar session-owned oppervlakken migreerden.&lt;/p>
&lt;h3 id="white-noise-app-adds-blockunblock-ui-leave-group-and-offline-notices">White Noise app adds block/unblock UI, leave-group, and offline notices&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> voegde de ontbrekende group-lifecycle controls toe. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/578">PR #578&lt;/a> levert block/unblock UI, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/571">PR #571&lt;/a> en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/572">PR #572&lt;/a> koppelen Rust-side &lt;code>clear_chat&lt;/code>, &lt;code>delete_chat&lt;/code> en &lt;code>leave_and_delete_group&lt;/code> aan de app, en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/569">PR #569&lt;/a> plus &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/576">PR #576&lt;/a> tonen offline notices wanneer de daemon zijn relays niet kan bereiken. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/585">PR #585&lt;/a> vernauwt &amp;ldquo;delete all key packages&amp;rdquo; naar legacy key packages.&lt;/p>
&lt;h3 id="mdk-adds-mixed-version-invite-support-and-selfupdate-convergence">MDK adds mixed-version invite support and SelfUpdate convergence&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> merge&amp;rsquo;de zeven PR&amp;rsquo;s rond compatibiliteit en robustness. &lt;a href="https://github.com/marmot-protocol/mdk/pull/261">PR #261&lt;/a> berekent &lt;code>RequiredCapabilities&lt;/code> als de LCD van invitee capabilities, waardoor mixed-version invites tussen Amethyst en White Noise werken. &lt;a href="https://github.com/marmot-protocol/mdk/pull/264">PR #264&lt;/a> brengt SelfUpdate wire formats tussen implementaties samen, terwijl andere PR&amp;rsquo;s malformed invitees opvangen, admin depletion-validatie repareren en state in het in-memory opslagbackend beschermen.&lt;/p>
&lt;h3 id="nostter-adds-nip-44-encryption-across-people-lists-bookmarks-and-mutes">nostter adds NIP-44 encryption across people lists, bookmarks, and mutes&lt;/h3>
&lt;p>&lt;a href="https://github.com/SnowCait/nostter">nostter&lt;/a> merge&amp;rsquo;de tien PR&amp;rsquo;s. &lt;a href="https://github.com/SnowCait/nostter/pull/2088">PR #2088&lt;/a>, &lt;a href="https://github.com/SnowCait/nostter/pull/2089">PR #2089&lt;/a> en &lt;a href="https://github.com/SnowCait/nostter/pull/2090">PR #2090&lt;/a> migreren mute lists, bookmarks en people lists naar &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encryption, terwijl &lt;a href="https://github.com/SnowCait/nostter/pull/2087">PR #2087&lt;/a> een legacy mute-migratiepad verwijdert.&lt;/p>
&lt;h3 id="zapcooking-ships-nourish-scoring-and-a-reusable-comment-thread">zap.cooking ships Nourish scoring and a reusable comment thread&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">zap.cooking&lt;/a> merge&amp;rsquo;de 20 PR&amp;rsquo;s. De hoofdfunctie is een nieuwe Nourish recipe-scoring module, terwijl een vierfasige refactor de commentsmodule uitwerkt tot een herbruikbare &lt;code>CommentThread&lt;/code>. Andere polish omvat recipe scaling, een uniforme media-uploadknop en een profile Replies-tab.&lt;/p>
&lt;h3 id="ridestr-extracts-shared-rider-coordinator">ridestr extracts shared rider coordinator&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">ridestr&lt;/a> merge&amp;rsquo;de tien PR&amp;rsquo;s die Compose-schermen opsplitsen in scherpere componenten en rider- en driverprotocol­logica in een gedeelde &lt;code>:common&lt;/code> coordinator-module onderbrengen. &lt;a href="https://github.com/variablefate/ridestr/pull/60">PR #60&lt;/a> voegt daarnaast een kind &lt;code>3189&lt;/code> driver-ping receiver toe.&lt;/p>
&lt;h3 id="blossom-drafts-a-bud-01-sunset-header-for-blob-expiration">Blossom drafts a BUD-01 Sunset header for blob expiration&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a> opende &lt;a href="https://github.com/hzrd149/blossom/pull/99">PR #99&lt;/a> om een &lt;code>Sunset&lt;/code>-header aan BUD-01 toe te voegen. Daarmee kan een server een toekomstige timestamp adverteren waarop een blob niet langer zal worden geserveerd, zodat clients kunnen plannen rond beperkte retention zonder eerst een 404 te moeten treffen.&lt;/p>
&lt;h2 id="new-projects">New Projects&lt;/h2>
&lt;h3 id="forgesworn-publishes-a-29-repo-cryptographic-toolkit-for-nostr">Forgesworn publishes a 29-repo cryptographic toolkit for Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/forgesworn">Forgesworn&lt;/a> publiceerde in vijf dagen 29 open-source repositories rond signing, identity, attestations, web-of-trust en paid-API discovery op Nostr. De signing-stack rust op &lt;a href="https://github.com/forgesworn/nsec-tree">nsec-tree&lt;/a>, een deterministic sub-identity derivation scheme, en op &lt;a href="https://github.com/forgesworn/heartwood">Heartwood&lt;/a>, een NIP-46 remote signer die op een Raspberry Pi draait met Tor standaard aan. &lt;a href="https://github.com/forgesworn/sapwood">Sapwood&lt;/a>, &lt;a href="https://github.com/forgesworn/heartwood-esp32">heartwood-esp32&lt;/a> en &lt;a href="https://github.com/forgesworn/nsec-tree-cli">nsec-tree-cli&lt;/a> vullen die signinglaag aan.&lt;/p>
&lt;p>Aan identity- en trustzijde bracht &lt;a href="https://github.com/forgesworn/signet">Signet&lt;/a> &lt;a href="https://github.com/forgesworn/signet/releases/tag/v1.6.0">v1.6.0&lt;/a> uit als decentralized identity verification protocol, &lt;a href="https://github.com/forgesworn/nostr-attestations">nostr-attestations&lt;/a> definieert een kind &lt;code>31000&lt;/code> credential-event en &lt;a href="https://github.com/forgesworn/nostr-veil">nostr-veil&lt;/a> bouwt een privacy-preserving web of trust met LSAG ring signatures. Aan monetisatiezijde levert &lt;a href="https://github.com/forgesworn/toll-booth">toll-booth&lt;/a> L402-middleware voor meerdere runtimes, &lt;a href="https://github.com/forgesworn/toll-booth-dvm">toll-booth-dvm&lt;/a> exposeert gated APIs als &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> DVM en andere repos publiceren 402-service discovery op Nostr.&lt;/p>
&lt;h3 id="shockwallet-ships-nostr-native-lightning-wallet-sync-and-multi-node-connections">ShockWallet ships Nostr-native Lightning wallet sync and multi-node connections&lt;/h3>
&lt;p>&lt;a href="https://github.com/shocknet/wallet2">ShockWallet&lt;/a> is een Lightning-wallet die Nostr als transport gebruikt voor verbinding met self-custodial Lightning-nodes. De app pairt via een &lt;code>nprofile&lt;/code> met een of meer &lt;a href="https://github.com/shocknet/Lightning.Pub">Lightning.Pub&lt;/a>-nodes en signet betalingsautorisaties end-to-end tussen wallet en node. &lt;a href="https://github.com/shocknet/wallet2/pull/608">PR #608&lt;/a> leverde op 2026-04-18 een channels-dashboardpass, naast een admin-invite-link QR-flow en een readability-fix voor het metricsdashboard.&lt;/p>
&lt;p>ShockWallet gebruikt &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-78&lt;/a> application-specific data events voor multi-device wallet state sync, zodat dezelfde walletweergave tussen browser en telefoon consistent blijft zonder centrale syncserver. Dat plaatst het één laag onder &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a>, dat een interface is voor apps om een bestaande wallet te vragen te betalen.&lt;/p>
&lt;h3 id="nostrability-issues-migrate-to-git-over-nostr-after-github-censorship">Nostrability issues migrate to git over Nostr after GitHub censorship&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/elsat@habla.news/nostrability/issues">Nostrability&lt;/a>, de interoperability tracker van elsat voor Nostr-clients en relays, migreert zijn issueworkflow naar git over Nostr nadat de GitHub-organisatie zonder antwoord van GitHub-support werd verwijderd. De tracker leeft nu op GitWorkshop/ngit zodat interop-issues op Nostr-native infrastructuur kunnen blijven bestaan.&lt;/p>
&lt;h3 id="nowhere-encodes-full-websites-into-url-fragments-and-routes-orders-through-nostr">nowhere encodes full websites into URL fragments and routes orders through Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/5t34k/nowhere">nowhere&lt;/a> is een nieuw AGPL-3.0-project van 5t34k dat complete websites serialiseert in het URL-fragment na &lt;code>#&lt;/code>, comprimeert met dictionary substitution en raw DEFLATE en dan base64url-encodeert. Omdat browsers fragments niet naar servers sturen, ziet de host die de pagina levert de inhoud nooit. Voor dynamische sitetypen zoals stores, forums en petitions loopt live communicatie via Nostr relays met ephemeral keys en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encryption.&lt;/p>
&lt;h3 id="small-new-surfaces-relaykit-and-brainstorm-search">Small new surfaces: relayk.it and Brainstorm Search&lt;/h3>
&lt;p>Twee kleinere projecten verdienen nog een korte vermelding. &lt;a href="https://relayk.it">relayk.it&lt;/a>, gebouwd door sam van het Soapbox-team, is een relay-discoveryclient gebouwd met Shakespeare die volledig in de browser draait. &lt;a href="https://brainstorm.world">Brainstorm Search&lt;/a> levert een single-page Nostr search UI gericht op content over het netwerk.&lt;/p>
&lt;h2 id="protocol-and-spec-work">Protocol and Spec Work&lt;/h2>
&lt;h3 id="nip-updates">NIP Updates&lt;/h3>
&lt;p>Recente voorstellen en discussies in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Open PRs and Discussions:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-67/">NIP-67&lt;/a>: EOSE Completeness Hint&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2317">PR #2317&lt;/a>): voegt een optioneel derde element toe aan &lt;code>EOSE&lt;/code> zodat een relay kan signaleren of alle opgeslagen matches voor een filter zijn afgeleverd.&lt;/li>
&lt;li>&lt;strong>NIP-5D: Nostr Applets&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2303">PR #2303&lt;/a>): stelt een nieuwe kind voor voor interactieve applets op Nostr, tussen &lt;a href="https://nostrcompass.org/nl/topics/nip-5a/">NIP-5A&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-5c/">NIP-5C&lt;/a> in.&lt;/li>
&lt;li>&lt;strong>NIP-29: Subgroups spec&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2319">PR #2319&lt;/a>): breidt &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> uit met een subgrouphiërarchie zodat één groep meerdere parallelle kanalen kan hosten.&lt;/li>
&lt;li>&lt;strong>NIP-29: Explicit role permissions on kind 39003&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2316">PR #2316&lt;/a>): geeft clients expliciete permissieschema&amp;rsquo;s voor rollen in relay-based groups.&lt;/li>
&lt;li>&lt;strong>NIP-11: access_control field for gated-relay discovery&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2318">PR #2318&lt;/a>): voegt een adviserend &lt;code>access_control&lt;/code>-object toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a>.&lt;/li>
&lt;li>&lt;strong>NIP-63a: Minimal Payment Gateway Descriptor&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2315">PR #2315&lt;/a>): werkt verder aan kind &lt;code>10164&lt;/code> voor payment gateway descriptors en per-tier subscription rules.&lt;/li>
&lt;li>&lt;strong>NIP-XX: Agent Reputation Attestations (Kind 30085)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2320">PR #2320&lt;/a>): stelt signed attestations voor over autonome agents en services op Nostr, relevant voor &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> markten.&lt;/li>
&lt;li>&lt;strong>NIP-TPLD: Transient Private Location Data&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2309">PR #2309&lt;/a>): bouwt verder op per-recipient &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encryptie voor gevoelige locatiegegevens.&lt;/li>
&lt;li>&lt;strong>marmot-ts 0.5.0 release PR&lt;/strong> (&lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/70">PR #70&lt;/a>): bundelt de eerste geplande breaking changes in de TypeScript Marmot-client, waaronder support voor zowel legacy kind &lt;code>443&lt;/code> als nieuw kind &lt;code>30443&lt;/code> voor KeyPackages.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-72-moderated-communities">NIP Deep Dive: NIP-72 (Moderated Communities)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/72.md">NIP-72&lt;/a> definieert een model voor topic-based communities op Nostr waarin moderatoren een read view cureren over verder onbegrensde writes. Anders dan bij &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groups, waar de relay lidmaatschap en moderatie afdwingt, leeft een NIP-72-community in gewone Nostr-events en kan elke relay die de relevante kinds draagt die community serveren.&lt;/p>
&lt;p>Een community wordt gedefinieerd door een kind &lt;code>34550&lt;/code> addressable event van de maker. De &lt;code>d&lt;/code>-tag bevat de slug, tags zoals &lt;code>name&lt;/code>, &lt;code>description&lt;/code>, &lt;code>image&lt;/code> en &lt;code>rules&lt;/code> dragen metadata, en &lt;code>p&lt;/code>-tags met de marker &lt;code>moderator&lt;/code> benoemen welke pubkeys approvals kunnen geven. Gebruikers dienen vervolgens gewone events in met een &lt;code>a&lt;/code>-tag die verwijst naar de communitycoördinaat &lt;code>34550:&amp;lt;creator_pubkey&amp;gt;:&amp;lt;slug&amp;gt;&lt;/code>. Moderatoren publiceren afzonderlijke kind &lt;code>4549&lt;/code> approval-events die de submission via &lt;code>e&lt;/code>, &lt;code>p&lt;/code> en &lt;code>a&lt;/code> refereren en een stringified kopie in &lt;code>content&lt;/code> kunnen insluiten.&lt;/p>
&lt;p>Dat model maakt moderatie transparant, forkable en herroepbaar op de readlaag. Dezelfde post kan door meerdere communities worden goedgekeurd, en approvals van een moderator tellen niet meer mee als die moderator later uit de actuele community definition verdwijnt. De tradeoff is dat submissions direct openbaar zijn en alleen op clientniveau worden verborgen als ze niet zijn goedgekeurd. Voor publieke topic communities werkt dat goed; voor omgevingen waar spam niet eens op de wire mag verschijnen blijft &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> geschikter.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-57-zaps">NIP Deep Dive: NIP-57 (Zaps)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/57.md">NIP-57&lt;/a> definieert zaps: Lightning-betalingen gekoppeld aan Nostr-identiteiten en -events, plus een verifieerbaar payment receipt dat terug naar relays wordt gepubliceerd. De flow omvat drie systemen tegelijk: LNURL, Lightning en Nostr. De client van de afzender ontdekt het LNURL-endpoint van de ontvanger via profielmetadata of een &lt;code>zap&lt;/code>-tag, tekent vervolgens een kind &lt;code>9734&lt;/code> zap request en stuurt dat naar de LNURL-callback van de ontvanger. Na betaling publiceert de walletserver van de ontvanger een kind &lt;code>9735&lt;/code> receipt naar de gevraagde relays.&lt;/p>
&lt;p>Een geldig zap request bevat minimaal een &lt;code>p&lt;/code>-tag met de pubkey van de ontvanger, een optionele &lt;code>e&lt;/code>- of &lt;code>a&lt;/code>-tag met het doel, een &lt;code>amount&lt;/code>-tag in millisats en een &lt;code>relays&lt;/code>-tag. Het zap receipt bevat daarna de stringified request in &lt;code>description&lt;/code>, de betaalde invoice in &lt;code>bolt11&lt;/code> en een &lt;code>preimage&lt;/code> als betalingsbewijs. Een client die zaps correct wil tonen moet verifiëren dat de receipt-signatuur overeenkomt met de &lt;code>nostrPubkey&lt;/code> uit de LNURL-respons, dat het invoicebedrag overeenkomt met de request, dat de description hash commit op het request en dat de &lt;code>preimage&lt;/code> overeenkomt met de &lt;code>payment_hash&lt;/code>.&lt;/p>
&lt;p>Private zaps kunnen de &lt;code>content&lt;/code> encrypten, en anonieme zaps gebruiken zelfs een nieuw ephemeral keypair voor het request zelf. &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> vormt ook de basis van &lt;a href="https://nostrcompass.org/nl/topics/nip-75/">NIP-75&lt;/a>: zap goals tellen gevalideerde &lt;code>bolt11&lt;/code>-bedragen uit gematchte kind &lt;code>9735&lt;/code> receipts op. Daarnaast laat een appendix zap splits toe, zodat een enkele betaling atomair over meerdere pubkeys kan worden verdeeld.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Als je iets bouwt of nieuws te delen hebt, stuur ons een DM op Nostr of vind ons op &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #18</title><link>https://nostrcompass.org/nl/newsletters/2026-04-15-newsletter/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-04-15-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> merge&amp;rsquo;t desktop Tor, een custom C secp256k1-pad, &lt;a href="https://nostrcompass.org/nl/topics/nip-ac/">NIP-AC&lt;/a> calls, RFC 9420 MLS-compliance voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> en multi-wallet &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a>. &lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> lanceert Nostr-native push notifications voor Android. &lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a> voegt Reticulum toe voor Nostr over LoRa mesh. &lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> brengt een self-hosted &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-server en relay uit als desktopapp. &lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> debuteert als internetradiodirectory op Nostr. &lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> start als self-hosted botplatform voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-groepschats. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a> levert een security pass en grote performance-overhaul. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> herontwerpt de feed-layout.&lt;/p>
&lt;h2 id="top-stories">Top Stories&lt;/h2>
&lt;h3 id="amethyst-merges-desktop-tor-c-secp256k1-webrtc-calls-and-multi-wallet-nwc">Amethyst merges desktop Tor, C secp256k1, WebRTC calls, and multi-wallet NWC&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client van vitorpamplona, merge&amp;rsquo;de deze week 29 PR&amp;rsquo;s rond cryptografie, networking, calling en walletinfrastructuur.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> merge&amp;rsquo;t desktop Tor, een custom C secp256k1-pad, &lt;a href="https://nostrcompass.org/nl/topics/nip-ac/">NIP-AC&lt;/a> calls, RFC 9420 MLS-compliance voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> en multi-wallet &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a>. &lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> lanceert Nostr-native push notifications voor Android. &lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a> voegt Reticulum toe voor Nostr over LoRa mesh. &lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> brengt een self-hosted &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-server en relay uit als desktopapp. &lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> debuteert als internetradiodirectory op Nostr. &lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> start als self-hosted botplatform voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-groepschats. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a> levert een security pass en grote performance-overhaul. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> herontwerpt de feed-layout.&lt;/p>
&lt;h2 id="top-stories">Top Stories&lt;/h2>
&lt;h3 id="amethyst-merges-desktop-tor-c-secp256k1-webrtc-calls-and-multi-wallet-nwc">Amethyst merges desktop Tor, C secp256k1, WebRTC calls, and multi-wallet NWC&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client van vitorpamplona, merge&amp;rsquo;de deze week 29 PR&amp;rsquo;s rond cryptografie, networking, calling en walletinfrastructuur.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2381">PR #2381&lt;/a> voegt desktop Tor-ondersteuning toe via een ingebedde kmp-tor-daemon met een fail-closed-ontwerp. Als Tor is ingeschakeld, lopen alle relayverbindingen door het embedded Tor-proces en weigert de app verbinding te maken als Tor niet start. Daarmee komt privacy-routing op gelijk niveau tussen Android en desktop, ondersteund door meer dan 130 unittests voor de Tor-integratie.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2374">PR #2374&lt;/a> voegt een custom C secp256k1-implementatie met JNI-bindings voor signature verification toe. De implementatie gebruikt GLV decomposition, wNAF point encoding en hardware-accelerated SHA-256 op zowel x86_64 als ARM64, wat een 2-3x versnelling oplevert voor Schnorr-signatuurverificatie ten opzichte van het eerdere pure Kotlin-pad. Aanvullende PR&amp;rsquo;s (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2188">PR #2188&lt;/a>, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2195">PR #2195&lt;/a>, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2204">PR #2204&lt;/a>) voegen fused multiply-reduce-bewerkingen, een Fe4-struct en platform-specifieke intrinsics toe.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2202">PR #2202&lt;/a> werkt de pure Kotlin MLS-implementatie bij naar RFC 9420-compliance voor &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>, met reuse guard checks, additional authenticated data in ciphertext-bewerkingen, ciphertext-sample-derivatie, commit-fixes en thread safety. Een reeks WebRTC-PR&amp;rsquo;s van &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2203">PR #2203&lt;/a> tot &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2211">PR #2211&lt;/a> bouwt daarnaast een volledig voice- en videocallsysteem voor &lt;a href="https://nostrcompass.org/nl/topics/nip-ac/">NIP-AC&lt;/a>, inclusief ICE restart, runtime camera switching, network monitoring, automatische reconnect en Android 14+-foreground-service-fixes. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1988">PR #1988&lt;/a> rondt de week af met multi-wallet &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> support.&lt;/p>
&lt;h3 id="nstrfy-launches-nostr-native-push-notifications-for-android">nstrfy launches Nostr-native push notifications for Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> lanceerde op 13 april met drie releases van &lt;a href="https://github.com/vcavallo/nstrfy-android/releases/tag/v1.0.0">v1.0.0&lt;/a> tot &lt;a href="https://github.com/vcavallo/nstrfy-android/releases/tag/v1.2.0">v1.2.0&lt;/a>. De app is een fork van ntfy-android waarin het HTTP-transport is vervangen door Nostr. In plaats van een server te pollen voor push notifications subscribe&amp;rsquo;t nstrfy op kind &lt;code>7741&lt;/code>-events op configureerbare relays en toont die als native Android-notificaties.&lt;/p>
&lt;p>Het notificatiemodel ondersteunt zowel plaintext als &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encrypted payloads. Wanneer encryptie actief is gebruikt nstrfy &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> voor signing via &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> of een lokale nsec. Topic-based subscriptions laten per topic npub-allowlists toe, relaylijsten worden uit het profiel van de gebruiker geïmporteerd via &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a>, en de app respecteert &lt;a href="https://nostrcompass.org/nl/topics/nip-40/">NIP-40&lt;/a> event expiration. De volledige ntfy-notificatiewoordenschat blijft beschikbaar, inclusief tap-to-open URLs, prioriteitsniveaus, custom icons en action buttons.&lt;/p>
&lt;p>Het companion-project &lt;a href="https://github.com/vcavallo/nstrfy.sh">nstrfy.sh&lt;/a> levert zowel een bash CLI als een hosted webclient op &lt;a href="https://nstrfy.sh">nstrfy.sh&lt;/a> voor versturen en luisteren vanuit de browser, met NIP-07 signer support. De native app staat op &lt;a href="https://zapstore.dev/apps/io.nstrfy.android">Zapstore&lt;/a>.&lt;/p>
&lt;h3 id="hamstr-adds-reticulum-for-nostr-over-lora-mesh">HAMSTR adds Reticulum for Nostr over LoRa mesh&lt;/h3>
&lt;p>&lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a>, het project dat Nostr-events en Lightning zaps over ham radio verstuurt, merge&amp;rsquo;de &lt;a href="https://github.com/LibertyFarmer/hamstr/pull/10">PR #10&lt;/a> op 12 april en voegde &lt;a href="https://reticulum.network/">Reticulum&lt;/a> mesh networking toe als transport-backend. Reticulum is een cryptografisch mesh-protocol dat kan draaien over LoRa, HF, VHF/UHF-radio, seriële links en TCP/IP. Daarmee kan HAMSTR Nostr-events over een mesh van RNode-hardware doorgeven zonder internetinfrastructuur.&lt;/p>
&lt;p>De bestaande AX.25 Packet Radio- en VARA HF-transports blijven beschikbaar, zodat operators de radioverbinding kunnen kiezen die past bij hun setup. De zero-knowledge serverarchitectuur van HAMSTR betekent dat de relay geen private keys ziet, en de &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> zap-compliance zorgt ervoor dat offline Lightning zaps correct verschijnen in clients zoals Amethyst en Primal. Een setupgids voor het Reticulum-transport staat in &lt;a href="https://github.com/LibertyFarmer/hamstr/blob/master/RETICULUM.MD">RETICULUM.MD&lt;/a>. In dezelfde week migreerde &lt;a href="https://github.com/LibertyFarmer/hamstr/pull/11">PR #11&lt;/a> de frontend naar Svelte 5 en TailwindCSS v4.&lt;/p>
&lt;h2 id="shipping-this-week">Shipping This Week&lt;/h2>
&lt;h3 id="bloom-v010-ships-self-hosted-blossom-server-and-relay">Bloom v0.1.0 ships self-hosted Blossom server and relay&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> bracht zijn eerste release uit, &lt;a href="https://github.com/nostrnative/bloom/releases/tag/v0.1.0">v0.1.0&lt;/a>, op 9 april. Gebouwd met Tauri v2 en React 19 bundelt Bloom een volledige &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-media server en een Nostr relay in een enkele desktopapp voor macOS, Windows en Linux. Gebruikers krijgen sovereign file storage met SHA-256 content addressing, &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> file metadata support en &lt;code>blossom://&lt;/code>-resolutie zonder zelf serverinfrastructuur te hoeven beheren.&lt;/p>
&lt;h3 id="wavefunc-v010-and-v011-launch-nostr-internet-radio">WaveFunc v0.1.0 and v0.1.1 launch Nostr internet radio&lt;/h3>
&lt;p>&lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> bracht &lt;a href="https://github.com/zeSchlausKwab/wavefunc/releases/tag/v0.1.0">v0.1.0&lt;/a> en &lt;a href="https://github.com/zeSchlausKwab/wavefunc/releases/tag/v0.1.1">v0.1.1&lt;/a> uit op 13 april en lanceerde als Nostr-gebaseerde internetradiodirectory en speler. De app gebruikt custom event kinds voor stations, favorieten, live chat en comments, terwijl een Khatru-relaybackend SQLite-opslag en Bluge full-text search met &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> verzorgt.&lt;/p>
&lt;p>WaveFunc levert daarnaast een &lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a> Cashu-wallet en nutzap-support, plus in v0.1.1 genrecarrousels, een Lightning-donatiepopover, station management voor geauthenticeerde gebruikers en Zapstore-listing. De Tauri v2-desktopbuild kreeg system tray integration, media key support, autostart en deep linking.&lt;/p>
&lt;h3 id="snort-ships-v050-through-v053-with-security-hardening-and-performance-overhaul">Snort ships v0.5.0 through v0.5.3 with security hardening and performance overhaul&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/snort">Snort&lt;/a> bracht drie releases uit van &lt;a href="https://github.com/v0l/snort/releases/tag/v0.5.0">v0.5.0&lt;/a> tot &lt;a href="https://github.com/v0l/snort/releases/tag/v0.5.3">v0.5.3&lt;/a>. v0.5.0 levert de grootste wijziging: een security audit, echte Schnorr-signatuurverificatie, hardening van &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> tegen forged relay messages, verbeterde PIN-encryptie en het verwijderen van vertrouwen op onbevestigde NIP-26-delegation. Aan de prestatiekant zijn er batched WASM-verificatie, lazy-loaded routes, een herschreven priority profile loader en worker-relay-optimalisaties.&lt;/p>
&lt;p>&lt;a href="https://github.com/v0l/snort/pull/620">PR #620&lt;/a> werkte het berichten­systeem opnieuw uit voor performance, met gift wraps die in de worker relay worden opgeslagen en een efficiëntere Map-gebaseerde chatlijst. De release voegt ook kind &lt;code>7000&lt;/code> payment-required invoice-weergave toe voor &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> DVM&amp;rsquo;s.&lt;/p>
&lt;h3 id="primal-android-ships-3021-and-redesigns-feed-layout">Primal Android ships 3.0.21 and redesigns feed layout&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> bracht &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.21">v3.0.21&lt;/a> uit met fixes voor poll zap votes, walletdeling tussen meerdere accounts en auto-reconnect voor remote signer en walletservice. Daarbovenop merge&amp;rsquo;de het team zeven PR&amp;rsquo;s die de hoofdfeed opnieuw vormgeven, met grotere avatars, contentindentatie, video in mediacards, een compact quick-replyveld en opnieuw ontworpen app bars.&lt;/p>
&lt;h3 id="nostria-v3119-through-v3121-add-local-ai-image-generation">Nostria v3.1.19 through v3.1.21 add local AI image generation&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> bracht drie releases uit van &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.19">v3.1.19&lt;/a> tot &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.21">v3.1.21&lt;/a> met meer dan 80 commits. De hoofdfunctie is lokale image generation met Janus Pro en WebGPU-acceleratie, zodat gebruikers afbeeldingen on-device kunnen genereren zonder externe API. De releases voegen ook cloud image generation, multimodal chat, ONNX runtime support, een AI prompt library en cachebeheer toe.&lt;/p>
&lt;h3 id="tubestr-v103-ships-feed-and-studio-updates">TubeStr v1.0.3 ships feed and studio updates&lt;/h3>
&lt;p>&lt;a href="https://github.com/Tubestr/tubestr-v2">TubeStr&lt;/a>, een privé video-app voor families gebouwd op Nostr, bracht &lt;a href="https://github.com/Tubestr/tubestr-v2/releases/tag/v1.0.3">v1.0.3&lt;/a> uit op 13 april. De release voegt feed- en studioverbeteringen toe, met &lt;a href="https://github.com/Tubestr/tubestr-v2/pull/3">PR #3&lt;/a> voor vernieuwde onboarding en &lt;a href="https://github.com/Tubestr/tubestr-v2/pull/2">PR #2&lt;/a> voor een fix van een video-exportfout. De app gebruikt NDK en MDK voor encrypted mediadeling tussen familieleden.&lt;/p>
&lt;h2 id="in-development">In Development&lt;/h2>
&lt;h3 id="botburrow-begins-development-as-marmot-bot-platform">Botburrow begins development as Marmot bot platform&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> is een nieuw project van het Marmot-team, gestart op 3 april. Het is een self-hosted botmanagementplatform waarin elke bot een eigen Nostr-identity krijgt, lid wordt van &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> MLS-encrypted groepschats via Welcome messages en end-to-end encrypted berichten kan verzenden en ontvangen. Het dashboard is gebouwd met Rails 8.1 en praat met een enkele &lt;code>wnd&lt;/code>-daemon via een Unix socket.&lt;/p>
&lt;p>Botburrow exposeert ook een substantiële scripting- en operationslaag, met commands, triggers en scheduled actions in custom Ruby-code, live chatweergaven voor echte groepen en opslag per bot voor configuratie en gegenereerde output. Een &lt;a href="https://github.com/marmot-protocol/botburrow/commit/2ed012078eaab3c5b92dff16b87865c2e353bd80">Docker image&lt;/a> richt zich op zero-config self-hosting op Umbrel en Start9.&lt;/p>
&lt;h3 id="nostr-archives-adds-trending-feeds-relay-and-entity-resolution">Nostr Archives adds trending feeds relay and entity resolution&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/nostrarchives-api">Nostr Archives&lt;/a> werkte verder aan zowel de Rust-API als de Next.js-frontend. &lt;a href="https://github.com/barrydeen/nostrarchives-api/pull/118">PR #118&lt;/a> voegt time-range filtering toe aan de client leaderboard en &lt;a href="https://github.com/barrydeen/nostrarchives-api/pull/117">PR #117&lt;/a> engagement counters aan reply-events. Aan frontendzijde resolven &lt;a href="https://github.com/barrydeen/nostrarchives-frontend/pull/85">PR #85&lt;/a> en &lt;a href="https://github.com/barrydeen/nostrarchives-frontend/pull/86">PR #86&lt;/a> Nostr-entiteiten direct uit URL-paden en voegen een API-documentatiepagina toe.&lt;/p>
&lt;h3 id="damus-fixes-favorites-timeline">Damus fixes favorites timeline&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> merge&amp;rsquo;de &lt;a href="https://github.com/damus-io/damus/pull/3708">PR #3708&lt;/a>, die &lt;code>subscribe_to_favorites()&lt;/code> herschrijft met filtering in place, heropbouw van deduplicatie en persistente tabselectie.&lt;/p>
&lt;h3 id="nostur-adds-private-zaps-and-custom-emoji-viewing">Nostur adds private zaps and custom emoji viewing&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> pushte deze week tien commits met private zap support, custom emoji viewing, een fix voor geanimeerde &lt;code>.webp&lt;/code>-weergave en detectie van audioformaten voor voice messages.&lt;/p>
&lt;h3 id="amber-ships-v601-through-v603-with-webdav-backup-and-relay-reconnection-fixes">Amber ships v6.0.1 through v6.0.3 with WebDAV backup and relay reconnection fixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de Android &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> signer-app, bracht drie releases uit. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.1">v6.0.1&lt;/a> voegt WebDAV- en Google Drive-backups toe, exponential backoff voor relay reconnects en Quartz 1.08.0. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.2">v6.0.2&lt;/a> voegt een accountindexoptie toe bij seed words en repareert reconnect wanneer een relay offline is bij startup. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.3">v6.0.3&lt;/a> repareert lege request IDs bij intents.&lt;/p>
&lt;h3 id="plektos-v060-redesigns-with-ditto-themes">Plektos v0.6.0 redesigns with Ditto themes&lt;/h3>
&lt;p>&lt;a href="https://github.com/derekross/plektos">Plektos&lt;/a>, het meetup- en eventsplatform gebouwd op &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a>, bracht &lt;a href="https://github.com/derekross/plektos/commit/7a691cdf089ceb7a8582dd5c0ee026830f2cdc77">v0.6.0&lt;/a> en &lt;a href="https://github.com/derekross/plektos/commit/3a6474ae380522d8ee1b3526423fcfc3328fd879">v0.6.1&lt;/a> uit. De update voegt Ditto-achtige communitythemes, custom background images, avatarvormconfiguratie en een UI-overhaul toe. &lt;a href="https://github.com/derekross/plektos/pull/6">PR #6&lt;/a> behandelt daarnaast een brede code review.&lt;/p>
&lt;h3 id="shadow-adds-nostr-os-api-and-cashu-wallet-app">Shadow adds Nostr OS API and Cashu wallet app&lt;/h3>
&lt;p>&lt;a href="https://github.com/justinmoon/shadow">Shadow&lt;/a>, het app-runtimeplatform van Justin Moon, pushte meer dan 30 commits in twee dagen. &lt;a href="https://github.com/justinmoon/shadow/commit/88cbda5131814d2730a2d892029932136db005df">Commit 88cbda5&lt;/a> voegt een Cashu-walletapp toe binnen de Shadow-runtime, en &lt;a href="https://github.com/justinmoon/shadow/commit/865c415">commit 865c415&lt;/a> een podcastspelerdemo. De runtime exposeert &lt;code>Shadow.os.nostr&lt;/code> en &lt;code>Shadow.os.audio&lt;/code> als first-class OS API&amp;rsquo;s.&lt;/p>
&lt;h3 id="lief-fixes-amber-login-and-adds-zapstore">Lief fixes Amber login and adds Zapstore&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/lief">Lief&lt;/a>, een Nostr-app voor lange brieven aan andere Nostr-gebruikers, bracht build &lt;code>v2026.04.12&lt;/code> uit op 12 april. De update repareert een Amber-loginprobleem op Android, vereenvoudigt de signer nudge-flow, werkt nostrify bij en voegt Zapstore-integratie toe.&lt;/p>
&lt;h3 id="espy-overhauls-color-picker-and-fixes-amber-login">Espy overhauls color picker and fixes Amber login&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/espy">Espy&lt;/a> bracht build &lt;code>v2026.04.12&lt;/code> uit met een vernieuwde color picker, fixes voor hue ring flicker, Easter egg-personages en een compressiewinst van 703KB in PNG-assets. De release repareert ook dezelfde Amber-loginissues en voegt Zapstore-integratie toe.&lt;/p>
&lt;h3 id="jumble-adds-per-feed-kind-filters-and-articles-tab">Jumble adds per-feed kind filters and articles tab&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a> pushte 13 commits die per-feed kind filtering, een Articles-tab, sync van notification read status, een avatar hide mode en een fix voor account switching toevoegen.&lt;/p>
&lt;h3 id="primal-web-ships-8-version-bumps">Primal Web ships 8 version bumps&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-web-app">Primal Web&lt;/a> bracht versies 3.0.93 tot en met 3.0.101 uit in één week met 21 commits. Het werk richtte zich op live-streamchatverbeteringen, mention boundary-fixes, bookmark pagination, duplicate like prevention en relay proxy-fixes.&lt;/p>
&lt;h2 id="protocol-and-spec-work">Protocol and Spec Work&lt;/h2>
&lt;h3 id="nip-updates">NIP Updates&lt;/h3>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Merged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> (Git Stuff): Add &lt;code>nostr://&lt;/code> clone URLs&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2312">PR #2312&lt;/a>): deze PR voegt een &lt;code>nostr://&lt;/code> clone URL-formaat toe voor git-over-Nostr repositories. Er worden drie URL-vormen gedefinieerd, met percent-encoding voor relay hints en identifiers, en de vorm is al geïmplementeerd door Shakespeare, ngit en tools zoals GitWorkshop.dev en NostrHub.io.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PRs and Discussions:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>NIP-63a: Minimal Payment Gateway Descriptor&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2315">PR #2315&lt;/a>): stelt een nieuw kind &lt;code>10164&lt;/code> replaceable event voor waarmee makers payment gateways, prijsmodellen en subscription rules voor betaalde content kunnen publiceren.&lt;/li>
&lt;li>&lt;strong>NIP-XX: Relay Self-Declaration Manifest and Retention Horizon&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2314">PR #2314&lt;/a>): stelt kind &lt;code>10100&lt;/code> voor als gossipable relay-manifest en &lt;code>HORIZON&lt;/code> als nieuw relay-to-client message om retention-vensters expliciet te maken.&lt;/li>
&lt;li>&lt;strong>NIP-TPLD: Transient Private Location Data&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2309">PR #2309&lt;/a>): stelt kind &lt;code>20411&lt;/code> voor voor encrypted geolocation met per-recipient &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> payloads en een &lt;code>ttl&lt;/code>-tag.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-5c/">NIP-5C&lt;/a> (Scrolls): WASM programs update&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2281">PR #2281&lt;/a>): verfijnt het publiceren en uitvoeren van sandboxed WASM-programma&amp;rsquo;s op Nostr en bouwt voort op &lt;a href="https://nostrcompass.org/nl/topics/nip-5a/">NIP-5A&lt;/a>.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> large payload support&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/1907">PR #1907&lt;/a>): stelt een backwards-compatible uitbreiding voor voor payloads groter dan 65.535 bytes, relevant voor onder meer grote &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> contactlijsten.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-c7/">NIP-C7&lt;/a>: Restrict kind 9 to chat views&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2310">PR #2310&lt;/a>): verduidelijkt dat kind &lt;code>9&lt;/code>-chatberichten alleen in chatgerichte weergaven horen te verschijnen, niet in algemene sociale feeds.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-29-relay-based-groups">NIP Deep Dive: NIP-29 (Relay-based Groups)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/29.md">NIP-29&lt;/a> definieert een model voor groepsberichten waarin de relay zelf groepslidmaatschap en moderatie beheert. Groepen leven op een specifieke relay, worden geïdentificeerd door een string-ID en vertrouwen op de relay voor write-permissions en policy enforcement. Dat is een ander model dan &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> of &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a>: in NIP-29 is de relay de autoriteit en kan de relay-operator de berichten lezen.&lt;/p>
&lt;p>Een groep wordt geïdentificeerd door het formaat &lt;code>&amp;lt;host&amp;gt;'&amp;lt;group-id&amp;gt;&lt;/code>, bijvoorbeeld &lt;code>groups.nostr.com'abcdef&lt;/code>. Gebruikersevents die naar een groep worden gestuurd dragen een &lt;code>h&lt;/code>-tag met de group ID, en de &lt;code>previous&lt;/code>-tag dient als tamper-detection door recente eventfragmenten in de laatste vijftig berichten te refereren. Relays kunnen events met ongeldige &lt;code>previous&lt;/code>-verwijzingen weigeren, zodat out-of-context rebroadcasting op geforkte kopieën detecteerbaar wordt.&lt;/p>
&lt;p>Lidmaatschap en moderatie worden beheerd via 9000-range events zoals join requests, removals, metadata-edits en rolbeheer. De relay publiceert snapshots van de groepsconfiguratie via addressable events zoals kind &lt;code>39000&lt;/code> voor metadata en kind &lt;code>39003&lt;/code> voor rollen en capabilities. Omdat de spec elk event kind binnen een groep accepteert kunnen niet alleen chatberichten maar ook &lt;a href="https://nostrcompass.org/nl/topics/nip-23/">NIP-23&lt;/a> artikelen, &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> events en &lt;a href="https://nostrcompass.org/nl/topics/nip-53/">NIP-53&lt;/a> live-activiteiten in dezelfde groepsnamespace bestaan.&lt;/p>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> is vandaag de meest actieve NIP-29-client, en &lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a> ondersteunt het model ook. De tradeoff tegenover encrypted alternatieven blijft duidelijk: NIP-29 biedt eenvoud en publieke communities, maar geen end-to-end encryptie of forward secrecy.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-90-data-vending-machines">NIP Deep Dive: NIP-90 (Data Vending Machines)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/90.md">NIP-90&lt;/a> definieert een protocol voor on-demand computation over Nostr. Een klant publiceert een job request, providers concurreren om die uit te voeren en resultaten worden teruggeleverd als Nostr-events. De spec reserveert kinds &lt;code>5000-5999&lt;/code> voor requests, &lt;code>6000-6999&lt;/code> voor resultaten en kind &lt;code>7000&lt;/code> voor feedbackstatussen.&lt;/p>
&lt;p>Requests gebruiken &lt;code>i&lt;/code>-tags voor input, &lt;code>output&lt;/code> voor het gewenste formaat, &lt;code>bid&lt;/code> voor het maximale bedrag en &lt;code>param&lt;/code> voor jobspecifieke instellingen. Resultaten verwijzen naar de oorspronkelijke aanvraag, bevatten de pubkey van de klant en kunnen optioneel een Lightning invoice dragen. Feedback-events zoals &lt;code>payment-required&lt;/code>, &lt;code>processing&lt;/code>, &lt;code>error&lt;/code> en &lt;code>success&lt;/code> geven de klant realtime zicht op langer lopende jobs.&lt;/p>
&lt;p>Het model ondersteunt job chaining via inputtype &lt;code>job&lt;/code>, zodat output van de ene provider input kan worden voor een volgende stap, bijvoorbeeld transcriptie, samenvatting en vertaling. Voor privacy kunnen klanten input en parameters encrypted in &lt;code>content&lt;/code> plaatsen met &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a>, al vereist dat gerichte requests naar een specifieke provider. DVM-discovery zelf ligt buiten de request/response-lus en leunt op &lt;a href="https://nostrcompass.org/nl/topics/nip-89/">NIP-89&lt;/a>.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets of heb je nieuws om te delen? Stuur ons een DM op Nostr of vind ons op &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #17</title><link>https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#amethyst-brengt-arti-tor-en-merget-pure-kotlin-mls-en-marmot">v1.08.0&lt;/a> uit met Arti Tor-integratie en een herontworpen Shorts-UI, terwijl pure Kotlin-implementaties van &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> in de &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a>-bibliotheek worden gemerged. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nostur-v1270-voegt-video-opname-en-prive-antwoorden-toe">v1.27.0&lt;/a> uit met video-opname, geanimeerde GIF-profielen en private replies. &lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a> lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#shosho-v0150-lanceert-shows-en-verticale-video-carousel">v0.15.0&lt;/a> met Shows (aangepaste live-streaminfo gekoppeld aan OBS) en een verticale videocarrousel in TikTok-stijl. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nymchat-draait-marmot-terug-en-brengt-verbeterde-nip-17-groepschats-uit">draait Marmot terug en brengt verbeterde NIP-17-groepschats uit&lt;/a> met roterende ephemeral keys. &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nostr-vpn-brengt-ondersteuning-voor-exit-nodes-en-umbrel-packaging-uit">ondersteuning voor exit nodes en Umbrel-packaging&lt;/a> uit in zes releases. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> springt naar &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#amber-v600-pre1-voegt-nip-46-signing-keys-per-verbinding-toe">v6.0.0-pre1&lt;/a> met &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> signing keys per verbinding en in-app updates via Zapstore. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereikt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-brengt-zapstore-self-update-uit">v0.10.0-beta&lt;/a> met APK self-update via Zapstore, en &lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> (Badges) krijgt een &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nip-updates">kind-migratie&lt;/a>. Twee NIP-deep-dives behandelen &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing).&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#amethyst-brengt-arti-tor-en-merget-pure-kotlin-mls-en-marmot">v1.08.0&lt;/a> uit met Arti Tor-integratie en een herontworpen Shorts-UI, terwijl pure Kotlin-implementaties van &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> in de &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a>-bibliotheek worden gemerged. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nostur-v1270-voegt-video-opname-en-prive-antwoorden-toe">v1.27.0&lt;/a> uit met video-opname, geanimeerde GIF-profielen en private replies. &lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a> lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#shosho-v0150-lanceert-shows-en-verticale-video-carousel">v0.15.0&lt;/a> met Shows (aangepaste live-streaminfo gekoppeld aan OBS) en een verticale videocarrousel in TikTok-stijl. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nymchat-draait-marmot-terug-en-brengt-verbeterde-nip-17-groepschats-uit">draait Marmot terug en brengt verbeterde NIP-17-groepschats uit&lt;/a> met roterende ephemeral keys. &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nostr-vpn-brengt-ondersteuning-voor-exit-nodes-en-umbrel-packaging-uit">ondersteuning voor exit nodes en Umbrel-packaging&lt;/a> uit in zes releases. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> springt naar &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#amber-v600-pre1-voegt-nip-46-signing-keys-per-verbinding-toe">v6.0.0-pre1&lt;/a> met &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> signing keys per verbinding en in-app updates via Zapstore. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereikt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-brengt-zapstore-self-update-uit">v0.10.0-beta&lt;/a> met APK self-update via Zapstore, en &lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> (Badges) krijgt een &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nip-updates">kind-migratie&lt;/a>. Twee NIP-deep-dives behandelen &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing).&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="amethyst-brengt-arti-tor-en-merget-pure-kotlin-mls-en-marmot">Amethyst brengt Arti Tor en merget pure Kotlin MLS en Marmot&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client onderhouden door vitorpamplona, bracht vier releases uit van &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.3">v1.07.3&lt;/a> tot en met &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.08.0">v1.08.0&lt;/a> en merge&amp;rsquo;de een grote reeks nog niet uitgebrachte wijzigingen in de &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a>-bibliotheek (de gedeelde Kotlin Multiplatform Nostr-module). De hoofdrelease is v1.08.0 &amp;ldquo;Arti Tor&amp;rdquo;, die de Tor-connectiviteit van de app migreert van de op C gebaseerde Tor-bibliotheek naar &lt;a href="https://gitlab.torproject.org/tpo/core/arti">Arti&lt;/a>, de Rust-implementatie van het Tor Project. Die migratie pakt willekeurige crashes aan die optraden onder de eerdere C Tor-bindings. Arti is de langetermijnvervanger van het Tor Project voor de C-codebase, vanaf nul geschreven in Rust voor memory safety en async I/O.&lt;/p>
&lt;p>De v1.07.3-release herontwierp de Shorts-UI en verving het gepagineerde ontwerp door rand-tot-rand-feeds voor afbeeldingen, shorts en lange video&amp;rsquo;s. Diezelfde release migreerde badges naar kind &lt;code>10008&lt;/code> en bookmarks naar kind &lt;code>10003&lt;/code>, in lijn met de &lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> kind-migratie die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#nip-updates">deze week werd gemerged&lt;/a>. v1.07.4 repareerde een probleem met de secret-afhandeling van Nostr Wallet Connect, en v1.07.5 repareerde een crash bij image-upload.&lt;/p>
&lt;p>Op main, maar nog niet in een getagde release, schreef het team een volledige Kotlin-implementatie van zowel &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a> als het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol, waardoor native C/Rust-library bindings niet langer nodig zijn. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2147">PR #2147&lt;/a> voegt de kernlaag voor Marmot MLS-groepsberichten toe, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2149">PR #2149&lt;/a> voegt de groepschat-UI toe, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2146">PR #2146&lt;/a> voegt inkomende en uitgaande berichtprocessors met een subscription manager toe, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2141">PR #2141&lt;/a> voegt persistente MLS-groepsstatus en KeyPackage-rotatiebeheer toe, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2150">PR #2150&lt;/a> voegt een volledige MLS-testsuite met verbeterde GroupInfo-signing toe, en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2158">PR #2158&lt;/a> voegt tracking van de publicatiestatus van KeyPackages toe. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2166">PR #2166&lt;/a> voegt een pure Kotlin secp256k1-implementatie toe voor Nostr-cryptografische operaties, als vervanging van de native C-library dependency. In combinatie met de Kotlin MLS-implementatie kan &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a> Nostr-signing en Marmot-groepsberichten draaien zonder native bindings, wat de deur opent naar Kotlin Multiplatform-targets waaronder iOS.&lt;/p>
&lt;p>Het team bouwt ook ondersteuning voor &lt;a href="https://nostrcompass.org/en/topics/nip-ac/">NIP-AC&lt;/a> (P2P Voice and Video Calls): &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2143">PR #2143&lt;/a> voegt een volledige testsuite toe voor de NIP-AC call state machine, en &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2164">PR #2164&lt;/a> voorkomt dat verouderde call offers opnieuw worden getriggerd nadat de app opnieuw is gestart.&lt;/p>
&lt;h3 id="nostur-v1270-voegt-video-opname-en-private-replies-toe">Nostur v1.27.0 voegt video-opname en private replies toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a>, de iOS Nostr-client, bracht &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/v1.27.0">v1.27.0&lt;/a> uit op 2 april. De release voegt video-opname in de app toe met trim-before-upload, zodat gebruikers korte clips kunnen opnemen, op lengte kunnen knippen en publiceren zonder de client te verlaten. Ondersteuning voor geanimeerde GIF&amp;rsquo;s strekt zich nu uit tot profiel- en bannerfoto&amp;rsquo;s, en er is ook geanimeerde WebP-rendering toegevoegd. Een nieuwe Shortcuts-integratie laat gebruikers Nostr-posts versturen vanuit Apple Shortcuts-automatiseringen. De release voegt ook private replies toe en repareert DM-compatibiliteitsproblemen die de berichtbezorging tussen Nostur en andere clients beïnvloedden.&lt;/p>
&lt;h3 id="shosho-v0150-lanceert-shows-en-verticale-video-carousel">Shosho v0.15.0 lanceert Shows en verticale video-carousel&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, de Nostr-livestreamingapp, bracht &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.0">v0.15.0&lt;/a> en &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.1">v0.15.1&lt;/a> uit op 7 april. De hoofdfunctie is Shows: streamers kunnen aangepaste show-informatie instellen voordat ze live gaan en hun show koppelen aan OBS of een andere externe encoder. Daarmee wordt de metadata van &amp;ldquo;wat stream ik&amp;rdquo; losgekoppeld van het daadwerkelijk live gaan, zodat streamers titels, beschrijvingen en producten kunnen voorbereiden voordat de uitzending begint. Diezelfde release voegt een verticale videocarrousel in TikTok-stijl toe om door lives, clips en replays te swipen in een fullscreen-feed, plus Quick Add om videoclips te publiceren en producten direct vanaf een profielpagina toe te voegen. v0.15.1 repareert een bug waarbij het toetsenbord het chatinvoerveld van de livestream verborg.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="notedeck-v0100-beta-brengt-zapstore-self-update-uit">Notedeck v0.10.0-beta brengt Zapstore self-update uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de desktop- en mobiele client van het Damus-team, bracht &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.1">v0.10.0-beta.1&lt;/a> en &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.2">v0.10.0-beta.2&lt;/a> uit als test-prereleases voor APK self-update. &lt;a href="https://github.com/damus-io/notedeck/pull/1417">PR #1417&lt;/a> voegt APK self-update toe via de Nostr/Zapstore-updater op Android, voortbouwend op het &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-18-newsletter/#notedeck-moves-release-discovery-onto-nostr">Nostr-native update-discoverywerk uit Newsletter #14&lt;/a>. De updateflow ontdekt nieuwe releases via Nostr-events die naar relays zijn gepubliceerd, downloadt vervolgens de APK van waar de ontwikkelaar die host (GitHub releases, Blossom CDN of andere bronnen), verifieert de SHA-256-hash tegen het ondertekende Nostr-event en installeert die daarna. &lt;a href="https://github.com/damus-io/notedeck/pull/1438">PR #1438&lt;/a> repareert een bug op het welkomstscherm waarbij Login- en CreateAccount-knoppen direct terug navigeerden, en &lt;a href="https://github.com/damus-io/notedeck/pull/1424">PR #1424&lt;/a> repareert tekstoverflow in de Agentium AI-sessieweergave.&lt;/p>
&lt;h3 id="amber-v600-pre1-voegt-nip-46-signing-keys-per-verbinding-toe">Amber v6.0.0-pre1 voegt NIP-46 signing keys per verbinding toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) signer-app, bracht &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.0-pre1">v6.0.0-pre1&lt;/a> uit op 4 april. De belangrijkste wijziging is signing keys per verbinding voor het &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing) bunker-protocol. In plaats van één keypair te gebruiken voor alle bunker-verbindingen genereert Amber nu een aparte sleutel voor elke verbonden client. Als één clientverbinding gecompromitteerd raakt, kan de aanvaller zich niet voordoen als de signer tegenover andere clients.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/pull/377">PR #377&lt;/a> voegt in-app controle op updates en installatie via Zapstore toe, waarmee Amber zich naast &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-brengt-zapstore-self-update-uit">Notedeck&lt;/a> schaart in Nostr-native appdistributie. &lt;a href="https://github.com/greenart7c3/Amber/pull/375">PR #375&lt;/a> handelt AndroidKeyStore-fouten netjes af door gebruikers een waarschuwing te tonen in plaats van te crashen, en &lt;a href="https://github.com/greenart7c3/Amber/pull/371">PR #371&lt;/a> voegt database-opruiming toe met groottelimieten en truncatie van content om onbegrensde opslaggroei te voorkomen. De pre-release bevat ook de &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-auth-whitelist en login via mnemonic recovery phrase uit de &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#amber-v502-through-v504">v5.0.x-cyclus die vorige week werd behandeld&lt;/a>.&lt;/p>
&lt;h3 id="nostria-brengt-native-mobiele-app-uit">Nostria brengt native mobiele app uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, de cross-platform Nostr-client onderhouden door SondreB, bracht een native mobiele app voor Android uit met acht releases van &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.11">v3.1.11&lt;/a> tot en met &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.18">v3.1.18&lt;/a>. De belangrijkste nieuwe mogelijkheid is native ondersteuning voor local signers zoals &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> en Aegis. &lt;a href="https://www.nostria.app/download">Desktop-installers&lt;/a> voor Linux, macOS en Windows zijn ook beschikbaar. &lt;a href="https://github.com/nostria-app/nostria/pull/610">PR #610&lt;/a> verlaagt de geheugendruk van de feed met adaptieve runtime-limieten en opschoning van preview-URL&amp;rsquo;s. v3.1.14 repareert de integratie met Brainstorm, een &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-provider. v3.1.15 richt zich op muziekverbeteringen. De nieuwe Android-app is beschikbaar op &lt;a href="https://zapstore.dev/apps/app.nostria">Zapstore&lt;/a>.&lt;/p>
&lt;h3 id="divine-108-brengt-hervatbare-uploads-en-dms-uit">diVine 1.0.8 brengt hervatbare uploads en DM&amp;rsquo;s uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de short-form videocliënt, bracht &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.8">1.0.8&lt;/a> uit met 87 gemergede PR&amp;rsquo;s. Hervatbare uploads laten makers onderbroken uploads chunk voor chunk voortzetten in plaats van opnieuw vanaf nul te beginnen op een instabiele verbinding. De release voegt instellingen voor videokwaliteit en bitrate toe, double-tap om te liken en verbeteringen aan DM&amp;rsquo;s. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2722">PR #2722&lt;/a> voegt een macOS-camera-plugin toe voor desktop-video-opname, en &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2820">PR #2820&lt;/a> migreert het notificatiesysteem naar een BLoC-architectuur met enrichment en grouping. Het team verving ook AI-generated stickers en category art door OpenMoji SVG&amp;rsquo;s (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/2844">PR #2844&lt;/a>, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2842">PR #2842&lt;/a>).&lt;/p>
&lt;h3 id="manent-v130-voegt-vervaging-van-gevoelige-notities-en-nip-42-auth-toe">Manent v1.3.0 voegt vervaging van gevoelige notities en NIP-42-auth toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/dtonon/manent">Manent&lt;/a>, de private app voor versleutelde notities en bestandsopslag, bracht &lt;a href="https://github.com/dtonon/manent/releases/tag/v1.3.0">v1.3.0&lt;/a> uit op 2 april. Gebruikers kunnen notities nu als gevoelig markeren om ze in de lijstweergave te vervagen, zodat private content verborgen blijft tijdens vluchtig scrollen. De release voegt ook ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> (Authentication of Clients to Relays) toe, waardoor Manent zich kan authenticeren bij relays die dat vereisen voordat ze events accepteren. Manent slaat alle data versleuteld op Nostr-relays op met het keypair van de gebruiker, dus NIP-42-ondersteuning vergroot het aantal relays dat het voor opslag kan gebruiken.&lt;/p>
&lt;h3 id="wisp-v0170-tot-en-met-v0173-voegen-livestream-zaps-en-walletbackup-toe">Wisp v0.17.0 tot en met v0.17.3 voegen livestream-zaps en walletbackup toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, de Android Nostr-client, bracht zes releases uit van &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.2-beta">v0.16.2-beta&lt;/a> tot en met &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.17.3-beta">v0.17.3-beta&lt;/a> met 44 gemergede PR&amp;rsquo;s. De v0.17.0-release voegt veiligheidsmeldingen voor walletbackups en zap-UX-verbeteringen toe. &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.17.1-beta">v0.17.1&lt;/a> voegt zichtbaarheid van livestreamchat over platforms heen en functionaliteit voor livestream-zaps toe. &lt;a href="https://github.com/barrydeen/wisp/pull/423">PR #423&lt;/a> voegt automatisch zoeken naar profielen, een zap-success-animatie en verbeteringen aan de gebruikersstatus toe. &lt;a href="https://github.com/barrydeen/wisp/pull/426">PR #426&lt;/a> repareert een out-of-memory-crash in &lt;code>computeId&lt;/code> voor events met grote taglijsten. De v0.16.x-releases voegden emoji-shortcode-autocomplete, verbeteringen aan de groepschat-UI en filtering van geblokkeerde gebruikers toe over alle notificatiepaden heen.&lt;/p>
&lt;h3 id="mostro-brengt-deep-links-nostr-wisselkoersen-en-een-fix-voor-dubbele-betalingen-uit">Mostro brengt deep links, Nostr-wisselkoersen en een fix voor dubbele betalingen uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, de peer-to-peer Bitcoin-beurs gebouwd op Nostr, zag deze week updates in zowel zijn serverdaemon als mobiele client. Aan serverzijde voorkomt &lt;a href="https://github.com/MostroP2P/mostro/pull/692">PR #692&lt;/a> dat verouderde orderwrites dubbele betalingen veroorzaken, een bug die ertoe kon leiden dat een verkoper twee keer voor dezelfde trade werd betaald. &lt;a href="https://github.com/MostroP2P/mostro/pull/693">PR #693&lt;/a> gebruikt gerichte updates voor dev_fee-writes in plaats van volledige order-overschrijvingen.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, de Flutter-client, bracht &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.3">v1.2.3&lt;/a> uit op 3 april. De release handelt deep links van verschillende Mostro-instanties af, zodat gebruikers op links kunnen tikken die naar de juiste exchange-server routeren. &lt;a href="https://github.com/MostroP2P/mobile/pull/498">PR #498&lt;/a> detecteert admin- en dispute-DM&amp;rsquo;s in de achtergrondnotificatiepipeline, en de app haalt wisselkoersen nu op via Nostr met een HTTP/cache-fallback. &lt;a href="https://github.com/MostroP2P/mobile/pull/560">PR #560&lt;/a> repareert een relay-connection blocking bug waardoor de app onder bepaalde netwerkcondities relays niet kon bereiken.&lt;/p>
&lt;h3 id="unfiltered-v1012-voegt-hashtags-en-comments-toe">Unfiltered v1.0.12 voegt hashtags en comments toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a>, een Nostr-client gericht op beeldrijke content, bracht &lt;a href="https://github.com/dmcarrington/unfiltered/releases/tag/v1.0.12">v1.0.12&lt;/a> uit. &lt;a href="https://github.com/dmcarrington/unfiltered/pull/69">PR #69&lt;/a> voegt hashtag-ondersteuning toe en &lt;a href="https://github.com/dmcarrington/unfiltered/pull/72">PR #72&lt;/a> voegt de mogelijkheid toe om comments op posts te schrijven en te tonen. &lt;a href="https://github.com/dmcarrington/unfiltered/pull/71">PR #71&lt;/a> repareert navigatieproblemen bij posts met meerdere afbeeldingen.&lt;/p>
&lt;h3 id="primal-android-brengt-walletdeling-voor-meerdere-accounts-en-auto-reconnect-voor-remote-signer-uit">Primal Android brengt walletdeling voor meerdere accounts en auto-reconnect voor remote signer uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal&lt;/a>, de Android Nostr-client, bracht op 7 april een release uit. De update voegt walletdeling voor meerdere accounts toe en een overflow-menu met walletverwijdering in Dev Tools. De remote signer reconnect nu automatisch bij verbroken verbindingen, en de walletservice kreeg zijn eigen auto-reconnectlogica. Fixes zorgen ervoor dat poll-zap-stemmen niet langer als Top Zaps verschijnen, lege pollopties geen crash meer veroorzaken, walletsaldo wordt verborgen wanneer er geen wallet bestaat, en WalletException-typen naar foutcodes in NWC-antwoorden worden gemapt.&lt;/p>
&lt;h3 id="titan-v010-lanceert-native-nsite-browser-met-bitcoin-naamsregistratie">Titan v0.1.0 lanceert native nsite://-browser met Bitcoin-naamsregistratie&lt;/h3>
&lt;p>&lt;a href="https://github.com/btcjt/titan">Titan&lt;/a>, een native desktopbrowser voor het Nostr-web, bracht &lt;a href="https://github.com/btcjt/titan/releases/tag/v0.1.0">v0.1.0&lt;/a> uit op 7 april. Titan resolveert &lt;code>nsite://&lt;/code>-URL&amp;rsquo;s door mensleesbare namen op te zoeken die op Bitcoin zijn geregistreerd, Nostr-relays te bevragen voor de contentevents van de site en pagina&amp;rsquo;s te renderen die van &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers zijn opgehaald. Het resultaat is een webbrowse-ervaring zonder DNS, zonder TLS-certificaten en zonder hostingproviders. Namen worden geregistreerd via een &lt;a href="https://npub1hmq6xuqnplk5lw0h3700cujmx5gymqn5wrn42u6432r6ntzumezqc3marw.nsite.lol/register">webinterface&lt;/a> die gekoppeld is aan Bitcoin-transacties. De eerste release wordt geleverd als een macOS &lt;code>.dmg&lt;/code> (ARM, met Rosetta 2-ondersteuning voor Intel) en bevat ondersteuning voor een Nix-ontwikkelomgeving.&lt;/p>
&lt;h3 id="bikel-v150-brengt-een-native-foreground-service-uit-voor-de-googled-telefoons">Bikel v1.5.0 brengt een native foreground service uit voor de-Googled telefoons&lt;/h3>
&lt;p>&lt;a href="https://github.com/Mnpezz/bikel">Bikel&lt;/a>, een gedecentraliseerde fietstracker die ritten omzet in publieke infrastructuurdata via Nostr, bracht &lt;a href="https://github.com/Mnpezz/bikel/releases/tag/v1.5.0">v1.5.0&lt;/a> uit op 4 april. De release migreert van de van GMS afhankelijke Expo TaskManager naar een aangepaste native foreground service, wat betrouwbare achtergrondtracking van ritten garandeert op LineageOS, GrapheneOS en andere de-Googled Android-varianten. De Bikel Bot kreeg een dual-pocket-architectuur met autonome eCash-collectie via Cashu nutzaps. v1.4.3 en v1.4.2 repareren sync van achtergrondtracking voor niet-standaard Android-omgevingen, en de app voegt OSM bike rack map point toggles toe.&lt;/p>
&lt;h3 id="sprout-voegt-nip-01-nip-23-en-nip-33-ondersteuning-toe">Sprout voegt NIP-01, NIP-23 en NIP-33-ondersteuning toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout">Sprout&lt;/a>, een communicatieplatform van Block met een ingebouwde Nostr-relay, bracht &lt;a href="https://github.com/block/sprout/releases/tag/desktop/v0.1.0-rc7">desktop/v0.1.0-rc7&lt;/a> uit op 6 april. Deze week voegde het team ondersteuning toe voor &lt;a href="https://nostrcompass.org/en/topics/nip-23/">NIP-23&lt;/a> (Long-form Content) kind &lt;code>30023&lt;/code>-artikelen, &lt;a href="https://nostrcompass.org/en/topics/nip-33/">NIP-33&lt;/a> parameterized replaceable events met vervanging op basis van &lt;code>d&lt;/code>-tags, en &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a>/&lt;a href="https://nostrcompass.org/en/topics/nip-02/">NIP-02&lt;/a> kind &lt;code>1&lt;/code> text notes en kind &lt;code>3&lt;/code> follow lists. De release voegt ook een adaptief IDE-themasysteem met 54 thema&amp;rsquo;s toe, UX-polish voor workflow- en agent-run history, en een opgeschoonde ledenzijbalk.&lt;/p>
&lt;h3 id="mesh-llm-v0560-brengt-distributed-config-protocol-uit">mesh-llm v0.56.0 brengt distributed config protocol uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/michaelneale/mesh-llm">mesh-llm&lt;/a>, een gedistribueerd LLM-inferentiesysteem dat Nostr-keypairs gebruikt voor node-identiteit, bracht &lt;a href="https://github.com/michaelneale/mesh-llm/releases/tag/v0.56.0">v0.56.0&lt;/a> uit op 7 april. De release voegt een distributed config protocol toe met ownership-semantiek, asymmetrische KV-cache-kwantisatie (Q8_0-sleutels met Q4-waarden) voor lager geheugengebruik, OS keychain-opslag voor identity keystores, vloeiende chatstreaming met message queuing, en fixes voor fullscreen-layout en KV-cache-splitting met flash attention.&lt;/p>
&lt;h3 id="nostr-vpn-brengt-ondersteuning-voor-exit-nodes-en-umbrel-packaging-uit">Nostr VPN brengt ondersteuning voor exit nodes en Umbrel-packaging uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a>, een peer-to-peer VPN die Nostr-relays gebruikt voor signalering en WireGuard voor versleutelde tunnels, bracht deze week zes releases uit van &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.0">v0.3.0&lt;/a> tot en met &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.6">v0.3.6&lt;/a>. De v0.3.x-cyclus voegt ondersteuning voor exit nodes op Windows en macOS toe, waardoor peers internetverkeer via andere nodes in het netwerk kunnen routeren. Invite- en alias-propagatie synchroniseren nu over Nostr, zodat gebruikers netwerktoegang kunnen delen zonder coördinatie buiten het protocol om. De releases voegen Umbrel-packaging voor self-hosted deployment toe, NAT punch-through met onthouden publieke endpoints, automatische opschoning van verouderde exit nodes en een gepubliceerde protocolspecificatie. Het project stabiliseerde ook de route-afhandeling op macOS met zelfherstellende default routes en underlay-reparatie, en voegde een Android-build via Tauri toe. Builds zijn beschikbaar voor macOS (Apple Silicon en Intel), Linux (AppImage en .deb), Windows en Android.&lt;/p>
&lt;h3 id="nymchat-draait-marmot-terug-en-brengt-verbeterde-nip-17-groepschats-uit">Nymchat draait Marmot terug en brengt verbeterde NIP-17-groepschats uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a>, de MLS-capabele chatclient, bracht 14 releases uit van &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/3.56.261">v3.56.261&lt;/a> tot en met &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.274">v3.58.274&lt;/a>. De belangrijkste wijziging is een protocoldraai: &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.57.261">v3.57.261&lt;/a> voegde Marmot MLS-groepschats toe, maar &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.268">v3.58.268&lt;/a> keerde terug naar &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> omdat de ondersteuning van Marmot voor meerdere apparaten nog niet af is, wat problemen veroorzaakte met de synchronisatie van groepschatstatus tussen apparaten. v3.58.271 introduceert verbeterde NIP-17-groepschats met roterende ephemeral keys voor alle berichten, ontworpen om timing- en correlatieaanvallen te voorkomen. De week bracht ook een friendsysteem met fijnmazige controle over instellingen (&lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.262">v3.58.262&lt;/a>), synchronisatie van MLS-groepschatberichten in versleutelde appinstellingen en meerdere fixes voor relayconnectiviteit.&lt;/p>
&lt;h3 id="nak-v0195-voegt-blossom-multi-server-en-outbox-publicatie-toe">nak v0.19.5 voegt Blossom multi-server en outbox-publicatie toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjaf&amp;rsquo;s command-line Nostr-toolkit, bracht &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.5">v0.19.5&lt;/a> uit. Het &lt;code>blossom&lt;/code>-commando accepteert nu meerdere &lt;code>--server&lt;/code>-flags om in één keer naar verschillende &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers te uploaden. Een nieuw &lt;code>key&lt;/code>-commando breidt partiële sleutels uit door links nullen toe te voegen. Het &lt;code>event&lt;/code>-commando krijgt een &lt;code>--outbox&lt;/code>-flag om events via het outbox-model te publiceren, en &lt;code>fetch&lt;/code> stopt nu met een foutcode wanneer geen event wordt teruggegeven.&lt;/p>
&lt;h2 id="in-ontwikkeling">In ontwikkeling&lt;/h2>
&lt;h3 id="white-noise-voegt-thumbhash-previews-en-push-registration-bridge-toe">White Noise voegt thumbhash-previews en push registration bridge toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, de private messenger gebouwd op het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol, merge&amp;rsquo;de vijf PR&amp;rsquo;s. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/549">PR #549&lt;/a> vervangt blurhash-image previews door thumbhash, een nieuwer algoritme dat scherpere placeholderafbeeldingen produceert met een kleinere payload (doorgaans minder dan 30 bytes tegenover blurhash met ongeveer 50-100 bytes), terwijl de aspectverhouding en kleurverdeling van de oorspronkelijke afbeelding behouden blijven. Blurhash blijft als fallback bestaan voor oudere content. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/548">PR #548&lt;/a> werkt whitenoise-rs bij en voegt de &lt;a href="https://nostrcompass.org/nl/topics/mip-05/">MIP-05&lt;/a> push registration bridge toe, waarmee het &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#marmot-moves-keypackages-to-addressable-events-and-tightens-push-notifications">werk aan de pushnotificatiespecificatie van vorige week&lt;/a> met de client wordt verbonden. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/493">PR #493&lt;/a> voegt cursor-based pagination toe voor chatberichten, als vervanging van de eerdere laadstrategie door een scrollgestuurde aanpak.&lt;/p>
&lt;h3 id="route96-voegt-dynamische-labelconfiguratie-en-zero-egress-opruiming-toe">Route96 voegt dynamische labelconfiguratie en zero-egress-opruiming toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-mediaserver van v0l, merge&amp;rsquo;de drie PR&amp;rsquo;s. &lt;a href="https://github.com/v0l/route96/pull/80">PR #80&lt;/a> voegt dynamische configuratie van labelmodellen via de admin-API toe, waardoor operators contentclassificatiemodellen kunnen wisselen zonder de server opnieuw te starten. &lt;a href="https://github.com/v0l/route96/pull/82">PR #82&lt;/a> voegt labelconfiguratievelden toe aan de admin-UI. &lt;a href="https://github.com/v0l/route96/pull/79">PR #79&lt;/a> voegt een zero-egress-opruimbeleid toe dat bestanden die nooit zijn gedownload automatisch verwijdert, zodat opslagkosten voor operators laag blijven.&lt;/p>
&lt;h3 id="snort-brengt-beveiligingsverharding-en-dvm-betaalfacturen-uit">Snort brengt beveiligingsverharding en DVM-betaalfacturen uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/snort">Snort&lt;/a>, de webclient, bracht deze week twee releases uit samen met een uitgebreide beveiligingsaudit. Fixes omvatten Schnorr-signatuurverificatie, bescherming tegen relay message forgery in &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (waardoor aanvallers geen signing requests kunnen injecteren via gecompromitteerde relays), verbeteringen aan PIN-versleuteling en verwijdering van vertrouwen op NIP-26-delegatie. Prestatieverbeteringen komen van gebatchte Schnorr-verificatie in WASM, lazy-loaded routes, vooraf gecompileerde vertalingen en het weghalen van dubbele verificatie per event. &lt;a href="https://github.com/v0l/snort/pull/618">PR #618&lt;/a> voegt weergave van payment-required invoices toe voor &lt;a href="https://nostrcompass.org/en/topics/nip-90/">NIP-90&lt;/a> (Data Vending Machine) kind &lt;code>7000&lt;/code>, zodat Snort de Lightning-factuur direct in de feed rendert wanneer een DVM met een betaalverzoek reageert.&lt;/p>
&lt;h3 id="damus-verbetert-lmdb-compaction">Damus verbetert LMDB-compaction&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, de iOS-client, merge&amp;rsquo;de &lt;a href="https://github.com/damus-io/damus/pull/3719">PR #3719&lt;/a>, die automatische LMDB-compaction volgens een schema toevoegt en voorkomt dat de lokale database na verloop van tijd onbegrensd groeit. &lt;a href="https://github.com/damus-io/damus/pull/3663">PR #3663&lt;/a> verbetert de BlurOverlayView zodat die beschermend oogt in plaats van kapot.&lt;/p>
&lt;h3 id="captains-log-voegt-tag-indexering-en-note-sync-toe">Captain&amp;rsquo;s Log voegt tag-indexering en note-sync toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/nodetec/captains-log">Captain&amp;rsquo;s Log&lt;/a> (Comet), de Nostr-native long-form schrijftool van Nodetec, merge&amp;rsquo;de deze week vier PR&amp;rsquo;s. &lt;a href="https://github.com/nodetec/captains-log/pull/156">PR #156&lt;/a> voegt tag-indexering en sync-ondersteuning over notes heen toe, &lt;a href="https://github.com/nodetec/captains-log/pull/157">PR #157&lt;/a> refactort note-sync en tag-afhandeling, en &lt;a href="https://github.com/nodetec/captains-log/pull/159">PR #159&lt;/a> repareert sync van verwijderde notes zodat gewiste notes op alle apparaten verwijderd blijven.&lt;/p>
&lt;h3 id="relatr-v02x-herontwerpt-plug-insysteem-met-nostr-native-validator-marktplaats">Relatr v0.2.x herontwerpt plug-insysteem met Nostr-native validator-marktplaats&lt;/h3>
&lt;p>&lt;a href="https://github.com/ContextVM/relatr">Relatr&lt;/a>, een &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-scoringengine die vertrouwensranglijsten berekent op basis van sociale-graafafstand en configureerbare validators, bracht de v0.2.x-familie uit met een complete herziening van het plug-insysteem. Validators worden nu geschreven in Elo, een draagbare functionele expressietaal die is geforkt om host-georkestreerde capabilities in meerdere stappen te ondersteunen (Nostr-queries, social graph-lookups, NIP-05-resolutie). Plug-ins worden gepubliceerd als kind &lt;code>765&lt;/code> Nostr-events, waardoor distributie native wordt aan het relaynetwerk. Een nieuwe &lt;a href="https://relatr.net">plugin marketplace&lt;/a> laat operators validators ontdekken, installeren en wegen vanuit de browser, met een CLI (&lt;code>relo&lt;/code>) voor lokaal authoren en publiceren. De architectuur is gesandboxed: plug-ins kunnen alleen capabilities aanroepen die de host expliciet beschikbaar stelt, zodat een kwaadaardige validator niet buiten zijn gedefinieerde scope kan ontsnappen. Relatr-instanties kunnen nu vanaf de website worden beheerd, met volledige zichtbaarheid in welke plug-ins het scoringsalgoritme vormen en welke individuele gewichten ze hebben.&lt;/p>
&lt;h3 id="shopstr-verbetert-mobiele-navigatie-en-toegangscontrole">Shopstr verbetert mobiele navigatie en toegangscontrole&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, de Nostr-native marktplaats voor kopen en verkopen met Bitcoin, pushte deze week 158 commits over de hoofdapp en het begeleidende &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>-project. Fixes omvatten verbeteringen aan de mobiele communitylayout, gedrag waarbij menu&amp;rsquo;s bij navigatie sluiten en het automatisch sluiten van dropdowns. Beschermde routes zijn niet langer via een directe URL bereikbaar zonder in te loggen, en de slug-matchinglogica behandelt meerdere exacte matches nu correct.&lt;/p>
&lt;h3 id="pollerama-voegt-notificaties-filmzoekfunctie-en-rating-ui-toe">Pollerama voegt notificaties, filmzoekfunctie en rating-UI toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-polls">Pollerama&lt;/a>, een polling-, survey- en social rating-app gebouwd op Nostr, voegde thread-notificaties, een filmzoekfunctie en een herziening van de rating-UI toe. De release repareert ook problemen met het laden van de feed en verhoogt dependency-versies.&lt;/p>
&lt;h3 id="purser-bouwt-nostr-native-betaaldemon-met-marmot-versleuteling">Purser bouwt Nostr-native betaaldemon met Marmot-versleuteling&lt;/h3>
&lt;p>&lt;a href="https://github.com/EthnTuttle/purser">Purser&lt;/a>, een Nostr-native betaaldemon ontworpen als vervanger voor Zaprite, merge&amp;rsquo;de deze week negen PR&amp;rsquo;s die de kernarchitectuur uitbouwen. Het project gebruikt &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> MLS via MDK voor versleutelde merchant-customer messaging, met Strike en Square als payment providers. Deze week landden config- en catalog-loading, validatie van berichtschema&amp;rsquo;s, de MDK-communicatielaag, implementaties voor Strike en Square, een polling-engine, anti-spam-rate limiting, persistentie van pending payments en de orderverwerkingspipeline. Alle 99 tests oefenen nu echte mdk-core MLS-operaties uit nadat het team mock MLS verwijderde ten gunste van echte versleuteling in local mode.&lt;/p>
&lt;h3 id="vector-refactort-dm-bijlagen-en-voegt-profielbewerking-toe">Vector refactort DM-bijlagen en voegt profielbewerking toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, de privacygerichte Nostr-messenger gebouwd met Tauri, merge&amp;rsquo;de &lt;a href="https://github.com/VectorPrivacy/Vector/pull/55">PR #55&lt;/a>, die de frontend refactort. Het decrypten en opslaan van DM-bijlagen is verplaatst naar de vector-core-library, en de app ondersteunt nu profielbewerking. De upload-cancel-flag is correct doorverbonden via TauriSendCallback, en ongebruikte callbacks voor attachment previews zijn opgeschoond.&lt;/p>
&lt;h2 id="protocol--en-specificatiewerk">Protocol- en specificatiewerk&lt;/h2>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> (Badges): Profile Badges verhuizen naar kind 10008, Badge Sets naar kind 30008&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2276">PR #2276&lt;/a>): Migreert Profile Badges van kind &lt;code>30008&lt;/code> naar kind &lt;code>10008&lt;/code> (een replaceable event, één per pubkey) en introduceert kind &lt;code>30008&lt;/code> voor Badge Sets. Eerder gebruikten Profile Badges hetzelfde kind (&lt;code>30008&lt;/code>) als badge-definities, waardoor ze parameterized replaceable events waren met een &lt;code>d&lt;/code>-tag als sleutel. Het nieuwe kind &lt;code>10008&lt;/code> is een eenvoudig replaceable event: één per pubkey, zonder &lt;code>d&lt;/code>-tag. Clients vragen nu per gebruiker één enkel replaceable event op in plaats van parameterized replaceable events te scannen. Amethyst v1.07.3 wordt al met deze migratie geleverd.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> (Git Stuff): Add git-related follow lists&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2130">PR #2130&lt;/a>): Voegt conventies voor follow lists toe voor NIP-34 repository- en issue-tracking. Gebruikers publiceren kind &lt;code>30000&lt;/code> follow sets met &lt;code>d&lt;/code>-tags zoals &lt;code>git-repos&lt;/code> of &lt;code>git-issues&lt;/code> die &lt;code>a&lt;/code>-tagverwijzingen bevatten naar repositories (kind &lt;code>30617&lt;/code>) die zij willen volgen. Clients kunnen zich op deze follow sets abonneren om repository-activiteit in de feed van een gebruiker te tonen, vergelijkbaar met hoe kind &lt;code>3&lt;/code> contactlijsten werken voor pubkeys.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-AC: P2P Voice and Video Calls over WebRTC&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2301">PR #2301&lt;/a>): Breidt de oorspronkelijke NIP-100 (geïmplementeerd door 0xChat) uit met drie wijzigingen: migratie naar &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-versleuteling verpakt in &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wraps om metadata-lekken te elimineren, een gespecificeerde WebRTC-workflow voor de setup van voice- en videocalls (offer, answer, ICE candidates), en een mesh-model voor groepscalls waarin elke peer een directe WebRTC-verbinding opzet met elke andere peer. De specificatie is niet backwards-compatible met NIP-100. Amethyst bouwt er al tegenaan, met een testsuite voor de call state machine (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2143">PR #2143&lt;/a>) en afhandeling van verouderde call offers (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2164">PR #2164&lt;/a>) die deze week landden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/en/topics/nip-340/">NIP-340&lt;/a> (FROST Quorum)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2299">PR #2299&lt;/a>): Stelt conventies voor voor threshold-signing op Nostr met &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a> (Flexible Round-Optimized Schnorr Threshold). FROST laat een groep signers gezamenlijk een Nostr-identiteit beheren waarbij elke t-of-n-combinatie events kan signeren zonder de volledige private key te reconstrueren. Het NIP definieert hoe signing-rondes worden gecoördineerd, key shares worden verdeeld en threshold-signed events worden gepubliceerd, voortbouwend op het Igloo-signerwerk uit het &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#igloo-signer-11">FROSTR-project&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/en/topics/nip-5d/">NIP-5D&lt;/a> (Nostr Web Applets)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2303">PR #2303&lt;/a>): Definieert een &lt;code>postMessage&lt;/code>-protocol voor gesandboxte webapplicaties (&amp;ldquo;napplets&amp;rdquo;) die in iframes draaien om te communiceren met een hostapplicatie (&amp;ldquo;shell&amp;rdquo;). De shell voorziet de napplet via een gestructureerde message-API van Nostr-signing, relaytoegang en gebruikerscontext, terwijl de iframe-sandbox directe sleuteltoegang verhindert. Dit breidt het model voor hosting van statische websites uit &lt;a href="https://nostrcompass.org/en/topics/nip-5a/">NIP-5A&lt;/a> uit richting interactieve applicaties die Nostr-events kunnen lezen en schrijven. Het NIP is actief in ontwikkeling met een werkende runtime-implementatie.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/en/topics/nip-5c/">NIP-5C&lt;/a> (Scrolls)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2281">PR #2281&lt;/a>): Is hernoemd vanuit het eerdere voorstel NIP-A5. Het definieert conventies voor het publiceren en ontdekken van WebAssembly-programma&amp;rsquo;s op Nostr. WASM-binaries worden als Nostr-events opgeslagen, en clients kunnen ze downloaden en uitvoeren in een gesandboxte runtime. Een &lt;a href="https://nprogram.netlify.app/">demo-app&lt;/a> laat scrolls in de browser draaien, met voorbeeldprogramma&amp;rsquo;s die als Nostr-events zijn gepubliceerd en door elke client kunnen worden opgehaald en uitgevoerd.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions): Clarifications&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2304">PR #2304&lt;/a>): Verscherpt de specificatietaal rond meerdere sleutels en relays per serviceprovider en verduidelijkt hoe clients assertions van providers moeten afhandelen die over meerdere pubkeys of relay-endpoints opereren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-24/">NIP-24&lt;/a> (Extra Metadata Fields): published_at voor replaceable events&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2300">PR #2300&lt;/a>): Generaliseert de &lt;code>published_at&lt;/code>-tag uit &lt;a href="https://nostrcompass.org/en/topics/nip-23/">NIP-23&lt;/a> (Long-form Content) naar alle replaceable en addressable events. De tag is uitsluitend bedoeld voor weergave: als &lt;code>published_at&lt;/code> gelijk is aan &lt;code>created_at&lt;/code>, tonen clients het event als &amp;ldquo;gemaakt&amp;rdquo; op dat moment; als ze verschillen (omdat het event is bijgewerkt), kunnen clients in plaats daarvan &amp;ldquo;bijgewerkt&amp;rdquo; tonen. Dit laat kind &lt;code>0&lt;/code>-profielen &amp;ldquo;joined at&amp;rdquo;-data tonen en laat andere replaceable events hun oorspronkelijke publicatietijdstip behouden over updates heen. Een aanvullend voorstel voor &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2302">PR #2302&lt;/a>) voegt dezelfde tag toe aan list-events.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap): Ephemeral gift wrap kind&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2245">PR #2245&lt;/a>): Voegt kind &lt;code>21059&lt;/code> toe als ephemeral tegenhanger van de bestaande kind &lt;code>1059&lt;/code> gift wrap. Ephemeral events (kinds &lt;code>20000&lt;/code>-&lt;code>29999&lt;/code>) volgen de semantiek van &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a>: relays hoeven ze niet op te slaan en mogen ze na bezorging weggooien. Daarmee kunnen applicaties gift-wrapped berichten versturen die van relays verdwijnen zodra ze zijn afgeleverd, wat de opslagbehoefte voor berichtenverkeer met hoog volume vermindert terwijl hetzelfde drielagige versleutelingsmodel als gewone &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&amp;rsquo;s behouden blijft.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="opensats-kondigt-zestiende-golf-nostr-subsidies-aan">OpenSats kondigt zestiende golf Nostr-subsidies aan&lt;/h3>
&lt;p>&lt;a href="https://opensats.org">OpenSats&lt;/a> kondigde op 8 april zijn &lt;a href="https://opensats.org/blog/sixteenth-wave-of-nostr-grants">zestiende golf Nostr-subsidies&lt;/a> aan, met financiering voor vier eerste subsidies en één verlenging. &lt;a href="https://github.com/vitorpamplona/amethyst/tree/main/desktopApp">Amethyst Desktop&lt;/a> ontvangt financiering voor bijdrager Robert Nagy om een zelfstandige desktopapp te bouwen bovenop de &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a> en Commons-modules, waarmee de feature-set van de Android-client naar muisgestuurde interfaces met persistente relayverbindingen wordt gebracht. &lt;a href="https://github.com/nogringo/nostr-mail">Nostr Mail&lt;/a> ontvangt financiering om een volledig e-mailsysteem op Nostr te bouwen met kind &lt;code>1301&lt;/code>-events verpakt in &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wraps, met een Flutter-client en SMTP-bridgeservers voor compatibiliteit met Gmail en Outlook. &lt;a href="https://github.com/Nostrord/nostrord">Nostrord&lt;/a> ontvangt financiering voor een Kotlin Multiplatform &lt;a href="https://nostrcompass.org/en/topics/nip-29/">NIP-29&lt;/a> relay-based groepsclient met Discord-achtige groepsberichten, moderatie en threads. &lt;a href="https://github.com/tami1A84/null--nostr">Nurunuru&lt;/a> ontvangt financiering om een native iOS-versie te bouwen van de op Japan gerichte Nostr-client gemodelleerd naar de vertrouwde interface van LINE, met op passkeys gebaseerde biometrische login voor onboarding. HAMSTR kreeg een verlenging van zijn subsidie (voor het eerst gefinancierd in de &lt;a href="https://opensats.org/blog/eleventh-wave-of-nostr-grants#hamstr">elfde golf&lt;/a>).&lt;/p>
&lt;h2 id="nip-deep-dive-nip-17-private-direct-messages">NIP Deep Dive: NIP-17 (Private Direct Messages)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/17.md">NIP-17&lt;/a> definieert de huidige standaard voor private direct messages op Nostr. Het vervangt het oudere schema van &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages), dat metadata lekte (afzender, ontvanger en tijdstempels waren allemaal zichtbaar op relays) en een zwakkere versleutelingsconstructie gebruikte. NIP-17 combineert &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) voor versleuteling met &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) voor bescherming van metadata, en creëert zo een systeem met drie lagen waarin relays niet kunnen zien wie met wie praat.&lt;/p>
&lt;p>Het protocol gebruikt drie event kinds die in elkaar zijn genest. De binnenste laag is het daadwerkelijke bericht, een ongetekend kind &lt;code>14&lt;/code>-event:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;d7e3a4b9c1f2e8d6a5b4c3d2e1f09876d7e3a4b9c1f2e8d6a5b4c3d2e1f09876&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1744108800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">14&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;f1a2b3c4d5e6f7890123456789abcdef01234567890abcdef1234567890abcdef&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://inbox.example.com&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;subject&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Project update&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;The new relay config is deployed. Let me know if you see any issues.&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Het kind &lt;code>14&lt;/code>-event is bewust ongetekend (lege &lt;code>sig&lt;/code>). De specificatie beschrijft dit als het bieden van ontkenbaarheid, maar in de praktijk is die bescherming beperkt. De kind &lt;code>13&lt;/code> seal die het rumor-bericht inpakt, is ondertekend met de echte sleutel van de afzender. Een ontvanger kan die ondertekende seal aan een derde partij tonen en daarmee bewijzen dat de afzender met hen heeft gecommuniceerd, zelfs zonder de inhoud van het bericht prijs te geven. Met zero-knowledge proofs kan een ontvanger zelfs de exacte inhoud van het bericht bewijzen zonder zijn eigen private key prijs te geven. Het ongetekende rumor is als een ongetekende brief in een ondertekende envelop: de handtekening op de envelop koppelt de afzender aan de inhoud. Echte ontkenbaarheid zou symmetrische authenticatie vereisen (zoals de HMACs van Signal), wat onverenigbaar is met het gedecentraliseerde relaymodel van Nostr waarin berichten zelfauthenticerend moeten zijn. De echte sterke punten van NIP-17 zijn metadata-privacy en geheimhouding van content, niet ontkenbaarheid.&lt;/p>
&lt;p>Dit ongetekende bericht wordt vervolgens verpakt in een kind &lt;code>13&lt;/code> seal, die door de werkelijke afzender wordt ondertekend en met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> voor de ontvanger wordt versleuteld:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;d7e3a4b9c1f2e8d6a5b4c3d2e1f09876d7e3a4b9c1f2e8d6a5b4c3d2e1f09876&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1744022400&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">13&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;nip44-encrypted kind 14 payload&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De seal heeft geen tags, dus zelfs na decryptie zou die de ontvanger niet onthullen. De seal is ondertekend met de echte sleutel van de afzender, waardoor de ontvanger het bericht kan authenticeren door te controleren dat de &lt;code>pubkey&lt;/code> van de seal overeenkomt met de &lt;code>pubkey&lt;/code> van het binnenste kind &lt;code>14&lt;/code>.&lt;/p>
&lt;p>De seal wordt daarna verpakt in een kind &lt;code>1059&lt;/code> gift wrap, ondertekend met een willekeurige wegwerpsleutel en geadresseerd aan de ontvanger:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1744065600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1059&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;f1a2b3c4d5e6f7890123456789abcdef01234567890abcdef1234567890abcdef&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;nip44-encrypted kind 13 payload&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>pubkey&lt;/code> van de gift wrap is een willekeurige sleutel die alleen voor dit bericht wordt gegenereerd, en de &lt;code>created_at&lt;/code> wordt tot twee dagen in het verleden gerandomiseerd. Dit is de buitenste laag die relays daadwerkelijk zien: een bericht van een onbekende pubkey aan de ontvanger, met een tijdstempel die niet weerspiegelt wanneer het bericht echt is verzonden. De gerandomiseerde tijdstempel beschermt tegen analyse achteraf van opgeslagen events, maar een aanvaller die actief met relays is verbonden kan nog steeds zien wanneer de gift wrap voor het eerst verscheen, waardoor deze verdediging beperkt blijft tot passieve waarnemers die relaydata later opvragen. Omdat de pubkey willekeurig is en de tijdstempel nep, kunnen relays de echte afzender niet bepalen. Om het bericht te lezen decrypt de ontvanger de gift wrap met zijn eigen sleutel en de willekeurige pubkey, vindt daarbinnen de seal, decrypt vervolgens de seal met zijn eigen sleutel en de pubkey van de afzender uit de seal, en vindt daarbinnen het kind &lt;code>14&lt;/code>-bericht.&lt;/p>
&lt;p>NIP-17 biedt geen forward secrecy. Alle berichten worden versleuteld met het statische Nostr-keypair (via de sleutelafleiding van NIP-44 uit de sleutels van afzender en ontvanger). Als een private key gecompromitteerd raakt, kan elk vroeger en toekomstig bericht dat naar die sleutel is versleuteld worden gedecrypt. Dat is een bewuste afruil: omdat versleuteling alleen van de nsec afhangt, kan een gebruiker die zijn nsec back-upt de volledige berichtgeschiedenis herstellen van elke relay die de gift wraps nog bewaart. Protocollen zoals MLS (gebruikt door &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>) bieden forward secrecy via roterend sleutelmateriaal, maar ten koste van statussynchronisatie en met als gevolg dat historische berichten na sleutelrotatie niet meer kunnen worden hersteld.&lt;/p>
&lt;p>NIP-17 definieert ook kind &lt;code>15&lt;/code> voor versleutelde bestandsberichten, met &lt;code>file-type&lt;/code>-, &lt;code>encryption-algorithm&lt;/code>-, &lt;code>decryption-key&lt;/code>- en &lt;code>decryption-nonce&lt;/code>-tags zodat de ontvanger een bijgevoegd bestand kan decrypten dat met AES-GCM is versleuteld voordat het naar een Blossom-server werd geüpload. Kind &lt;code>10050&lt;/code> wordt gebruikt om de voorkeurslijst van DM-relays van een gebruiker te publiceren, zodat afzenders weten waar zij gift wraps moeten afleveren. De set van &lt;code>pubkey&lt;/code> + &lt;code>p&lt;/code>-tags in een bericht definieert een chatroom; een deelnemer toevoegen of verwijderen maakt een nieuwe room met een schone geschiedenis.&lt;/p>
&lt;p>Implementaties dekken de meeste grote clients. &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> gebruikt NIP-17 voor alle één-op-één-berichten. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> gebruikt NIP-17 voor zijn proof-of-work-DM&amp;rsquo;s. &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal&lt;/a>, &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a>, &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, &lt;a href="https://github.com/hzrd149/nostrudel">noStrudel&lt;/a> en &lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a> implementeren allemaal NIP-17 als hun primaire DM-protocol. De specificatie ondersteunt ook verdwijnende berichten door een &lt;code>expiration&lt;/code>-tag in de gift wrap te zetten.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-46-nostr-remote-signing">NIP Deep Dive: NIP-46 (Nostr Remote Signing)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/46.md">NIP-46&lt;/a> definieert een protocol om de private key van de gebruiker te scheiden van de clientapplicatie. In plaats van een nsec in een webapp te plakken draait de gebruiker een remote signer (ook wel een &amp;ldquo;bunker&amp;rdquo; genoemd) die de private key vasthoudt en op signing requests via Nostr-relays reageert. De client ziet de private key nooit. Dat verkleint het aanvalsoppervlak: een gecompromitteerde client kan signatures aanvragen, maar kan de sleutel zelf niet extraheren.&lt;/p>
&lt;p>Het protocol gebruikt kind &lt;code>24133&lt;/code> voor zowel verzoeken als antwoorden, versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads). Een client genereert voor de sessie een wegwerp-&lt;code>client-keypair&lt;/code> en communiceert met de remote signer via met NIP-44 versleutelde berichten die met elkaars pubkeys zijn getagd. Hieronder staat een signing request van een client aan een remote signer:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;aa11bb22cc33dd44ee55ff6677889900aabbccdd11223344556677889900aabb&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;eff37350d839ce3707332348af4549a96051bd695d3223af4aabce4993531d86&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1744108800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">24133&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;nip44-encrypted JSON-RPC request&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1122334455667788990011223344556677889900aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff0011223344556677&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De versleutelde &lt;code>content&lt;/code> bevat een JSON-RPC-achtige structuur:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;random-request-id-1&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;method&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;sign_event&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;params&amp;#34;&lt;/span>: [&lt;span style="color:#e6db74">&amp;#34;{\&amp;#34;kind\&amp;#34;:1,\&amp;#34;content\&amp;#34;:\&amp;#34;Hello from remote signing\&amp;#34;,\&amp;#34;tags\&amp;#34;:[],\&amp;#34;created_at\&amp;#34;:1744108800}&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De remote signer decrypt het verzoek, presenteert het aan de gebruiker ter goedkeuring (of keurt het automatisch goed op basis van geconfigureerde permissies), ondertekent het event met de private key van de gebruiker en retourneert het ondertekende event in een antwoord:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;bb22cc33dd44ee55ff6677889900aabb11223344556677889900aabbccddeeff&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1744108801&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">24133&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;eff37350d839ce3707332348af4549a96051bd695d3223af4aabce4993531d86&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;nip44-encrypted JSON-RPC response&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff00112233445566778899&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Verbindingen kunnen vanaf beide kanten worden gestart. Een remote signer levert een &lt;code>bunker://&lt;/code>-URL met zijn pubkey en relayinformatie. Een client levert een &lt;code>nostrconnect://&lt;/code>-URL met zijn client pubkey, relays en een secret voor verificatie van de verbinding. De &lt;code>secret&lt;/code>-parameter voorkomt connection spoofing: alleen de partij die de URL out-of-band heeft ontvangen kan de handshake voltooien.&lt;/p>
&lt;p>Acht methoden zijn gedefinieerd: &lt;code>connect&lt;/code> voor het opzetten van de sessie, &lt;code>sign_event&lt;/code> voor het signeren van events, &lt;code>get_public_key&lt;/code> om de pubkey van de gebruiker op te vragen, &lt;code>ping&lt;/code> voor keepalive, &lt;code>nip04_encrypt&lt;/code>/&lt;code>nip04_decrypt&lt;/code> voor legacy-versleuteling, &lt;code>nip44_encrypt&lt;/code>/&lt;code>nip44_decrypt&lt;/code> voor huidige versleuteling, en &lt;code>switch_relays&lt;/code> voor relaybeheer. Relaymigratie wordt afgehandeld door de remote signer, die de verbinding in de loop van de tijd naar nieuwe relays kan verplaatsen zonder de sessie te breken.&lt;/p>
&lt;p>Clients vragen tijdens het verbinden specifieke capabilities aan via een permissiesysteem. Een permissiestring als &lt;code>nip44_encrypt,sign_event:1,sign_event:14&lt;/code> vraagt toegang tot NIP-44-versleuteling en signingtoegang voor alleen kind &lt;code>1&lt;/code>- en kind &lt;code>14&lt;/code>-events. De remote signer kan deze permissies accepteren, weigeren of aanpassen. Dat betekent dat een webclient voor het lezen en posten van notes misschien alleen permissie &lt;code>sign_event:1&lt;/code> krijgt, terwijl een DM-client ook &lt;code>sign_event:14&lt;/code> en &lt;code>nip44_encrypt&lt;/code> kan krijgen.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> implementeert NIP-46 op Android, en de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-08-newsletter/#amber-v600-pre1-voegt-nip-46-signing-keys-per-verbinding-toe">v6.0.0-pre1&lt;/a> van deze week voegt signing keys per verbinding toe voor isolatie tussen clients. &lt;a href="https://github.com/nicktee/nsecapp">nsec.app&lt;/a> (voorheen Nostr Connect) levert een webgebaseerde bunker. &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> bevat &lt;code>BunkerSigner&lt;/code> voor JavaScript-clients, en &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#nostr-tools-adds-bunker-relay-control-and-fixes-nip-47-multi-relay-parsing">de PR #530 van vorige week&lt;/a> voegde &lt;code>skipSwitchRelays&lt;/code> toe voor handmatig relaybeheer. Het protocol ondersteunt ook auth challenges: wanneer een remote signer extra authenticatie nodig heeft (wachtwoord, biometrie of hardwaretoken), reageert die met een &lt;code>auth_url&lt;/code> die de client in een browser opent zodat de gebruiker die kan voltooien.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets of heb je nieuws om te delen? Stuur ons een DM op Nostr of vind ons op &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #16</title><link>https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amethyst-brengt-vastgepinde-notes-relaybeheer-en-request-to-vanish">v1.07.0&lt;/a> uit met vastgepinde notes, relaybeheer via &lt;a href="https://nostrcompass.org/nl/topics/nip-86/">NIP-86&lt;/a> en ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> Request to Vanish. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nip-5a-wordt-gemerged-en-brengt-statische-websites-naar-nostr">NIP-5A&lt;/a> (Static Websites) wordt gemerged in het NIPs-repository en definieert hoe websites onder Nostr-sleutelparen kunnen worden gehost met &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-opslag. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#flotilla-v170-voegt-voice-rooms-en-e-mail-login-toe">v1.7.0&lt;/a> uit met voice rooms, e-mail/wachtwoordlogin en proof-of-work DM&amp;rsquo;s. &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> repareert relay churn in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#white-noise-repareert-relay-churn-en-breidt-clientbesturing-uit">v2026.3.23&lt;/a>, &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nospeak-lanceert-als-een-10-prive-messenger">1.0.0&lt;/a> als messenger zonder signup. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nymchat-brengt-marmot-aangedreven-groepschats">adopteert Marmot&lt;/a> voor MLS-versleutelde groepschats met NIP-17-terugval. &lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a> bereikt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#calendar-by-form-v100">v1.0.0&lt;/a> met private kalenderlijsten en ICS-import, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amber-v502-tot-en-met-v504">mnemonic-herstel en NIP-42 relay-auth-whitelisting&lt;/a> toe, en de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#marmot-verplaatst-keypackages-naar-addressable-events-en-verscherpt-pushnotificaties">Marmot-specificatie&lt;/a> verplaatst KeyPackages naar addressable events terwijl MIP-05 pushnotificatieformattering wordt aangescherpt.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amethyst-brengt-vastgepinde-notes-relaybeheer-en-request-to-vanish">v1.07.0&lt;/a> uit met vastgepinde notes, relaybeheer via &lt;a href="https://nostrcompass.org/nl/topics/nip-86/">NIP-86&lt;/a> en ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> Request to Vanish. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nip-5a-wordt-gemerged-en-brengt-statische-websites-naar-nostr">NIP-5A&lt;/a> (Static Websites) wordt gemerged in het NIPs-repository en definieert hoe websites onder Nostr-sleutelparen kunnen worden gehost met &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-opslag. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#flotilla-v170-voegt-voice-rooms-en-e-mail-login-toe">v1.7.0&lt;/a> uit met voice rooms, e-mail/wachtwoordlogin en proof-of-work DM&amp;rsquo;s. &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> repareert relay churn in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#white-noise-repareert-relay-churn-en-breidt-clientbesturing-uit">v2026.3.23&lt;/a>, &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nospeak-lanceert-als-een-10-prive-messenger">1.0.0&lt;/a> als messenger zonder signup. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nymchat-brengt-marmot-aangedreven-groepschats">adopteert Marmot&lt;/a> voor MLS-versleutelde groepschats met NIP-17-terugval. &lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a> bereikt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#calendar-by-form-v100">v1.0.0&lt;/a> met private kalenderlijsten en ICS-import, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amber-v502-tot-en-met-v504">mnemonic-herstel en NIP-42 relay-auth-whitelisting&lt;/a> toe, en de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#marmot-verplaatst-keypackages-naar-addressable-events-en-verscherpt-pushnotificaties">Marmot-specificatie&lt;/a> verplaatst KeyPackages naar addressable events terwijl MIP-05 pushnotificatieformattering wordt aangescherpt.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="amethyst-brengt-vastgepinde-notes-relaybeheer-en-request-to-vanish">Amethyst brengt vastgepinde notes, relaybeheer en Request to Vanish&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client onderhouden door vitorpamplona, bracht in drie dagen zes releases uit, van &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.0">v1.07.0&lt;/a> tot &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.5">v1.07.5&lt;/a>. De kernset functies bestrijkt zes protocoloppervlakken: vastgepinde notes, een speciaal poll-feedscherm, ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) om volledige eventverwijdering van relays te vragen, &lt;a href="https://nostrcompass.org/nl/topics/nip-86/">NIP-86&lt;/a> (Relay Management API) vanuit de client, &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring)-beoordelingen in het relay-infoscherm en weergave van ledeninformatie uit &lt;a href="https://nostrcompass.org/nl/topics/nip-43/">NIP-43&lt;/a> (Relay Access Metadata and Requests).&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-86/">NIP-86&lt;/a> definieert een JSON-RPC-interface voor relayoperators, waarmee clients administratieve commando&amp;rsquo;s zoals het bannen of toestaan van pubkeys en het opvragen van gebande gebruikers via een gestandaardiseerde API kunnen sturen. Amethyst stelt dit nu direct bloot in zijn relaybeheer-UI, zodat gebruikers die hun eigen relays draaien ze kunnen beheren vanuit dezelfde client die ze gebruiken om te posten. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2039">PR #2039&lt;/a> vervangt de oude hex-invoerdialoog voor ban- en allow-pubkeys door een interactieve gebruikerszoekdialoog.&lt;/p>
&lt;p>v1.07.2 voegde GIF-keyboarduploads toe en repareerde een signingregressie waarbij afwijzingsantwoorden van Amber verkeerd werden gelezen omdat oudere Amber-versies een lege string teruggaven voor het &lt;code>rejected&lt;/code>-veld (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2042">PR #2042&lt;/a>). v1.07.5 repareert een crash tijdens image-upload. De &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.2">v1.06.2&lt;/a>- en &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.3">v1.06.3&lt;/a>-releases eerder in de week voegden een polltype-selector toe voor single- versus multiple-choice polls, drag-to-seek op videovoortgangsbalken en verbeteringen voor anoniem posten.&lt;/p>
&lt;h3 id="nip-5a-wordt-gemerged-en-brengt-statische-websites-naar-nostr">NIP-5A wordt gemerged en brengt statische websites naar Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">NIP-5A&lt;/a> (Static Websites) werd gemerged via &lt;a href="https://github.com/nostr-protocol/nips/pull/1538">PR #1538&lt;/a> en definieert hoe statische websites onder Nostr-sleutelparen kunnen worden gehost. De specificatie gebruikt twee event kinds: kind &lt;code>15128&lt;/code> voor een rootsite, één per pubkey, en kind &lt;code>35128&lt;/code> voor benoemde sites die met een &lt;code>d&lt;/code> tag worden geïdentificeerd. Elk manifest koppelt URL-paden aan SHA256-hashes, met optionele &lt;code>server&lt;/code> tags die verwijzen naar &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-opslaghosts waar de werkelijke bestanden staan.&lt;/p>
&lt;p>Het hostingmodel werkt zo: een site-auteur bouwt een statische site, uploadt de bestanden naar een of meer Blossom-servers en publiceert daarna een ondertekend manifestevent dat paden aan inhoudshashes koppelt. Een hostserver ontvangt webverzoeken, resolveert de pubkey van de auteur uit het subdomein, haalt het manifest op uit de &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a>-relaylijst van de auteur en serveert bestanden door de overeenkomende blobs van Blossom te downloaden. De site blijft onder controle van de auteur omdat alleen die sleutel een bijgewerkt manifest kan signeren. De hostserver is vervangbaar omdat elke server die NIP-5A begrijpt dezelfde site uit hetzelfde manifest kan serveren.&lt;/p>
&lt;p>De specificatie bouwt voort op infrastructuur die al bestond. &lt;a href="https://github.com/lez/nsite">nsite&lt;/a>, de referentie-hostimplementatie van NIP-5A gebouwd door lez, en &lt;a href="https://github.com/hzrd149/nsite-manager">nsite-manager&lt;/a>, hzrd149&amp;rsquo;s beheer-UI, draaiden al voordat het NIP werd gemerged. De merge maakt de event kinds en URL-resolutieregels officieel, waardoor tweede en derde implementaties nu een stabiel doel hebben.&lt;/p>
&lt;h3 id="white-noise-repareert-relay-churn-en-breidt-clientbesturing-uit">White Noise repareert relay churn en breidt clientbesturing uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, de private messenger gebouwd op het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol, bracht &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.3.23">v2026.3.23&lt;/a> uit op 25 maart. De kern van de release is relaystabiliteit. Login wacht niet langer op publicatie naar elke relay uit de relaylijst voordat het verdergaat, omdat relaylijstpublicatie nu quorumlogica gebruikt en de rest op de achtergrond herprobeert. Eenmalige fetches en publicaties gebruiken scoped efemere relaysessies in plaats van in de langlevende pool te blijven hangen, herstelde sessies vinden na opstarten hun groepsrefreshpad terug, en de app toont nu relaydiagnostiek en inspectie van relaystatus via &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/495">PR #495&lt;/a> en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/502">PR #502&lt;/a>.&lt;/p>
&lt;p>Dezelfde release verandert ook hoe gesprekken zich gedragen. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/468">PR #468&lt;/a> voegt NIP-C7 reply-threading toe met &lt;code>q&lt;/code> tags en &lt;code>nostr:nevent&lt;/code>-verwijzingen, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/471">PR #471&lt;/a> en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/512">PR #512&lt;/a> houden verwijderde berichten zichtbaar als verwijderde placeholders in plaats van ze stil te verwijderen, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/478">PR #478&lt;/a> voegt een in-app bugreportflow toe met anonieme rapporten via &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads), en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/486">PR #486&lt;/a> voegt supportchat direct in de client toe. Ook gebruikersgerichte berichtbesturing verscheen in dezelfde periode: &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/532">PR #532&lt;/a> archiveert chats, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/541">PR #541&lt;/a> voegt mute en unmute toe met configureerbare duur, en &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/535">PR #535&lt;/a> voegt notificatie-instellingen toe. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/539">PR #539&lt;/a> is voorbereidend werk voor push-registratie met APNs-registratie op iOS en Play Services-detectie op Android. Aan de backendzijde voegde de &lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> (Marmot Development Kit) MIP-05 pushnotificatieprimitieven en een notification request builder toe (&lt;a href="https://github.com/marmot-protocol/mdk/pull/235">PR #235&lt;/a>, &lt;a href="https://github.com/marmot-protocol/mdk/pull/238">PR #238&lt;/a>), terwijl &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> persistentie voor pushregistratie (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/688">PR #688&lt;/a>), fixes voor annulering van background tasks (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/696">PR #696&lt;/a>) en herstel van key packages bij startup (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/693">PR #693&lt;/a>) toevoegde.&lt;/p>
&lt;h3 id="nostr-vpn-bereikt-v030-met-roster-sync-en-invite-v2">Nostr VPN bereikt v0.3.0 met roster sync en invite v2&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostr-vpn-lanceert-als-een-tailscale-alternatief">Aansluitend op de lanceringsberichtgeving van vorige week&lt;/a>, zette &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a>, de peer-to-peer VPN die Nostr-relays gebruikt voor signalering en WireGuard voor versleutelde tunnels, zijn snelle releasetempo voort en bracht versies uit tot en met &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.3">v0.3.3&lt;/a>. De versionsprong brengt twee brekende wijzigingen: het invite-formaat gaat naar v2 (0.3.0 kan nog steeds v1-invites importeren, maar oudere builds kunnen geen v2-invites importeren), en admin-ondertekende roster sync werd aan het signaleringsprotocol toegevoegd. Peers met verschillende versies kunnen op mesh-niveau nog verbinden, maar oudere peers nemen niet deel aan rostersynchronisatie.&lt;/p>
&lt;p>Die roster sync markeert het begin van een beheerd netwerk. Een admin-node kan nu lidmaatschapswijzigingen naar alle peers pushen, zodat het toevoegen of verwijderen van een apparaat uit de mesh niet vereist dat elke peer handmatig de configuratie aanpast. De v0.2.x-releases in dezelfde week pakten specifieke deploymentproblemen aan: &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.22">v0.2.22&lt;/a> tot en met &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.28">v0.2.28&lt;/a> repareerden Windows-servicemanagement, voegden Android-buildscripts toe en verfijnden de LAN-pairingflow.&lt;/p>
&lt;h3 id="nospeak-lanceert-als-een-10-private-messenger">nospeak lanceert als een 1.0 private messenger&lt;/h3>
&lt;p>&lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a>, een private messenger gebouwd op Nostr, bracht zijn &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v1.0.0">1.0.0&lt;/a>-release uit op 27 maart. Het project bevat één-op-één- en groepsgesprekken, contactbeheer en een self-hostable architectuur. Eén-op-één-chats gebruiken &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), dat &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) combineert met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) om de afzender voor relays te verbergen. Voor media worden bestanden client-side versleuteld met AES-256-GCM voordat ze naar Blossom-servers worden geüpload. De release wordt ook als container image geleverd voor self-hosting.&lt;/p>
&lt;h3 id="flotilla-v170-voegt-voice-rooms-en-e-mail-login-toe">Flotilla v1.7.0 voegt voice rooms en e-mail-login toe&lt;/h3>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, hodlbod&amp;rsquo;s Discord-achtige &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> (Relay-based Groups)-client gebouwd rond het model &amp;ldquo;relays as groups&amp;rdquo;, bracht &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.0">v1.7.0&lt;/a> en &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.1">v1.7.1&lt;/a> uit op 30 en 31 maart. De opvallendste functie is voice rooms, bijgedragen door mplorentz. Gebruikers kunnen nu deelnemen aan voice calls binnen groepskanalen, met een join-dialoog (&lt;a href="https://gitea.coracle.social/coracle/flotilla/pulls/109">PR #109&lt;/a>) waarin ze een audio-inputdevice kunnen kiezen en kunnen beslissen of ze echt aan de voice call meedoen of alleen de tekstchat willen bekijken. Die dialoog lost een UX-probleem uit de vorige iteratie op: het betreden van een room met voice activeerde eerder direct de microfoon, ook wanneer de gebruiker alleen berichten wilde lezen of kamerinstellingen wilde bekijken.&lt;/p>
&lt;p>Dezelfde release voegt e-mail/wachtwoordlogin toe als alternatief voor Nostr key-gebaseerde auth, proof-of-work op DM&amp;rsquo;s, DM-bewerking, herontworpen relay-onboarding en instellingen, detectie van Blossom-ondersteuning via &lt;code>supported_nips&lt;/code>, verbeterde notificatiebadges, Android push notification fallback en fixes voor bestandsuploads op Android. v1.7.1 volgt met een fix voor pomade registration fallback bij gebruik van een offline signer.&lt;/p>
&lt;p>Hodlbod bouwt ook &lt;a href="https://gitea.coracle.social/coracle/caravel">Caravel&lt;/a>, een hostingmanager en dashboard voor zooid-relays, dat deze week 40 commits noteerde in de eerste ontwikkelfase.&lt;/p>
&lt;h3 id="nymchat-brengt-marmot-aangedreven-groepschats">Nymchat brengt Marmot-aangedreven groepschats&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> (ook bekend als NYM, Nostr Ynstant Messenger), de efemere chatclient gekoppeld aan Bitchat, kondigde aan dat alle nieuwe groepschats nu het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol gebruiken voor MLS-versleutelde berichten. De integratie gebruikt kinds &lt;code>443&lt;/code>, &lt;code>444&lt;/code> en &lt;code>445&lt;/code> voor respectievelijk key packages, welcome messages en groepsberichten, en levert forward secrecy, post-compromise security en nul metadata-lekkage. Als een ontvanger MLS niet kan gebruiken, valt Nymchat terug op zijn eerdere &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages)-pad voor groepschats, dat nog steeds end-to-end versleuteld is maar niet de ratchet-tree-eigenschappen van MLS heeft.&lt;/p>
&lt;p>De v3.55- en v3.56-serie richtten zich deze week op randgevallen voor groepschats: laden op nieuwe apparaten, leave-gedrag, notificatierouting en unread badge counts. In dezelfde cyclus werd ook een XSS-kwetsbaarheid uit ongeëscapete HTML gepatcht en werd blokkering van trefwoorden en zinnen uitgebreid naar gebruikersbijnamen. Daarmee wordt Nymchat nog een Marmot-client naast &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#white-noise-repareert-relay-churn-en-breidt-clientbesturing-uit">White Noise&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#openchat-v024-tot-en-met-v030">OpenChat&lt;/a>, en wordt de set apps groter die MLS-versleutelde groepsberichten via hetzelfde protocol kunnen uitwisselen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="calendar-by-form-v100">Calendar by Form* v1.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a>, de gedecentraliseerde kalenderapp gebouwd op &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> (Calendar Events), bereikte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.0.0">v1.0.0&lt;/a> op 29 maart. De release voegt private kalenderlijsten toe met versleutelde Nostr-events (kind &lt;code>32123&lt;/code>) en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) self-encryption, zodat gebruikers events in privécollecties kunnen groeperen zonder die structuur aan relays bloot te stellen. Dezelfde release voegt ook ICS-intentafhandeling toe voor het importeren van kalenderdata uit andere applicaties en invitation requests voor het delen van events tussen gebruikers.&lt;/p>
&lt;h3 id="amber-v502-tot-en-met-v504">Amber v5.0.2 tot en met v5.0.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) signer-app, bracht drie point releases uit: &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.2">v5.0.2&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.3">v5.0.3&lt;/a> en &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.4">v5.0.4&lt;/a>. De meest zichtbare toevoeging is login via mnemonic recovery phrase (&lt;a href="https://github.com/greenart7c3/Amber/pull/358">PR #358&lt;/a>), waarmee gebruikers hun signer kunnen herstellen vanuit een BIP39-seed phrase in plaats van de ruwe nsec- of ncryptsec-string nodig te hebben. &lt;a href="https://github.com/greenart7c3/Amber/pull/357">PR #357&lt;/a> voegt een &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-auth-whitelist toe, zodat gebruikers kunnen beperken welke relays clientauthenticatie mogen opvragen. &lt;a href="https://github.com/greenart7c3/Amber/pull/353">PR #353&lt;/a> voegt selectie van encryptie-scope toe voor decrypt-rechten, waardoor gebruikers alleen NIP-04- of alleen NIP-44-decrypttoegang kunnen geven in plaats van een algemene permissie. v5.0.4 repareert een bug waarbij rejection scoped encrypt- en decryptrechten niet respecteerde en verbetert de prestaties bij ontvangst van meerdere bunker requests.&lt;/p>
&lt;h3 id="aegis-v040">Aegis v0.4.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZharlieW/Aegis">Aegis&lt;/a>, de cross-platform signer, bracht &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.4.0">v0.4.0&lt;/a> uit op 26 maart. De release voegt Full- en Selective-authorizationmodi toe in Instellingen en repareert meerdere QR-scanproblemen. Opvolgende commits &lt;a href="https://github.com/ZharlieW/Aegis/commit/d4f799fe51dd82968d54f72ac77f2de29d0cfe6b">d4f799f&lt;/a>, &lt;a href="https://github.com/ZharlieW/Aegis/commit/3313af92e55e449ebc98fbd91a085bd444d716e7">3313af9&lt;/a>, &lt;a href="https://github.com/ZharlieW/Aegis/commit/3b214e4176f5dbe7f18690d0996e69dd151fe00f">3b214e4&lt;/a> en &lt;a href="https://github.com/ZharlieW/Aegis/commit/e4f40b6f1f48c2dae1bb5e4246df26c26dba419e">e4f40b6&lt;/a> zetten datzelfde werk voort met batchselectiebediening, herbruikbare batchselectiestatistieken, set-all-groups selectie-API&amp;rsquo;s en gebruiksstatistieken per permissie op de app permissions-pagina.&lt;/p>
&lt;h3 id="schemata-v027-tot-en-met-v030">Schemata v0.2.7 tot en met v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/schemata">Schemata&lt;/a>, de JSON Schema-definities voor het valideren van Nostr event kinds, bracht vier releases uit van &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.2.7">v0.2.7&lt;/a> tot &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.3.0">v0.3.0&lt;/a> met 21 gemergede PR&amp;rsquo;s. De v0.3.0-release brengt fixes voor patroonconsistentie over relay-URL&amp;rsquo;s, hex-ID&amp;rsquo;s, MIME-types en BOLT-11-strings heen (&lt;a href="https://github.com/nostrability/schemata/pull/126">PR #126&lt;/a>), gecentraliseerde relay-URL-patronen (&lt;a href="https://github.com/nostrability/schemata/pull/117">PR #117&lt;/a>), &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> bech32-basistype-schema&amp;rsquo;s (&lt;a href="https://github.com/nostrability/schemata/pull/118">PR #118&lt;/a>) en validatie voor kind 777 spell-events (&lt;a href="https://github.com/nostrability/schemata/pull/125">PR #125&lt;/a>). De releasepipeline publiceert nu bij elke release een kind &lt;code>1&lt;/code> note op Nostr (&lt;a href="https://github.com/nostrability/schemata/pull/120">PR #120&lt;/a>), zodat het project zichzelf aankondigt via het protocol dat het valideert. Schemata ondersteunt nu naast het canonieke JS/TS-pakket ook Rust, Go, Python, Kotlin, Java, Swift, Dart, PHP, C#/.NET, C++, Ruby en C.&lt;/p>
&lt;p>Naast Schemata publiceerde het team ook &lt;a href="https://github.com/nostrability/schemata-codegen">schemata-codegen&lt;/a>, een experimentele codegenerator die een andere benadering kiest voor hetzelfde validatieprobleem. Waar de validatorpakketten van Schemata een JSON Schema-runtimeafhankelijkheid vereisen, vertaalt schemata-codegen schema&amp;rsquo;s direct naar getypte native-language constructies (getypte tag-tuples, kind-interfaces en runtime validators), waardoor een validatorbibliotheek tijdens runtime niet nodig is. De &lt;a href="https://github.com/nostrability/schemata-codegen/blob/main/CODEGEN-VS-VALIDATORS.md">vergelijking codegen-vs-validators&lt;/a> documenteert wanneer welke aanpak het beste past.&lt;/p>
&lt;h3 id="bigbrotr-v650-tot-en-met-v654">BigBrotr v6.5.0 tot en met v6.5.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a>, het relay-analyseplatform, bracht vijf releases uit van &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.5.0">v6.5.0&lt;/a> tot &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.5.4">v6.5.4&lt;/a>. v6.5.0 centraliseert relay-URL-validatie met een &lt;code>parse_relay_url()&lt;/code> factory function en voegt controle op URL-lengte en pad-sanitization toe. Ook de monitoringinfrastructuur kreeg fixes: announcement-events bevatten nu geohash-locatietags (volgens &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a>), en timeoutbescherming werd toegevoegd aan de Geo/Net &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a>-metadatatests die eerder geen deadline hadden en onbeperkt konden blijven hangen. &lt;a href="https://github.com/BigBrotr/bigbrotr/pull/410">PR #410&lt;/a> upgrade PostgreSQL van 16 naar 18, wat het async I/O-subsysteem en betere WAL-throughput naar de relay-analysepipeline brengt.&lt;/p>
&lt;h3 id="vertex-lab-relay-voegt-nip-50-profielsearch-toe">Vertex Lab-relay voegt NIP-50-profielsearch toe&lt;/h3>
&lt;p>&lt;a href="https://vertexlab.io">Vertex Lab&lt;/a>, het team achter &lt;a href="https://github.com/vertex-lab/npub.world">npub.world&lt;/a> en de &lt;a href="https://vertexlab.io/docs">Vertex&lt;/a> Web of Trust-engine, kondigde aan dat &lt;code>wss://relay.vertexlab.io&lt;/code> nu &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> (Search) ondersteunt voor profielqueries. NIP-50 breidt de standaard Nostr &lt;code>REQ&lt;/code>-filter uit met een &lt;code>search&lt;/code>-veld, zodat clients full-text zoekqueries naar relays kunnen sturen die indexering ondersteunen. Profielsearch toevoegen aan een relay die al Web of Trust-data levert, betekent dat clients verbonden met &lt;code>relay.vertexlab.io&lt;/code> gebruikers op naam of beschrijving kunnen ontdekken zonder aparte zoekdienst.&lt;/p>
&lt;h3 id="hashtree-v0217-en-v0218-leveren-webrtc-mesh-en-iris-desktop">Hashtree v0.2.17 en v0.2.18 leveren WebRTC-mesh en Iris Desktop&lt;/h3>
&lt;p>&lt;a href="https://github.com/mmalmi/hashtree">Hashtree&lt;/a>, mmalmi&amp;rsquo;s content-addressed blobopslagsysteem dat Merkle roots op Nostr publiceert, bracht &lt;a href="https://github.com/mmalmi/hashtree/releases/tag/v0.2.17">v0.2.17&lt;/a> en &lt;a href="https://github.com/mmalmi/hashtree/releases/tag/v0.2.18">v0.2.18&lt;/a> uit op 31 maart. Die twee releases sluiten een sprint van 30 commits af die drie aparte capaciteiten toevoegt. Ten eerste voegt de &lt;code>hashtree-webrtc&lt;/code> crate (hernoemd naar &lt;code>hashtree-network&lt;/code> in v0.2.18) WebRTC-gebaseerde peer-to-peer distributie van blobs toe met uniforme mesh-signalering over de Rust CLI, de simulation harness en de TypeScript-client. Ten tweede bouwt de releasepipeline nu Windows-artefacten (CLI zip en Iris installer), waardoor er dekking is voor macOS, Linux en Windows. Ten derde bundelen beide releases Iris Desktop 0.1.0, mmalmi&amp;rsquo;s Nostr social client, als AppImage-, .deb- en Windows-installer-assets naast de hashtree CLI. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/">Hashtree werd voor het eerst behandeld in Newsletter #10&lt;/a> toen het lanceerde als een op filesystems gebaseerde &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-compatibele store. De WebRTC-laag is de eerste stap richting peer-to-peer distributie van content zonder afhankelijkheid van gecentraliseerde Blossom-servers.&lt;/p>
&lt;h3 id="nostr-mail-client-v070-tot-en-met-v072">Nostr Mail Client v0.7.0 tot en met v0.7.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/nogringo/nostr-mail-client">Nostr Mail Client&lt;/a>, de Flutter mailachtige client gebouwd op Nostr-identiteiten, bracht &lt;a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.7.0">v0.7.0&lt;/a>, &lt;a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.7.1">v0.7.1&lt;/a> en &lt;a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.7.2">v0.7.2&lt;/a> uit in drie dagen. Het zichtbare productwerk draaide om onboarding (&lt;a href="https://github.com/nogringo/nostr-mail-client/pull/9">PR #9&lt;/a>) en profielbewerking (&lt;a href="https://github.com/nogringo/nostr-mail-client/pull/10">PR #10&lt;/a>), twee basisstukken voor elke client die Nostr als mailbox wil presenteren. De latere point releases verpaktten dat werk in nieuwe Android- en Linux-builds.&lt;/p>
&lt;h3 id="wisp-v0140-tot-en-met-v0161">Wisp v0.14.0 tot en met v0.16.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, de Android Nostr-client, bracht nog 13 releases uit van &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.14.0-beta">v0.14.0-beta&lt;/a> tot &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.3-beta">v0.16.3-beta&lt;/a>. Het werk deze week omvat fixes voor NIP-17 rumor JSON (&lt;a href="https://github.com/barrydeen/wisp/pull/385">PR #385&lt;/a>), repostbadges op gallery cards (&lt;a href="https://github.com/barrydeen/wisp/pull/383">PR #383&lt;/a>), uitklapbare reactiedetails (&lt;a href="https://github.com/barrydeen/wisp/pull/382">PR #382&lt;/a>), persistente emoji-sets (&lt;a href="https://github.com/barrydeen/wisp/pull/381">PR #381&lt;/a>) en videobediening voor autoplay (&lt;a href="https://github.com/barrydeen/wisp/pull/380">PR #380&lt;/a>). De nieuwste &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.3-beta">v0.16.3-beta&lt;/a> repareert ook custom emoji-shortcodes met koppeltekens en ontbrekende emoji-tags.&lt;/p>
&lt;h3 id="primal-android-3017">Primal Android 3.0.17&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> bracht &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.17">3.0.17&lt;/a> uit op 24 maart. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1000">PR #1000&lt;/a> mapt WalletException-types naar foutcodes in NWC-antwoorden, zodat &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> clients gestructureerde foutinformatie krijgen in plaats van generieke fouten. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/995">PR #995&lt;/a> repareert poll-zap-stemmen die als Top Zaps verschenen, en &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/998">PR #998&lt;/a> verbergt walletsaldo en actieknoppen wanneer geen wallet is geconfigureerd.&lt;/p>
&lt;h3 id="openchat-v024-tot-en-met-v030">OpenChat v0.2.4 tot en met v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, de Avalonia-gebaseerde chatclient gebouwd op de &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-stack, bracht in vier dagen zes releases uit van &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.2.4">v0.2.4&lt;/a> tot &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.3.0">v0.3.0&lt;/a>. De commitlog vertelt het verhaal van een client die de kloof dicht tussen &amp;ldquo;Marmot works&amp;rdquo; en &amp;ldquo;someone can actually use this daily.&amp;rdquo; &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-authenticatie landde, gevolgd door een relay picker-UI met duplicate event filtering. Voice messages kregen pause, resume, seek en tijdsweergave. Het signerpad werd verhard: Amber-verbindingen werden gerepareerd met een bijgewerkt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> URI-formaat, de WebSocket reconnect automatisch vóór het versturen van requests, en dubbele Amber-requests worden nu onderschept door te controleren op replayed responses. Aan de opslagkant kregen Linux en macOS AES-256-GCM secure storage met file-backed keys, en user metadata-fetching gebruikt nu &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relay discovery en cachet resultaten in een lokale database.&lt;/p>
&lt;h3 id="igloo-signer-11">Igloo Signer 1.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/FROSTR-ORG/igloo-ios-prototype">Igloo&lt;/a>, de iOS &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a> threshold signer uit het FROSTR-project, bracht &lt;a href="https://github.com/FROSTR-ORG/igloo-ios-prototype/releases/tag/v1.1">v1.1&lt;/a> uit op 28 maart. FROST (Flexible Round-Optimized Schnorr Threshold)-handtekeningen laten een groep signers gezamenlijk een Nostr-sleutelpaar beheren, waarbij elke t-of-n combinatie een event kan signeren zonder dat één partij de volledige privésleutel bezit. Igloo is een van de eerste mobiele implementaties van deze aanpak voor Nostr.&lt;/p>
&lt;h3 id="nak-v0193-en-v0194">nak v0.19.3 en v0.19.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjaf&amp;rsquo;s command-line Nostr-toolkit, bracht &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.3">v0.19.3&lt;/a> en &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.4">v0.19.4&lt;/a> uit op 26 en 30 maart. Beide releases repareren panic-condities: &lt;a href="https://github.com/fiatjaf/nak/pull/118">PR #118&lt;/a> vervangt &lt;code>strings.Split&lt;/code> door &lt;code>strings.Cut&lt;/code> om een potentiële out-of-bounds access te voorkomen, en &lt;a href="https://github.com/fiatjaf/nak/pull/119">PR #119&lt;/a> voorkomt dezelfde klasse panic in curl-flag parsing.&lt;/p>
&lt;h3 id="flora-v030">Flora v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/shawnyeager/flora-extension">Flora&lt;/a>, een Chrome-extensie voor gedecentraliseerde schermopname en -deling op Nostr, bracht &lt;a href="https://github.com/shawnyeager/flora-extension/releases/tag/v0.3.0">v0.3.0&lt;/a> uit. De release voegt private encrypted video sharing toe met public, unlisted en private modi. Private opnames worden versleuteld met AES-256-GCM en aan ontvangers geleverd via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), zodat de opname nooit in platte tekst een server raakt.&lt;/p>
&lt;h3 id="yakihonne-mobile-203">YakiHonne Mobile 2.0.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/YakiHonne/mobile-app">YakiHonne&lt;/a>, de mobiele Nostr-client, bracht &lt;a href="https://github.com/YakiHonne/mobile-app/releases/tag/YakiHonne-2.0.3">2.0.3&lt;/a> uit met relayreviews en join requests, uitgebreidere nested replies, automatische vertaling van notes en NWC multi-relay-ondersteuning.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="zap-cooking-voegt-zap-polls-en-branta-betalingsverificatie-toe">Zap Cooking voegt zap-polls en Branta-betalingsverificatie toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a>, het recepten- en contentplatform, mergede deze week 11 PR&amp;rsquo;s gericht op interactieve content en betalingsflows. &lt;a href="https://github.com/zapcooking/frontend/pull/277">PR #277&lt;/a> voegt zap-polls toe (kind 6969), waarbij gebruikers stemmen door sats te sturen en stemmerslijsten met profielfoto&amp;rsquo;s kunnen bekijken. &lt;a href="https://github.com/zapcooking/frontend/pull/274">PR #274&lt;/a> herontwerpt de poll-UX zodat de steminterface natuurlijker in de feed past.&lt;/p>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend/pull/276">PR #276&lt;/a> voegt camera-gebaseerd QR-scannen toe aan de Send Payment-flow en integreert &lt;a href="https://branta.pro/">Branta&lt;/a>, een verificatiedienst die controleert of een betalingsbestemming legitiem is vóór verzending. Branta controleert bestemmingen op phishing, address swaps en man-in-the-middle onderschepping. In de implementatie van Zap Cooking verschijnen een door Branta geverifieerde platformnaam en logo direct in de betaalflow, en Branta-enabled QR-codes kunnen &lt;code>branta_id&lt;/code>- en &lt;code>branta_secret&lt;/code>-parameters dragen zodat de wallet de bestemming direct uit de gescande code kan verifiëren.&lt;/p>
&lt;h3 id="divine-legt-de-basis-voor-unified-search-en-verhardt-videolevering">diVine legt de basis voor unified search en verhardt videolevering&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de short-form videocliënt, besteedde de week aan het aanscherpen van search, feednavigatie, playback recovery en uploadgedrag. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2540">PR #2540&lt;/a> legt de basis voor een unified search-scherm met gegroepeerde secties voor Videos, People en Tags. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2623">PR #2623&lt;/a> verhardt pagination over profielfeeds, inbox, notificaties, discover lists, classic vines, search en de composable grid feeds door ze op een gedeelde pagination controller te zetten.&lt;/p>
&lt;p>Ook videolevering kreeg meerdere concrete fixes. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2643">PR #2643&lt;/a> probeert Divine-gehoste afgeleide bronnen opnieuw in volgorde en valt terug op de ruwe blob voordat een playbackfout wordt getoond, zodat tijdelijke storingen op één bron de playback niet meteen stoppen. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2634">PR #2634&lt;/a> houdt resumable uploads op het Divine-owned pad wanneer capability probing tijdelijk faalt, wat gebroken uploads door korte netwerkstoringen vermindert. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2637">PR #2637&lt;/a> verandert ook de sensitive-content-gate zodat video&amp;rsquo;s alleen hard worden geblokkeerd voor echte waarschuwingslabels, niet enkel voor door makers aangeleverde content warning labels.&lt;/p>
&lt;h3 id="shopstr-voegt-custom-storefronts-toe-en-milk-market-blijft-marktplaatswerk-leveren">Shopstr voegt custom storefronts toe en Milk Market blijft marktplaatswerk leveren&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, de Nostr-gebaseerde marktplaats, mergede &lt;a href="https://github.com/shopstr-eng/shopstr/pull/245">PR #245&lt;/a> dat custom storefronts toevoegt. Daardoor krijgen verkopers een onderscheidender thuisoppervlak in plaats van dat elke listing in dezelfde generieke presentatie wordt gedwongen.&lt;/p>
&lt;p>&lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>, een gespecialiseerde marktplaats voor melk, ging verder met storefront-optimalisaties (&lt;a href="https://github.com/shopstr-eng/milk-market/pull/18">PR #18&lt;/a>), account recovery (&lt;a href="https://github.com/shopstr-eng/milk-market/pull/17">PR #17&lt;/a>), beef splits (&lt;a href="https://github.com/shopstr-eng/milk-market/pull/15">PR #15&lt;/a>) en typefixes voor MCP-tools (&lt;a href="https://github.com/shopstr-eng/milk-market/pull/16">PR #16&lt;/a>).&lt;/p>
&lt;h3 id="notedeck-voegt-geluidseffecten-toe-en-trekt-zijn-updaterpad-door-naar-android">Notedeck voegt geluidseffecten toe en trekt zijn updaterpad door naar Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de desktopclient van het Damus-team, mergede &lt;a href="https://github.com/damus-io/notedeck/pull/1412">PR #1412&lt;/a> dat een sound effects-subsysteem toevoegt met UI-interactiegeluiden via rodio, en &lt;a href="https://github.com/damus-io/notedeck/pull/1399">PR #1399&lt;/a> met Agentium-updates waaronder een CLI-titelvlag en inklapbare sessiemappen. Een open &lt;a href="https://github.com/damus-io/notedeck/pull/1417">PR #1417&lt;/a> stelt APK self-update via Nostr/Zapstore op Android voor, voortbouwend op &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/#notedeck-verplaatst-release-ontdekking-naar-nostr">het Nostr-native updaterwerk van Notedeck uit Newsletter #14&lt;/a>.&lt;/p>
&lt;h3 id="nostria-voegt-repost-relayhints-en-nip-98-alignering-toe">Nostria voegt repost-relayhints en NIP-98-alignering toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> mergede &lt;a href="https://github.com/nostria-app/nostria/pull/583">PR #583&lt;/a> dat &lt;a href="https://nostrcompass.org/nl/topics/nip-18/">NIP-18&lt;/a> (Reposts)-relayhints toevoegt aan repost-&lt;code>e&lt;/code> tags voor kind 6- en kind 16-events, &lt;a href="https://github.com/nostria-app/nostria/pull/582">PR #582&lt;/a> dat Brainstorm HTTP auth (kind 27235) in lijn brengt met verplichte tags van &lt;a href="https://nostrcompass.org/nl/topics/nip-98/">NIP-98&lt;/a> (HTTP Auth), en &lt;a href="https://github.com/nostria-app/nostria/pull/576">PR #576&lt;/a> dat Schemata-schema-validatietests toevoegt. Die NIP-98-wijziging betekent dat Nostria zich bij externe diensten kan authenticeren met hetzelfde HTTP-auth-formaat dat andere clients gebruiken.&lt;/p>
&lt;h3 id="nostr-doc-voegt-desktop-packaging-en-offline-first-werk-toe">Nostr-Doc voegt desktop packaging en offline-first werk toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-docs">Nostr-Doc&lt;/a>, de collaboratieve editor van Form*, had een drukke week met packaging- en editorwerk. &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/fcdc00a564c8d76f094c586b06efce07592a60e4">commit fcdc00a&lt;/a> voegt een desktopapp toe, &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/3977a8eb2e62b84a67de756c2776e14de8470927">commit 3977a8e&lt;/a> start native appwerk, en &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/413a030f5b47fb8e32a5dff81bcef557ad9b5869">commit 413a030&lt;/a> duwt de app richting offline-first gedrag. Aan de editorzijde voegt &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/1855ce86ee83ad504e14e47d9c339baffb114786">commit 1855ce8&lt;/a> Ctrl+S opslaan toe, waarschuwingen bij opslaan, fixes voor link previews en gecorrigeerde weergave van strikethrough.&lt;/p>
&lt;h3 id="rust-nostr-optimaliseert-nip-21-parsing-en-voegt-relay-side-nip-62-ondersteuning-toe">rust-nostr optimaliseert NIP-21-parsing en voegt relay-side NIP-62-ondersteuning toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> mergede acht PR&amp;rsquo;s. De opvallendste is &lt;a href="https://github.com/rust-nostr/nostr/pull/1308">PR #1308&lt;/a>, die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/21.md">NIP-21&lt;/a> URI-parsing in &lt;code>PublicKey::parse&lt;/code> optimaliseert door deze op één lijn te brengen met standaard bech32-parsingprestaties. Eerder duurde het parsen van NIP-21 URI&amp;rsquo;s grofweg twee keer zo lang als ruwe bech32-sleutels. Het project heeft daarnaast vier open PR&amp;rsquo;s die relay-specifieke &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish)-ondersteuning toevoegen over de memory-, LMDB-, SQLite- en database test-backends heen (&lt;a href="https://github.com/rust-nostr/nostr/pull/1315">PR #1315&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1316">PR #1316&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1317">PR #1317&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1318">PR #1318&lt;/a>).&lt;/p>
&lt;h3 id="nostr-tools-voegt-bunker-relaycontrole-toe-en-repareert-nip-47-multi-relay-parsing">nostr-tools voegt bunker-relaycontrole toe en repareert NIP-47 multi-relay parsing&lt;/h3>
&lt;p>&lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> mergede &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/530">PR #530&lt;/a> dat &lt;code>skipSwitchRelays&lt;/code> toevoegt aan BunkerSignerParams voor handmatig relaybeheer, en &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/529">PR #529&lt;/a> dat &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect)-parsing van connection strings repareert zodat meerdere relays worden ondersteund zoals de specificatie toelaat.&lt;/p>
&lt;h3 id="nostrability-integreert-sherlock-auditdata-en-publiceert-schemata-overzicht">Nostrability integreert Sherlock-auditdata en publiceert Schemata-overzicht&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/nostrability">Nostrability&lt;/a>, de interoperabiliteitstracker voor Nostr-clients, mergede 14 PR&amp;rsquo;s. &lt;a href="https://github.com/nostrability/nostrability/pull/306">PR #306&lt;/a> integreert Sherlock-scanstatistieken in het dashboard. Sherlock is Nostrability&amp;rsquo;s geautomatiseerde audittool die verbinding maakt met Nostr-clients, de events vastlegt die zij publiceren en elk event valideert tegen de Schemata JSON Schema-definities om specificatieovertredingen te detecteren. Het dashboard toont nu schema-fail rates per client (&lt;a href="https://github.com/nostrability/nostrability/pull/315">PR #315&lt;/a>), zodat ontwikkelaars kunnen zien welke event kinds hun client verkeerd krijgt. &lt;a href="https://github.com/nostrability/nostrability/pull/323">PR #323&lt;/a> herziet de Nostr-publicatieworkflow zodat release-aankondigingen als aparte job draaien die niet geannuleerd kan worden door eerdere CI-stappen.&lt;/p>
&lt;p>elsat publiceerde op 30 maart ook &lt;a href="https://njump.me/naddr1qvzqqqr4gupzq96n3hp2vfmf6z2y8uvvxl97xk86kkalnqghx4p25lzl79c76a7yqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcqz4fnx4rkw3x57nrcwdn8zt22xd982jehfptsgqtrww">Schemata for nostr devs&lt;/a>, waarin wordt beschreven hoe schemata, schemata-codegen en Sherlock in elkaar passen, samen met de actuele dekking: 179 event-kind-schema&amp;rsquo;s over 65 NIPs, 154 tag-schema&amp;rsquo;s, 13 protocolberichten en 310 voorbeeld-events.&lt;/p>
&lt;h3 id="nalgorithm-voegt-digestgeneratie-en-lokale-scorecaching-toe">Nalgorithm voegt digestgeneratie en lokale scorecaching toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/jooray/nalgorithm">Nalgorithm&lt;/a>, een nieuw project voor relevantie-gerangschikte Nostr-feeds, begon deze week met publieke ontwikkeling. &lt;a href="https://github.com/jooray/nalgorithm/commit/cf6c501e754ef95a1b4fecc1a76288471a101f43">commit cf6c501&lt;/a> legt de eerste webapp vast die posts van follows ophaalt en ze scoort tegen een door de gebruiker gedefinieerde voorkeursprompt. &lt;a href="https://github.com/jooray/nalgorithm/commit/8e931b6ae85d470e73603752134ff49b7ba4bb86">commit 8e931b6&lt;/a> voegt een CLI-digesttool toe die topgerangschikte posts omzet in een gesproken samenvatting, terwijl &lt;a href="https://github.com/jooray/nalgorithm/commit/4cb9c635489a9a3429e8d71f3861dc2a11624153">commit 4cb9c63&lt;/a> file-based scorecaching en incrementele evolutie van learned prompts vanuit recente likes toevoegt. &lt;a href="https://github.com/jooray/nalgorithm/commit/c2edfb8b89fadbe0028c3f5729bda7e23b2e3c03">commit c2edfb8&lt;/a> stopt ook met het cachen van fallback-scores uit mislukte batches, zodat een tijdelijke scoringsfout de ranking van een post niet permanent afvlakt.&lt;/p>
&lt;h3 id="tenex-voegt-rag-vector-store-en-gerichte-mcp-startup-toe">TENEX voegt RAG vector store en gerichte MCP-startup toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>, het Nostr-native agentframework dat AI-agents via Telegram aan Nostr-kanalen koppelt, mergede deze week zeven PR&amp;rsquo;s. &lt;a href="https://github.com/tenex-chat/tenex/pull/101">PR #101&lt;/a> voegt een plugbare vector store-abstractie toe met SQLite-vec-, LanceDB- en Qdrant-backends, waardoor agents retrieval-augmented generation krijgen zonder vast te zitten aan één vector database. &lt;a href="https://github.com/tenex-chat/tenex/pull/102">PR #102&lt;/a> maakt MCP-startup gericht: alleen MCP-servers waarvan de tools daadwerkelijk gebruikt worden, worden gestart in plaats van alles gretig op te starten bij eerste uitvoering. &lt;a href="https://github.com/tenex-chat/tenex/pull/100">PR #100&lt;/a> voegt een &lt;code>send_message&lt;/code> tool toe zodat agents met Telegram-kanaalbindingen proactief berichten kunnen versturen in plaats van alleen te reageren op inkomende berichten. &lt;a href="https://github.com/tenex-chat/tenex/pull/106">PR #106&lt;/a> vermijdt een subprocess-spawn die een Bun/JSC-geheugenvoorallocatie van 9 GB triggerde door &lt;code>.git/HEAD&lt;/code> direct te lezen in plaats van &lt;code>git branch&lt;/code> uit te voeren.&lt;/p>
&lt;h3 id="dart-ndk-verplaatst-amber-signer-en-voegt-alby-go-1-click-toe">Dart NDK verplaatst Amber-signer en voegt Alby Go 1-click toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/relaystr/ndk">Dart NDK&lt;/a>, de Flutter Nostr development kit, noteerde 11 gemergede PR&amp;rsquo;s. &lt;a href="https://github.com/relaystr/ndk/pull/525">PR #525&lt;/a> verplaatst Amber-signerondersteuning naar het ndk_flutter-pakket, en &lt;a href="https://github.com/relaystr/ndk/pull/552">PR #552&lt;/a> voegt Alby Go one-click wallet connection toe aan de sample-app. &lt;a href="https://github.com/relaystr/ndk/pull/502">PR #502&lt;/a> voegt een install.sh-script toe voor de CLI, en &lt;a href="https://github.com/relaystr/ndk/pull/523">PR #523&lt;/a> verwijdert de Rust verifier-afhankelijkheid ten gunste van native asset-afhandeling.&lt;/p>
&lt;h2 id="protocol--en-specificatiewerk">Protocol- en specificatiewerk&lt;/h2>
&lt;h3 id="marmot-verplaatst-keypackages-naar-addressable-events-en-verscherpt-pushnotificaties">Marmot verplaatst KeyPackages naar addressable events en verscherpt pushnotificaties&lt;/h3>
&lt;p>De &lt;a href="https://github.com/marmot-protocol/marmot">Marmot-specificatie&lt;/a> mergede vier PR&amp;rsquo;s die veranderen hoe het protocol sleutelmateriaal en groepslidmaatschap afhandelt. &lt;a href="https://github.com/marmot-protocol/marmot/pull/54">PR #54&lt;/a> migreert KeyPackage-events van regulier &lt;code>kind:443&lt;/code> naar addressable &lt;code>kind:30443&lt;/code> met een &lt;code>d&lt;/code> tag, waardoor &lt;a href="https://nostrcompass.org/nl/topics/nip-09/">NIP-09&lt;/a> eventverwijdering tijdens sleutelrotatie niet meer nodig is. Addressable events overschrijven op hun plaats, wat rotatie self-contained maakt. &lt;a href="https://github.com/marmot-protocol/marmot/pull/57">PR #57&lt;/a> laat niet-admingebruikers SelfRemove-proposals committen (vrijwillig vertrek uit een groep), en &lt;a href="https://github.com/marmot-protocol/marmot/pull/62">PR #62&lt;/a> vereist dat admins eerst hun adminstatus opgeven voordat ze SelfRemove gebruiken, zodat een admin niet kan verdwijnen terwijl die nog elevated privileges heeft.&lt;/p>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot/pull/61">PR #61&lt;/a> verscherpt het &lt;a href="https://nostrcompass.org/nl/topics/mip-05/">MIP-05&lt;/a>-pushnotificatieformaat en maakt single-blob base64-encoding, versioning, token wire format en x-only key-gebruik expliciet. Het effect is één gedefinieerde wirerepresentatie voor token blobs en x-only keys over specificatie, client libraries en app-backends heen. Implementatie van deze specwijzigingen landde deze week in de White Noise-stack en wordt hierboven behandeld in de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#white-noise-repareert-relay-churn-en-breidt-clientbesturing-uit">White Noise v2026.3.23-sectie&lt;/a>.&lt;/p>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">NIP-5A&lt;/a>: Static Websites&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/1538">PR #1538&lt;/a>): Definieert kind &lt;code>15128&lt;/code> (rootsite) en kind &lt;code>35128&lt;/code> (benoemde site) manifestevents voor het hosten van statische websites onder Nostr-sleutelparen met Blossom-opslag. Zie de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#nip-deep-dive-nip-5a-static-websites">deep dive hieronder&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-30/">NIP-30&lt;/a> (Custom Emoji): Allow hyphens in shortcodes&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2297">PR #2297&lt;/a>): Werkt de beschrijving van shortcodes bij om ook koppeltekens toe te staan. Shortcodes met koppeltekens worden in de praktijk al gebruikt sinds de introductie van het NIP, dus de specificatie documenteert nu bestaand gebruik.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-C1: Agent TUI Messages&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2295">PR #2295&lt;/a>): Stelt een gestructureerd berichtformaat voor waarmee agents interactieve UI-elementen via versleutelde DM&amp;rsquo;s kunnen sturen, inclusief getypte &lt;code>text&lt;/code>, &lt;code>buttons&lt;/code>, &lt;code>card&lt;/code> en &lt;code>table&lt;/code> payloads. Het concept houdt alles binnen bestaande &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> direct-message-content als JSON. Het definieert geen nieuw event kind en gebruikt een eenvoudig callback-stringformaat voor knopreacties.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-95: Hybrid Peer-to-Peer Relay Protocol&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2293">PR #2293&lt;/a>): Stelt een hybride relaymodel voor waarin relays autoritatief blijven maar ook peer-to-peer distributie van recente events via WebRTC kunnen coördineren. Het concept introduceert relay-berichten zoals &lt;code>PEER_REGISTER&lt;/code>, &lt;code>PEER_REQUEST&lt;/code> en &lt;code>PEER_OFFER&lt;/code>, met stabiele clients als Super Peers en de relay als seed node en fallback.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-B9: Zap Poll Events&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2284">PR #2284&lt;/a>): Opent het oude NIP-69 zap-pollidee opnieuw nu &lt;a href="https://github.com/nostr-protocol/nips/blob/master/88.md">NIP-88&lt;/a> (Polls) gratis polls afdekt. Het concept gebruikt kind &lt;code>6969&lt;/code> polldefinities en kind &lt;code>9734&lt;/code> zaps als stemmen, waardoor een betaald pollsysteem ontstaat met economische Sybil-resistentie als aanvulling op gratis one-key-one-vote polls.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-AD: Super Zap&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2289">PR #2289&lt;/a>): Stelt een conventie voor waarbij zaps verzonden naar de pubkey van een relay of client worden weergegeven als gespecialiseerde promotionele notes, en zo van zap receipts een advertentieoppervlak maken. Relayoperators en clients zouden profielen met &lt;code>lud16&lt;/code> publiceren, die receipts ophalen, de ingebedde content uit zap descriptions extraheren, en optioneel minimum-satsdrempels instellen om spam te onderdrukken.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-XX: Agent Reputation Attestations&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2285">PR #2285&lt;/a>): Stelt kind &lt;code>30085&lt;/code> voor als parameterized replaceable event voor gestructureerde reputatie-attestaties over Nostr-agents. Het concept vermijdt één globale score door reputatie waarnemer-afhankelijk te maken, voegt tijdsverval toe zodat oude attestaties vervagen, ondersteunt negatieve ratings met bewijsvereisten, en schetst zowel eenvoudige gewogen scoring als graph-diversity scoring voor betere Sybil-resistentie.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-XX: Paid API Service Announcements&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2291">PR #2291&lt;/a>): Stelt kind &lt;code>31402&lt;/code> addressable events voor om betaalde HTTP API&amp;rsquo;s te adverteren, met Nostr voor discovery en HTTP 402 voor betaling. Het concept is tags-first zodat relays kunnen filteren op betaalmethoden, prijzen en capabilities zonder JSON-content te parsen, en laat optionele request- en response-schema&amp;rsquo;s toe zodat clients of agents automatisch calls kunnen genereren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-XX: Key Derivation from LNURL-auth via SplitSig&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2294">PR #2294&lt;/a>): Stelt voor een Nostr-sleutelpaar af te leiden uit een LNURL-auth ECDSA-handtekening gecombineerd met een client-side random nonce. De formule is &lt;code>nsec = SHA256(ecdsa_signature || nonce)&lt;/code>. De server ziet de ECDSA-handtekening, inherent aan de LNURL-auth-handshake, maar ziet de nonce nooit; de browser genereert de nonce, maar beheert de handtekening niet. Geen van beide delen kan alleen de nsec afleiden. Het beoogde resultaat is dat dezelfde Lightning-wallet op meerdere apparaten dezelfde Nostr-sleutel produceert, met de wallet als recovery anchor en zonder dat een server de privésleutel kan reconstrueren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>: Document rejected field&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2290">PR #2290&lt;/a>): Documenteert het &lt;code>rejected&lt;/code>-veld voor intent-based signer-antwoorden en formaliseert daarmee het gedrag waar &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amethyst-brengt-vastgepinde-notes-relaybeheer-en-request-to-vanish">de v1.07.x-fix van Amethyst&lt;/a> omheen moest werken.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-5a-static-websites">NIP Deep Dive: NIP-5A (Static Websites)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">NIP-5A&lt;/a> definieert hoe statische websites onder Nostr-sleutelparen kunnen worden gehost, met twee event kinds en bestaande blobopslaginfrastructuur om ondertekende events om te zetten in geserveerde webpagina&amp;rsquo;s. De &lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">specificatie&lt;/a> werd op 25 maart gemerged via &lt;a href="https://github.com/nostr-protocol/nips/pull/1538">PR #1538&lt;/a>.&lt;/p>
&lt;p>Het model gebruikt kind &lt;code>15128&lt;/code> voor een rootsite, één per pubkey, en kind &lt;code>35128&lt;/code> voor benoemde sites die met een &lt;code>d&lt;/code> tag worden geïdentificeerd. Elk manifest koppelt absolute URL-paden aan SHA256-hashes. Hieronder staat een rootsite-manifest:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;5324d695ed7abf7cdd2a48deb881c93b7f4e43de702989bbfb55a1b97b35a3de&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;266815e0c9210dfa324c6cba3573b14bee49da4209a9456f9484e5106cd408a5&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1743465600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">15128&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;path&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;/index.html&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;186ea5fd14e88fd1ac49351759e7ab906fa94892002b60bf7f5a428f28ca1c99&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;path&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;/about.html&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;path&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;/favicon.ico&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;fedcba0987654321fedcba0987654321fedcba0987654321fedcba0987654321&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;server&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://blossom.primal.net&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;My Nostr Site&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;description&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;A static website hosted on Nostr&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;source&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://github.com/lez/nsite&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f4e4a9e785f70e9fcaa855d769438fea10781e84cd889e3fcb823774f83d094cf2c05d5a3ac4aebc1227a4ebc3d56867286c15a6df92d55045658bb428fd5fb5&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De serveerflow werkt in drie stappen. Een hostserver ontvangt een HTTP-verzoek, haalt de pubkey van de auteur uit het subdomein (voor rootsites een npub, voor benoemde sites een base36-gecodeerde pubkey), haalt de relaylijst van de auteur op via &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> en queryt het sitemanifest. Zodra het manifest is gevonden, resolveert de server het opgevraagde pad naar een inhoudshash, downloadt de overeenkomende blob van de Blossom-server of servers in de &lt;code>server&lt;/code> tags, en retourneert het bestand.&lt;/p>
&lt;p>Het DNS-subdomeinformaat is strikt gespecificeerd. Rootsites gebruiken de standaard npub als subdomein. Benoemde sites gebruiken een 50-karakterige base36-codering van de ruwe pubkey gevolgd door de &lt;code>d&lt;/code> tagwaarde, allemaal in één DNS-label. Omdat DNS-labels beperkt zijn tot 63 karakters en de base36-codering altijd 50 gebruikt, is de &lt;code>d&lt;/code> tag beperkt tot 13 karakters. De specificatie vereist ook dat &lt;code>d&lt;/code> tags overeenkomen met &lt;code>^[a-z0-9-]{1,13}$&lt;/code> en niet eindigen op een koppelteken, om ambiguïteit bij DNS-resolutie te voorkomen.&lt;/p>
&lt;p>Door inhoudshashes te gebruiken kan dezelfde site door verschillende hostservers worden geserveerd en is bestandsintegriteit controleerbaar zonder de server te vertrouwen. Een hostserver hoeft zelf geen bestanden op te slaan. Hij haalt ze op aanvraag uit Blossom op basis van de hashes in het manifest. Dat betekent dat de auteur bepaalt wat wordt geserveerd, de Blossom-server de ruwe bestanden bewaart en de hostserver die twee verbindt. Elk van die drie componenten kan onafhankelijk worden vervangen.&lt;/p>
&lt;p>Bestaande implementaties zijn onder meer &lt;a href="https://github.com/lez/nsite">nsite&lt;/a>, de hostserver die manifesten resolveert en bestanden serveert, en &lt;a href="https://github.com/hzrd149/nsite-manager">nsite-manager&lt;/a>, een UI voor het bouwen en publiceren van manifesten. De specificatie voegde ook een &lt;code>source&lt;/code> tag toe om te linken naar de broncoderepository van de site, en een afzonderlijke README-update in &lt;a href="https://github.com/nostr-protocol/nips/pull/2286">PR #2286&lt;/a> registreerde zowel kind &lt;code>15128&lt;/code> als &lt;code>35128&lt;/code> in de NIP kind-index.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-62-request-to-vanish">NIP Deep Dive: NIP-62 (Request to Vanish)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/62.md">NIP-62&lt;/a> definieert kind &lt;code>62&lt;/code> als een verzoek aan relays om alle events van de aanvragende pubkey te verwijderen. De &lt;a href="https://github.com/nostr-protocol/nips/blob/master/62.md">specificatie&lt;/a> is juridisch gemotiveerd: in rechtsgebieden met right-to-be-forgotten-wetten geeft een gestandaardiseerd, ondertekend verwijderverzoek relayoperators een duidelijk signaal om te handelen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a7b8c9d0e1f23456789012345678901234567890abcdef1234567890abcdef12&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f1e2d3c4b5a697887766554433221100ffeeddccbbaa99887766554433221100&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1743465600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">62&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;relay&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Requesting deletion of all events from this relay.&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;11aa22bb33cc44dd55ee66ff77889900aabbccddeeff0011223344556677889911aa22bb33cc44dd55ee66ff77889900aabbccddeeff00112233445566778899&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De specificatie maakt onderscheid tussen gerichte en globale vanish-verzoeken. Een gericht verzoek bevat specifieke &lt;code>relay&lt;/code> tags die aangeven welke relays moeten handelen. Een globaal verzoek gebruikt de letterlijke string &lt;code>ALL_RELAYS&lt;/code> als relay-tagwaarde en vraagt elke relay die het event ziet om alle events van die pubkey te verwijderen. Relays die voldoen, moeten er ook voor zorgen dat verwijderde events niet opnieuw in de relay kunnen worden uitgebroadcast, zodat de verwijdering sticky wordt.&lt;/p>
&lt;p>NIP-62 gaat in zowel reikwijdte als intentie verder dan &lt;a href="https://nostrcompass.org/nl/topics/nip-09/">NIP-09&lt;/a> (Event Deletion). NIP-09 laat je individuele events verwijderen, en relays MOGEN daaraan voldoen. NIP-62 vraagt om verwijdering van alles, en de specificatie zegt dat relays MOETEN voldoen als hun URL is getagd. Ook vraagt het relays om &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap)-events te verwijderen die de aanvragende pubkey p-taggen, waardoor ook inkomende DM&amp;rsquo;s samen met de events van de gebruiker worden opgeruimd. Een NIP-09-deletion publiceren tegen een NIP-62 vanish-verzoek heeft geen effect: zodra je vanished bent, kun je dat niet ongedaan maken door het vanish-verzoek te verwijderen.&lt;/p>
&lt;p>Deze week bracht &lt;a href="https://nostrcompass.org/nl/newsletters/2026-04-01-newsletter/#amethyst-brengt-vastgepinde-notes-relaybeheer-en-request-to-vanish">Amethyst v1.07.0&lt;/a> client-side NIP-62-ondersteuning uit, zodat gebruikers vanish-verzoeken vanuit de app kunnen starten. Aan relayzijde heeft &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> vier open PR&amp;rsquo;s die NIP-62-ondersteuning toevoegen over de memory-, LMDB-, SQLite- en database test-backends heen (&lt;a href="https://github.com/rust-nostr/nostr/pull/1315">PR #1315&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1316">PR #1316&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1317">PR #1317&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1318">PR #1318&lt;/a>). Daarmee vallen client- en relayondersteuning in dezelfde week samen.&lt;/p>
&lt;p>Het protocolontwerp introduceert een praktische spanning. De waardepropositie van Nostr omvat censuurbestendigheid, wat betekent dat relays publicatie niet zouden moeten kunnen verhinderen. NIP-62 introduceert een geval waarin een relay WEL herpublicatie van een specifieke pubkey moet verhinderen. Die twee eigenschappen kunnen naast elkaar bestaan omdat het verzoek zelfgericht is: je vraagt om verwijdering van je eigen events, niet die van iemand anders. De censuurbestendige eigenschap blijft voor iedereen intact behalve voor de persoon die er expliciet voor kiest zich terug te trekken.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets of heb je nieuws om te delen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #15</title><link>https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> bouwt verder op zijn 3.0-walletrelease met &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#primal-voegt-follow-packs-zap-verrijking-en-deep-links-toe">Follow Packs, zap-verrijking en &lt;code>primalconnect://&lt;/code> deep links&lt;/a>. &lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a> publiceert een &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#bigbrotr-brengt-blootgestelde-prive-sleutels-over-het-relay-netwerk-in-kaart">analyse van gelekte nsec-sleutels&lt;/a> op basis van 41 miljoen events over 1.085 relays, terwijl &lt;a href="https://npub.world">npub.world&lt;/a> in dezelfde week waarschuwingsbanners op profielen toevoegt. Martti Malmi lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostr-vpn-lanceert-als-een-tailscale-alternatief">nostr-vpn&lt;/a>, een Tailscale-alternatief dat signaleert over Nostr-relays en WireGuard-tunnels opzet, en in zeven dagen 11 releases uitbrengt. Het &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-team &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#open-source-doom-draait-peer-to-peer-over-nostr">maakt P2P DOOM open source&lt;/a> op Nostr, &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#fips-v020-levert-tor-transport-reproduceerbare-builds-en-sidecar-voorbeelden">v0.2.0&lt;/a> uit, en &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a> breidt in één week uit naar &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostrability-schemata-wordt-meertalig">zes talen&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> bouwt verder op zijn 3.0-walletrelease met &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#primal-voegt-follow-packs-zap-verrijking-en-deep-links-toe">Follow Packs, zap-verrijking en &lt;code>primalconnect://&lt;/code> deep links&lt;/a>. &lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a> publiceert een &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#bigbrotr-brengt-blootgestelde-prive-sleutels-over-het-relay-netwerk-in-kaart">analyse van gelekte nsec-sleutels&lt;/a> op basis van 41 miljoen events over 1.085 relays, terwijl &lt;a href="https://npub.world">npub.world&lt;/a> in dezelfde week waarschuwingsbanners op profielen toevoegt. Martti Malmi lanceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostr-vpn-lanceert-als-een-tailscale-alternatief">nostr-vpn&lt;/a>, een Tailscale-alternatief dat signaleert over Nostr-relays en WireGuard-tunnels opzet, en in zeven dagen 11 releases uitbrengt. Het &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-team &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#open-source-doom-draait-peer-to-peer-over-nostr">maakt P2P DOOM open source&lt;/a> op Nostr, &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> brengt &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#fips-v020-levert-tor-transport-reproduceerbare-builds-en-sidecar-voorbeelden">v0.2.0&lt;/a> uit, en &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a> breidt in één week uit naar &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostrability-schemata-wordt-meertalig">zes talen&lt;/a>.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="primal-voegt-follow-packs-zap-verrijking-en-deep-links-toe">Primal voegt Follow Packs, zap-verrijking en deep links toe&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/">Aansluitend op de berichtgeving over 3.0.7 van vorige week&lt;/a>, besteedde &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> deze week aan werk na de release rond onboarding, composer-UX en walletcontext. De herontworpen onboarding voegt Follow Packs toe (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/949">PR #949&lt;/a>), een native GIF-knop verschijnt in de note-composer, een zap-verrijkingsservice (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/979">PR #979&lt;/a>) annoteert wallettransacties met zapcontext, en een &lt;code>primalconnect://&lt;/code> deep-linkingprotocol (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/969">PR #969&lt;/a>) maakt navigatie tussen apps mogelijk.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> levert hetzelfde werk parallel via TestFlight, met de walletwissel (&lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/191">PR #191&lt;/a>), pollimplementatie en onboarding-refactor in hetzelfde tijdsvenster.&lt;/p>
&lt;h3 id="bigbrotr-brengt-blootgestelde-privé-sleutels-over-het-relay-netwerk-in-kaart">BigBrotr brengt blootgestelde privé-sleutels over het relay-netwerk in kaart&lt;/h3>
&lt;p>&lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a>, het Nostr relay-analyseplatform, publiceerde een &lt;a href="https://bigbrotr.com/blog/exposed-nsec-analysis/">gedetailleerde analyse van blootgestelde privésleutels&lt;/a> op het relay-netwerk. De studie scande 41 miljoen events van 1.085 relays, zocht naar geldige nsec-strings in eventcontent, en vond 16.599 geldige privésleutels. Dat getal ziet er alarmerend uit tot je een bot met de naam &amp;ldquo;Mr.nsec&amp;rdquo; eruit filtert, die verantwoordelijk blijkt voor 92% van de matches. Na het verwijderen van botverkeer bleven slechts 38 echte accounts met samen meer dan 21.000 volgers over, en geen daarvan leek te weten dat de sleutel publiek was.&lt;/p>
&lt;p>Het team bouwde een nsec-lekchecker als &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> (Data Vending Machine)-dienst, zodat gebruikers kunnen controleren of hun privésleutel ergens in de gescande dataset voorkomt zonder die sleutel aan de checker prijs te geven. &lt;a href="https://npub.world">npub.world&lt;/a> integreerde de lekdata in dezelfde week en toont waarschuwingen op profielpagina&amp;rsquo;s waar blootgestelde sleutels zijn aangetroffen. De combinatie geeft het netwerk zowel een programmeerbare interface voor DVM&amp;rsquo;s en agents als een leesbare waarschuwing voor gewone gebruikers. De onderliggende dataset voedt ook &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.4.0">BigBrotr v6.4.0&lt;/a>, dat replaceable en addressable event-materialized views toevoegt en een fix voor synchronizer idle timeout bevat.&lt;/p>
&lt;h3 id="nostr-vpn-lanceert-als-een-tailscale-alternatief">Nostr VPN lanceert als een Tailscale-alternatief&lt;/h3>
&lt;p>Martti Malmi (mmalmi), maker van Iris, bouwde en bracht &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a> uit, een peer-to-peer VPN die Nostr-relays gebruikt voor signalering en WireGuard (via boringtun) voor versleutelde tunnels. De motivatie was direct: &amp;ldquo;Got annoyed by Tailscale requiring 3rd party accounts, so created Nostr VPN.&amp;rdquo; De tool maakt mesh-netwerken tussen apparaten met Nostr-sleutelparen als identiteit, zonder centrale coördinatieserver.&lt;/p>
&lt;p>Het project bracht in zeven dagen 11 releases uit, van &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.2">v0.2.2&lt;/a> tot &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.13">v0.2.13&lt;/a>. Die sprint voegde Windows-ondersteuning, LAN-pairing voor lokale netwerkontdekking en een Android-sidecar voor mobiele apparaten toe. De architectuur is eenvoudig: twee apparaten wisselen verbindingsmetadata uit over Nostr-relays en zetten daarna een directe WireGuard-tunnel op. Nostr verzorgt discovery en NAT-traversal-signalen. WireGuard verwerkt het daadwerkelijke verkeer. De identiteit is een Nostr-sleutelpaar.&lt;/p>
&lt;p>Malmi bleef in dezelfde week ook &lt;a href="https://github.com/mmalmi/nostr-double-ratchet">nostr-double-ratchet&lt;/a> doorontwikkelen, een Signal-achtige beveiligde berichtenbibliotheek, met zes releases van &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.86">v0.0.86&lt;/a> tot &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.93">v0.0.93&lt;/a>.&lt;/p>
&lt;h3 id="open-source-doom-draait-peer-to-peer-over-nostr">Open-source DOOM draait peer-to-peer over Nostr&lt;/h3>
&lt;p>Het &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-team maakte een peer-to-peer multiplayer-implementatie van DOOM open source die Nostr gebruikt voor peer discovery, &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> voor end-to-end versleuteling en &lt;a href="https://github.com/n0-computer/iroh">Iroh&lt;/a>, de QUIC-netwerkbibliotheek van n0, voor gossip-transport. Het spel wordt geleverd als een WebXDC-bestand van 4,2 MB dat in chatberichten kan worden verzonden, zonder servers om een match te hosten of te coördineren.&lt;/p>
&lt;p>De technische aanpak vervangt de oorspronkelijke lockstep-netcode uit 1993 door een realtime hybride synchronisatiemodel. Spelers ontdekken elkaar via Nostr relay-queries, onderhandelen sessies via Marmot-versleutelde kanalen en schakelen daarna over naar Iroh&amp;rsquo;s QUIC-gossiplaag voor laaglatency spelverkeer. De stack gebruikt Nostr voor discovery, Marmot voor versleuteling en Iroh voor transport.&lt;/p>
&lt;p>Vector leverde deze week ook extra beveiligingsverharding. De release voegt een geheugen-verhard sleutelkluisje toe met anti-debug-bescherming en zeroize voor gevoelig sleutelmateriaal, gebruikersblokkering met volledige DM- en groepsberichtfiltering, en realtime kanaalfixes voor WebXDC Mini Apps.&lt;/p>
&lt;h3 id="fips-v020-levert-tor-transport-reproduceerbare-builds-en-sidecar-voorbeelden">FIPS v0.2.0 levert Tor-transport, reproduceerbare builds en sidecar-voorbeelden&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a>, het Free Internetworking Peering System en een Nostr-aangrenzend mesh-netwerkproject, bracht &lt;a href="https://github.com/jmcorgan/fips/releases/tag/v0.2.0-rel">v0.2.0&lt;/a> uit. De release voegt Tor-transport toe voor geanonimiseerde mesh-links, reproduceerbare builds, een sidecar-voorbeeld dat via een Nostr-relay verbindt, en publicatie van releases op Nostr in de OpenWrt-packageworkflow. De release repareert ook jitterpieken na rekeying veroorzaakt door drain-window-frames. Het wire-format veranderde sinds v0.1.0, waardoor bestaande v0.1.0-nodes niet met v0.2.0 kunnen samenwerken zonder upgrade.&lt;/p>
&lt;h3 id="nostrability-schemata-wordt-meertalig">Nostrability Schemata wordt meertalig&lt;/h3>
&lt;p>Het &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a>-project, dat JSON Schema-definities onderhoudt voor het valideren van Nostr event kinds, breidde in één week uit van alleen JavaScript naar zes talen. Nieuwe pakketten verschenen voor Rust, Go, Dart, Swift en Python, elk met zowel een datapakket als een validator. &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.2.6">v0.2.6&lt;/a> voegde ook 17 nieuwe event-kind-schema&amp;rsquo;s toe.&lt;/p>
&lt;p>De &lt;a href="https://nostrability.github.io/nostrability/">Nostrability interop tracker&lt;/a> kreeg tegelijk een grote update. Een nieuwe What&amp;rsquo;s New-tab publiceert updates via zowel een Atom-feed als een Nostr-event, app-categoriefiltering laat bezoekers inzoomen op specifieke clienttypes, en de tracker detecteert programmeertalen nu automatisch uit GitHub-repositorymetadata. Nostrability heeft nu ook een eigen npub, waardoor het project zelf via het protocol dat het documenteert vindbaar wordt. Voor bibliotheekauteurs die over talen heen werken, betekenen de meertalige schema-pakketten dat dezelfde event-kind-definities beschikbaar zijn als native imports in plaats van dat elk project een eigen schemacopie moet onderhouden.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="amethyst-v1060-en-v1061">Amethyst v1.06.0 en v1.06.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client onderhouden door vitorpamplona, bracht &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.0">v1.06.0&lt;/a> en &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.1">v1.06.1&lt;/a> uit op 23 maart. De hoofdfunctie is poll-ondersteuning die &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions)-data gebruikt voor gewogen stemmen, met herontworpen poll- en zap-pollkaarten. Die nieuwe rendering geeft zowel gewone polls als zap-gewogen polls een schonere visuele lay-out. v1.06.1 volgt met crashfixes voor concurrent modification die stabiliteitsregressies in het poll-renderpad aanpakken.&lt;/p>
&lt;h3 id="amber-v500-en-v501">Amber v5.0.0 en v5.0.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) signer-app, promoveerde recent 4.1.x pre-releasewerk naar stable met &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.0">v5.0.0&lt;/a> op 18 maart. Die stable release bevat de &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-auth, ingebouwde Tor, content-type-specifieke rechten en versleutelde PIN-opslag die vorige week aan bod kwamen. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.1">v5.0.1&lt;/a> verwijdert vervolgens internetrechten uit de offline-buildvariant, zodat die build op Android-permissieniveau geen netwerkverzoeken meer kan doen.&lt;/p>
&lt;h3 id="mostro-v0170-en-mostro-mobile-v122">Mostro v0.17.0 en Mostro Mobile v1.2.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, de peer-to-peer Bitcoin-beurs gebouwd op Nostr, bracht &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.0">v0.17.0&lt;/a> uit op 18 maart. De serverrelease zet het geschillen- en waarderingswerk uit de v0.16.x-cyclus voort en voegt completere reputatiedata voor kopers en verkopers toe als Nostr-events. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, de Flutter-client, volgde op 23 maart met &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.2">v1.2.2&lt;/a>, zodat de mobiele interface synchroon blijft met de nieuwste protocolwijzigingen.&lt;/p>
&lt;h3 id="shosho-v0140">Shosho v0.14.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, de Nostr-livestreamingapp, bracht &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.14.0">v0.14.0&lt;/a> uit op 19 maart met de lancering van Shosho Shop. De release voegt een Shop-tab op profielen toe, Shop in Browse, en een In-Live Shop-knop op lives en clips. De release notes zeggen dat bestaande &amp;ldquo;Nostr products&amp;rdquo; automatisch verschijnen en dat kopers doorklikken naar de Plebeian Market-pagina van de verkoper. De release notes noemen het listing-kind niet, waardoor nog niet bevestigd kan worden of Shosho Shop dezelfde &lt;a href="https://nostrcompass.org/nl/topics/nip-99/">NIP-99&lt;/a> advertenties leest die &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> expliciet in zijn README ondersteunt.&lt;/p>
&lt;h3 id="applesauce-v520">Applesauce v5.2.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/applesauce">Applesauce&lt;/a>, hzrd149&amp;rsquo;s verzameling helperpakketten voor het bouwen van Nostr-applicaties, bracht &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core@5.2.0">v5.2.0&lt;/a> uit op 22 maart. De release bestrijkt zes pakketten. Het SQLite-pakket repareert een UNIQUE-constraintbotsing op eventtags die dubbele inserts veroorzaakte. Het signers-pakket voegt &lt;code>AndroidNativeSigner&lt;/code> toe, dat de native Android signer-interface van &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> wrapt zodat apps gebaseerd op web views hardware-backed signing kunnen gebruiken zonder aangepaste bridgecode. Het relay-pakket voegt een &lt;code>challenge&lt;/code>-veld toe aan relay- en poolstatusobjecten om &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> auth-status bij te houden, zodat apps kunnen detecteren wanneer een relay authenticatie vraagt en programmatisch kunnen reageren. Het core-pakket krijgt &lt;code>isEventPointerSame&lt;/code> en &lt;code>isAddressPointerSame&lt;/code> om eventverwijzingen te dedupliceren, en het common-pakket voegt &lt;code>user.blossomServers$&lt;/code> toe voor het resolven van de Blossom-mediaservers van een gebruiker. Applesauce voedt noStrudel, Satellite en verschillende andere webclients, dus deze fixes verspreiden zich door de webclientlaag.&lt;/p>
&lt;h3 id="wisp-brengt-16-releases-uit-in-één-week">Wisp brengt 16 releases uit in één week&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, de Android Nostr-client, bracht deze week 16 releases uit, van &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.9.3-beta">v0.9.3-beta&lt;/a> tot &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.13.1-beta">v0.13.1-beta&lt;/a>. De functietoevoegingen omvatten ondersteuning voor meerdere accounts, een zen-notificatiemodus voor minder onderbrekingen, concepten en geplande posts, veiligheidsfilters voor content en een nieuw vlamicoon.&lt;/p>
&lt;h3 id="manent-v120">Manent v1.2.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/dtonon/manent">Manent&lt;/a>, de privé-app voor versleutelde notities en bestandsopslag, bracht &lt;a href="https://github.com/dtonon/manent/releases/tag/v1.2.0">v1.2.0&lt;/a> uit op 20 maart. De release voegt cameracaptatie direct vanuit de app toe, afbeeldingresizing voor upload om opslagkosten te verlagen, en pinch-to-zoom voor het bekijken van opgeslagen afbeeldingen. Manent slaat notities en bestanden versleuteld op op Nostr-relays met het sleutelpaar van de gebruiker, waardoor de telefoon- of desktopapp een thin client wordt die zijn volledige status uit relaydata kan reconstrueren.&lt;/p>
&lt;h3 id="divine-107">diVine 1.0.7&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de short-form videocliënt, bracht &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.7">1.0.7&lt;/a> uit op 21 maart met een video-playback-watchdog die vastgelopen video&amp;rsquo;s automatisch hervat. Na de E2E-testinfrastructuur en direct MP4-laden in &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#divine-ships-v106-with-e2e-test-infrastructure-and-nip-49-import">v1.0.6&lt;/a> richt deze release zich op het resterende playback-foutpad: video&amp;rsquo;s die halverwege stoppen zonder een fout te geven.&lt;/p>
&lt;h3 id="alby-extension-v3142">Alby Extension v3.14.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/getAlby/lightning-browser-extension">Alby Extension&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> (Browser Extension Signer) browserextensie, bracht &lt;a href="https://github.com/getAlby/lightning-browser-extension/releases/tag/v3.14.2">v3.14.2&lt;/a> uit op 18 maart met QR-codeweergave voor Lightning-adressen en ondersteuning voor Schnorr-signing. Die toevoeging brengt de browserextensie in lijn met het secp256k1-handtekeningschema dat Nostr native gebruikt.&lt;/p>
&lt;h3 id="noornote-v065-tot-v0611">NoorNote v0.6.5 tot v0.6.11&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a>, de notitieapp, bracht zeven releases uit van &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.6.5">v0.6.5&lt;/a> tot &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.6.11">v0.6.11&lt;/a>. De hoofdfunctie is Follow Packs: gecureerde bundels accounts die gebruikers in bulk kunnen bekijken en volgen, vergelijkbaar met Twitter Lists maar gericht op onboarding. Gebruikers kunnen Follow Packs maken, bewerken en delen met aangepaste titels, beschrijvingen en omslagafbeeldingen. De serie upgrade ook de onderliggende Nostr-bibliotheek van NDK v2 naar v3, wat betere relayverbindingsafhandeling en abonnementsbeheer brengt. Picture notes en een herontworpen relay-verbindingservaring ronden deze run af.&lt;/p>
&lt;h3 id="nak-v0191-en-v0192">nak v0.19.1 en v0.19.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjaf&amp;rsquo;s command-line Nostr-toolkit voor interactie met relays, het coderen en decoderen van &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities)-identifiers, het signeren van events en het opvragen van relaydata, bracht &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.1">v0.19.1&lt;/a> en &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.2">v0.19.2&lt;/a> uit op 17 en 20 maart. De twee point releases volgen op de groepsforum-UI-toevoeging in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/">v0.19.0&lt;/a> van vorige week.&lt;/p>
&lt;h3 id="calendar-by-form-v021">Calendar by Form* v0.2.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a>, de gedecentraliseerde kalenderapp gebouwd op &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> (Calendar Events), bracht &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v0.2.1">v0.2.1&lt;/a> uit op 20 maart. De release repareert een probleem met notificatiesjablonen dat herinneringen voor events beïnvloedde. Calendar slaat events op als Nostr kind 31922 (datumgebaseerd) en kind 31923 (tijdgebaseerd), zodat elke Nostr-client kalenderdata kan renderen als die ervoor kiest deze kinds te ondersteunen. De app is gebouwd door het Formstr-team, dat ook Formstr (gedecentraliseerde formulieren) en Pollerama (polls) onderhoudt.&lt;/p>
&lt;h3 id="nym-v350-tot-v353">NYM v3.50 tot v3.53&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">NYM&lt;/a>, de lichtgewicht efemere chatclient gekoppeld aan Bitchat, bracht 28 releases uit van v3.50 tot v3.53. De opvallendste functie is Nymbot, een ingebouwde chatbot die reageert op &lt;code>@nymbot&lt;/code>-vermeldingen in kanalen en relaystatus- en beheerfuncties levert. Een &amp;ldquo;hardcore mode&amp;rdquo; genereert voor elk verzonden bericht een nieuw sleutelpaar, waardoor gespreksthreads op identiteitsniveau niet aan elkaar te koppelen zijn. De afruil is duidelijk: je verliest persistente identiteit maar wint anonimiteit per bericht. Ook de relay-proxylaag kreeg werk, met geshardde relay-proxyworkers voor betere connectiviteit, geohash-kanaalondersteuning en tolerantie voor clock skew bij nodes met onnauwkeurige systeemklokken.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="ditto-voegt-bluesky-bridge-en-wikipedia-integratie-toe">Ditto voegt Bluesky-bridge en Wikipedia-integratie toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/soapbox-pub/ditto">Ditto&lt;/a>, de aanpasbare Nostr social client van het Soapbox-team, noteerde deze week meer dan 300 commits over drie verschillende featuretrajecten. Het eerste is een Bluesky-bridge (19 commits) die Bluesky-posts inline rendert als volledige feedachtige threads, zijbalknavigatie toevoegt naar een Bluesky-discoverypagina gebaseerd op de officiële Discover-feed (whats-hot), en actieknoppen koppelt voor commentaar, delen, reageren en links kopiëren. Wanneer een gebruiker vanuit Ditto reageert op een Bluesky-post, toont de compose-modal een disclaimer die de cross-protocol aard van de interactie benoemt. &lt;a href="https://nostrcompass.org/nl/topics/nip-73/">NIP-73&lt;/a> (External Content IDs) kind 17-reacties voeden dit model: een Nostr-gebruiker reageert op een Bluesky-post en de reactie wordt opgeslagen als een standaard Nostr-event dat naar de externe contentidentifier verwijst. Hetzelfde patroon kan reacties koppelen aan elke externe contentsoort, van Bluesky-posts tot YouTube-video&amp;rsquo;s en webpagina&amp;rsquo;s.&lt;/p>
&lt;p>Het tweede traject is Wikipedia-integratie (9 commits). Ditto rendert nu rijke Wikipedia-artikelinhoud op detailpagina&amp;rsquo;s in plaats van generieke linkpreviews, voegt zoek-autocomplete toe met artikelminiaturen, en biedt een &lt;code>/wikipedia&lt;/code>-pagina die featured content van de Wikipedia API ophaalt. Wikipedia- en Archive.org-resultaten verschijnen ook in de algemene zoek-autocomplete. Het derde traject is iOS-platformondersteuning via Capacitor, met een remote buildscript en platformconfiguratie naast een UI-herziening (55 commits) die backdrop-blur headers vervangt door een nieuw arc-gebaseerd navigatieontwerp op elke pagina van de app. Die 314 commits verplaatsen Ditto van een Nostr-only client naar een multi-protocol aggregator die Bluesky en Wikipedia behandelt als eersteklas contentbronnen naast de Nostr-feed.&lt;/p>
&lt;h3 id="pika-bouwt-een-nip-34-forge-ci-pipeline">Pika bouwt een NIP-34 forge-CI-pipeline&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, de Marmot-gebaseerde versleutelde berichtenapp, mergede deze week 33 PR&amp;rsquo;s rond een self-hosted &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> forge met pre-merge CI. Die forge is een git-hostinglaag die patches ontvangt als NIP-34-events, CI-checks draait voor merge, en gestructureerde status terugrapporteert via Nostr-events. &lt;a href="https://github.com/sledtools/pika/pull/701">PR #701&lt;/a> voegt lane-gebaseerde pre-merge en nightly CI toe, waarbij elk codepad (Rust, TypeScript, Apple-builds) in een eigen lane draait met onafhankelijke pass/fail-status. &lt;a href="https://github.com/sledtools/pika/pull/715">PR #715&lt;/a> verplaatst beheerde CI-agents naar Incus OpenClaw-containers voor isolatie, en &lt;a href="https://github.com/sledtools/pika/pull/733">PR #733&lt;/a> voegt een &lt;code>ph forge&lt;/code> CLI toe om vanaf de command line met de gehoste forge te werken. Ondersteunende PR&amp;rsquo;s regelen repository-schrijfrechten voor merges (&lt;a href="https://github.com/sledtools/pika/pull/736">PR #736&lt;/a>), gestructureerde CI-metadata met live statusbadges (&lt;a href="https://github.com/sledtools/pika/pull/722">PR #722&lt;/a>), Apple nightly build-splits (&lt;a href="https://github.com/sledtools/pika/pull/738">PR #738&lt;/a>) en fixes voor forge-auth en branch lookup (&lt;a href="https://github.com/sledtools/pika/pull/734">PR #734&lt;/a>). Dit is een van de eerste werkende CI/CD-systemen gebouwd bovenop NIP-34 git-events, en brengt Nostr-gebaseerde broncodehosting voorbij eenvoudige patchuitwisseling richting de merge-en-testworkflow die ontwikkelaars van GitHub of GitLab verwachten.&lt;/p>
&lt;h3 id="nostria-voegt-communities-code-snippets-en-voice-eventafhandeling-toe">Nostria voegt communities, code snippets en voice-eventafhandeling toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, de cross-platform Nostr-client onderhouden door sondreb, breidde deze week het appoppervlak verder uit voorbij de Web of Trust-filtering uit #14. De belangrijkste toevoeging is een volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-72/">NIP-72&lt;/a> (Moderated Communities)-implementatie met community-creatie, moderator- en relayconfiguratie, het volgen van postgoedkeuringen met image previews en een aparte communitypagina met Posts- en Moderators-tabs.&lt;/p>
&lt;p>In dezelfde periode voegde het project ook rendering en bewerking van code snippets toe met een editor met syntax highlighting, ondersteuning voor voice-event-replies voor audiogesprekken, chat-relayinstellingen voor directe berichten, kanaaldeling via de Web Share API, een toolbar-dockingsysteem voor de mediaspeler, in-app signup voor de nieuwste Brainstorm Web of Trust-service, geld verzenden en ontvangen in DM&amp;rsquo;s via NWC en BOLT-11 facturen, Nostr-native GIF-afhandeling en een sterker RSS-importpad voor muzikanten dat bestaande Lightning-splits uit podcastfeeds kan overnemen.&lt;/p>
&lt;h3 id="nostr-vpn-snelle-iteratie">nostr-vpn snelle iteratie&lt;/h3>
&lt;p>Naast de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostr-vpn-lanceert-als-een-tailscale-alternatief">eerste lancering&lt;/a> laat de &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a>-commitlog zien welke concrete problemen tijdens echte deployment opdoken. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.3">v0.2.3&lt;/a> tot en met &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.5">v0.2.5&lt;/a> voegden het eerste installerscript en een cross-platform CLI toe. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.6">v0.2.6&lt;/a> en &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.7">v0.2.7&lt;/a> brachten Windows-ondersteuning, waarvoor UAC-padquoting voor configuratieschrijfsels en daemon-owned config-updates nodig waren. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.8">v0.2.8&lt;/a> tot en met &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.10">v0.2.10&lt;/a> repareerden Windows GUI-serviceacties, CLI-subprocessafhandeling en machine-scoped serviceconfiguratie. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.12">v0.2.12&lt;/a> verving LAN-discovery door timed LAN pairing, een gebruikersgestuurde flow waarbij twee apparaten op hetzelfde lokale netwerk kunnen pairen zonder relay-signalen. Het patroon is schoolboekachtige field testing in een vroege fase: elke release pakt een specifiek deploymentprobleem aan, de gebruikersbasis is klein genoeg voor dagelijkse iteratie, en de ontwikkelaar gebruikt het gereedschap zelf tussen releases door.&lt;/p>
&lt;h3 id="comet-geautomatiseerde-builds">Comet geautomatiseerde builds&lt;/h3>
&lt;p>&lt;a href="https://github.com/nodetec/comet">Comet&lt;/a> (voorheen Captain&amp;rsquo;s Log), de Nostr-native long-form schrijftool van Nodetec, produceerde deze week meer dan 40 geautomatiseerde alpha-builds. Comet is een desktopapp voor het schrijven en publiceren van NIP-23 (Long-form Content)-artikelen, met lokale conceptopslag, markdownbewerking en one-click publicatie naar de relayset van de gebruiker. De geautomatiseerde buildpipeline maakt voor elke commit op de main-branch een tagged release aan, wat het ruwe aantal releases een misleidende maat voor feature-snelheid maakt. Wat die 40 builds wel laten zien, is dat de app dagelijks actief wordt ontwikkeld, en dat elke commit binnen minuten wordt getest, verpakt en beschikbaar gemaakt voor download.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a> tijdens het venster van 17-24 maart:&lt;/p>
&lt;p>Er werden tussen 18 en 24 maart geen NIP-merges gedaan.&lt;/p>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en discussies bijgewerkt in dit venster:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-AA: Autonomous Agents on Nostr&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2259">PR #2259&lt;/a>): Stelt conventies voor autonome agents voor die op het Nostr-netwerk opereren. De PR definieert hoe agents zichzelf identificeren, diensten ontdekken en met andere agents en mensen coördineren via Nostr-events.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> (Search): Sort extensions&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2283">PR #2283&lt;/a>): Voegt sorteerparameters toe aan NIP-50-zoekqueries, waaronder top, hot, zaps en new. Dat zou clients in staat stellen gerangschikte resultaten op te vragen bij relays die full-text search ondersteunen in plaats van client-side te sorteren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-A5: WASM Programs&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2281">PR #2281&lt;/a>): Stelt een conventie voor voor het publiceren en ontdekken van WebAssembly-programma&amp;rsquo;s op Nostr. WASM-binaries zouden als Nostr-events kunnen worden verspreid, met relays als discoverylaag voor draagbare uitvoerbare code.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-CF: Combine Forces interoperable napps&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2277">PR #2277&lt;/a>): Definieert een conventie voor interoperabele Nostr-applicaties (&amp;ldquo;napps&amp;rdquo;) die functionaliteit over verschillende clients en diensten heen kunnen samenstellen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Snapshots NIP&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2279">PR #2279&lt;/a>): Stelt een mechanisme voor voor relay-state snapshots, bedoeld voor relaysynchronisatie en back-up.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Checkpoints NIP&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2278">PR #2278&lt;/a>): Stelt checkpoint-events voor om bekende goede relaystatus te markeren, als aanvulling op het snapshots-voorstel.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> (Badges): Badge Sets refactor&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2276">PR #2276&lt;/a>): Herstructureert hoe badgeverzamelingen worden georganiseerd en gerefereerd.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document): Extensions&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2280">PR #2280&lt;/a>): Voegt extra velden toe aan het relay-informatiedocument voor rijkere machineleesbare relaymetadata.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="vijf-jaar-nostr-maart">Vijf Jaar Nostr-Maart&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#five-years-of-nostr-februaries">De nieuwsbrief van vorige maand&lt;/a> beschreef hoe Nostr&amp;rsquo;s februaris zich ontwikkelden van de NIP-01 (Basic Protocol Flow)-herschrijving via de Damus App Store-golf naar mesh-netwerken en agentvoorstellen. Dit retrospectief volgt wat er elke maart gebeurde van 2021 tot en met 2026.&lt;/p>
&lt;h3 id="maart-2021-twee-commits">Maart 2021: Twee commits&lt;/h3>
&lt;p>Vier maanden na het ontstaan produceerde Nostr&amp;rsquo;s maart precies twee commits in het protocolrepository, beide op 4 maart. fiatjaf &lt;a href="https://github.com/nostr-protocol/nostr/commit/dcd8cc3">voegde links naar nostwitter-instances toe&lt;/a>, zodat vroege bezoekers werkende deployments konden vinden, en &lt;a href="https://github.com/nostr-protocol/nostr/commit/54dfb46">voegde kind toe aan de basisfilterdefinitie&lt;/a>. Die tweede commit is onthullend: in maart 2021 kon je Nostr-events nog niet op kind filteren. Het protocol was zó primitief. Twee of drie relays bedienden het netwerk. De Telegram-groep was het enige coördinatiekanaal. Het NIPs-repository bestond nog niet; protocolvoorstellen leefden als bestanden in het hoofd-repository van nostr. fiatjaf was die maand de enige committer. De volledige output van maart 2021 van wat vijf jaar later een protocol zou zijn dat VPN&amp;rsquo;s, multiplayergames en mesh-netwerken ondersteunt, past in één enkele git diff.&lt;/p>
&lt;h3 id="maart-2022-bouwen-vóór-damus">Maart 2022: Bouwen vóór Damus&lt;/h3>
&lt;p>Het hoofdrepository van het protocol ontving in maart 2022 nul commits. Ontwikkeling was volledig verschoven naar toolrepositories. &lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a>, fiatjaf&amp;rsquo;s Vue.js-webclient en destijds de primaire Nostr-interface, kreeg 5 commits, waaronder Docker-deploymentondersteuning en &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> (DNS-Based Verification)-displaynamefixes die het &lt;code>_@&lt;/code>-prefix verwijderden uit verificatiebadges. Robert C. Martins &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, de Clojure-desktopclient, noteerde 13 of meer commits die threading, toetsenbordnavigatie en een editvenster toevoegden. De beroemdste softwareauteur die die maand actief op Nostr bouwde was geen crypto-ontwikkelaar, maar de persoon wiens &amp;ldquo;Clean Code&amp;rdquo; miljoenen exemplaren verkocht, die een Nostr-client in Clojure schreef, een taalkeuze die veel zegt over de vroege gemeenschap: dit waren eigenzinnige programmeurs die voor zichzelf bouwden.&lt;/p>
&lt;p>Het relay-netwerk was gegroeid tot ongeveer 15 relays met een actieve gebruikersbasis in de honderden. Damus bestond nog niet en zou pas in april 2022 worden gemaakt. Nostream was er ook nog niet. Het werk van die maand was infrastructuur: bestaande tools betrouwbaarder maken voor de kleine gemeenschap die ze al dagelijks gebruikte.&lt;/p>
&lt;h3 id="maart-2023-infrastructuur-na-de-explosie">Maart 2023: Infrastructuur na de explosie&lt;/h3>
&lt;p>Een maand na de Damus App Store-golf en de sprong voorbij 300.000 publieke sleutels draaide maart 2023 om het absorberen van die groei. Het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a> mergede 28 pull requests, het op één na hoogste maandtotaal in de protocolgeschiedenis. &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> (Lists) werd gemerged en gaf clients gestructureerde volg-, mute- en bookmarkcollecties. &lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> (External Identities in Profiles) landde, NIP-78 (Application-Specific Data) leverde een algemeen opslagkind voor apps die privéstatus nodig hadden, en een herschrijving van &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> (Lightning Zaps) (&lt;a href="https://github.com/nostr-protocol/nips/pull/392">PR #392&lt;/a>) consolideerde de zapflow en verduidelijkte de terminologie. De meest besproken PR van de maand was een alternatief voorstel voor mention-afhandeling (&lt;a href="https://github.com/nostr-protocol/nips/pull/381">PR #381&lt;/a>) met meer dan 50 opmerkingen.&lt;/p>
&lt;p>Het meest consequentiale nieuwe project was &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> (Nostr Development Kit), de TypeScript-bibliotheek voor relayverbindingen, event-signing, caching en subscription management. pablof7z deed de &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/09e5e03">eerste commit&lt;/a> op 16 maart 2023, herschreef het 11 dagen later volledig op 27 maart (&amp;ldquo;basically another initial commit&amp;rdquo;), en had tegen 31 maart LNURL- en zap-ondersteuning werkend. NDK ging van niets naar zap-capable in 15 dagen. Vijf dagen na het ontstaan van NDK, op 21 maart, maakte het Alby-team &lt;a href="https://github.com/getAlby/nostr-wallet-connect">NWC&lt;/a> (Nostr Wallet Connect), de referentie-implementatie van &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> die Lightning-wallets aan Nostr-applicaties koppelde. De twee projecten die de volgende drie jaar webgebaseerde Nostr-ontwikkeling zouden dragen, werden geboren in hetzelfde venster van 30 dagen. OpenSats had zijn Nostr-fonds toen nog niet gelanceerd; de eerste golf kwam pas in &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">juli 2023&lt;/a>, vier maanden na de creatie van NDK.&lt;/p>
&lt;p>Andere opvallende creaties die maand waren NostrGit, NostrChat, een nostr-signing-deviceproject van LNbits en nostrmo. &lt;a href="https://github.com/mikedilger/gossip">Gossip&lt;/a>, de Rust-desktopclient gericht op intelligente relayselectie, bracht drie releases uit. Het protocol stond in build-modus, en de tools die in maart 2023 zijn gemaakt, zijn drie jaar later nog steeds in gebruik.&lt;/p>
&lt;h3 id="maart-2024-protocolvolwassenheid">Maart 2024: Protocolvolwassenheid&lt;/h3>
&lt;p>Maart 2024 draaide om het verharden van het protocol voor langdurig gebruik. Het NIPs-repository mergede 12 pull requests. De belangrijkste was &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> (Git Stuff), &lt;a href="https://github.com/nostr-protocol/nips/pull/997">PR #997&lt;/a>, die op 5 maart werd gemerged na meer dan 130 opmerkingen en 44 dagen review. De discussiethread is een tijdcapsule van een gemeenschap die debatteert over hoe een gedecentraliseerde GitHub eruit zou moeten zien. jb55 trok parallellen met &lt;code>git send-email&lt;/code>, Giszmo stelde voor om root commit hashes te gebruiken voor cross-fork discovery (&amp;ldquo;something GitHub doesn&amp;rsquo;t do and we could&amp;rdquo;), mikedilger stelde &lt;a href="https://nostrcompass.org/nl/topics/nip-98/">NIP-98&lt;/a> (HTTP Auth) event-ondertekende authenticatie voor in plaats van SSH-sleutels, en fiatjaf wees de noodzaak van versiebeheeralgemeenheid botweg af: &amp;ldquo;not for each version control system, just for git. No one uses the others.&amp;rdquo; Binnen enkele uren na het openen van de PR had fiatjaf nak, go-nostr en gitstr al omgeschakeld om patches over Nostr te accepteren. DanConwayDev, wiens ngit al een OpenSats-subsidie had, behoorde tot de actiefste bijdragers aan de discussie. Een botveld voor profielmetadata werd ook gemerged, waardoor clients machineleesbaar onderscheid kunnen maken tussen geautomatiseerde accounts en mensen.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> bracht v0.85.0 uit met git-eventondersteuning, wiki-artikelen, rendering van medische data en contentbewerking in één release. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> bereikte v0.10.0. &lt;a href="https://github.com/Spl0itable/nosflare">Nosflare&lt;/a>, een serverless Nostr-relay op Cloudflare Workers, bewees dat relaylogica aan de edge kan draaien. OpenSats gaf een &lt;a href="https://opensats.org/blog/bruno-garcia-receives-lts-grant">Long-Term Support grant aan Bruno Garcia&lt;/a> voor duurzame bijdragen aan de Amethyst-client.&lt;/p>
&lt;h3 id="maart-2025-uitbreiding-van-infrastructuur">Maart 2025: Uitbreiding van infrastructuur&lt;/h3>
&lt;p>Maart 2025 produceerde 10 gemergede NIPs. De koploper was &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring), &lt;a href="https://github.com/nostr-protocol/nips/pull/230">PR #230&lt;/a>, die op 3 maart werd gemerged na een traject van 25 maanden. dskvr stelde relaymonitoring voor het eerst voor in februari 2023 voor, kreeg te horen dat het client-side kon, legde uit waarom tegelijk verbinden met duizenden relays onpraktisch was voor individuele clients, ging door zeven volledige drafts, bouwde monitoringnodes in acht geografische regio&amp;rsquo;s (Northeast US, Brazilië, US-West, US-East, Australië, India, Korea, Zuid-Afrika), en wachtte tot de relaytooling was bijgehaald. Tegen de tijd van de merge bestonden al implementaties in nostr.watch, relaypag.es, monitorlizard, Snort, noStrudel en Jumble. De NIP-66-data zou later de Nostrability outbox-benchmarks voeden &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#outbox-model-under-the-microscope">behandeld in Newsletter #12&lt;/a>. NIP-C0 (Code Snippets) werd ook gemerged (&lt;a href="https://github.com/nostr-protocol/nips/pull/1852">PR #1852&lt;/a>, 63 opmerkingen), en voegde kind 1337-events toe voor het delen van broncode.&lt;/p>
&lt;p>De eerste MCP-servers voor Nostr verschenen deze maand. &lt;a href="https://github.com/AustinKelsay/nostr-mcp-server">nostr-mcp-server&lt;/a> verscheen op 23 maart en &lt;a href="https://github.com/getAlby/nwc-mcp-server">nwc-mcp-server&lt;/a> op 14 maart, slechts vier maanden nadat Anthropic in november 2024 het Model Context Protocol aankondigde. Deze vroege bridges gingen vooraf aan de volledige &lt;a href="https://nostrcompass.org/nl/topics/contextvm/">ContextVM&lt;/a> SDK en het agent-commercewerk dat eind 2025 en begin 2026 volgde.&lt;/p>
&lt;p>&lt;a href="https://github.com/mikedilger/gossip">Gossip&lt;/a> bracht v0.14.0 uit. &lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a>, hodlbod&amp;rsquo;s webclient met relay-aware feedbeheer, bracht drie releases uit. OpenSats kondigde zijn &lt;a href="https://opensats.org/blog/10th-wave-of-nostr-grants">tiende golf Nostr-subsidies&lt;/a> aan en zette daarmee de financieringspijplijn voort die sinds medio 2023 liep.&lt;/p>
&lt;h3 id="maart-2026-convergentie">Maart 2026: Convergentie&lt;/h3>
&lt;p>&lt;em>Activiteit in maart 2026 is ontleend aan Nostr Compass-edities &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">#12&lt;/a> tot &lt;a href="">#15&lt;/a> (deze editie).&lt;/em>&lt;/p>
&lt;p>Maart 2026 is de maand waarin verschillende draden samenkomen in werkende systemen. De &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#marmot-development-kit-ships-first-public-release">Marmot Development Kit&lt;/a> bracht zijn eerste publieke release uit met versleutelde media, meertalige bindings en een ChaCha20-Poly1305-migratie die gecoördineerde updates vroeg over spec, Rust en TypeScript heen. &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#shopstr-and-milk-market-open-mcp-commerce-surfaces">Shopstr en Milk Market&lt;/a> voegden MCP-commerceoppervlakken toe voor agent-gedreven aankopen. &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-auth landde gelijktijdig in &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#nip-42-relay-auth-across-bunker-signer-and-relay">Amber&lt;/a>, strfry en OAuth Bunker, waarmee de lus tussen signer-, relay- en bunkersoftware werd gesloten. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/#notedeck-moves-release-discovery-onto-nostr">Notedeck&lt;/a> bracht Nostr-native software-updates uit met &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> (File Metadata) release-events.&lt;/p>
&lt;p>Deze week scande &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#bigbrotr-brengt-blootgestelde-prive-sleutels-over-het-relay-netwerk-in-kaart">BigBrotr&lt;/a> het volledige relay-netwerk op gelekte privésleutels en publiceerde zowel de analyse als een DVM-checker. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#nostr-vpn-lanceert-als-een-tailscale-alternatief">Nostr VPN&lt;/a> bewees dat het sleutelmodel van Nostr bruikbaar is voor netwerkinfrastructuur, niet alleen voor social media. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#open-source-doom-draait-peer-to-peer-over-nostr">DOOM&lt;/a> liet zien dat Nostr-discovery, Marmot-versleuteling en QUIC-transport samen een realtime multiplayergame kunnen dragen. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#amber-v500-en-v501">Amber&lt;/a> sprong naar v5.0.0. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-25-newsletter/#wisp-brengt-16-releases-uit-in-een-week">Wisp&lt;/a> leverde 16 releases in zeven dagen. Meer dan 25 getagde releases kwamen in één week van grote projecten.&lt;/p>
&lt;p>In de eerste 24 dagen van de maand werden zeven NIPs gemerged. Het protocol kreeg &lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-opmaak, &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities) invoerlimieten, &lt;a href="https://nostrcompass.org/nl/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) boolean querylogica en &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web of Trust-asserties. Open voorstellen liepen uiteen van autonome agents (NIP-AA) via WASM-programma&amp;rsquo;s (NIP-A5) tot sorteervarianten voor zoeken in &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a>.&lt;/p>
&lt;h3 id="vooruitblik">Vooruitblik&lt;/h3>
&lt;p>Vijf maartmaanden van Nostr tekenen een duidelijke boog. In 2021 deed één persoon twee commits aan een protocol dat events nog niet op kind kon filteren. In 2023 werden NDK en NWC met vijf dagen ertussen geboren om de explosie na Damus op te vangen. In 2024 debatteerde een PR-thread met 141 opmerkingen over hoe git-samenwerking op een sociaal protocol moest werken. In 2025 werd een relaymonitoringspecificatie die zeven keer over 25 maanden was herschreven eindelijk gemerged. In 2026 raakte iemand geïrriteerd door het feit dat Tailscale een account vereist en bouwde een VPN met Nostr-sleutelparen, terwijl iemand anders multiplayer DOOM uitbracht dat peers ontdekt via Nostr-relays en gameplay versleutelt via Marmot. BigBrotr&amp;rsquo;s scan van 41 miljoen events over 1.085 relays geeft een concreet gevoel voor hoe ver het netwerk is gegroeid. Het protocoloppervlak van maart 2026 zou onherkenbaar zijn geweest voor maart 2021, maar het onderliggende model, events ondertekend met secp256k1-sleutels en verspreid via relays, is niet veranderd.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets of heb je nieuws om te delen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #14</title><link>https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-03-18-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> landt volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) methodeondersteuning, &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> voegt meervoudige relay-ondersteuning toe in &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> levert &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a> met ingebouwde Tor en fijnere signerrechten, en &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> verwijdert een riskant NWC keysend-pad in &lt;a href="https://github.com/ZeusLN/zeus/pull/3835">PR #3835&lt;/a>. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> levert een ondertekende updater in &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a> die releases ontdekt via &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> (File Metadata) events, terwijl &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> verouderde &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) status repareert, &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a> zijn benchmarkresultaten herziet met gecorrigeerde data, en &lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> directe relay-abonnementen voor DM&amp;rsquo;s test. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> levert &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.7">3.0.7&lt;/a>, &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> levert &lt;a href="https://github.com/v0l/route96/releases/tag/v0.6.0">v0.6.0&lt;/a>, &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a> blijft Marmot-interoperabiliteit aanscherpen in &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.11">v0.1.0-alpha.11&lt;/a>, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> consolideert zijn runtime in &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a>, en &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web of Trust-filtering toe. Het NIPs-repository merget &lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-opmaak en een 5000-karakter invoerlimiet voor &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities), terwijl open voorstellen een &lt;code>.nostrkey&lt;/code> bestandsformaat voor &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption), lidmaatschapsstatusconsistentie voor &lt;a href="https://nostrcompass.org/nl/topics/nip-43/">NIP-43&lt;/a> (Relay Access Metadata and Requests), verwijderingsrichtlijnen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), en een share-intent URI voor &lt;a href="https://nostrcompass.org/nl/topics/nip-222/">NIP-222&lt;/a> omvatten.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> landt volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) methodeondersteuning, &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> voegt meervoudige relay-ondersteuning toe in &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> levert &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a> met ingebouwde Tor en fijnere signerrechten, en &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> verwijdert een riskant NWC keysend-pad in &lt;a href="https://github.com/ZeusLN/zeus/pull/3835">PR #3835&lt;/a>. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> levert een ondertekende updater in &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a> die releases ontdekt via &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> (File Metadata) events, terwijl &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> verouderde &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) status repareert, &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a> zijn benchmarkresultaten herziet met gecorrigeerde data, en &lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> directe relay-abonnementen voor DM&amp;rsquo;s test. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> levert &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.7">3.0.7&lt;/a>, &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> levert &lt;a href="https://github.com/v0l/route96/releases/tag/v0.6.0">v0.6.0&lt;/a>, &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a> blijft Marmot-interoperabiliteit aanscherpen in &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.11">v0.1.0-alpha.11&lt;/a>, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> consolideert zijn runtime in &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a>, en &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web of Trust-filtering toe. Het NIPs-repository merget &lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-opmaak en een 5000-karakter invoerlimiet voor &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities), terwijl open voorstellen een &lt;code>.nostrkey&lt;/code> bestandsformaat voor &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption), lidmaatschapsstatusconsistentie voor &lt;a href="https://nostrcompass.org/nl/topics/nip-43/">NIP-43&lt;/a> (Relay Access Metadata and Requests), verwijderingsrichtlijnen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), en een share-intent URI voor &lt;a href="https://nostrcompass.org/nl/topics/nip-222/">NIP-222&lt;/a> omvatten.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="wallet-connect-ondersteuning-wordt-breder-en-walletclients-verscherpen-foutpaden">Wallet Connect-ondersteuning wordt breder, en walletclients verscherpen foutpaden&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client onderhouden door vitorpamplona, mergede &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1828">PR #1828&lt;/a>, dat zijn &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> implementatie dicht bij volledige protocoldekking brengt. De patch voegt &lt;code>make_invoice&lt;/code>, &lt;code>lookup_invoice&lt;/code>, &lt;code>list_transactions&lt;/code>, &lt;code>get_balance&lt;/code>, &lt;code>get_info&lt;/code>, hold invoice-methoden, keysend-ondersteuning met TLV-records, capability discovery via kind &lt;code>13194&lt;/code> en notificatie-events op kind &lt;code>23197&lt;/code> met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) toe. Dat geeft de client een veel breder NWC-oppervlak zonder te leunen op app-specifieke extensies.&lt;/p>
&lt;p>De omringende walletstack bewoog in dezelfde richting. &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a>, de self-custodial Lightning-node en walletservice achter veel NWC-deployments, leverde &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a> met meervoudige relay-ondersteuning en eenvoudigere verbindings- en swapflows. &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a>, de mobiele Lightning-wallet, mergede &lt;a href="https://github.com/ZeusLN/zeus/pull/3835">PR #3835&lt;/a> dat NWC keysend-ondersteuning verwijdert nadat een stil fund-drain-pad in die flow was geïdentificeerd, terwijl ook pending-event en Cashu-activiteitsafhandeling werd gerepareerd. Walletconnectiviteit op Nostr wordt breder, en implementeerders verwijderen flows die moeilijk te beveiligen zijn.&lt;/p>
&lt;h3 id="notedeck-verplaatst-release-ontdekking-naar-nostr">Notedeck verplaatst release-ontdekking naar Nostr&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Aansluitend op de Notedeck-berichtgeving van vorige week&lt;/a>, leverde &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de native desktopclient van het Damus-team, &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a> na het mergen van &lt;a href="https://github.com/damus-io/notedeck/pull/1326">PR #1326&lt;/a>. De nieuwe updater abonneert op ondertekende kind &lt;code>1063&lt;/code> release-events, matcht het lokale platform, downloadt het gerefereerde binaire bestand en verifieert de SHA256-hash voor installatie. Releasemetadata hoeft niet langer van de GitHub API of een projectwebsite te komen. Een vertrouwde release-pubkey en een relayverbinding zijn voldoende.&lt;/p>
&lt;p>Dezelfde patch voegt een &lt;code>notedeck-release&lt;/code> CLI toe die die events publiceert vanuit GitHub release-artefacten, wat betekent dat de release-pipeline nu zowel een Nostr-native publicatiepad als een Nostr-native ontdekkingspad heeft. Het brengt het Damus en Notedeck updater-model ook veel dichter bij Zapstore&amp;rsquo;s relay-gepubliceerde ondertekende releaseflow: Zapstore&amp;rsquo;s &lt;code>zsp&lt;/code>-tooling verwerkt software-assets al als kind &lt;code>1063&lt;/code> of &lt;code>3063&lt;/code> events, dus dit pad is niet gekoppeld aan één client of één publisher. De rest van de release candidate is praktisch desktopwerk: followkolommen, profiel &amp;ldquo;View As User,&amp;rdquo; &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) ondersteuning, realtime notestatistieken en &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document) limietafhandeling, maar de updater is het deel dat waarschijnlijk deze ene releasecyclus zal overleven.&lt;/p>
&lt;h3 id="relaystatus-beweegt-dichter-naar-runtimegedrag">Relaystatus beweegt dichter naar runtimegedrag&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> mergede &lt;a href="https://github.com/damus-io/damus/pull/3665">PR #3665&lt;/a>, dat een verouderd opgeslagen relaylijst-event-ID vervangt door een directe databasequery voor het nieuwste kind &lt;code>10002&lt;/code> event. Wanneer de oude waarde verouderd raakte, konden relay-toevoeg- en verwijderoperaties terugvallen op bootstrap of een jaar oude lijsten, waardoor sommige relaywijzigingen leken te slagen terwijl de actieve status ongewijzigd bleef. &lt;a href="https://github.com/damus-io/damus/pull/3690">PR #3690&lt;/a> repareert een tweede foutpad door verouderde &lt;code>lock.mdb&lt;/code>-status te verwijderen tijdens LMDB-compactie zodat de app niet crasht met &lt;code>SIGBUS&lt;/code> bij de volgende start.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> opende &lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/194">PR #194&lt;/a>, dat direct abonneert op de &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages) schrijfrelays van een chatpartner terwijl een gesprek open is, met de cacheserver als terugval. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> opende &lt;a href="https://github.com/nostur-com/nostur-ios-public/pull/53">PR #53&lt;/a>, dat gerandomiseerde relayscoring, &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> liveness-filtering van nostr.watch en Thompson-sampling combineert om relayselectie te veranderen van een vaste heuristiek naar een geleerd beleid. Clients hebben relaykeuxe lang behandeld als configuratiedata. Meer apps behandelen het nu als live status die meet- en reparatielogica nodig heeft.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="primal-android-307">Primal Android 3.0.7&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a>, de Android-client van Primal, leverde &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.7">3.0.7&lt;/a> met een nieuwe poll- en walletcyclus. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/945">PR #945&lt;/a> voegt zap-gebaseerd pollstemmen toe, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/948">PR #948&lt;/a> pagineert stemladingen zodat grotere polls bruikbaar blijven, en &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/965">PR #965&lt;/a> haalt zapreceipts op voor alle transacties. Dezelfde release tagt ook ondersteunde events met &lt;a href="https://nostrcompass.org/nl/topics/nip-89/">NIP-89&lt;/a> (Recommended Application Handlers) clientmetadata in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/968">PR #968&lt;/a>, wat downstream clients helpt eventoorsprong schoner toe te schrijven.&lt;/p>
&lt;h3 id="amber-v413">Amber v4.1.3&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Aansluitend op de Amber-berichtgeving van vorige week&lt;/a>, leverde &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de Android signer-app voor &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> flows, &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a>. De release bouwt voort op zijn recente &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> relay-auth-werk met meer operationele verharding: &lt;a href="https://github.com/greenart7c3/Amber/pull/327">PR #327&lt;/a> voegt ingebouwde Tor toe naast Orbot-ondersteuning, &lt;a href="https://github.com/greenart7c3/Amber/pull/324">PR #324&lt;/a> vervangt grove NIP-gebaseerde versleutelingsrechten door inhoudtype-specifieke regels, en &lt;a href="https://github.com/greenart7c3/Amber/pull/336">PR #336&lt;/a> verwijdert netwerkrechten uit de offline-variant terwijl &lt;a href="https://github.com/greenart7c3/Amber/pull/335">PR #335&lt;/a> CI-controles toevoegt om dat zo te houden. &lt;a href="https://github.com/greenart7c3/Amber/pull/322">PR #322&lt;/a> verplaatst ook PIN-opslag naar versleutelde DataStore.&lt;/p>
&lt;p>Deze release verscherpt de signergrens zelf. Dat is nuttig voor elke Android-flow die echte sleutels of relay-auth-beslissingen aan Amber overdraagt, omdat het moeilijke deel niet alleen is wat de signer kan doen. Het is ook hoe smal het kan worden afgebakend.&lt;/p>
&lt;h3 id="route96-v060">Route96 v0.6.0&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Aansluitend op de Route96-berichtgeving van vorige week&lt;/a>, bracht &lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, de mediaserver die Blossom en &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> (HTTP File Storage) ondersteunt, &lt;a href="https://github.com/v0l/route96/releases/tag/v0.6.0">v0.6.0&lt;/a> uit. De release verplaatst configuratie en whitelist-status naar de database met hot reload en voegt retentiebeleid toe voor koude of verouderende bestanden. Het voegt ook een rijker &lt;code>GET /user/files&lt;/code> eindpunt plus bestandsstattracking voor downloads en egress toe, wat operators meer zichtbaarheid geeft in hoe hun opslagserver wordt gebruikt.&lt;/p>
&lt;h3 id="openchat-v010-alpha11">OpenChat v0.1.0-alpha.11&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Aansluitend op de OpenChat-berichtgeving van vorige week&lt;/a>, leverde &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, de Avalonia-gebaseerde chatclient gebouwd op de Marmot-stack, &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.11">v0.1.0-alpha.11&lt;/a> na een week snel protocolwerk. &lt;a href="https://github.com/DavidGershony/openChat/commit/c33895d6b1a198f01b9b01a7be974bdce033fb9c">Commit c33895d&lt;/a> wrapt Welcome events in &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrap en verwijdert oude MIP-00 tag-normalisatieshims, &lt;a href="https://github.com/DavidGershony/openChat/commit/2738ff428154f60f50debb8f2a53662d427b28f1">commit 2738ff4&lt;/a> voltooit de MIP-02 compliance-audit, en &lt;a href="https://github.com/DavidGershony/openChat/commit/8e470cf7945bced010168c8229d73d67db638b9f">commit 8e470cf&lt;/a> doet hetzelfde voor MIP-03 groepsberichtversleuteling. &lt;a href="https://github.com/DavidGershony/openChat/commit/129ca37e264efaa2d1a8b04fe95cd72e5e212547">Commit 129ca37&lt;/a> consolideert ook NIP-44-afhandeling op de gedeelde marmot-cs-implementatie, wat het risico op client-side cryptodrift vermindert.&lt;/p>
&lt;h3 id="nak-v0190-en-v0191">nak v0.19.0 en v0.19.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjaf&amp;rsquo;s commandoregel Nostr-toolkit, leverde &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.0">v0.19.0&lt;/a> en &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.1">v0.19.1&lt;/a>. De 0.19-serie voegt een groepsforum-UI toe in &lt;a href="https://github.com/fiatjaf/nak/commit/5f4efdbc69a36fc80ea3f97b2cdee1db6a7c5b47">commit 5f4efdb&lt;/a>, schakelt groepsmetadata-bewerkingen over naar een volledige vervangingsflow in &lt;a href="https://github.com/fiatjaf/nak/commit/da0b75337198010687aceb6a07bbae67407faee3">commit da0b753&lt;/a>, en vervangt de oudere &lt;code>no-text&lt;/code>-afhandeling door &lt;code>supported_kinds&lt;/code> in &lt;a href="https://github.com/fiatjaf/nak/commit/bef67d35d259e0450debf0fd870e1a937a2406bf">commit bef67d3&lt;/a>. Voor groepsimplementeerders houdt dat de CLI in lijn met de richting waarin groepsspecificaties en clients zich bewegen.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Aansluitend op de Amethyst-berichtgeving van vorige week&lt;/a>, bleef &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client met een van de breedste protocoloppervlakken in Nostr, bouwen op zijn wallet- en relaywerk na de NIP-47 patch. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1853">PR #1853&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a> (Event Counting) COUNT-queries toe over relaybeherschermen, zodat gebruikers kunnen zien hoeveel events elke relay daadwerkelijk bevat voor homefeed, notificaties, DM&amp;rsquo;s en indexdata. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1849">PR #1849&lt;/a> voegt versleutelde bestandsuploads toe voor &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) chats, met een retry-pad voor onversleutelde uploads wanneer een opslaghost de versleutelde versie weigert.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1791">PR #1791&lt;/a> brengt ook volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) desktop bunker-login met een heartbeat-indicator, wat belangrijk is omdat remote signing-fouten vaak als willekeurige UI-storingen aanvoelen vanuit het perspectief van de gebruiker. De client toont of de signer actief is en hoe recent deze heeft geantwoord, terwijl het ook duidelijk maakt wanneer de huidige sessie een bunker gebruikt.&lt;/p>
&lt;h3 id="nostria">Nostria&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, de multiplatformclient gebouwd rond een local-first-stack, mergede &lt;a href="https://github.com/nostria-app/nostria/pull/561">PR #561&lt;/a> dat Web of Trust-filtering toevoegt voor feeds en threadreacties. De functie gebruikt de bestaande trust-servicerangdata en stelt deze beschikbaar als zowel een feedfilter als een reactiefilter, waarbij auteurs wiens rang de drempel niet haalt worden verborgen terwijl de threadstructuur behouden blijft wanneer vertrouwde afstammelingen aanwezig zijn. Dat geeft gebruikers een middenlaag tussen &amp;ldquo;toon iedereen&amp;rdquo; en hardgecodeerde lijst-gebaseerde curatie.&lt;/p>
&lt;p>Dezelfde week bracht ook &lt;a href="https://github.com/nostria-app/nostria/pull/563">PR #563&lt;/a>, dat inhoudsfiltering en repost-ondersteuning toevoegt aan de overzichtspagina. Buiten de bijgehouden PR-lijst heeft Nostria ook meer van zijn power-usersurface ingevuld. Het ondersteunt nu de nieuwste Brainstorm Web of Trust-service met in-app aanmelding, samen met geld verzenden en ontvangen in DM&amp;rsquo;s via NWC en BOLT-11 facturen. Het voegt ook Nostr-native GIF-afhandeling toe via de emoji NIP en een sterker RSS-importpad voor muzikanten dat bestaande Lightning-splits kan oppikken uit podcastfeeds. Nostria behandelt ranking, media, betalingen en publicatie als één verbonden appsurface.&lt;/p>
&lt;h3 id="nostur">Nostur&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a>, de iOS-client onderhouden door nostur-com, opende &lt;a href="https://github.com/nostur-com/nostur-ios-public/pull/53">PR #53&lt;/a> om outbox-routing te veranderen van een vast plan naar een gescoord beleid. De patch voegt gerandomiseerde relayscoring toe, &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> relay liveness-filtering met een gecachte nostr.watch-feed, en Thompson-sampling zodat relay succes- en faaldata toekomstige selecties beïnvloedt. Het ontwerp behoudt een veiligheidsventiel wanneer te veel relays uitgefilterd zouden worden en bewaart &lt;code>.onion&lt;/code>-relays. Dit is een van de duidelijkste huidige voorbeelden van een client die relayselectie behandelt als een adaptief systeem.&lt;/p>
&lt;h3 id="nostrability-outbox">Nostrability Outbox&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">Aansluitend op het eerdere Outbox-benchmarkrapport&lt;/a>, besteedde &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a>, het benchmark- en analyseproject gericht op &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> clientrouting, de week aan het aanscherpen van zijn eigen claims. &lt;a href="https://github.com/nostrability/outbox/pull/35">PR #35&lt;/a> vervangt opgeblazen Thompson-samplingresultaten door een volledige herbenchmark over 1.511 runs en beveelt de &lt;code>CG3&lt;/code>-variant aan voor NDK-stijl routing. &lt;a href="https://github.com/nostrability/outbox/pull/43">PR #43&lt;/a> voegt verval en use-case vergelijkingen toe, repareert een &lt;code>0 follows&lt;/code> cache-poisoning bug, en herhaalt vervolgens de Telluride-dataset na het vastzetten van cache-TTL&amp;rsquo;s.&lt;/p>
&lt;p>Dat is geen productwerk in de gebruikelijke zin, maar het is belangrijk voor clientauteurs omdat de cijfers van het project nu scherper en minder vleiend zijn op de plekken waar ze eerder te veel hadden geclaimd. Het gecorrigeerde resultaat is nog steeds nuttig. Gerandomiseerde selectie blijft puur deterministische routing verslaan in de gevallen waar Outbox om geeft, Thompson-stijl leren kan de dekking aanzienlijk verbeteren wanneer clients nuttige relaygeschiedenis bewaren, en &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> liveness-filtering vermindert verspilde tijd aan dode relays. Het werk vertaalt zich ook in concrete implementatievoorstellen, waaronder &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/387">NDK #387&lt;/a>, &lt;a href="https://github.com/nostur-com/nostur-ios-public/pull/53">Nostur #53&lt;/a>, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1833">Amethyst #1833&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1282">rust-nostr #1282&lt;/a>, &lt;a href="https://github.com/coracle-social/welshman/pull/53">welshman #53&lt;/a>, en &lt;a href="https://github.com/hzrd149/applesauce/pull/54">applesauce #54&lt;/a> plus &lt;a href="https://github.com/hzrd149/applesauce/pull/55">applesauce #55&lt;/a>.&lt;/p>
&lt;h3 id="white-noise-backend">White Noise backend&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a>, de Rust-backend gebruikt door White Noise en andere Marmot-tooling, mergede twee grensverhardingspatches rondom Blossom-mediaafhandeling. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/637">PR #637&lt;/a> dwingt HTTPS af op Blossom-URL&amp;rsquo;s en voegt een uploadtimeout toe, terwijl &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/642">PR #642&lt;/a> blobdownloads beperkt tot &lt;code>100 MiB&lt;/code> om te voorkomen dat oversized mediapulls een denial-of-servicepad worden. Voor privéberichtensoftware zijn media-URL&amp;rsquo;s een van de scherpste interfaces tussen versleutelde applicatielogica en onvertrouwde netwerkinfrastructuur. Deze week heeft het team die rand verscherpt.&lt;/p>
&lt;h3 id="rust-nostr">rust-nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a>, de Rust-protocolbibliotheek, mergede &lt;a href="https://github.com/rust-nostr/nostr/pull/1280">PR #1280&lt;/a> dat gemaksconstructors toevoegt voor &lt;code>LocalRelayBuilderNip42&lt;/code>. De nieuwe lees- en schrijfhelpers geven embedded relay- en testopstellingen een duidelijkere manier om &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> auth-beleid in code om te zetten. Dit is een kleine bibliotheekpatch, maar het is belangrijk voor teams die lokale of app-gebundelde relays bouwen die auth nodig hebben zonder elke keer boilerplate te herhalen.&lt;/p>
&lt;h3 id="pika">Pika&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">Aansluitend op eerdere Pika-berichtgeving&lt;/a>, leverde &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, de Marmot-gebaseerde berichtenapp, &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a> en &lt;a href="https://github.com/sledtools/pika/releases/tag/pikachat-v1.1.1">pikachat-v1.1.1&lt;/a> met een releasecyclus gericht op runtime-convergentie. &lt;a href="https://github.com/sledtools/pika/pull/542">PR #542&lt;/a> introduceert een gedeelde Marmot-runtimefaçade voor de CLI en sidecar, waarbij de apphost naar hetzelfde oppervlak verhuist. &lt;a href="https://github.com/sledtools/pika/pull/556">PR #556&lt;/a> verscherpt OpenClaw agent-levenscyclus en provisioningstatus, terwijl &lt;a href="https://github.com/sledtools/pika/pull/600">PR #600&lt;/a> herstel-van-back-up toevoegt en striktere herstelveiligheid voor beheerde omgevingen.&lt;/p>
&lt;p>Het directe gebruikersgerichte oppervlak is hier kleiner dan in het vorige Pika-artikel, maar de architecturale verandering is betekenisvol. Het samenvoegen van groeps-, media-, bel- en sessielogica achter één gedeelde runtime vermindert de kans dat de app en daemon uit elkaar drijven naarmate de Marmot-stack groeit.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> (Wiki): Overstap van Asciidoc naar Djot&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2242">PR #2242&lt;/a>): Wiki-inhoud op kind &lt;code>30818&lt;/code> gebruikt nu Djot als het canonieke opmaakformaat. De gemerge tekst voegt expliciet wikilinkgedrag toe, merge-request voorbeelden voor kind &lt;code>818&lt;/code>, redirectvoorbeelden voor kind &lt;code>30819&lt;/code> en niet-Latijnse normalisatievoorbeelden voor &lt;code>d&lt;/code> tags. Dat geeft implementeerders een schoner parsedoel dan Asciidoc en verwijdert nog een specpad dat afhankelijk was van een Ruby-gecentreerde toolchain.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities): Invoerlimiet toevoegen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2264">PR #2264&lt;/a>): De specificatie beveelt nu aan om Bech32-gecodeerde entitystrings te beperken tot 5000 karakters. Dit is een kleine wijziging met echte parserwaarde, omdat NIP-19 strings nu verschijnen in QR-flows, deep links, deelschermen en door gebruikers geplakte invoer over veel clients.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Nostr Key File voor &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2269">PR #2269&lt;/a>): Stelt een &lt;code>.nostrkey&lt;/code> bestandsformaat voor voor wachtwoordversleutelde sleutelexport en -import. Indien gemerged zou het clients een normaler bestandsgebaseerd back-uppad geven dan het kopiëren van rauwe &lt;code>ncryptsec&lt;/code>-strings.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Lidmaatschapsstatusconsistentie voor &lt;a href="https://nostrcompass.org/nl/topics/nip-43/">NIP-43&lt;/a> (Relay Access Metadata and Requests)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2267">PR #2267&lt;/a>): Voegt een sectie toe die verduidelijkt dat relays één autoritatieve lidmaatschapsstatus per pubkey moeten bijhouden. Dat zou groepsclientlogica rond lidmaatschapswijzigingen en afgespeelde geschiedenis vereenvoudigen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Verwijderingsrichtlijnen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2260">PR #2260&lt;/a>): Stelt een concreet pad voor om privéberichten te bewerken en te verwijderen via gift-wrapped verwijderevents. Het werk is nog open, maar clientauteurs hebben hier een antwoord nodig als NIP-17 oudere DM-flows volledig gaat vervangen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Share-intent URI voor &lt;a href="https://nostrcompass.org/nl/topics/nip-222/">NIP-222&lt;/a>&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2266">PR #2266&lt;/a>): Het concept zou standaardiseren hoe mobiele en desktop-apps gedeelde inhoud in een Nostr-client overdragen. Dat is een van de ruwste interop-randen in huidige app-naar-app flows.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-94-file-metadata">NIP Deep Dive: NIP-94 (File Metadata)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> definieert kind &lt;code>1063&lt;/code> als een eerste-klas metadata-event voor een bestand. De &lt;a href="https://github.com/nostr-protocol/nips/blob/master/94.md">specificatie&lt;/a> geeft het event zijn eigen leesbare &lt;code>content&lt;/code> plus machineleesbare tags voor download-URL, MIME-type, hashes, dimensies, previews, terugvallinks en opslagservicehints. Dit is belangrijk omdat het bestand doorzoekbaar wordt op relays als een eigen object. Een client hoeft geen metadata uit omringende inhoud te schrapen om te begrijpen wat het bestand is.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;6a92ef8d7c3a1b5d4e8f9a0b1c2d3e4f567890abcdef1234567890abcdef1234&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f1e2d3c4b5a697887766554433221100ffeeddccbbaa99887766554433221100&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1742342400&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1063&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;url&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://downloads.example.org/notedeck/v0.8.0-rc2/notedeck-macos-universal.tar.gz&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;m&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;application/gzip&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;x&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4a5b6c7d8e9f00112233445566778899aabbccddeeff00112233445566778899&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;ox&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4a5b6c7d8e9f00112233445566778899aabbccddeeff00112233445566778899&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;size&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;48392011&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;dim&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;0x0&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;magnet&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;magnet:?xt=urn:btih:00112233445566778899aabbccddeeff00112233&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;i&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;00112233445566778899aabbccddeeff00112233&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;blurhash&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;LEHV6nWB2yk8pyo0adR*.7kCMdnj&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;thumb&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://downloads.example.org/notedeck/v0.8.0-rc2/thumb.png&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bbccddeeff00112233445566778899aabbccddeeff0011223344556677889900&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;image&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://downloads.example.org/notedeck/v0.8.0-rc2/screenshot.png&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;ccddeeff00112233445566778899aabbccddeeff001122334455667788990011&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;summary&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Signed macOS release artifact for Notedeck v0.8.0-rc2&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;alt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Notedeck desktop release archive&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;fallback&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://mirror.example.net/notedeck/v0.8.0-rc2/notedeck-macos-universal.tar.gz&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;service&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip96&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Notedeck macOS universal build&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;11aa22bb33cc44dd55ee66ff77889900aabbccddeeff0011223344556677889911aa22bb33cc44dd55ee66ff77889900aabbccddeeff00112233445566778899&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De tags doen meer werk dan het op het eerste gezicht lijkt. &lt;code>x&lt;/code> identificeert het geserveerde bestand, terwijl &lt;code>ox&lt;/code> het oorspronkelijke bestand identificeert voor eventuele server-side transformatie. De previewtags laten clients doorbladerbare bestandsindexen bouwen zonder het volledige asset te downloaden, en &lt;code>summary&lt;/code> kan er een kort excerpt naast dragen. &lt;code>fallback&lt;/code> geeft een tweede bron wanneer de hoofd-URL faalt, en &lt;code>service&lt;/code> hint naar het opslagprotocol achter het bestand, zoals &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> of een andere host. NIP-94 zit daarom onder sociale berichten en boven ruwe opslag. Het beschrijft het bestand, niet het gesprek rond het bestand.&lt;/p>
&lt;p>Daarom is de Notedeck-updater van deze week interessant. &lt;a href="https://github.com/damus-io/notedeck/pull/1326">PR #1326&lt;/a> gebruikt ondertekende kind &lt;code>1063&lt;/code> events voor software-releaseontdekking en verifieert vervolgens het gedownloade binaire bestand tegen de gepubliceerde SHA256. Dezelfde eventvorm kan een software-artefact of een media-upload beschrijven. NIP-94 is oud genoeg om stabiel te zijn, maar het heeft nog ruimte om te groeien omdat meer projecten metadata-events behandelen als transport voor machines, niet alleen als decoratie voor mensen.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-54-wiki">NIP Deep Dive: NIP-54 (Wiki)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> definieert kind &lt;code>30818&lt;/code> als een wiki-artikel-event. De &lt;a href="https://github.com/nostr-protocol/nips/blob/master/54.md">specificatie&lt;/a> behandelt de &lt;code>d&lt;/code> tag als het genormaliseerde artikelonderwerp en laat veel auteurs items publiceren voor hetzelfde onderwerp. De artikeltekst staat in &lt;code>content&lt;/code>, terwijl tags genormaliseerde identiteit, weergavetitel, samenvattingen en referenties naar eerdere versies afhandelen. Dat betekent dat NIP-54 niet alleen een inhoudformaat is. Het is ook een ophaal- en rangschikkingsprobleem, omdat elke client nog steeds moet beslissen welke artikelversie getoond wordt.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;8c94e5d1f2a300112233445566778899aabbccddeeff00112233445566778899&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1742342400&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30818&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nostr-wiki&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Nostr Wiki&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;summary&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Djot-formatted reference article about Nostr wiki events&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30818:11223344556677889900aabbccddeeff00112233445566778899aabbccddeeff:nostr-wiki&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.org&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;fork&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;11223344556677889900aabbccddeeff00112233445566778899aabbccddeeff&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.org&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;fork&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Nostr is a [protocol][] for carrying events across relays.\n\n[protocol]: nostr:nevent1example&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;33cc44dd55ee66ff77889900aabbccddeeff0011223344556677889900112233cc44dd55ee66ff77889900aabbccddeeff00112233445566778899001122&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De merge deze week verandert de canonieke opmaak van Asciidoc naar Djot in &lt;a href="https://github.com/nostr-protocol/nips/pull/2242">PR #2242&lt;/a>. Dat is belangrijk voor implementeerders omdat Djot een strakkere zelfstandige specificatie en een eenvoudiger parserverhaal over talen heen heeft. De gemerge tekst verduidelijkt ook hoe referentiestijl-wikilinks resolven, hoe merge-verzoeken kind &lt;code>818&lt;/code> gebruiken, hoe redirects kind &lt;code>30819&lt;/code> gebruiken, en hoe &lt;code>d&lt;/code> tag-normalisatie zich moet gedragen voor niet-Latijnse schriften. Dat zijn de delen die twee onafhankelijke clients het eens laten worden over naar welk artikel een link verwijst.&lt;/p>
&lt;p>NIP-54 zit ook op een ongebruikelijke plek in het protocol. Een wikiclient heeft contentrendering nodig, maar ook rangschikkingsbeleid. Reacties, relaylijsten, contactlijsten en expliciete eerbiedigingssignalen voeden allemaal in welk artikel wint voor een bepaald onderwerp. De Djot-overstap lost dat rangschikkingsprobleem niet op, maar verwijdert wel een van de parser-ambiguïteiten die eronder lagen. Daarom is de merge nu belangrijk: de verandering gaat minder over mooiere proseformattering en meer over het eenvoudiger maken van consistente multi-client wikifunctionaliteit.&lt;/p>
&lt;p>Iets aan het bouwen, of wil je dat we het behandelen? Neem contact op via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM op Nostr op &lt;code>npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923&lt;/code>.&lt;/p></content:encoded></item><item><title>Nostr Kompas #13</title><link>https://nostrcompass.org/nl/newsletters/2026-03-11-newsletter/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-03-11-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> en &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a> voegen MCP-oppervlakken toe voor agentgestuurde handel, terwijl &lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> en &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> relay-auth en protected-event-support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> (Authenticatie van clients bij relays) toevoegen in app-, signer- en relaysoftware. &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> brengt twee releases uit rond AI-labeling, moderatiequeues, perceptuele hashing en machineleesbare serverdocumentatie. &lt;a href="https://github.com/satsdisco/samizdat">Samizdat&lt;/a>, al live op het web, bracht zijn eerste Android-alpha uit en voegde later signer-support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) toe. &lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a> voegt signup toe via &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption), &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt Namecoin-gebaseerde &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> (Domain Verification) resolutie uit, &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> brengt &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a> uit, en de NIPs-repository merged &lt;a href="https://nostrcompass.org/nl/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) en defensieve richtlijnen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring).&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> en &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a> voegen MCP-oppervlakken toe voor agentgestuurde handel, terwijl &lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> en &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> relay-auth en protected-event-support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> (Authenticatie van clients bij relays) toevoegen in app-, signer- en relaysoftware. &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> brengt twee releases uit rond AI-labeling, moderatiequeues, perceptuele hashing en machineleesbare serverdocumentatie. &lt;a href="https://github.com/satsdisco/samizdat">Samizdat&lt;/a>, al live op het web, bracht zijn eerste Android-alpha uit en voegde later signer-support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) toe. &lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a> voegt signup toe via &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption), &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> brengt Namecoin-gebaseerde &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> (Domain Verification) resolutie uit, &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> brengt &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a> uit, en de NIPs-repository merged &lt;a href="https://nostrcompass.org/nl/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) en defensieve richtlijnen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring).&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="shopstr-en-milk-market-openen-mcp-oppervlakken-voor-handel">Shopstr en Milk Market openen MCP-oppervlakken voor handel&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, de peer-to-peer marktplaats met Lightning- en Cashu-betalingen, mergeerde &lt;a href="https://github.com/shopstr-eng/shopstr/pull/234">PR #234&lt;/a> (&lt;a href="https://github.com/shopstr-eng/shopstr/commit/94ef7d1a4519e8e0158668d13c8cb8684b1d46e2">commit 94ef7d1&lt;/a>), waarmee een MCP-server met API-key-authenticatie voor agent accountbeheer werd toegevoegd. De wijziging voegt &lt;code>.well-known/agent.json&lt;/code> toe voor agent discovery, MCP-endpoints voor onboarding en status, routes voor ordercreatie en betaalverificatie, en aparte purchase- en read-tools plus een instellingenpagina voor API-sleutels. &lt;a href="https://github.com/shopstr-eng/shopstr/pull/236">PR #236&lt;/a> breidt dit uit met verkopersacties voor berichten, adressen, orderupdates en productspecificaties. Een securityfix in &lt;a href="https://github.com/shopstr-eng/shopstr/pull/235">PR #235&lt;/a> vervangt single-iteration SHA-256 hashing van API-sleutels door salted PBKDF2 met 100.000 iteraties.&lt;/p>
&lt;p>Agents kunnen &lt;a href="https://nostrcompass.org/nl/topics/nip-99/">NIP-99&lt;/a> (Classified Listings)-vermeldingen lezen en het checkoutproces doorlopen via de bestaande betaalstromen van &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) en &lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a> (Cashu Wallet), zonder pagina&amp;rsquo;s te scrapen of clientgedrag te reverse-engineeren.&lt;/p>
&lt;p>&lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>, een voedselmarktplaats op Nostr via &lt;a href="https://milk.market">milk.market&lt;/a>, kreeg dezelfde MCP- en API-key-basis in &lt;a href="https://github.com/shopstr-eng/milk-market/commit/da6c0b499494b4e4861c4ff8a220e066c46285b3">commit da6c0b4&lt;/a>. &lt;a href="https://github.com/shopstr-eng/milk-market/pull/10">PR #10&lt;/a> voegt abonnementsorders toe, wijzigingen aan verzendadressen na aankoop en afhandeling van multi-merchant- en multi-currency-checkout voor Stripe en andere fiat-betaalpaden. Een vervolgwijziging in &lt;a href="https://github.com/shopstr-eng/milk-market/pull/11">PR #11&lt;/a> repareert een bug bij database-initialisatie tijdens opstarten, waarbij de tabel voor mislukte relay-publicaties op verse installaties niet werd aangemaakt en daardoor 500-fouten op de eerste load ontstonden. De agentgerichte interface werkt zowel met Bitcoin-native checkout op Shopstr als met gemengde fiat- en Bitcoin-checkout op Milk Market.&lt;/p>
&lt;h3 id="nip-42-relay-auth-bij-bunker-signer-en-relay">NIP-42 relay-auth bij bunker, signer en relay&lt;/h3>
&lt;p>&lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, een &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect)-bunker die OAuth-providers koppelt aan Nostr-signing, voegde login via &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> (Browser Extension Signer), automatische selectie van een enkele identiteit en opruiming van verwijderde identiteiten toe (&lt;a href="https://github.com/flox1an/oauth-bunker/commit/f0c7683cb2374fd9a3ebd1b186055da8abd2c2ff">commit f0c7683&lt;/a>). Wanneer er maar een identiteit bestaat, kiest de bunker die nu automatisch in plaats van de gebruiker eerst te laten kiezen. Het verwijderen van een identiteit verwijdert ook achterblijvende assignments en connections. &lt;a href="https://github.com/flox1an/oauth-bunker/commit/6b8796c6c59c7d48dc1ede92d6de6bf54feb56cc">Commit 6b8796c&lt;/a> voegt een configuratiepad &lt;code>ALWAYS_ALLOWED_KINDS&lt;/code> toe voor toegewezen gebruikers, met kind &lt;code>30078&lt;/code> app-specific data als standaard, zodat gedelegeerde identiteiten zonder goedkeuring per event naar app-specifieke opslag kunnen schrijven.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de belangrijkste &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> signer voor Android, bracht &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3-pre4">v4.1.3-pre4&lt;/a> uit na vier prereleases in de loop van de week. &lt;a href="https://github.com/greenart7c3/Amber/pull/317">PR #317&lt;/a> voegt relay-authenticatie volgens &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> toe voor verzoeken van kind &lt;code>22242&lt;/code>. De implementatie voegt een nieuwe databasekolom toe voor relay-specifieke permissies met een unieke index op &lt;code>(pkKey, type, kind, relay)&lt;/code>. Gebruikers krijgen een apart auth-scherm waar ze per relay of voor alle relays via wildcard &lt;code>*&lt;/code> toestemming kunnen geven of weigeren, en die keuze kunnen bewaren. Wildcard-permissies verwijderen alle relay-specifieke entries voor dat kind. &lt;a href="https://github.com/greenart7c3/Amber/pull/318">PR #318&lt;/a> bouwt daarop voort door schermen voor multi-event-verzoeken te refactoren, zodat details inline in composable kaarten worden getoond in plaats van op een apart scherm. De release werkt ook standaard profiellists bij, voegt bottom-sheet-weergave voor verzoeken toe en repareert een crash op MediaTek-apparaten door StrongBox keystore uit te schakelen.&lt;/p>
&lt;p>Aan relay-zijde implementeert &lt;a href="https://github.com/hoytech/strfry/pull/156">strfry PR #156&lt;/a> NIP-42-auth voor &lt;a href="https://nostrcompass.org/nl/topics/nip-70/">NIP-70&lt;/a> (Protected Events), en &lt;a href="https://github.com/hoytech/strfry/pull/176">PR #176&lt;/a> weigert reposts die protected events insluiten.&lt;/p>
&lt;h3 id="notedeck-voegt-nip-11-relay-limieten-en-agentium-features-toe">Notedeck voegt NIP-11 relay-limieten en Agentium-features toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de native desktopclient van het Damus-team, mergeerde deze week 14 PR&amp;rsquo;s. &lt;a href="https://github.com/damus-io/notedeck/pull/1316">PR #1316&lt;/a> voegt relay-limietophaling toe uit &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document), zodat alle outbox-relays nu &lt;code>max_message_length&lt;/code> en &lt;code>max_subscriptions&lt;/code> uit het relay-infodocument respecteren. De implementatie bevat verwerking via achtergrondjobs, exponential backoff met jitter voor verbindingsherstel en aangepaste HTTP Accept-headers. &lt;a href="https://github.com/damus-io/notedeck/pull/1312">PR #1312&lt;/a> repareert een bug waarbij DM&amp;rsquo;s soms niet laadden na het wisselen van account, en &lt;a href="https://github.com/damus-io/notedeck/pull/1333">PR #1333&lt;/a> voegt een backoff-mechanisme toe aan multicast-communicatie met relays om broadcastspam bij fouten te voorkomen.&lt;/p>
&lt;p>Het Agentium-subsysteem, de ingebouwde coding-agent-UI van Notedeck die intern &amp;ldquo;Dave&amp;rdquo; heet, kreeg ondersteuning voor het plakken van clipboard-afbeeldingen, benoemde run-configuraties die via kind &lt;code>31991&lt;/code> events tussen apparaten synchroniseren (&lt;a href="https://nostrcompass.org/nl/topics/nip-33/">NIP-33&lt;/a> Parameterized Replaceable Events), een git-worktree-creator en een model picker voor het kiezen van backends per sessie (&lt;a href="https://github.com/damus-io/notedeck/pull/1336">PR #1336&lt;/a>). &lt;a href="https://github.com/damus-io/notedeck/pull/1338">PR #1338&lt;/a> integreert &lt;code>egui_kittest&lt;/code> voor headless UI-tests, en &lt;a href="https://github.com/damus-io/notedeck/pull/1339">PR #1339&lt;/a> voegt een dashboardkaart toe die nieuwe creaties van contactlijsten per client volgt. Een openstaande &lt;a href="https://github.com/damus-io/notedeck/pull/1314">PR #1314&lt;/a> porteert Amethysts Namecoin-gebaseerde NIP-05-resolutie naar Notedeck met ElectrumX-lookups, SOCKS5-Tor-routing en integratie in de zoekbalk.&lt;/p>
&lt;h3 id="divine-v106-met-e2e-testinfrastructuur-en-nip-49-import">diVine brengt v1.0.6 uit met E2E-testinfrastructuur en NIP-49-import&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de short-form looping-videoclient die Vine-archieven terugbrengt op &lt;a href="https://divine.video">divine.video&lt;/a>, bracht &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.6">v1.0.6&lt;/a> uit met 127 gemergede PR&amp;rsquo;s. De release voegt accountimport via &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a>, externe &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a>-ondersteuning, multi-accountbeheer en macOS- plus experimentele Linux-builds toe, samen met een opnieuw ontworpen bibliotheek voor drafts en clips die op lokale opslag steunt.&lt;/p>
&lt;p>Aan de engineeringkant voegt &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1928">PR #1928&lt;/a> een volledige E2E-integratietestinfrastructuur toe met Patrol voor native UI-automatisering tegen een Docker-backendstack met relay, API, Blossom, Postgres, Redis en ClickHouse. Vijf tests van auth-trajecten dekken registratie, verificatie, wachtwoordreset, sessieverval en token refresh. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2105">PR #2105&lt;/a> schakelt videoladen om van HLS-first naar direct MP4 met automatische HLS-fallback, waardoor laadtijden van 30-60 seconden naar vrijwel direct dalen. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2076">PR #2076&lt;/a> cached de API-respons van de homefeed in SharedPreferences voor een directe weergave na een cold start. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2104">PR #2104&lt;/a> dwingt labels voor &lt;code>ai-generated&lt;/code> content af als verborgen in feeds, en &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2100">PR #2100&lt;/a> voegt een veiligheidsinstelling toe om alleen door diVine gehoste video&amp;rsquo;s te tonen. De migratie van Hive naar Drift voor de profielcache loopt verder via &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1881">PR #1881&lt;/a>, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1883">PR #1883&lt;/a> en &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1903">PR #1903&lt;/a>, waarmee ongeveer 1.074 regels Hive-code worden vervangen door Drift DAO&amp;rsquo;s.&lt;/p>
&lt;h3 id="vector-v032-brengt-nip-77-negentropy-sync-en-mls-verbeteringen">Vector v0.3.2 brengt NIP-77-negentropy-sync en MLS-verbeteringen&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, een privacygerichte desktopmessenger die MLS-groepsversleuteling gebruikt met &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads), bracht &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.2">v0.3.2&lt;/a> uit. De belangrijkste wijziging is NIP-77-negentropy voor MLS-groepssynchronisatie (&lt;a href="https://github.com/VectorPrivacy/Vector/commit/b06adf4af2673fb5ac5add01356999ea70628eac">commit b06adf4&lt;/a>), waarmee gemiste berichten via parallel boot veel sneller worden ingehaald. De release voegt ook een opnieuw gebouwde audio-engine met volledige Linux-ondersteuning toe, image spoilers met vervaagde previews, klikbare hyperlinks met rich link previews, &lt;code>@mention&lt;/code>-pings met &lt;code>@everyone&lt;/code> voor groepsadmins, emoji-shortcode-autocomplete, group muting, tik-om-te-reageren op bestaande reacties en annuleerbare bestandsuploads. Vector filtert expliciet groepschat-events van NIP-17 uit (&lt;a href="https://github.com/VectorPrivacy/Vector/commit/2179a51c0449b3a70663a1573195b7945adf58ba">commit 2179a51&lt;/a>) en gebruikt MLS exclusief voor groepsversleuteling.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="route96-v050-en-v051">Route96 v0.5.0 en v0.5.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, een mediaserver met ondersteuning voor Blossom en &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> (HTTP File Storage), bracht &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.0">v0.5.0&lt;/a> en &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.1">v0.5.1&lt;/a> uit. v0.5.0 voegt geautomatiseerde AI-labeling toe, retroactieve backfill voor ongelabelde uploads, moderatiequeues voor gemarkeerde bestanden, privacy-afwijzing op basis van EXIF en verwerking van verboden hashes.&lt;/p>
&lt;p>v0.5.1 voegt perceptuele image hashes, locality-sensitive hashing voor vergelijkbare afbeeldingen, batch-admin-endpoints en een gepubliceerde &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.1">&lt;code>SKILL.md&lt;/code>&lt;/a> toe die het Blossom- en NIP-96-API-oppervlak van de server beschrijft voor agent tooling. &lt;a href="https://github.com/v0l/route96/pull/58">PR #58&lt;/a> verplaatst achtergrondworkers naar volledig asynchrone Tokio-taken, en &lt;a href="https://github.com/v0l/route96/commit/97b00a39e27b07053c2ad335dbf475bacba57bf8">commit 97b00a3&lt;/a> voegt backoff toe om hot loops te vermijden.&lt;/p>
&lt;h3 id="samizdat-v100-alpha">Samizdat v1.0.0-alpha&lt;/h3>
&lt;p>&lt;a href="https://github.com/satsdisco/samizdat">Samizdat&lt;/a>, een reader en uitgever voor long-form content op &lt;a href="https://samizdat.press">samizdat.press&lt;/a>, bracht zijn eerste Android-build uit in &lt;a href="https://github.com/satsdisco/samizdat/releases/tag/v1.0.0-alpha">v1.0.0-alpha&lt;/a>. De app opent met een gecureerde Press-pagina van lange Nostr-artikelen en biedt navigatie onderin tussen Press, Feed, Saved en Write. De Android-build voegt native key storage toe via Android Keystore-versleuteling met biometrische ontgrendeling, ondersteunt &lt;code>nostr:&lt;/code>-URI&amp;rsquo;s en &lt;code>samizdat.press&lt;/code>-deeplinks, en ondersteunt signer-handoff via de Android-appkiezer zoals Amber en Primal, in plaats van directe sleutelimport te vereisen. Pull-to-refresh, safe-area-afhandeling op verschillende schermformaten en integratie van native share, clipboard, haptics en splash screen zitten nu in de Android-shell in plaats van de webwrapper.&lt;/p>
&lt;p>&lt;a href="https://github.com/satsdisco/samizdat/commit/d17308f3c2e6020e14074fbb1c03a8f60f29a3e6">Commit d17308f&lt;/a> voegt intent-gebaseerde &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>-signing toe voor Amber- en Primal-flows, en &lt;a href="https://github.com/satsdisco/samizdat/commit/e29dab84f7b58edd621f7b86ed7ca6458f965614">commit e29dab8&lt;/a> vervangt een JavaScript-bridge-workaround door een native Capacitor-plugin met &lt;code>startActivityForResult&lt;/code>. De app vereist Android 7.0+ (API 24), wordt in deze alpha als debug-APK geleverd en mist nog pushnotificaties. Publiceren hangt momenteel af van een signer-app, terwijl inloggen met &lt;code>nsec&lt;/code> lokaal lezen en accounttoegang afdekt.&lt;/p>
&lt;h3 id="calendar-by-form-v020">Calendar by Form* v0.2.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a>, een gedecentraliseerde kalenderapp met private eventdeling via &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) op &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a>, bracht &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v0.2.0">v0.2.0&lt;/a> uit samen met &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/38">PR #38&lt;/a>. De release breidt de afhandeling van terugkerende events voor &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> (Calendar Events) uit, boven op de basis met enkelvoudige events uit v0.1.0. De onderliggende wijzigingen raken ook lokale eventopslag, signer-afhandeling en Android-notificatieplumbing. Dit is de tweede actieve applicatie van de Formstr-organisatie sinds de repositorymigratie van vorige maand.&lt;/p>
&lt;h3 id="mostro-v0164">Mostro v0.16.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, de peer-to-peer Bitcoin-exchange gebouwd op Nostr, bracht &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a> uit. De fixes voor herstel van disputessessies (&lt;a href="https://github.com/MostroP2P/mostro/pull/599">PR #599&lt;/a>) en automatisch sluiten (&lt;a href="https://github.com/MostroP2P/mostro/pull/606">PR #606&lt;/a>) die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">vorige week&lt;/a> aan bod kwamen, zitten in deze release. Nieuw in deze versie: &lt;a href="https://github.com/MostroP2P/mostro/pull/625">PR #625&lt;/a> voegt een &lt;code>days&lt;/code>-veld toe aan rating-events van kind &lt;code>38384&lt;/code>, &lt;a href="https://github.com/MostroP2P/mostro/pull/612">PR #612&lt;/a> voegt een verloopdatum toe aan diezelfde rating-events, en &lt;a href="https://github.com/MostroP2P/mostro/pull/614">PR #614&lt;/a> laat order-events verlopen op basis van geconfigureerde instellingen in plaats van een hardcoded venster van 24 uur. &lt;a href="https://github.com/MostroP2P/mostro/pull/622">PR #622&lt;/a> voegt een idempotency-check toe om dubbele betalingen van ontwikkelingsfees te voorkomen.&lt;/p>
&lt;h3 id="mostro-mobile-v121">Mostro Mobile v1.2.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, de Flutter-client voor de Mostro P2P-exchange, bracht &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.1">v1.2.1&lt;/a> uit met 11 nieuwe features en 11 bugfixes. De release voegt rendering van versleutelde multimedia in dispute chat toe (&lt;a href="https://github.com/MostroP2P/mobile/pull/514">PR #514&lt;/a>), sluit de dispute-UI automatisch wanneer orders een eindstatus bereiken (&lt;a href="https://github.com/MostroP2P/mobile/pull/503">PR #503&lt;/a>), voegt QR-scanning toe voor import van NWC-wallets (&lt;a href="https://github.com/MostroP2P/mobile/commit/12eaee4d154fa31b07f82b96819de520e825aee6">commit 12eaee4&lt;/a>), plus Franse vertalingen en FCM-pushnotificaties. &lt;a href="https://github.com/MostroP2P/mobile/pull/496">PR #496&lt;/a> repareert een paddingbug in Schnorr-handtekeningen door de dependency &lt;code>bip340&lt;/code> vast te pinnen op v0.2.0.&lt;/p>
&lt;h3 id="0xchat-v154">0xchat v1.5.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/0xchat-app/0xchat-app-main">0xchat&lt;/a>, de Telegram-achtige berichtenclient met Cashu-support, bracht &lt;a href="https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.4-release">v1.5.4&lt;/a> uit met focus op Linux-desktopfixes: AppImage-dockicons, emoji-rendering, vastlopende contextmenu&amp;rsquo;s en reply/copy-hangs in de UI. De release repareert ook problemen met image uploads en npub.cash-integratie. &lt;a href="https://github.com/0xchat-app/0xchat-app-main/pull/49">PR #49&lt;/a> verwijdert onnodige UI-rebuilds door een polling-timer van 3 seconden te schrappen die niets deed behalve glassmorphic hertekeningen forceren, en maakt login-initialisatie weer niet-blokkerend door het laden van de eventcache parallel te laten lopen met relay-, contact- en channel-opstart.&lt;/p>
&lt;h3 id="keep-v060">Keep v0.6.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a>, een FROST-threshold-signer voor Android met support voor &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>, bracht &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v0.6.0">v0.6.0&lt;/a> en &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v0.6.1">v0.6.1&lt;/a> uit. v0.6.0 voegt coördinatie en beheer-UI voor wallet descriptors toe, een backup/restore-flow met biometrische authenticatie (&lt;a href="https://github.com/privkeyio/keep-android/pull/184">PR #184&lt;/a>), &lt;code>nsec&lt;/code>-herstel uit threshold shares (&lt;a href="https://github.com/privkeyio/keep-android/pull/187">PR #187&lt;/a>), cross-platform geanimeerde QR-frames via Rust UniFFI (&lt;a href="https://github.com/privkeyio/keep-android/pull/188">PR #188&lt;/a>) en een audit trail voor signing met ketenverificatie (&lt;a href="https://github.com/privkeyio/keep-android/pull/189">PR #189&lt;/a>). v0.6.1 wijzigt de licentie van AGPL-3.0 naar MIT (&lt;a href="https://github.com/privkeyio/keep-android/pull/191">PR #191&lt;/a>).&lt;/p>
&lt;h3 id="njump-v030">njump v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/njump">njump&lt;/a>, de statische gateway voor het bekijken van Nostr-content via &lt;a href="https://njump.me">njump.me&lt;/a>, bracht &lt;a href="https://github.com/fiatjaf/njump/releases/tag/v0.3.0">v0.3.0&lt;/a> uit met een brekende wijziging in parsing van &lt;code>note1&lt;/code>-codes en een update van de onderliggende nostr-bibliotheek.&lt;/p>
&lt;h3 id="roadstr-v011">Roadstr v0.1.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/jooray/roadstr">Roadstr&lt;/a>, een gedecentraliseerde app voor meldingen over wegincidenten via Nostr, bracht zijn eerste demo-release &lt;a href="https://github.com/jooray/roadstr/releases/tag/v0.1.1">v0.1.1&lt;/a> uit. De app toont wegincidenten op een kaart met vector tiles van openfreemap.org.&lt;/p>
&lt;h3 id="bitcredit-v053">Bitcredit v0.5.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core">Bitcredit&lt;/a>, een e-bill-applicatie met een Nostr-transportlaag en relay via &lt;a href="https://www.bit.cr/">bit.cr&lt;/a>, bracht &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.3">v0.5.3&lt;/a> uit. &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/pull/846">PR #846&lt;/a> voegt &lt;code>payment_actions&lt;/code>- en &lt;code>bill_state&lt;/code>-velden toe aan de API voor betaal- en acceptatiestatus, en &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/pull/849">PR #849&lt;/a> repareert de afhandeling van signing-adressen voor anonieme signers.&lt;/p>
&lt;h3 id="openchat-v010-alpha3">OpenChat v0.1.0-alpha.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, een chatapplicatie gebouwd op de .NET MLS- en C#-bibliotheken van het Marmot-protocol, bracht &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.3">v0.1.0-alpha.3&lt;/a> uit. De release voegt externe signer-support toe voor Amber- en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>-flows (&lt;a href="https://github.com/DavidGershony/openChat/commit/e568d979fe15eead19172f2eb6f8cf26ca845247">commit e568d97&lt;/a>), verplaatst MLS-state-persistentie naar de MLS-service om dataverlies in crashvensters te voorkomen (&lt;a href="https://github.com/DavidGershony/openChat/commit/4720bc8625136a0d5b0e23322bc0c50cd80577e8">commit 4720bc8&lt;/a>), en publiceert Windows-, Linux- en Android-builds via een nieuwe CI-pijplijn.&lt;/p>
&lt;h3 id="opensignal-v100">OpenSignal v1.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/turizspace/opensignal">OpenSignal&lt;/a>, een Kotlin Multiplatform trading copilot voor Nostr, bracht &lt;a href="https://github.com/turizspace/OpenSignal/releases/tag/v1.0.0">v1.0.0&lt;/a> uit. De release verpakt gedeelde KMP-modules voor domeinlogica, chart rendering, Nostr-authenticatie en publicatie, Blossom &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> upload-support en ONNX-gebaseerde AI-inference-hooks voor Desktop- en Android-shells. De gepubliceerde architectuur bevat ook een FastAPI AI-service voor analyse van chart screenshots, pijplijnen voor modeltraining en een risk engine die gestructureerde trade plans met sizing en waarschuwingen oplevert. Inloggen ondersteunt zowel ruwe &lt;code>nsec&lt;/code>-sleutels als externe signers, en de outputflow eindigt in Nostr-eventpublicatie in plaats van alleen lokale analyse.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="formstr">Formstr&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a>, het Google Forms-alternatief op Nostr, mergeerde &lt;a href="https://github.com/formstr-hq/nostr-forms/pull/434">PR #434&lt;/a> (&lt;a href="https://github.com/formstr-hq/nostr-forms/commit/e9c4fd5dadfa0b83f1e87d7596eaf35f9fdb7da8">commit e9c4fd5&lt;/a>), waarmee een signupflow werd toegevoegd die versleutelde private keys volgens &lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> gebruikt. Voor deze wijziging hadden gebruikers een &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> browserextensie of een rechtstreeks geplakte &lt;code>nsec&lt;/code> nodig om Formstr te gebruiken. De nieuwe flow genereert client-side een sleutelpaar, versleutelt de private key met een door de gebruiker gekozen wachtwoord via NIP-49&amp;rsquo;s scrypt + XChaCha20-Poly1305-schema, en slaat vervolgens de resulterende &lt;code>ncryptsec&lt;/code>-string op. Gebruikers kunnen later weer inloggen met hun wachtwoord zonder een signer-extensie te hoeven installeren. Key management blijft gedurende het hele proces client-side.&lt;/p>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de feature-rijke Android-client, mergeerde vier PR&amp;rsquo;s die het Namecoin-gebaseerde werk voor &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> uitbrachten dat &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">vorige week&lt;/a> nog open stond. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1734">PR #1734&lt;/a> voegt censuurbestendige NIP-05-verificatie via ElectrumX toe voor &lt;code>.bit&lt;/code>, &lt;code>d/&lt;/code> en &lt;code>id/&lt;/code> identifiers. Wanneer Amethyst een van deze suffixen in een NIP-05-veld detecteert, vraagt de client de transactiegeschiedenis van de naam op bij een ElectrumX-NMC-server, parseert daarna het &lt;code>NAME_UPDATE&lt;/code>-script uit de laatste output om de Nostr-pubkey te extraheren, en weigert namen die ouder zijn dan 36.000 blokken, het verloopvenster van Namecoin. ElectrumX-verbindingen lopen via SOCKS5 wanneer Tor is ingeschakeld, met dynamische serverkeuze tussen clearnet- en &lt;code>.onion&lt;/code>-endpoints. Een LRU-cache met een TTL van een uur voorkomt herhaalde blockchainqueries.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1771">PR #1771&lt;/a> repareert race conditions en resolver correctness in die flow. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1785">PR #1785&lt;/a> laat nieuwe gebruikers tijdens signup een followlijst importeren uit gewone NIP-05-identifiers of Namecoin-gebaseerde varianten. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1786">PR #1786&lt;/a> voegt instellingen toe voor aangepaste ElectrumX-servers, zodat gebruikers zelf kunnen kiezen welke server hun lookups afhandelt.&lt;/p>
&lt;h3 id="nostr-idb">nostr-idb&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/nostr-idb">nostr-idb&lt;/a>, een bibliotheek met helpermethoden voor het opslaan van Nostr-events in IndexedDB, mergeerde &lt;a href="https://github.com/hzrd149/nostr-idb/pull/6">PR #6&lt;/a> met support voor AND-tagfilters uit &lt;a href="https://nostrcompass.org/nl/topics/nip-91/">NIP-91&lt;/a>. De wijziging voegt intersection-semantiek toe aan client-side filtermatching, zodat IndexedDB-query&amp;rsquo;s alle vermelde tagwaarden kunnen vereisen in plaats van eender welke. &lt;a href="https://github.com/hzrd149/nostr-idb/pull/8">PR #8&lt;/a> werkt de bibliotheek bij naar de nieuwste NIP-DB-interface, en een vervolgwijziging in &lt;a href="https://github.com/hzrd149/nostr-idb/commit/b49b3d32c575ff8214dc3fb07675109c2a971972">commit b49b3d3&lt;/a> repareert een deadlock bij subscriben en verwijdert nostr-tools als productiedependency.&lt;/p>
&lt;h3 id="pensieve">Pensieve&lt;/h3>
&lt;p>&lt;a href="https://github.com/andotherstuff/pensieve">Pensieve&lt;/a>, een archive-first Nostr-indexer met ClickHouse-analytics, mergeerde &lt;a href="https://github.com/andotherstuff/pensieve/pull/8">PR #8&lt;/a> die cache-TTL&amp;rsquo;s per entry afdwingt en misses per sleutel samenvoegt om CPU-pieken in de API te verlagen. De duurste time-series-endpoints, zoals engagement stats, activity per uur en activity per kind, gebruiken nu server-side TTL&amp;rsquo;s van 10 minuten in plaats van gesynchroniseerde recompute-stormen uit te lokken.&lt;/p>
&lt;h3 id="blossom">Blossom&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a>, het gedecentraliseerde protocol en de serverstack voor mediahosting, mergeerde twee updates rond autorisatie voor BUD-11. &lt;a href="https://github.com/hzrd149/blossom/pull/91">PR #91&lt;/a> verplaatst optionele autorisatie naar een eigen BUD en verduidelijkt de rol van de tags &lt;code>x&lt;/code> en &lt;code>server&lt;/code>. &lt;a href="https://github.com/hzrd149/blossom/pull/93">PR #93&lt;/a> ruimt endpoint-specifiek auth-gedrag op en formaliseert de &lt;code>X-SHA-256&lt;/code>-header voor verificatie van uploads. Samen brengen deze twee PR&amp;rsquo;s de auth-logica onder in BUD-11 en halen ze ambiguiteit weg rond request hashing voor upload-, delete- en mediabeheerflows.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/1365">PR #1365&lt;/a>): Voegt intersection-semantiek toe voor tagfilters, zodat relays queries kunnen beantwoorden die alle opgegeven tagwaarden vereisen in plaats van er slechts een. Dit vermindert client-side nafiltering en bandbreedteverbruik bij tagzware queries.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring): Defensieve maatregelen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2240">PR #2240&lt;/a>): Na het &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">outbox-benchmarkwerk van vorige week&lt;/a>, voegt de specificatie nu waarschuwingen toe voor unhappy paths in relay-monitoringdata. Clients mogen kind &lt;code>30166&lt;/code> monitoring-events niet vereisen om te functioneren. Een monitor kan fout, verouderd of kwaadaardig zijn. Van clients wordt verwacht dat ze bronnen kruisen en niet grote delen van de relaygraaf van een gebruiker afsluiten op basis van een enkele feed.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> (External Identities in Profiles): opschoning van kind 10011-register&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2256">PR #2256&lt;/a>): Voegt de verwijzing naar kind &lt;code>10011&lt;/code> direct aan de specificatie toe, in lijn met de implementatie van Amethyst die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/">vorige week&lt;/a> is besproken.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-70/">NIP-70&lt;/a> (Protected Events): reposts weigeren die protected events insluiten&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2251">PR #2251&lt;/a>): Als een relay NIP-70 afdwingt op het oorspronkelijke event maar reposts met dezelfde content accepteert, heeft de tag &lt;code>-&lt;/code> in de praktijk geen effect. Deze PR voegt daarom de regel toe dat relays ook reposts van kind 6 en kind 16 van protected events moeten weigeren. &lt;a href="https://github.com/hoytech/strfry/pull/176">strfry PR #176&lt;/a> implementeert dit al.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-71/">NIP-71&lt;/a> (Video Events): meerdere audiotracks&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2255">PR #2255&lt;/a>): Voegt &lt;code>imeta&lt;/code>-tags voor audio toe voor alternatieve tracks, taalvarianten en audio-only streams. Een client kan dan hetzelfde videobestand behouden terwijl de audiotaal wisselt, of audio als aparte track serveren voor podcastachtige content.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document) en relay-attributen voor &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a>&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2257">PR #2257&lt;/a>): Voegt een gestructureerd veld &lt;code>attributes&lt;/code> toe aan relay-infodocumenten, zodat clients en discovery-tools machineleesbare metadata krijgen naast de huidige vrije beschrijving.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-49-private-key-encryption">NIP Deep Dive: NIP-49 (Private Key Encryption)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-49/">NIP-49&lt;/a> definieert hoe een client een private key met een wachtwoord versleutelt en het resultaat codeert als een bech32-string &lt;code>ncryptsec&lt;/code>. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-11-newsletter/#formstr">Formstr&lt;/a> gebruikt NIP-49 in zijn nieuwe signupflow.&lt;/p>
&lt;p>Het formaat is niet gekoppeld aan een eigen event kind. Een client begint met de ruwe 32-byte secp256k1 private key, leidt met scrypt een symmetrische sleutel af uit het wachtwoord, versleutelt de key met XChaCha20-Poly1305 en verpakt het resultaat daarna in een bech32-string &lt;code>ncryptsec&lt;/code>. Een flag van een byte legt vast of van de key bekend is dat die voor encryptie ooit onveilig is behandeld.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;4d47f4f0a6f6edbc1bbd7f4e2a45ec68f27cba91d6c6ab5cf28d8d87b0f3d57e&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1f8b4c3e7b0f9451d4f9b8a7c6e5d4c3b2a1908f7e6d5c4b3a29181716151413&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1741699200&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30078&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;encrypted-key-backup&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;format&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;ncryptsec&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;encryption&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip49&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;ncryptsec1qgg9947rlpvqu76pj5ecreduf9jxhselq2nae2kghhvd5g7dgjtcxfqtd67p9m0w57lspw8gsq6yphnm8623nsl8xn9j4jdzz84zm3frztj3z7s35vpzmqf6ksu8r89qk5z2zxfmu5gv8th8wclt0h4p&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;6a8f6e4b2d1901735f0ad4b6e8c1f3a579d0e2b4c6f8a1d3e5f7091b2c3d4e5f11223344556677889900aabbccddeeff00112233445566778899aabbccddeeff&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Het JSON-event hierboven is een voorbeeld op applicatieniveau, geen vereiste van NIP-49. De NIP standaardiseert het formaat van de versleutelde key. Een client kan de &lt;code>ncryptsec&lt;/code> lokaal opslaan, synchroniseren via app-specifieke opslag of exporteren als backupstring. Wachtwoorden worden eerst genormaliseerd naar Unicode NFKC, zodat hetzelfde wachtwoord op verschillende clients en platforms consequent kan ontsleutelen.&lt;/p>
&lt;p>De key-security-flag van een byte heeft drie gedefinieerde waarden: &lt;code>0x00&lt;/code> betekent dat de geschiedenis van de key onbekend is, &lt;code>0x01&lt;/code> betekent dat de key aantoonbaar onveilig is behandeld, bijvoorbeeld als plaintext geplakt in een webformulier voordat die werd versleuteld, en &lt;code>0x02&lt;/code> betekent dat de key in een veilige context is gegenereerd en versleuteld en nooit is blootgesteld. Clients kunnen dit gebruiken om waarschuwingen te tonen wanneer een key met een bekende onveilige geschiedenis wordt geimporteerd.&lt;/p>
&lt;p>NIP-49 beschermt keys beter dan een gewone export als &lt;code>nsec&lt;/code>, maar de versleuteling is niet sterker dan het wachtwoord en de gekozen scrypt-cost. Hogere &lt;code>LOG_N&lt;/code>-waarden maken offline guessing moeilijker maar vertragen ook legitieme decrypties. De specificatie waarschuwt tegen het publiceren van versleutelde keys naar publieke relays, omdat aanvallers baat hebben bij het verzamelen van ciphertext voor offline cracking. Ter vergelijking: remote signing via &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> voorkomt blootstelling van keys helemaal, en Android-signing via &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> houdt keys binnen een aparte signer-app. NIP-49 vult een andere rol: een draagbare versleutelde backup voor gebruikers die hun eigen sleutels beheren.&lt;/p>
&lt;p>Implementaties zijn onder meer &lt;a href="https://github.com/formstr-hq/nostr-forms/pull/434">Formstr PR #434&lt;/a> voor signup, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> voor backup en restore van &lt;code>ncryptsec&lt;/code>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-11-newsletter/#divine-v106-met-e2e-testinfrastructuur-en-nip-49-import">diVine v1.0.6&lt;/a> voor accountimport, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-11-newsletter/#keep-v060">Keep v0.6.0&lt;/a> voor export van FROST-shares, en key-managementtools zoals &lt;a href="https://nsec.app">nsec.app&lt;/a> en &lt;a href="https://github.com/getAlby/hub">Alby&lt;/a>.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-70-protected-events">NIP Deep Dive: NIP-70 (Protected Events)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-70/">NIP-70&lt;/a> definieert protected events. Wanneer een event de tag &lt;code>[&amp;quot;-&amp;quot;]&lt;/code> draagt, moet een relay het weigeren tenzij die relay &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a>-authenticatie vereist en de geauthenticeerde pubkey overeenkomt met de auteur van het event.&lt;/p>
&lt;p>De NIP-42-authflow werkt als volgt: de relay stuurt een &lt;code>AUTH&lt;/code>-challenge met een willekeurige string, en de client antwoordt met een ondertekend event van kind &lt;code>22242&lt;/code> waarvan de tags de relay-URL en de challenge bevatten. De relay controleert de handtekening en kijkt of de pubkey in het auth-event overeenkomt met de pubkey in het protected event dat wordt gepubliceerd. Als de pubkeys niet overeenkomen, weigert de relay het event met het message-prefix &lt;code>restricted&lt;/code>.&lt;/p>
&lt;p>De eventinhoud kan nog steeds openbaar zijn. De tag &lt;code>-&lt;/code> bepaalt alleen wie het event mag publiceren naar een relay die de tag respecteert. Dit dekt semigesloten feeds van &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> (Simple Groups), relayruimtes alleen voor leden en andere situaties waarin de auteur verspreiding via de relaygraaf wil beperken. NIP-70 is een conventie met een enkele tag, geen nieuw event kind, dus elk bestaand event kind kan de tag &lt;code>-&lt;/code> dragen.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;cb8feca582979d91fe90455867b34dbf4d65e4b86e86b3c68c368ca9f9eef6f2&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1707409439&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;-&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;hello members of the secret group&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;fa163f5cfb75d77d9b6269011872ee22b34fb48d23251e9879bb1e4ccbdd8aaaf4b6dc5f5084a65ef42c52fbcde8f3178bac3ba207de827ec513a6aa39fa684c&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Zelfs als een relay publicatie door derden van het oorspronkelijke event blokkeert, kan iemand de inhoud nog opnieuw publiceren in een repost. &lt;a href="https://github.com/nostr-protocol/nips/pull/2251">PR #2251&lt;/a> pakt dat aan door te eisen dat relays ook reposts van protected events van kind 6 en kind 16 weigeren. &lt;a href="https://github.com/hoytech/strfry/pull/156">strfry PR #156&lt;/a> voegt NIP-42-auth voor protected events toe, en &lt;a href="https://github.com/hoytech/strfry/pull/176">strfry PR #176&lt;/a> blokkeert reposts die protected content insluiten.&lt;/p>
&lt;p>NIP-70 stuurt relaygedrag aan. Een ontvanger kan de inhoud nog steeds elders kopieren, en de specificatie zegt dat ook expliciet. De tag &lt;code>-&lt;/code> geeft relays een machineleesbaar signaal om herpublicatie te weigeren. Ter vergelijking: &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) vraagt relays data achteraf te verwijderen, terwijl NIP-70 ongeautoriseerde publicatie al bij ingest voorkomt. De twee vullen elkaar aan: een auteur kan events als protected markeren om verspreiding te beperken en later verwijdering vragen als die de content ook van relays wil laten verdwijnen die ze toch hebben geaccepteerd.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets of heb je nieuws om te delen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #12</title><link>https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> De &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> brengt zijn &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#marmot-development-kit-brengt-eerste-publieke-release">eerste publieke release&lt;/a> uit met versleutelde media en meertalige bindings. &lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> publiceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#outbox-model-onder-de-loep">outbox-modelbenchmarks&lt;/a> over 14 relay-selectie-algoritmen. &lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> gaat van &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#wisp-van-alpha-naar-beta">eerste alpha naar beta&lt;/a> in acht dagen met Tor en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) ondertekening. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#nip-updates">NIP-91&lt;/a> (AND-filters) wordt gemerged. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#vector-v031">Vector v0.3.1&lt;/a> levert negentropy-synchronisatie met 15x prestatieverbetering. Deze editie bevat ook het retrospectief Vijf Jaar Nostr-Februaries, dat het protocol volgt van een specificatieherschrijving met drie relays via de Damus App Store-explosie tot mesh-netwerken en AI-agentvoorstellen.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> De &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> brengt zijn &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#marmot-development-kit-brengt-eerste-publieke-release">eerste publieke release&lt;/a> uit met versleutelde media en meertalige bindings. &lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> publiceert &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#outbox-model-onder-de-loep">outbox-modelbenchmarks&lt;/a> over 14 relay-selectie-algoritmen. &lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> gaat van &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#wisp-van-alpha-naar-beta">eerste alpha naar beta&lt;/a> in acht dagen met Tor en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) ondertekening. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#nip-updates">NIP-91&lt;/a> (AND-filters) wordt gemerged. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#vector-v031">Vector v0.3.1&lt;/a> levert negentropy-synchronisatie met 15x prestatieverbetering. Deze editie bevat ook het retrospectief Vijf Jaar Nostr-Februaries, dat het protocol volgt van een specificatieherschrijving met drie relays via de Damus App Store-explosie tot mesh-netwerken en AI-agentvoorstellen.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="outbox-model-onder-de-loep">Outbox-Model Onder de Loep&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> publiceerde een reeks outbox-modelbenchmarks die testen hoe goed verschillende relay-selectie-algoritmen events ophalen uit het gedecentraliseerde relay-netwerk. Het project mergede 16 PR&amp;rsquo;s en 76 commits in tien dagen, wat mogelijk de meest grondige empirische analyse van &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) implementatiestrategieën tot nu toe oplevert.&lt;/p>
&lt;p>De benchmarks testen 14 relay-selectie-algoritmen tegen real-world followlijsten over 15 clients en bibliotheken in vijf talen. Een basisaanpak van alleen populaire relays bevragen haalt ongeveer 26% van de events op. Greedy set-cover met Thompson Sampling bereikt 80-90% recall. Het toevoegen van een latentiebewuste variant met hyperbolische verdiscontering en EWMA relay-latentieregistratie verhoogde de volledigheid van 62-80% naar 72-96% bij het 2-secondenpunt over zes testprofielen.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (Relay Monitoring) dead-relayfiltering bleek consequent. Het voorfilteren van relaykandidaten tegen &lt;a href="https://nostr.watch">nostr.watch&lt;/a> liveness-data verwijderde 40-64% van de dode relays en verdubbelde het slagingspercentage van relays van 30% naar 75-85%. Feedlaadtijden daalden met 39% (van 40 seconden naar 24 seconden over 10 profielen). Een EOSE-racesimulatie toonde aan dat wachten op EOSE plus een graceperiode van 200ms de volledigheid verbeterde ten opzichte van stoppen bij de eerste relay die klaar is.&lt;/p>
&lt;p>Voor clients die hun relay-routing niet volledig kunnen herschrijven, voegt een &amp;ldquo;hybride outbox-verrijking&amp;rdquo; per-auteur outbox-queries toe bovenop bestaande hardcoded app-relays. Deze hybride aanpak behaalde 80% eenjaars-eventrecall versus de 26% baseline, wat een migratiepad biedt voor clients met legacy relay-architecturen.&lt;/p>
&lt;h3 id="contextvm-opent-mcp-nip-en-brengt-efemere-gift-wraps-uit">ContextVM Opent MCP NIP en Brengt Efemere Gift Wraps Uit&lt;/h3>
&lt;p>&lt;a href="https://contextvm.org">ContextVM&lt;/a>, het protocol dat Nostr verbindt met het &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>, opende deze week twee voorstellen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>. &lt;a href="https://github.com/nostr-protocol/nips/pull/2246">PR #2246&lt;/a> formaliseert CVM als een conventie voor het transporteren van MCP JSON-RPC-berichten over Nostr met behulp van efemere kind 25910 events. &lt;a href="https://github.com/nostr-protocol/nips/pull/2245">PR #2245&lt;/a> breidt &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) uit met een efemere kind (21059) die &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a> (Basic Protocol Flow) efemere semantiek volgt, zodat relays gewrapte berichten na aflevering kunnen verwijderen.&lt;/p>
&lt;p>De efemere gift wrap-conventie werd uitgebracht als &lt;a href="https://docs.contextvm.org/spec/ceps/cep-19/">CEP-19&lt;/a> in de ContextVM SDK v0.6.x releasefamilie. De &lt;a href="https://github.com/ContextVM/sdk">SDK-implementatie&lt;/a> voegt een &lt;code>GiftWrapMode&lt;/code> enum toe met drie instellingen: OPTIONAL (accepteer beide kinds en detecteer automatisch peer-capability), EPHEMERAL (alleen kind 21059) en PERSISTENT (alleen kind 1059). Voor AI-toolaanroepen voorkomt de efemere modus het opslaan van tussenliggend verzoek-responsverkeer op relays, waardoor zowel opslagkosten als privacyblootstelling afnemen.&lt;/p>
&lt;p>Nieuwe publieke MCP-servers verschenen op het netwerk van onafhankelijke operators, waaronder een Wolfram Alpha queryserver. Het ContextVM-team publiceerde CEP-15 (gemeenschappelijk toolsschema) en CEP-17 (publicatie van serverrelaylijsten) naast de v0.6.x releasecyclus.&lt;/p>
&lt;h3 id="marmot-development-kit-brengt-eerste-publieke-release">Marmot Development Kit Brengt Eerste Publieke Release&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> (Marmot Development Kit), de Rust-bibliotheek die &lt;a href="https://nostrcompass.org/nl/topics/mls/">Marmot&lt;/a>-versleuteld berichtenverkeer aandrijft voor &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> en &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, bracht &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.6.0">v0.6.0&lt;/a> uit als eerste publieke release. Meer dan 200 PR&amp;rsquo;s werden gemerged in deze versie, met zes nieuwe bijdragers.&lt;/p>
&lt;p>De release omvat versleutelde mediaondersteuning (MIP-04) met HKDF seed-derivatie (MIP-01 v2), deterministische commit-raceresolutie (MIP-03), versleutelde lokale opslag, adminautorisatievalidatie voor Marmot-commits en -proposals, en GREASE-ondersteuning voor protocoluitbreidbaarheid. Bindings worden geleverd voor Kotlin, Python, Ruby en Windows naast Android cross-compilatie. De bibliotheek upgradet naar OpenMLS 0.8.0 met beveiligingsadviesfixes en een &lt;code>Secret&amp;lt;T&amp;gt;&lt;/code>-type dat gevoelige waarden in het geheugen nulstelt.&lt;/p>
&lt;p>Een begeleidende protocolwijziging (&lt;a href="https://github.com/marmot-protocol/marmot/pull/48">MIP-03&lt;/a>) verving &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) versleuteling door ChaCha20-Poly1305 voor kind 445-berichten. NIP-44 vereiste UTF-8 stringinvoer volgens de specificatie, waardoor het onmogelijk was om ruwe Marmot-berichtbytes door standaard TypeScript Nostr-bibliotheken te sturen. De vervanging leidt sleutels direct af van het Marmot-exportergeheim. Deze brekende wijziging vereiste gecoördineerde updates over de &lt;a href="https://github.com/marmot-protocol/marmot/pull/48">kernspecificatie&lt;/a>, &lt;a href="https://github.com/marmot-protocol/mdk/pull/208">MDK&lt;/a> en &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/54">TypeScript SDK&lt;/a>.&lt;/p>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a>, de TypeScript-implementatie onderhouden door hzrd149, mergede vier PR&amp;rsquo;s met brekende API-wijzigingen. Een &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/52">omnibusupdate&lt;/a> voegde een key package manager toe voor de create/publish/rotate-levenscyclus, een &lt;code>sendChatMessage&lt;/code>-gemaksmethode, uitnodigingsvoorbeeld zonder deelname (&lt;code>readInviteGroupInfo&lt;/code>), zelfupdate voor forward-secrecyrotaties en gestructureerde debuglogging. Groepsontsleutelings-API&amp;rsquo;s werden hernoemd van &lt;code>readGroupMessage&lt;/code> naar &lt;code>decryptGroupMessage&lt;/code> met rijkere resultaatvarianten (processed/skipped/rejected/unreadable). gzuuus droeg bij aan voorbeeldopschoning met NIP-65 relay-ondersteuning en last-resort key package-afhandeling per MIP-00.&lt;/p>
&lt;p>De &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">White Noise CLI&lt;/a> (&lt;code>wn&lt;/code>), de Rust-backend die zowel de mobiele app als de nieuwe TUI aandrijft, mergede 16 PR&amp;rsquo;s in tien dagen. Signer-levenscyclusafhandeling kreeg annuleringsveiligheid door een RAII scope guard (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/538">PR #538&lt;/a>), waarmee een klasse bugs werd opgelost waarbij afgebroken operaties signerstatus konden lekken. Login blokkeert nu wanneer vereiste relaylijsten (kind 10002/10050/10051) ontbreken (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/515">PR #515&lt;/a>), en giftwrap-abonnementen vallen terug op &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relays wanneer inboxlijsten afwezig zijn (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/518">PR #518&lt;/a>). Een debugmodus (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/528">PR #528&lt;/a>) geeft databasequeries en MLS ratchet-tree-inspectie weer als JSON-uitvoer. Andere fixes betroffen abonnementsherstel na herregistratie van de signer, catch-uptiming van welkomstberichten, relayfiltervalidatie en limieten voor de zoekradius van gebruikers.&lt;/p>
&lt;p>Marmot kende deze week een significante uitbreiding buiten de kern-Ruststack. &lt;a href="https://github.com/marmot-protocol/wn-tui">White Noise TUI&lt;/a>, een terminalinterface voor de White Noise-berichtenstack, werd gelanceerd op 3 maart. Het wrapt de &lt;code>wn&lt;/code> CLI als een subproces en rendert de JSON-uitvoer via een Elm-geïnspireerde unidirectionele architectuur, met multi-conversatienavigatie met ongelezen-indicatoren, groepscreatie en ledenzoek, realtime berichtstreaming en emojireacties vanuit de terminal.&lt;/p>
&lt;p>&lt;a href="https://github.com/DavidGershony">DavidGershony&lt;/a> publiceerde een complete C# Marmot-stack die de gelaagde architectuur van de Rust-toolchain spiegelt. &lt;a href="https://github.com/DavidGershony/dotnet-mls">dotnet-mls&lt;/a> implementeert MLS RFC 9420 cryptografische primitieven in C#. &lt;a href="https://github.com/DavidGershony/marmot-cs">marmot-cs&lt;/a> bouwt hierop voort met Nostr relay-transport, als C#-equivalent van MDK. &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, een cross-platform desktopapp gebouwd met .NET 9 en Avalonia UI, combineert beide tot een werkende chatclient met NIP-44 DM&amp;rsquo;s, Marmot-groepsversleuteling, &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) remote ondertekening en multi-relaystatusindicatoren.&lt;/p>
&lt;p>&lt;a href="https://github.com/zerosats/mdk-pwa-reference">MDK PWA Reference&lt;/a> biedt een Progressive Web App-sjabloon voor het bouwen van Marmot-versleutelde applicaties, met experimentele ondersteuning voor AI-agentdeelname in groepschats en Bitcoin-betalingen via Arkade wallet-infrastructuur.&lt;/p>
&lt;h3 id="wisp-van-alpha-naar-beta">Wisp Van Alpha Naar Beta&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> is een nieuwe Android Nostr-client die ging van &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.1.0-alpha">eerste alpha&lt;/a> op 24 februari naar &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.3.4-beta">v0.3.4-beta&lt;/a> op 3 maart, met 19 releases, 115 gemerge PR&amp;rsquo;s en 276 commits in acht dagen.&lt;/p>
&lt;p>Het featuretraject bestrijkt terrein waar de meeste clients maanden over doen. v0.1.0 verscheen met outbox/inbox relay-modelondersteuning en onboardingflows. Tegen v0.1.3 had de client &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> intent-gebaseerde ondertekening voor Amber, een ingebouwde Tor SOCKS5-proxy voor &lt;code>.onion&lt;/code> relay-connectiviteit en &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect). v0.2.0 promoveerde naar beta met mutelistfiltering en aangepaste emoji-ondersteuning, terwijl v0.2.4 content warning-overlays toevoegde. De v0.3.x-serie introduceerde &lt;a href="https://nostrcompass.org/nl/topics/nip-13/">NIP-13&lt;/a> proof-of-work voor notes, achtergrond-PoW-mining met persistente instellingen, &lt;code>.onion&lt;/code> relay-opslag en mute-threadnotificaties.&lt;/p>
&lt;p>On-device vertaling via Google ML Kit draait lokaal zonder netwerktoegang na de initiële modeldownload. Een interactieve sociale-graafvisualisatie gebruikt een velocity Verlet-fysicasimulatie op ongeveer 30fps met pinch-to-zoom-navigatie en profielinspectie.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="vector-v031">Vector v0.3.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, de Marmot-versleutelde berichtenapp, bracht &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.1">v0.3.1&lt;/a> uit met verbeteringen in groepsbeheer en prestaties. Multi-admingroepen, bulkuitnodigingen, uitnodiging-per-npub en groepsavatars breiden de samenwerkingsfuncties uit. Android-achtergrondnotificaties ondersteunen nu inline Reply- en Mark Read-acties.&lt;/p>
&lt;p>Op &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">Negentropy&lt;/a> gebaseerde deterministische synchronisatie haalt de volledige gespreksgeschiedenis op, inclusief berichten die tijdens offlineperiodes zijn gemist. Voice-to-text is herbouwd met GPU-versnelling op Android. Bestandsbijlageafhandeling is herzien met downloadvoortgang, herhaalpogingen, directory zip-and-send en live voortgangsindicatoren. De prestaties verbeterden meer dan 15x over opstarttijd, beeldverwerking, audioweergave en algemene UI-responsiviteit. De installatiegrootte van de app daalde met meer dan een derde, en de frontend werd ruwweg gehalveerd. 32-bit ARM Android-ondersteuning werd toegevoegd.&lt;/p>
&lt;h3 id="alby-hub-v1215">Alby Hub v1.21.5&lt;/h3>
&lt;p>&lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a>, de self-custodial Lightning-node met Nostr Wallet Connect (&lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a>) ondersteuning, bracht &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.5">v1.21.5&lt;/a> uit. Een tweede relay werd toegevoegd aan de standaard NWC-configuratie, wat de betrouwbaarheid tijdens relay-herstarts verbetert. Een fix voor ongeldige zapdata in de transactielijst lost een weergaveprobleem op met misvormde &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a> (Lightning Zaps) events. Nieuwe app store-vermeldingen omvatten Alby CLI en LNVPS.&lt;/p>
&lt;h3 id="nospeak-v012x">nospeak v0.12.x&lt;/h3>
&lt;p>&lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a>, de tekstgebaseerde Nostr-berichtenclient, bracht drie releases uit in deze periode. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.0">v0.12.0&lt;/a> voegde een PIN app-vergrendeling toe met 4-cijferig toetsenbord en meer dan 15 nieuwe taalvertalingen waaronder Bengaals, Thais, Vietnamees, Hindi, Arabisch, Hebreeuws, Urdu, Turks, Japans, Chinees, Koreaans, Nederlands, Pools, Russisch en Perzisch met RTL-ondersteuning. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.1">v0.12.1&lt;/a> introduceerde een Cypher-thema met pure zwarte achtergronden en cyaan-accenten, plus Android-videopostergeneration. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.2">v0.12.2&lt;/a> voegde chatexport en View Profile toe in contactmenu&amp;rsquo;s.&lt;/p>
&lt;h3 id="citrine-v200-pre2">Citrine v2.0.0-pre2&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a>, de Android persoonlijke relay van greenart7c3, bracht &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v2.0.0-pre2">v2.0.0-pre2&lt;/a> uit met relay-prestatieverbeteringen door nieuwe database-indexen en geherstructureerde Kotlin-coroutines. Elke gehoste webapp start nu op een eigen poort. Full-text search en een herontworpen events-scherm met eventuitklapping completeren de wijzigingen.&lt;/p>
&lt;h3 id="noornote-v05x">NoorNote v0.5.x&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a>, een Nostr-gebaseerde notitieapplicatie, bracht 8 releases uit van &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.5.0">v0.5.0&lt;/a> tot &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.5.7">v0.5.7&lt;/a>. De v0.5.0-lancering op Android voegde &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> Amber signer-ondersteuning en &lt;a href="https://nostrcompass.org/nl/topics/nip-71/">NIP-71&lt;/a> (Video Events) notepublicatie toe. Een herontworpen welkomstpagina in v0.5.1 bevatte publieke tijdlijnvoorbeelden en verkleinde de APK tot 15 MB. De Relay Browser in v0.5.2 laat gebruikers publieke relay-tijdlijnen bladeren via deelbare URL&amp;rsquo;s, naast mediadownload en &lt;a href="https://nostrcompass.org/nl/topics/nip-30/">NIP-30&lt;/a> aangepaste emojireacties. Opvolgende releases tot v0.5.7 losten synchronisatie-racecondities op in het collaboratieve &amp;ldquo;tribes&amp;rdquo;-notitiedeelsysteem.&lt;/p>
&lt;h3 id="noscall-v051">NosCall v0.5.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/sanah9/noscall">NosCall&lt;/a>, de Nostr spraak- en videobel-app, bracht &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.5.1-release">v0.5.1&lt;/a> uit met spraakberichtondersteuning, een geoptimaliseerde desktopervaring met groepstoegang, contactfavorieten op desktop, contactnotities en filtering, data-export en opschoningsmogelijkheden, en ondersteuning voor systeemlettergrootte-toegankelijkheid.&lt;/p>
&lt;h3 id="shosho-v0130">Shosho v0.13.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, de Nostr livestreaming-app, bracht &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.13.0">v0.13.0&lt;/a> uit met MP4 replay-downloads vanuit streamkaartmenu&amp;rsquo;s en &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> (DNS-Based Verification) voor profielen. De RTMP-publisher migreerde naar Expo Modules API. Streamingprestaties op verbindingen met lagere bandbreedte verbeterden, en crashes op oudere apparaten en iOS-streaming naar &lt;a href="https://zap.stream">Zap.Stream&lt;/a> zijn opgelost.&lt;/p>
&lt;h3 id="nostr-java-v200">nostr-java v2.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/tcheeric/nostr-java">nostr-java&lt;/a> bracht &lt;a href="https://github.com/tcheeric/nostr-java/releases/tag/v2.0.0">v2.0.0&lt;/a> uit met configureerbare WebSocket-buffergroottes, waardoor applicaties grotere Nostr-events kunnen verwerken zonder afkapping. De major version bump weerspiegelt brekende wijzigingen in de verbindings-API.&lt;/p>
&lt;h3 id="prism-110">Prism 1.1.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> bracht &lt;a href="https://github.com/hardran3/Prism/releases/tag/1.1.0">1.1.0&lt;/a> uit met ondersteuning voor long-form content (kind 30023 artikelen) en een Markdown-editor voor het direct schrijven in de app, gevolgd door een &lt;a href="https://github.com/hardran3/Prism/releases/tag/1.1.1">1.1.1&lt;/a> bugfix-release.&lt;/p>
&lt;h3 id="angor-v026">Angor v0.2.6&lt;/h3>
&lt;p>&lt;a href="https://github.com/block-core/angor">Angor&lt;/a>, het Bitcoin-crowdfundingplatform, bracht &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.6">v0.2.6&lt;/a> uit met Boltz-integratie en een 1-klik investeerflow. Zowel invest als fund projecttypes werken end-to-end op testnet. Het team merkt op dat de UI ongeveer 70% compleet is.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1365">NIP-91: AND Operator voor Filters&lt;/a>&lt;/strong>: Voegt AND-filtersemantiek toe voor tag-arrays in relay-abonnementen. Momenteel matcht het opgeven van meerdere waarden in een tagfilter (bijv. meerdere &lt;code>p&lt;/code>-tags) events die een ervan bevatten. NIP-91 laat clients vereisen dat events alle opgegeven tagwaarden tegelijkertijd matchen, waardoor bandbreedte wordt verminderd en snellere indexoperaties mogelijk worden. Meerdere relay-implementaties bestaan al, waaronder nostr-rs-relay, satellite-node, worker-relay en applesauce. Voorheen genummerd als NIP-119.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2247">NIP-30: Emoji-Setadres in Tags&lt;/a>&lt;/strong>: Aangepaste emoji-tags in &lt;a href="https://nostrcompass.org/nl/topics/nip-30/">NIP-30&lt;/a> kunnen nu een optioneel emoji-setadres bevatten. Het klikken op een emoji in een client kan de set openen waartoe deze behoort om als bladwijzer op te slaan of te bladeren. Afkomstig van de &lt;a href="https://github.com/purrgrammer/chachi">Chachi&lt;/a>-client.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2111">NIP-29: Toevoeging van unallowpubkey en unbanpubkey&lt;/a>&lt;/strong>: Twee nieuwe admincommando&amp;rsquo;s voor &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groepschat. &lt;code>unallowpubkey&lt;/code> verwijdert een pubkey van de toegestane lijst zonder deze te bannen. &lt;code>unbanpubkey&lt;/code> heft een ban op zonder de pubkey opnieuw als lid toe te voegen. Voorheen was de enige manier om iemand van de toegestane lijst te verwijderen ook een ban, en het opheffen van een ban vereiste het opnieuw toevoegen van de gebruiker als lid.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2244">NIP-A7: Spells&lt;/a>&lt;/strong> (geopend 27 feb): Voorgesteld door purrgrammer, spells zijn draagbare opgeslagen Nostr-queries gepubliceerd als kind 777-events. Een spell codeert een REQ- of COUNT-filter in gestructureerde tags (&lt;code>k&lt;/code> voor kinds, &lt;code>authors&lt;/code> voor pubkeys, &lt;code>tag&lt;/code> voor willekeurige tagfilters) met runtimevariabelen: &lt;code>$me&lt;/code> wordt omgezet naar de pubkey van de ingelogde gebruiker, &lt;code>$contacts&lt;/code> breidt uit naar de kind 3 followlijst van de gebruiker. Relatieve tijdstempels (&lt;code>7d&lt;/code>, &lt;code>2w&lt;/code>, &lt;code>1mo&lt;/code>) laten spells rollende tijdvensters definiëren zonder hardcoded datums. Al geïmplementeerd in &lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a> en &lt;a href="https://github.com/purrgrammer/grimoire">Grimoire&lt;/a>, stellen spells gebruikers in staat om gecureerde feeds te creëren, delen en abonneren die meereizen over clients.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2245">NIP-59: Efemere Gift Wrap (kind 21059)&lt;/a>&lt;/strong> (geopend 27 feb): Voegt een efemere variant toe van &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wraps. Kind 21059 volgt NIP-01 efemere semantiek, zodat relays events na aflevering verwijderen. Voorgesteld door ContextVM voor MCP-transport waar berichtpersistentie niet nodig is.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2246">ContextVM: MCP JSON-RPC over Nostr&lt;/a>&lt;/strong> (geopend 27 feb): Specificeert hoe Model Context Protocol-berichten over Nostr worden getransporteerd met behulp van efemere kind 25910 events met &lt;code>p&lt;/code>- en &lt;code>e&lt;/code>-tags voor adressering en correlatie. Bewust minimaal, de protocoldetails worden doorverwezen naar de &lt;a href="https://docs.contextvm.org">ContextVM-spec&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2238">NIP-29: Audio/Video Live Spaces&lt;/a>&lt;/strong> (geopend 25 feb, draft): Een draft van fiatjaf dat &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groepen uitbreidt met live audio en video. Het voorstel voegt optionele &lt;code>livekit&lt;/code>- en &lt;code>no-text&lt;/code>-tags toe aan groepsmetadata-events. Wanneer een gebruiker wil deelnemen aan een spraakruimte, vraagt de client een JWT aan bij de relay op &lt;code>/.well-known/nip29/livekit/{groupId}&lt;/code>. De relay controleert groepslidmaatschap en geeft een token uit met de hex pubkey van de gebruiker als &lt;code>sub&lt;/code>-claim, die wordt doorgegeven aan &lt;a href="https://livekit.io/">LiveKit&lt;/a> voor mediatransport. Spraakruimtetoegang erft het bestaande machtigingsmodel van de groep, zodat relay-side lidmaatschapsregels bepalen wie kan spreken. Wordt getest in Pyramid en Chachi.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2235">Collaboratief Eventeigenaarschap&lt;/a>&lt;/strong> (geopend 24 feb): pablof7z stelt een pointer event (kind 39382) voor dat een collaboratieve ruimte declareert door co-eigenaar pubkeys in &lt;code>p&lt;/code>-tags en een doeleventkind in een &lt;code>k&lt;/code>-tag te vermelden. Elke vermelde eigenaar kan events van dat kind met dezelfde &lt;code>d&lt;/code>-tag publiceren, en clients bepalen de huidige status door alle eigenaren te bevragen en het meest recente event te nemen. Co-auteurschapattributie wordt alleen weergegeven wanneer een verifieerbare &lt;code>a&lt;/code>-tag terugverwijst naar de pointer en de auteur in de &lt;code>p&lt;/code>-tags voorkomt, wat gespoofte claims voorkomt. Dit maakt gedeelde wikipagina&amp;rsquo;s en co-auteur-bronnen mogelijk zonder controle aan een enkel sleutelpaar toe te wijzen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2234">NIP-09: Cascadeverwijdering van Reposts&lt;/a>&lt;/strong> (geopend 24 feb): Wanneer een oorspronkelijke auteur een note verwijdert, moeten relays ook eventuele kind 6 of kind 16 reposts die ernaar verwijzen verwijderen. Gemotiveerd door privacyzorgen: reposts kunnen per ongeluk gelekte informatie bewaren nadat de auteur de bron heeft verwijderd. De wijziging is alleen relay-side en vereist geen clientaanpassingen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2233">NIP-07: peekPublicKey&lt;/a>&lt;/strong> (geopend 23 feb): Voegt een &lt;code>peekPublicKey()&lt;/code>-methode toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> browserextensies. Anders dan &lt;code>getPublicKey()&lt;/code> retourneert deze de huidige pubkey zonder om gebruikersbevestiging te vragen, waardoor stille auto-login mogelijk wordt wanneer de gebruiker auto-login heeft ingeschakeld.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2248">NIP-BB: Book&lt;/a>&lt;/strong> (geopend 28 feb, draft): Definieert vier adresseerbare event kinds (30300-30303) voor gestructureerde boekpublicatie op Nostr. Een Cover-event bevat rootmetadata inclusief titel, omslagafbeelding, licentie via &lt;a href="https://nostrcompass.org/nl/topics/nip-32/">NIP-32&lt;/a> (Labeling) labels en taalcode. Een Index-event koppelt elk hoofdstuk aan zijn positie met base62 fractionele indexering, waardoor auteurs nieuwe hoofdstukken tussen bestaande kunnen invoegen zonder hernummering. Chapter-events fungeren als structurele headers met optionele afbeeldingen, terwijl Episode-events de daadwerkelijke tekst bevatten, begrensd op 30.000 tekens, met gepositioneerde afbeeldingstags. Recensies gebruiken Zaps op Cover-events met de Zapbeschrijving als recensietekst.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2242">NIP-54: Overstap van Asciidoc naar Djot&lt;/a>&lt;/strong> (geopend 26 feb): Na de &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-31-newsletter/">d-tag internationalisatiefix&lt;/a> in december, stelt deze PR voor om het &lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a> wiki Asciidoc-opmaakformaat te vervangen door &lt;a href="https://djot.net/">Djot&lt;/a>, met toevoeging van een motivatiesectie en wikilink-voorbeelden voor niet-Latijnse schriften.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2240">NIP-66: Defensieve Maatregelen&lt;/a>&lt;/strong> (geopend 26 feb): Gebaseerd op lessen uit de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-03-04-newsletter/#outbox-model-onder-de-loep">nostrability/outbox&lt;/a>-benchmarks, voegt expliciete aanwijzingen toe voor &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> randgevallen. Een begeleidende &lt;a href="https://github.com/nostr-protocol/nips/pull/2241">PR #2241&lt;/a> definieert outputtags voor SSL, geolocatie, netwerk en connectiviteitscontroles.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-C1: Cryptografische Identiteitsbewijzen&lt;/strong> (wiki-vermelding, kind 30817): Stelt kind 30509-events voor die APK-ondertekeningscertificaten cryptografisch koppelen aan Nostr-profielen. Het bewijs werkt door een canoniek bericht met de Nostr pubkey te ondertekenen met de privésleutel van het certificaat (met ondersteuning voor ECDSA, RSA PKCS1v15, Ed25519 en andere standaardalgoritmen), en vervolgens de handtekening te publiceren in een kind 30509-event dat is ondertekend met de Nostr-sleutel. Verifieerders kunnen bevestigen dat de persoon die het Android-ondertekeningscertificaat van een app beheert ook de Nostr pubkey beheert die beweert deze te publiceren. Bewijzen verlopen standaard na een jaar en kunnen expliciet worden ingetrokken. Geïmplementeerd in de &lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a>-toolchain.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-31402: SARA Revenue Share Offering Registry&lt;/strong> (wiki-vermelding, kind 30817): Definieert kind 31402 adresseerbare events voor het publiceren van Simple Autonomous Revenue Agreement (SARA)-aanbiedingen op Nostr-relays. Uitgevers adverteren Lightning-afgehandelde revenue share-voorwaarden inclusief poolaandeelpercentage, uitbetalingstrigger, drempelwaarde in sats, looptijd en gelaagde prijsstelling. Agents en mensen kunnen aanbiedingen over relays ontdekken en autonoom abonneren zonder centraal platform. Het kind-nummer spiegelt kind 30402 (L402 Service Registry, gepubliceerd door dezelfde auteur als begeleidende wiki-vermelding) omdat SARA het retourtraject van de L402-betalingsrelatie vertegenwoordigt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="open-prs-en-projectupdates">Open PR&amp;rsquo;s en Projectupdates&lt;/h2>
&lt;h3 id="damus-nip-89nltopicsnip-89-recommended-application-handlers">Damus: &lt;a href="https://nostrcompass.org/nl/topics/nip-89/">NIP-89&lt;/a> (Recommended Application Handlers)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3337">PR #3337&lt;/a> implementeert NIP-89 clienttag-ondersteuning voor &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>. De app zendt nu een clienttag uit op alle publicatiepaden (hoofdapp, share-extensie, highlighter, drafts) en toont &amp;ldquo;via ClientName&amp;rdquo; naast tijdstempels wanneer andere apps hun tags bevatten. Een Privacy-toggle in Weergave-instellingen laat gebruikers tagemissie uitschakelen. &lt;a href="https://github.com/damus-io/damus/pull/3652">PR #3652&lt;/a> voegt een Opslag-sectie toe in Instellingen met een interactief cirkeldiagram dat NostrDB- en Kingfisher-cache schijfgebruik uitsplitst met exportondersteuning.&lt;/p>
&lt;p>Open: &lt;a href="https://github.com/damus-io/damus/pull/3657">PR #3657&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> relay-terugval toe voor geciteerde notes. Wanneer een inline &lt;code>nevent&lt;/code> een auteur-pubkey bevat maar geen relayhints en de note ontbreekt in de pool van de gebruiker, haalt Damus de kind 10002 relaylijst van de auteur op en probeert opnieuw vanaf hun schrijfrelays.&lt;/p>
&lt;h3 id="amethyst-nip-39nltopicsnip-39-external-identities-nip-c0-nip-66nltopicsnip-66">Amethyst: &lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> (External Identities), NIP-C0, &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a>&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergede een golf van NIP-implementaties over 28 PR&amp;rsquo;s. Externe identiteitsclaims publiceren nu als speciale kind 10011-events onder &lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1747">PR #1747&lt;/a>), waardoor sociale identiteit wordt gescheiden van kind 0-metadata met achterwaarts-compatibele terugval. Code snippet-ondersteuning via NIP-C0 (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1744">PR #1744&lt;/a>) voegt kind 1337-events toe met accessors voor taal, extensie, runtime, licentie en afhankelijkheden. De &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> relay-monitoringimplementatie (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1742">PR #1742&lt;/a>) bestrijkt beide event kinds met volledige tagparsing voor RTT-metrics, netwerktype, ondersteunde NIPs en geohash.&lt;/p>
&lt;p>Versleutelde DM&amp;rsquo;s arriveerden op Amethyst Desktop (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1710">PR #1710&lt;/a>) met een gesplitst-paneelchatlayout die zowel &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages) als &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) ondersteunt. Een nieuw relayfeeds-scherm (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1733">PR #1733&lt;/a>) laat gebruikers berichten van een specifieke relay bladeren met follow/unfollow-functionaliteit. Open: censuurbestendige NIP-05-verificatie (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1734">PR #1734&lt;/a>) voegt een parallel verificatiepad toe voor &lt;code>.bit&lt;/code>-identifiers die oplost tegen de Namecoin-blockchain in plaats van HTTP DNS. Wanneer Amethyst een &lt;code>.bit&lt;/code>-achtervoegsel detecteert in een NIP-05-veld, bevraagt het een ElectrumX-NMC server voor de naamtransactiegeschiedenis, parst het &lt;code>NAME_UPDATE&lt;/code>-script van de laatste uitvoer om de Nostr pubkey te extraheren, en weigert namen ouder dan 36.000 blokken (Namecoins vervalvenster). ElectrumX-verbindingen routeren via SOCKS5 wanneer Tor is ingeschakeld, met dynamische serverselectie tussen clearnet en &lt;code>.onion&lt;/code>-eindpunten. Een LRU-cache met een TTL van een uur voorkomt herhaalde blockchainqueries.&lt;/p>
&lt;h3 id="notedeck-outbox-architectuur">Notedeck: Outbox-Architectuur&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck/pull/1303">PR #1303&lt;/a> migreert &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> van ad-hoc relay-poolbeheer naar een gecentraliseerd outbox-model met accountgerichte abonnementen. De Messages-module publiceert nu een standaard DM-relaylijst als er geen bestaat en routeert DM&amp;rsquo;s naar ontvangers&amp;rsquo; voorkeursrelays per kind 10050.&lt;/p>
&lt;h3 id="pika-per-groepprofielen-en-tutorial-feed">Pika: Per-Groepprofielen en Tutorial-Feed&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, de Marmot-versleutelde berichtenapp beschikbaar op iOS en Android met een desktopbuild, kreeg per-groepprofielen (&lt;a href="https://github.com/sledtools/pika/pull/368">PR #368&lt;/a>). Gebruikers kunnen nu een apart weergavenaam en -foto instellen voor elke groepschat, samen met een aangepaste bio. Deze profielen worden gepubliceerd als versleutelde kind 0-events binnen de Marmot-groep, onzichtbaar voor iedereen daarbuiten, met een terugval naar het globale Nostr-profiel van de gebruiker wanneer er geen groepsspecifiek profiel is ingesteld. Wanneer nieuwe leden toetreden, herzendt de admin alle opgeslagen groepsprofielen en elk lid herpubliceert zijn eigen profiel bij commit. Profielfoto&amp;rsquo;s worden Marmot-media-versleuteld voor Blossom-upload. De PR bevat 16 nieuwe unittests en stelt de functie beschikbaar via zowel een CLI-commando (&lt;code>update-group-profile&lt;/code>) als de UI.&lt;/p>
&lt;p>Een nieuwe &lt;code>pika-news&lt;/code> webapp (&lt;a href="https://github.com/sledtools/pika/pull/401">PR #401&lt;/a>) monitort Pika&amp;rsquo;s eigen GitHub PR&amp;rsquo;s en genereert automatisch stapsgewijze tutorial-doorlopen van PR-diffs, gepubliceerd als server-gerenderde pagina&amp;rsquo;s met &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a>-authenticatie. Gebruikers kunnen specifieke tutorials in realtime bespreken via Nostr-geauthenticeerde chat.&lt;/p>
&lt;h3 id="divine-insluitbare-widgets-en-videoreacties">diVine: Insluitbare Widgets en Videoreacties&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, het Nostr-native videodelingsplatform, mergede 132 PR&amp;rsquo;s in tien dagen. Insluitbare iframe-widgets (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1843">PR #1843&lt;/a>) bieden een op zichzelf staande &lt;code>/embed?npub=...&lt;/code>-pagina die het profiel en de laatste video&amp;rsquo;s van een gebruiker rendert. Videoreactiefunctionaliteit (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1915">PR #1915&lt;/a>), afgeschermd achter een feature flag, gebruikt Kind 1111-opmerkingen (&lt;a href="https://nostrcompass.org/nl/topics/nip-22/">NIP-22&lt;/a>) met &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> (Media Attachments) imeta-metadata. Bluesky-geïnspireerde drieweg-inhoudsfilters (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1797">PR #1797&lt;/a>) bieden Show/Warn/Hide-besturingselementen over 17 &lt;a href="https://nostrcompass.org/nl/topics/nip-32/">NIP-32&lt;/a> content warning-categorieën.&lt;/p>
&lt;h3 id="strfry-req-filtervalidatie">strfry: REQ-Filtervalidatie&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry/pull/163">PR #163&lt;/a> voegt configureerbare REQ-filtervalidatie toe aan &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a>, de C++ Nostr-relay. Operators kunnen maximale filters per REQ instellen, vereiste auteur- of tagaanwezigheid, toegestane kind-whitelists en per-filterkindlimieten. De functie richt zich op NWC relay-deployments die strikte filterhandhaving nodig hebben. Open: &lt;a href="https://github.com/hoytech/strfry/pull/173">PR #173&lt;/a> voegt optionele zstd-compressie toe voor eventpayloads bij ingest.&lt;/p>
&lt;h3 id="rust-nostr-nip-62nltopicsnip-62-request-to-vanish">rust-nostr: &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> Request to Vanish&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a>, de Rust Nostr-protocolbibliotheek, voegde &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) ondersteuning toe voor alle drie database-backends: &lt;a href="https://github.com/rust-nostr/nostr/pull/1268">LMDB&lt;/a>, &lt;a href="https://github.com/rust-nostr/nostr/pull/1270">SQLite&lt;/a> en &lt;a href="https://github.com/rust-nostr/nostr/pull/1272">in-memory&lt;/a>. De LMDB-implementatie bevat configureerbare opties om &lt;a href="https://nostrcompass.org/nl/topics/nip-09/">NIP-09&lt;/a> en NIP-62-handhaving per deployment in of uit te schakelen.&lt;/p>
&lt;h3 id="ndk-collaboratieve-events-en-nip-46-timeout">NDK: Collaboratieve Events en NIP-46 Timeout&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a>, de Nostr Development Kit voor JavaScript/TypeScript, mergede &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/380">PR #380&lt;/a> die &lt;code>NDKCollaborativeEvent&lt;/code> introduceert voor multi-auteur collaboratieve documenten met behulp van een adresseerbaar pointer event (kind 39382) dat geautoriseerde auteurs definieert. Een configureerbare timeout voor &lt;code>NDKNip46Signer&lt;/code> (&lt;a href="https://github.com/nostr-dev-kit/ndk/pull/381">PR #381&lt;/a>) voorkomt dat &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote ondertekeningsoperaties oneindig blijven hangen wanneer een bunker niet reageert.&lt;/p>
&lt;h3 id="tenex-agentcategorisatie-en-pubkey-gating">TENEX: Agentcategorisatie en Pubkey-Gating&lt;/h3>
&lt;p>&lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>, het Nostr-native AI-agentorchestratie-platform, mergede twee beveiligingsgerelateerde PR&amp;rsquo;s. TIP-01 rolgebaseerde agentcategorisatie (&lt;a href="https://github.com/tenex-chat/tenex/pull/91">PR #91&lt;/a>) koppelt agentcategorieën (principal, orchestrator, worker, advisor, auditor) aan geautomatiseerde toolbeperkingen via een denied-tools map. Front-door pubkey-gating (&lt;a href="https://github.com/tenex-chat/tenex/pull/87">PR #87&lt;/a>) zorgt ervoor dat alleen events van gewhiteliste of backend-ondertekende pubkeys worden doorgestuurd naast bekende agents; onbekende pubkeys worden stilzwijgend gedropt met OpenTelemetry-spans voor audit.&lt;/p>
&lt;h3 id="zap-cooking-lidmaatschapsdashboard">Zap Cooking: Lidmaatschapsdashboard&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a>, het Nostr-gebaseerde receptendelingsplatform, mergede 25 PR&amp;rsquo;s en 85 commits in tien dagen. Een lidmaatschapsdashboard (&lt;a href="https://github.com/zapcooking/frontend/pull/228">PR #228&lt;/a>) toont abonnementsstatus met vervaldatums en beheer-/upgrademogelijkheden, herschakelt feature gates voor Sous Chef- en Zappy-niveaus met zowel client-side als server-side controles, en standaardiseert niveaunaamgeving over 26 bestanden. Tweefasige groepsberichtlading (&lt;a href="https://github.com/zapcooking/frontend/pull/227">PR #227&lt;/a>) biedt een snelle 3-daagse initiële ophaling voor directe weergave gevolgd door een achtergrond-40-dagenterughaling.&lt;/p>
&lt;p>Wallet mnemonic-opslag verhuisde van pubkey-afgeleide versleuteling naar &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encrypt-to-self (&lt;a href="https://github.com/zapcooking/frontend/pull/224">PR #224&lt;/a>), waarmee een kwetsbaarheid werd opgelost waarbij het oude schema zijn sleutel afleidde van &lt;code>SHA-256(pubkey)&lt;/code>, wat effectief onversleuteld is aangezien pubkeys publiek zijn. Bestaande wallets worden stilzwijgend gemigreerd bij eerste gebruik. &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groepschat kreeg ongelezen-indicatoren met rode stip-badges en invite-only-toegang met kind 9009-uitnodigingscodes (&lt;a href="https://github.com/zapcooking/frontend/pull/213">PR #213&lt;/a>). Linkvoorbeelden en Nostr-eventembeds worden nu weergegeven in DM&amp;rsquo;s en groepsberichten (&lt;a href="https://github.com/zapcooking/frontend/pull/218">PR #218&lt;/a>). Een Nostr-backupsectie in Instellingen (&lt;a href="https://github.com/zapcooking/frontend/pull/210">PR #210&lt;/a>) slaat follows en mutelistop via &lt;a href="https://nostrcompass.org/nl/topics/nip-78/">NIP-78&lt;/a> (Application-specific Data) versleutelde opslag met roterende 3-slotsversionering. Opstartprestaties verbeterden door uitgestelde notificatieservices, lazy DOM-rendering via IntersectionObserver (waardoor DOM-nodes daalden van ~15.000 naar ~3.000 bij een feed van 200 events), en verlengde outbox-cache-TTL&amp;rsquo;s (&lt;a href="https://github.com/zapcooking/frontend/pull/208">PR #208&lt;/a>). Een aanpasbare printreceptmodal (&lt;a href="https://github.com/zapcooking/frontend/pull/205">PR #205&lt;/a>) laat gebruikers kiezen welke secties worden opgenomen met een livevoorbeeld. &lt;a href="https://github.com/BrantaOps/branta-core">Branta SDK&lt;/a> integratie (&lt;a href="https://github.com/zapcooking/frontend/pull/222">PR #222&lt;/a>) voegt verificatiebeveiligingen toe voor POST- en GET-verzoeken.&lt;/p>
&lt;h3 id="keep-rust-gedreven-statusmigratie">Keep: Rust-Gedreven Statusmigratie&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a>, de Nostr-gebaseerde privésleutelbeheerder voor Android, mergede &lt;a href="https://github.com/privkeyio/keep-android/pull/178">PR #178&lt;/a>, die vier Kotlin-configuratiestores verwijderde ten gunste van Rust-gedreven gedeelde status vanuit de keep-mobile-laag. Een 10-seconden polling-loop werd vervangen door push-gebaseerde &lt;code>KeepStateCallback&lt;/code> vanuit Rust. &lt;a href="https://github.com/privkeyio/keep-android/pull/179">PR #179&lt;/a> voegt versleutelde back-up en herstel toe met wachtwoordzinbescherming.&lt;/p>
&lt;h3 id="mostro-mobile-versleuteling-van-geschillenchat">Mostro Mobile: Versleuteling van Geschillenchat&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, de mobiele client voor het Mostro P2P Bitcoin-handelsplatform, bracht een tweefasige migratie uit van geschillenchatversleuteling. De eerste stap (&lt;a href="https://github.com/MostroP2P/mobile/pull/495">PR #495&lt;/a>) schakelt over van mostro-specifieke wrapping naar gedeelde sleutelversleuteling afgeleid van de pubkey van de admin. Hierop voortbouwend unificeert &lt;a href="https://github.com/MostroP2P/mobile/pull/501">PR #501&lt;/a> het berichtenmodel met &lt;code>NostrEvent&lt;/code> en slaat gift wrap-events versleuteld op schijf op, consistent met het peer-to-peer chatpatroon. Een BIP-340 handtekeningfix (&lt;a href="https://github.com/MostroP2P/mobile/pull/496">PR #496&lt;/a>) overschrijft de bip340-afhankelijkheid naar 0.2.0, waarmee een &lt;code>bigToBytes()&lt;/code>-paddingbug wordt opgelost die 1-2% van de Schnorr-handtekeningen ongeldig maakte en 100% falen veroorzaakte voor sleutels waarvan de publieke sleutel begint met &lt;code>0x00&lt;/code>. Order Details toont nu leesbare statuslabels in plaats van ruwe protocolwaarden, gelokaliseerd in het Engels, Spaans, Italiaans en Frans (&lt;a href="https://github.com/MostroP2P/mobile/pull/502">PR #502&lt;/a>). HalCash werd toegevoegd en SEPA verwijderd als betaalmethode (&lt;a href="https://github.com/MostroP2P/mobile/pull/493">PR #493&lt;/a>), aangezien SEPA-overboekingen langer dan 24 uur kunnen duren (SEPA Instant blijft beschikbaar).&lt;/p>
&lt;p>Aan de serverzijde repareerde &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> het herstel van geschillensessies om het initiator-veld op te nemen (&lt;a href="https://github.com/MostroP2P/mostro/pull/599">PR #599&lt;/a>) en sluit nu automatisch actieve geschillen wanneer een verkoper fondsen vrijgeeft, waarbij een afgehandeld Nostr-event wordt gepubliceerd zodat admincients de resolutie zien (&lt;a href="https://github.com/MostroP2P/mostro/pull/606">PR #606&lt;/a>).&lt;/p>
&lt;h2 id="vijf-jaar-nostr-februaries">Vijf Jaar Nostr-Februaries&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-28-newsletter/#five-years-of-nostr-januaries">De nieuwsbrief van vorige maand&lt;/a> volgde Nostr&amp;rsquo;s januarimijlpalen van vroege ontwikkeling via de Damus-doorbraak tot beveiligingsinfrastructuur in 2026. Dit retrospectief behandelt wat er elke februari gebeurde van 2021 tot 2026.&lt;/p>
&lt;h3 id="februari-2021-de-herschrijving">Februari 2021: De Herschrijving&lt;/h3>
&lt;p>Drie maanden na het ontstaan produceerde Nostr&amp;rsquo;s februari de meest consequentiële vroege wijziging van het protocol. Op 14-15 februari &lt;a href="https://github.com/nostr-protocol/nostr/commit/33a1a70">herschreef fiatjaf NIP-01&lt;/a>, waarbij het oorspronkelijke berichtenformaat werd vervangen door het EVENT/REQ/CLOSE-model dat het protocol nog steeds gebruikt. Voor deze herschrijving communiceerden clients en relays via een eenvoudigere structuur. Het scheiden van eventpublicatie (EVENT) van abonnementsbeheer (REQ/CLOSE) maakte relay-side filtering mogelijk die essentieel zou blijken voor schaalbaarheid.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> arriveerde dezelfde maand, met toevoeging van versleutelde directe berichten met gedeelde geheimen afgeleid van Diffie-Hellman-sleuteluitwisseling over secp256k1. De versleuteling was basaal (AES-256-CBC) en zou later worden vervangen door &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>&amp;rsquo;s gecontroleerde cryptografie, maar het gaf de handvol vroege gebruikers hun eerste privé communicatiekanaal op het protocol.&lt;/p>
&lt;p>Tooling breidde uit met &lt;a href="https://github.com/fiatjaf/noscl">noscl&lt;/a>, een Go commandoregelclient voor terminalgebaseerde relay-interactie, en futurepaul startte &lt;a href="https://github.com/futurepaul/nostr-rs">nostr-rs&lt;/a>, een vroege Rust-implementatie. Het gehele netwerk draaide op twee of drie relays, gecoördineerd via een &lt;a href="https://t.me/nostr_protocol">Telegram-groep&lt;/a>, met ruwweg zeven actieve bijdragers.&lt;/p>
&lt;h3 id="februari-2022-opbouwend-momentum">Februari 2022: Opbouwend Momentum&lt;/h3>
&lt;p>De &lt;a href="https://news.ycombinator.com/item?id=29749061">Hacker News-post&lt;/a> van 31 december 2021 bleef ontwikkelaars aantrekken tot in februari. Het &lt;a href="https://github.com/nostr-protocol/nostr">nostr-protocol/nostr&lt;/a>-repository (het formele &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a> zou pas in mei 2022 bestaan) ontving zes pull requests in februari, waaronder NIP-13 (Proof of Work) van vinliao, NIP-14 (Reputation) van fiatjaf, NIP-15 (Resource Relations) van Cameri en &lt;a href="https://github.com/nostr-protocol/nostr/pull/75">NIP-17&lt;/a> (Git Updates Over Nostr) van melvincarvalho. Het NIP-nummer werd later opnieuw toegewezen aan Private Direct Messages; git-samenwerking op Nostr ging apart door als wat &lt;a href="https://gitworkshop.dev">gitworkshop.dev&lt;/a> werd.&lt;/p>
&lt;p>Greg Heartsfield&amp;rsquo;s &lt;a href="https://github.com/scsibug/nostr-rs-relay">nostr-rs-relay&lt;/a> was het werkpaard van de maand met 34 commits en drie releases. Versie 0.5.0 op 12 februari voegde &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a> geverifieerde gebruikerspublicatielimieten toe. Versies 0.5.1 en 0.5.2 volgden in de twee weken daarna, en de relay verwerkte het leeuwendeel van het netwerkverkeer in zijn eentje.&lt;/p>
&lt;p>Robert C. Martin (Uncle Bob) bouwde &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, een Clojure-desktopclient, met 69 commits tussen 18 januari en eind februari. Zijn betrokkenheid trok aandacht uit de bredere software-engineeringgemeenschap. fiatjaf&amp;rsquo;s &lt;a href="https://github.com/fiatjaf/nos2x">nos2x&lt;/a> browserextensie leverde &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> ontsleutelingsondersteuning en relayvoorkeurbeleid in februari, als implementatie van de &lt;code>window.nostr&lt;/code>-interface (&lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a>) die webclients nog steeds gebruiken voor sleuteldelegatie.&lt;/p>
&lt;p>&lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a>, nog steeds de primaire webclient, kreeg &lt;code>web+nostr&lt;/code>-protocolhandlerregistratie op 13 februari, een vroege poging tot deep linking tussen Nostr-applicaties. &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> verscherpte NIP-05-validatie. &lt;a href="https://github.com/nbd-wtf/go-nostr">go-nostr&lt;/a> voegde NIP-04 versleutelde DM-ondersteuning en NIP-12 (Generic Tag Queries) parsing toe over 11 commits. Het netwerk draaide op ruwweg 7-15 relays met een actieve gebruikersbasis van waarschijnlijk enkele honderden. Damus en Nostream bestonden nog niet en zouden pas verschijnen in april 2022.&lt;/p>
&lt;h3 id="februari-2023-internationale-aandacht">Februari 2023: Internationale Aandacht&lt;/h3>
&lt;p>Februari 2023 bracht Nostr zijn grootste golf van publieke aandacht. &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, de iOS-client van William Casarin, was &lt;a href="https://www.coindesk.com/tech/2023/02/01/decentralized-social-media-project-nostrs-damus-gets-listed-on-apple-app-store">goedgekeurd in Apple&amp;rsquo;s App Store op 31 januari&lt;/a> na herhaalde afwijzingen. Op 1 februari bereikte het de top 10 in U.S. Social Networking. Twee dagen later, op 2 februari, &lt;a href="https://techcrunch.com/2023/02/02/damus-pulled-from-apples-app-store-in-china-after-two-days/">haalde Apple Damus uit China&amp;rsquo;s App Store&lt;/a> naar verluidt op verzoek van de Cyberspace Administration of China.&lt;/p>
&lt;p>Grote media waaronder TechCrunch en CoinDesk berichtten over de verwijdering, waardoor de bekendheid van zowel de app als het protocol werd vergroot. Unieke publieke sleutels met metadata op nostr.directory kruisten 300.000 op 3 februari. Alle relays werden beheerd door enthousiastelingen die uit eigen zak betaalden, en de infrastructuur worstelde om de belasting aan te kunnen. Ongeveer 289 relays werden bijgehouden begin februari, een aantal dat bleef stijgen.&lt;/p>
&lt;p>Het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a> registreerde 29 gemerge pull requests die maand, het hoogste aantal in een enkele maand in de protocolgeschiedenis tot dat moment. &lt;a href="https://github.com/nostr-protocol/nips/pull/224">NIP-57&lt;/a> (Lightning Zaps) en &lt;a href="https://github.com/nostr-protocol/nips/pull/220">NIP-23&lt;/a> (Long-form Content) werden beide gemerged op 13 februari, waardoor Bitcoin-microbetalingen werden toegevoegd en Nostr in een dag verder werd uitgebreid dan korte berichten. &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) was een week eerder gemerged op 7 februari, wat het outbox-model mogelijk maakte dat volgde. &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) en &lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> (Badges) landden ook voor het einde van de maand.&lt;/p>
&lt;p>De Human Rights Foundation &lt;a href="https://hrf.org/devfund2023q1">kende $50.000 toe aan William Casarin voor Nostr- en Damus-ontwikkeling&lt;/a> op 21 februari, een van de eerste institutionele subsidies voor een Nostr-project. OpenSats had zijn Nostr-fonds nog niet gelanceerd (dat zou komen in &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">juli 2023&lt;/a>).&lt;/p>
&lt;h3 id="februari-2024-protocolduurzaamheid">Februari 2024: Protocolduurzaamheid&lt;/h3>
&lt;p>Februari 2024 verschoof de focus van groei naar protocolduurzaamheid. &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), open sinds de vorige juli, werkte aan een vervanging voor de verouderende &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> versleuteling met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>&amp;rsquo;s gecontroleerde cryptografie en &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrapping. NIP-04 lekte metadata naar relayoperators, die afzender-ontvangerparen konden zien. NIP-17 verbergt de identiteit van de afzender achter wegwerpsleutelparen en werd die lente gemerged na een laatste beoordelingsronde in maart.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> (Simple Groups) &lt;a href="https://github.com/nostr-protocol/nips/pull/566">werd gemerged op 28 februari&lt;/a> na maanden van discussie, waarmee werd gedefinieerd hoe relays gemodereerde groepschats kunnen hosten met adminrollen en toegangscontrole. &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> (imeta-tags) werd gemerged op 1 februari, als standaardisering van hoe clients afbeeldingsdimensies en blurhash-voorbeelden koppelen aan media-events.&lt;/p>
&lt;p>Op 16 februari voegde het NIPs-repository &lt;a href="https://github.com/nostr-protocol/nips/commit/62c48eff">BREAKING.md&lt;/a> toe, een bestand dat achterwaarts-incompatibele wijzigingen aan de protocolspecificatie bijhoudt. De creatie ervan erkende dat Nostr een volwassenheidsniveau had bereikt waarop brekende wijzigingen formele documentatie nodig hadden.&lt;/p>
&lt;p>Tweeëntwintig pull requests werden die maand gemerged. &lt;a href="https://github.com/cashubtc/npubcash-server">npub.cash&lt;/a> lanceerde als een Lightning-adresservice waarmee elke npub betalingen kan ontvangen zonder een server te draaien. Een &lt;a href="https://arxiv.org/abs/2402.05709">academisch paper&lt;/a> gepubliceerd op 8 februari constateerde dat 95% van de gratis relays operationele kosten niet kon dekken door donaties, waarbij 35% van de betaalde relays toegangsgelden onder 1.000 sats (destijds ruwweg $0,45) in rekening bracht.&lt;/p>
&lt;h3 id="februari-2025-infrastructuurgroei">Februari 2025: Infrastructuurgroei&lt;/h3>
&lt;p>Februari 2025 produceerde 28 gemerge pull requests voor het NIPs-repository. Een &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">Right to Vanish&lt;/a> NIP werd gemerged op 19 februari, waarmee werd gedefinieerd hoe gebruikers verwijdering van hun data van relays kunnen aanvragen als reactie op regelgevingsvragen rond datadraagbaarheid en gebruikerscontrole.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a> (Cashu Wallet) en NIP-61 (Nutzaps) ontvingen vereenvoudigingsupdates, die het ecash-tokenopslagformaat stroomlijnden. Een q-tag (quote tag) uitrol ging verder over meerdere NIPs, waardoor werd gestandaardiseerd hoe events andere events refereren voor citeren en threading.&lt;/p>
&lt;p>Clientreleases markeerden gestage vooruitgang. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> v0.3.0 alpha verscheen op de laatste dag van januari, met adoptie die doorging in februari. Primal v2.1 volgde op 7 februari, en &lt;a href="https://github.com/0ceanSlim/grain">GRAIN&lt;/a> v0.3.0, een Go relay-implementatie, werd uitgebracht op 21 februari.&lt;/p>
&lt;p>NOSTRLDN v5 bracht de Londense Nostr-gemeenschap samen voor zijn vijfde meetup. Een DVMCP-brug verbond Nostr&amp;rsquo;s Data Vending Machines (&lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a>) met het Model Context Protocol, als voorafschaduwing van het AI-agentintegratiewerk dat de volgende maand arriveerde.&lt;/p>
&lt;h3 id="februari-2026-voorbij-social-media">Februari 2026: Voorbij Social Media&lt;/h3>
&lt;p>&lt;em>De activiteit van februari 2026 is ontleend aan Nostr Compass-edities &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/">#8&lt;/a> tot &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/">#11&lt;/a>.&lt;/em>&lt;/p>
&lt;p>Februari 2026 produceerde het breedste scala aan applicatielaag-ontwikkeling in enige Nostr-maand. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> bracht zijn &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#mostro-ships-first-public-beta">eerste publieke beta&lt;/a> uit voor gedecentraliseerde peer-to-peer Bitcoin-handel, en &lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a> bereikte &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#zapstore-v100">1.0 stable&lt;/a> na maanden in release-candidate-testing. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise v0.3.0&lt;/a> leverde realtime &lt;a href="https://nostrcompass.org/nl/topics/mls/">Marmot&lt;/a>-versleuteld berichtenverkeer met Amber-signerondersteuning en meer dan 160 samengevoegde verbeteringen.&lt;/p>
&lt;p>Concurrerende AI-agentvoorstellen van pablof7z (NIP-AE voor agentworkflows, NIP-AD voor MCP-serveraankondigingen) en joelklabo (AI Agent Messages) arriveerden naast een &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#nip-updates">DVM Agent Coordination-voorstel&lt;/a> dat &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> uitbreidt. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#contextvm-mcp-over-nostr">ContextVM&lt;/a> bracht SDK-verbeteringen uit die het Model Context Protocol verbinden met Nostr-transport. &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#burrow-mls-messaging-for-ai-agents">Burrow&lt;/a> voegde &lt;a href="https://nostrcompass.org/nl/topics/mls/">Marmot&lt;/a>-versleuteld berichtenverkeer toe voor zowel AI-agenten als mensen, waardoor Nostr&amp;rsquo;s identiteits- en relay-infrastructuur werd uitgebreid naar machine-naar-machine communicatie.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking">FIPS&lt;/a> leverde een werkende Rust-implementatie van Nostr-native mesh-netwerken, met secp256k1-sleutelparen als nodeidentiteiten met transportagnostische routing over UDP, Ethernet, Bluetooth of LoRa-radio. Het ontwerp toonde aan dat Nostr&amp;rsquo;s sleutelmodel verder reikt dan social media tot fysieke netwerkinfrastructuur.&lt;/p>
&lt;p>&lt;a href="https://opensats.org/blog/fifteenth-wave-of-nostr-grants">OpenSats kondigde zijn vijftiende golf van Nostr-subsidies aan&lt;/a>, met financiering voor projecten waaronder ContextVM en Nostube. Protocolwijzigingen omvatten &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> hold invoice-ondersteuning voor Nostr Wallet Connect en &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a> (Counting Results) HyperLogLog voor relay-side countschatting. &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) vindbaarheid van serviceproviders voor &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-scoring werd ook gemerged. &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> begon een volledige API-herontwerp terwijl Nostria 3.0 en &lt;a href="https://github.com/FROSTR-ORG">Frostr&lt;/a> (iOS TestFlight) beide verschenen. &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>&amp;rsquo;s lokale cachelaag adresseerde mediabeschikbaarheid over relays.&lt;/p>
&lt;h3 id="vooruitkijkend">Vooruitkijkend&lt;/h3>
&lt;p>Vijf februaries van protocolgeschiedenis tonen een consistente progressie van fundamenteel werk naar applicatielaagdiversificatie, met de gebruikersinstroming van 2023 als het keerpunt. In 2021 werkten zeven bijdragers op drie relays. Tegen 2026 ondersteunde hetzelfde protocol mesh-netwerken en autonome agentvoorstellen op productie-infrastructuur.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Bouw je iets of heb je nieuws te delen, neem dan contact op via &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">&lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #11</title><link>https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">White Noise v0.3.0&lt;/a> brengt realtime berichten en Amber-signer-ondersteuning met meer dan 160 samengevoegde verbeteringen. &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">diVine 1.0.5&lt;/a> lost problemen met videoweergave op en voegt Kind 22236 view-events toe voor makeranalyses. &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> en &lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a> brengen updates uit. &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> levert een werkende Rust-implementatie van Nostr-native mesh-netwerken. Notecrumbs krijgt stabiliteitsverbeteringen voor linkvoorbeelden van damus.io. &lt;a href="https://contextvm.org">ContextVM&lt;/a> verbindt Nostr met het Model Context Protocol. Nieuwe projecten zijn onder meer &lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> voor MLS-versleuteld berichtenverkeer tussen AI-agenten en mensen, en &lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> voor browsergebaseerd kluis- en identiteitsbeheer. De deep dives behandelen NIP-55 Android-ondertekening en NIP-60 Cashu-walletsynchronisatie.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">White Noise v0.3.0&lt;/a> brengt realtime berichten en Amber-signer-ondersteuning met meer dan 160 samengevoegde verbeteringen. &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">diVine 1.0.5&lt;/a> lost problemen met videoweergave op en voegt Kind 22236 view-events toe voor makeranalyses. &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> en &lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a> brengen updates uit. &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> levert een werkende Rust-implementatie van Nostr-native mesh-netwerken. Notecrumbs krijgt stabiliteitsverbeteringen voor linkvoorbeelden van damus.io. &lt;a href="https://contextvm.org">ContextVM&lt;/a> verbindt Nostr met het Model Context Protocol. Nieuwe projecten zijn onder meer &lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> voor MLS-versleuteld berichtenverkeer tussen AI-agenten en mensen, en &lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> voor browsergebaseerd kluis- en identiteitsbeheer. De deep dives behandelen NIP-55 Android-ondertekening en NIP-60 Cashu-walletsynchronisatie.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="stabiliteitsverbeteringen-voor-notecrumbs">Stabiliteitsverbeteringen voor Notecrumbs&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs">Notecrumbs&lt;/a>, de Nostr-API en webserver die linkvoorbeelden van damus.io aandrijft, ontving een reeks fixes voor betrouwbaarheidsproblemen.&lt;/p>
&lt;p>De &lt;a href="https://github.com/damus-io/notecrumbs/commit/3f201f63ea49">concurrency-fix&lt;/a> verving het inflight-deduplicatiemechanisme door watch channels. Twee aanroepers die dezelfde note opvroegen konden allebei fetcher worden, wat leidde tot een deadlock wanneer een van hen voltooide voordat de ander zich abonneerde op de notificatie. Watch channels met atomaire operaties zorgen ervoor dat slechts een fetcher draait terwijl anderen op het resultaat wachten.&lt;/p>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs/commit/b0d0bf5a2f17">Rate limiting&lt;/a> implementeert een tweelaagse verdediging tegen relay-hamering. Wanneer gebruikers herhaaldelijk dezelfde note benaderen, past het systeem nu debounce toe op relay-verzoeken met een cooldown-venster van 5 minuten. Deze bescherming strekt zich uit tot alle &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a>-typen en profielfeeds, en voorkomt proportionele spam naar relays tijdens druk verkeer.&lt;/p>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs/commit/38670b3972b6">Prestatieverbeteringen&lt;/a> verplaatsten secundaire data-opvragingen naar tokio-achtergrondtaken. Pagina&amp;rsquo;s renderen nu direct met gecachte data in plaats van te blokkeren op sequentiele relay-timeouts die konden oplopen tot 7,5 seconden. Daarnaast is nostrdb geupgraded naar versie 0.10.0.&lt;/p>
&lt;h3 id="contextvm-mcp-over-nostr">ContextVM: MCP over Nostr&lt;/h3>
&lt;p>&lt;a href="https://contextvm.org">ContextVM&lt;/a> is een toolkit die Nostr en het &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a> (MCP) met elkaar verbindt. Recente commits introduceerden de nieuwe &lt;a href="https://docs.contextvm.org/spec/ceps/cep-8/">CEP-8&lt;/a>-specificatie voor betalingen, en hebben de &lt;a href="https://github.com/ContextVM/sdk">SDK&lt;/a> gedurende februari verbeterd.&lt;/p>
&lt;p>De SDK biedt TypeScript client- en servertransports voor MCP over Nostr. Ontwikkelaars kunnen MCP-servers beschikbaar maken via het Nostr-netwerk en clients kunnen er verbinding mee maken. Relays fungeren als een blinde berichtenbus die versleutelde events blindelings routeert. Clients zonder native Nostr-ondersteuning verbinden via een proxylaag. De bibliotheek verzorgt relaybeheer en cryptografische ondertekening voor eventauthenticatie. Het werkt in zowel Node.js- als browseromgevingen.&lt;/p>
&lt;p>&lt;a href="https://github.com/ContextVM/cvmi">CVMI&lt;/a> biedt een CLI voor serverontdekking en methodeaanroep. &lt;a href="https://github.com/ContextVM/relatr">Relatr&lt;/a> berekent gepersonaliseerde vertrouwensscores op basis van afstand in de sociale graaf gecombineerd met profielvalidatie.&lt;/p>
&lt;p>ContextVM positioneert zichzelf als een bruglaag: bestaande MCP-servers krijgen Nostr-interoperabiliteit terwijl ze hun conventionele transports behouden.&lt;/p>
&lt;h3 id="white-noise-documenteert-gedecentraliseerd-gebruikers-zoeken">White Noise Documenteert Gedecentraliseerd Gebruikers Zoeken&lt;/h3>
&lt;p>In een &lt;a href="https://blog.jgmontoya.com/2026/02/22/user-search.html">blogpost&lt;/a> beschrijft jgmontoya hoe &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> gebruikerszoekfunctionaliteit afhandelt over het gedecentraliseerde relay-netwerk.&lt;/p>
&lt;p>Profieldistributie creeert de uitdaging: anders dan gecentraliseerde messengers met uniforme databases, zijn Nostr-profielen verspreid over tientallen relays zonder centraal register. White Noise lost dit op via een producer-consumer-architectuur die parallel draait.&lt;/p>
&lt;p>Het producerproces breidt de sociale graaf continu uit vanuit de follows van de gebruiker, haalt followlijsten op bij toenemende afstanden en plaatst ontdekte pubkeys in een wachtrij voor profielresolutie. De consumer matcht via vijf steeds duurdere niveaus: lokale gebruikerstabel (snelst), gecachte profielen van eerdere zoekopdrachten, verbonden relays, gebruikersrelaylijsten per &lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a>, en directe queries naar door gebruikers gedeclareerde relays (traagst).&lt;/p>
&lt;p>Koude zoekopdrachten duren ongeveer 3 seconden terwijl warme zoekopdrachten uit de cache terugvallen naar circa 10 milliseconden. Voor nieuwe gebruikers zonder gevestigde sociale graaf injecteert het systeem goed verbonden bootstrap-nodes om zoekfunctionaliteit te garanderen. Groepslidmaatschap biedt een impliciet sociaal signaal naast expliciete follows.&lt;/p>
&lt;p>Instrumentatie bleek cruciaal voor optimalisatie, merkt de auteur op. Zonder meetgegevens waren verbeteringen giswerk.&lt;/p>
&lt;h3 id="fips-nostr-native-mesh-netwerken">FIPS: Nostr-Native Mesh-Netwerken&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> (Free Internetworking Peering System) is een werkende Rust-implementatie van een zelforganiserend mesh-netwerk dat Nostr-sleutelparen (secp256k1) gebruikt als nodeidentiteiten. De &lt;a href="https://github.com/jmcorgan/fips/blob/master/docs/design/fips-intro.md">ontwerpdocumentatie&lt;/a> vergezelt de functionele code.&lt;/p>
&lt;p>Het protocol richt zich op infrastructuuronafhankelijkheid: nodes ontdekken elkaar automatisch zonder centrale servers of certificaatautoriteiten. Via een spanning tree verloopt op coordinaten gebaseerde routing terwijl bloomfilters bereikbaarheidsinformatie verspreiden, waardoor nodes met alleen lokale kennis forwardingbeslissingen kunnen nemen. Transportagnosticisme betekent dat hetzelfde protocol werkt over UDP, Ethernet, Bluetooth, LoRa-radio of elk ander medium dat datagrammen ondersteunt.&lt;/p>
&lt;p>Twee encryptielagen beschermen het verkeer. Link-layer-encryptie (Noise IK-patroon) beveiligt hop-by-hop-communicatie tussen buren met wederzijdse authenticatie en forward secrecy. Session-layer-encryptie (Noise XK-patroon) biedt end-to-end-bescherming tegen tussenliggende routers, waarbij alleen de bestemming de payload kan ontsleutelen. Dit weerspiegelt hoe TLS HTTP-verkeer beschermt, zelfs bij het doorkruisen van onvertrouwde netwerken.&lt;/p>
&lt;p>De architectuur gebruikt een &amp;ldquo;greedy embedding&amp;rdquo; spanning tree voor routing. Elke node krijgt coordinaten op basis van zijn positie ten opzichte van de boomwortel en ouder. Pakketten routeren greedy richting coordinaten dichter bij de bestemming, terwijl bloomfilters bereikbare eindpunten adverteren. Wanneer greedy routing faalt (lokale minima), kunnen nodes terugvallen op boomgebaseerde paden.&lt;/p>
&lt;p>De Rust-implementatie bevat al UDP-transport met bloomfilterontdekking. Toekomstig werk richt zich op Nostr-relayintegratie voor peer-bootstrapping.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>Deze week bracht releases in relay-infrastructuur en clientapplicaties, met ook nieuwe projecten die de ruimte betreden.&lt;/p>
&lt;h3 id="haven-v120">HAVEN v1.2.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/haven">HAVEN&lt;/a>, de alles-in-een persoonlijke relay die vier relayfuncties bundelt met een &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-mediaserver, bracht &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0">v1.2.0&lt;/a> uit. Deze release gaat verder dan de RC-fase &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#haven-v120-rc3">die vorige week werd behandeld&lt;/a>.&lt;/p>
&lt;p>Multi-npub-ondersteuning laat een enkele HAVEN-instantie meerdere Nostr-identiteiten bedienen via whitelisting, met nieuwe blacklistingfunctionaliteit voor toegangscontrole. Het herschreven back-upsysteem gebruikt draagbaar JSONL-formaat, met een &lt;code>haven restore&lt;/code>-commando voor het importeren van notes uit JSONL-bestanden. Cloudopslagintegratie voegt &lt;code>--to-cloud&lt;/code>- en &lt;code>--from-cloud&lt;/code>-vlaggen toe voor extern back-upbeheer.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-verbeteringen omvatten configureerbare diepteniveaus voor vertrouwensberekeningen en automatische 24-uurs verversingsintervallen met lockless optimalisatie die geheugenoverhead vermindert. User-agent-configuratie voor relayverzoeken en configureerbare Blastr-timeoutinstellingen completeren de release, samen met data-export naar gecomprimeerd JSONL.&lt;/p>
&lt;h3 id="white-noise-v030">White Noise v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, de op &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a> gebaseerde versleutelde berichtenapp die het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol implementeert, bracht &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">v0.3.0&lt;/a> uit met meer dan 160 samengevoegde verbeteringen.&lt;/p>
&lt;p>Deze release brengt realtime berichten via streamingverbindingen in plaats van polling, zodat berichten direct aankomen. Amber-ondersteuning (&lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>) betekent dat prive-sleutels de app nooit hoeven te raken. Het delen van afbeeldingen werkt nu met uploadvoortgangsregistratie en blurhash-plaatshouders tijdens het laden. Volledig-schermweergave ondersteunt pinch-to-zoom.&lt;/p>
&lt;p>Groepsberichten kregen betrouwbaarheidsverbeteringen met chatlijsten die afzendernamen tonen en &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-versleuteling die forward secrecy garandeert. Gebruikerszoeken breidt zich uit vanuit follows tot vier graden van scheiding, met resultaten die binnenstromen zodra ze worden gevonden.&lt;/p>
&lt;p>Let op: een brekende wijziging reset alle lokale data bij het upgraden vanwege Marmot-protocolwijzigingen en de overstap naar versleutelde lokale opslag. Gebruikers moeten nsec-sleutels back-uppen voordat ze upgraden.&lt;/p>
&lt;h3 id="divine-105">diVine 1.0.5&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de short-form looping videoclient gebouwd op herstelde Vine-archieven, bracht &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">1.0.5&lt;/a> uit met uitgebreide videoweergave-fixes en een nieuw gedecentraliseerd analysesysteem.&lt;/p>
&lt;p>Videoweergaveproblemen domineerden de fixes: fantoomonderbreking, dubbele audio tussen video&amp;rsquo;s, zwarte flits tussen thumbnails en eerste frames, en crashes bij afgedankte spelers zijn allemaal opgelost. De Home-feed draait nu op een gepoold videospeler voor consistente weergave.&lt;/p>
&lt;p>Kind 22236 efemere view-events maken makeranalyses en aanbevelingen mogelijk. Het systeem volgt verkeersbronnen (home, ontdekkingsvarianten, profiel, delen, zoeken) en lustellingen terwijl zelfweergaven worden uitgefilterd. Lekken van lokale bestandspaden in Nostr-event imeta-tags zijn verholpen met canonieke Blossom-URL&amp;rsquo;s die client-side worden opgebouwd conform de BUD-01-specificatie.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signer-verbeteringen omvatten geparallelliseerde relayverbindingen en callback-URL-ondersteuning. Android herstelt WebSocket-verbindingen bij het hervatten van de app na goedkeuring door de signer.&lt;/p>
&lt;h3 id="coracle-0630">Coracle 0.6.30&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a>, de webgebaseerde Nostr-client gericht op relaybeheer en &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-moderatie, bracht &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.30">0.6.30&lt;/a> uit met ondersteuning voor videothumbnails, wat mediabrowsing in feeds verbetert.&lt;/p>
&lt;p>Nostur bracht ook deze week een update uit voor iOS.&lt;/p>
&lt;h3 id="nostur-v1260">Nostur v1.26.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a>, de iOS Nostr-client, bracht &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/1.26.0">v1.26.0&lt;/a> uit met een nieuwe Live Streams-feedsectie en een herontworpen Instellingen-scherm. GIF&amp;rsquo;s kunnen nu worden gehost op Blossom-mediaservers, waardoor de afhankelijkheid van gecentraliseerde diensten afneemt. Klipy GIF-integratie biedt een terugvalmogelijkheid wanneer Tenor onbeschikbaar is. Jaarkopteksten in DM-gesprekken en weergave van het aantal vermeldingen completeren de gebruikersgerichte wijzigingen.&lt;/p>
&lt;p>Ontwikkeltools en CLI-apps kregen deze week ook updates.&lt;/p>
&lt;h3 id="nak-v0185">nak v0.18.5&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjaf&amp;rsquo;s Zwitsers zakmes voor Nostr op de commandoregel, bracht &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.5">v0.18.5&lt;/a> uit met een nieuw &lt;code>nak profile&lt;/code>-subcommando voor het ophalen en weergeven van gebruikersprofielen. Het &lt;code>git clone&lt;/code>-commando ondersteunt nu &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a>-namen in &lt;code>nostr://&lt;/code>-URI&amp;rsquo;s, waardoor repositories kunnen worden gekloond op basis van voor mensen leesbare identifiers.&lt;/p>
&lt;p>Pika verbeterde zijn cross-platform messenger.&lt;/p>
&lt;h3 id="pika-v053">Pika v0.5.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-versleutelde messenger voor iOS, Android en desktop gebouwd op het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol, bracht &lt;a href="https://github.com/sledtools/pika/releases/tag/pikachat-v0.5.3">v0.5.3&lt;/a> uit. Recente commits voegen bestandsupload en drag-and-drop media-ondersteuning toe aan de desktop-app, naast Cloudflare Workers-deploymentfixes.&lt;/p>
&lt;p>Pika gebruikt een Rust-core die alle bedrijfslogica bezit, terwijl iOS (SwiftUI) en Android (Kotlin) als dunne UI-lagen fungeren die state-snapshots renderen. MDK (Marmot Development Kit) biedt de MLS-implementatie. Het project vermeldt alfastatus en waarschuwt tegen gebruik voor gevoelige werklasten.&lt;/p>
&lt;p>Het gedecentraliseerde ritdeelplatform Ridestr kreeg ook een update.&lt;/p>
&lt;h3 id="ridestr-v026">Ridestr v0.2.6&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a>, het gedecentraliseerde ritdeelplatform met Cashu-betalingen, bracht &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.6">v0.2.6&lt;/a> uit. Deze release lost TalkBack-toegankelijkheidsproblemen op en verhelpt bugs waarbij chauffeurs verdwenen van de lijst met nabije chauffeurs bij het wisselen van betaalmethoden of waarbij geselecteerde chauffeurstellingen niet werden bijgewerkt wanneer chauffeurs offline gingen.&lt;/p>
&lt;p>De &amp;ldquo;Send to All&amp;rdquo;-functie is nu &amp;ldquo;Broadcast RoadFlare&amp;rdquo; met fixes voor stille fouten bij nieuwe chauffeurinstallaties. Ridestr implementeert HTLC-escrow voor vertrouwensloze ritbetalingen en &lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a>-walletsynchronisatie tussen apparaten.&lt;/p>
&lt;p>Unfiltered breidde zijn fotodeel-app voor Android uit.&lt;/p>
&lt;h3 id="unfiltered-v106">Unfiltered v1.0.6&lt;/h3>
&lt;p>&lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a>, de Instagram-achtige fotodeel-app voor Android, bracht &lt;a href="https://github.com/dmcarrington/unfiltered/releases/tag/v1.0.6">v1.0.6&lt;/a> uit met verbeterde gebruikerszoekfunctie en automatische relay-herverbinding elke 60 seconden.&lt;/p>
&lt;p>Gebouwd met Kotlin en Jetpack Compose, gebruikt Unfiltered rust-nostr-bindings en Blossom-compatibele servers voor afbeeldingshosting. Amber-integratie (&lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>) verzorgt veilig sleutelbeheer. De app toont berichten van gevolgde accounts in chronologische volgorde zonder algoritmen of advertenties.&lt;/p>
&lt;p>Deze week werden ook twee nieuwe berichten- en ondertekeningsprojecten gelanceerd.&lt;/p>
&lt;h3 id="burrow-mls-berichtenverkeer-voor-ai-agenten">Burrow: MLS-Berichtenverkeer voor AI-Agenten&lt;/h3>
&lt;p>&lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> is een messenger die het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol implementeert voor MLS-versleutelde communicatie zonder telefoonnummers of gecentraliseerde servers. Zowel menselijke gebruikers als AI-agenten kunnen deelnemen.&lt;/p>
&lt;p>De pure Rust CLI-daemon met JSONL-uitvoermodus verzorgt integratie met geautomatiseerde systemen. Via een Flutter cross-platform app worden Android, iOS, Linux, macOS en Windows ondersteund. Mediabijlagen worden versleuteld samen met berichten, en WebRTC verzorgt audio- en videogesprekken met configureerbare TURN-servers.&lt;/p>
&lt;p>Burrow legt MLS-versleuteling over Nostr-infrastructuur. Identiteit gebruikt Nostr-sleutelparen (secp256k1) terwijl MLS-KeyPackages worden gepubliceerd als kind 443-events. Berichten worden versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> als kind 445-events, en welkomstuitnodigingen gebruiken &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift-wrapping.&lt;/p>
&lt;p>&lt;a href="https://openclaw.ai">OpenClaw&lt;/a>-integratie maakt AI-agentdeelname mogelijk met volledige toegang tot tools. Toegangscontrolelijsten met auditlogging beheren contact- en groepsmachtigingen. Deze combinatie positioneert Burrow voor agent-naar-agent en agent-naar-mens berichtenscenario&amp;rsquo;s die Signal-niveau versleuteling op gedecentraliseerde infrastructuur vereisen.&lt;/p>
&lt;p>Nostria Signer bracht identiteitsbeheer naar de browser.&lt;/p>
&lt;h3 id="nostria-signer-extensie">Nostria Signer-Extensie&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> is een op Chromium gebaseerde browserextensie die kluis- en identiteitsbeheer biedt voor Nostr-gebruikers.&lt;/p>
&lt;p>Meerdere kluizen met meerdere accounts laten gebruikers identiteiten organiseren voor verschillende contexten. Internationalisatie omvat ondersteuning voor RTL-talen. Gebouwd met Angular en TypeScript (79,2% van de codebase), werkt het als zowel browserextensie als Progressive Web App.&lt;/p>
&lt;p>Nostria Signer implementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> voor ondertekening via browserextensies, waardoor webgebaseerde Nostr-clients eventhandtekeningen kunnen aanvragen zonder direct toegang te krijgen tot prive-sleutels. Automatische walletmigratie verzorgt updates die via de Chrome Web Store worden verspreid. Gebruikers kunnen ook sideloaden vanuit de &lt;code>dist/extension&lt;/code>-map.&lt;/p>
&lt;p>Ontwikkelaars benadrukken de experimentele status: gebruikers moeten hun eigen geheime herstelzinnen beheren aangezien de ontwikkelaars geen toegang tot verloren sleutels kunnen herstellen.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="formstr-migreert-naar-nieuwe-organisatie">Formstr Migreert naar Nieuwe Organisatie&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a>, het Google Forms-alternatief op Nostr, migreerde zijn repository van &lt;code>abh3po/nostr-forms&lt;/code> naar de &lt;code>formstr-hq&lt;/code>-organisatie. Deze OpenSats-subsidie-ontvanger zet de ontwikkeling voort op de nieuwe locatie.&lt;/p>
&lt;h3 id="opvallende-open-prs">Opvallende Open PR&amp;rsquo;s&lt;/h3>
&lt;p>Lopend werk in Nostr-projecten:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Damus Outbox Model&lt;/strong> (&lt;a href="https://github.com/damus-io/damus/pull/3602">PR #3602&lt;/a>): Implementatieplan voor het gossip/outbox relay-model op iOS. Deze architecturale wijziging verbetert berichtaflevering door te publiceren naar de relays waar ontvangers daadwerkelijk lezen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Notedeck Cross-Platform Notificaties&lt;/strong> (&lt;a href="https://github.com/damus-io/notedeck/pull/1296">PR #1296&lt;/a>): Native notificatiesysteem voor de Damus-desktopclient voor Android FCM, macOS en Linux.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NDK Cashu v3 Upgrade&lt;/strong> (&lt;a href="https://github.com/nostr-dev-kit/ndk/pull/370">PR #370&lt;/a>): Upgradet de walletintegratie van de Nostr Development Kit naar cashu-ts v3.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Zeus Cashu Offline&lt;/strong> (&lt;a href="https://github.com/ZeusLN/zeus/pull/3742">PR #3742&lt;/a>): Offline ecash verzenden en ontvangen voor de Zeus Lightning-wallet.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Shopstr Versleutelde Digitale Levering&lt;/strong> (&lt;a href="https://github.com/shopstr-eng/shopstr/pull/231">PR #231&lt;/a>): Voegt versleutelde levering voor digitale goederen toe met dynamische gewichtsondersteuning voor fysieke artikelen.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen in het &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Deze week gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85 Vindbaarheid van Serviceproviders&lt;/a>&lt;/strong>: De &lt;a href="https://nostrcompass.org/nl/topics/nip-85/">NIP-85&lt;/a>-specificatie bevat nu richtlijnen over hoe clients trusted assertion-providers ontdekken. Wanneer een client &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-scores of andere berekende metrics nodig heeft, kan het relays bevragen op kind 30085-aankondigingen van providers die de gebruiker al volgt of vertrouwt.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2229">NIP-29 Verwijdert Onbeheerde Groepen&lt;/a>&lt;/strong>: De &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a>-groepschatspecificatie schrapte ondersteuning voor onbeheerde groepen (waar elk lid anderen kon toevoegen). Alle NIP-29-groepen vereisen nu relay-side beheer met expliciete adminrollen, wat implementaties vereenvoudigt en spamvectoren vermindert.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2231">NIP-11 Verwijdert Verouderde Velden&lt;/a>&lt;/strong>: &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> relay-informatiedocumenten bevatten niet langer de verouderde velden &lt;code>software&lt;/code> en &lt;code>version&lt;/code>. Implementaties moeten deze verwijderen uit hun responses.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2227">NIP-39 Verplaatst Identiteitstags&lt;/a>&lt;/strong>: Externe identiteitsclaims (&lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> &lt;code>i&lt;/code>-tags voor GitHub, Twitter, etc.) zijn verplaatst van kind 0-profielen naar speciale kind 30382-events. Dit scheidt identiteitsverificatie van profielmetadata.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Voortgang AI-Agent NIPs:&lt;/strong>&lt;/p>
&lt;p>Vier op AI gerichte NIPs blijven actief in ontwikkeling. Sinds &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#ai-agent-nips-arriveren">de behandeling vorige week&lt;/a>:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2220">NIP-AE: Agents&lt;/a>&lt;/strong> (bijgewerkt 19 feb): Definieert agentidentiteit met kind 4199 voor agentdefinities en kind 4201 voor prompting (&amp;ldquo;nudges&amp;rdquo;). Agenten kunnen &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a>-bestandsmetadata refereren voor uitgebreide beschrijvingen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2226">NIP-XX: AI Agent Messages&lt;/a>&lt;/strong> (bijgewerkt 18 feb): Standaardiseert conversatieberichten met zeven efemere event-kinds (25800-25806) voor status, streaming deltas, prompts, responses, tool calls, fouten en annulering. Kind 31340 &amp;ldquo;AI Info&amp;rdquo;-events laten agenten ondersteunde modellen en mogelijkheden adverteren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2228">NIP-AC: DVM Agent Coordination&lt;/a>&lt;/strong> (geopend 18 feb): Breidt &lt;a href="https://nostrcompass.org/nl/topics/nip-90/">NIP-90&lt;/a> uit voor autonome agentworkflows. Voegt heartbeats toe voor agentontdekking, jobbeoordeling voor kwaliteitsmonitoring, data-escrow voor resultaatcommitment, workflowketens voor meerstaps-pipelines, en swarmbiedingen voor competitieve providerselectie. Op 2020117.xyz draait een referentie-implementatie.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2221">NIP-AD: MCP Server Announcements&lt;/a>&lt;/strong> (geopend 12 feb): Standaardiseert de aankondiging van Model Context Protocol-servers en vaardigheden op Nostr. Al in gebruik op het TENEX-platform.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Overige Open PR&amp;rsquo;s:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2232">NIP-144: Service Authorization Protocol&lt;/a>&lt;/strong>: Definieert hoe clients identiteit en machtigingen bewijzen aan serviceproviders op Nostr.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2230">NIP-DC: Nostr Webxdc&lt;/a>&lt;/strong>: alexgleason stelt voor om Webxdc (gedecentraliseerde webapplicaties) te integreren met Nostr-events.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-55-android-signer-applicatie">NIP Deep Dive: NIP-55 (Android Signer Applicatie)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/55.md">NIP-55&lt;/a> definieert hoe Android Nostr-clients cryptografische operaties aanvragen bij speciale signer-applicaties. Met &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise v0.3.0&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#unfiltered-v106">Unfiltered v1.0.6&lt;/a> die deze week beide Amber-ondersteuning toevoegen, verdient het Android-ondertekeningsprotocol aandacht.&lt;/p>
&lt;p>&lt;strong>Communicatiekanalen:&lt;/strong>&lt;/p>
&lt;p>NIP-55 maakt inter-app-ondertekening mogelijk via twee mechanismen. Intents bieden handmatige gebruikersgoedkeuring met visuele feedback voor eenmalige operaties. Content Resolvers maken geautomatiseerde ondertekening mogelijk wanneer gebruikers permanente machtigingen verlenen, waardoor apps op de achtergrond kunnen ondertekenen zonder herhaalde prompts.&lt;/p>
&lt;p>Communicatie gebruikt het aangepaste &lt;code>nostrsigner:&lt;/code>-URI-schema. Een client initieert contact met:&lt;/p>
&lt;pre tabindex="0">&lt;code>nostrsigner:&amp;lt;base64-encoded-event&amp;gt;?type=sign_event&amp;amp;callbackUrl=myapp://callback
&lt;/code>&lt;/pre>&lt;p>&lt;strong>Ondersteunde Operaties:&lt;/strong>&lt;/p>
&lt;p>De specificatie definieert zeven cryptografische methoden: eventondertekening (&lt;code>sign_event&lt;/code>), ophalen van publieke sleutel (&lt;code>get_public_key&lt;/code>), &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a>-versleuteling/ontsleuteling, &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-versleuteling/ontsleuteling, en zap-eventontsleuteling (&lt;code>decrypt_zap_event&lt;/code>).&lt;/p>
&lt;p>&lt;strong>Machtigingsmodel:&lt;/strong>&lt;/p>
&lt;p>Clients roepen &lt;code>get_public_key&lt;/code> eenmalig aan om een vertrouwensrelatie op te bouwen, waarbij ze de pakketnaam van de signer en de pubkey van de gebruiker ontvangen. De specificatie schrijft voor dat clients deze waarden opslaan en nooit opnieuw &lt;code>get_public_key&lt;/code> aanroepen, om fingerprinting-aanvallen te voorkomen.&lt;/p>
&lt;p>Voor ondertekeningsverzoeken kunnen gebruikers eenmalig goedkeuren of &amp;ldquo;onthoud mijn keuze&amp;rdquo; verlenen voor achtergrondoperaties. Als gebruikers operaties consistent weigeren, retourneert de signer een &amp;ldquo;afgewezen&amp;rdquo;-status om herhaalde prompts te voorkomen.&lt;/p>
&lt;p>&lt;strong>Implementaties:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a> is de primaire NIP-55-signer voor Android. Clients die NIP-55 ondersteunen zijn onder meer &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise&lt;/a>, &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#unfiltered-v106">Unfiltered&lt;/a>, en andere. Webapplicaties kunnen niet direct signer-responses ontvangen en moeten callback-URL&amp;rsquo;s of klembordoperaties gebruiken.&lt;/p>
&lt;p>&lt;strong>Relatie met Andere Ondertekenings-NIPs:&lt;/strong>&lt;/p>
&lt;p>NIP-55 is een aanvulling op &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> (browserextensies) en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (remote ondertekening via relays). Waar NIP-07 desktopbrowsers afhandelt en NIP-46 cross-device-ondertekening verzorgt, biedt NIP-55 native Android-integratie met minimale latentie.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-60-cashu-wallet">NIP Deep Dive: NIP-60 (Cashu Wallet)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/60.md">NIP-60&lt;/a> definieert hoe &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> ecash-wallets hun status opslaan op Nostr-relays, waardoor cross-applicatie walletsynchronisatie mogelijk wordt. Met &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#ridestr-v026">Ridestr v0.2.6&lt;/a> die NIP-60 gebruikt voor walletsynchronisatie tussen apparaten, verdient het protocol aandacht.&lt;/p>
&lt;p>&lt;strong>Event Kinds:&lt;/strong>&lt;/p>
&lt;p>NIP-60 gebruikt vier eventtypen. Het vervangbare kind 17375 slaat walletconfiguratie op inclusief mint-URL&amp;rsquo;s en een speciale prive-sleutel voor het ontvangen van P2PK ecash-betalingen. Token-events (kind 7375) bevatten onbestede cryptografische bewijzen, terwijl bestedingsgeschiedenis (kind 7376) transacties registreert voor gebruikerstransparantie. Een optioneel kind 7374 volgt mint-betalingsoffertes.&lt;/p>
&lt;p>&lt;strong>Walletarchitectuur:&lt;/strong>&lt;/p>
&lt;p>Walletstatus leeft op relays, waardoor het toegankelijk is over applicaties heen. Het wallet-event van een gebruiker bevat versleutelde verwijzingen naar Cashu-mints en een walletspecifieke prive-sleutel gescheiden van de Nostr-identiteit van de gebruiker. Deze scheiding is van belang: de walletsleutel verzorgt ecash-operaties terwijl de Nostr-sleutel sociale functies afhandelt.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">17375&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;nip44-encrypted-wallet-config&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [[&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;cashu-wallet&amp;#34;&lt;/span>]]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>Bewijsbeheer:&lt;/strong>&lt;/p>
&lt;p>Cashu-bewijzen zijn toonderinstrumenten. Zodra besteed, wordt een bewijs ongeldig. NIP-60 beheert dit via een rollover-mechanisme: bij het besteden maken clients een nieuw token-event met resterende onbestede bewijzen en verwijderen het origineel via &lt;a href="https://nostrcompass.org/nl/topics/nip-09/">NIP-09&lt;/a>. Vernietigde token-ID&amp;rsquo;s gaan in een &lt;code>del&lt;/code>-veld voor statusregistratie.&lt;/p>
&lt;p>Clients moeten periodiek bewijzen valideren tegen mints om eerder bestede credentials te detecteren. Meerdere token-events per mint zijn toegestaan, en bestedingsgeschiedenisevents helpen gebruikers transacties te volgen, al zijn ze optioneel.&lt;/p>
&lt;p>&lt;strong>Beveiligingsmodel:&lt;/strong>&lt;/p>
&lt;p>Alle gevoelige data gebruikt &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-versleuteling. De prive-sleutel van de wallet verschijnt nooit in leesbare tekst. Aangezien relays versleutelde blobs opslaan zonder de inhoud te begrijpen, blijft de walletstatus privaat, zelfs op onvertrouwde relays.&lt;/p>
&lt;p>&lt;strong>Implementaties:&lt;/strong>&lt;/p>
&lt;p>Wallets die NIP-60 ondersteunen zijn onder meer &lt;a href="https://github.com/gandlafbtc/nutsack">Nutsack&lt;/a> en &lt;a href="https://github.com/cashubtc/eNuts">eNuts&lt;/a>. Clients zoals &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-25-newsletter/#ridestr-v026">Ridestr&lt;/a> gebruiken NIP-60 voor synchronisatie tussen apparaten, waardoor gebruikers op desktop kunnen opwaarderen en vanaf mobiel kunnen besteden zonder handmatige overdrachten.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Bouw je iets of heb je nieuws te delen, neem dan contact op via &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">&lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #10</title><link>https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Een Blossom lokale cachelaag neemt vorm aan nu onafhankelijke projecten convergeren op offline mediajuurdgang voor Android. Alby lanceert een &lt;a href="https://sandbox.albylabs.com">NWC-ontwikkelaarssandbox&lt;/a> voor het bouwen en testen van Nostr Wallet Connect-integraties zonder echt geld te riskeren. Concurrerende voorstellen voor AI-agentcommunicatie op Nostr arriveren in dezelfde week van twee auteurs. fiatjaf verwijdert ongebruikte velden uit &lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11&lt;/a> en schrapt retentiebeleid, landcodes, privacybeleid en communityvoorkeurstags die relay-operators nooit hebben overgenomen. &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85&lt;/a> merget richtlijnen voor vindbaarheid van serviceproviders voor Trusted Assertions. Een nieuwe &lt;code>D&lt;/code>-tag in &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52&lt;/a> maakt daggranulaire tijdstempelindexering van agendagebeurtenissen mogelijk. Nieuwe projecten zijn onder meer &lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> voor gedecentraliseerde kaarttegelverspreiding, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> voor MLS-versleuteld berichtenverkeer, &lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> voor FROST-drempelondertekening op Android, &lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> voor inhoudsgeadresseerde opslag met Nostr-integratie, en &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> voor het delen van inhoud naar Nostr vanuit elke Android-app. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> merget 11 NWC-PR&amp;rsquo;s die dubbele wallet-ondersteuning en automatische servicelifecycle toevoegen. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a> levert een &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">ingebouwde Lightning-wallet&lt;/a> via NWC-integratie. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereidt zich voor op Android App Store-release terwijl HAVEN &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a> bereikt met ondersteuning voor meerdere npubs en cloudback-up. De deep dives van deze week behandelen het Trusted Assertions-systeem van NIP-85 voor het delegeren van Web of Trust-berekeningen aan serviceproviders, en het Calendar Events-protocol van NIP-52 na de update voor daggranulaire indexering.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Een Blossom lokale cachelaag neemt vorm aan nu onafhankelijke projecten convergeren op offline mediajuurdgang voor Android. Alby lanceert een &lt;a href="https://sandbox.albylabs.com">NWC-ontwikkelaarssandbox&lt;/a> voor het bouwen en testen van Nostr Wallet Connect-integraties zonder echt geld te riskeren. Concurrerende voorstellen voor AI-agentcommunicatie op Nostr arriveren in dezelfde week van twee auteurs. fiatjaf verwijdert ongebruikte velden uit &lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11&lt;/a> en schrapt retentiebeleid, landcodes, privacybeleid en communityvoorkeurstags die relay-operators nooit hebben overgenomen. &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85&lt;/a> merget richtlijnen voor vindbaarheid van serviceproviders voor Trusted Assertions. Een nieuwe &lt;code>D&lt;/code>-tag in &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52&lt;/a> maakt daggranulaire tijdstempelindexering van agendagebeurtenissen mogelijk. Nieuwe projecten zijn onder meer &lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> voor gedecentraliseerde kaarttegelverspreiding, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> voor MLS-versleuteld berichtenverkeer, &lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> voor FROST-drempelondertekening op Android, &lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> voor inhoudsgeadresseerde opslag met Nostr-integratie, en &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> voor het delen van inhoud naar Nostr vanuit elke Android-app. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> merget 11 NWC-PR&amp;rsquo;s die dubbele wallet-ondersteuning en automatische servicelifecycle toevoegen. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a> levert een &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">ingebouwde Lightning-wallet&lt;/a> via NWC-integratie. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereidt zich voor op Android App Store-release terwijl HAVEN &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a> bereikt met ondersteuning voor meerdere npubs en cloudback-up. De deep dives van deze week behandelen het Trusted Assertions-systeem van NIP-85 voor het delegeren van Web of Trust-berekeningen aan serviceproviders, en het Calendar Events-protocol van NIP-52 na de update voor daggranulaire indexering.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="blossom-lokale-cachelaag-ontstaat">Blossom Lokale Cachelaag Ontstaat&lt;/h3>
&lt;p>Meerdere onafhankelijke projecten convergeren op hetzelfde probleem: offline toegang tot &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> media op mobiele apparaten.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Morganite">Morganite&lt;/a>, een nieuwe Android-app van greenart7c3 (de ontwikkelaar achter &lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a> en &lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a>), implementeert client-side caching voor Blossom-media. Gebruikers hebben toegang tot eerder bekeken afbeeldingen en bestanden zonder netwerkverbinding.&lt;/p>
&lt;p>&lt;a href="https://github.com/hardran3/Aerith">Aerith&lt;/a> bracht &lt;a href="https://github.com/hardran3/Aerith/releases/tag/v0.2">v0.2&lt;/a> uit met beeldlabeling, bulk mirror/tag/verwijder-bewerkingen, filteren op label en bestandstype, plus initiële lokale Blossom-cacheondersteuning. Aerith is een beheerinterface voor gebruikers die media op meerdere Blossom-servers opslaan en hun blobs willen organiseren en spiegelen.&lt;/p>
&lt;p>Een nieuwe &lt;a href="https://github.com/hzrd149/blossom/blob/master/implementations/local-blossom-cache.md">implementatiehandleiding voor lokale cache&lt;/a> in de Blossom-specificatie documenteert client-side blobopslag, terwijl &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> (van dezelfde ontwikkelaar als Aerith) Blossom-uploadintegratie toevoegt aan zijn Android deel-naar-Nostr-flow. Vier onafhankelijke projecten convergeerden deze week op hetzelfde probleem: een toegewijde caching-app, een mediabeheerder, een referentiespecificatie en een deeltool met Blossom-integratie, alle vier met persistente lokale opslag die verder gaat dan eenvoudig uploaden en ophalen.&lt;/p>
&lt;h3 id="alby-nwc-ontwikkelaarssandbox">Alby NWC-Ontwikkelaarssandbox&lt;/h3>
&lt;p>&lt;a href="https://sandbox.albylabs.com">Alby&lt;/a> lanceerde een sandboxomgeving voor ontwikkelaars die bouwen met &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">Nostr Wallet Connect (NIP-47)&lt;/a>. De sandbox biedt een gehoste NWC-walletservice waarmee ontwikkelaars testverbindingen kunnen aanmaken en gesimuleerde betalingen kunnen versturen zonder verbinding te maken met een echte Lightning-wallet, terwijl ze de volledige verzoek/antwoord-cyclus van NWC-events in realtijd kunnen observeren. Ontwikkelaars genereren een &lt;code>nostr+walletconnect://&lt;/code>-verbindingsstring vanuit de sandbox en geven die door aan hun client. De sandbox toont vervolgens de resulterende kind 23194-verzoek- en kind 23195-antwoordevents terwijl die tussen client en walletservice vloeien.&lt;/p>
&lt;p>Dit verlaagt de drempel voor nieuwe NWC-integraties. Eerder vereiste testen een persoonlijke Lightning-wallet of een zelf gehoste NWC-service. De sandbox abstraheert dat weg en geeft ontwikkelaars een directe feedbacklus voor het implementeren van de methoden &lt;code>pay_invoice&lt;/code>, &lt;code>get_balance&lt;/code>, &lt;code>make_invoice&lt;/code>, &lt;code>lookup_invoice&lt;/code> en &lt;code>list_transactions&lt;/code> tegen een live NWC-eindpunt.&lt;/p>
&lt;h3 id="ai-agent-nips-arriveren">AI-Agent NIPs Arriveren&lt;/h3>
&lt;p>Voorstellen voor AI-agentcommunicatie op Nostr verschenen binnen dagen van elkaar, elk met een andere aanpak.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2226">NIP-XX: AI Agent Messages&lt;/a> van joelklabo definieert een volledig protocol voor AI-agentinteractie: event kinds voor prompts, antwoorden, streaming delta&amp;rsquo;s, statusupdates, tooltelemetrie, fouten, annuleringen en capability-discovery. Een &lt;code>ai.info&lt;/code>-discoveryevent (kind 31340, vervangbaar) laat agents hun ondersteunde modellen, tools met schema&amp;rsquo;s, streamingondersteuning en tarieflimieten aankondigen. Het voorstel van joelklabo omvat run-correlatie via prompt-ID, sessiebeheer, stream-reconciliatie met volgordebepaling, en &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a>-richtlijnen voor metadataprivacy.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2220">NIP-AE: Agents&lt;/a> van pablof7z neemt een andere aanpak en definieert kinds voor agentinstantiëring: definities en lessen. Dit zijn de event-typen die pablof7z gebruikt in &lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>, het autonome leersysteem gebouwd op Nostr. Een begeleidend voorstel, &lt;a href="https://github.com/nostr-protocol/nips/pull/2221">NIP-AD: MCP Server and Skill Announcements&lt;/a>, eveneens van pablof7z, definieert events voor het aankondigen van &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-servers en vaardigheden op Nostr. &lt;a href="https://nostrcompass.org/nl/topics/nip-22/">NIP-22&lt;/a>-commentaar wordt ondersteund, zodat de community MCP-servers direct op Nostr kan bespreken en beoordelen.&lt;/p>
&lt;p>NIP-XX bestrijkt volledige agentcommunicatie terwijl NIP-AE en NIP-AD identiteit en tool-discovery adresseren. Deze voorstellen kunnen convergeren tot een uniforme standaard of naast elkaar bestaan als complementaire lagen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="haven-v120-rc3">HAVEN v1.2.0-rc3&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/haven">HAVEN&lt;/a>, de alles-in-één persoonlijke relay die vier relayfuncties bundelt met een &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-mediaserver, bereikte &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a>. Deze release candidate voegt ondersteuning toe voor meerdere npubs, waardoor één HAVEN-instantie meerdere Nostr-identiteiten kan bedienen. Eerdere RC&amp;rsquo;s voegden &lt;code>--from-cloud&lt;/code>- en &lt;code>--to-cloud&lt;/code>-vlaggen toe voor cloudback-up (RC2) en losten een bug voor dubbel tellen in Web of Trust op (RC1).&lt;/p>
&lt;h3 id="mostro-mobile-v120-ingebouwde-lightning-wallet">Mostro Mobile v1.2.0: Ingebouwde Lightning-Wallet&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, de mobiele client voor de &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> P2P Bitcoin-exchange (&lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#mostro-brengt-eerste-publieke-beta-uit">v1.1.0 behandeld vorige week&lt;/a>), bracht &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">v1.2.0&lt;/a> uit met een ingebouwde Lightning-wallet via volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NWC (NIP-47)&lt;/a>-integratie. Kopers en verkopers hoeven niet meer van app te wisselen om facturen af te handelen. De app detecteert hold invoices voor verkopers en betaalt die automatisch via de verbonden wallet, terwijl kopers automatische factuurgeneratie krijgen. De release volgt op &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.1%2B1">v1.1.1&lt;/a> van eerder in de week, dat ondersteuning voor meerdere Mostro-nodes toevoegde met een samengesteld register van vertrouwde instanties, kind 0 metadataophaling voor knooppuntweergave, aangepast knooppuntbeheer via pubkey en automatische terugval als een geselecteerde node offline gaat.&lt;/p>
&lt;p>Aan de serverkant landde &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.2">Mostro v0.16.2&lt;/a> met fixes voor dubbele dev fee-betalingen, snelheidsbegrenzing op het RPC-eindpunt voor wachtwoordvalidatie, en correcte geschillenopruiming bij coöperatieve annulering.&lt;/p>
&lt;p>Een nieuw begeleidend project, &lt;a href="https://github.com/MostroP2P/mostro-skill">mostro-skill&lt;/a>, stelt agents in staat te handelen op Mostro via Nostr.&lt;/p>
&lt;h3 id="aerith-v02">Aerith v0.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/hardran3/Aerith">Aerith&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-afbeeldingsbeheerder, bracht &lt;a href="https://github.com/hardran3/Aerith/releases/tag/v0.2">v0.2&lt;/a> uit met beeldlabels voor het organiseren van media, bulk mirror/tag/verwijder-bewerkingen over servers, filteren op label en bestandstype, plus initiële lokale cacheondersteuning. Zie de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#blossom-lokale-cachelaag-ontstaat">Nieuwssectie&lt;/a> voor context over de bredere lokale cachetrend.&lt;/p>
&lt;h3 id="mapnolia-gedecentraliseerde-kaarttegels-via-nostr">Mapnolia: Gedecentraliseerde Kaarttegels via Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> is een nieuwe georuimtelijke dataserver die &lt;a href="https://github.com/protomaps/PMTiles">PMTiles&lt;/a>-kaartarchieven opdeelt in geografische regio&amp;rsquo;s en die aankondigt via Nostr voor gedecentraliseerde ontdekking. Het publiceert kind 34444-geparametriseerde vervangbare events naar Nostr-relays met een volledige index van kaarttegelstukken met laagmetadata, geohashregio&amp;rsquo;s, bestandsreferenties en &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-serverdetails.&lt;/p>
&lt;p>Clients ontdekken en halen kaartdata op via het Nostr-netwerk in plaats van gecentraliseerde tegelservers, waarbij aankondigingsevents genoeg metadata bevatten om alleen de benodigde geografische regio&amp;rsquo;s op te vragen bij vermelde Blossom-servers. Mapnolia is het eerste project dat georuimtelijke datadistributie naar Nostr brengt, en opent mogelijkheden voor offlinecapabele kaarttoepassingen.&lt;/p>
&lt;h3 id="pika-marmot-gebaseerd-versleuteld-berichtenverkeer">Pika: Marmot-Gebaseerd Versleuteld Berichtenverkeer&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> is een nieuwe end-to-end versleutelde berichtenapp voor iOS en Android die het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol gebruikt, dat &lt;a href="https://nostrcompass.org/nl/topics/mls/">Messaging Layer Security (MLS)&lt;/a> over Nostr-relays legt. De architectuur scheidt verantwoordelijkheden in een Rust-kern (&lt;code>pika_core&lt;/code>) die MLS-statusbeheer en berichtversleuteling/-ontsleuteling over Nostr-relays afhandelt, met dunne native UI-shells in SwiftUI (iOS) en Kotlin (Android). Status stroomt eenzijdig: de UI verzendt acties naar de Rust-actor, die status muteert en momentopnames met revisienummers teruggeeft aan de UI via UniFFI en JNI-bindingen.&lt;/p>
&lt;p>Pika voegt zich bij een groeiend veld van MLS-op-Nostr-berichtenapps naast &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, &lt;a href="https://github.com/VectorPrivacy">Vector&lt;/a> en &lt;a href="https://0xchat.com">0xchat&lt;/a>. Alle gebruiken Nostr-relays als transportlaag voor MLS-versleutelde cijfertekst, waardoor relay-operators de berichtinhoud niet kunnen lezen. Pika gebruikt de Marmot Development Kit (MDK) voor zijn MLS-implementatie en nostr-sdk voor relayconnectiviteit.&lt;/p>
&lt;h3 id="keep-frostnltopicsfrost-drempelondertekening-voor-android">Keep: &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a>-Drempelondertekening voor Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> is een nieuwe Android-applicatie voor &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a>-drempelondertekening waarbij geen enkel apparaat de volledige privésleutel bezit. Het implementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android Signer) en &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (remote signing), zodat compatibele Nostr-clients handtekeningen kunnen aanvragen terwijl sleutelmateriaal verdeeld blijft over apparaten. De standaardconfiguraties zijn 2-van-3 en 3-van-5, hoewel elke t-van-n-drempel wordt ondersteund.&lt;/p>
&lt;p>Keep&amp;rsquo;s gedistribueerde sleutelgeneratie (DKG)-ceremonie verloopt over Nostr-relays met aangepaste event kinds: kind 21101 voor groepsaankondigingen, kind 21102 voor ronde 1-commitmentpolynomen (openbaar uitgezonden) en kind 21103 voor ronde 2-geheime aandelen (&lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> versleuteld punt-tot-punt tussen deelnemers). De groepsprivésleutelscalairewaarde wordt tijdens DKG nergens berekend of samengesteld. Elk apparaat bezit alleen zijn polynoomsafhandelingsaandeel, en elk willekeurig t aandelen kunnen een geldige Schnorr-handtekening produceren via een tweerondig commit-dan-onderteken-protocol. De resulterende 64-byte handtekening is niet te onderscheiden van een Schnorr-handtekening van één ondertekenaar. Achter de schermen gebruikt Keep de &lt;code>frost-secp256k1-tr&lt;/code>-crate van de Zcash Foundation met Taproot-aanpassing, zodat de groepspublieke sleutel direct als Nostr npub werkt.&lt;/p>
&lt;p>Keep voegt zich bij de &lt;a href="https://frostr.org">Frostr&lt;/a>-familie van projecten naast &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop">Igloo Desktop&lt;/a>, &lt;a href="https://github.com/FROSTR-ORG/igloo-android">Igloo for Android&lt;/a>, &lt;a href="https://github.com/FROSTR-ORG/frost2x">Frost2x&lt;/a> en &lt;a href="https://github.com/FROSTR-ORG/igloo-ios">Igloo for iOS&lt;/a>, wat de opties voor drempelsleutelbeheer op Nostr uitbreidt.&lt;/p>
&lt;h3 id="prism-deel-alles-naar-nostr-vanuit-android">Prism: Deel Alles naar Nostr vanuit Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> is een nieuwe Android-app (Kotlin/Jetpack Compose, API 26+) die zich registreert als systeemdoelwit voor delen, waarmee gebruikers tekst, URL&amp;rsquo;s, afbeeldingen en video naar Nostr kunnen publiceren vanuit elke app op hun telefoon. Gedeelde URL&amp;rsquo;s passeren een stripper voor trackingparameters voordat ze worden samengesteld tot notities. Prism haalt OpenGraph-metadata op om rijke linkvoorbeelden te genereren en rendert native Nostr-referenties (&lt;code>note1&lt;/code>, &lt;code>nevent1&lt;/code>) inline.&lt;/p>
&lt;p>De planningsengine gebruikt een hybride &lt;code>AlarmManager&lt;/code>/&lt;code>WorkManager&lt;/code>-aanpak om Android-batterijoptimalisaties te omzeilen: AlarmManager verzorgt nauwkeurige wektijden terwijl versnelde WorkManager-taken aflevering garanderen, met exponentiële backoff-herpoging voor offlinescenario&amp;rsquo;s. Media-uploads verlopen via configureerbare &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers met miniatuurweergavegeneratie voor afbeeldingen en videoframes. Alle event-ondertekening wordt gedelegeerd aan &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> externe ondertekenaars zoals &lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a>, met ondersteuning voor meerdere accounts voor het wisselen tussen identiteiten. Prism ondersteunt ook &lt;a href="https://nostrcompass.org/nl/topics/nip-84/">NIP-84 (Highlights)&lt;/a>-posts. Van dezelfde ontwikkelaar als &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#aerith-v02">Aerith&lt;/a>.&lt;/p>
&lt;h3 id="hashtree-inhoudsgeadresseerde-opslag-met-nostr-integratie">Hashtree: Inhoudsgeadresseerde Opslag met Nostr-Integratie&lt;/h3>
&lt;p>&lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> is een bestandssysteemgebaseerd inhoudsgeadresseerd blobopslagsysteem dat Merkle-wortels op Nostr publiceert om muteerbare npub/pad-adressen te maken. Het systeem gebruikt &amp;ldquo;domme opslag&amp;rdquo; die werkt met elke sleutel-waarde-opslag en deelt inhoud op in 2MB-blokken geoptimaliseerd voor &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-uploads. Anders dan BitTorrent is geen actieve Merkle-bewijsberekening nodig; sla blobs gewoon op en haal ze op via hash.&lt;/p>
&lt;p>De Nostr-integratie maakt git remote URL&amp;rsquo;s mogelijk zoals &lt;code>htree://npub.../repo-name&lt;/code> voor het klonen van repositories, met commando&amp;rsquo;s als &lt;code>htree publish mydata &amp;lt;hash&amp;gt;&lt;/code> om inhouds-hashes te publiceren naar &lt;code>npub.../mydata&lt;/code>-adressen. De uitgebreide CLI ondersteunt zowel versleutelde (standaard) als openbare opslagmodi, vastpinnen van inhoud, pushen naar Blossom-servers en het beheren van Nostr-identiteiten. Elk opgeslagen item is ofwel ruwe bytes of een boomknooppunt, wat een basis biedt voor gedecentraliseerde inhoudsdistributie via het relaynetwerk van Nostr.&lt;/p>
&lt;h3 id="espy-kleurpalet-vastleggen-op-shakespeare">Espy: Kleurpalet vastleggen op Shakespeare&lt;/h3>
&lt;p>&lt;a href="https://espy.you">Espy&lt;/a>, gebouwd op het &lt;a href="https://soapbox.pub/tools/shakespeare/">Shakespeare&lt;/a>-platform, laat gebruikers kleurpaletten vastleggen uit foto&amp;rsquo;s en ze delen als Nostr-events. Shakespeare is een AI-aangedreven app-bouwer die gebruikers authenticeert via NIP-07-browserextensies en ingebouwde Nostr-relayconnectiviteit biedt, zodat ontwikkelaars apps kunnen uitbrengen zonder eigen sleutelbeheer of relaypool te implementeren. Espy extraheert dominante kleuren uit camera-input naar deelbare paletkaarten die vindbaar zijn via standaard Nostr-feeds.&lt;/p>
&lt;h3 id="flotilla-164">Flotilla 1.6.4&lt;/h3>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, hodlbod&amp;rsquo;s Discord-achtige Nostr-client die relays als groepen organiseert, bracht &lt;a href="https://gitea.coracle.social/coracle/flotilla/releases/tag/1.6.4">1.6.4&lt;/a> uit. De Coracle-familie van projecten is gemigreerd van GitHub naar een zelf gehoste &lt;a href="https://gitea.coracle.social/coracle">Gitea-instantie&lt;/a>. Deze release voegt pushmeldingen via NIP-9a toe en een wallet-ontvangstflow, plus geclassificeerde vermeldingen en URL-ondersteuning voor ruimtes. Interfaceverbeteringen omvatten opgeschoonde modals en meldingafhandeling. Ruimte dempen en veilige gebiedsinsets op mobiel ronden de wijzigingen af, naast fixes voor Safari-afbeeldinguploads en agendagebeurtenisdetails.&lt;/p>
&lt;h3 id="shosho-v0120">Shosho v0.12.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, de mobiele livestreamingapp met Nostr-integratie, bracht &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.12.0">v0.12.0&lt;/a> uit. Deze release voegt video-clips toe met in-speler-antwoorden en aangepaste emoji-integratie. Threadbeveiliging blokkeert indirecte vermeldingsspam, en een nieuw QR-deelfunctie laat gebruikers profielen offline uitwisselen. Een nieuwe horizontale afspeelmodus geeft streams een Twitch-achtige kijkervaring, en het bladerscherm toont nu maker-clips naast livestreams.&lt;/p>
&lt;h3 id="granary-v100">Granary v10.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/snarfed/granary">Granary&lt;/a>, een sociale web-vertaalbibliotheek die data converteert tussen Nostr, Bluesky, ActivityPub en andere platformen naar een gemeenschappelijk formaat, bracht &lt;a href="https://github.com/snarfed/granary/releases/tag/v10.0">v10.0&lt;/a> uit met ingrijpende wijzigingen. De release schakelt de standaard ActivityStreams 1-ID&amp;rsquo;s van Nostr van bech32 naar hex en voegt uitgebreide Nostr-ondersteuning toe, inclusief &lt;a href="https://github.com/nostr-protocol/nips/blob/master/27.md">NIP-27&lt;/a>-vermeldingsparsering en artikeltags. Een nieuwe optie voor meerdere outputs bij converters stelt ontwikkelaars in staat batch-vertalingen tussen protocollen uit te voeren.&lt;/p>
&lt;h3 id="nostr-mcp-server-v300">Nostr MCP Server v3.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/AustinKelsay/nostr-mcp-server">Nostr MCP Server&lt;/a>, een &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-server die AI-agents in staat stelt te communiceren met het Nostr-netwerk, bracht &lt;a href="https://github.com/AustinKelsay/nostr-mcp-server/releases/tag/v3.0.0">v3.0.0&lt;/a> uit. Deze hoofdrelease voegt sociale acties toe (volgen, reacties, reposts, antwoorden) en relaybeheer van lijsten met &lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">NIP-65&lt;/a>-ondersteuning plus optionele &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a>-authenticatie. Directe berichten via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> zijn ook nieuw. De release is een praktisch hulpmiddel voor agents die op Nostr opereren, passend bij de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#ai-agent-nips-arriveren">AI-agent NIP-voorstellen&lt;/a> van deze week.&lt;/p>
&lt;h3 id="aegis-v038">Aegis v0.3.8&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZharlieW/Aegis">Aegis&lt;/a>, de platformonafhankelijke Nostr-ondertekenaar, bracht &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.8">v0.3.8&lt;/a> uit met meertalige UI-ondersteuning en een incrementele updatebeheerder voor zijn ingebouwde Nostr-appbrowser. Het nieuwe updatemechanisme maakt incrementele diff&amp;rsquo;s tegen de lokale status, waardoor de in-app-directory van Nostr-webapps actueel blijft met minder bandbreedtegebruik. De release introduceert ook 5-minuten sleutelmateriaalcaching om databaserondreizen te verminderen bij het ondertekenen van meerdere events achtereen.&lt;/p>
&lt;h3 id="snstr-v031">SNSTR v0.3.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/AustinKelsay/snstr">SNSTR&lt;/a> (Secure Nostr Software Toolkit for Renegades), een TypeScript-bibliotheek voor het Nostr-protocol, bracht &lt;a href="https://github.com/AustinKelsay/snstr/releases/tag/v0.3.1">v0.3.1&lt;/a> uit. De release voegt pakketverificatiecontroles toe die ervoor zorgen dat alle ingangspunten zijn opgenomen in npm-tarballpakketten, met CI-handhaving op Node en Bun. &lt;a href="https://github.com/AustinKelsay/snstr/releases/tag/v0.3.0">v0.3.0&lt;/a> verscheen in dezelfde week.&lt;/p>
&lt;h3 id="citrine-v200-pre1">Citrine v2.0.0-pre1&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a>, de Android Nostr-relay van greenart7c3, bracht &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v2.0.0-pre1">v2.0.0-pre1&lt;/a> uit met prestatieverbeteringen door geoptimaliseerde database-indexen en beter Kotlin-coroutinebeheer. De release verbetert ook de ondersteuning voor het hosten van webapps, waarbij elke app nu op zijn eigen poort draait.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="primal-android-nwc-infrastructuuruitbreiding">Primal Android: NWC-Infrastructuuruitbreiding&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergede deze week 11 NWC-gerelateerde PR&amp;rsquo;s, als vervolg op de uitbouw die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/#primal-android-ships-nwc-encryption">twee weken geleden begon&lt;/a>. Deze batch voegt dubbele wallet-NWC-ondersteuning toe, automatisch starten/stoppen van service gekoppeld aan backendmeldingen, verbindingsrouting per wallettype en correcte gegevensopruiming bij verwijdering van wallet. De NWC-service beheert nu zijn eigen levenscyclus op basis van de walletverbindingsstatus, waardoor handmatige gebruikersingreep wordt verminderd.&lt;/p>
&lt;h3 id="notedeck-voorbereiding-voor-android-app-store">Notedeck: Voorbereiding voor Android App Store&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de platformonafhankelijke Nostr-client van het &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>-team, mergede deze week &lt;a href="https://github.com/damus-io/notedeck/pull/1287">voorbereiding voor Android App Store-release&lt;/a>. De PR voegt een UGC-nalevingsplan (User Generated Content) toe dat Google Play vereist, inclusief een scherm voor het accepteren van servicevoorwaarden, gebruikersblokkeringen via contextmenu&amp;rsquo;s en instellingen, &lt;a href="https://nostrcompass.org/nl/topics/nip-56/">NIP-56 (Reporting)&lt;/a>-functionaliteit die rapportevents publiceert naar relays, en een sectie Inhoud &amp;amp; Veiligheid in de instellingen. Bouwinfrastructuur is toegevoegd voor het genereren van ondertekende release-APK&amp;rsquo;s en AAB&amp;rsquo;s (Android App Bundles) via nieuwe Makefile-doelen. Een EULA-document stelt een leeftijdseis van 17+ en Nostr-specifieke disclaimers over gedecentraliseerde inhoud vast. De nalevingsfuncties zelf worden uitgebracht in vervolgde PR&amp;rsquo;s; deze merge legt de documentatie- en ondertekeningsgrondslag.&lt;/p>
&lt;p>Aan de Damus iOS-kant landde een fix voor een &lt;a href="https://github.com/damus-io/damus/pull/3593">oneindige laadspinner-regressie&lt;/a> waarbij de spinner oneindig bleef draaien nadat inhoud was geladen.&lt;/p>
&lt;h3 id="nostria-discovery-relays-en-dm-fixes">Nostria: Discovery-Relays en DM-Fixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, de platformonafhankelijke Nostr-client gericht op mondiale schaal, mergede deze week 9 PR&amp;rsquo;s. De meest opvallende voegt &lt;a href="https://github.com/nostria-app/nostria/pull/460">automatische initialisatie van Discovery-Relays&lt;/a> toe voor profielopzoekingen, wat nieuwe gebruikers werkende relayconnectiviteit geeft zonder handmatige configuratie. Andere fixes pakken &lt;a href="https://github.com/nostria-app/nostria/pull/466">DM-tekstgebied-omloop&lt;/a>, &lt;a href="https://github.com/nostria-app/nostria/pull/479">volledigschermvideo-viewportopvulling&lt;/a>, &lt;a href="https://github.com/nostria-app/nostria/pull/481">artikelmetadata-extractie in repost-voorbeelden&lt;/a> en &lt;a href="https://github.com/nostria-app/nostria/pull/458">nostr: URI-omzetting in meldingen&lt;/a> aan.&lt;/p>
&lt;h3 id="camelus-riverpod-v3-migratie">Camelus: Riverpod v3-Migratie&lt;/h3>
&lt;p>&lt;a href="https://github.com/camelus-hq/camelus">Camelus&lt;/a>, de Flutter-gebaseerde Nostr-client, mergede 5 PR&amp;rsquo;s gericht op een &lt;a href="https://github.com/camelus-hq/camelus/pull/158">Riverpod v3 API-migratie&lt;/a> en &lt;a href="https://github.com/camelus-hq/camelus/pull/159">generieke feed-refactoring&lt;/a>. Een &lt;a href="https://github.com/camelus-hq/camelus/pull/161">ingesloten notitiecache&lt;/a> vermijdt overbodige relay-ophaalacties voor geciteerde notities.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Samengevoegd:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85: Service Provider Discoverability&lt;/a>&lt;/strong>: vitorpamplona voegde richtlijnen toe voor clientontdekking van &lt;a href="https://nostrcompass.org/nl/topics/trusted-relay-assertions/">NIP-85 Trusted Assertions&lt;/a>-serviceproviders, inclusief relay-hints en algoritme-specifieke servicesleutels. Zie de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#nip-deep-dive-nip-85-trusted-assertions">deep dive hieronder&lt;/a> voor volledige behandeling.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11: Relay-informatieOpruiming&lt;/a>&lt;/strong>: fiatjaf verwijderde &lt;code>privacy_policy&lt;/code>, de &lt;code>retention&lt;/code>-array, &lt;code>relay_countries&lt;/code> en het communityvoorkeurenblok uit &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a>. Relay-operators vulden deze velden zelden in en clients handelden er niet naar.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52: Daggranulaire Tijdstempeltag&lt;/a>&lt;/strong>: staab voegde een verplichte &lt;code>D&lt;/code>-tag toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> tijdgebaseerde agendagebeurtenissen (kind 31923) die het daggranulaire Unix-tijdstempel bevat, berekend als &lt;code>floor(unix_seconds / 86400)&lt;/code>. Meerdere &lt;code>D&lt;/code>-tags dekken meerdaagse evenementen, waardoor efficiënte temporele indexering mogelijk wordt zonder volledige tijdstempels te hoeven parseren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2210">NIP-47: Vereenvoudiging&lt;/a>&lt;/strong>: De vereenvoudigings-PR &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/">besproken in Nieuwsbrief #9&lt;/a> mergede deze week en verwijderde &lt;code>multi_pay_invoice&lt;/code> en &lt;code>multi_pay_keysend&lt;/code> uit &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Zie &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/#nip-deep-dive-nip-47-nostr-wallet-connect">Nieuwsbrief #8&lt;/a> voor de volledige NWC-protocol deep dive.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2211">NIP-74: Podcasts&lt;/a>&lt;/strong>: Behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/">Nieuwsbrief #8&lt;/a>, zag dit podcastspecificatievoorstel deze week verhitte discussie. staab merkte op dat er al minstens drie concurrerende podcaststandaarden in het wild bestaan, en derekross wees op een bestaande zes maanden oude implementatie met actieve apps en podcasts. De weg vooruit vereist convergentie tussen implementaties voordat een NIP-nummer kan worden toegewezen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2226">NIP-XX: AI Agent Messages&lt;/a>&lt;/strong>: joelklabo stelt een volledig AI-agentcommunicatieprotocol voor met event kinds voor prompts, antwoorden, streaming, tooltelemetrie, fouten en capability-discovery. Zie de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-18-newsletter/#ai-agent-nips-arriveren">Nieuwssectie&lt;/a> voor de behandeling van alle AI-voorstellen van deze week.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1893">NIP-PNS: Private Note Storage&lt;/a>&lt;/strong>: Het privénotitiesysteem van jb55 definieert kind 1080-events voor het opslaan van versleutelde persoonlijke notities op relays zonder te onthullen wie ze schreef. Het schema leidt een deterministisch pseudoniem sleutelpaar af van de nsec van de gebruiker via HKDF: &lt;code>pns_key = hkdf_extract(ikm=device_key, salt=&amp;quot;nip-pns&amp;quot;)&lt;/code>, en genereert vervolgens een secp256k1-sleutelpaar van die afgeleide sleutel. Een tweede afleiding produceert een symmetrische versleutelingssleutel: &lt;code>pns_nip44_key = hkdf_extract(ikm=pns_key, salt=&amp;quot;nip44-v2&amp;quot;)&lt;/code>. Binnenste notities worden versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> v2 met deze sleutel en gepubliceerd onder de pseudonieme pubkey, zodat relays kind 1080-events zien van een identiteit die niet gekoppeld is aan de hoofdsleutel van de gebruiker. Anders dan &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wraps is PNS niet te spammen (de pseudonieme sleutel is deterministisch, niet willekeurig) en draagt geen publieke metadata (geen &lt;code>p&lt;/code>-tags nodig omdat er geen ontvanger is). Deze week plaatste jb55 bevindingen van de implementatie van PNS in de Rust-backend van Notedeck (&lt;code>enostr::pns&lt;/code>-module). Hij stelde vast dat de &lt;code>hkdf_extract&lt;/code>-aanroep in de specificatie dubbelzinnig is omdat RFC 5869 HKDF twee fasen heeft (Extract en Expand) die verschillende uitvoer produceren, en de meeste bibliotheken beide verwachten. Hij verduidelijkte dat &lt;code>pns_nip44_key&lt;/code> de normale ECDH-sleutelovereenstemming van NIP-44 omzeilt en direct als gesprekssleutel wordt gebruikt - een detail dat implementators moeten weten omdat de meeste NIP-44-bibliotheken standaard ECDH gebruiken. Hij markeerde ook een ongedefinieerde variabele in de TypeScript-referentie-implementatie. De PR, oorspronkelijk uit april 2025, wordt nu actief geïmplementeerd.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2220">NIP-AE: Agents&lt;/a>&lt;/strong>: pablof7z definieert vier event kinds voor agentidentiteit op Nostr, ontleend aan zijn werk aan &lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>. De basissjabloon is kind 4199 (Agent Definition), met titel, rolomschrijving, systeeminstructies, tooltoewijzingen en versie. Gedragsmodificatoren leven in kind 4201 (Agent Nudge), dat &lt;code>only-tool&lt;/code>-, &lt;code>allow-tool&lt;/code>- en &lt;code>deny-tool&lt;/code>-tags gebruikt voor runtimecapabiliteitsbeheer. Agents publiceren wat ze leren als kind 4129 (Agent Lesson)-events, gecategoriseerd en gekoppeld aan de bovenliggende definitie via &lt;code>e&lt;/code>-tags, verfijnbaar via &lt;a href="https://nostrcompass.org/nl/topics/nip-22/">NIP-22&lt;/a>-commentaarreeksen. Eigendomsverificatie gebruikt kind 14199, een vervangbaar event waarbij menselijke operators hun agent-pubkeys vermelden, waarmee een bidirectionele keten ontstaat die overeenkomt met de &lt;code>p&lt;/code>-tag in het kind 0-profiel van de agent.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2221">NIP-AD: MCP Server and Skill Announcements&lt;/a>&lt;/strong>: pablof7z definieert events voor het aankondigen van &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-servers en individuele vaardigheden op Nostr. MCP-serveraankondigingen bevatten het eindpunt-URL van de server en de ondersteunde protocolversie naast een lijst van beschikbare tools met hun invoerschema&amp;rsquo;s. &lt;a href="https://nostrcompass.org/nl/topics/nip-22/">NIP-22&lt;/a>-commentaar wordt ondersteund bij serveraankondigingen, zodat de community MCP-servers direct op Nostr kan bespreken en beoordelen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2224">NIP-73: OSM-tagkind&lt;/a>&lt;/strong>: DestBro stelt voor OpenStreetMap-identificatoren toe te voegen aan &lt;a href="https://nostrcompass.org/nl/topics/nip-73/">NIP-73 (External Content IDs)&lt;/a>, dat standaardiseert hoe Nostr-events externe inhoud refereren zoals boeken (ISBN), films (ISAN), podcastfeeds (GUID), geohashes en URL&amp;rsquo;s via &lt;code>i&lt;/code>- en &lt;code>k&lt;/code>-tags. De voorgestelde OSM-kind zou events in staat stellen specifieke kaartfuncties (gebouwen, wegen, parken) te refereren via hun OpenStreetMap-node- of weg-ID, waardoor Nostr-inhoud wordt gekoppeld aan de open geografische database.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2219">NIP-XX: Responsieve Afbeeldingsvarianten&lt;/a>&lt;/strong>: woikos stelt voor &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a>-bestandsmetadataevents uit te breiden met tags voor responsieve afbeeldingsvarianten op verschillende resoluties. Clients kunnen de juiste variant selecteren op basis van weergavegrootte en netwerkomstandigheden, waardoor de bandbreedte wordt beperkt voor mobiele gebruikers die hoge-resolutieafbeeldingen bekijken die worden gehost op &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-85-trusted-assertions">NIP Deep Dive: NIP-85 (Trusted Assertions)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/85.md">NIP-85&lt;/a> definieert een systeem voor het delegeren van dure berekeningen aan vertrouwde serviceproviders die ondertekende resultaten publiceren als Nostr-events. Web of Trust-scores en betrokkenheidsmetrics vereisen het crawlen van veel relays en het verwerken van grote eventvolumes - werk dat onpraktisch is op mobiele apparaten. De &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">merge&lt;/a> van deze week voegde richtlijnen toe over het clientontdekkingsproces voor deze providers.&lt;/p>
&lt;p>&lt;strong>Delegering:&lt;/strong>&lt;/p>
&lt;p>Het berekenen van de Web of Trust-score van een gebruiker vereist het crawlen van volggrafen meerdere stappen diep over vele relays, en het berekenen van nauwkeurige volgersaantallen betekent dedupliceren over het gehele relaynetwerk. Mobiele apparaten en browsercliënts kunnen deze bewerkingen niet uitvoeren, terwijl de resultaten essentieel zijn voor spamfiltering en rangschikking van inhoud. NIP-85 overbrugt dit gat door gebruikers in staat te stellen vertrouwde providers aan te wijzen om de berekeningen uit te voeren en resultaten te publiceren als standaard Nostr-events.&lt;/p>
&lt;p>&lt;strong>Protocolontwerp:&lt;/strong>&lt;/p>
&lt;p>NIP-85 gebruikt vier event kinds voor beweringen over verschillende onderwerptypen. Gebruikersbeweringen (kind 30382) bevatten volgersaantal, post-/antwoord-/reactietellingen, zap-bedragen, genormaliseerde rang (0-100), gemeenschappelijke onderwerpen en actieve uren:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30382&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;e88a691e98d9987c964521dff60025f60700378a4879180dcbbb4a5027850411&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;89&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;followers&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4521&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;first_created_at&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1609459200&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;post_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1283&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reply_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;647&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reactions_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;8920&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_amt_recd&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;850000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_amt_sent&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;320000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_cnt_recd&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;412&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_cnt_sent&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;198&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_avg_amt_day_recd&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1150&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_avg_amt_day_sent&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;430&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reports_cnt_recd&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;2&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reports_cnt_sent&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;0&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;t&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nostr&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;t&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bitcoin&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;active_hours_start&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;14&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;active_hours_end&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;22&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service key signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Eventbeweringen (kind 30383) beoordelen individuele notities met commentaartelling, citatelling, reposts, reacties en zap-gegevens:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30383&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;target event id&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;72&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;comment_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;45&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;quote_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;12&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;repost_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;89&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reaction_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;310&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;23&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;zap_amount&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;125000&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service key signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Voor adresseerbare events (lange-vorm artikelen, wikipagina&amp;rsquo;s) past kind 30384 dezelfde betrokkenheidsmetrics toe op alle versies gezamenlijk. Kind 30385 beoordeelt externe identificatoren (boeken, films, websites, locaties, hashtags) waarnaar wordt verwezen via &lt;a href="https://nostrcompass.org/nl/topics/nip-73/">NIP-73 (External Content IDs)&lt;/a>, dat standaardiseert hoe Nostr-events externe inhoud refereren via &lt;code>i&lt;/code>- en &lt;code>k&lt;/code>-tags:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30385&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;isbn:9780765382030&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;k&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;isbn&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;94&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;comment_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;67&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;reaction_cnt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;203&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;service key signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Elke bewering is een vervangbaar adresseerbaar event waarbij de &lt;code>d&lt;/code>-tag het onderwerp bevat: een pubkey, event-ID, eventadres of NIP-73-identificator. Serviceproviders ondertekenen deze events met hun eigen sleutels, en clients beoordelen ze op basis van vertrouwensrelaties.&lt;/p>
&lt;p>&lt;strong>Providerontdekking:&lt;/strong>&lt;/p>
&lt;p>Gebruikers verklaren welke assertieproviders ze vertrouwen door kind 10040-events te publiceren. Elk item specificeert het assertietype met de provider-pubkey en relay-hint, plus optionele algoritme-varianten:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;user pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">10040&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;30382:rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4fd5e210...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://nip85.nostr.band&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;30382:rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;3d842afe...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://nostr.wine&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;30382:zap_amt_sent&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4fd5e210...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://nip85.nostr.band&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;30383:rank&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4fd5e210...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://nip85.nostr.band&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;user signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Gebruikers kunnen de taglijst in &lt;code>.content&lt;/code> versleutelen met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> om hun providervoorkeuren privé te houden. Clients bouwen een providerlijst op door te controleren welke providers hun gevolgde accounts vertrouwen, waardoor een gedecentraliseerde reputatielaag ontstaat voor de assertieproviders zelf.&lt;/p>
&lt;p>&lt;strong>Beveiligingsmodel:&lt;/strong>&lt;/p>
&lt;p>Providers moeten verschillende servicesleutels gebruiken voor afzonderlijke algoritmen, en een unieke sleutel per gebruiker wanneer algoritmen gepersonaliseerd zijn, om kruiscorrelatie van zoekopdrachten over gebruikers te voorkomen. Elke servicesleutel krijgt een kind 0-metadataevent dat het gedrag van het algoritme beschrijft, waardoor gebruikers transparantie krijgen over wat ze vertrouwen. Assertie-events mogen alleen worden bijgewerkt wanneer de onderliggende gegevens daadwerkelijk veranderen, om onnodige relayverkeer te voorkomen en clients de mogelijkheid te geven resultaten met vertrouwen te cachen.&lt;/p>
&lt;p>&lt;strong>Huidige adoptie:&lt;/strong>&lt;/p>
&lt;p>NIP-85 formaliseert een patroon dat al informeel is ontstaan. De cacheserver van Primal berekent betrokkenheidsmetrics en Web of Trust-scores. &lt;a href="https://gitlab.com/soapbox-pub/antiprimal">Antiprimal&lt;/a>, behandeld in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#antiprimal-standaardconforme-gateway-naar-primals-cache">Nieuwsbrief #9&lt;/a>, koppelt deze berekeningen aan standaard Nostr-clients via NIP-85 event kinds. &lt;a href="https://nostr.band">Nostr.band&lt;/a> beheert de &lt;code>wss://nip85.nostr.band&lt;/code>-relay waarnaar de eigen voorbeelden van de specificatie verwijzen en serveert assertie-events voor zijn zoekindexdata. Aan de clientkant heeft &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> (geschreven door vitorpamplona, die ook deze NIP schreef) experimentele Trusted Assertions-ondersteuning in zijn &lt;code>quartz&lt;/code>-bibliotheek, waarbij assertie-events en serviceproviderverklaringen worden geparseerd. &lt;a href="https://vertexlab.io">Vertex&lt;/a> berekent vergelijkbare Web of Trust-metrics maar &lt;a href="https://vertexlab.io/blog/dvms_vs_nip_85/">koos een andere aanpak&lt;/a>, met een directe API in plaats van NIP-85-events, met als reden het ontdekkingsprobleem en de rekenoverhead van assertiegerichte architecturen. Met NIP-85 kan elke client asserties van elke provider consumeren via een standaard eventformaat, en concurreren providers op nauwkeurigheid terwijl gebruikers kiezen wie ze vertrouwen.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-52-agendagebeurtenissen">NIP Deep Dive: NIP-52 (Agendagebeurtenissen)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/52.md">NIP-52&lt;/a> definieert agendagebeurtenissen op Nostr en biedt clients een standaardmanier om occurrences op specifieke momenten of tussen momenten te vertegenwoordigen en te ontdekken. De &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">D-tag merge&lt;/a> van deze week voegde daggranulaire indexering toe, waardoor een ontbrekend onderdeel in de queryinfrastructuur van de specificatie werd voltooid.&lt;/p>
&lt;p>&lt;strong>Twee Eventtypen:&lt;/strong>&lt;/p>
&lt;p>NIP-52 scheidt agendagebeurtenissen in twee kinds op basis van temporele precisie. Datumgebaseerde events (kind 31922) vertegenwoordigen aaneengesloten occurrences zoals feestdagen of meerdaagse festivals. Ze gebruiken ISO 8601-datumstrings in hun &lt;code>start&lt;/code>- en optionele &lt;code>end&lt;/code>-tags, zonder tijdzoneconsideratie:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event creator pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1735689600&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">31922&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Annual celebration of Bitcoin&amp;#39;s genesis block&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bitcoin-independence-day-2026&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Bitcoin Independence Day&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;start&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;2026-01-03&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;end&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;2026-01-04&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;location&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Worldwide&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;g&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;u4pruydqqv&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;t&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bitcoin&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;organizer-pubkey&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;host&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;r&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://bitcoinindependenceday.com&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event creator signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Tijdgebaseerde events (kind 31923) vertegenwoordigen specifieke momenten met Unix-tijdstempels in hun &lt;code>start&lt;/code>- en optionele &lt;code>end&lt;/code>-tags, plus IANA-tijdzoneidentificatoren (&lt;code>start_tzid&lt;/code>, &lt;code>end_tzid&lt;/code>) voor weergave. Beide kinds zijn geparametriseerde vervangbare events, zodat organisatoren details kunnen bijwerken door een nieuw event te publiceren met dezelfde &lt;code>d&lt;/code>-tag.&lt;/p>
&lt;p>&lt;strong>Kalenders en RSVP&amp;rsquo;s:&lt;/strong>&lt;/p>
&lt;p>Kind 31924-events definiëren kalenders als verzamelingen en refereren events via &lt;code>a&lt;/code>-tags die verwijzen naar kind 31922- of 31923-events via hun adrescoördinaten:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;calendar owner pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">31924&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Nostr community events worldwide&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nostr-community-calendar&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Nostr Community Events&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;31923:&amp;lt;organizer-pubkey&amp;gt;:nostr-meetup-2026&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;31922:&amp;lt;organizer-pubkey&amp;gt;:bitcoin-independence-day-2026&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;calendar owner signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Gebruikers kunnen meerdere kalenders bijhouden (persoonlijk, werk, community) en clients kunnen zich abonneren op kalenders van specifieke pubkeys. Agendagebeurtenissen kunnen een &lt;code>a&lt;/code>-tag bevatten die verwijst naar een kalender om opname te verzoeken, wat collaboratief kalenderbeheer mogelijk maakt waarbij meerdere gebruikers bijdragen aan kalenders die ze niet bezitten.&lt;/p>
&lt;p>RSVP&amp;rsquo;s gebruiken kind 31925, waarbij gebruikers hun aanwezigheidsstatus publiceren samen met een optionele vrij/bezet-indicator:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;attendee pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">31925&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Looking forward to it&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;31923:&amp;lt;organizer-pubkey&amp;gt;:nostr-meetup-2026&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;kind 31923 event id&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;unique-rsvp-id&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;status&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;accepted&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;fb&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;busy&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;organizer-pubkey&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;attendee signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Geldige &lt;code>status&lt;/code>-waarden zijn &amp;ldquo;accepted&amp;rdquo;, &amp;ldquo;declined&amp;rdquo;, &amp;ldquo;tentative&amp;rdquo;, en de optionele &lt;code>fb&lt;/code>-tag markeert de gebruiker als vrij of bezet voor die periode. RSVP-events refereren de &lt;code>a&lt;/code>-tag van de agendagebeurtenis en bevatten de &lt;code>p&lt;/code>-tag van de organisator, zodat de client van de organisator reacties over relays kan samenvoegen.&lt;/p>
&lt;p>&lt;strong>De D-tagtoevoeging:&lt;/strong>&lt;/p>
&lt;p>Vóór de merge van deze week moesten clients die zochten naar events in een datumbereik alle events van een pubkey of kalender ophalen en aan de clientkant filteren. De nieuwe verplichte &lt;code>D&lt;/code>-tag op tijdgebaseerde events (kind 31923) bevat een daggranulaire Unix-tijdstempel berekend als &lt;code>floor(unix_seconds / 86400)&lt;/code>. Meerdaagse events bevatten meerdere &lt;code>D&lt;/code>-tags, één per dag. Relays kunnen events nu indexeren per dag en efficiënt reageren op gefilterde zoekopdrachten, waardoor wat eerder een clientfilterprobleem was nu een relay-indexzoekopdracht wordt.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event creator pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1739836800&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">31923&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Monthly meetup for Nostr developers in Austin&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nostr-meetup-2026&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;title&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Nostr Developer Meetup&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;summary&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Talks and demos from local Nostr builders&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;image&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://example.com/meetup-banner.jpg&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;start&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1740067200&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;end&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1740078000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;start_tzid&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;America/New_York&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;end_tzid&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;America/New_York&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;D&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;20139&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;location&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Bitcoin Commons, Austin TX&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;g&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;9v6knb2pg&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;organizer-pubkey&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;host&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;speaker-pubkey&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;speaker&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;t&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nostr&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;t&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;meetup&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;r&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://bitcoincommons.com&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event creator signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>D&lt;/code>-waarde &lt;code>20139&lt;/code> is gelijk aan &lt;code>floor(1740067200 / 86400)&lt;/code>, waarmee dit event op 20 februari 2025 wordt geplaatst. Clients die zoeken naar &amp;ldquo;alle events deze week&amp;rdquo; sturen een filter met het bijbehorende &lt;code>D&lt;/code>-bereik, en relays retourneren alleen overeenkomende events.&lt;/p>
&lt;p>&lt;strong>Ontwerpkeuzes:&lt;/strong>&lt;/p>
&lt;p>NIP-52 laat terugkerende events bewust weg. De specificatie laat herhalingsregels (RRULE uit iCalendar) volledig buiten beschouwing en delegeert die complexiteit aan clients. Een organisator publiceert individuele events voor elke herhaling, waardoor het datmodel aan de relaykant eenvoudig blijft. Deelnemertags bevatten optionele rollen (&amp;ldquo;host&amp;rdquo;, &amp;ldquo;speaker&amp;rdquo;, &amp;ldquo;attendee&amp;rdquo;), en locatietags kunnen geohash-&lt;code>g&lt;/code>-tags bevatten voor ruimtelijke zoekopdrachten naast voor mensen leesbare adressen.&lt;/p>
&lt;p>&lt;strong>Implementaties:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://github.com/zmeyer44/flockstr">Flockstr&lt;/a> is de primaire agendaclient gebouwd op NIP-52. &lt;a href="https://gitea.coracle.social/coracle/coracle">Coracle&lt;/a> toont agendagebeurtenissen in zijn sociale feed. De D-tagtoevoeging van deze week maakt relay-side temporele indexering mogelijk die beide clients kunnen gebruiken om bandbreedte te beperken bij het opvragen van events in een specifiek datumbereik.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Iets aan het bouwen of nieuws te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #9</title><link>https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Mostro brengt zijn eerste publieke beta uit na drie jaar ontwikkeling en brengt P2P Bitcoin-handel naar mobiel via Nostr. OpenSats kent zijn zestiende golf Bitcoin-subsidies toe, waarbij Minibits Wallet verlenging ontvangt voor zijn Nostr-geintegreerde Cashu-wallet. &lt;strong>Zapstore bereikt stabiele 1.0-release&lt;/strong>, de mijlpaal voor de gedecentraliseerde Android-appwinkel. Coracle 0.6.29 voegt topics en commentaar op highlights toe. Igloo Desktop v1.0.3 levert ingrijpende beveiligingsverharding voor Frostr threshold signing. Amber v4.1.2-pre1 migreert naar Flow-architectuur. Angor bereikt v0.2.5 met vernieuwde funding-UI en NIP-96 image server-configuratie. NostrPress lanceert als tool die Nostr-profielen omzet naar statische blogs. Antiprimal levert standaardconforme gateway die Primal&amp;rsquo;s proprietary cache server koppelt aan standaard Nostr NIPs. Primal Android merget 18 PR&amp;rsquo;s die de NWC-infrastructuur uitbreiden met dubbele wallet-ondersteuning, auditlogging en de &lt;code>lookup_invoice&lt;/code>-methode. diVine levert API-first videofeeds. De Marmot TypeScript SDK splitst zijn referentie chatapp af naar aparte repo en begint de migratie naar ts-mls v2. De NIPs-repository merget HyperLogLog approximate counting voor NIP-45 en extraheert identity tags uit kind 0. Vitorpamplona opent meerdere voorstellen die kind 0 metadata-events systematisch afslanken. Nieuwe protocolvoorstellen omvatten Nostr Relay Connect voor NAT-traversal en Nostr Web Tokens voor ondertekende webclaims. De deep dives behandelen NIP-45&amp;rsquo;s nieuwe HyperLogLog approximate counting voor cross-relay eventmetrics en NIP-96&amp;rsquo;s HTTP-bestandsopslagprotocol, nu afgeraden ten gunste van Blossom, terwijl projecten de overgang tussen de twee mediastandaarden doorlopen.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Mostro brengt zijn eerste publieke beta uit na drie jaar ontwikkeling en brengt P2P Bitcoin-handel naar mobiel via Nostr. OpenSats kent zijn zestiende golf Bitcoin-subsidies toe, waarbij Minibits Wallet verlenging ontvangt voor zijn Nostr-geintegreerde Cashu-wallet. &lt;strong>Zapstore bereikt stabiele 1.0-release&lt;/strong>, de mijlpaal voor de gedecentraliseerde Android-appwinkel. Coracle 0.6.29 voegt topics en commentaar op highlights toe. Igloo Desktop v1.0.3 levert ingrijpende beveiligingsverharding voor Frostr threshold signing. Amber v4.1.2-pre1 migreert naar Flow-architectuur. Angor bereikt v0.2.5 met vernieuwde funding-UI en NIP-96 image server-configuratie. NostrPress lanceert als tool die Nostr-profielen omzet naar statische blogs. Antiprimal levert standaardconforme gateway die Primal&amp;rsquo;s proprietary cache server koppelt aan standaard Nostr NIPs. Primal Android merget 18 PR&amp;rsquo;s die de NWC-infrastructuur uitbreiden met dubbele wallet-ondersteuning, auditlogging en de &lt;code>lookup_invoice&lt;/code>-methode. diVine levert API-first videofeeds. De Marmot TypeScript SDK splitst zijn referentie chatapp af naar aparte repo en begint de migratie naar ts-mls v2. De NIPs-repository merget HyperLogLog approximate counting voor NIP-45 en extraheert identity tags uit kind 0. Vitorpamplona opent meerdere voorstellen die kind 0 metadata-events systematisch afslanken. Nieuwe protocolvoorstellen omvatten Nostr Relay Connect voor NAT-traversal en Nostr Web Tokens voor ondertekende webclaims. De deep dives behandelen NIP-45&amp;rsquo;s nieuwe HyperLogLog approximate counting voor cross-relay eventmetrics en NIP-96&amp;rsquo;s HTTP-bestandsopslagprotocol, nu afgeraden ten gunste van Blossom, terwijl projecten de overgang tussen de twee mediastandaarden doorlopen.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="mostro-brengt-eerste-publieke-beta-uit">Mostro Brengt Eerste Publieke Beta Uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, de peer-to-peer Bitcoin-exchange op Nostr, bracht zijn &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.0">mobiele app v1.1.0&lt;/a> uit, de eerste publieke beta na drie jaar ontwikkeling. De app maakt directe Bitcoin-handel mogelijk met Nostr voor ordercoordinatie en Lightning voor afwikkeling, zonder custodial tussenpersoon.&lt;/p>
&lt;p>Push-notificaties met verbeterde achtergrondbetrouwbaarheid op Android vormen de kern van de release, samen met optioneel loggen waarmee diagnostische gegevens kunnen worden vastgelegd en gedeeld bij problemen, soepelere relay-updates door additieve initialisatie, en Fase 2 UI-verfijningen met internationaliseringsondersteuning. Beschikbaar op &lt;a href="https://zapstore.dev">Zapstore&lt;/a> en als directe &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.0">GitHub-download&lt;/a>.&lt;/p>
&lt;p>Mostro voegt zich bij Shopstr en Plebeian Market in de categorie Nostr-native commerce-applicaties, met als onderscheid dat fiat-naar-Bitcoin exchangecoordinatie centraal staat. De onderliggende &lt;a href="https://github.com/MostroP2P/mostro">Mostro daemon&lt;/a> handelt ordermatching en geschillenbeslechting af over Nostr relays.&lt;/p>
&lt;h3 id="opensats-zestiende-golf-bitcoin-subsidies">OpenSats Zestiende Golf Bitcoin-Subsidies&lt;/h3>
&lt;p>&lt;a href="https://opensats.org/blog/sixteenth-wave-of-bitcoin-grants">OpenSats&lt;/a> kondigde subsidies aan voor 17 open-sourceprojecten. De Nostr-relevante toekenning: &lt;a href="https://github.com/minibits-cash/minibits_wallet">Minibits Wallet&lt;/a>, de Android &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>-wallet met &lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a> wallet event-ondersteuning en nutzap-integratie, ontving verlengingssubsidie. Minibits gebruikt Nostr events om ecash-tokenstatus op te slaan, waardoor wallet-backups draagbaar worden tussen apparaten door relay sync.&lt;/p>
&lt;h3 id="nostrpress-nostr-profiel-naar-statische-blog">NostrPress: Nostr-Profiel naar Statische Blog&lt;/h3>
&lt;p>&lt;a href="https://github.com/besoeasy/NostrPress">NostrPress&lt;/a> (&lt;a href="https://blog.besoeasy.com">blog.besoeasy.com&lt;/a>) zet Nostr-profielen om naar volledig statische blogs, deploybaar waar dan ook. Artikelen worden op Nostr gepubliceerd met willekeurige clients, waarna NostrPress uit die events vanzelf websites genereert, compleet met lokale media-hosting en RSS-feeds.&lt;/p>
&lt;p>Gebouwd met Nunjucks-templating en JavaScript produceert NostrPress sites zonder platformvergrendeling. De gegenereerde output is puur HTML/CSS, geschikt voor elke statische bestandsserver, GitHub Pages, Netlify of persoonlijke VPS. De tool voegt zich bij &lt;a href="https://github.com/nostrband/nostrsite">Npub.pro&lt;/a> en &lt;a href="https://github.com/servus-social/servus">Servus&lt;/a> voor wie Nostr-content wil omzetten naar traditionele websites.&lt;/p>
&lt;h3 id="antiprimal-standaardconforme-gateway-naar-primals-cache">Antiprimal: Standaardconforme Gateway naar Primal&amp;rsquo;s Cache&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/antiprimal">antiprimal&lt;/a> (&lt;a href="https://antiprimal.net">antiprimal.net&lt;/a>), van Alex Gleason en het Soapbox-team, is de WebSocket-gateway die Primal&amp;rsquo;s proprietary cache server koppelt aan standaard Nostr-protocolberichten. Primal biedt functies als eventstatistieken en content-zoeken, plus Web of Trust-berekeningen over &lt;code>wss://cache.primal.net/v1&lt;/code>, maar toegang vereist proprietary berichtformaat met niet-standaard &lt;code>cache&lt;/code>-veld dat gewone Nostr-clients niet kunnen gebruiken. Antiprimal vertaalt standaard NIP-verzoeken naar Primal&amp;rsquo;s formaat en converteert de antwoorden terug.&lt;/p>
&lt;p>Ondersteund worden &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a> COUNT-queries (reacties, antwoorden, reposts, zap-tellingen, volger-tellingen), &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50&lt;/a> zoeken, &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> relay-informatie en &lt;a href="https://github.com/nostr-protocol/nips/blob/master/85.md">NIP-85&lt;/a> Trusted Assertions voor Primal&amp;rsquo;s voorberekende Web of Trust-gegevens. Via begeleidende bot publiceert het project NIP-85 kind 30382 (gebruikersstatistieken) en kind 30383 (event engagement) events naar configureerbare relays. Gebouwd op TypeScript/Bun met de Nostrify-library telt de codebase 53 commits in zijn eerste drie dagen na oprichting op 6 februari en is live op antiprimal.net.&lt;/p>
&lt;h3 id="ikaros-ai-agent-messaging-gateway-voor-signal-en-nostr">Ikaros: AI Agent Messaging Gateway voor Signal en Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/ikaros">Ikaros&lt;/a>, eveneens van het Soapbox-team, is de messaging-gateway die AI-agents in staat stelt te communiceren over zowel Signal als Nostr versleutelde DM&amp;rsquo;s. De bridge gebruikt het &lt;a href="https://agentclientprotocol.org">Agent Client Protocol&lt;/a> (ACP) om willekeurige ACP-compatibele AI-codeassistenten te verbinden met echte berichtennetwerken. Drie pull requests vormen de initiële bouw.&lt;/p>
&lt;p>De eerste, &lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/1">PR #1&lt;/a>, implementeert volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> versleutelde DM-adapter met verzend/ontvangstondersteuning, responsbuffering met expliciete flush bij voltooiing, &lt;code>nsec&lt;/code>- en hex-privesleutelformaten, multi-relay publishing met automatische herverbinding en interactieve setup-wizard. De adapter gebruikt nostr-tools v2.23.0 en updatet de ACP SDK naar v0.14.1.&lt;/p>
&lt;p>Stil berichtverlies door sessie-update race condition is opgelost in &lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/2">PR #2&lt;/a>: inkomende notificaties die arriveerden voordat registratie in de map was voltooid gingen stilletjes verloren, en de fix buffert die notificaties voor replay zodra registratie afrondt. Signal-gebruikers- en groepsnaam/UUID-metadata voor agent-interacties zijn toegevoegd in &lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/3">PR #3&lt;/a>, zodat de AI-agent weet met wie die praat en in welke groep. Hiermee opent Ikaros nieuwe ontwerpruimte: AI-agents bereikbaar over Nostr DM&amp;rsquo;s die ook vanuit Signal benaderd kunnen worden, of andersom.&lt;/p>
&lt;h3 id="kind-0-afslankingscampagne">Kind 0 Afslankingscampagne&lt;/h3>
&lt;p>vitorpamplona opende meerdere PR&amp;rsquo;s met als voorstel de systematische extractie van gegevens uit kind 0 (gebruikersmetadata) events naar toegewijde event kinds. De campagne pakt groeiend probleem aan: kind 0 events hebben in de loop der tijd velden verzameld die de meeste clients niet gebruiken, waardoor elke profielfetch groter wordt dan nodig.&lt;/p>
&lt;p>Gemerged is &lt;a href="https://github.com/nostr-protocol/nips/pull/2216">PR #2216&lt;/a>, dat identity tags (&lt;code>i&lt;/code> tags) verplaatst van kind 0 naar nieuwe kind 10011 omdat adoptie van die tags minimaal is gebleven. Verplaatsing van &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05&lt;/a>-verificatie naar kind 10008 wordt voorgesteld in &lt;a href="https://github.com/nostr-protocol/nips/pull/2213">PR #2213&lt;/a>, waardoor meerdere NIP-05-identifiers per gebruiker mogelijk worden en events gefilterd kunnen worden op NIP-05-adres. Extractie van Lightning-adressen (lud06/lud16) naar nieuwe kind wordt voorgesteld in &lt;a href="https://github.com/nostr-protocol/nips/pull/2217">PR #2217&lt;/a>, zodat niet elk kind 0-event zap-gerelateerde velden meedraagt die alleen relevant zijn voor clients met Lightning-integratie.&lt;/p>
&lt;p>De voorstellen hebben de bredere discussie over de structuur van kind 0 nieuw leven ingeblazen, waaronder &lt;a href="https://github.com/nostr-protocol/nips/pull/1770">PR #1770&lt;/a>, het langlopende voorstel om geserializeerde JSON in kind 0 content te vervangen door gestructureerde tags.&lt;/p>
&lt;h3 id="nip-70-relay-ondersteuning-kritiek-voor-beveiliging-versleutelde-berichten">NIP-70 Relay-Ondersteuning Kritiek voor Beveiliging Versleutelde Berichten&lt;/h3>
&lt;p>White Noise, de &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-implementatie, heeft &lt;a href="https://blog.jgmontoya.com/2026/02/10/nip70-relay-status.html">kritiek hiaat geidentificeerd&lt;/a> in relay-ondersteuning voor &lt;a href="https://github.com/nostr-protocol/nips/blob/master/70.md">NIP-70&lt;/a> (Protected Events) en &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> (Authentication). Uit tests bleek dat grote publieke relays waaronder Damus, Primal en nos.lol beschermde events ronduit afwijzen met &lt;code>blocked: event marked as protected&lt;/code>-fouten, in plaats van de vereiste authenticatie-uitdaging te initiëren.&lt;/p>
&lt;p>Daarmee breekt er beveiligingsfunctionaliteit: NIP-70 maakt veilige verwijdering van gebruikte MLS KeyPackages mogelijk en voorkomt &amp;ldquo;harvest now, decrypt later&amp;rdquo;-aanvallen. Protocollen voor versleutelde berichten kunnen hun gebruikers niet beschermen tegen toekomstig sleutelcompromis zolang relay-ondersteuning ontbreekt. White Noise heeft NIP-70 standaard uitgeschakeld als reactie, met optionele vlag voor wie wel ondersteunende relays heeft.&lt;/p>
&lt;p>&lt;strong>Oproep aan relay-operators:&lt;/strong> Implementeer de volledige NIP-42 authenticatieflow. Daag bij binnenkomst van beschermde events de client uit om eigenaarschap te bewijzen en accepteer vervolgens gevalideerde schrijfacties. Afwijzen van beschermde events zonder authenticatie breekt protocolbeveiligingsgaranties waarop versleutelde berichtenapplicaties vertrouwen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="coracle-0629">Coracle 0.6.29&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a> (&lt;a href="https://coracle.social">coracle.social&lt;/a>), hodlbod&amp;rsquo;s webclient, bracht &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.29">0.6.29&lt;/a> uit. De release voegt weergave van topics en commentaar op kind 9802 highlights toe. Lijstnavigatie geeft nu snelle toegang tot zelfsamengestelde lijsten vanuit de hoofd-UI. Onder de motorkap is Coracle geupgraded naar nieuwe versie van Welshman, de gedeelde Nostr-library die relaybeheer en eventafhandeling aandrijft. De standaard relay-lijst is vernieuwd en Glitchtip-foutregistratie is verwijderd uit de codebase.&lt;/p>
&lt;h3 id="igloo-desktop-v103">Igloo Desktop v1.0.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/FROSTR-ORG/igloo-desktop">Igloo Desktop&lt;/a>, de &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a>-gebaseerde threshold signer en sleutelbeheer-applicatie, bracht &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop/releases/tag/v1.0.3">v1.0.3&lt;/a> uit met uitgebreide beveiligingsverharding. IPC-validatie en Electron-isolatie bieden bescherming naast SSRF-bewuste relaychecks als verdediging tegen server-side request forgery. Vernieuwde onboarding- en share-importflows vereenvoudigen sleuteldistributie, relayplanning bevat nu normalisatie en prioriteitssamenvoeging, en preload-gebaseerde Electron API-architectuur verbetert de beveiligingsgrens tussen renderer en hoofdproces. Signer keep-alive handhaaft de stabiliteit van threshold signing-sessies, terwijl UX-verbeteringen de frictie van sleutelrestauratie verminderen.&lt;/p>
&lt;h3 id="amber-v412-pre1">Amber v4.1.2-pre1&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, de Android event signer, bracht &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.2-pre1">v4.1.2-pre1&lt;/a> uit met fix voor de ontbrekende relay-vertrouwensscoreweergave uit v4.1.1 en oplossingen voor JSON-parsingproblemen bij niet-Nostr encrypt/decrypt-verzoeken. Het accountmodel migreert van LiveData naar Flow voor voorspelbaarder statusbeheer. Bunker secrets schakelen over naar volledige UUID&amp;rsquo;s en de release upgradet naar Gradle plugin 9.&lt;/p>
&lt;h3 id="mostro-mobile-v110-en-daemon-v0161">Mostro Mobile v1.1.0 en Daemon v0.16.1&lt;/h3>
&lt;p>Zie de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#mostro-brengt-eerste-publieke-beta-uit">Nieuwssectie hierboven&lt;/a> voor volledige coverage van de mobiele release. Aan de serverkant bracht de &lt;a href="https://github.com/MostroP2P/mostro">Mostro daemon&lt;/a> &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.1">v0.16.1&lt;/a> uit, met automatisch publiceren van NIP-01 kind 0 metadata bij opstart (&lt;a href="https://github.com/MostroP2P/mostro/pull/575">PR #575&lt;/a>), zodat de daemon nu zijn identiteit aankondigt aan het netwerk bij online komen. Documentatiefixes voor dev fee-berekening zijn ook meegenomen (&lt;a href="https://github.com/MostroP2P/mostro/pull/571">PR #571&lt;/a>).&lt;/p>
&lt;h3 id="angor-v025">Angor v0.2.5&lt;/h3>
&lt;p>&lt;a href="https://github.com/block-core/angor">Angor&lt;/a> (&lt;a href="https://angor.io">angor.io&lt;/a>), gedecentraliseerd P2P-fundingprotocol op Bitcoin en Nostr, bracht &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.5">v0.2.5&lt;/a> uit met drie gemergde PR&amp;rsquo;s. De Funds-beheersectie (V2) is herontworpen in &lt;a href="https://github.com/block-core/angor/pull/649">PR #649&lt;/a>, met nieuwe interface voor individuele UTXO&amp;rsquo;s en investeringsposities. InvoiceView-herziening in &lt;a href="https://github.com/block-core/angor/pull/651">PR #651&lt;/a> brengt bijgewerkte knopstijlen en sluitbare dialogen, plus nieuw &amp;ldquo;Copy Address&amp;rdquo;-commando met annuleringsondersteuning voor adresmonitoring en verbeterde investeringsflowafhandeling. Configureerbare &lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/96.md">spec&lt;/a>) image servers in instellingen komen in &lt;a href="https://github.com/block-core/angor/pull/652">PR #652&lt;/a>, zodat per project gekozen kan worden welk media-upload-endpoint afbeeldingen en documentatie afhandelt. &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.4">v0.2.4&lt;/a> werd de week ervoor uitgebracht.&lt;/p>
&lt;h3 id="ridestr-v022-en-v023">Ridestr v0.2.2 en v0.2.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a>, het gedecentraliseerde rideshare-platform &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/#ridestr-v020-roadflare-release">vorige week behandeld&lt;/a>, ging door met snelle iteratie in &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.2">v0.2.2&lt;/a> (Bridge Payment Hotfix) en &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.3">v0.2.3&lt;/a> na de v0.2.0 &amp;ldquo;RoadFlare Release.&amp;rdquo; De v0.2.2-hotfix lost bug op waarbij cross-mint &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> bridge-betalingen ritten automatisch annuleerden terwijl de betaling nog werd verwerkt of uiteindelijk zou slagen, en voorkomt zo premature ritannulering bij tragere afwikkelingen. UI-flikkering en kapotte touch-hitboxes op de &amp;ldquo;mijn locatie&amp;rdquo;-knop zijn ook opgelost. v0.2.3 bevat extra bugfixes. Beide releases bevatten aparte APK&amp;rsquo;s voor Ridestr (passagiersapp) en Drivestr (chauffeursapp).&lt;/p>
&lt;h3 id="nostr-php-194">Nostr PHP 1.9.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrver-se/nostr-php">Nostr PHP&lt;/a> (&lt;a href="https://nostr-php.dev">nostr-php.dev&lt;/a>), de PHP-helperbibliotheek voor Nostr, bracht &lt;a href="https://github.com/nostrver-se/nostr-php/releases/tag/1.9.4">1.9.4&lt;/a> uit met configureerbare &lt;code>timeout&lt;/code>-eigenschap voor de request class (&lt;a href="https://github.com/nostrver-se/nostr-php/pull/106">PR #106&lt;/a>). Ontwikkelaars kunnen nu aangepaste timeoutduren instellen voor relay-verbindingen en berichtverzoeken, waardoor oneindig wachten wordt voorkomen bij niet-reagerende of trage relays.&lt;/p>
&lt;h3 id="zapstore-v100">Zapstore v1.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapstore/zapstore/releases/tag/1.0.0">Zapstore&lt;/a> (&lt;a href="https://zapstore.dev">zapstore.dev&lt;/a>), de permissieloze Android-appwinkel op Nostr, &lt;strong>bereikte zijn stabiele 1.0-releasemijlpaal&lt;/strong> na maanden van release candidates.&lt;/p>
&lt;p>De 1.0-release bevat verbeteringen voor stabiliteit: installeerknopstatusafhandeling die ervoor zorgt dat de verwijderknop direct verschijnt na voltooiing en gebruiksvriendelijke foutmeldingen met uitklapbare technische details. De &amp;ldquo;Issue melden&amp;rdquo;-knop verstuurt versleutelde DM&amp;rsquo;s over Nostr met ephemeral keys. Verder: nieuw updatescherm met polling en batchtracking, betere download-watchdog voor vastgelopen transfers, dynamische limieten voor gelijktijdige downloads op basis van apparaatprestaties, frequentere synchronisatie van geinstalleerde packages en verbeterde versievergelijkingslogica. Het team loste kritiek flutter_secure_storage-probleem op en verbeterde de afhandeling van edge cases in de package manager.&lt;/p>
&lt;p>De mijlpaal vertegenwoordigt de volwassenwording van Nostr&amp;rsquo;s eerste toegewijde appdistributieplatform, waarmee ontwikkelaars Android-applicaties direct aan gebruikers kunnen publiceren zonder gecentraliseerde appwinkel-gatekeeping.&lt;/p>
&lt;h3 id="zsp-v031">ZSP v0.3.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapstore/zsp">ZSP&lt;/a>, de Go CLI-tool van het &lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a>-team die eerdere publishing-tooling vervangt voor ondertekenen en uploaden van Android-apps naar Nostr relays, bracht &lt;a href="https://github.com/zapstore/zsp/releases/tag/v0.3.1">v0.3.1&lt;/a> uit. ZSP handelt APK-acquisitie af van GitHub, GitLab, Codeberg, F-Droid of lokale bestanden, parseert vervolgens metadata, ondertekent Nostr events (met privesleutel, &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> bunker of &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a> browserextensie) en uploadt artefacten naar &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers. Volledige offline modus voor keystore-koppeling zonder netwerkverbinding is nieuw, naast &lt;code>Content-Digest&lt;/code>-headers op Blossom-uploads voor protocolconformiteit, gefixte arm64-v8a APK-detectie van F-Droid-repositories, GitLab trailing query parameter-fixes en &lt;code>.env&lt;/code>-bestandsondersteuning voor configuratie.&lt;/p>
&lt;h3 id="damus-ios-117">Damus iOS 1.17&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, de iOS Nostr-client, ging naar versie 1.17 (&lt;a href="https://github.com/damus-io/damus/pull/3606">PR #3606&lt;/a>). De release lost RelayPool-probleem op waarbij verbindingen sloten na ephemeral lease release (&lt;a href="https://github.com/damus-io/damus/pull/3605">PR #3605&lt;/a>), wat ertoe kon leiden dat abonnementen onverwacht wegvielen. Daarnaast is bug opgelost waarbij de favorietentijdlijn geen events toonde bij tabwisseling (&lt;a href="https://github.com/damus-io/damus/pull/3603">PR #3603&lt;/a>).&lt;/p>
&lt;h3 id="nak-v0183">nak v0.18.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, de Nostr army knife CLI, bracht &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.3">v0.18.3&lt;/a> uit met drie stabiliteitsfixes: voorkomen van panic bij nil of te korte AUTH challenge tags en controleren van dateparser-fouten voordat de geparseerde waarde wordt gebruikt. Cashu mint-URL&amp;rsquo;s zonder &lt;code>://&lt;/code>-separator worden nu ook correct afgehandeld.&lt;/p>
&lt;h3 id="mi-browsergebaseerde-lokale-relay">Mi: Browsergebaseerde Lokale Relay&lt;/h3>
&lt;p>&lt;a href="https://git.shakespeare.diy/npub1scvyzz02ayma34hesz62pdrd5nhsmxp74hjq8msmfs9khh3r3drsnw68d8/mi.git">Mi&lt;/a> (&lt;a href="https://mi.shakespeare.wtf">mi.shakespeare.wtf&lt;/a>), nieuwe &lt;a href="https://shakespeare.wtf">Shakespeare&lt;/a> MiniApp, is browsergebaseerde lokale relay die Nostr events archiveert in IndexedDB. Mi haalt profielen (kind 0), contactlijsten (kind 3), relay-lijsten (kind 10002) en wallet events op van verbonden relays en slaat ze lokaal op, waardoor offline toegang tot eigen gegevens ontstaat. Gebouwd met React en nostr-tools 2.15.0.&lt;/p>
&lt;h3 id="agora-v102">Agora v1.0.2&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/agora">Agora&lt;/a> (&lt;a href="https://agora.spot">agora.spot&lt;/a>), gedecentraliseerd activisme- en fondsenwervingsplatform van Soapbox, bracht &lt;a href="https://gitlab.com/soapbox-pub/agora/-/releases/v1.0.2">v1.0.2&lt;/a> uit met Android APK beschikbaar voor directe installatie. Compass vermeldt Agora hier voor het eerst; de lancering was op 17 januari met de missieverklaring: &amp;ldquo;Sluit je aan bij de wereldwijde beweging voor vrijheid. Stuur steun naar activisten in het veld internationaal en neem deel aan lokale acties.&amp;rdquo;&lt;/p>
&lt;p>Centraal staat wereldkaart waar gebruikers per land browsen, locatiegetagde &amp;ldquo;acties&amp;rdquo; aanmaken (protesten, campagnes, fondsenwerving, community-organisatie) en die bespreken in threaded comments. Alle content verspreidt zich over Nostr relays, zodat geen centrale server offline kan worden gehaald om coordinatie te onderdrukken. Agora ondersteunt meerdere talen met CI-afgedwongen vertalingspariteit, integreert &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> mediaservers voor uploads en bevat zoeken, hashtagbrowsing met globale/regionale schakelaar, profielen en reactiesystemen. De v1.0.2-release is de huidige Android-build, beschikbaar als directe APK-download.&lt;/p>
&lt;h3 id="xonos-v016">xonos v0.1.6&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/xonos/xonos">xonos&lt;/a>, de experimentele 3D Nostr-client gebouwd met de Bevy game engine, bracht &lt;a href="https://codeberg.org/xonos/xonos/releases/tag/v0.1.6">v0.1.6&lt;/a> uit. xonos rendert Nostr events in 3D ruimtelijke omgeving met text-to-speech-mogelijkheden, en verkent hoe sociale protocolgegevens zouden kunnen werken buiten conventionele 2D-interfaces.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="primal-android-breidt-nwc-infrastructuur-uit">Primal Android Breidt NWC-Infrastructuur Uit&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergede 18 PR&amp;rsquo;s, als vervolg op de NWC-uitbouw die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/#primal-android-ships-nwc-encryption">vorige week begon&lt;/a>. Ondersteuning voor NWC-verbindingen over beide wallets (Spark en extern) komt in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/883">PR #883&lt;/a>, en de &lt;code>lookup_invoice&lt;/code> NWC-methode voor betalingsstatuscontrole in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/879">PR #879&lt;/a>.&lt;/p>
&lt;p>NWC request-response auditlogging voor wallet-debugging is toegevoegd in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/880">PR #880&lt;/a>. Multi-accountondersteuning voor &lt;code>PrimalNwcService&lt;/code> in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/877">PR #877&lt;/a> stelt mensen met meerdere profielen in staat aparte wallet-verbindingen te behouden. Periodieke opruiming van verlopen budgetreserveringen in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/882">PR #882&lt;/a> voorkomt dat verouderde betalingsreserveringen wallet-operaties blokkeren.&lt;/p>
&lt;p>UI-werk omvat herontwerp van wallet-upgradescherm (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/889">PR #889&lt;/a>), wallet-upgrade FAQ (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/885">PR #885&lt;/a>), Lightning-adresinstelling tijdens onboarding (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/888">PR #888&lt;/a>), en fix voor zap-transacties die verschenen als reguliere betalingen voor niet-Lightning types (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/887">PR #887&lt;/a>).&lt;/p>
&lt;h3 id="divine-levert-api-first-videofeeds">diVine Levert API-First Videofeeds&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de korte-video-client, mergede 19 PR&amp;rsquo;s met verschuiving richting API-first architectuur. API-first videofeeds komen in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1468">PR #1468&lt;/a>, met trending en recente API-endpoints plus home-feed in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1466">PR #1466&lt;/a>. Specifieke videocontrollers worden geindexeerd in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1433">PR #1433&lt;/a> voor efficiente feedrendering.&lt;/p>
&lt;p>Profielafhandeling verbeterde met cache-plus-fresh patroon in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1440">PR #1440&lt;/a>, wat laadtijden verkort en tegelijk gegevensversheid waarborgt bij andermans profielen. Het team leverde ook notificatiefixes (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1437">PR #1437&lt;/a>) en refactoring van de commentaarflow (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1431">PR #1431&lt;/a>). Tabswiping op het notificatiescherm komt in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1388">PR #1388&lt;/a>.&lt;/p>
&lt;h3 id="white-noise-keyring-unificatie-en-zoekfunctie">White Noise: Keyring-Unificatie en Zoekfunctie&lt;/h3>
&lt;p>De &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">White Noise&lt;/a> backend voor het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocol mergede 4 PR&amp;rsquo;s. Twee daarvan verbeterden keyring-afhandeling: &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/468">PR #468&lt;/a> maakt de keyring-service identifier configureerbaar via &lt;code>WhitenoiseConfig&lt;/code>, en &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/475">PR #475&lt;/a> unificeert de implementatie op enkele &lt;code>keyring-core&lt;/code> crate met platformnative stores, ter vervanging van gefragmenteerde platformspecifieke code. Los daarvan voegt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/470">PR #470&lt;/a> zoekfunctionaliteit toe.&lt;/p>
&lt;h3 id="marmot-ts-splitst-referentie-chatapp-af">Marmot TS Splitst Referentie Chatapp Af&lt;/h3>
&lt;p>De &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> TypeScript SDK (&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a>) mergede &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/40">PR #40&lt;/a>, die de ingebouwde referentie chatapplicatie verwijdert en afsplitst naar eigen repo: &lt;a href="https://github.com/marmot-protocol/marmots-web-chat">marmots-web-chat&lt;/a>. Aangemaakt op 6 februari is de nieuwe repo referentie-implementatie met eigen CI-pipeline, tabbedchatweergave en onafhankelijk buildsysteem. Door de scheiding kan de SDK zich richten op library-taken terwijl de chatapp onafhankelijk aan UX itereert.&lt;/p>
&lt;p>Open PR &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/41">#41&lt;/a> migreert marmot-ts naar ts-mls v2.0.0, met herontworpen API met uniforme contextobjecten, nieuwe hulpprogramma&amp;rsquo;s voor berichtafhandeling (event creation, reading, deserialization), key package metadata-helpers en ondersteuning voor verwijderingsevents.&lt;/p>
&lt;h3 id="alby-hub-updates">Alby Hub Updates&lt;/h3>
&lt;p>&lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> mergede 5 PR&amp;rsquo;s. De Alby CLI is toegevoegd aan de app store-interface in &lt;a href="https://github.com/getAlby/hub/pull/2049">PR #2049&lt;/a>. Afhandeling van ongeldige zap-gegevens in de transactielijst is opgelost in &lt;a href="https://github.com/getAlby/hub/pull/2033">PR #2033&lt;/a>, en de ongebruikte &lt;code>ListTransactions&lt;/code>-methode is verwijderd uit de LNClient-interface in &lt;a href="https://github.com/getAlby/hub/pull/2046">PR #2046&lt;/a>.&lt;/p>
&lt;h3 id="notedeck-levert-dashboard-en-agentium">Notedeck Levert Dashboard en Agentium&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de cross-platform Nostr-client van Damus, mergede 6 PR&amp;rsquo;s. Initieel dashboard-app komt in &lt;a href="https://github.com/damus-io/notedeck/pull/1247">PR #1247&lt;/a>. Agentium, multi-agent ontwikkelomgeving die de Dave AI-assistent transformeert tot systeem met duale AI-modi en scenegebaseerd agentbeheer, is geintroduceerd in &lt;a href="https://github.com/damus-io/notedeck/pull/1293">PR #1293&lt;/a>. Meerregelige berichtensamensteller met Signal-achtige toetsenbindingen volgt in &lt;a href="https://github.com/damus-io/notedeck/pull/1276">PR #1276&lt;/a>, en mediaprestatieverbetering in &lt;a href="https://github.com/damus-io/notedeck/pull/1278">PR #1278&lt;/a>. Openstaande PR&amp;rsquo;s van belang zijn onder andere &lt;a href="https://github.com/damus-io/notedeck/pull/1288">outbox-infrastructuur&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34&lt;/a> &lt;a href="https://github.com/damus-io/notedeck/pull/1289">Git App-planning&lt;/a>.&lt;/p>
&lt;h3 id="agora-levert-grote-ui-herziening">Agora Levert Grote UI-Herziening&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/agora">Agora&lt;/a> mergede 7 PR&amp;rsquo;s naast de v1.0.2-release. Grootste is &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/106">PR #106&lt;/a>, dat 11 UI-taken afsluit over instellingen, profielbewerking, kaartinteracties, zoekresultaten, commentaarfiltering en Blossom-serverbeheer. De merge schakelde reactieknoppen uit voor niet-geauthenticeerde bezoekers (die eerder stille fouten kregen bij pogingen tot reageren op posts op de kaart), loste date-line kaartpanning op en voegde vetgedrukte overeenkomende tekst toe in zoekresultaten.&lt;/p>
&lt;p>Commentaartellingen verschijnen nu onder feedposts en op threadpagina&amp;rsquo;s dankzij &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/108">PR #108&lt;/a>. Automatische herpoging bij mislukte eventbelading met expliciete herlaadknop bij uitgeputte pogingen komt in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/107">PR #107&lt;/a>. Hashtagbrowsing is gewijzigd naar standaard globaal bereik in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/104">PR #104&lt;/a>, aangezien de vorige landgerichte standaard vaak nul resultaten opleverde.&lt;/p>
&lt;p>Vertalingspariteitcontrole over alle talen is als CI-stap toegevoegd in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/109">PR #109&lt;/a>, waarbij de build faalt bij ontbrekende waarden. Lange notities in feeds worden afgeknipt in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/110">PR #110&lt;/a> om scrollritme te behouden, en iOS mobiel zoomprobleem bij reageren op acties is opgelost in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/111">PR #111&lt;/a>, veroorzaakt door kleine lettergroottes.&lt;/p>
&lt;h3 id="clawstr-levert-cli-en-lightning-zap-knoppen">Clawstr Levert CLI en Lightning Zap-Knoppen&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/clawstr">Clawstr&lt;/a>, het Reddit-geinspireerde platform waar AI-agents communities aanmaken en beheren op Nostr, mergede 3 PR&amp;rsquo;s. Handmatige nak-commando&amp;rsquo;s in AI-agent skill-definities zijn vervangen door nieuw &lt;code>@clawstr/cli&lt;/code>-pakket (&lt;code>npx -y @clawstr/cli@latest&lt;/code>) in &lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/11">PR #11&lt;/a>, met eliminatie van handmatige JSON-eventconstructie ten gunste van CLI-commando&amp;rsquo;s plus wallet-operaties (init, balance, zap, npc) en &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> full-text zoeken.&lt;/p>
&lt;p>&amp;ldquo;For Humans&amp;rdquo;-documentatiepagina en &lt;code>ProfileZapDialog&lt;/code>-component komen in &lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/13">PR #13&lt;/a>. De zap-knop verschijnt op profielpagina&amp;rsquo;s voor wie Lightning-adres heeft geconfigureerd en werkt zonder inloggen, met directe LNURL-pay met vooraf ingestelde sats-bedragen en QR-codeweergave. In &lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/12">PR #12&lt;/a> is het &lt;code>wallet sync&lt;/code>-commando gedocumenteerd, met uitleg hoe betalingen aan Lightning-adressen worden vastgehouden door NPC totdat agents expliciet hun wallets synchroniseren.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Samengevoegd:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1561">NIP-45: HyperLogLog Relay Response&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45 (Event Counting)&lt;/a> ondersteunt nu HyperLogLog (HLL) approximate counting. Relays kunnen 256-byte HLL-registerwaarden retourneren naast COUNT-responses. Door registers van meerdere relays te mergen berekenen clients bij benadering de cardinaliteit, zonder volledige eventsets te downloaden. Primair gebruik is het berekenen van volger- en reactietellingen zonder afhankelijkheid van enkele relay als gezaghebbende bron. Zelfs twee reactie-events verbruiken meer bandbreedte dan de 256-byte HLL-payload. HyperLogLog++-correcties zijn beschikbaar voor verbeterde nauwkeurigheid bij kleine cardinaliteiten.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2216">NIP-39: Identity Tags Verplaatst uit Kind 0&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/nl/topics/nip-39/">NIP-39&lt;/a> identity claim tags (&lt;code>i&lt;/code> tags) zijn geextraheerd uit kind 0 metadata-events naar toegewijde kind 10011. Bijna geen clients ondersteunen die tags, waardoor ze omvang toevoegen aan elke kind 0-fetch zonder waarde te bieden. De eerste in reeks kind 0-extractie-PR&amp;rsquo;s van vitorpamplona (zie &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#kind-0-afslankingscampagne">Nieuwssectie&lt;/a>).&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2214">NIP-XX: Nostr Relay Connect (NRC)&lt;/a>&lt;/strong> - woikos stelt protocol voor om Nostr relays te benaderen door versleutelde tunneling over publieke rendezvous relay. Toegang tot relays achter NAT of firewalls wordt mogelijk, inclusief persoonlijke relays op thuisservers of mobiele apparaten. De tunneling gebruikt kind 24891/24892 events met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-encryptie over rendezvous relay die het verkeer niet kan ontcijferen. Praktische toepassing: elke Nostr-client kan lokale opslag (IndexedDB, SQLite) blootstellen als relay-endpoint voor cross-device sync. Standaard NIP-01 semantiek (REQ, EVENT, CLOSE, COUNT) gaat transparant door de tunnel. Referentie-implementaties bestaan in Go (ORLY Relay) en TypeScript (Smesh).&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2187">Nostr Web Tokens (NWT)&lt;/a>&lt;/strong> - pippellia-btc stelt Nostr Web Tokens voor, Nostr event-formaat voor overdracht van ondertekende claims tussen webpartijen, geinspireerd door JSON Web Tokens (JWTs). NWT kan zowel &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a> (HTTP Auth) als &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom autorisatie-events&lt;/a> vertegenwoordigen, wat flexibiliteit geeft in hoe en hoe lang tokens geldig blijven. Referentie Go-library is beschikbaar. &lt;a href="https://github.com/pippellia-btc/nostr-web-tokens">Video-uitleg&lt;/a> en &lt;a href="https://github.com/pippellia-btc/nostr-web-tokens?tab=readme-ov-file#comparisons">gedetailleerde vergelijking&lt;/a> met NIP-98 en Blossom Auth zijn gelinkt in de PR.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2210">NIP-47 Vereenvoudiging&lt;/a>&lt;/strong> - rolznz stelt voor om de &lt;code>multi_&lt;/code>-methoden te verwijderen uit &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>, die complex waren om te implementeren en geen adoptie kregen. De PR vermindert ook duplicatie in encryptie en backward compatibility-afhandeling, en schoont de spec op na &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/#nip-updates">de hold invoice-toevoeging van vorige week&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2213">NIP-05: Verplaatsen naar Eigen Event Kind&lt;/a>&lt;/strong> - vitorpamplona stelt voor om NIP-05-verificatie van kind 0 te verplaatsen naar nieuwe kind 10008, waardoor meerdere NIP-05-identifiers per gebruiker mogelijk worden en filtering op NIP-05-adres. Onderdeel van de kind 0-afslankingscampagne.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2217">NIP-57: Lightning-Adressen uit Kind 0&lt;/a>&lt;/strong> - vitorpamplona stelt voor lud06/lud16 (Lightning-adressen) te extraheren uit kind 0 naar toegewijd event kind volgens &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a>, als vervolg op de kind 0-afslanking.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2165">Profiel Hypercustomization&lt;/a>&lt;/strong> - fiatjaf stelt uitgebreide profielaanpassingsmogelijkheden voor die verder gaan dan wat kind 0 momenteel ondersteunt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-45-event-counting-en-hyperloglog">NIP Deep Dive: NIP-45 (Event Counting) en HyperLogLog&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-45/">NIP-45&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/45.md">spec&lt;/a>) definieert hoe clients relays kunnen vragen events te tellen die overeenkomen met filter, zonder de events zelf over te dragen. De merge van &lt;a href="https://github.com/nostr-protocol/nips/pull/1561">HyperLogLog-ondersteuning&lt;/a> voegt probabilistische datastructuur toe die fundamenteel probleem oplost: tellen over meerdere onafhankelijke relays.&lt;/p>
&lt;p>&lt;strong>Het Probleem:&lt;/strong>&lt;/p>
&lt;p>Events tellen op enkele relay is eenvoudig: stuur COUNT-verzoek, krijg getal terug. Over het netwerk tellen is moeilijker. Meldt relay A 50 reacties en relay B 40, dan is de som niet 90 omdat veel events op beide relays bestaan. Werkelijk aantal is onberekenbaar zonder downloaden en dedupliceren van de volledige eventsets.&lt;/p>
&lt;p>&lt;strong>HyperLogLog:&lt;/strong>&lt;/p>
&lt;p>HyperLogLog (HLL) is probabilistisch algoritme dat unieke elementen in verzameling schat met vaste hoeveelheid geheugen. De NIP-45-implementatie gebruikt 256 registers van elk byte, wat precies 256 bytes verbruikt ongeacht hoeveel events worden geteld. De werking berust op onderzoek van de binaire representatie van elke event ID, waarbij de positie van de leidende nullen wordt bijgehouden. Events waarvan de ID&amp;rsquo;s beginnen met veel nullen zijn statistisch zeldzaam, dus hun voorkomen duidt op grote verzameling.&lt;/p>
&lt;p>&lt;strong>Werking in NIP-45:&lt;/strong>&lt;/p>
&lt;p>Relays die reageren op COUNT-verzoek kunnen &lt;code>hll&lt;/code>-veld bevatten met base64-gecodeerde registerwaarden:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>[&lt;span style="color:#e6db74">&amp;#34;COUNT&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;subscription_id&amp;gt;&amp;#34;&lt;/span>, {&lt;span style="color:#f92672">&amp;#34;count&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">4527&lt;/span>, &lt;span style="color:#f92672">&amp;#34;hll&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;base64 encoded 256 bytes&amp;gt;&amp;#34;&lt;/span>}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De client verzamelt HLL-waarden van meerdere relays en merget die door de maximumwaarde op elke registerpositie te nemen. Gemergede HLL vertegenwoordigt de unie van eventsets over relays, met automatische deduplicatie. De uiteindelijke cardinaliteitsschatting wordt berekend uit de gemergede registers.&lt;/p>
&lt;p>&lt;strong>Nauwkeurigheid:&lt;/strong>&lt;/p>
&lt;p>Met 256 registers is de standaardfout ongeveer 5,2%. Voor werkelijk aantal van 1.000 valt de schatting typisch tussen 948 en 1.052. Bij grotere aantallen blijft de relatieve fout constant: werkelijk aantal van 100.000 schat op ruwweg 94.800-105.200. HyperLogLog++-correcties verbeteren de nauwkeurigheid voor kleine cardinaliteiten (onder ~200), waar het basisalgoritme de neiging heeft om te overschatten.&lt;/p>
&lt;p>&lt;strong>Waarom Dit Ertoe Doet:&lt;/strong>&lt;/p>
&lt;p>Sociale metrics (volger-tellingen, reactietellingen) zijn kernfunctie van sociale media-apps. Zonder HLL moeten ze ofwel enkele &amp;ldquo;vertrouwde&amp;rdquo; relay bevragen (wat het tellen centraliseert) of events van iedere relay downloaden (wat bandbreedte verspilt). HLL levert goede benaderende telling van meerdere relays met totale overhead van 256 bytes per relay, ongeacht het werkelijke aantal. Zelfs twee reactie-events verbruiken meer bandbreedte dan volledige HLL-payload.&lt;/p>
&lt;p>De spec fixeert het aantal registers op 256 voor interoperabiliteit. Iedere relay produceert HLL-waarden die clients kunnen mergen, ongeacht welke relay-implementatie ze draaien. Die standaardisatie betekent dat eenmalige HLL-implementatie volstaat om te profiteren van elke relay die het ondersteunt.&lt;/p>
&lt;p>&lt;strong>Huidige Status:&lt;/strong>&lt;/p>
&lt;p>Geopend door fiatjaf en maanden in discussie, is de PR nu gemerged. Relay-implementaties zullen HLL-berekening moeten toevoegen aan hun COUNT-handlers. Client-implementaties moeten HLL-merging inbouwen in hun count-aggregatielogica.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-96-http-bestandsopslag-en-de-transitie-naar-blossom">NIP Deep Dive: NIP-96 (HTTP-Bestandsopslag) en de Transitie naar Blossom&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-96/">NIP-96&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/96.md">spec&lt;/a>) definieerde hoe Nostr-clients bestanden uploaden, downloaden en beheren op HTTP-mediaservers. Nu gemarkeerd als &amp;ldquo;afgeraden&amp;rdquo; ten gunste van &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> (BUD-gebaseerde media-hosting), blijft NIP-96 relevant omdat Angor v0.2.5 &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#angor-v025">NIP-96 serverconfiguratie toevoegde&lt;/a> en ZSP v0.3.1 &lt;a href="https://nostrcompass.org/nl/newsletters/2026-02-11-newsletter/#zsp-v031">uploadt naar Blossom-servers&lt;/a>, wat protocoltransitie in uitvoering illustreert.&lt;/p>
&lt;p>&lt;strong>Werking van NIP-96:&lt;/strong>&lt;/p>
&lt;p>Via &lt;code>/.well-known/nostr/nip96.json&lt;/code> ontdekt de client de mogelijkheden van bestandsserver, met API-URL, ondersteunde contenttypes, groottelimieten en beschikbare mediatransformaties:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;api_url&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;https://file-server.example/api&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;download_url&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;https://cdn.example/files&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content_types&amp;#34;&lt;/span>: [&lt;span style="color:#e6db74">&amp;#34;image/jpeg&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;video/webm&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;audio/*&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;plans&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;free&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;is_nip98_required&amp;#34;&lt;/span>: &lt;span style="color:#66d9ef">true&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_byte_size&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">10485760&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;media_transformations&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;image&amp;#34;&lt;/span>: [&lt;span style="color:#e6db74">&amp;#34;resizing&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Voor uploads stuurt de client &lt;code>multipart/form-data&lt;/code> POST naar de API-URL met &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a> autorisatieheader (ondertekend Nostr event dat de identiteit van de uploader bewijst). De server retourneert &lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a> bestandsmetadatastructuur met bestands-URL, originele en getransformeerde SHA-256-hashes, MIME-type, afmetingen en meer:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;status&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;success&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;nip94_event&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;url&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://cdn.example/files/&amp;lt;hash&amp;gt;.png&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;ox&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;original-file-hash&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;x&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;transformed-file-hash&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;m&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;image/png&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;dim&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;800x600&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Downloads gebruiken GET-verzoeken naar &lt;code>&amp;lt;api_url&amp;gt;/&amp;lt;sha256-hash&amp;gt;&lt;/code>, met optionele queryparameters voor serverside transformaties zoals beeldverkleining (&lt;code>?w=320&lt;/code>). Verwijdering gebruikt DELETE met NIP-98 auth, en alleen de oorspronkelijke uploader kan zijn bestanden verwijderen. Bestandslijstendpoint retourneert gepagineerde resultaten van uploads per gebruiker.&lt;/p>
&lt;p>Met kind 10096 events geven gebruikers hun voorkeur-uploadservers aan, zodat clients automatisch de juiste server selecteren zonder handmatige configuratie.&lt;/p>
&lt;p>&lt;strong>Reden voor Afkeuring:&lt;/strong>&lt;/p>
&lt;p>NIP-96 koppelde bestands-URL&amp;rsquo;s aan specifieke servers. Viel &lt;code>files.example.com&lt;/code> uit, dan verloor elke Nostr-notitie die verwees naar die URL&amp;rsquo;s zijn media. De server was het adres, en dat adres was fragiel.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> (Blobs Stored Simply on Mediaservers) keert dat om door de SHA-256-hash van de bestandsinhoud tot canonieke identifier te maken. Blossom-URL&amp;rsquo;s hebben de vorm &lt;code>https://blossom.example/&amp;lt;sha256&amp;gt;.png&lt;/code>, maar elke Blossom-server die hetzelfde bestand host serveert het op hetzelfde hashpad. Verdwijnt de ene server, dan bevragen clients gewoon andere server voor dezelfde hash. Content addressing maakt gegevens standaard draagbaar over servers.&lt;/p>
&lt;p>Blossom vereenvoudigt ook de API. NIP-96 gebruikte multipart form-uploads met JSON-responses en transformatiebeleid, plus discovery-endpoint. Blossom gebruikt plain PUT voor uploads en GET voor downloads, met ondertekende Nostr events (geen HTTP-headers) voor autorisatie. De Blossom-specificatie is opgesplitst in modulaire documenten: BUD-01 behandelt serverprotocol, autorisatie en ophalen, BUD-02 behandelt blob-upload, BUD-03 behandelt servers en BUD-04 behandelt mirroring tussen servers.&lt;/p>
&lt;p>De afkeuring vond plaats in september 2025 met &lt;a href="https://github.com/nostr-protocol/nips/pull/2047">PR #2047&lt;/a>, die NIP-96 markeerde als &amp;ldquo;afgeraden&amp;rdquo; in de NIPs-index.&lt;/p>
&lt;p>&lt;strong>Transitie in de Praktijk:&lt;/strong>&lt;/p>
&lt;p>Servers als nostr.build en void.cat ondersteunden NIP-96 en hebben Blossom-endpoints toegevoegd of zijn ernaar gemigreerd. Angor&amp;rsquo;s v0.2.5-release voegde NIP-96-serverconfiguratie toe voor projectafbeeldingen, terwijl ZSP&amp;rsquo;s v0.3.1-release artefacten exclusief naar Blossom-servers uploadt met &lt;code>Content-Digest&lt;/code>-headers voor protocolconformiteit. Amethyst en Primal ondersteunen Blossom-uploads. De co-existentie zal waarschijnlijk voortduren totdat de overgebleven NIP-96-implementaties hun migratie voltooien.&lt;/p>
&lt;p>&lt;strong>Wat Behouden Blijft:&lt;/strong>&lt;/p>
&lt;p>Kind 10096 servervoorkeur-events blijven nuttig voor Blossom-serverselectie. NIP-94 bestandsmetadata (kind 1063 events) beschrijft bestandseigenschappen ongeacht welk uploadprotocol ze heeft aangemaakt. De SHA-256-hashing die NIP-96 gebruikte voor download-URL&amp;rsquo;s werd de basis van Blossom&amp;rsquo;s content addressing. NIP-96&amp;rsquo;s ontwerp informeerde wat Blossom vereenvoudigde: de les was dat mediahosting op gedecentraliseerd netwerk content-addressed opslag vereist om te passen bij de censuurbestendigheid van de relay-laag.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Iets aan het bouwen of nieuws te delen, &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #8</title><link>https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-02-04-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> rust-nostr levert een grote API-herontwerp met 21 PR&amp;rsquo;s die de architectuur van de SDK herzien. Nostria 3.0 lanceert met dual pane navigatie, lijstbeheer en een complete UI-herziening. Vector voegt SIMD-versnelling toe met 65x-184x snelheidswinst en levert &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocolondersteuning voor versleutelde groepsberichten. Frostr brengt threshold signing naar iOS via TestFlight. Damus implementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19 (Bech32 Gecodeerde Entiteiten)&lt;/a> relay hints voor cross-relay content discovery. Primal Android voegt NWC-encryptie en wallet-transactie-exports toe. nostr-tools en NDK ontvangen betrouwbaarheidsverbeteringen. NIP-82 (Software Applications) breidt uit naar 98% van apparaatplatforms. De NIPs-repository merget hold invoice-ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Nieuwe protocolvoorstellen omvatten NIP-74 voor podcasting, NIP-DB voor browser event databases, en een TRUSTed Filters-suite voor gedecentraliseerde contentcuratie. Nieuwe projecten zijn Instagram to Nostr v2 voor contentmigratie, Pod21 die een gedecentraliseerde 3D-printmarktplaats lanceert, Clawstr die AI agent-beheerde communities introduceert, en Shosho en NosCall die livestreaming en videobellen uitbreiden.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> rust-nostr levert een grote API-herontwerp met 21 PR&amp;rsquo;s die de architectuur van de SDK herzien. Nostria 3.0 lanceert met dual pane navigatie, lijstbeheer en een complete UI-herziening. Vector voegt SIMD-versnelling toe met 65x-184x snelheidswinst en levert &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a>-protocolondersteuning voor versleutelde groepsberichten. Frostr brengt threshold signing naar iOS via TestFlight. Damus implementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19 (Bech32 Gecodeerde Entiteiten)&lt;/a> relay hints voor cross-relay content discovery. Primal Android voegt NWC-encryptie en wallet-transactie-exports toe. nostr-tools en NDK ontvangen betrouwbaarheidsverbeteringen. NIP-82 (Software Applications) breidt uit naar 98% van apparaatplatforms. De NIPs-repository merget hold invoice-ondersteuning voor &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Nieuwe protocolvoorstellen omvatten NIP-74 voor podcasting, NIP-DB voor browser event databases, en een TRUSTed Filters-suite voor gedecentraliseerde contentcuratie. Nieuwe projecten zijn Instagram to Nostr v2 voor contentmigratie, Pod21 die een gedecentraliseerde 3D-printmarktplaats lanceert, Clawstr die AI agent-beheerde communities introduceert, en Shosho en NosCall die livestreaming en videobellen uitbreiden.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="rust-nostr-levert-grote-api-herontwerp">rust-nostr Levert Grote API-Herontwerp&lt;/h3>
&lt;p>De &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> SDK onderging deze week een significante architectuurherziening met 21 gemerged PR&amp;rsquo;s die breaking changes introduceren door de hele library. Het herontwerp raakt kern-API&amp;rsquo;s waar de meeste Rust-ontwikkelaars op vertrouwen.&lt;/p>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1245">PR #1245&lt;/a> herontwerpt notificatie-API&amp;rsquo;s, terwijl &lt;a href="https://github.com/rust-nostr/nostr/pull/1244">PR #1244&lt;/a> &lt;code>RelayNotification::Shutdown&lt;/code> vervangt door &lt;code>RelayStatus::Shutdown&lt;/code> voor schonere state handling. De signer-API&amp;rsquo;s sluiten nu aan bij andere SDK-patronen via &lt;a href="https://github.com/rust-nostr/nostr/pull/1243">PR #1243&lt;/a>. Client- en Relay-methodes kregen opschoning in &lt;a href="https://github.com/rust-nostr/nostr/pull/1242">PR #1242&lt;/a>, en client options gebruiken nu een builder pattern (&lt;a href="https://github.com/rust-nostr/nostr/pull/1241">PR #1241&lt;/a>).&lt;/p>
&lt;p>Bericht-verzend-API&amp;rsquo;s werden herontworpen in &lt;a href="https://github.com/rust-nostr/nostr/pull/1240">PR #1240&lt;/a>, REQ-uitschrijving in &lt;a href="https://github.com/rust-nostr/nostr/pull/1239">PR #1239&lt;/a>, en relay-verwijdering in &lt;a href="https://github.com/rust-nostr/nostr/pull/1229">PR #1229&lt;/a>. Een &lt;a href="https://github.com/rust-nostr/nostr/pull/1246">open PR #1246&lt;/a> voegt ondersteuning toe voor blocking API&amp;rsquo;s om het herontwerp af te ronden.&lt;/p>
&lt;p>De wijzigingen brengen consistentie naar de SDK maar vereisen migratie-inspanning van bestaande projecten. Ontwikkelaars die bouwen op rust-nostr moeten de changelog zorgvuldig doornemen voor upgraden.&lt;/p>
&lt;h3 id="instagram-to-nostr-v2-maakt-contentmigratie-mogelijk">Instagram to Nostr v2 Maakt Contentmigratie Mogelijk&lt;/h3>
&lt;p>Een nieuwe tool stelt creators in staat om hun bestaande content te migreren van gecentraliseerde platforms naar Nostr. &lt;a href="https://github.com/primalpaul1/instagram-to-nostr-v2">Instagram to Nostr v2&lt;/a> ondersteunt importeren van Instagram, TikTok, Twitter en Substack zonder toegang tot de private keys van de gebruiker te vereisen.&lt;/p>
&lt;p>De tool adresseert een veelvoorkomende onboardingbarrière: gebruikers die aarzelen om opnieuw te beginnen op een nieuw platform kunnen nu hun contentgeschiedenis behouden. Het ondersteunt ook het schenken van Nostr-accounts aan nieuwe gebruikers of het voorstellen van content aan bestaande accounts, wat het bruikbaar maakt om anderen te helpen overstappen naar het protocol.&lt;/p>
&lt;h3 id="pod21-gedecentraliseerd-3d-printnetwerk">Pod21: Gedecentraliseerd 3D-Printnetwerk&lt;/h3>
&lt;p>&lt;a href="https://github.com/gobrrrme/Pod21">Pod21&lt;/a> (&lt;a href="https://pod21.com">pod21.com&lt;/a>) verbindt 3D-printeroperators met kopers via Nostr voor marktplaatscoördinatie. Het platform bevat een &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17 (Privéberichten)&lt;/a>-compatibele DM-bot die marktplaatsinteracties afhandelt, waardoor kopers prints kunnen aanvragen en onderhandelen met makers via versleutelde directe berichten.&lt;/p>
&lt;p>Makers vermelden hun printcapaciteit en mogelijkheden; kopers bladeren door listings en initiëren orders via de bot. De architectuur volgt een vergelijkbaar patroon als andere Nostr-commerceapplicaties: relay-gebaseerde ontdekking, versleutelde berichten voor ordercoördinatie en Lightning voor afwikkeling. Pod21 voegt zich bij Ridestr en Shopstr als Nostr-applicaties die real-world transacties coördineren via het protocol.&lt;/p>
&lt;h3 id="clawstr-ai-agent-sociaal-netwerk">Clawstr: AI Agent Sociaal Netwerk&lt;/h3>
&lt;p>&lt;a href="https://github.com/clawstr/clawstr">Clawstr&lt;/a> lanceert als een Reddit-geïnspireerd platform waar AI-agents communities creëren en beheren op Nostr. Het platform stelt autonome agents in staat om thematische communities op te zetten, content te cureren en met gebruikers te interacteren. Communities functioneren als subreddits maar met AI-moderators en -curators die discussies begeleiden. De architectuur gebruikt Nostr&amp;rsquo;s open protocol voor agent-to-agent en agent-to-human interacties, wat een nieuw model vestigt voor communityvorming op gedecentraliseerde sociale media.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="ridestr-v020-roadflare-release">Ridestr v0.2.0: RoadFlare Release&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> leverde &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.0">v0.2.0&lt;/a>, genaamd de &amp;ldquo;RoadFlare Release,&amp;rdquo; met persoonlijke rideshare-netwerken. De feature laat passagiers favoriete chauffeurs toevoegen aan een vertrouwd netwerk. Chauffeurs keuren volgers goed en delen versleutelde locaties, waardoor passagiers kunnen zien wanneer vertrouwde chauffeurs online en in de buurt zijn. Ritaanvragen gaan direct naar bekende chauffeurs.&lt;/p>
&lt;p>Betalingsbetrouwbaarheid verbeterde met automatisch escrow-herstel, betere wallet-sync tussen apparaten en snellere betalingsverwerking via progressive polling. &lt;a href="https://github.com/variablefate/ridestr/pull/37">PR #37&lt;/a> voegt de Fase 5-6 infrastructuur toe die deze features ondersteunt. &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.1">v0.2.1&lt;/a> volgde met hotfixes voor betalingsdialoog-bugs en de &amp;ldquo;Toevoegen aan Favorieten&amp;rdquo;-flow na de rit.&lt;/p>
&lt;h3 id="nostria-30">Nostria 3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, sondreb&amp;rsquo;s cross-platform client gebouwd voor wereldwijde schaal, leverde versie 3.0 met een complete UI-herziening, nieuw logo en honderden fixes. De release vertegenwoordigt een intensieve zes-weken ontwikkelcyclus.&lt;/p>
&lt;p>Dual pane navigatie is de grootste UX-wijziging, waardoor desktopgebruikers minder hoeven te wisselen tussen lijsten, details en threads. Een nieuwe Home-sectie biedt een overzicht van alle beschikbare features, en alle schermen delen een uniforme toolbar, layout en functionaliteit.&lt;/p>
&lt;p>Lijstbeheer is de meest significante feature-update, geïntegreerd door de hele applicatie. Gebruikers kunnen profiellijsten beheren en content filteren in elke feature: Streams, Music of Feeds. Last van spam in threads? Filter op favorieten om alleen hun replies te zien. Quick Zaps voegt one-tap zapping toe met configureerbare waarden. Copy/Screenshot genereert clipboard-screenshots voor het delen van events overal. Muted Words filtert nu op profielvelden (name, display_name, NIP-05), waardoor gebruikers alle gebridgede profielen kunnen blokkeren met een enkel geblokkeerd woord. Settings werd doorzoekbaar voor snellere configuratiewijzigingen.&lt;/p>
&lt;p>De release voegt BOLT11 en BOLT12 betalingsverzoek-rendering toe, tekstgrootte- en lettertypeselectie, en &amp;ldquo;Note-to-Self&amp;rdquo;-berichten in de Messages-sectie met rendering van gerefereerde content zoals artikelen en events. De nieuwe Share-dialoog maakt snel delen mogelijk via e-mail, websites of directe berichten naar meerdere ontvangers. Extra features zijn aangepaste emoji-sets, Interests (hashtag-lijsten als dynamische feeds), Bookmarks, Public Relay Feeds en volledige menu-aanpassing inclusief welke optie het Nostria-icoon opent.&lt;/p>
&lt;p>Beschikbaar op Android, iOS, Windows en web op &lt;a href="https://www.nostria.app/">nostria.app&lt;/a>.&lt;/p>
&lt;h3 id="applesauce-v510">Applesauce v5.1.0&lt;/h3>
&lt;p>hzrd149&amp;rsquo;s &lt;a href="https://github.com/hzrd149/applesauce">Applesauce&lt;/a> library-suite releasede v5.1.0 over alle packages. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-signers%405.1.0">applesauce-signers&lt;/a> voegt ondersteuning toe voor &lt;code>switch_relays&lt;/code> en &lt;code>ping&lt;/code> methodes op Nostr Connect remote signers, bruikbaar voor het programmatisch beheren van signer-verbindingen. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-loaders%405.1.0">applesauce-loaders&lt;/a> introduceert &lt;code>loadAsyncMap&lt;/code> voor parallel async laden. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-react%405.1.0">applesauce-react&lt;/a> voegt padding-argumenten toe aan &lt;code>useAction().run()&lt;/code>. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%405.1.0">applesauce-core&lt;/a> updatet event-to-store mapping om strings direct te verwerken zonder &lt;code>onlyEvents&lt;/code> te vereisen.&lt;/p>
&lt;h3 id="nak-v0183">nak v0.18.3&lt;/h3>
&lt;p>fiatjaf&amp;rsquo;s &lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a> (Nostr Army Knife) bereikte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.3">v0.18.3&lt;/a> met stabiliteitsfixes van mattn. De release voorkomt panics wanneer mint-URL&amp;rsquo;s de &lt;code>://&lt;/code> separator missen, valideert dateparser-fouten voor het gebruiken van datumwaarden, en handelt edge cases af in AUTH challenge tag parsing. Deze defensieve fixes maken de CLI robuuster bij het verwerken van malformed inputs.&lt;/p>
&lt;h3 id="aegis-v037">Aegis v0.3.7&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZharlieW/Aegis">Aegis&lt;/a>, de cross-platform desktop signer, leverde &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.7">v0.3.7&lt;/a> met Nostr App Browser-ondersteuning met &lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07 (Browser Extension Interface)&lt;/a> signing. De release registreert &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04 (Versleutelde Directe Berichten)&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44 (Versioned Encryption)&lt;/a> encryptie-events, waardoor gebruikers kunnen tracken welke applicaties encryptie-operaties aanvragen. Het browser-segment filtert nu op platform om alleen web-apps te tonen.&lt;/p>
&lt;h3 id="bitchat-v151-ios">Bitchat v1.5.1 (iOS)&lt;/h3>
&lt;p>&lt;a href="https://github.com/permissionlesstech/bitchat">Bitchat&lt;/a>, de offline-capable messaging app die Nostr en Bluetooth mesh gebruikt, releasede &lt;a href="https://github.com/permissionlesstech/bitchat/releases/tag/v1.5.1">v1.5.1&lt;/a> met iOS-beveiligingsverharding. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/1012">PR #1012&lt;/a> valideert Nostr event-handtekeningen voor verwerking, verwerpt ongeldige giftwraps en embedded packets, capt oversized payloads en blokkeert gespoofde BLE announce sender ID&amp;rsquo;s. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/998">PR #998&lt;/a> fixt iOS BLE mesh-authenticatie door sender ID&amp;rsquo;s te binden aan connection UUID&amp;rsquo;s, wat identiteitsspoofing in het mesh-netwerk voorkomt. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/972">PR #972&lt;/a> voegt notificatie rate limiting toe om peer discovery floods te voorkomen wanneer meerdere mesh-apparaten in de buurt zijn.&lt;/p>
&lt;h3 id="keychat-v1392">KeyChat v1.39.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/keychat-io/keychat-app">KeyChat&lt;/a> releasede &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.39.2%2B6495">v1.39.2&lt;/a> met &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect-ondersteuning via &lt;a href="https://github.com/keychat-io/keychat-app/pull/148">PR #148&lt;/a>. Gebruikers kunnen nu externe Lightning-wallets verbinden voor betalingen binnen de messaging-app. De release voegt ook macOS desktop-notificaties toe.&lt;/p>
&lt;h3 id="nostrmo-v350">Nostrmo v3.5.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/haorendashu/nostrmo">Nostrmo&lt;/a>, de cross-platform Flutter-client, leverde &lt;a href="https://github.com/haorendashu/nostrmo/releases/tag/3.5.0">v3.5.0&lt;/a> met een herziening van het feedsysteem. De update vervangt vaste feeds door aanpasbare alternatieven: General Feed, Mentioned Feed en Relay Feed, elk configureerbaar via nieuwe bewerkingspagina&amp;rsquo;s. De release implementeert outbox-modelondersteuning voor betere event-routing en breidt lokale relay-functionaliteit uit met configureerbare groottelimieten en abonnementsondersteuning.&lt;/p>
&lt;h3 id="shosho-v0111">Shosho v0.11.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, de livestreaming-app voor Nostr, releasede &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.11.1">v0.11.1&lt;/a> met opname- en VOD-mogelijkheden. De update voegt room presence-indicatoren toe die tonen wie streams bekijkt, threaded chat-conversaties voor betere discussie-organisatie, en Nostr Connect-ondersteuning op iOS via &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>. Streamers kunnen nu hun uitzendingen opslaan voor later bekijken terwijl ze realtime chatinteracties met hun publiek behouden.&lt;/p>
&lt;h3 id="noscall-v050">NosCall v0.5.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/sanah9/noscall">NosCall&lt;/a>, de audio- en videobel-app voor Nostr, leverde &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.5.0-release">v0.5.0&lt;/a> met contactgroepen voor het organiseren van gesprekken per categorie, relaybeheer voor verbindingsoptimalisatie en configureerbare ICE-serverinstellingen voor verbeterde NAT-traversal. De release voegt ook dark mode-ondersteuning toe. NosCall gebruikt Nostr voor call signaling en coördinatie, wat peer-to-peer gesprekken mogelijk maakt zonder gecentraliseerde servers.&lt;/p>
&lt;h3 id="divine-104">diVine 1.0.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, rabble&amp;rsquo;s korte-video-client met looping, releasede &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.4">1.0.4&lt;/a> als Android pre-release alpha voorafgaand aan de Zapstore-indiening. De release richt zich op het testen van Nostr-sleutelbeheer, inclusief nsec-import, &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46 (Nostr Connect)&lt;/a> remote signing met nsecBunker en Amber, en nostrconnect:// URL-handling. Het team vraagt feedback over relay-compatibiliteit en video-interoperabiliteit met andere clients. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1265">PR #1265&lt;/a> fixt iOS-bestandspadafhandeling die videoclips onbruikbaar maakte na app-updates door relatieve paden op te slaan in plaats van absolute containerpaden. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1251">PR #1251&lt;/a> fixt navigatieproblemen bij het bekijken van profielen vanuit reacties.&lt;/p>
&lt;h3 id="zeus-v0122">Zeus v0.12.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> leverde &lt;a href="https://github.com/ZeusLN/zeus/releases/tag/v0.12.2">v0.12.2&lt;/a> als stabiele release, die de &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-28-newsletter/#zeus-v0122-beta---nwc-fixes">NWC-fixes behandeld in vorige edities&lt;/a> consolideert.&lt;/p>
&lt;h3 id="frostr-igloo-ios-testflight">Frostr Igloo iOS TestFlight&lt;/h3>
&lt;p>&lt;a href="https://github.com/FROSTR-ORG">Frostr&lt;/a> (&lt;a href="https://frostr.org/">frostr.org&lt;/a>) lanceerde &lt;a href="https://github.com/FROSTR-ORG/igloo-ios">Igloo voor iOS&lt;/a> op &lt;a href="https://testflight.apple.com/join/72hjQe3J">TestFlight&lt;/a>, wat threshold signing uitbreidt naar Apple-apparaten. Frostr gebruikt FROST (Flexible Round-Optimized Schnorr Threshold) handtekeningen om nsec-sleutels op te splitsen in shares verdeeld over apparaten, wat k-of-n signing met fouttolerantie mogelijk maakt. Gebruikers die in &amp;ldquo;demo mode&amp;rdquo; meedoen nemen deel aan een live 2-of-2 threshold signature experiment, wat de realtime coördinatiemogelijkheden van het protocol demonstreert. De iOS-release voegt zich bij &lt;a href="https://github.com/FROSTR-ORG/igloo-android">Igloo voor Android&lt;/a> (v0.1.2), die in december werd geleverd met &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55 (Android Signer)&lt;/a>-ondersteuning voor cross-app signing requests. Beide mobiele clients complementeren &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop">Igloo desktop&lt;/a> en de &lt;a href="https://github.com/FROSTR-ORG/frost2x">Frost2x&lt;/a> browser-extensie.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="damus-implementeert-nip-19-relay-hints">Damus Implementeert NIP-19 Relay Hints&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> mergede &lt;a href="https://github.com/damus-io/damus/pull/3477">PR #3477&lt;/a>, die &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> relay hint-consumptie implementeert voor event-fetching. De feature maakt het bekijken van notities mogelijk op relays die niet in de geconfigureerde pool van de gebruiker zitten door hints te extraheren uit &lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10 (Reply Threads)&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-18/">NIP-18 (Reposts)&lt;/a> en NIP-19-referenties. De implementatie gebruikt efemere relay-verbindingen met reference-counted cleanup, waarmee permanente relay pool-uitbreiding wordt vermeden.&lt;/p>
&lt;p>Aanvullende fixes omvatten Lightning invoice-parsing (&lt;a href="https://github.com/damus-io/damus/pull/3566">PR #3566&lt;/a>), wallet view-laden (&lt;a href="https://github.com/damus-io/damus/pull/3554">PR #3554&lt;/a>), relay list-timing (&lt;a href="https://github.com/damus-io/damus/pull/3553">PR #3553&lt;/a>), en profiel-preloading om visueel &amp;ldquo;poppen&amp;rdquo; te verminderen (&lt;a href="https://github.com/damus-io/damus/pull/3550">PR #3550&lt;/a>). Een &lt;a href="https://github.com/damus-io/damus/pull/3590">draft PR #3590&lt;/a> toont &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> privé-DM-ondersteuning in ontwikkeling.&lt;/p>
&lt;h3 id="primal-android-levert-nwc-encryptie">Primal Android Levert NWC-Encryptie&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> had een zeer actieve week met 18 gemerged PR&amp;rsquo;s gericht op wallet-infrastructuur. De app integreert nu met Spark, Lightspark&amp;rsquo;s self-custodial Lightning-protocol. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/874">PR #874&lt;/a> voegt NWC-encryptie-ondersteuning toe, terwijl &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/872">PR #872&lt;/a> NWC info-events verstuurt wanneer verbindingen tot stand komen.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/870">PR #870&lt;/a> maakt CSV-export voor wallet-transacties mogelijk, bruikbaar voor boekhoud- en belastingdoeleinden. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/716">PR #716&lt;/a> voegt een lokale accountwisselaar toe in de Note Editor. Meerdere wallet-herstelfixes (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/876">PR #876&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/875">PR #875&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/873">PR #873&lt;/a>) adresseren edge cases voor gebruikers met niet-Spark wallet-configuraties.&lt;/p>
&lt;h3 id="marmot-typescript-sdk-voegt-berichtgeschiedenis-toe">Marmot TypeScript SDK Voegt Berichtgeschiedenis Toe&lt;/h3>
&lt;p>De TypeScript-implementatie van het &lt;a href="https://github.com/marmot-protocol/marmot">Marmot&lt;/a>-protocol zet ontwikkeling voort. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/38">PR #38&lt;/a> door hzrd149 implementeert berichtgeschiedenis-persistentie met paginering voor de referentie chatapplicatie, terwijl &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/39">PR #39&lt;/a> de library-ergonomie verbetert.&lt;/p>
&lt;p>Aan de Rust-kant implementeert &lt;a href="https://github.com/marmot-protocol/mdk/pull/161">PR #161&lt;/a> herhalbare state-handling om berichtcontext te behouden bij falen, en &lt;a href="https://github.com/marmot-protocol/mdk/pull/164">PR #164&lt;/a> schakelt over naar std::sync::Mutex om tokio-panics met SQLite te vermijden. De whitenoise-rs backend voegt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/418">Amber-integratie&lt;/a> toe (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/418">PR #418&lt;/a>), &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/467">upgradet naar MDK en nostr-sdk 0.44&lt;/a> (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/467">PR #467&lt;/a>), en introduceert realtime notification streaming via &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/460">PR #460&lt;/a> met NewMessage en GroupInvite event types.&lt;/p>
&lt;h3 id="haven-voegt-periodieke-wot-refresh-toe">HAVEN Voegt Periodieke WoT-Refresh Toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/haven">HAVEN&lt;/a>, de persoonlijke relay, mergede &lt;a href="https://github.com/bitvora/haven/pull/108">PR #108&lt;/a> met periodieke &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-refresh. De feature zorgt ervoor dat vertrouwensscores actueel blijven naarmate de sociale grafieken van gebruikers evolueren, wat de nauwkeurigheid van spamfiltering verbetert.&lt;/p>
&lt;h3 id="nostr-tools">nostr-tools&lt;/h3>
&lt;p>&lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a>, de kern JavaScript-library, ontving meerdere verbeteringen deze week. Commits omvatten een &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/c2423f7f31853d97fef2e3d649204cec328e81d5">fix voor hashtag-parsing na newlines&lt;/a> in &lt;a href="https://nostrcompass.org/nl/topics/nip-27/">NIP-27 (Tekstnotitiereferenties)&lt;/a> mentions, &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/ab802c8dbe35d29feb732ba54e82a346c21c32e2">automatische pruning van kapotte relay-objecten met idle tracking&lt;/a> voor verbindingsopruiming, &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/be9b91318fea6a0cb154b8734a15b50a4c1e7638">verwijdering van message queue&lt;/a> voor single-threaded prestatieoptimalisatie, en &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/05b1fba5113182ac0aa3c72d1f511cd956a7c139">source file exports&lt;/a> voor betere TypeScript-imports.&lt;/p>
&lt;h3 id="ndk">NDK&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> leverde &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/26abea24726ed844fdd091744ac9f768f1a530a0">beta.71&lt;/a> met een &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/33e759508bc656dc45d3d77c741edf581af323f3">fix voor reconnection na device sleep/wake-cycli en stale connection handling&lt;/a>, wat betrouwbaarheidsproblemen voor mobiele applicaties aanpakt.&lt;/p>
&lt;h3 id="notedeck">Notedeck&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, de desktopclient van het Damus-team, heeft een &lt;a href="https://github.com/damus-io/notedeck/pull/1279">open PR #1279&lt;/a> die een &lt;a href="https://nostrcompass.org/nl/topics/nip-34/">NIP-34 (Git-samenwerking)&lt;/a> viewer toevoegt. Dit zou het browsen van git-repositories, patches en issues gepubliceerd op Nostr relays direct binnen de client mogelijk maken, wat Notedeck een potentiële front-end maakt voor ngit-gebaseerde workflows.&lt;/p>
&lt;h3 id="njump">njump&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/njump">njump&lt;/a>, de Nostr web-gateway, voegde ondersteuning toe voor twee &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51 (Lists)&lt;/a> event types via &lt;a href="https://github.com/fiatjaf/njump/pull/152">PR #152&lt;/a>. De gateway rendert nu kind:30000 Follow Sets, die gecategoriseerde groeperingen van gebruikers zijn die clients in verschillende contexten kunnen weergeven, en kind:39089 Starter Packs, die gecureerde profielcollecties zijn ontworpen voor delen en groepsvolgen. Deze toevoegingen laten njump community-gecureerde lijsten weergeven wanneer gebruikers nevent-links delen.&lt;/p>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, de Android-client, fixte een bug die het delen van video&amp;rsquo;s vanuit de speler-weergave verhinderde (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1695">PR #1695&lt;/a>). De &amp;ldquo;Video delen&amp;rdquo;-optie verscheen niet omdat de content-parameter niet werd doorgegeven aan de controleknoppencomponent. Gebruikers kunnen nu Nostr-videocontent delen naar andere apps direct vanuit de speler. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1693">PR #1693&lt;/a> fixt Jackson JSON-deserialisatiecrashes die optraden bij het parsen van bepaalde malformed events.&lt;/p>
&lt;h3 id="jumble">Jumble&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a>, de webclient gericht op relay feed-browsen, voegde audiobestand-uploads via clipboard toe in &lt;a href="https://github.com/CodyTseng/jumble/pull/743">PR #743&lt;/a>. Gebruikers kunnen nu audiobestanden direct in de post-editor plakken, die ze uploadt naar geconfigureerde media-servers en de URL inbedt in de notitie. De feature weerspiegelt bestaande image paste-functionaliteit.&lt;/p>
&lt;h3 id="flotilla">Flotilla&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/flotilla">Flotilla&lt;/a>, hodlbod&amp;rsquo;s &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29 (Relay-Based Groups)&lt;/a> communities-client, leverde notificaties via &lt;a href="https://github.com/coracle-social/flotilla/pull/270">PR #270&lt;/a>. De update refactort het alertsysteem van anchor-based polling naar lokale pull-notificaties voor web en push-notificaties voor mobiel. De architectuur implementeert de voorgestelde NIP-9a standaard (zie &lt;a href="https://github.com/nostr-protocol/nips/pull/2194">PR #2194&lt;/a> hieronder), waarbij gebruikers webhook-callbacks registreren bij relays en versleutelde event-payloads ontvangen wanneer filters matchen.&lt;/p>
&lt;h3 id="formstr">Formstr&lt;/h3>
&lt;p>&lt;a href="https://github.com/abh3po/nostr-forms">Formstr&lt;/a>, de Nostr-native formulieren-applicatie, voegde formulier-import en versleutelde formulier-ondersteuning toe in &lt;a href="https://github.com/abh3po/nostr-forms/pull/422">PR #422&lt;/a>. Gebruikers kunnen nu bestaande formulieren importeren via een antwoordlink of andere Formstr-instanties. De encryptiefunctie stelt formuliercreators in staat om antwoorden te beperken zodat alleen aangewezen ontvangers inzendingen kunnen lezen, bruikbaar voor enquêtes die gevoelige informatie verzamelen.&lt;/p>
&lt;h3 id="pollerama">Pollerama&lt;/h3>
&lt;p>&lt;a href="https://github.com/abh3po/nostr-polls">Pollerama&lt;/a> (&lt;a href="https://pollerama.fun">pollerama.fun&lt;/a>), gebouwd op &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a>, voegde &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM-delen voor polls toe via &lt;a href="https://github.com/abh3po/nostr-polls/pull/141">PR #141&lt;/a> en &lt;a href="https://github.com/abh3po/nostr-polls/pull/142">PR #142&lt;/a>. Gebruikers kunnen nu polls direct naar contacten delen via versleutelde directe berichten.&lt;/p>
&lt;h3 id="nostrability-schemata">Nostrability Schemata&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/schemata">Nostrability schemata&lt;/a>, de JSON-verificatieschema-collectie voor Nostr events, voegde &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a>-dekking toe via &lt;a href="https://github.com/nostrability/schemata/pull/59">PR #59&lt;/a>. De update bevat schema&amp;rsquo;s voor kind 13 (seal) en kind 1059 (gift wrap) events, als aanvulling op bestaande &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> schema-dekking.&lt;/p>
&lt;h3 id="vector">Vector&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, de privacy-gerichte desktop messenger die &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a>, &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gebruikt voor zero-metadata encryptie, mergede &lt;a href="https://github.com/VectorPrivacy/Vector/pull/39">PR #39&lt;/a> met SIMD-versnelde prestatieoptimalisaties. Hex-encoding draait 65x sneller, image preview-generatie tot 38x sneller, en bericht-lookups 184x sneller via binary search-indexering. De PR voegt ARM64 NEON intrinsics toe voor Apple Silicon en x86_64 AVX2/SSE2 met runtime-detectie voor Windows en Linux. Geheugengebruik daalde met berichtstructs gereduceerd van 472 naar 128 bytes en npub-opslag 99,6% verminderd door interning.&lt;/p>
&lt;p>Vector v0.3.0 (december 2025) integreerde &lt;a href="https://github.com/marmot-protocol/mdk">MDK (Marmot Development Kit)&lt;/a> voor MLS protocol-gebaseerde groepsberichten, wat end-to-end versleutelde groepen met forward secrecy naar de client bracht. MIP-04 file sharing handelt nu imeta-attachments af voor MLS-groepen, ontworpen voor interoperabiliteit met &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-28-newsletter/#marmot-protocol-updates">White Noise&lt;/a>. De release introduceerde ook een Mini Apps-platform met WebXDC-gebaseerde P2P multiplayer games, een gedecentraliseerde app store genaamd The Nexus, PIVX wallet-integratie voor in-app betalingen, berichtbewerking met volledige geschiedenistracking, en 4x geheugenverlaging tijdens image-uploads.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1913">NIP-47: Hold Invoice-ondersteuning&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a> ondersteunt nu hold invoices, wat geavanceerde betalingsworkflows mogelijk maakt waarbij ontvangers betalingen expliciet moeten settlen of annuleren. De PR voegt drie nieuwe RPC-methodes toe: &lt;code>make_hold_invoice&lt;/code> creëert een hold invoice met een vooraf gegenereerde preimage en payment hash, &lt;code>settle_hold_invoice&lt;/code> claimt betaling door de originele preimage te verstrekken, en &lt;code>cancel_hold_invoice&lt;/code> verwerpt betaling met zijn payment hash. Een nieuwe &lt;code>hold_invoice_accepted&lt;/code> notificatie vuurt wanneer een betaler betaling vergrendelt. Dit maakt use cases mogelijk zoals pay-to-unlock content, marketplace escrow-systemen en payment gating. Implementaties zijn al onderweg in &lt;a href="https://github.com/getAlby/hub/pull/1298">Alby Hub&lt;/a>, &lt;a href="https://github.com/getAlby/js-sdk/pull/382">Alby JS-SDK&lt;/a> en &lt;a href="https://github.com/relaystr/ndk/pull/147">dart NDK&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2208">NIP-05: Lowercase-vereiste&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/nl/topics/nip-05/">NIP-05 (Domeinverificatie)&lt;/a> vereist nu expliciet lowercase voor zowel hex publieke sleutels als lokale namen in het &lt;code>nostr.json&lt;/code> bestand. Dit was impliciet in de spec maar niet vermeld, wat interoperabiliteitsproblemen veroorzaakte wanneer sommige implementaties mixed case gebruikten terwijl andere normaliseerden naar lowercase. Clients die NIP-05 identifiers valideren moeten nu alle &lt;code>nostr.json&lt;/code> responses verwerpen die uppercase karakters bevatten in keys of namen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2205">NIP-73: Landcodes&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/nl/topics/nip-73/">NIP-73 (Geotags)&lt;/a> ondersteunt nu ISO 3166 landcodes als alternatief voor geohashes. Events kunnen &lt;code>[&amp;quot;g&amp;quot;, &amp;quot;US&amp;quot;, &amp;quot;countryCode&amp;quot;]&lt;/code> tags bevatten om locatie op landniveau aan te geven zonder precieze coördinaten te vereisen. Dit maakt contentfiltering en -ontdekking op landbasis mogelijk voor applicaties waar exacte locatie onnodig of ongewenst is. De PR voegde ook een ontbrekend geohash-voorbeeld toe aan de spec-documentatie.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1336">NIP-82: Software Applications&lt;/a>&lt;/strong> - franzap kondigde een grote update aan voor deze conceptspecificatie, die definieert hoe softwareapplicaties worden gedistribueerd via Nostr met kind 30063 release events. De update dekt nu ongeveer 98% van apparaatplatforms wereldwijd, inclusief macOS, Linux, Windows, FreeBSD, WASM-omgevingen, VS Code-extensies, Chrome-extensies en Web Bundles/PWA&amp;rsquo;s. Het team richt zich vervolgens op Android-, PWA- en iOS-ondersteuning, en nodigt ontwikkelaars uit om te convergeren op deze gedeelde standaard. Zapstore plant om in de komende weken te migreren naar het nieuwe formaat.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2211">NIP-74: Podcasts&lt;/a>&lt;/strong> - Definieert adresseerbare events voor podcastshows (kind 30074) en afleveringen (kind 30075). Shows bevatten metadata zoals titel, beschrijving, categorieën en coverafbeeldingen. Afleveringen verwijzen naar hun bovenliggende show en bevatten enclosure-URL&amp;rsquo;s, duur en chapter markers. De spec integreert met Podcasting 2.0 metadata-standaarden en bevat value tags voor V4V (value-for-value) monetisatie via Lightning. Platforms zoals &lt;a href="https://transmit.fm">transmit.fm&lt;/a>, een Nostr-native podcast publishing platform, kunnen direct naar relays publiceren met dit formaat, wat podcasters in staat stelt content te distribueren zonder tussenpersonen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2207">NIP-FR: Friends-Only Notes&lt;/a>&lt;/strong> - Stelt een mechanisme voor om notities te publiceren die alleen zichtbaar zijn voor een door de gebruiker gedefinieerde vriendenlijst met behulp van een gedeelde symmetrische sleutel genaamd een ViewKey. De auteur versleutelt notities (kind 2044) met de ViewKey via NIP-44. De ViewKey zelf wordt eenmalig aan elke vriend gedistribueerd via &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a>. Vrienden die de ViewKey bezitten kunnen de notities ontsleutelen en lezen; alle anderen zien alleen cijfertekst. Wanneer de auteur een vriend verwijdert, wordt de ViewKey geroteerd: een nieuwe sleutel wordt gegenereerd en herverdeeld naar alle resterende vrienden via gift wrap, waardoor de verwijderde vriend geen toegang meer heeft tot toekomstige berichten. Deze aanpak scheidt contentversleuteling (symmetrisch, efficiënt) van sleuteldistributie (asymmetrisch, per vriend), waardoor het protocol lichtgewicht blijft terwijl het een veelgevraagde privacy-feature mogelijk maakt.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrhub.io/e/1a451c1581888215ae5c311d36c8a7c7d9e5e81f1f4010de4afaf7fcbd553e90">NIP-DB: Browser Nostr Event Database Interface&lt;/a>&lt;/strong> (&lt;a href="https://github.com/hzrd149/nostr-bucket/blob/master/nip.md">spec&lt;/a>) - Stelt een standaard &lt;code>window.nostrdb&lt;/code> interface voor voor browser-extensies die lokale Nostr event-opslag bieden. De API bevat methodes voor het toevoegen van events, opvragen op ID of filter, tellen van matches, en abonneren op updates. Webapplicaties kunnen deze interface gebruiken om te lezen van lokaal gecachte events zonder relay-verzoeken te doen, wat bandbreedte en latentie vermindert. hzrd149&amp;rsquo;s &lt;a href="https://github.com/hzrd149/nostr-bucket">nostr-bucket&lt;/a> browser-extensie biedt een referentie-implementatie, die de interface injecteert in alle browsertabs. Een begeleidende &lt;a href="https://github.com/hzrd149/window.nostrdb.js">polyfill library&lt;/a> implementeert dezelfde API met IndexedDB voor omgevingen zonder de extensie.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrhub.io/e/237667820943d1c8bbe7ab7732623ae51b337f177776ece439d4a8be84708eb7">TRUSTed Filters&lt;/a>&lt;/strong> - Een suite van vijf gerelateerde voorstellen voor gedecentraliseerde contentcuratie, voortbouwend op vitorpamplona&amp;rsquo;s samengevoegde &lt;a href="https://github.com/nostr-protocol/nips/pull/1534">Trusted Assertions PR #1534&lt;/a>. De kernspecificatie introduceert kind 17570 events voor het declareren van Trust Provider Preferences, waardoor gebruikers kunnen specificeren welke diensten ze vertrouwen voor event-filtering en -ranking. Trust providers publiceren assertions (kind 37571), statistieken (kind 37572) en rankings (kind 37573) waarop clients kunnen abonneren. Het systeem gebruikt een plugin-architectuur met W/w tags om filtertypes en transformaties te specificeren. Dit maakt rekenintensieve operaties zoals spamdetectie, reputatiescoring en contentranking mogelijk op dedicated infrastructuur terwijl gebruikers controle behouden over welke providers ze vertrouwen. De suite bevat aparte specs voor filterpresets, gebruikersrankings, trusted events en plugin-definities.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2194">NIP-9a: Push Notifications&lt;/a>&lt;/strong> - hodlbod stelt een standaard voor voor relay-gebaseerde push-notificaties met kind 30390 registratie-events. Gebruikers creëren een registratie met filters voor events die ze willen ontvangen en een webhook callback-URL. De registratie is versleuteld naar de pubkey van de relay (van zijn NIP-11 &lt;code>self&lt;/code> veld). Wanneer matchende events plaatsvinden, POST relays naar de callback met de event ID (plaintext voor deduplicatie) en het event zelf (NIP-44 versleuteld naar de gebruiker). Deze architectuur laat relays notificaties pushen terwijl event-content wordt beschermd tegen intermediaire push-servers. Flotilla&amp;rsquo;s &lt;a href="https://github.com/coracle-social/flotilla/pull/270">PR #270&lt;/a> implementeert deze standaard.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/SigmaEnterprise/Catallax">Catallax&lt;/a>&lt;/strong> - Stelt een gedecentraliseerd contractwerk-protocol voor met escrow via kind 33400 events. Het systeem definieert drie rollen: arbiters kondigen beschikbaarheid en voorwaarden aan, patrons creëren gefinancierde taken met Bitcoin in escrow, en free agents voltooien werk om betaling te claimen. Arbiters lossen geschillen op indien nodig. Het protocol maakt trustless freelancewerkcoördinatie mogelijk waarbij fondsen vergrendeld blijven tot deliverables worden geaccepteerd of arbitrage afloopt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-47-nostr-wallet-connect">NIP Deep Dive: NIP-47 (Nostr Wallet Connect)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> definieert Nostr Wallet Connect (NWC), een protocol voor remote Lightning wallet-besturing via Nostr als communicatielaag. Met de hold invoice-ondersteuning van deze week dekt NWC nu het volledige scala aan Lightning-operaties.&lt;/p>
&lt;p>Het protocol werkt via een simpele uitwisseling. Een wallet-applicatie publiceert een &amp;ldquo;wallet info&amp;rdquo; event (kind 13194) die zijn mogelijkheden beschrijft. Client-applicaties sturen versleutelde verzoeken (kind 23194) die de wallet vragen om operaties uit te voeren zoals invoices betalen, invoices aanmaken of saldo&amp;rsquo;s controleren. De wallet antwoordt met versleutelde resultaten (kind 23195).&lt;/p>
&lt;p>NWC gebruikt &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-encryptie tussen de client en wallet, met een dedicated keypair voor wallet-operaties, gescheiden van de hoofdidentiteit van de gebruiker. Deze scheiding betekent dat het compromitteren van een NWC-verbinding de Nostr-identiteit van de gebruiker niet blootstelt.&lt;/p>
&lt;p>&lt;strong>Ondersteunde Methodes:&lt;/strong>&lt;/p>
&lt;p>De spec definieert methodes voor kern Lightning-operaties: &lt;code>pay_invoice&lt;/code> verstuurt betalingen, &lt;code>make_invoice&lt;/code> genereert invoices voor ontvangen, &lt;code>lookup_invoice&lt;/code> controleert betalingsstatus, &lt;code>get_balance&lt;/code> retourneert het wallet-saldo, en &lt;code>list_transactions&lt;/code> biedt betalingsgeschiedenis. De recent gemergede &lt;code>pay_keysend&lt;/code> maakt betalingen zonder invoices mogelijk, en &lt;code>hold_invoice&lt;/code> ondersteunt voorwaardelijke betalingen.&lt;/p>
&lt;p>&lt;strong>Voorbeeld Events:&lt;/strong>&lt;/p>
&lt;p>De wallet-service publiceert een info event (kind 13194) die zijn mogelijkheden adverteert:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">13194&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;wallet service pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;pay_invoice get_balance make_invoice lookup_invoice list_transactions notifications&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;encryption&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip44_v2&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;notifications&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;payment_received payment_sent&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;unix timestamp&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;wallet service signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Een client stuurt een versleuteld verzoek (kind 23194) om een invoice te betalen:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">23194&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;client ephemeral pubkey from connection URI secret&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;NIP-44 encrypted: {\&amp;#34;method\&amp;#34;: \&amp;#34;pay_invoice\&amp;#34;, \&amp;#34;params\&amp;#34;: {\&amp;#34;invoice\&amp;#34;: \&amp;#34;lnbc50n1...\&amp;#34;}}&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;wallet service pubkey&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;encryption&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;nip44_v2&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;unix timestamp&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;client ephemeral key signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De wallet-service antwoordt (kind 23195) met het betalingsresultaat:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">23195&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;wallet service pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;NIP-44 encrypted: {\&amp;#34;result_type\&amp;#34;: \&amp;#34;pay_invoice\&amp;#34;, \&amp;#34;result\&amp;#34;: {\&amp;#34;preimage\&amp;#34;: \&amp;#34;...\&amp;#34;}, \&amp;#34;error\&amp;#34;: null}&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;client ephemeral pubkey&amp;gt;&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;request event id&amp;gt;&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;unix timestamp&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event hash&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;wallet service signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>e&lt;/code> tag in het antwoord refereert naar het originele verzoek, waardoor clients antwoorden kunnen matchen met hun verzoeken.&lt;/p>
&lt;p>&lt;strong>Hold Invoices:&lt;/strong>&lt;/p>
&lt;p>De &lt;a href="https://github.com/nostr-protocol/nips/pull/1913">PR #1913&lt;/a> van deze week voegde hold invoice-ondersteuning toe, wat escrow-achtige betalingen mogelijk maakt. In tegenstelling tot standaard invoices waarbij de ontvanger direct betaling claimt door de preimage vrij te geven, laten hold invoices de ontvanger deze beslissing uitstellen. Wanneer een betaler naar een hold invoice verstuurt, worden fondsen vergrendeld langs de betalingsroute. De ontvanger kiest vervolgens om te settlen (preimage vrijgeven en fondsen claimen) of annuleren (betaling afwijzen, fondsen teruggeven aan betaler). Als geen van beide acties plaatsvindt, time-out de betaling en worden fondsen automatisch teruggegeven. De PR voegt drie NWC-methodes toe: &lt;code>make_hold_invoice&lt;/code>, &lt;code>settle_hold_invoice&lt;/code> en &lt;code>cancel_hold_invoice&lt;/code>, plus een &lt;code>hold_invoice_accepted&lt;/code> notificatie. Dit mechanisme ondersteunt applicaties zoals Ridestr&amp;rsquo;s rideshare escrow en marketplace geschillenbeslechting.&lt;/p>
&lt;p>&lt;strong>Huidige Implementaties:&lt;/strong>&lt;/p>
&lt;p>Grote wallets ondersteunen NWC: Zeus, Alby en Primal (sinds de &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/874">PR #874&lt;/a> van deze week) implementeren allemaal wallet-side ondersteuning. Aan de clientkant kunnen Damus, Amethyst en de meeste grote Nostr-clients verbinden met NWC-wallets voor zappen en betalingen.&lt;/p>
&lt;p>Het protocol maakt een scheiding van verantwoordelijkheden mogelijk: gebruikers kunnen hun wallet op een apparaat draaien terwijl ze vanaf een ander met Nostr interacteren, met Nostr relays als communicatiekanaal. Deze architectuur betekent dat mobiele clients geen fondsen direct hoeven vast te houden, wat de beveiliging verbetert door wallet-infrastructuur gescheiden te houden van sociale clients.&lt;/p>
&lt;p>&lt;strong>Beveiligingsoverwegingen:&lt;/strong>&lt;/p>
&lt;p>NWC-verbindingen moeten als gevoelig worden behandeld. Hoewel de encryptie berichtinhoud beschermt, moeten de wallet pubkey en connection secret worden bewaakt. Applicaties moeten gebruikers toestaan verbindingen in te trekken en bestedingslimieten in te stellen. Het protocol ondersteunt capability restrictions, zodat wallets kunnen beperken welke operaties een bepaalde verbinding kan uitvoeren.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-59-gift-wrap">NIP Deep Dive: NIP-59 (Gift Wrap)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> definieert een protocol voor het inkapselen van elk Nostr event in meerdere lagen encryptie, wat de identiteit van de afzender verbergt voor relays en waarnemers. De voorstellen van deze week voor friends-only notes (NIP-FR) en push notifications (NIP-9a) vertrouwen beide op gift wrapping, wat het een fundamentele privacy-primitief maakt die het begrijpen waard is.&lt;/p>
&lt;p>&lt;strong>De Drie Lagen:&lt;/strong>&lt;/p>
&lt;p>Gift wrapping gebruikt drie geneste structuren:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Rumor&lt;/strong> (unsigned event): De originele content als Nostr event zonder handtekening. De rumor kan niet direct naar relays worden gestuurd omdat relays unsigned events verwerpen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Seal&lt;/strong> (kind 13): De rumor wordt versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> en geplaatst in een kind 13 event. De seal IS getekend door de echte sleutel van de auteur. Dit is het cryptografische bewijs van auteurschap.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Gift Wrap&lt;/strong> (kind 1059): De seal wordt versleuteld en geplaatst in een kind 1059 event getekend door een willekeurig, eenmalig keypair. De gift wrap bevat een &lt;code>p&lt;/code> tag voor routering naar de ontvanger.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Een Veelvoorkomend Misverstand: Deniability&lt;/strong>&lt;/p>
&lt;p>De spec vermeldt dat unsigned rumors &amp;ldquo;deniability&amp;rdquo; bieden, maar dit is misleidend. De seal-laag IS getekend door de echte auteur. Wanneer de ontvanger de gift wrap ontsleutelt en vervolgens de seal, hebben ze cryptografisch bewijs van wie het bericht stuurde. De ontvanger zou zelfs een zero-knowledge proof kunnen construeren die de identiteit van de afzender onthult zonder hun eigen privésleutel bloot te stellen.&lt;/p>
&lt;p>Wat gift wrap daadwerkelijk biedt is &lt;strong>afzenderprivacy voor waarnemers&lt;/strong>: relays en derden kunnen niet bepalen wie het bericht stuurde omdat ze alleen de gift wrap zien getekend door een willekeurige sleutel. Maar de ontvanger weet het altijd, en kan het bewijzen.&lt;/p>
&lt;p>&lt;strong>Voorbeeld Events:&lt;/strong>&lt;/p>
&lt;p>Hier is de complete drielaagse structuur uit de spec (versturen van &amp;ldquo;Ga je vanavond naar het feest?&amp;rdquo;):&lt;/p>
&lt;p>De rumor (unsigned, kan niet naar relays worden gepubliceerd):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1691518405&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Are you going to the party tonight?&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;611df01bfcf85c26ae65453b772d8f1dfd25c264621c0277e1fc1518686faef9&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;9dd003c6d3b73b74a85a9ab099469ce251653a7af76f523671ab828acd2a0ef9&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De seal (kind 13, getekend door echte auteur, bevat versleutelde rumor):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">13&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;611df01bfcf85c26ae65453b772d8f1dfd25c264621c0277e1fc1518686faef9&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;AqBCdwoS7/tPK+QGkPCadJTn8FxGkd24iApo3BR9/M0uw6n4RFAFSPAKKMgkzVMo...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1703015180&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;28a87d7c074d94a58e9e89bb3e9e4e813e2189f285d797b1c56069d36f59eaa7&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;02fc3facf6621196c32912b1ef53bac8f8bfe9db51c0e7102c073103586b0d29...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De gift wrap (kind 1059, getekend door willekeurige efemere sleutel, bevat versleutelde seal):&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1059&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;18b1a75918f1f2c90c23da616bce317d36e348bcf5f7ba55e75949319210c87c&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;AhC3Qj/QsKJFWuf6xroiYip+2yK95qPwJjVvFujhzSguJWb/6TlPpBW0CGFwfuf...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1703021488&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [[&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;166bf3765ebd1fc55decfe395beff2ea3b2a4e0a8946e7eb578512b555737c99&amp;#34;&lt;/span>]],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;5c005f3ccf01950aa8d131203248544fb1e41a0d698e846bd419cec3890903ac&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;35fabdae4634eb630880a1896a886e40fd6ea8a60958e30b89b33a93e6235df7...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Let op: de &lt;code>pubkey&lt;/code> van de seal is de echte auteur (&lt;code>611df01...&lt;/code>), terwijl de &lt;code>pubkey&lt;/code> van de gift wrap een willekeurige eenmalige sleutel is (&lt;code>18b1a75...&lt;/code>). Relays zien alleen de gift wrap, dus kunnen het bericht niet toeschrijven aan de echte auteur.&lt;/p>
&lt;p>&lt;strong>Wat Elke Laag Beschermt:&lt;/strong>&lt;/p>
&lt;p>De rumor is unsigned en kan niet direct naar relays worden gepubliceerd. De seal is getekend door de echte auteur en bewijst auteurschap aan de ontvanger. De gift wrap is getekend door een willekeurige eenmalige sleutel, wat de echte auteur verbergt voor relays en waarnemers. Alleen de ontvanger kan door beide lagen heen ontsleutelen om de originele content te bereiken en de handtekening van de auteur op de seal te verifieren.&lt;/p>
&lt;p>&lt;strong>Huidige Toepassingen:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17 (Privéberichten)&lt;/a> gebruikt gift wrap voor versleutelde DM&amp;rsquo;s, ter vervanging van het oudere NIP-04-schema. Het voorgestelde NIP-FR (alleen-voor-vrienden notities) gebruikt gift wrapping om ViewKeys aan vrienden te distribueren, die vervolgens notities ontsleutelen die met die sleutels zijn versleuteld. NIP-9a (push notifications) versleutelt notificatie-payloads volgens gift wrap-principes.&lt;/p>
&lt;p>&lt;strong>Metadatabescherming:&lt;/strong>&lt;/p>
&lt;p>Timestamps moeten worden gerandomiseerd om timinganalyse te dwarsbomen. Relays moeten AUTH vereisen voor het serveren van kind 1059 events en ze alleen serveren aan de gemarkeerde ontvanger. Bij verzenden naar meerdere ontvangers, creëer aparte gift wraps voor elk.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Iets aan het bouwen? Nieuws te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #7</title><link>https://nostrcompass.org/nl/newsletters/2026-01-28-newsletter/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-01-28-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Ridestr brengt gedecentraliseerd ridesharing naar Nostr met &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>-betalingen en versleutelde locatiedeling. Pomade introduceert e-mailgebaseerd herstel voor multisig-ondertekenaars. Damus levert &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a> voor betrouwbare DM-synchronisatie. De desktopapp van Amethyst krijgt zoeken, bladwijzers en zaps. Amber v4.1.1 toont relay-vertrouwensscores. Marmot merget MIP-03 en bouwt een TypeScript-referentie chatapp. diVine voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> QR-authenticatie en mentions-ondersteuning toe. Nieuwe NIP-voorstellen behandelen communitybeheer, sequentiegebaseerde synchronisatie en versleutelde bestandsopslag. We kijken ook terug op vijf jaar Nostr-januaries, en volgen de evolutie van het protocol van een handvol early adopters in 2021 via de explosieve App Store-lancering van Damus in 2023 naar het volwassen wordende client-ecosysteem van 2025.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Ridestr brengt gedecentraliseerd ridesharing naar Nostr met &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>-betalingen en versleutelde locatiedeling. Pomade introduceert e-mailgebaseerd herstel voor multisig-ondertekenaars. Damus levert &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a> voor betrouwbare DM-synchronisatie. De desktopapp van Amethyst krijgt zoeken, bladwijzers en zaps. Amber v4.1.1 toont relay-vertrouwensscores. Marmot merget MIP-03 en bouwt een TypeScript-referentie chatapp. diVine voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> QR-authenticatie en mentions-ondersteuning toe. Nieuwe NIP-voorstellen behandelen communitybeheer, sequentiegebaseerde synchronisatie en versleutelde bestandsopslag. We kijken ook terug op vijf jaar Nostr-januaries, en volgen de evolutie van het protocol van een handvol early adopters in 2021 via de explosieve App Store-lancering van Damus in 2023 naar het volwassen wordende client-ecosysteem van 2025.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="ridestr-brengt-gedecentraliseerd-ridesharing-naar-nostr">Ridestr Brengt Gedecentraliseerd Ridesharing naar Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> ontwikkelt een peer-to-peer rideshare-applicatie die volledig op Nostr is gebouwd, en directe chauffeur-passagier transacties mogelijk maakt met Bitcoin en &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>-betalingen. Het protocol gebruikt aangepaste event kinds (30173, 3173-3175, 30180/30181) om ritten te coördineren terwijl privacy behouden blijft door progressieve locatieonthulling en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-encryptie.&lt;/p>
&lt;p>Het systeem werkt via een zorgvuldig gechoreografeerde flow: chauffeurs zenden beschikbaarheid uit met geohash-gecodeerde locaties (~5km precisie) via kind 30173 events, passagiers vragen ritten aan met tariefschattingen via kind 3173, en betalingen worden beveiligd met HTLC escrow tokens voordat de rit begint. Locatieprivacy wordt bewaard door progressieve onthulling, waarbij ophaaldetails alleen worden onthuld wanneer chauffeurs arriveren en bestemmingen worden gedeeld na PIN-verificatie. Alle communicatie tussen partijen gebruikt &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-encryptie voor privacy.&lt;/p>
&lt;p>Ridestr implementeert betalingsbeveiliging via HTLC escrow met P2PK-handtekeningen. Wanneer een passagier het aanbod van een chauffeur accepteert, vergrendelen ze &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>-tokens met een betaalhash die alleen de chauffeur kan claimen na voltooiing van de rit. Het protocol werkt momenteel met single-mint architectuur, wat vereist dat passagiers en chauffeurs dezelfde &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> mint gebruiken. De op Kotlin gebaseerde Android-implementatie van het project handelt proof-verificatie af en herstel van verouderde proofs via NUT-07 state checks.&lt;/p>
&lt;p>Ridestr pakt uitdagingen aan die de meeste Nostr-applicaties vermijden: realtime locatiecoördinatie, betalingsescrow met geschillenbeslechting en reputatiesystemen voor interacties in de fysieke wereld. Het project is in beta en demonstreert dat Nostr&amp;rsquo;s event-model peer-to-peer servicemarktplaatsen kan ondersteunen, niet alleen het delen van content.&lt;/p>
&lt;h3 id="pomade-lanceert-alpha-herstelsysteem-voor-multisig-ondertekenaars">Pomade Lanceert Alpha-Herstelsysteem voor Multisig-Ondertekenaars&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/pomade">Pomade&lt;/a>, ontwikkeld door hodlbod, bouwt voort op het bestaande &lt;a href="https://github.com/FROSTR-ORG">FROSTR&lt;/a>-ecosysteem om een op herstel gerichte threshold signing service te bieden. Met &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a> (Flexible Round-Optimized Schnorr Threshold) handtekeningen via de @frostr/bifrost library, voegt Pomade e-mailgebaseerde herstelflows toe bovenop de threshold-cryptografie. Het systeem verdeelt de geheime sleutel van een gebruiker via Shamir Secret Sharing, en distribueert shares over meerdere onafhankelijke ondertekenaars met een configureerbare drempel (2-van-3, 3-van-5, etc.).&lt;/p>
&lt;p>Het protocol werkt volledig over Nostr met een enkel event kind (28350) met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> versleutelde payloads. Bij het ondertekenen vraagt de client partiële handtekeningen op van minimaal &lt;code>threshold&lt;/code> ondertekenaars, waarna deze worden samengevoegd tot een geldige Schnorr-handtekening. Voor encryptie werken ondertekenaars samen om gedeelde geheimen af te leiden via ECDH zonder dat een enkele partij de volledige sleutel kent.&lt;/p>
&lt;p>Herstel werkt via twee authenticatiemethoden: wachtwoordgebaseerd (met argon2id met de pubkey van de ondertekenaar als salt) of e-mail OTP. Om MITM-aanvallen tijdens OTP-herstel te voorkomen, genereert elke ondertekenaar zijn eigen verificatiecode met een door de client verstrekte prefix, wat gebruikers verplicht om onafhankelijk te authenticeren bij elke ondertekenaar. Het protocol vereist proof-of-work op registratie-events (20+ bits per &lt;a href="https://nostrcompass.org/nl/topics/nip-13/">NIP-13&lt;/a>) om spam te voorkomen.&lt;/p>
&lt;p>Het vertrouwensmodel is expliciet: als &lt;code>threshold&lt;/code> ondertekenaars samenspannen, kunnen ze de sleutel stelen. E-mailproviders worden volledig vertrouwd aangezien zij OTP&amp;rsquo;s kunnen onderscheppen. Gebruikers kunnen hun volledige geheime sleutel niet onafhankelijk herstellen; dit vereist medewerking van &lt;code>threshold&lt;/code> ondertekenaars. Het protocol is ontworpen voor het onboarden van nieuwe gebruikers die niet vertrouwd zijn met sleutelbeheer, met de expliciete aanbeveling dat gebruikers migreren naar self-custody zodra ze comfortabel zijn. Pomade waarschuwt voor mogelijke &amp;ldquo;sleutelverlies, diefstal, denial of service, of metadata-lekkage&amp;rdquo; gezien de ongeauditte alpha-status.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="damus-levert-negentropy-voor-betrouwbare-dm-synchronisatie">Damus Levert Negentropy voor Betrouwbare DM-Synchronisatie&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/tree/v1.13">Damus v1.13&lt;/a> levert de negentropy-implementatie die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/#damus-ios-client---open-prs">we vorige week als open PR previewed hebben&lt;/a>. &lt;a href="https://github.com/damus-io/damus/pull/3536">PR #3536&lt;/a> voegt basis &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a>-ondersteuning toe aan de netwerklaag, wat set reconciliation mogelijk maakt met relays die het protocol ondersteunen. Een begeleidende &lt;a href="https://github.com/damus-io/damus/pull/3547">PR #3547&lt;/a> voegt pull-to-refresh DM-synchronisatie toe die negentropy gebruikt om ontbrekende berichten te herstellen wanneer standaard REQ-abonnementen falen.&lt;/p>
&lt;p>De implementatie volgt een conservatieve aanpak: normale DM-loading gaat ongewijzigd door, met &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a> beschikbaar als herstelmechanisme wanneer gebruikers handmatig verversen. Geautomatiseerde tests demonstreren de fix door een DM te genereren met een oude timestamp die standaard queries zouden missen, en vervolgens negentropy sync te gebruiken om deze succesvol op te halen. Hoewel &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a>-ondersteuning compatibele relays vereist, gaat de implementatie elegant om met gemengde relay-omgevingen door het protocol te gebruiken waar beschikbaar.&lt;/p>
&lt;h3 id="amber-v411---relay-vertrouwensscores">Amber v4.1.1 - Relay-Vertrouwensscores&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.1">Amber v4.1.1&lt;/a> levert weergave van relay-vertrouwensscores (&lt;a href="https://github.com/greenart7c3/Amber/pull/289">PR #289&lt;/a>), en implementeert de relay-evaluatieconcepten die we bespraken in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/#nip-updates">de Trusted Relay Assertions NIP-coverage van vorige week&lt;/a>. Vertrouwensscores verschijnen nu op de Relays-pagina en voor NostrConnect-verbindingsverzoeken, wat gebruikers helpt relay-betrouwbaarheid te beoordelen voordat ze verbindingen autoriseren. De release bevat ook een herontworpen login/events/permissions UI en ondersteuning voor de &lt;code>switch_relays&lt;/code>-methode. Prestatieverbeteringen cachen keystore-operaties, wat rapporten van 20+ seconden laadtijden op oudere apparaten aanpakt.&lt;/p>
&lt;h3 id="nak-v0182---mcp-integratie">nak v0.18.2 - MCP-Integratie&lt;/h3>
&lt;p>fiatjaf&amp;rsquo;s &lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a> (Nostr Army Knife) &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.2">v0.18.2&lt;/a> voegt &lt;a href="https://nostrify.dev/mcp">Model Context Protocol&lt;/a>-ondersteuning toe via &lt;code>nak mcp&lt;/code>, wat AI-agents in staat stelt om mensen op Nostr te zoeken, notities te publiceren, gebruikers te vermelden en content te lezen met het outbox-model. De release introduceert ook een &lt;a href="https://github.com/fiatjaf/nak/blob/master/install.sh">one-line installer&lt;/a> (&lt;code>curl -sSL https://raw.githubusercontent.com/fiatjaf/nak/master/install.sh | sh&lt;/code>) die voorgebouwde binaries downloadt, wat de Go-toolchain-vereiste elimineert voor eindgebruikers. Bunker-modus ondersteunt nu Unix sockets en &lt;code>switch_relays&lt;/code>.&lt;/p>
&lt;h3 id="zeus-v0122-beta---nwc-fixes">Zeus v0.12.2 Beta - NWC-Fixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus/releases">Zeus v0.12.2-beta1&lt;/a> levert meerdere NWC-fixes die problemen aanpakken die we behandelden in &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/#zeus-lightning-wallet-with-nostr-wallet-connect">de Zeus-coverage van vorige week&lt;/a>.&lt;/p>
&lt;h2 id="projectupdates">Projectupdates&lt;/h2>
&lt;h3 id="amethyst-desktop---fase-2a-geleverd">Amethyst Desktop - Fase 2A Geleverd&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> heeft &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1676">Fase 2A van zijn desktopapp&lt;/a> uitgerold, met Zoeken, Bladwijzers, Zaps, Thread-weergaven en langvormige content (Reads) voor de desktopervaring. Een begeleidende &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1683">PR #1683&lt;/a> voegt transparante feedback voor event-broadcasting toe, zodat gebruikers nu realtime per-relay status zien terwijl hun events zich over het netwerk verspreiden, wat het gemakkelijker maakt om connectiviteitsproblemen te diagnosticeren.&lt;/p>
&lt;h3 id="notedeck-voortgang-kalender-app-en-ux-polish">Notedeck Voortgang: Kalender-App en UX-Polish&lt;/h3>
&lt;p>De Damus-team&amp;rsquo;s &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> desktopclient heeft auto-hide toolbar-gedrag gemerged (&lt;a href="https://github.com/damus-io/notedeck/pull/1268">PR #1268&lt;/a>) dat reageert op scrollsnelheid voor meer schermruimte op mobiele weergaven. Een &lt;a href="https://github.com/damus-io/notedeck/pull/1271">draft PR #1271&lt;/a> voegt een volledige &lt;a href="https://nostrcompass.org/nl/topics/nip-52/">NIP-52&lt;/a> Kalender-app toe met maand/week/dag/agenda-weergaven, RSVP-ondersteuning en &lt;a href="https://nostrcompass.org/nl/topics/nip-22/">NIP-22&lt;/a>-reacties op kalenderevents, momenteel feature-flagged voor testen.&lt;/p>
&lt;h3 id="jumble-voegt-community-modus-toe">Jumble Voegt Community-Modus Toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a>, de relay-gerichte webclient, heeft &lt;a href="https://github.com/CodyTseng/jumble/pull/738">community-modus&lt;/a> toegevoegd en ondersteuning voor &lt;a href="https://github.com/CodyTseng/jumble/pull/736">relay set presets via omgevingsvariabelen&lt;/a>, wat het gemakkelijker maakt om thema-instanties te deployen zoals &lt;a href="https://nostr.moe/">nostr.moe&lt;/a>.&lt;/p>
&lt;h3 id="shopstr-orders-dashboard">Shopstr Orders-Dashboard&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> heeft zijn chatgebaseerd orderbeheer vervangen door een dedicated &lt;a href="https://github.com/shopstr-eng/shopstr/pull/219">Orders Dashboard&lt;/a>. De nieuwe interface biedt een gecentraliseerd overzicht voor handelaren om orderstatus te volgen, berichten als gelezen te markeren en fulfillment te beheren zonder door chatthreads te scrollen. De update depreceert IndexedDB-caching ten gunste van server-side orderstatus-API&amp;rsquo;s en herziet hoe order-DM&amp;rsquo;s worden getagd voor betere filtering.&lt;/p>
&lt;h3 id="formstr-voegt-rastervragen-toe">Formstr Voegt Rastervragen Toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/abh3po/nostr-forms">Formstr&lt;/a>, de Nostr-native formulieren-app, heeft &lt;a href="https://github.com/abh3po/nostr-forms/pull/419">rastervragen&lt;/a> toegevoegd en &lt;a href="https://github.com/abh3po/nostr-forms/pull/410">zijn SDK herschreven&lt;/a> met embed-ondersteuning. Een [fix voor niet-&lt;a href="https://nostrcompass.org/nl/topics/nip-07/">NIP-07&lt;/a>-ondertekenaars](&lt;a href="https://github.com/abh3po/nostr-forms/pull/418">https://github.com/abh3po/nostr-forms/pull/418&lt;/a>) loste problemen op voor gebruikers met bunker of lokale ondertekenaars die formulieren probeerden in te dienen met hun identiteit.&lt;/p>
&lt;h3 id="nostr-tools-upgradet-crypto-dependencies">nostr-tools Upgradet Crypto-Dependencies&lt;/h3>
&lt;p>&lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a>, de kern JavaScript-library, &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/520">heeft geupgrade naar @noble/curves v2.0.1&lt;/a>, wat breaking API-wijzigingen over 27 bestanden aanpakt en de nieuwste geauditte noble libraries adopteert. fiatjaf voegde ook &lt;code>switch_relays&lt;/code>-ondersteuning toe aan &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a>, wat bunker-clients in staat stelt om dynamisch relay-verbindingen te wijzigen.&lt;/p>
&lt;h3 id="zeus-werkt-aan-nip-87-mint-reviews">Zeus Werkt aan NIP-87 Mint Reviews&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> heeft een [open PR voor &lt;a href="https://nostrcompass.org/nl/topics/nip-87/">NIP-87&lt;/a> mint reviews](&lt;a href="https://github.com/ZeusLN/zeus/pull/3576%29">https://github.com/ZeusLN/zeus/pull/3576)&lt;/a>, waarmee gebruikers &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> mints kunnen ontdekken en reviewen, gefilterd op Nostr-follows. Reviews bevatten sterbeoordelingen en kunnen anoniem of met de nsec van een gebruiker worden ingediend.&lt;/p>
&lt;h3 id="camelus-levert-volledige-dm-ondersteuning">Camelus Levert Volledige DM-Ondersteuning&lt;/h3>
&lt;p>&lt;a href="https://github.com/camelus-hq/camelus">Camelus&lt;/a>, een Flutter-gebaseerde Android-client gebouwd met Dart NDK voor batterij-efficiente mobiele prestaties, heeft uitgebreide direct messaging toegevoegd met 20+ commits deze week. De update bevat chatcategorieën, berichtdatums, optimistische verzend-UI, note-to-self-functionaliteit en correcte DM-relay-handling.&lt;/p>
&lt;h3 id="marmot-protocol-updates">Marmot Protocol Updates&lt;/h3>
&lt;p>De MIP-03 deterministische commit-resolutie die &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/#marmot-protocol-white-noise-encrypted-group-chat-library">we vorige week als open PR behandelden&lt;/a> is nu gemerged. &lt;a href="https://github.com/marmot-protocol/mdk/pull/152">MDK PR #152&lt;/a> zorgt ervoor dat alle &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-gebaseerde groepschats convergeren naar dezelfde staat wanneer meerdere geldige commits aankomen voor hetzelfde epoch.&lt;/p>
&lt;p>Een begeleidende &lt;a href="https://github.com/marmot-protocol/marmot/pull/28">spec PR #28&lt;/a> voegt init_key-levenscyclusvereisten toe die hiaten aanpakken van implementatie-audits: privésleutelmateriaal van Welcome-berichten moet veilig worden verwijderd na verwerking (zeroization, storage cleanup), en nieuwe leden moeten self-updates uitvoeren binnen 24 uur voor forward secrecy.&lt;/p>
&lt;p>De TypeScript SDK (&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a>) bouwt een referentie chatapplicatie. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/37">PR #37&lt;/a> voegt groepscreatie/listing toe, key package management met publish/broadcast/delete flows, en QR-code uitnodigingen. Een &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/38">open PR #38&lt;/a> door hzrd149 implementeert berichtgeschiedenispersistentie met paginering. De whitenoise-rs backend heeft 15 PR&amp;rsquo;s gemerged deze week, waaronder meertalige ondersteuning (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/455">PR #455&lt;/a>) en MIP-04 v2 mediareferenties (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/450">PR #450&lt;/a>).&lt;/p>
&lt;h3 id="divine-voegt-nostr-integratiefuncties-toe">diVine Voegt Nostr-Integratiefuncties Toe&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, de korte-video-app, continueert snelle Nostr-integratie.&lt;/p>
&lt;p>Open PRs omvatten &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> QR-code authenticatie (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1019">PR #1019&lt;/a>) en &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> versleutelde directe berichten (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/834">PR #834&lt;/a>). De activiteit van deze week richtte zich op &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1098">mentions-ondersteuning&lt;/a> die &lt;code>nostr:&lt;/code> URI&amp;rsquo;s en @mentions converteert naar klikbare profiellinks, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1097">Classic Viners avatar-fallbacks&lt;/a> met Nostr-profielen, en videobewerkingstools inclusief &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1056">tekenen&lt;/a>, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1053">filters&lt;/a> en &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1050">stickers&lt;/a>.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Samengevoegd:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1534">Trusted Relay Assertions&lt;/a>&lt;/strong> - Het voorstel voor het standaardiseren van relay-vertrouwensscoring dat &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/#nip-updates">we vorige week behandelden&lt;/a> is samengevoegd. De specificatie definieert kind 30385 events voor relay-vertrouwensattestaties met scoring op betrouwbaarheid, kwaliteit en toegankelijkheid. Het debat dat tot samenvoeging leidde draaide om of vertrouwensscores &amp;ldquo;globaal&amp;rdquo; (eenmaal berekend voor alle gebruikers) of &amp;ldquo;gepersonaliseerd&amp;rdquo; (relatief aan de sociale grafiek van elke waarnemer) moeten zijn. PageRank-achtige algoritmen zoals &lt;a href="https://trust.nostr.band/">nostr.band&amp;rsquo;s Trust Rank&lt;/a> en &lt;a href="https://github.com/Pretty-Good-Freedom-Tech/graperank-nodejs">GrapeRank&lt;/a> weerstaan sybil-aanvallen door elke rang die door nepaccounts wordt doorgegeven te delen door de grootte van de botfarm.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Communikeys&lt;/strong> - Een &lt;a href="https://nostrhub.io">uitgebreid voorstel&lt;/a> voor communitybeheer dat bestaande npubs gebruikt als community-identifiers in plaats van relay-gebaseerde benaderingen. Elke npub kan een community worden door een kind 10222 event te publiceren; publicaties richten zich op communities via kind 30222 events. Toegangscontrole gebruikt &lt;a href="https://nostrcompass.org/nl/topics/nip-58/">NIP-58&lt;/a> badges, wat gedelegeerd lidmaatschapsbeheer mogelijk maakt met cold storage voor communitysleutels.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2196">NIP-CF: Changes Feed&lt;/a>&lt;/strong> - Een concept dat sequentiegebaseerde eventsynchronisatie voorstelt als alternatief voor tijdstempelgebaseerde &lt;code>since&lt;/code>-filters. Het probleem: standaard Nostr-sync met &lt;code>since&lt;/code>-tijdstempels kan events missen wanneer meerdere events dezelfde seconde-precisie tijdstempel delen, client- en relayklokken uit elkaar drijven, of checkpointing onnauwkeurig is. NIP-CF lost dit op door relays monotoon oplopende volgnummers te laten toewijzen aan opgeslagen events, wat strikte totale ordening biedt. Clients vragen wijzigingen op sinds een specifiek volgnummer en ontvangen events in gegarandeerde volgorde, met precieze checkpointing die nooit events mist. Het voorstel ondersteunt ook live/continue modus waarbij abonnementen open blijven na initiële sync voor realtime updates.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1947">NIP-XX: Encrypted File Sync&lt;/a>&lt;/strong> - Een protocol dat kinds 30800 (versleutelde bestanden), 30801 (vault-indexen) en 30802 (gedeelde documenten) definieert voor het synchroniseren van versleutelde content over apparaten via Nostr relays. Het protocol maakt het mogelijk dat local-first notitie-apps end-to-end versleutelde sync bieden zonder gecentraliseerde servers. Bestandsinhoud, paden, namen en mapstructuur zijn allemaal versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> zelfencryptie, zodat relays blobs opslaan die ze niet kunnen lezen. Binaire bijlagen zoals afbeeldingen gebruiken &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a>-servers met client-side encryptie. Kind 30802 maakt het delen van documenten tussen gebruikers mogelijk door te versleutelen naar de publieke sleutel van de ontvanger.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="vijf-jaar-nostr-januaries">Vijf Jaar Nostr-Januaries&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-31-newsletter/#december-recap-five-years-of-nostr-decembers">De nieuwsbrief van vorige maand&lt;/a> traceerde Nostr&amp;rsquo;s december-mijlpalen van fiatjaf&amp;rsquo;s eerste clientrelease tot Jack Dorsey&amp;rsquo;s katalyserende donatie. Deze terugblik brengt in kaart wat er elke januari gebeurde van 2021 tot en met 2025, met focus op geverifieerde technische ontwikkelingen.&lt;/p>
&lt;h3 id="januari-2021-vroege-ontwikkeling">Januari 2021: Vroege Ontwikkeling&lt;/h3>
&lt;p>Nostr&amp;rsquo;s derde maand zag voortgezette ontwikkeling aan Branle, fiatjaf&amp;rsquo;s Vue.js client die in december 2020 was gelanceerd. Een kleine groep early adopters, waarschijnlijk minder dan 15 mensen, coördineerde via de Telegram-groep &lt;a href="https://t.me/nostr_protocol">@nostr_protocol&lt;/a> (aangemaakt op 16 november 2020), en testte het protocol op een of twee experimentele relays. De command-line client noscl bood terminalgebaseerde interactie.&lt;/p>
&lt;p>De technische basis was al vastgelegd: gebruikers geïdentificeerd door secp256k1 publieke sleutels, posts cryptografisch ondertekend met Schnorr-handtekeningen, en relays die fungeren als domme opslag die niet met elkaar communiceren. Dit was bewust Bitcoin-native cryptografie, een ontwerpkeuze die adoptiepatronen jaren later zou vormgeven.&lt;/p>
&lt;h3 id="januari-2022-ontwikkelaarsontdekking">Januari 2022: Ontwikkelaarsontdekking&lt;/h3>
&lt;p>Januari 2022 opende met Nostr nog steeds gonzend van zijn &lt;a href="https://news.ycombinator.com/item?id=29749061">eerste Hacker News-verschijning&lt;/a> (31 december 2021), die 110 punten en 138 reacties genereerde. Op het moment van die post draaiden slechts ongeveer zeven relays het hele netwerk, waarbij commentatoren opmerkten dat &amp;ldquo;spam nog geen probleem is omdat nostr super nieuw is en niemand het nog gebruikt.&amp;rdquo; Robert C. Martin (&amp;ldquo;Uncle Bob&amp;rdquo;) had Nostr onderschreven als mogelijk &amp;ldquo;de eindoplossing voor sociale communicatie.&amp;rdquo; De discussie ging door tot in januari, met ontwikkelaars die debatteerden over relay-architectuur versus echte P2P, censuurbestendigheid versus moderatie, en of eenvoud kon schalen.&lt;/p>
&lt;p>De HN-post veroorzaakte een golf van nieuwe implementaties. Uncle Bob zelf startte &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, een Clojure desktopclient, op 18 januari. fiatjaf&amp;rsquo;s &lt;a href="https://github.com/nbd-wtf/go-nostr">go-nostr&lt;/a> library (aangemaakt januari 2021) en &lt;a href="https://github.com/fiatjaf/noscl">noscl&lt;/a> command-line client boden Go-tooling, terwijl &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> JavaScript-ondersteuning bood. Tegen december 2022 hadden ongeveer 800 profielen bio&amp;rsquo;s. Branle bleef de primaire webclient en ontving updates waaronder private key import en multi-relay ondersteuning. Technische uitdagingen waren evident: 64-karakter hex sleutels bleken onintuïtief, berichtvertragingen frustreerden gebruikers, en de community vroeg zich af of de architectuur Twitter-schaal verkeer aankon.&lt;/p>
&lt;h3 id="januari-2023-de-doorbraak">Januari 2023: De Doorbraak&lt;/h3>
&lt;p>Januari 2023 transformeerde Nostr van experiment naar beweging. Damus, de iOS-client van William Casarin (jb55), vocht met Apple&amp;rsquo;s App Store-goedkeuringsproces. Afgewezen op 1 januari, opnieuw afgewezen op 26 januari, werd het uiteindelijk &lt;a href="https://www.coindesk.com/tech/2023/02/01/decentralized-social-media-project-nostrs-damus-gets-listed-on-apple-app-store">goedgekeurd op 31 januari&lt;/a>. Die goedkeuring ontketende een cascade: Damus bereikte onmiddellijk #10 in U.S. Social Networking. Jack Dorsey &lt;a href="https://web.archive.org/web/20240304043638/https://www.theblock.co/post/207448/nostr-based-decentralized-twitter-alternative-damus-goes-live-on-apple-app-store">noemde het&lt;/a> &amp;ldquo;een mijlpaal voor open protocollen.&amp;rdquo;&lt;/p>
&lt;p>Acht dagen eerder, op 23 januari, &lt;a href="https://x.com/Snowden/status/1617623779626352640">kondigde Edward Snowden&lt;/a> zijn aanwezigheid op Nostr aan: &amp;ldquo;Een van de coole dingen aan Nostr&amp;hellip; naast censuurbestendigheid, is dat je niet beperkt bent tot 280 tekens.&amp;rdquo; Zijn steunbetuiging als NSA-klokkenluider had gewicht in privacybewuste kringen, en gebruikers begonnen hem onmiddellijk sats te zappen via Lightning.&lt;/p>
&lt;p>Webclients raceten om de instroom te onboarden. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a>, gecreëerd door kieran in december 2022, verscheen als een feature-rijke React-client; op 13 januari integreerde Snort NIP-05-registratie via de Nostr Plebs API, waarmee nieuwe gebruikers leesbare identiteiten konden claimen tijdens onboarding. &lt;a href="https://iris.to">Iris&lt;/a>, fulltime ontwikkeld door Martti Malmi (een vroege Bitcoin-bijdrager die de tweede Bitcoin-transactie ooit ontving van Satoshi), bood zowel web- als mobiele interfaces met gratis NIP-05 identiteiten op iris.to. &lt;a href="https://github.com/monlovesmango/astral">Astral&lt;/a>, gebouwd door monlovesmango met Quasar (Vue.js) als Branle-fork, richtte zich op relaybeheer met zijn relay-groeperingsfunctie waarmee gebruikers relays konden organiseren in sets voor posten en filteren. TestFlight beta&amp;rsquo;s voor iOS-clients vulden zich binnen uren, en Amethyst domineerde Android.&lt;/p>
&lt;p>Infrastructuur worstelde om bij te blijven. Alle relays werden beheerd door enthousiastelingen die uit eigen zak betaalden. Betaalde relays met Lightning-microbetalingen creëerden natuurlijke spamfiltering maar introduceerden toegangsfrictie. &lt;a href="https://techcrunch.com/2023/02/02/damus-pulled-from-apples-app-store-in-china-after-two-days/">Damus werd uit China&amp;rsquo;s App Store verwijderd&lt;/a> slechts twee dagen na goedkeuring, naar verluidt op verzoek van China&amp;rsquo;s hoogste internetwaakhond.&lt;/p>
&lt;h3 id="januari-2024-protocolversterking">Januari 2024: Protocolversterking&lt;/h3>
&lt;p>Januari 2024 richtte zich op protocolstandaardisatie en communitybuilding. &lt;a href="https://www.nostrphx.com/events">Nostr PHX&lt;/a> trapte het jaar af met een meetup op 5 januari in Phoenix, die lokale cypherpunks samenbracht. Dit was de eerste van vele community-events dat jaar, waaronder BTC Prague (juni), Nostriga in Riga (augustus) en Nostrasia.&lt;/p>
&lt;p>De belangrijkste protocolontwikkeling was &lt;a href="https://github.com/nostr-protocol/nips/pull/716">NIP-59 (Gift Wrap)&lt;/a> die werd gemerged op 29 januari, wat metadatabescherming bood voor versleutelde communicatie. Gift Wrap bouwt voort op &lt;a href="https://github.com/paulmillr/nip44">NIP-44&amp;rsquo;s encryptiestandaard&lt;/a> (die was &lt;a href="https://cure53.de/audit-report_nip44-implementations.pdf">geaudit door Cure53&lt;/a> in december 2023) om afzenderidentiteit te verbergen voor relays. Het protocol verpakt versleutelde berichten in een buitenste event ondertekend door een willekeurig, eenmalig sleutelpaar. Relays zien alleen de wegwerp-pubkey, terwijl de echte identiteit van de afzender begraven ligt in de versleutelde payload die alleen de ontvanger kan ontcijferen. Dit voorkomt dat relay-operators en netwerkwaarnemers leren wie met wie berichten uitwisselt. Tijdstempels kunnen ook worden gerandomiseerd om timinganalyse te verslaan.&lt;/p>
&lt;p>Het ecosysteem breidde uit voorbij sociale media. &lt;a href="https://plebeian.market">Plebeian Market&lt;/a> werd volledig Nostr-native met &lt;a href="https://nostrcompass.org/nl/topics/nip-15/">NIP-15&lt;/a>-compliance, wat cross-stall winkelwagens en een stallenbrowser mogelijk maakte voor het ontdekken van handelaren. &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> verscheen als een toestemmingsloze marktplaats die Bitcoin-handel faciliteerde. &lt;a href="https://zap.stream/">Zap.stream&lt;/a>, gebouwd door kieran, bracht livestreaming naar Nostr met Lightning-betalingen tegen 21 sats/minuut. Ontwikkelaarstools werden volwassener met &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> die TypeScript-abstracties bood en &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> die Rust-bindings bood. &lt;a href="https://blog.zeusln.com/new-release-zeus-v0-8-1/">Zeus v0.8.1&lt;/a> leverde Nostr-contactimport en persistente LND, wat de basis legde voor Nostr Wallet Connect-integratie in latere releases.&lt;/p>
&lt;p>Toch &lt;a href="https://arxiv.org/abs/2402.05709">bleef infrastructuurduurzaamheid uitdagend&lt;/a>. Academisch onderzoek uit deze periode vond dat 95% van de relays moeite had om operationele kosten te dekken, met 20% die significante downtime ervoer. De toegangsprijs voor betaalde relays bedroeg gemiddeld minder dan 1.000 sats (~$0,45), onvoldoende om operaties te ondersteunen.&lt;/p>
&lt;p>&lt;em>Een opmerking over scams: Het &amp;ldquo;Nostr Assets Protocol&amp;rdquo; en bijbehorende &amp;ldquo;$NOSTR&amp;rdquo; token dat rond deze tijd lanceerde &lt;a href="https://www.aicoin.com/en/article/377704">werd publiekelijk veroordeeld door fiatjaf&lt;/a> als &amp;ldquo;100% frauduleus&amp;rdquo; en &amp;ldquo;een affiniteitszwendel&amp;rdquo; zonder connectie met het daadwerkelijke Nostr-protocol.&lt;/em>&lt;/p>
&lt;h3 id="januari-2025-clientmaturatie">Januari 2025: Clientmaturatie&lt;/h3>
&lt;p>Januari 2025 zag voortgezette clientontwikkeling over het ecosysteem. &lt;a href="https://www.nobsbitcoin.com/nostur-v1-17-0/">Nostur 1.17.0&lt;/a> leverde op 13 januari met cross-device sync voor leesstatussen, &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a> multi-sig login-ondersteuning, en geoptimaliseerde lokale databaseprestaties. Amethyst zette zijn transitie naar het outbox-model voort, automatisch relay-sets compileren gebaseerd op volglijsten in plaats van handmatige configuratie te vereisen.&lt;/p>
&lt;p>Grote clients begonnen weg te bewegen van &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> voor directe berichten, migrerend naar &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> en het voorgestelde &lt;a href="https://nostrcompass.org/nl/topics/nip-104/">NIP-104&lt;/a> voor verbeterde encryptie en metadatabescherming. Het Gossip-model (outbox/inbox-communicatie) won adoptie terwijl het ecosysteem convergeerde naar efficiëntere relay-gebruikspatronen. Industriewaarnemers voorspelden dat dit het jaar zou zijn dat Nostr zou overgaan van nicheprotocol naar mainstream erkenning, met een mogelijke high-profile platformmigratie die dagelijkse activiteit zou kunnen verdubbelen.&lt;/p>
&lt;h3 id="januari-2026-beveiliging-en-ondertekeningsinfrastructuur">Januari 2026: Beveiliging en Ondertekeningsinfrastructuur&lt;/h3>
&lt;p>Januari 2026 bracht significante vooruitgang in beveiliging en ondertekeningsinfrastructuur. &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">Primal Android 2.6.18&lt;/a> leverde &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> lokale ondertekenaarondersteuning, en voegde zich bij Amber en Aegis als volledige signing hub voor andere Android-apps. &lt;a href="https://github.com/permissionlesstech/bitchat/pulls">Bitchat voltooide een Cure53-beveiligingsaudit&lt;/a>, hetzelfde bedrijf dat Signal en NIP-44 auditeerde, met 17+ PR&amp;rsquo;s die kritieke bevindingen fixten waaronder DH secret clearing en thread-veiligheidsproblemen. Zowel Bitchat als Damus migreerden van C Tor naar Rust Arti voor verbeterde betrouwbaarheid en geheugenveiligheid.&lt;/p>
&lt;p>Protocolwerk ging door met &lt;a href="https://github.com/nostr-protocol/nips/pull/1669">NIP-71&lt;/a> (adresseerbare video-events) die mergede en een post-quantum cryptografie NIP die discussie opende over het toekomstbestendig maken van Nostr tegen kwantumaanvallen. Het Trusted Relay Assertions-concept stelde voor om relay-vertrouwensscoring te standaardiseren via ondertekende attestaties. Het &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Protocol&lt;/a> verhardde zijn &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-gebaseerde versleutelde berichten met 18 gemerged PR&amp;rsquo;s die auditbevindingen aanpakten.&lt;/p>
&lt;p>Real-world applicaties breidden uit met &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> die gedecentraliseerd ridesharing ontwikkelde met &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> escrow en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>-encryptie, en &lt;a href="https://github.com/coracle-social/pomade">Pomade&lt;/a> die e-mailgebaseerde herstelflows toevoegde aan &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a> threshold signing. Damus leverde &lt;a href="https://nostrcompass.org/nl/topics/negentropy/">negentropy&lt;/a> voor betrouwbare DM-synchronisatie, terwijl Amethyst&amp;rsquo;s desktopapp Fase 2A bereikte met zoeken, bladwijzers en zaps.&lt;/p>
&lt;h3 id="vooruitkijken">Vooruitkijken&lt;/h3>
&lt;p>Zes jaar van Januaries onthullen Nostr&amp;rsquo;s evolutie van vroege ontwikkeling (2021) naar publieke ontdekking (2022) naar explosieve groei (2023) naar protocolversterking (2024) naar clientmaturatie (2025) naar beveiligingsinfrastructuur (2026). Het patroon is bekend voor iedereen die open protocollen heeft zien groeien: jaren van stil bouwen, een plotselinge explosie wanneer de omstandigheden samenkomen, dan het langere werk om alles betrouwbaar te maken. Wat begon met zeven relays en een Hacker News-thread is nu geauditte infrastructuur met echte applicaties. De vraag voor 2027: wanneer iemand een rit aanvraagt, een versleuteld bericht verstuurt, of een verloren sleutel herstelt met Nostr, zullen ze dan zelfs weten dat ze het gebruiken?&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Iets aan het bouwen? Nieuws te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #6</title><link>https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-01-21-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Bitchat vervangt C Tor door de Rust Arti-implementatie voor betere betrouwbaarheid en prestaties. nostrdb-rs krijgt streaming fold queries die zero-allocation databasebewerkingen mogelijk maken. Listr ondergaat een grote refactoring met NDK 3 beta migratie en AI-ondersteund onderhoud na een jaar stilstand. Zeus verzond 17 samengevoegde PRs gericht op &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect voor afstandsbediening van Lightning) fixes en Cashu-verbeteringen, terwijl Primal Android wallet backup flows en &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> (mediadimensies voor correcte beeldverhoudingen) ondersteuning toevoegt. Een nieuw concept NIP stelt &lt;a href="https://nostrcompass.org/nl/topics/trusted-relay-assertions/">Trusted Relay Assertions&lt;/a> voor voor gestandaardiseerde relay trust scoring.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Bitchat vervangt C Tor door de Rust Arti-implementatie voor betere betrouwbaarheid en prestaties. nostrdb-rs krijgt streaming fold queries die zero-allocation databasebewerkingen mogelijk maken. Listr ondergaat een grote refactoring met NDK 3 beta migratie en AI-ondersteund onderhoud na een jaar stilstand. Zeus verzond 17 samengevoegde PRs gericht op &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect voor afstandsbediening van Lightning) fixes en Cashu-verbeteringen, terwijl Primal Android wallet backup flows en &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> (mediadimensies voor correcte beeldverhoudingen) ondersteuning toevoegt. Een nieuw concept NIP stelt &lt;a href="https://nostrcompass.org/nl/topics/trusted-relay-assertions/">Trusted Relay Assertions&lt;/a> voor voor gestandaardiseerde relay trust scoring.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="bitchat-gaat-over-naar-rust-arti-voor-tor-ondersteuning">Bitchat gaat over naar Rust Arti voor Tor-ondersteuning&lt;/h3>
&lt;p>Bitchat is gemigreerd van C Tor naar &lt;a href="https://gitlab.torproject.org/tpo/core/arti">Arti&lt;/a>, de Rust-implementatie van het Tor protocol. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/958">PR #958&lt;/a> verwijdert de C Tor-afhankelijkheid en integreert Arti, wat geheugenveiliigheidsgaranties en verbeterde betrouwbaarheid biedt. De wijziging elimineert dormante wake-pogingen die serviceherstart op de voorgrond veroorzaakten, een langlopend probleem met de C-implementatie.&lt;/p>
&lt;p>&lt;strong>Wat dit voor gebruikers betekent:&lt;/strong> Stabieler versleuteld berichten met minder verbreken, vooral op mobiele apparaten. De Rust-implementatie vermindert crashrisico&amp;rsquo;s en batterijdrain door constante heraansluitingspogingen.&lt;/p>
&lt;p>Arti is een volledig herschrijven van Tor in Rust, ontwikkeld door het Tor Project om betere beveiliging door geheugenveiliigheid en gemakkelijkere integratie in applicaties te bieden. Voor Bitchat verminderen de geheugenveiliigheidseigenschappen de aanvalsoppervlakte bij het verwerken van versleutelde berichten en relay-verbindingen. De migratie volgt de recente &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-13-newsletter/#bitchat-completes-cure53-security-audit">Cure53 security audit&lt;/a> van het team (behandeld in Newsletter #5), waarmee hun beveiligingsverbeteringen worden voortgezet.&lt;/p>
&lt;p>De PR introduceert ook uitgebreide testdekking voor ChatViewModel en BLEService, verwijdert dode code en stabiliseert de testsuite. Bluetooth Low Energy mesh betrouwbaarheidsverbeteringen gaan gepaard met de Tor-wijzigingen, waardoor grote overdrachtfouten worden aangepakt. Samen verbeteren deze wijzigingen Bitchat&amp;rsquo;s veerkracht voor offline mesh-netwerk-scenario&amp;rsquo;s waarin Tor internetconnectiviteit naast lokale BLE-communicatie biedt.&lt;/p>
&lt;h3 id="listr-herleefd-met-ai-ondersteund-onderhoud">Listr herleefd met AI-ondersteund onderhoud&lt;/h3>
&lt;p>JeffG kondigde een grote refactoring van &lt;a href="https://github.com/erskingardner/listr">Listr&lt;/a>, de Nostr lijstbeheertoepassing beschikbaar op &lt;a href="https://listr.lol">listr.lol&lt;/a>, aan na een jaar stilstand van het project. Met AI-ondersteuning voltooide hij een uitgebreide upgrade inclusief migratie naar &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> 3 beta, updates naar de nieuwste versies van Svelte en Vite, en alle afhankelijkheden up-to-date gebracht. De refactoring voegt eersteklas ondersteuning voor follow packs toe, implementeert paginering voor lijsten met meer dan 50 items, en verhelpt talrijke bugs die zich hadden opgehoopt tijdens de stilstandsperiode.&lt;/p>
&lt;p>&lt;strong>Wat dit voor gebruikers betekent:&lt;/strong> Listr is terug online met verbeterde prestaties en nieuwe functies voor het beheren van volglijsten, inhoudsollecties en onderwerpscuratie. De paginafiksering maakt grote lijsten eigenlijk bruikbaar.&lt;/p>
&lt;p>JeffG merkte op dat zonder AI-ondersteuning dit onderhoudswerk waarschijnlijk nooit zou zijn gebeurd, waardoor het project was verlaten. Listr maakt inhoudscuratie op Nostr mogelijk, waardoor gebruikers lijsten van profielen, onderwerpen en bronnen kunnen maken, beheren en delen. De upgrade houdt de applicatie compatibel met huidige Nostr-standaarden en client-verwachtingen als lijstbeheer centraler wordt voor content discovery op het protocol.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Samengevoegd:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a>&lt;/strong> (Relay-based groups) - Relay Key Clarification (&lt;a href="https://github.com/nostr-protocol/nips/pull/2190">#2190&lt;/a> - samengevoegd) verduidelijkt dat de relay-sleutel de relay URL zelf is, niet een pubkey. De spec stelt nu expliciet: &amp;ldquo;De relay-sleutel is de relay&amp;rsquo;s WebSocket URL (bijv. wss://groups.example.com)&amp;rdquo; om verwarring te voorkomen. Dit beïnvloedt hoe clients bepalen welke relay een bepaalde groep host, zodat groepen correct worden toegeschreven aan hun hosting-relays.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PRs en Discussies:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Trusted Relay Assertions&lt;/strong> - Een concept NIP stelt het standaardiseren van relay trust scoring voor via kind 30385 events met trust scores (0-100) berekend uit &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> (relay discovery en monitoring) metriek, operator reputatie en gebruiksrapportages. De specificatie verdeelt trust in betrouwbaarheid (uptime, latentie), kwaliteit (TLS, documentatie, operator verificatie) en toegankelijkheid (jurisdictie, barrières, surveillancerisico) componenten. Operator verificatie omvat cryptografische handtekeningen via &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> (relay informatiedocumenten), DNS TXT records en .well-known bestanden. Gebruikers declareren vertrouwde assertion providers via kind 10385 events, waardoor clients meerdere providers kunnen raadplegen voor diverse perspectieven. Het voorstel complementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> discovery met evaluatie, waardoor &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> (afstandsbediening/Nostr Connect) relay betrouwbaarheid in verbindings-URI&amp;rsquo;s kan beoordelen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Post-Quantum Cryptography&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2185">PR #2185&lt;/a> (open) evolueert voort sinds &lt;a href="https://nostrcompass.org/nl/newsletters/2026-01-13-newsletter/#nip-updates">Newsletter #5&lt;/a> het voorstel voor quantum-resistente algoritmen introduceerde. De discussie deze week concentreerde zich op implementatiedetails voor crypto-agility: hoe clients dual signatures afhandelen tijdens migratie, achterwaartse compatibiliteit voor oudere clients en prestatieimplicaties van grotere quantum-resistente handtekeningen. Bijdragers debatteerden of men ML-DSA-44 alleen zou mandateren of meerdere algoritmen (ML-DSA-44, Falcon-512, Dilithium) zou ondersteunen voor flexibiliteit. De consensus neigt naar een gefaseerde benadering: optionele quantum signatures aanvankelijk, alleen verplicht nadat brede client-ondersteuning en echte quantum-dreiging ontstaan.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-11-en-nip-66">NIP Deep Dive: NIP-11 en NIP-66&lt;/h2>
&lt;p>Deze week onderzoeken we twee NIPs die samenwerken om relay discovery en evaluatie mogelijk te maken: NIP-11 bepaalt hoe relays zichzelf beschrijven, en NIP-66 standardiseert hoe we relay-gedrag meten. Samen vormen ze de basis voor relay trust evaluatiesystemen.&lt;/p>
&lt;h3 id="nip-11nltopicsnip-11-relay-informatiedocument">&lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a>: Relay Informatiedocument&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/11.md">NIP-11&lt;/a> bepaalt een JSON-document dat relays via HTTP serveren om hun mogelijkheden, beleid en operatorinformatie te beschrijven. Wanneer een client verbinding maakt met &lt;code>wss://relay.example.com&lt;/code>, kan het &lt;code>https://relay.example.com&lt;/code> opvragen (vervangend &lt;code>wss://&lt;/code> door &lt;code>https://&lt;/code>) om het informatiedocument van de relay op te halen.&lt;/p>
&lt;p>Het document gebruikt standaard HTTP content negotiation met de &lt;code>Accept: application/nostr+json&lt;/code> header. Dit stelt relays in staat om hun normale website aan browsers te serveren terwijl machine-readable metadata aan Nostr clients wordt geboden. Het antwoord omvat relay software naam en versie, operator contactinformatie (pubkey, e-mail, alternatief contact), ondersteunde NIPs en operationele parameters zoals betalingsvereisten of inhoudsbeperkingen.&lt;/p>
&lt;p>Belangrijk is dat basisniveau NIP-11-documenten ongesigneerde JSON zijn die via HTTPS worden geserveerd, vertrouwend op TLS-certificaten voor authenticiteit. Dit betekent dat iedereen die de web-server van de relay controleert het document kan wijzigen, waardoor operator claims niet verifieerbaar zijn. Het Trusted Relay Assertions voorstel verhelpt deze hiaat door ondertekende verklaringen via een relay&amp;rsquo;s &lt;code>self&lt;/code> pubkey veld in te voeren, waardoor cryptografisch bewijs van operator-identiteit mogelijk wordt, vergelijkbaar met hoe relays ondertekende events voor verificatiemechanismen gebruiken.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;name&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;relay.example.com&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;description&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;A general-purpose public relay&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;contact&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;admin@example.com&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;supported_nips&amp;#34;&lt;/span>: [&lt;span style="color:#ae81ff">1&lt;/span>, &lt;span style="color:#ae81ff">2&lt;/span>, &lt;span style="color:#ae81ff">4&lt;/span>, &lt;span style="color:#ae81ff">9&lt;/span>, &lt;span style="color:#ae81ff">11&lt;/span>, &lt;span style="color:#ae81ff">12&lt;/span>, &lt;span style="color:#ae81ff">16&lt;/span>, &lt;span style="color:#ae81ff">20&lt;/span>, &lt;span style="color:#ae81ff">22&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;software&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;git+https://github.com/relay/relay.git&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;version&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;1.2.3&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;limitation&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_message_length&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">16384&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_subscriptions&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">20&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_filters&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">100&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_limit&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">5000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_subid_length&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">100&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;min_prefix&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">4&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_event_tags&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">2000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;max_content_length&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">8196&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;min_pow_difficulty&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">0&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;auth_required&amp;#34;&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;payment_required&amp;#34;&lt;/span>: &lt;span style="color:#66d9ef">false&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> },
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;payments_url&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;https://relay.example.com/payments&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;fees&amp;#34;&lt;/span>: {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;admission&amp;#34;&lt;/span>: [{&lt;span style="color:#f92672">&amp;#34;amount&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">5000&lt;/span>, &lt;span style="color:#f92672">&amp;#34;unit&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;msats&amp;#34;&lt;/span>}],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;subscription&amp;#34;&lt;/span>: [{&lt;span style="color:#f92672">&amp;#34;amount&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1000&lt;/span>, &lt;span style="color:#f92672">&amp;#34;unit&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;msats&amp;#34;&lt;/span>, &lt;span style="color:#f92672">&amp;#34;period&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">2592000&lt;/span>}],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;publication&amp;#34;&lt;/span>: []
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> }
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Het &lt;code>limitation&lt;/code> object vertelt clients welke beperkingen de relay handhaaft. &lt;code>max_message_length&lt;/code> beperkt de WebSocket framegrootte, &lt;code>max_subscriptions&lt;/code> limiteert gelijktijdige REQ subscripties per verbinding, &lt;code>max_filters&lt;/code> beperkt filters per REQ, en &lt;code>max_limit&lt;/code> beperkt hoeveel events een enkele filter kan aanvragen. Deze parameters helpen clients hun gedrag aan relay mogelijkheden aan te passen, waardoor disconnects door limiet overschrijding worden voorkomen.&lt;/p>
&lt;p>Betalingsinformatie verschijnt in &lt;code>fees&lt;/code> en &lt;code>payments_url&lt;/code>. Relays kunnen in rekening brengen voor toelating (eenmalige toegang), abonnement (terugkerende toegang) of publicatie (per-event fees). De &lt;code>payments_url&lt;/code> verwijst naar details over betalingsmethoden, meestal Lightning invoices of ecash mints. Betaalde relays gebruiken deze velden om prijzen in te stellen voordat clients proberen zich te authenticeren.&lt;/p>
&lt;p>De &lt;code>supported_nips&lt;/code> array stelt clients in staat relay mogelijkheden te ontdekken. Als een relay &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> vermeldt, weten clients dat ze volledige tekstzoekopdrachten kunnen versturen. Als &lt;a href="https://nostrcompass.org/nl/topics/nip-42/">NIP-42&lt;/a> verschijnt, moeten clients authenticatieuitdagingen verwachten. Deze declaratieve mogelijkheidsbewaarlegging maakt progressieve verbetering mogelijk: clients kunnen geavanceerde functies waar beschikbaar gebruiken terwijl netjes afglijdend op relays met beperkte ondersteuning.&lt;/p>
&lt;p>Operatorinformatie bouwt verantwoording op. Het &lt;code>pubkey&lt;/code> veld identificeert de relay operator op Nostr, waardoor directe communicatie via &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DMs of publieke vermelding mogelijk wordt. De &lt;code>contact&lt;/code> e-mail biedt een fallback buiten protocol. Samen helpen deze velden gebruikers operatoren te bereiken voor misbruikrapporten, toegangsaanvragen of technische problemen.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> documenten zijn zelf-gerapporteerd: relays beschrijven wat ze beweren te ondersteunen, niet noodzakelijk wat ze daadwerkelijk doen. Dit is waar NIP-66 belangrijk wordt.&lt;/p>
&lt;h3 id="nip-66nltopicsnip-66-relay-discovery-en-liveness-monitoring">&lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a>: Relay Discovery en Liveness Monitoring&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/66.md">NIP-66&lt;/a> standardiseert het publiceren van relay monitoring data naar Nostr. Monitor services testen relays continu op beschikbaarheid, latentie, protocol compliance en ondersteunde NIPs. Ze publiceren resultaten als kind 30166 events, waarmee real-time relay status onafhankelijk van relay zelf-rapportage wordt geboden.&lt;/p>
&lt;p>Monitors controleren relay beschikbaarheid door verbinding te maken en test subscripties te versturen. Latentie metingen volgen connection time, subscription response time en event propagation delay. Protocol compliance testing verifieert dat relay gedrag specificaties aansluit, implementatiebugs of opzettelijke afwijkingen vangend. NIP ondersteuningsverificatie gaat verder dan &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> claims door daadwerkelijk te testen of geadverteerde functies correct werken.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a34b5c7d89e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;4e2d0bc6f8e7c3a5b9f1d2e3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1736784000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30166&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rtt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;open&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;143&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1736784000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rtt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;read&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;89&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1736784000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rtt&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;write&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;92&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1736784000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;nips&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;2&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;4&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;9&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;11&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;12&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;geo&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;US&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;United States&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;New York&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;other&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;network&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;clearnet&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;other&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;payment_required&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;false&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;other&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;auth_required&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;false&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;{\&amp;#34;last_check\&amp;#34;: 1736784000, \&amp;#34;checks\&amp;#34;: 8760}&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;8b9c4d5e6a7f8b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>d&lt;/code> tag bevat de relay URL, waardoor dit een geparameteriseerde replaceable event is. Elke monitor publiceert één event per relay, bijgewerkt als metingen veranderen. Meerdere monitors kunnen dezelfde relay volgen, waardoor redundantie en cross-validatie worden geboden. Clients bevragen meerdere monitor pubkeys om diverse perspectieven op relay gezondheid te krijgen.&lt;/p>
&lt;p>Round-trip time (rtt) tags meten latentie voor verschillende bewerkingen. &lt;code>rtt open&lt;/code> volgt WebSocket connection establishment, &lt;code>rtt read&lt;/code> meet subscription response time en &lt;code>rtt write&lt;/code> test event publicatie snelheid. Alle waarden zijn in milliseconden. Clients gebruiken deze metriek om lage-latentie relays voor tijd-gevoelige bewerkingen te kiezen of trage relays te deprioritiseren.&lt;/p>
&lt;p>De &lt;code>nips&lt;/code> tag somt daadwerkelijk geverifieerde NIP ondersteuning op, niet slechts geclaimde ondersteuning. Monitors testen elke NIP door de functionaliteit uit te oefenen. Als een relay &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> zoeken in zijn &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> document claimt maar zoekquery&amp;rsquo;s mislukken, zullen monitors NIP-50 uit de geverifieerde lijst weglaten. Dit geeft waarheid over relay mogelijkheden.&lt;/p>
&lt;p>Geografische informatie helpt clients nabijgelegen relays te selecteren voor betere latentie en censuurbestendigheid. De &lt;code>geo&lt;/code> tag bevat landcode, landnaam en regio. De &lt;code>network&lt;/code> tag onderscheidt clearnet relays van Tor hidden services of I2P endpoints. Samen stellen deze tags geografische diversiteit in: clients kunnen verbinding maken met relays in meerdere jurisdicties om regionale censuur te weerstaan.&lt;/p>
&lt;p>Monitor data drijft relay selectors in clients, explorer websites en het Trusted Relay Assertions voorstel. Door zelf-gerapporteerde &lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a> documenten met gemeten &lt;a href="https://nostrcompass.org/nl/topics/nip-66/">NIP-66&lt;/a> data en berekende trust assertions te combineren, beweegt het ecosysteem naar geïnformeerde relay selectie in plaats van vertrouwen op hardcoded defaults of mondelinge aanbevelingen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="0xchat-v153---enhanced-messaging-features">0xchat v1.5.3 - Enhanced Messaging Features&lt;/h3>
&lt;p>&lt;a href="https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.3-release">0xchat v1.5.3&lt;/a> brengt significante verbeteringen aan de Telegram-stijl Nostr messaging client. De release behandelt &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> (Android signer applicatie) compliance problemen die correct event ondertekening door externe signers zoals Amber verhinderden. Volledige compliance betekent dat 0xchat nu ondertekeningsbewerkingen correct delegeert, waardoor veiligheid wordt verbeterd door private sleutels geïsoleerd te houden.&lt;/p>
&lt;p>De update integreert zowel FileDropServer als BlossomServer als standaard media-opslag opties, waardoor gebruikers redundantie voor bestandsuploads krijgen. &lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a> biedt content-addressed opslag waar bestanden worden verwezen door hun SHA-256 hashes, waardoor integriteit wordt gegarandeerd en deduplicatie over het netwerk mogelijk wordt. Automatisch concept opslaan voor Moments voorkomt gegevensverlies bij het opstellen van long-form inhoud, wat gebruikersbezwaren over verloren posts bij app switches of connectiviteitsonderbrekingen adresseert.&lt;/p>
&lt;p>Cashu wallet integratie krijgt poets met automatisch proof filtering dat uitgegeven tokens uit de wallet view verwijdert. Dit lost de verwarrende UX op waar gebruikers ongeldige bewijzen naast geldige ecash zagen, waardoor balansberekeningen onbetrouwbaar werden. Het filteren gebeurt client-side, waardoor privacy wordt behouden terwijl de betalingservaring voor peer-to-peer transacties in chats wordt verbeterd.&lt;/p>
&lt;h3 id="amber-v410-pre-releases---ui-overhaul">Amber v4.1.0 Pre-releases - UI Overhaul&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.0-pre1">Amber v4.1.0-pre1&lt;/a> tot &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.0-pre3">v4.1.0-pre3&lt;/a> introduceren een herontworpen interface voor de populaire Android event signer. Het login scherm toont nu duidelijk welke applicatie handtekeningspermissies aanvraagt, wat gebruikerverwarring over autorisatieflows adresseert. Het nieuwe events scherm biedt gedetailleerde inspectie van welke data applicaties willen ondertekenen, waardoor gebruikers geïnformeerde veiligheidsbeslissingen voordat operaties worden goedgekeurd kunnen nemen.&lt;/p>
&lt;p>Permissie beheer ontvangt aanzienlijke aandacht met een vernieuwd interface dat exact toont welke mogelijkheden elke verbonden applicatie is verleend. Gebruikers kunnen specifieke permissies intrekken zonder volledig te verbreken, wat fijnkorrelig controle over ondertekeningsdelegatie inschakelt. De gerefactoriseerde relay tellers met de bijgewerkte quartz library bieden real-time statistieken over event throughput en relay performance. &lt;a href="https://github.com/nostr-protocol/nips/blob/master/46.md">NIP-46&lt;/a> (Nostr Connect) bunker verbindingen oppervlak nu gedetailleerde foutberichten wanneer verbindingen mislukken, vervangend cryptische timeout fouten met handelbare diagnostiek.&lt;/p>
&lt;h2 id="opmerkelijk-code-en-documentatiewijzigingen">Opmerkelijk code en documentatiewijzigingen&lt;/h2>
&lt;p>&lt;em>Dit zijn samengevoegde pull requests en early-stage ontwikkelingen die de moeite waard zijn om te volgen. Sommige zijn experimentele functies die voor release kunnen evolueren.&lt;/em>&lt;/p>
&lt;h3 id="zeus-lightning-wallet-met-nostr-wallet-connect">Zeus (Lightning Wallet met Nostr Wallet Connect)&lt;/h3>
&lt;p>Zeus voegde deze week 17 pull requests samen, versterking van zijn positie als toonaangevende &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect implementatie. De belangrijkste fixes behandelen data consistency en protocol compliance problemen die interoperabiliteitsproblemen met Nostr clients veroorzaakten.&lt;/p>
&lt;p>&lt;strong>Transaction History Fix&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3542">PR #3542&lt;/a> verhelpt een kritieke bug waar NWC transactie lijsten incorrecte of dubbele invoeren toonden. Het probleem ontstond wanneer Zeus transactiegegevens cachede zonder event updates correct af te handelen, waardoor gebruikers fantoomtransacties of ontbrekende betalingen zagen. De fix implementeert correct event deduplicatie en cache invalidatie, waardoor transactiegeschiedenis nauwkeurig de Lightning node status weerspiegelt.&lt;/p>
&lt;p>&lt;strong>Protocol Compliance&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3548">PR #3548&lt;/a> adresseert onvolledige &lt;code>getInfo&lt;/code> reacties die compatibiliteit met clients verwachting volledige NIP-47 compliance verbraken. Sommige Nostr clients crashten wanneer ontvangende partiële reacties velden misten zoals &lt;code>block_height&lt;/code> of &lt;code>network&lt;/code>. De PR zorgt ervoor dat alle vereiste velden met zinvolle defaults terugkeren zelfs wanneer de onderliggende Lightning implementatie ze niet biedt, waardoor Zeus&amp;rsquo;s compatibiliteit over het ecosysteem wordt verbeterd.&lt;/p>
&lt;p>&lt;strong>Connection Resilience&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3543">PR #3543&lt;/a> implementeert timeout notificaties voor stalemate Nostr verbindingen. Eerder wachtten gebruikers onbepaald wanneer relay verbindingen stierf. Nu toont Zeus duidelijke timeout berichten na 30 seconden inactiviteit, waardoor gebruikers kunnen herproberen of relays kunnen wisselen. &lt;a href="https://github.com/ZeusLN/zeus/pull/3541">PR #3541&lt;/a> voegt backend validatie toe om NWC activatie op incompatibele Lightning implementaties te voorkomen, configuratiefouten vangend voordat ze runtime crashes veroorzaken.&lt;/p>
&lt;p>&lt;strong>Cashu Race Condition&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3531">PR #3531&lt;/a> verhelpt een concurrency bug in Cashu token beheer waar gelijktijdige mint operaties de token database konden corrupteren. De race condition ontstond wanneer meerdere threads token counts bijwerkten zonder correct locking, occasioneel resulterende in incorrecte balansen. De fix voegt mutex bescherming rond kritieke secties toe, waarmee atomaire updates naar token state worden gegarandeerd.&lt;/p>
&lt;h3 id="primal-android-client">Primal Android (Client)&lt;/h3>
&lt;p>Primal Android verzond 12 samengevoegde PRs met significante verbeteringen aan wallet veiligheid en mediaafhandeling. De wallet backup implementatie adresseert één van de meest aangevraagde functies, terwijl NIP-92 ondersteuning de visuele ervaring over de applicatie verbetert.&lt;/p>
&lt;p>&lt;strong>Wallet Backup System&lt;/strong> - Een vier-PR serie (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/844">#844&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/845">#845&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/846">#846&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/848">#848&lt;/a>) implementeert uitgebreide seed phrase backup functionaliteit. Gebruikers kunnen nu hun 12-woord mnemonic via een veilige flow exporteren die screenshots voorkomt, backup status in het wallet dashboard toont, en bestaande gebruikers door migratie begeleidt. De implementatie volgt BIP-39 standaarden en omvat validatie om gebruikers van fondsen verlies door incorrect phrase opname te voorkomen.&lt;/p>
&lt;p>&lt;strong>Media Dimensions (NIP-92)&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/718">PR #718&lt;/a> implementeert &lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a> ondersteuning voor correcte afbeelding en video beeldverhoudingen. Zonder dimensie metadata moeten clients afbeeldingen downloaden om hun grootte te bepalen, waardoor layout jumps ontstaan als inhoud laadt. NIP-92 voegt &lt;code>dim&lt;/code> tags toe (zoals &lt;code>[&amp;quot;dim&amp;quot;, &amp;quot;1920x1080&amp;quot;]&lt;/code>) naar bestandsmetadata events, waardoor Primal correcte ruimte kan reserveren voordat media wordt gedownload. Dit elimineert jarring reflows in afbeeldinggalerijen en verbetert waargenomen prestaties.&lt;/p>
&lt;p>&lt;strong>Remote Signer Reliability&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/841">PR #841&lt;/a> verhelpt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> verbindingsproblemen waar ontbrekende &lt;code>wss://&lt;/code> voorvoegsels stille fouten veroorzaakten. De PR valideert relay URIs tijdens bunker verbinding setup, automatisch het protocol voorvoegsel toevoegend wanneer gebruikers bare domeinen plakken. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/843">PR #843&lt;/a> adresseert een threading bug waar slechte netwerkcondities replies als root notes veroorzaakten, conversatie flow brekend. De fix zorgt ervoor dat parent event IDs door netwerkonderbrekingen heen persistent blijven.&lt;/p>
&lt;h3 id="marmot-protocol-white-noise-encrypted-group-chat-library">Marmot Protocol: White Noise (Encrypted Group Chat Library)&lt;/h3>
&lt;p>White Noise, de Rust library die &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> Protocol&amp;rsquo;s versleutelde groepsgesprekken aandrijft, voegde zes PRs samen die gebruikerservaring en veiligheid verbeteren. De wijzigingen brengen Marmot dichter naar feature pariteit met mainstream messaging applicaties terwijl de privacy-first architectuur behouden blíjft.&lt;/p>
&lt;p>&lt;strong>Read Receipts&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/433">PR #433&lt;/a> en &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/436">#436&lt;/a> implementeren message read tracking voor groepsgesprekken. Het systeem slaat read posities per gebruiker per groep binnen een enkel device op, waardoor unread count badges worden ingeschakeld. De implementatie gebruikt monotone timestamps om de laatste gelezen berichtpositie voor elk gesprek bij te volgen. Deze basisfeature maakt UI indicatoren die unread berichtaantallen per gesprek tonen mogelijk.&lt;/p>
&lt;p>&lt;strong>Conversation Pinning&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/442">PR #442&lt;/a> voegt persistent conversation pinning toe via een &lt;code>pin_order&lt;/code> veld in de &lt;code>accounts_groups&lt;/code> junction table die accounts met groepen verbindt. Vastgezette gesprekken behouden hun positie bovenaan chatlijsten ongeacht berichtactiviteit, wat gebruikersverwachtingen uit Signal en WhatsApp aansluit. De implementatie gebruikt integer ordering om onbeperkte pins met deterministische sortering toe te staan.&lt;/p>
&lt;p>&lt;strong>Deterministic Commit Resolution (MIP-03)&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/mdk/pull/152">PR #152&lt;/a> (open) implementeert Marmot Improvement Proposal 03, het kritieke probleem van commit race conditions in gedistribueerde groepsgesprekken oplossend. Wanneer meerdere leden groeps-state wijzigingen (leden toevoegen/verwijderen, permissies wijzigen) gelijktijdig indienen, konden clients op commit volgorde divergeren, de groep in incompatibele states fragmentering. MIP-03 introduceert epoch snapshots en deterministische winnerselectie: de commit met de vroegste &lt;code>created_at&lt;/code> timestamp wint, met lexicografische event ID als tiebreaker. Dit stelt alle clients in staat op dezelfde state te convergen door rollback en replay, groep coherentie zelfs tijdens netwerkpartities behoudend.&lt;/p>
&lt;p>&lt;strong>Security Hardening&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/443">PR #443&lt;/a> voorkomt onnodige copying van cryptografische secrets door verwijzingen in &lt;code>resolve_group_image_path&lt;/code> te gebruiken. Dit beperkt het raam voor geheugen-aanvallen waarbij secrets van bevrijde heap allocaties kunnen worden hersteld. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/438">PR #438&lt;/a> maakt SQLCipher database versleuteling via keyring parameters mogelijk, berichtgeschiedenis in rust beschermend. De keyring integratie maakt veilige sleutelopslag in platform keychains in plaats van configuratiebestanden mogelijk.&lt;/p>
&lt;h3 id="nostrdb-rs-database-library---open-pr">nostrdb-rs (Database Library) - Open PR&lt;/h3>
&lt;p>&lt;strong>Streaming Queries Implementation&lt;/strong> - &lt;a href="https://github.com/damus-io/nostrdb-rs/pull/58">PR #58&lt;/a> (open) stelt streaming fold queries voor om zero-allocation databasebewerkingen mogelijk te maken. De implementatie voegt &lt;code>fold&lt;/code>, &lt;code>try_fold&lt;/code>, &lt;code>count&lt;/code>, &lt;code>any&lt;/code>, &lt;code>all&lt;/code> en &lt;code>find_map&lt;/code> methoden toe die database resultaten één tegelijk zouden verwerken zonder gehele result sets in vectors te materializeren. Deze benadering zou geheugenverbruik verminderen en vroege beëindiging voor veelvoorkomende query patterns inschakelen.&lt;/p>
&lt;p>De technische implementatie stelt low-level query result callbacks (&lt;code>ndb_query_visit&lt;/code>) bloot als stateful Rust visitors die &lt;code>ControlFlow&lt;/code> varianten naar C visitor acties kaarten. Eenmaal samengevoegd zal toepassingscode lezen als iterator logica terwijl dicht bij de databaselaag wordt uitgevoerd. Bijvoorbeeld, het tellen van overeenkomende notes zou resultaten streamen in plaats van ze te verzamelen, en &lt;code>find_map&lt;/code> zou het eerste nuttige resultaat terugkeren zonder resterende rijen te verwerken.&lt;/p>
&lt;p>nostrdb drijft Damus en Notedeck aan, beide iOS/macOS en desktop clients respectievelijk. De streaming queries zouden efficiënte patronen zoals paginering, voorwaardelijk filteren en bestaan checks mogelijk maken. De PR wijzigt 3 bestanden met +756 toevoegingen en -32 deletions, een aanzienlijke refactoring van de query laag. Gebruikers van nostrdb-rs-gebaseerde applicaties zouden verminderd geheugengebruik zien bij het bladeren van grote timelines of zoeken door uitgebreide event databases.&lt;/p>
&lt;h3 id="nak-cli-tool">nak (CLI Tool)&lt;/h3>
&lt;p>nak, fiatjaf&amp;rsquo;s command-line Nostr tool, voegde zes PRs samen gericht op build system verbeteringen en nieuwe functionaliteit. &lt;a href="https://github.com/fiatjaf/nak/pull/91">PR #91&lt;/a> implementeert een Blossom mirror feature, waardoor nak als mirror voor Blossom media servers kan dienen. &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> is een content-addressed media storage protocol die naast Nostr events werkt.&lt;/p>
&lt;p>De resterende PRs behandelen build system compatibiliteit over Windows, macOS en Linux platforms, FUSE filesystem ondersteuning voor het mounten van Nostr events als lokale directories inschakeled.&lt;/p>
&lt;h3 id="damus-ios-client---open-prs">Damus (iOS Client) - Open PRs&lt;/h3>
&lt;p>Damus heeft 11 open PRs die significante architecturale verbeteringen verkennen. Terwijl deze nog niet zijn samengevoegd, signaleren zij belangrijke richtingen voor iOS Nostr client ontwikkeling, bijzonder rond privacy, synchronisatie efficiëntie en mobiele data optimalisatie.&lt;/p>
&lt;p>&lt;strong>Tor Integration&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3535">PR #3535&lt;/a> bedraait de Arti Tor client rechtstreeks in Damus, anonieme relay verbindingen zonder externe afhankelijkheden mogelijk makend. Anders dan Orbot of Tor Browser benaderingen, bedraait Arti naadloze integratie met iOS sandboxing en background executie limieten. De Rust implementatie brengt geheugenveiliigheid naar netwerkveranonimisering, aanvalsoppervlakte reducerend vergeleken met C Tor. Gebruikers konden Tor mode per-relay of globaal inschakelen, met de client circuit beheer transparant handafnd.&lt;/p>
&lt;p>&lt;strong>Negentropy Sync Protocol&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3536">PR #3536&lt;/a> implementeert Negentropy, een set reconciliation protocol die synchronisatie efficiëntie radicaal verbetert. In plaats van alle events sinds laatste verbinding te downloaden, wisselt Negentropy compacte fingerprints (Merkle trees) uit om exact welke events tussen client en relay verschillen te identificeren. Voor gebruikers die honderden pubkeys volgen, beperkt dit sync bandbreedte van megabytes tot kilobytes. De implementatie integreert met RelayPool en SubscriptionManager, efficïente sync over alle verbonden relays automatisch inschakeld.&lt;/p>
&lt;p>&lt;strong>Low Data Mode&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3549">PR #3549&lt;/a> voegt mobiel data besparingsfuncties toe die antwoorden op gebruikersfeedback over bandbreedte verbruik. De mode schakelt automatisch afbeeldingladen uit, video prefetching en beperkt subscription limieten. Gebruikers op gemeten verbindingen kunnen tekstinhoud bladeren zonder angst voor gegevenslimieten te overschrijden. De implementatie respecteert iOS low data mode instellingen en biedt granulaire controles voor verschillende media types.&lt;/p>
&lt;p>&lt;strong>Database Optimizations&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3548">PR #3548&lt;/a> herziet nostrdb snapshot opslag voor snellere queries en verminderd diskgebruik. De optimalisatie wijzigt hoe database snapshots naar schijf persistent, waardoor zowel read performance als write amplification worden verbeterd. Dit adresseert batterij drain klachten van gebruikers met grote event databases.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets? Nieuws om te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Bereik ons via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #5</title><link>https://nostrcompass.org/nl/newsletters/2026-01-13-newsletter/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-01-13-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Bitchat ondergaat een professionele beveiligingsaudit door Cure53, hetzelfde bedrijf dat Signal en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> heeft geauditeerd, met inmiddels 17+ PR&amp;rsquo;s gemerged die kritieke bevindingen oplossen. &lt;a href="https://nostrcompass.org/nl/topics/nip-71/">NIP-71&lt;/a> is gemerged en brengt adresseerbare video events naar het protocol. Een post-quantum cryptografie NIP opent discussie over het toekomstbestendig maken van Nostr tegen quantum-aanvallen. Amethyst v1.05.0 bevat bladwijzerlijsten, spraaknotities en een vroege desktoprelease, terwijl Nostur v1.25.3 &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&amp;rsquo;s verbetert met reacties en antwoorden. In bibliotheeknieuws breidt rust-nostr &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> ondersteuning uit naar SQLite en LMDB backends, en lost NDK een bug in subscription tracking op.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Bitchat ondergaat een professionele beveiligingsaudit door Cure53, hetzelfde bedrijf dat Signal en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> heeft geauditeerd, met inmiddels 17+ PR&amp;rsquo;s gemerged die kritieke bevindingen oplossen. &lt;a href="https://nostrcompass.org/nl/topics/nip-71/">NIP-71&lt;/a> is gemerged en brengt adresseerbare video events naar het protocol. Een post-quantum cryptografie NIP opent discussie over het toekomstbestendig maken van Nostr tegen quantum-aanvallen. Amethyst v1.05.0 bevat bladwijzerlijsten, spraaknotities en een vroege desktoprelease, terwijl Nostur v1.25.3 &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> DM&amp;rsquo;s verbetert met reacties en antwoorden. In bibliotheeknieuws breidt rust-nostr &lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> ondersteuning uit naar SQLite en LMDB backends, en lost NDK een bug in subscription tracking op.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;h3 id="bitchat-voltooit-cure53-beveiligingsaudit">Bitchat Voltooit Cure53 Beveiligingsaudit&lt;/h3>
&lt;p>Bitchat, de iOS versleutelde messenger die Nostr combineert met Cashu, heeft een professionele beveiligingsaudit ondergaan door Cure53, een van de meest gerespecteerde beveiligingsbedrijven in de industrie. Cure53 heeft eerder Signal, Mullvad VPN, en met name de &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> encryptiespecificatie geauditeerd die de basis vormt voor moderne Nostr privéberichten.&lt;/p>
&lt;p>De audit vond 12+ beveiligingsproblemen (BCH-01-002 tot en met BCH-01-013). Het Bitchat-team reageerde met 17+ pull requests. Belangrijke fixes zijn:&lt;/p>
&lt;p>&lt;strong>Noise Protocol DH Secret Clearing&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/928">PR #928&lt;/a> lost zes locaties op waar Diffie-Hellman gedeelde geheimen niet werden gewist na key agreement, waardoor forward secrecy garanties worden hersteld. Wanneer geheimen langer dan nodig in het geheugen blijven, kan een memory dump of cold boot aanval eerdere communicatie compromitteren.&lt;/p>
&lt;p>&lt;strong>Handtekeningverificatie&lt;/strong> - Meerdere PR&amp;rsquo;s versterken cryptografische verificatiepaden, zodat authenticiteitscontroles van berichten niet kunnen worden omzeild door misvormde invoer.&lt;/p>
&lt;p>&lt;strong>Thread Safety&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/929">PR #929&lt;/a> voegt barrieresynchronisatie toe aan leesbevestigingswachtrijen in NostrTransport, waardoor race conditions worden voorkomen die datacorruptie of crashes kunnen veroorzaken bij hoge berichtvolumes.&lt;/p>
&lt;p>&lt;strong>Memory Safety&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/920">PR #920&lt;/a> optimaliseert de berichtdeduplicator voor betere prestaties bij hoge berichtdoorvoer terwijl geheugenuitputting wordt vermeden.&lt;/p>
&lt;p>&lt;strong>Invoervalidatie&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/919">PR #919&lt;/a> versterkt hex-stringparsing om crashes door misvormde invoer te voorkomen, een veelvoorkomende aanvalsvector voor denial-of-service.&lt;/p>
&lt;p>Bitchat verwerkt Cashu ecash, waardoor professionele beveiligingsbeoordeling essentieel is. De audit volgt op de &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot&lt;/a> Protocol-audit van vorig jaar en de NIP-44-audit die de encryptielaag verifieerde.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-71/">NIP-71&lt;/a>&lt;/strong> - Adresseerbare Video Events (&lt;a href="https://github.com/nostr-protocol/nips/pull/1669">#1669&lt;/a>) introduceert kinds 34235 (horizontale video) en 34236 (verticale video) als adresseerbare events. Een vereiste &lt;code>d&lt;/code> tag biedt unieke identificatoren, zodat videometadata kan worden bijgewerkt zonder het hele event opnieuw te publiceren. Een optionele &lt;code>origin&lt;/code> tag houdt importbronnen bij. Al geïmplementeerd in Amethyst en nostrvine.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Post-Quantum Cryptografie&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2185">PR #2185&lt;/a> stelt voor om kwantumbestendige cryptografische algoritmen aan Nostr toe te voegen. De specificatie introduceert ML-DSA-44 en Falcon-512 voor digitale handtekeningen, gericht op &amp;ldquo;super-high value events&amp;rdquo; zoals applicaties en autoriteiten in plaats van individuele gebruikers. Hoewel de symmetrische encryptie van &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> (ChaCha20) kwantumbestendig is, gebruikt de key exchange secp256k1 ECDH wat kwetsbaar is voor Shor&amp;rsquo;s algoritme. Het voorstel bevat ML-KEM voor key agreement om deze kloof te dichten. Dit is een vroeg voorstel dat discussie opent over crypto-agiliteit voor de langetermijnbeveiliging van Nostr.&lt;/li>
&lt;li>&lt;strong>BOLT12 voor NIP-47&lt;/strong> - Na 137 reacties en uitgebreide discussie besloot de gemeenschap dat BOLT12 offers hun eigen specificatie verdienen in plaats van &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> uit te breiden. BOLT12 offers bieden aanzienlijke upgrades ten opzichte van BOLT11 invoices, waaronder herbruikbaarheid, betere privacy door blinded paths, en optionele betalersinformatie. De nieuwe NIP zal methodes definiëren zoals &lt;code>make_offer&lt;/code>, &lt;code>pay_offer&lt;/code>, en &lt;code>list_offers&lt;/code> voor Nostr Wallet Connect implementaties.&lt;/li>
&lt;li>&lt;strong>Audio Track NIP&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/1043">PR #1043&lt;/a> stelt kinds 32100 voor muzieknummers en 32101 voor podcast-afleveringen voor, waardoor audiocontent dezelfde eersteklas behandeling krijgt die NIP-71 biedt voor video. Momenteel gebruiken audioplatformen zoals Wavlake, Zapstr en Stemstr elk eigen event-formaten, wat het ecosysteem fragmenteert. Een gemeenschappelijke standaard zou interoperabiliteit mogelijk maken zodat gebruikers audio kunnen ontdekken en afspelen vanuit elke compatibele client.&lt;/li>
&lt;li>&lt;strong>NIP-A3 Universele Betalingsdoelen&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2119">PR #2119&lt;/a> stelt kind 10133 events voor die RFC-8905 &lt;code>payto:&lt;/code>-URI&amp;rsquo;s gebruiken om betalingsopties beschikbaar te stellen over meerdere netwerken. In plaats van aparte event kinds te maken voor Bitcoin, Lightning, Cashu, of traditionele betalingssystemen, laat deze abstractie clients gestandaardiseerde tags parsen en native betalingshandlers aanroepen. De aanpak is toekomstbestendig omdat nieuwe betaalmethoden alleen een &lt;code>payto:&lt;/code>-URI-schema nodig hebben.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-diepgaand-nip-51-en-nip-65">NIP Diepgaand: NIP-51 en NIP-65&lt;/h2>
&lt;p>Deze week behandelen we twee NIP&amp;rsquo;s die gebruikersvoorkeuren opslaan: NIP-51 voor het organiseren van content, en NIP-65 voor het organiseren van relay-verbindingen. Beide gebruiken vervangbare events, wat betekent dat elke nieuwe publicatie de vorige versie overschrijft.&lt;/p>
&lt;h3 id="nip-51nltopicsnip-51-lijsten">&lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a>: Lijsten&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/51.md">NIP-51&lt;/a> definieert meerdere lijsttypen voor het organiseren van verwijzingen naar events, gebruikers, hashtags en andere content. Amethyst v1.05.0 voegt bladwijzerondersteuning toe, waardoor dit een goed moment is om te begrijpen hoe lijsten werken.&lt;/p>
&lt;p>De spec definieert verschillende list kinds, elk met een ander doel. Kind 10000 is je dempenlijst voor het verbergen van gebruikers, threads of woorden. Kind 10001 pint events om uit te lichten op je profiel. Kind 30003 slaat bladwijzers op, wat Amethyst nu ondersteunt. Andere kinds behandelen follow sets (30000), gecureerde artikelcollecties (30004), hashtag-interesses (30015), en aangepaste emoji sets (30030).&lt;/p>
&lt;p>Lijsten verwijzen naar content via tags. Een bladwijzerlijst gebruikt &lt;code>e&lt;/code> tags voor specifieke events en &lt;code>a&lt;/code> tags voor adresseerbare content zoals artikelen:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;ae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1736784000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">30003&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;d&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;saved-articles&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;abc123def456...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;a&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30023:author-pubkey:article-id&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;encrypted-private-bookmarks&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;908a15e46fb4d8675bab026fc230a0e3542bfade63da02d542fb78b2a8513fcd0092619a2c8c1221e581946e0191f2af505dfdf8657a414dbca329186f009262&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>d&lt;/code> tag biedt een unieke identificator, zodat je meerdere bladwijzersets kunt onderhouden zoals &amp;ldquo;saved-articles&amp;rdquo;, &amp;ldquo;read-later&amp;rdquo; of &amp;ldquo;favorites&amp;rdquo; onder dezelfde kind.&lt;/p>
&lt;p>Lijsten ondersteunen zowel openbare als privé-items. Openbare items verschijnen in de tags-array, zichtbaar voor iedereen die het event ophaalt. Privé-items gaan in het &lt;code>content&lt;/code>-veld, versleuteld met &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> naar jezelf. Deze dubbele structuur laat je openbare bladwijzers bijhouden terwijl je privénotities toevoegt, of een dempenlijst onderhouden zonder te onthullen wie je hebt gedempt. Om naar jezelf te versleutelen, gebruik NIP-44 met je eigen pubkey als ontvanger.&lt;/p>
&lt;p>De 10000-serie kinds zijn vervangbaar, wat betekent dat relays slechts een event per pubkey bewaren. De 30000-serie zijn geparametriseerd vervangbaar, waardoor een event per pubkey en &lt;code>d&lt;/code>-tagcombinatie mogelijk is. In beide gevallen betekent het bijwerken van een lijst het publiceren van een complete vervanging; je kunt geen incrementele wijzigingen sturen. Clients moeten onbekende tags behouden bij het wijzigen van lijsten om te voorkomen dat data wordt overschreven die door andere applicaties is toegevoegd.&lt;/p>
&lt;h3 id="nip-65nltopicsnip-65-relay-lijst-metadata">&lt;a href="https://nostrcompass.org/nl/topics/nip-65/">NIP-65&lt;/a>: Relay Lijst Metadata&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">NIP-65&lt;/a> definieert kind 10002 events die adverteren welke relays een gebruiker prefereert voor lezen en schrijven. Dit helpt andere gebruikers en clients je content te vinden.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;bd2217a96b5835b59f9a6a42d8d8a36f8c9b7d4e5f0a1b2c3d4e5f6a7b8c9d0e1&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1736784000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">10002&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;r&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.damus.io&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;read&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;r&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://nos.lol&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;r&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.nostr.band&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;write&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f1c2d3e4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Elke &lt;code>r&lt;/code> tag bevat een relay URL en een optionele marker. Een &lt;code>write&lt;/code> marker wijst je outbox aan: relays waar je je content publiceert. Een &lt;code>read&lt;/code> marker wijst je inbox aan: relays waar je controleert op vermeldingen, antwoorden en tags. Het weglaten van de marker betekent beide.&lt;/p>
&lt;p>Wanneer Alice Bob&amp;rsquo;s berichten wil vinden, haalt haar client Bob&amp;rsquo;s kind 10002 op, extraheert zijn write relays (zijn outbox), en abonneert zich daar. Wanneer Alice op Bob reageert, publiceert haar client naar zijn read relays (zijn inbox) zodat hij de vermelding ziet. Deze relay-bewuste routering is het &amp;ldquo;outbox model,&amp;rdquo; en het verdeelt gebruikers over veel relays in plaats van iedereen te concentreren op een paar centrale servers.&lt;/p>
&lt;p>NIP-65 handelt routering van openbare content af, maar privéberichten gebruiken een aparte lijst. &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> definieert kind 10050 voor DM inbox relays, met &lt;code>relay&lt;/code> tags in plaats van &lt;code>r&lt;/code> tags. Bij het versturen van een privébericht aan iemand, zoeken clients naar het kind 10050 event van de ontvanger en publiceren het versleutelde gift-wrapped bericht daar. Deze scheiding houdt DM-routering gescheiden van openbare content routering, en laat gebruikers verschillende relays specificeren voor privé versus openbare communicatie.&lt;/p>
&lt;p>Het outbox-model verbetert censuurbestendigheid omdat geen enkele relay ieders content hoeft op te slaan of te serveren. Clients onderhouden verbindingen met relays die vermeld staan in de NIP-65-events van hun gevolgde gebruikers, en verbinden dynamisch met nieuwe relays naarmate ze nieuwe accounts ontdekken. NIP-65 complementeert de relay-hints in andere NIP&amp;rsquo;s. Wanneer je iemand tagt met &lt;code>[&amp;quot;p&amp;quot;, &amp;quot;pubkey&amp;quot;, &amp;quot;wss://hint.relay&amp;quot;]&lt;/code>, vertelt de hint clients waar ze moeten zoeken naar die specifieke verwijzing. NIP-65 biedt de gezaghebbende, door de gebruiker beheerde lijst, terwijl hints snelkoppelingen bieden ingebed in individuele events.&lt;/p>
&lt;p>Voor de beste resultaten, houd je relaylijst actueel aangezien verouderde vermeldingen je moeilijker vindbaar maken. De specificatie raadt twee tot vier relays per categorie aan. Te veel relays vermelden belast elke client die je content wil ophalen, vertraagt hun ervaring en verhoogt netwerkbelasting. Clients cachen NIP-65-events en vernieuwen ze periodiek om actueel te blijven wanneer gebruikers hun voorkeuren bijwerken.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Amethyst v1.05.0&lt;/strong> - De populaire Android-client &lt;a href="https://github.com/vitorpamplona/amethyst/releases">brengt een grote update uit&lt;/a> met verschillende hoofdfuncties. &lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a> kind 30003 bladwijzerlijsten laten gebruikers berichten opslaan voor latere referentie, synchroon over compatibele clients. Spraaknotities werken nu in DM&amp;rsquo;s en reguliere berichten met golfvormvisualisatie, mediaserverselectie en uploadvoortgangsindicatoren. &lt;a href="https://nostrcompass.org/nl/topics/web-of-trust/">Web of Trust&lt;/a>-scores zijn nu zichtbaar in de interface, waardoor gebruikers kunnen begrijpen hoe het algoritme accounts evalueert ten opzichte van hun sociale grafiek. De &lt;a href="https://nostrcompass.org/nl/topics/quartz/">Quartz&lt;/a>-databasemigratie verbetert queryprestaties als onderdeel van het OpenSats-gefinancierde Kotlin Multiplatform-werk. Een vroege desktoprelease brengt Amethyst naar Windows, macOS en Linux via Compose Multiplatform, met dezelfde codebase als de Android-app. Nieuwe gebruikers-onboardingflows versoepelen de ervaring voor eerste Nostr-gebruikers.&lt;/p>
&lt;p>&lt;strong>Nostur v1.25.3&lt;/strong> - De iOS- en macOS-client &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases">focust op privéberichten&lt;/a> met &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a>-verbeteringen. DM-gesprekken ondersteunen nu reacties en antwoorden, waardoor de interactiviteit van openbare berichten in versleutelde berichten komt. De gespreksweergave is herwerkt met betere threading zodat uitwisselingen van meerdere berichten makkelijker te volgen zijn, en tijdstempels tonen &amp;ldquo;tijd geleden&amp;rdquo; in de DM-lijst voor snel scannen. Desktopgebruikers krijgen multi-kolomlayouts voor het bekijken van meerdere feeds of gesprekken naast elkaar. &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signer-ondersteuning stelt gebruikers in staat hun private keys in speciale signer-apps te houden zoals Amber of nsec.app. Aanvullende fixes herstellen DM-functionaliteit op iOS 15 en iOS 16, lossen notificatievertragingen op, en voegen de mogelijkheid toe om te configureren welke relays gepubliceerde DM&amp;rsquo;s ontvangen.&lt;/p>
&lt;h2 id="opmerkelijke-code--en-documentatiewijzigingen">Opmerkelijke code- en documentatiewijzigingen&lt;/h2>
&lt;p>&lt;em>Dit zijn open pull requests en werk in een vroeg stadium, perfect om feedback te krijgen voordat ze worden gemerged. Als iets je aandacht trekt, overweeg dan te reviewen of commentaar te geven!&lt;/em>&lt;/p>
&lt;h3 id="citrine-android-relay">Citrine (Android Relay)&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Citrine/pull/89">PR #89&lt;/a> lost een SQL-injectiekwetsbaarheid op in de persoonlijke Android-relayapp. Het probleem stond toe dat misvormde eventdata willekeurige databasequeries kon uitvoeren, een ernstige fout voor elke app die onbetrouwbare invoer opslaat en verwerkt. De fix sanitiseert alle databaseoperaties correct met geparametriseerde queries. Er is nog geen release getagd, dus gebruikers moeten wachten op de volgende versie of bouwen vanaf broncode. &lt;a href="https://github.com/greenart7c3/Citrine/pull/90">PR #90&lt;/a> optimaliseert ContentProvider-queryprestaties met filtering en paginering op databaseniveau, wat latentie vermindert wanneer externe apps zoals Amethyst toegang krijgen tot Citrine&amp;rsquo;s eventdatabase via Android&amp;rsquo;s inter-process communicatielaag.&lt;/p>
&lt;h3 id="rust-nostr-library">rust-nostr (Library)&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-62/">NIP-62&lt;/a> (Vanish Requests)-ondersteuning breidt uit over rust-nostr&amp;rsquo;s database-backends. &lt;a href="https://github.com/rust-nostr/nostr/pull/1180">PR #1180&lt;/a>, twee weken geleden gemerged, voegde NIP-62-ondersteuning toe aan SQLite, en handelt &lt;code>ALL_RELAYS&lt;/code> vanish requests af aangezien de databaselaag geen specifieke relay-URL&amp;rsquo;s kent. &lt;a href="https://github.com/rust-nostr/nostr/pull/1210">PR #1210&lt;/a> breidt dit uit naar de LMDB-backend, wat ervoor zorgt dat vanish requests naar schijf worden opgeslagen en relay-herstarts overleven. Een IndexedDB-implementatie voor browseromgevingen is ook in ontwikkeling. Samen geven deze wijzigingen ontwikkelaars consistente NIP-62-ondersteuning over SQLite, LMDB, en binnenkort browseropslag.&lt;/p>
&lt;h3 id="ndk-nostr-development-kit">NDK (Nostr Development Kit)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-dev-kit/ndk/pull/375">PR #375&lt;/a> lost een bug op in het seenEvents-trackingsysteem. Het probleem zorgde ervoor dat bepaalde subscriptionpatronen events incorrect als al gezien markeerden, wat leidde tot gemiste content wanneer gebruikers nieuwe subscriptions openden of opnieuw verbonden met relays. De fix zorgt ervoor dat events nauwkeurig worden gevolgd over subscription-lifecycles, wat bijzonder belangrijk is voor applicaties die dynamisch subscriben en unsubscriben op basis van gebruikersnavigatie. NDK is opgehoogd naar beta.70 met deze fix inbegrepen.&lt;/p>
&lt;h3 id="damus-ios">Damus (iOS)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3515">PR #3515&lt;/a> lost een opstartcrash op die iOS 17-gebruikers treft. Het probleem kwam voort uit een rekenkundige overflow in &lt;code>NdbUseLock&lt;/code>, een fallbackklasse die wordt gebruikt omdat Swift Mutexes niet beschikbaar zijn op iOS 17. De fix vervangt de vorige synchronisatieaanpak met &lt;code>NSLock&lt;/code>, die wel beschikbaar is op iOS 17 en de resterende race conditions correct afhandelt. iOS 18+-gebruikers waren niet getroffen omdat zij toegang hebben tot de native Swift Mutex-implementatie.&lt;/p>
&lt;p>Afzonderlijk landde een batch longform-artikelverbeteringen via &lt;a href="https://github.com/damus-io/damus/pull/3509">PR #3509&lt;/a>. Leesvoortgangsbalken volgen je positie door artikelen, geschatte leestijden verschijnen op previews, en sepiamodus met instelbare regelhoogte-instellingen bieden comfortabeler lezen. Focusmodus verbergt automatisch de navigatiechrome bij naar beneden scrollen en herstelt het bij tikken, wat visuele rommel vermindert voor afleidingsvrij lezen. Verschillende fixes pakken beeldweergave in markdowncontent aan en zorgen ervoor dat artikelen bovenaan openen in plaats van halverwege.&lt;/p>
&lt;h3 id="zapstream-live-streaming">Zap.stream (Live Streaming)&lt;/h3>
&lt;p>YouTube- en Kick-chatintegratie verbindt berichten van externe streamingplatformen met Nostr. Streamers die naar YouTube, Kick en Zap.stream multicasten kunnen nu alle chatberichten in een uniforme weergave zien, met berichten van elk platform naast native Nostr-reacties. Dit verwijdert een groot wrijvingspunt voor creators die Nostr willen gebruiken voor streaming maar hun publiek op gevestigde platformen niet kunnen verlaten. De integratie toont van welk platform elk bericht afkomstig is en handelt de authenticatiestroom af voor het verbinden van externe accounts.&lt;/p>
&lt;h3 id="chachi-nip-29-groups">Chachi (NIP-29 Groups)&lt;/h3>
&lt;p>De &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> groepschatclient heeft deze week zes gemergede PR&amp;rsquo;s verscheept. Een beveiligingsupdate adresseert &lt;a href="https://github.com/purrgrammer/chachi/pull/89">CVE-2026-22029&lt;/a>, een XSS-kwetsbaarheid in react-router die open redirect-aanvallen mogelijk kon maken; de fix updatet naar react-router-dom 6.30.0. &lt;a href="https://github.com/purrgrammer/chachi/pull/92">PR #92&lt;/a> voegt gepagineerd berichten laden toe voor groepschats, zodat lange gesprekken incrementeel laden in plaats van allemaal tegelijk. &lt;a href="https://github.com/purrgrammer/chachi/pull/91">PR #91&lt;/a> lost verschillende NIP-29-bugs op waaronder een race condition die lege groepsnamen veroorzaakte bij initieel laden en undefined deelnemerslijsten die ledenweergaven lieten crashen. Vertalingsdekking beslaat nu alle 31 ondersteunde talen met elk 1060 keys.&lt;/p>
&lt;h3 id="0xchat-messaging">0xchat (Messaging)&lt;/h3>
&lt;p>De Telegram-stijl messagingclient verbeterde &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>-compliance door signer package names correct op te slaan bij gebruik van externe signing-apps, wat problemen oploste waarbij de app vergat welke signer te gebruiken na herstarts. NIP-17-antwoordafhandeling bevat nu correct de &lt;code>e&lt;/code>-tag voor threading, wat ervoor zorgt dat antwoorden in de juiste gesprekscontext verschijnen over clients heen. Prestatieoptimalisaties pakken scroll-lag aan in berichtlijsten, een veelvoorkomend pijnpunt bij het laden van lange chatgeschiedenissen. Concept-auto-save voorkomt berichtverlies als je wegnavigeert tijdens het opstellen, en bestandsopslagopties bevatten nu standaard FileDropServer- en BlossomServer-endpoints.&lt;/p>
&lt;h3 id="primal-ios">Primal (iOS)&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signer-ondersteuning landt op iOS via &lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/184">PR #184&lt;/a>, wat de cross-platform uitrol voltooit die enkele weken geleden begon met Android. Gebruikers kunnen nu hun private keys bewaren in speciale bunkerservices zoals nsec.app of zelf-gehoste nsecBunker-instances, verbindend over Nostr-relays om events te ondertekenen zonder keys bloot te stellen aan de client-app. Deze scheiding verbetert de beveiligingspositie voor gebruikers die Primal&amp;rsquo;s functies willen gebruiken terwijl ze strengere key management-praktijken handhaven. De implementatie bevat QR-codescannen voor bunkerverbindings-URI&amp;rsquo;s en handelt de NIP-46 request/response-flow af over versleutelde relayberichten.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Bouw je iets? Heb je nieuws te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #4</title><link>https://nostrcompass.org/nl/newsletters/2026-01-07-newsletter/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2026-01-07-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor het Nostr protocol-ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Primal Android levert &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> lokale signer-ondersteuning, waardoor het een volwaardige signing-hub wordt voor andere Android-apps. Het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot Protocol&lt;/a>-team heeft bevindingen uit een beveiligingsaudit aangepakt met 18 samengevoegde PR&amp;rsquo;s die &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-gebaseerde versleutelde berichten versterken. Citrine bereikt v1.0 en Applesauce levert v5.0 voor zijn hele bibliotheeksuite. TENEX bouwt AI-agentsupervisie op Nostr, en Jumble voegt slimme relay-pooling toe. Een NIP-55 specificatiefix verduidelijkt &lt;code>nip44_encrypt&lt;/code> retourvelden, en een &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> PR stelt query-expressie-uitbreidingen voor geavanceerd zoeken voor. In onze deep dive leggen we &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> uit: waarom de verouderde versleuteling beveiligingsfouten heeft en hoe de moderne vervanger deze oplost.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Compass, je wekelijkse gids voor het Nostr protocol-ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Primal Android levert &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> lokale signer-ondersteuning, waardoor het een volwaardige signing-hub wordt voor andere Android-apps. Het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot Protocol&lt;/a>-team heeft bevindingen uit een beveiligingsaudit aangepakt met 18 samengevoegde PR&amp;rsquo;s die &lt;a href="https://nostrcompass.org/nl/topics/mls/">MLS&lt;/a>-gebaseerde versleutelde berichten versterken. Citrine bereikt v1.0 en Applesauce levert v5.0 voor zijn hele bibliotheeksuite. TENEX bouwt AI-agentsupervisie op Nostr, en Jumble voegt slimme relay-pooling toe. Een NIP-55 specificatiefix verduidelijkt &lt;code>nip44_encrypt&lt;/code> retourvelden, en een &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> PR stelt query-expressie-uitbreidingen voor geavanceerd zoeken voor. In onze deep dive leggen we &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a> uit: waarom de verouderde versleuteling beveiligingsfouten heeft en hoe de moderne vervanger deze oplost.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;p>&lt;strong>Primal Android Wordt een Volwaardige Signing Hub&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">Versie 2.6.18&lt;/a> voegt zowel &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing als &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> lokale signing toe, waardoor Primal een complete signer wordt voor andere Nostr-apps. Remote signing via NIP-46 stelt gebruikers in staat om verbinding te maken met bunker-diensten via Nostr-relays, waarbij sleutels volledig van hun apparaat worden gehouden. Lokale signing via NIP-55 stelt Primal beschikbaar als een Android content provider, zodat apps zoals Amethyst of Citrine handtekeningen kunnen aanvragen zonder ooit de privésleutel aan te raken. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/839">Meerdere vervolgPR&amp;rsquo;s&lt;/a> losten compatibiliteitsproblemen op met de NIP-55-specificatie&amp;rsquo;s hex pubkey-vereiste, en verbeterden het parsen van misvormde &lt;code>nostrconnect://&lt;/code> URI&amp;rsquo;s. De release bevat ook media pre-caching voor soepeler scrollen, verbeterde thread-laadtijden en avatar pre-caching.&lt;/p>
&lt;p>&lt;strong>Marmot Protocol Versterkt Beveiliging Na Audit&lt;/strong> - De &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> (mdk), die &lt;a href="https://nostrcompass.org/nl/topics/nip-104/">NIP-104&lt;/a> MLS-gebaseerde end-to-end versleutelde berichten implementeert, ontving deze week uitgebreide beveiligingsfixes. Achttien samengevoegde pull requests pakten auditbevindingen aan, waaronder: &lt;a href="https://github.com/marmot-protocol/mdk/pull/97">hashverificatie voor versleutelde groepsafbeeldingen&lt;/a> om blob-vervangingsaanvallen op opslagniveau te voorkomen, &lt;a href="https://github.com/marmot-protocol/mdk/pull/110">paginering voor wachtende welcomes&lt;/a> om geheugenuitputting te voorkomen, &lt;a href="https://github.com/marmot-protocol/mdk/pull/112">MLS Group ID-lekkage in foutmeldingen&lt;/a>, en &lt;a href="https://github.com/marmot-protocol/mdk/pull/98">base64-coderingshandhaving&lt;/a> voor key packages. De &lt;a href="https://github.com/marmot-protocol/marmot/pull/20">Marmot-specificatie zelf werd bijgewerkt&lt;/a> met MIP-04 v2 versiebeheer en beveiligingsverbeteringen. Actieve PR&amp;rsquo;s blijven nonce-hergebruik, secret zeroization en cache pollution vectors aanpakken.&lt;/p>
&lt;p>&lt;strong>Nostrability Volgt Relay Hint Ondersteuning&lt;/strong> - Een nieuwe &lt;a href="https://github.com/nostrability/nostrability/issues/270">relay hints compatibiliteitstracker&lt;/a> documenteert hoe clients relay hints construeren en consumeren in het ecosysteem. De tracker onthult dat hoewel de meeste clients nu hints construeren volgens &lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a>, het consumeren sterk varieert: sommige clients nemen hints op in uitgaande events maar gebruiken inkomende hints niet voor het ophalen. Zes clients verdienden de &amp;ldquo;Volledig&amp;rdquo; tier-status voor complete implementatie. De tracker is nuttig voor ontwikkelaars die interoperabiliteit controleren en voor gebruikers die zich afvragen waarom sommige clients content vinden die anderen niet kunnen vinden.&lt;/p>
&lt;p>&lt;strong>Nostria 2.0 Levert Cross-Platform Feature Overhaul&lt;/strong> - De &lt;a href="https://nostria.app">Nostria&lt;/a> client &lt;a href="#ZgotmplZ">bracht versie 2.0 uit&lt;/a> op 30 december met significante toevoegingen op iOS (TestFlight), Android (Play Store), Web en Windows. De release voegt native muziekondersteuning toe met afspeellijst-creatie, track-uploads, zap-gebaseerde artiestenbetalingen en een WinAmp-stijl speler met werkende equalizer. Live streaming krijgt Game API-integratie die rijke metadata toont tijdens gameplay-streams. Een nieuwe Samenvatting-functie genereert uur-, dag- of weekoverzichten als gecomprimeerde tijdlijnweergaven. De Ontdek-sectie biedt samengestelde lijsten voor het vinden van content en profielen. Mediapublicatie wordt vereenvoudigd met automatische korte-vorm berichtgeneratie voor cross-client vindbaarheid. Remote signer-verbindingen werken nu via QR-code scannen zonder handmatige configuratie. Profielontdekking pakt een veelvoorkomend Nostr-probleem aan: wanneer gebruikers tussen relays verhuizen zonder hun metadata mee te nemen, lokaliseert Nostria hun profiel en herpubliceert het naar hun huidige relays. Premium-abonnees krijgen YouTube-kanaalintegratie, privé Memo&amp;rsquo;s, analytics-dashboards en automatische volglijst-backups met samenvoeg-/herstel-opties.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen aan de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Samengevoegd:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>&lt;/strong> - Het retourveld voor de &lt;code>nip44_encrypt&lt;/code> methode is gecorrigeerd (&lt;a href="https://github.com/nostr-protocol/nips/pull/2184">#2184&lt;/a>). Android signers moeten nu de versleutelde payload retourneren in het &lt;code>signature&lt;/code> veld (overeenkomend met &lt;code>nip44_decrypt&lt;/code>) in plaats van een apart veld. Dit brengt de spec in lijn met bestaande implementaties in Amber en Primal.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Open PR&amp;rsquo;s:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a>&lt;/strong> - Query Expression Extensions (&lt;a href="https://github.com/nostr-protocol/nips/pull/2182">#2182&lt;/a>) stelt voor om NIP-50 zoeken uit te breiden met gestructureerde query-expressies. De PR voegt operatoren toe zoals &lt;code>kind:1&lt;/code>, &lt;code>author:npub1...&lt;/code>, en booleaanse combinaties (&lt;code>AND&lt;/code>, &lt;code>OR&lt;/code>, &lt;code>NOT&lt;/code>), waardoor preciezere zoekopdrachten mogelijk worden naast eenvoudige tekstmatching. Dit zou clients in staat stellen geavanceerde zoekinterfaces te bouwen met behoud van achterwaartse compatibiliteit met basis zoekstrings.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-04-en-nip-44">NIP Deep Dive: NIP-04 en NIP-44&lt;/h2>
&lt;p>Deze week behandelen we Nostr&amp;rsquo;s versleutelingsstandaarden: de verouderde NIP-04 die je nog steeds zult tegenkomen, en zijn moderne vervanger NIP-44 die kritieke beveiligingsfouten oplost.&lt;/p>
&lt;h3 id="nip-04nltopicsnip-04-versleutelde-directe-berichten-verouderd">&lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a>: Versleutelde Directe Berichten (Verouderd)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/04.md">NIP-04&lt;/a> was Nostr&amp;rsquo;s eerste poging tot versleutelde berichten, gebruikmakend van kind 4 events. Hoewel eenvoudig te implementeren, heeft het bekende beveiligingszwakheden en is het afgeschreven ten gunste van NIP-44.&lt;/p>
&lt;p>&lt;strong>Hoe het werkt:&lt;/strong> NIP-04 gebruikt ECDH (Elliptic Curve Diffie-Hellman) om een gedeeld geheim af te leiden tussen verzender en ontvanger, en versleutelt vervolgens met AES-256-CBC.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;event-id&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;sender-pubkey&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1736200000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">4&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [[&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;recipient-pubkey&amp;gt;&amp;#34;&lt;/span>]],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;base64-ciphertext?iv=base64-iv&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;signature&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De versleutelingsstroom:&lt;/p>
&lt;ol>
&lt;li>Bereken gedeeld punt: &lt;code>shared = ECDH(sender_privkey, recipient_pubkey)&lt;/code>&lt;/li>
&lt;li>Leid sleutel af: &lt;code>key = SHA256(shared_x_coordinate)&lt;/code>&lt;/li>
&lt;li>Genereer willekeurige 16-byte IV&lt;/li>
&lt;li>Versleutel: &lt;code>ciphertext = AES-256-CBC(key, iv, plaintext)&lt;/code>&lt;/li>
&lt;li>Formatteer content: &lt;code>base64(ciphertext)?iv=base64(iv)&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Beveiligingsproblemen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Geen authenticatie:&lt;/strong> AES-CBC biedt vertrouwelijkheid maar geen integriteit. Een aanvaller die een relay controleert zou ciphertext-bits kunnen wijzigen, wat voorspelbare wijzigingen in plaintext veroorzaakt (bit-flipping aanvallen).&lt;/li>
&lt;li>&lt;strong>IV in het zicht:&lt;/strong> De initialisatievector wordt naast ciphertext verzonden, en CBC-modus met voorspelbare IV&amp;rsquo;s maakt chosen-plaintext aanvallen mogelijk.&lt;/li>
&lt;li>&lt;strong>Geen padding-validatie:&lt;/strong> Implementaties variëren in hoe ze PKCS#7 padding afhandelen, wat mogelijk padding oracle-aanvallen mogelijk maakt.&lt;/li>
&lt;li>&lt;strong>Metadata-blootstelling:&lt;/strong> De verzender-pubkey, ontvanger-pubkey en timestamp zijn allemaal zichtbaar voor relays.&lt;/li>
&lt;li>&lt;strong>Sleutelhergebruik:&lt;/strong> Hetzelfde gedeelde geheim wordt voor altijd gebruikt voor alle berichten tussen twee partijen.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Waarom het nog bestaat:&lt;/strong> Veel oudere clients en relays ondersteunen alleen NIP-04. Je zult het tegenkomen bij interactie met legacy-systemen. Signers zoals Amber en apps zoals Primal implementeren nog steeds &lt;code>nip04_encrypt&lt;/code>/&lt;code>nip04_decrypt&lt;/code> voor achterwaartse compatibiliteit.&lt;/p>
&lt;h3 id="nip-44nltopicsnip-44-versiebeheerde-versleuteling">&lt;a href="https://nostrcompass.org/nl/topics/nip-44/">NIP-44&lt;/a>: Versiebeheerde Versleuteling&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44&lt;/a> is de moderne versleutelingsstandaard, ontworpen om de bekende fouten van NIP-04 op te lossen. Een Cure53-beveiligingsaudit van NIP-44-implementaties identificeerde 10 problemen (waaronder timing-aanvallen en forward secrecy-zorgen) die werden aangepakt voordat de spec werd gefinaliseerd. Het gebruikt ChaCha20-Poly1305 met correcte sleutelafleiding en geauthenticeerde versleuteling.&lt;/p>
&lt;p>&lt;strong>Belangrijkste verbeteringen ten opzichte van NIP-04:&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Aspect&lt;/th>
 &lt;th style="text-align: left">NIP-04&lt;/th>
 &lt;th style="text-align: left">NIP-44&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td style="text-align: left">Cipher&lt;/td>
 &lt;td style="text-align: left">AES-256-CBC&lt;/td>
 &lt;td style="text-align: left">XChaCha20-Poly1305&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Authenticatie&lt;/td>
 &lt;td style="text-align: left">Geen&lt;/td>
 &lt;td style="text-align: left">Poly1305 MAC&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Sleutelafleiding&lt;/td>
 &lt;td style="text-align: left">SHA256(shared_x)&lt;/td>
 &lt;td style="text-align: left">HKDF met salt&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Nonce&lt;/td>
 &lt;td style="text-align: left">16-byte IV, hergebruikt patroon&lt;/td>
 &lt;td style="text-align: left">24-byte willekeurige nonce&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Padding&lt;/td>
 &lt;td style="text-align: left">PKCS#7 (lekt lengte)&lt;/td>
 &lt;td style="text-align: left">Opgevuld tot macht van 2&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Versiebeheer&lt;/td>
 &lt;td style="text-align: left">Geen&lt;/td>
 &lt;td style="text-align: left">Versie-byte prefix&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Versleutelingsstroom:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Conversation key:&lt;/strong> Leid een stabiele sleutel af voor elk verzender-ontvanger paar:&lt;/p>
&lt;pre tabindex="0">&lt;code>shared_x = ECDH(sender_privkey, recipient_pubkey).x
conversation_key = HKDF-SHA256(
 ikm = shared_x,
 salt = &amp;#34;nip44-v2&amp;#34;,
 info = &amp;#34;&amp;#34;
)
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Message keys:&lt;/strong> Voor elk bericht, genereer een willekeurige 32-byte nonce en leid versleuteling/authenticatie-sleutels af:&lt;/p>
&lt;pre tabindex="0">&lt;code>keys = HKDF-SHA256(
 ikm = conversation_key,
 salt = nonce,
 info = &amp;#34;nip44-v2&amp;#34;
)
chacha_key = keys[0:32]
chacha_nonce = keys[32:44]
hmac_key = keys[44:76]
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Pad plaintext:&lt;/strong> Vul aan tot de volgende macht van 2 (minimum 32 bytes) om berichtlengte te verbergen:&lt;/p>
&lt;pre tabindex="0">&lt;code>padded = [length_u16_be] + [plaintext] + [zeros to next power of 2]
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Versleutel en authenticeer:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>ciphertext = XChaCha20(chacha_key, chacha_nonce, padded)
mac = HMAC-SHA256(hmac_key, nonce + ciphertext)
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>&lt;strong>Formatteer payload:&lt;/strong>&lt;/p>
&lt;pre tabindex="0">&lt;code>payload = [version=0x02] + [nonce] + [ciphertext] + [mac]
content = base64(payload)
&lt;/code>&lt;/pre>&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Versie-byte:&lt;/strong> De eerste byte (&lt;code>0x02&lt;/code>) geeft de versleutelingsversie aan. Dit maakt toekomstige upgrades mogelijk zonder bestaande berichten te breken. Versie &lt;code>0x01&lt;/code> was een eerdere draft die nooit breed werd uitgerold.&lt;/p>
&lt;p>&lt;strong>Ontsleuteling:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Decodeer base64, controleer of versie-byte &lt;code>0x02&lt;/code> is&lt;/li>
&lt;li>Extraheer nonce (bytes 1-32), ciphertext en MAC (laatste 32 bytes)&lt;/li>
&lt;li>Leid conversation key af met de privésleutel van de ontvanger en de publieke sleutel van de verzender&lt;/li>
&lt;li>Leid message keys af van conversation key en nonce&lt;/li>
&lt;li>Verifieer MAC voordat je ontsleutelt (weiger als ongeldig)&lt;/li>
&lt;li>Ontsleutel ciphertext, extraheer lengteprefix, retourneer onopgevulde plaintext&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Beveiligingseigenschappen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Geauthenticeerde versleuteling:&lt;/strong> Poly1305 MAC zorgt ervoor dat elke manipulatie wordt gedetecteerd voordat er wordt ontsleuteld&lt;/li>
&lt;li>&lt;strong>Forward secrecy (gedeeltelijk):&lt;/strong> Elk bericht gebruikt een unieke nonce, dus het compromitteren van één bericht onthult anderen niet. Het compromitteren van een privésleutel onthult echter nog steeds alle vorige berichten (geen ratcheting).&lt;/li>
&lt;li>&lt;strong>Lengte verbergen:&lt;/strong> Power-of-2 padding verbergt exacte berichtlengte&lt;/li>
&lt;li>&lt;strong>Timing-aanval weerstand:&lt;/strong> Constant-time vergelijking voor MAC-verificatie&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Gebruik in de praktijk:&lt;/strong> NIP-44 is de versleutelingslaag voor:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> privé directe berichten (binnen gift wrap)&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signer-communicatie&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> seal-versleuteling&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/nl/topics/nip-104/">Marmot Protocol&lt;/a> groepsberichten, waarbij NIP-44 MLS-versleutelde content wrapt met een sleutel afgeleid van het MLS exporter secret&lt;/li>
&lt;li>Elke applicatie die veilige punt-naar-punt versleuteling nodig heeft&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Migratieadvies:&lt;/strong> Nieuwe applicaties zouden exclusief NIP-44 moeten gebruiken. Voor achterwaartse compatibiliteit, controleer of de client van een contact NIP-44 ondersteunt (via &lt;a href="https://nostrcompass.org/nl/topics/nip-89/">NIP-89&lt;/a> app-metadata of relay-ondersteuning) voordat je terugvalt op NIP-04. Bij het ontvangen van berichten, probeer eerst NIP-44 ontsleuteling, val dan terug naar NIP-04 voor legacy-content.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Primal Android v2.6.18&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">Volledige release&lt;/a> voegt &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing en &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> lokale signing toe, waardoor Primal een signing-hub wordt voor andere Android-apps. Prestatieverbeteringen omvatten media pre-caching, avatar pre-caching en snellere thread-laadtijden. Bugfixes pakken zelf-vermeldingen in bio&amp;rsquo;s, mediagalerij-crashes en stream-titel fallbacks aan. Op iOS gebruikt Primal achtergrond-audioafspeling om de app actief te houden voor het ontvangen van NIP-46 signing-verzoeken; gebruikers kunnen het geluid wijzigen of volledig dempen in instellingen.&lt;/p>
&lt;p>&lt;strong>Mostro v0.15.6&lt;/strong> - De nieuwste release van het &lt;a href="https://nostrcompass.org/nl/topics/nip-69/">NIP-69&lt;/a> P2P Bitcoin-handelsplatform &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.15.6">&lt;/a> voltooit de implementatie van het ontwikkelingsfonds met Phase 4 audit-events. Dev-feebetalingen worden nu gevolgd via kind 38383 Nostr-events die na elke succesvolle betaling worden gepubliceerd, wat verificatie en analytics door derden mogelijk maakt. Bedragberekeningen werden gecorrigeerd voor koper-/verkoperberichten, en premium-logica werd afgestemd op de lnp2pbot-referentie-implementatie.&lt;/p>
&lt;p>&lt;strong>Aegis v0.3.5&lt;/strong> - De cross-platform signer &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.5">voegt donkere modus toe&lt;/a>, verbeterde app-icoon weergave en schonere UI-layouts. Bugfixes pakken iOS iCloud Private Relay-conflicten en event-parsingproblemen aan. De release verbetert ook hoe event JSON wordt doorgegeven aan de Rust signing-functie.&lt;/p>
&lt;p>&lt;strong>Citrine v1.0.0&lt;/strong> - De Android relay-app &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v1.0.0">bereikt 1.0&lt;/a>. Citrine laat je een persoonlijke Nostr-relay direct op je Android-apparaat draaien, nuttig voor lokale caching, backup of als NIP-55 companion. Deze release voegt een crash report handler toe, verbetert database query-efficiëntie en werkt vertalingen bij via Crowdin.&lt;/p>
&lt;p>&lt;strong>Applesauce v5.0.0&lt;/strong> - hzrd149&amp;rsquo;s TypeScript-bibliotheeksuite &lt;a href="https://github.com/hzrd149/applesauce/releases">levert een major versie&lt;/a> met breaking changes gericht op correctheid en eenvoud. Het core-pakket &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%405.0.0">verifieert nu event-handtekeningen standaard&lt;/a> en hernoemt coördinaat-methodes naar duidelijkere &amp;ldquo;address&amp;rdquo; terminologie (&lt;code>parseCoordinate&lt;/code> → &lt;code>parseReplaceableAddress&lt;/code>). Het relay-pakket &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-relay%405.0.0">verlaagt standaard retries van 10 naar 3&lt;/a> en negeert standaard onbereikbare relays, plus voegt &lt;code>createUnifiedEventLoader&lt;/code> toe voor eenvoudiger event-ophalen. Het wallet-pakket krijgt &lt;a href="https://nostrcompass.org/nl/topics/nip-87/">NIP-87&lt;/a> &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-wallet%405.0.0">Cashu mint discovery&lt;/a>. Directe &lt;code>nostr-tools&lt;/code> dependencies werden verwijderd uit pakketten, wat bundlegrootte en versieconflicten vermindert.&lt;/p>
&lt;h2 id="noemenswaardige-code--en-documentatiewijzigingen">Noemenswaardige code- en documentatiewijzigingen&lt;/h2>
&lt;p>&lt;em>Dit zijn open pull requests en werk in een vroeg stadium, perfect voor het krijgen van feedback voordat ze worden samengevoegd. Als iets je aandacht trekt, overweeg dan te reviewen of commentaar te geven!&lt;/em>&lt;/p>
&lt;h3 id="damus-ios">Damus (iOS)&lt;/h3>
&lt;p>Een reeks PR&amp;rsquo;s verbetert de longform artikel-ervaring. &lt;a href="https://github.com/damus-io/damus/pull/3496">Reading UX-verbeteringen&lt;/a> voegen een voortgangsbalk toe, geschatte leestijd, sepia-modus, aanpasbare regelhoogte en focusmodus die navigatie verbergt tijdens scrollen. &lt;a href="https://github.com/damus-io/damus/pull/3489">Afbeeldingsfixes&lt;/a> zorgen ervoor dat afbeeldingen in markdown-content worden weergegeven met correcte aspectratio&amp;rsquo;s door standalone afbeeldingen voor te verwerken als blokniveau-elementen. &lt;a href="https://github.com/damus-io/damus/pull/3497">Longform preview cards&lt;/a> vervangen inline &lt;code>@naddr1...&lt;/code> tekst door rijke preview-kaarten die artikeltitel en metadata tonen. Een nieuwe &lt;a href="https://github.com/damus-io/damus/pull/3508">relay integration test suite&lt;/a> voegt 137 netwerkgerelateerde tests toe inclusief &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a> protocolverificatie en gedrag onder verslechterde netwerkomstandigheden (3G-simulatie).&lt;/p>
&lt;h3 id="bitchat-versleutelde-berichten">Bitchat (Versleutelde Berichten)&lt;/h3>
&lt;p>Beveiligingsversterking in de iOS Nostr+Cashu messenger. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/928">Noise protocol DH secret clearing&lt;/a> repareert zes locaties waar gedeelde geheimen niet werden gewist na Diffie-Hellman sleutelovereenkomst, wat forward secrecy-garanties herstelt. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/929">Thread safety voor read receipt queues&lt;/a> voegt barrier-synchronisatie toe om race conditions in NostrTransport te voorkomen. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/920">Message deduplicator-optimalisatie&lt;/a> verbetert prestaties bij hoge berichtvolumes, en &lt;a href="https://github.com/permissionlesstech/bitchat/pull/919">hex string parsing hardening&lt;/a> voorkomt crashes van misvormde input.&lt;/p>
&lt;h3 id="frostr-threshold-signing">Frostr (Threshold Signing)&lt;/h3>
&lt;p>Het &lt;a href="https://nostrcompass.org/nl/topics/frost/">FROST&lt;/a>-gebaseerde threshold signing protocol &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop/pull/62">voegde QR-code weergave toe&lt;/a> voor groeps-credentials en share-credentials tijdens onboarding en in de signer-interface. Dit maakt eenvoudigere setup mogelijk bij het distribueren van sleutel-shares over meerdere apparaten, waarbij gebruikers credentials kunnen scannen in plaats van lange strings handmatig te kopiëren.&lt;/p>
&lt;h3 id="marmot-mdk-bibliotheek">Marmot mdk (Bibliotheek)&lt;/h3>
&lt;p>Naast de hierboven genoemde beveiligingsfixes, pakken actieve PR&amp;rsquo;s resterende auditbevindingen aan: &lt;a href="https://github.com/marmot-protocol/mdk/pull/109">Secret&lt;T> type voor zeroization&lt;/a> introduceert een wrapper-type dat automatisch gevoelige data wist bij drop, &lt;a href="https://github.com/marmot-protocol/mdk/pull/111">messages query paginering&lt;/a> voorkomt geheugenuitputting bij het laden van chatgeschiedenis, en &lt;a href="https://github.com/marmot-protocol/mdk/pull/102">versleutelde opslag&lt;/a> voegt at-rest versleuteling toe voor de SQLite-database die groepsstaat en berichten opslaat.&lt;/p>
&lt;h3 id="amethyst-android">Amethyst (Android)&lt;/h3>
&lt;p>Een drukke week van stabiliteitsfixes in de Android-client. &lt;a href="https://github.com/vitorpamplona/amethyst/commit/2c42796">Coulante JSON-parsing&lt;/a> voorkomt crashes van misvormde events door Kotlin Serialization coulanter te maken. Event-validatie &lt;a href="https://github.com/vitorpamplona/amethyst/commit/40f9622">controleert nu kind-veldgrootte&lt;/a> voordat verwerking plaatsvindt om exceptions van te grote waarden te vermijden. De trust score UI kreeg een kleiner icoon om visuele interferentie te verminderen, en &lt;a href="https://github.com/vitorpamplona/amethyst/commit/69c53ac">verbeterde foutlogging&lt;/a> helpt bij het diagnosticeren van relay-verbindingsproblemen. Vertaalupdates arriveerden via Crowdin, en meerdere SonarQube-waarschuwingen werden aangepakt.&lt;/p>
&lt;h3 id="tenex-ai-agents">TENEX (AI Agents)&lt;/h3>
&lt;p>Het Nostr-native AI agent-framework zag 81 commits deze week die autonome mogelijkheden uitbouwen. Nieuw &lt;a href="https://github.com/tenex-chat/tenex/pull/48">agent supervision systeem&lt;/a> implementeert gedragsheuristieken om agent-acties te monitoren en in te grijpen wanneer nodig. &lt;a href="https://github.com/tenex-chat/tenex/commit/b244c10">Delegatie-transparantie&lt;/a> voegt gebruikersinterventie-logging toe aan delegatie-transcripten, zodat gebruikers kunnen auditen wat agents namens hen deden. De &lt;a href="https://github.com/tenex-chat/tenex/pull/47">LLM provider registry&lt;/a> werd gemodulariseerd voor eenvoudigere integratie van verschillende AI-backends. Cross-project conversatie-ondersteuning laat agents context behouden over meerdere Nostr-gebaseerde projecten.&lt;/p>
&lt;h3 id="jumble-web-client">Jumble (Web Client)&lt;/h3>
&lt;p>De relay-gerichte webclient voegde meerdere gebruikerservaringverbeteringen toe. &lt;a href="https://github.com/CodyTseng/jumble/commit/695f2fe">Smart relay pool&lt;/a> beheert intelligent verbindingen op basis van gebruikspatronen. &lt;a href="https://github.com/CodyTseng/jumble/commit/917fcd9">Live feed toggle&lt;/a> laat gebruikers schakelen tussen real-time streaming en handmatige verversing. &lt;a href="https://github.com/CodyTseng/jumble/commit/d1b3a8c">Auto-show new notes&lt;/a> aan de bovenkant toont verse content zonder pagina-herlading te vereisen. &lt;a href="https://github.com/CodyTseng/jumble/commit/fd9f41c">Persistent cache&lt;/a> voor volg-feed en notificaties verbetert laadtijden bij terugkerende bezoeken. Gebruikers kunnen nu &lt;a href="https://github.com/CodyTseng/jumble/commit/53a67d8">standaard relays wijzigen&lt;/a> via instellingen.&lt;/p>
&lt;hr>
&lt;p>Dat was het voor deze week. Bouw je iets? Heb je nieuws te delen? Wil je dat we je project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Kompas #3</title><link>https://nostrcompass.org/nl/newsletters/2025-12-31-newsletter/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2025-12-31-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor het Nostr-protocol ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Terwijl 2025 eindigt, kijken we terug op vijf jaar decembermilepalen in Nostr&amp;rsquo;s evolutie. Van fiatjaf&amp;rsquo;s eerste clientrelease in december 2020, via Jack Dorsey&amp;rsquo;s pivotale donatie van 14 BTC in december 2022, tot deze maand&amp;rsquo;s verspreiding van NIP-55-signers en NDK&amp;rsquo;s 162x cacheversnelling, heeft december consistente keerpunten voor het protocol gemarkeerd. Dit speciale nummer volgt de technische geschiedenis door elke december, documenterend de groei van het protocol van twee experimentele relays naar 2.500+ nodes over 50 landen. Plus: het desktopmodule van Amethyst krijgt vorm via Quartz, Notedeck voegt berichten toe, Citrine host webapps, en NIP-54 lost internationalisatie voor niet-Latijnse scripts op.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor het Nostr-protocol ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Terwijl 2025 eindigt, kijken we terug op vijf jaar decembermilepalen in Nostr&amp;rsquo;s evolutie. Van fiatjaf&amp;rsquo;s eerste clientrelease in december 2020, via Jack Dorsey&amp;rsquo;s pivotale donatie van 14 BTC in december 2022, tot deze maand&amp;rsquo;s verspreiding van NIP-55-signers en NDK&amp;rsquo;s 162x cacheversnelling, heeft december consistente keerpunten voor het protocol gemarkeerd. Dit speciale nummer volgt de technische geschiedenis door elke december, documenterend de groei van het protocol van twee experimentele relays naar 2.500+ nodes over 50 landen. Plus: het desktopmodule van Amethyst krijgt vorm via Quartz, Notedeck voegt berichten toe, Citrine host webapps, en NIP-54 lost internationalisatie voor niet-Latijnse scripts op.&lt;/p>
&lt;h2 id="december-recap-vijf-jaar-nostr-decembers">December Recap: Vijf jaar Nostr-decembers&lt;/h2>
&lt;p>Nostr wordt dit jaar vijf jaar oud. fiatjaf initieerde het protocol op 7 november 2020, en elke december sinds dien heeft een distinct fase in zijn evolutie gemarkeerd: van proof-of-concept naar mondiale beweging naar production-ecosysteem. Dit is een technische terugblik van december 2020 tot en met december 2025, de vormende jaren die Nostr&amp;rsquo;s grondslag hebben gevestigd en zijn doorbraakmoment hebben gekatalyseerd.&lt;/p>
&lt;h3 id="december-2020-genesis">December 2020: Genesis&lt;/h3>
&lt;p>De eerste volledige maand van Nostr&amp;rsquo;s bestaan zag fiatjaf &lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a> vrijgeven, de eerste client van het protocol, gebouwd met Quasar (Vue.js) en absurd-sql voor lokale opslag. fiatjaf had al de kernarchitectuur vastgesteld: gebruikers geïdentificeerd door secp256k1 publieke sleutels, alle berichten cryptografisch ondertekend, relays als domme opslag die niet met elkaar communiceren. Een of twee experimentele relays dienden een handvol early adopters die coördineerden in de Telegram-groep &lt;a href="https://t.me/nostr_protocol">@nostr_protocol&lt;/a>, die op 16 november was gestart. De &lt;a href="https://fiatjaf.com/nostr.html">originele documentatie&lt;/a> beschreef &amp;ldquo;het eenvoudigste open protocol dat in staat is om een censuurbestendige wereldwijd sociaal netwerk te creëren,&amp;rdquo; een premise die twee jaar later zou worden bewezen.&lt;/p>
&lt;h3 id="december-2021-vroege-ontwikkeling">December 2021: Vroege ontwikkeling&lt;/h3>
&lt;p>Op 31 december 2021 haalde Nostr de &lt;a href="https://news.ycombinator.com/item?id=29749061">Hacker News voorpagina&lt;/a> met 110 punten en 138 opmerkingen, ingediend door Cameri. Dit markeerde de eerste significante blootstelling van het protocol aan de bredere developer-community. Het netwerk liep op ongeveer zeven relays met minder dan 1.000 gebruikers. Branle ontving updates inclusief private key import (31 december) en multi-relay ondersteuning. Een command-line client, noscl, voorzag terminal-gebaseerde interactie. De protocol-specificaties bestonden in fiatjaf&amp;rsquo;s documentatie, hoewel de formele &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a> niet tot mei 2022 zou worden aangemaakt. Het protocol was, zoals fiatjaf het beschreef, &amp;ldquo;work in progress&amp;rdquo;.&lt;/p>
&lt;h3 id="december-2022-het-omslagpunt">December 2022: Het omslagpunt&lt;/h3>
&lt;p>December 2022 veranderde Nostr van een niche experiment in een mainstream beweging. De katalysator kwam op 15 december, toen Jack Dorsey &lt;a href="https://www.coindesk.com/tech/2022/12/15/jack-dorsey-gives-decentralized-social-network-nostr-14-btc-in-funding">14.17171699 BTC&lt;/a> (~$245.000-$250.000) aan fiatjaf doneerde nadat hij het protocol ontdekte en het &amp;ldquo;100 procent wat we van Bluesky wilden, maar het was niet van een bedrijf ontwikkeld&amp;rdquo; noemde. Op 16 december kondigde fiatjaf aan dat hij middelen zou verdelen met Damus-ontwikkelaar William Casarin (jb55), en Dorsey verificeerde zijn Nostr-account (npub: &lt;code>npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m&lt;/code>). De financiering legitimeerde het project in één nacht.&lt;/p>
&lt;p>Dezelfde week versnelde Twitter&amp;rsquo;s chaos de adoptie. 14-15 december zagen schorsingen van prominente journalisten van de New York Times, CNN en Washington Post. Op 18 december &lt;a href="https://techcrunch.com/2022/12/18/twitter-wont-let-you-post-your-facebook-instagram-and-mastodon-handles/">kondigde Twitter verboden aan&lt;/a> op accounts die Nostr, Mastodon en andere platforms bevorderden. Het beleid werd de volgende dag na tegenkanting omgekeerd. De exodus dreef gebruikers om alternatieven te verkennen.&lt;/p>
&lt;p>Protocol-ontwikkeling nam toe. Op 16 december werd &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> gemerged (&lt;a href="https://github.com/nostr-protocol/nips/pull/57">#57&lt;/a>), introductie van bech32-gecodeerde identificatoren (npub, nsec, note, nprofile, nevent) die sleutels mensleesbaar en onderscheidbaar maakten. De NIPs-repository registreerde 36+ commits die maand, inclusief NIP-40 en NIP-07 updates. Clients vermenigvuldigden zich: Damus vulde zijn TestFlight-bèta binnen uren, Astral forkte Branle voor profielbepaling, Snort lanceerde als een &amp;ldquo;snelle, censuurbestendige&amp;rdquo; webclient, en Vitor Pamplona begon Amethyst-ontwikkeling. Alby v1.22.1 &amp;ldquo;Kemble&amp;rsquo;s Cascade of Stars&amp;rdquo; werd op 22 december verscheept met NIP-19 ondersteuning. Op 7 december had Nostr ongeveer 800 gebruikers met profielen; toen Damus op 31 januari 2023 de App Store raakte, gingen de sluizen open, groei naar 315.000+ gebruikers tegen juni 2023.&lt;/p>
&lt;h3 id="december-2023-ecosysteem-volwassenheid">December 2023: Ecosysteem volwassenheid&lt;/h3>
&lt;p>December 2023 markeerde een kritisch keerpunt voor Nostr-protocolbeveiliging. Op 20 december werd &lt;a href="https://github.com/nostr-protocol/nips/pull/746">NIP-44 revisie 3 gemerged&lt;/a> na een onafhankelijke Cure53-beveiligingsaudit (NOS-01) die 10 problemen in TypeScript-, Go- en Rust-implementaties identificeerde, inclusief timing-aanvallen en forward-secrecy-zorgen. De bijgewerkte spec verving de gebrekkige &lt;a href="https://nostrcompass.org/nl/topics/nip-04/">NIP-04&lt;/a> versleuteling met ChaCha20 en HMAC-SHA256, waarbij de cryptografische basis werd vastgesteld die nu &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> private DMs en &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrapping ondersteunt. Dezelfde week kondigde &lt;a href="https://opensats.org/blog/nostr-grants-december-2023">OpenSats hun vierde golfbeurzen aan&lt;/a> op 21 december, financiering van zeven projecten inclusief Lume, noStrudel, ZapThreads en een onafhankelijke NIP-44-audit. Dit volgde de &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">eerste golf in juli 2023&lt;/a> die Damus, Coracle, Iris en anderen had gefinancierd, waarbij de totale Nostr Fund-toewijzing ongeveer $3,4 miljoen over 39 beurzen bedroeg.&lt;/p>
&lt;p>De maand stelde ook duurzaamheidsspanningen in het ecosysteem bloot. Op 28 december &lt;a href="https://stacker.news/items/368863">postte William Casarin (jb55) op Stacker News&lt;/a> dat 2024 &amp;ldquo;waarschijnlijk het laatste jaar van Damus&amp;rdquo; zou zijn, stellende dat &amp;ldquo;nostr-clients geen geld verdienen&amp;rdquo; na Apple&amp;rsquo;s restricties op in-app zaps die de opbrengstmogelijkheden ernstig beperkte. Het Damus-team had eerder VC-financiering afgewezen. Ondertussen werd &lt;a href="https://github.com/getAlby/nostr-wallet-connect/releases/tag/0.4.1">Nostr Wallet Connect v0.4.1&lt;/a> op 26 december uitgegeven, uitbreiding van &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> met &lt;code>pay_keysend&lt;/code>, &lt;code>make_invoice&lt;/code>, &lt;code>lookup_invoice&lt;/code>, &lt;code>list_transactions&lt;/code>, &lt;code>get_balance&lt;/code> en &lt;code>get_info&lt;/code>-methoden, leggende grondwerk voor de portefeuilleintegraties die standaard zouden worden over clients.&lt;/p>
&lt;h3 id="december-2024-protocol-vooruitgang">December 2024: Protocol-vooruitgang&lt;/h3>
&lt;p>December 2024 opende met de &lt;a href="https://damus.io/notedeck/">Notedeck Alpha-lancering&lt;/a> op 30 november, de Rust-gebaseerde desktopclien van het Damus-team met een multi-kolom interface met meervoudig accountondersteuning. Gebouwd voor Linux, macOS en Windows (Android gepland voor 2025), Notedeck werd aanvankelijk naar Damus Purple-abonnees verstuurd en vertegenwoordigde een strategische expansie voorbij iOS. Twee weken later kondigde &lt;a href="https://opensats.org/blog/9th-wave-of-nostr-grants">OpenSats hun negende golfbeurzen aan&lt;/a> op 16 december, financiering van AlgoRelay (de eerste algoritmische relay voor gepersonaliseerde feeds), Pokey (Android-app met Bluetooth-mesh voor beperkt internet), Nostr Safebox (&lt;a href="https://nostrcompass.org/nl/topics/nip-60/">NIP-60&lt;/a> &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a> token-opslag) en LumiLumi (lichtgewicht toegankelijke webclient), toewijzing van totale Nostr Fund naar ongeveer $9 miljoen, een stijging van 67% jaar-op-jaar.&lt;/p>
&lt;p>De maand zag significante client-volwassenheid over het ecosysteem. &lt;a href="https://github.com/mikedilger/gossip/releases/tag/v0.13.0">Gossip 0.13.0&lt;/a> landde op 23 december met Bestandsmetadata (&lt;a href="https://nostrcompass.org/nl/topics/nip-92/">NIP-92&lt;/a>/&lt;a href="https://nostrcompass.org/nl/topics/nip-94/">NIP-94&lt;/a>) ondersteuning, Blossom-integratie en &lt;a href="https://nostrcompass.org/nl/topics/nip-50/">NIP-50&lt;/a> relayzoeken. &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.5.0">Coracle 0.5.0&lt;/a> werd op 12 december verscheept met herziene onboarding en nostr-editor integratie. Protocol-ontwikkeling bleef actief met 30 pull requests ingediend tussen 9-22 december (10 gemerged), inclusief &lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> herschrijvingen om alleen NIP-44 versleuteling te gebruiken en voortgezet werk aan &lt;a href="https://nostrcompass.org/nl/topics/nip-104/">NIP-104&lt;/a> voor Signal-niveau double ratchet-versleuteling. Netwerkstatistieken toonden 224.000+ dagelijkse vertrouwde pubkey-events, 4x jaar-op-jaar groei in nieuwe profielen met contactlijsten en 50% toename in openbare schrijfevents.&lt;/p>
&lt;h3 id="december-2025-ecosysteem-expansie">December 2025: Ecosysteem-expansie&lt;/h3>
&lt;p>December 2025 bracht voortgezette protocol-volwassenheid en ecosysteem-expansie. Op 21 december kondigde &lt;a href="https://opensats.org/blog/fourteenth-wave-of-nostr-grants">OpenSats hun veertiende golfbeurzen aan&lt;/a>, financiering van drie projecten: YakiHonne (een multi-platformclient met creatorsportal voor inhoud met lange vorm en &lt;a href="https://nostrcompass.org/nl/topics/cashu/">Cashu&lt;/a>/Nutzaps betalingsintegratie), Quartz (Vitor Pamplona&amp;rsquo;s Kotlin Multiplatform-bibliotheek die Amethyst aandrijft en een iOS-versie zal mogelijk maken) en Nostr Feedz (bidirectionele RSS-naar-Nostr integratie door PlebOne). Grant-verlengingen gingen naar Dart NDK en Mattn&amp;rsquo;s nostr-relay.&lt;/p>
&lt;p>Protocol-evolutie ging door met &lt;a href="https://nostrcompass.org/nl/topics/nip-be/">NIP-BE&lt;/a> (Bluetooth Low Energy messaging, &lt;a href="https://github.com/nostr-protocol/nips/pull/1979">#1979&lt;/a>) gemerged in november, het mogelijk maken van offlinevice synchronisatie. &lt;a href="https://nostrcompass.org/nl/topics/nip-a4/">NIP-A4&lt;/a> (Openbare berichten, kind 24, &lt;a href="https://github.com/nostr-protocol/nips/pull/1988">#1988&lt;/a>) landde later in de maand, definiërend notificatieschermbericht die &lt;code>q&lt;/code> tags gebruiken om threadingproblemen te vermijden. &lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a> ontving grote verduidelijking (&lt;a href="https://github.com/nostr-protocol/nips/pull/2106">#2106&lt;/a>), introductie van de &lt;code>hidden&lt;/code> tag voor echt private, ondetecteerbare groepen. De &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> spec ontving ook verfijning (&lt;a href="https://github.com/nostr-protocol/nips/pull/2166">#2166&lt;/a>), het aanpakken van een veelgebruikt implementatiefout waar ontwikkelaars &lt;code>get_public_key&lt;/code> vanuit achtergrondprocessen belden.&lt;/p>
&lt;p>Aan de client-zijde werd &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/#nieuws">Primal Android een volledige NIP-55-signer&lt;/a> via acht samengevoegde PRs die &lt;code>LocalSignerContentProvider&lt;/code> implementeerden, sluitend aan bij Amber en Aegis als Android signing opties. De &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/#opmerkelijk-code-en-documentatiewijzigingen">NDK-bibliotheek bereikte 162x snellere cachequery&amp;rsquo;s&lt;/a> (van ~3.690ms naar ~22ms) door het elimineren van dubbele schrijfbewerkingen en onnodig LRU-cachequery&amp;rsquo;s (&lt;a href="https://github.com/nostr-dev-kit/ndk/pull/371">PR #371&lt;/a>, &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/372">PR #372&lt;/a>). Shopstr introduceerde &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/#nieuws">Zapsnags&lt;/a> voor flitsverkoop via zaps. White Noise verzond &lt;a href="https://nostrcompass.org/nl/topics/mip-05/">MIP-05&lt;/a> privacybehoudende pushnotificaties. Zie &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/">Nieuwsbrief #1&lt;/a> en &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/">Nieuwsbrief #2&lt;/a> voor volledige dekking.&lt;/p>
&lt;hr>
&lt;p>Vijf jaar geleden gaf fiatjaf Branle vrij aan een handvol gebruikers over twee experimentele relays. Vandaag ondersteunt het protocol 140+ clients, 2.500+ relays over 50 landen, en een groeiend web van vertrouwen dat honderdduizenden sleutelparen verbindt. Het decemberpatroon van grote releases zette zich deze maand voort met Bluetooth-berichten, Android-signer verspreiding en infrastructuurbeurzen die aanhoudende investeringen in cross-platformtooling signaleerden.&lt;/p>
&lt;h2 id="nieuws">Nieuws&lt;/h2>
&lt;p>&lt;strong>Amethyst Desktop neemt vorm aan&lt;/strong> - De Quartz-beurs van OpenSats&amp;rsquo; veertiende golf produceert al resultaten. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1625">PR #1625&lt;/a> creëert een volledige &lt;code>:desktopApp&lt;/code> module voor Amethyst met Compose Multiplatform, met login- en globale feedschermen functioneel op Desktop JVM. De architectuur converteert de &lt;code>:commons&lt;/code> module naar Kotlin Multiplatform met een schone bron set-structuur (&lt;code>commonMain&lt;/code>, &lt;code>jvmAndroid&lt;/code>, &lt;code>androidMain&lt;/code>, &lt;code>jvmMain&lt;/code>), het mogelijk maken van gedeelde UI-componenten tussen Android en desktop terwijl platform-specifieke beslissingen aan elk doel worden overgelaten. Dit legt de grondslag voor de uiteindelijke iOS-versie via dezelfde Kotlin Multiplatform-aanpak.&lt;/p>
&lt;p>&lt;strong>Amethyst Voice Replies&lt;/strong> - Een Kerstgeschenk van davotoula: &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1622">PR #1622&lt;/a> voegt toegewijde voice reply-schermen toe met golfvormvisualisatie, hernamedondersteuning, media server-selectie en uploadvoortgangsindicatoren. Gebruikers kunnen nu antwoorden op zowel root voice-berichten als voice-antwoorden met audio.&lt;/p>
&lt;p>&lt;strong>Notedeck voegt berichten toe&lt;/strong> - Notedeck, de Damus-desktopclien, kreeg een berichtenfunctie in &lt;a href="https://github.com/damus-io/notedeck/pull/1223">PR #1223&lt;/a>, expansie voorbij timelines naar directe communicatie.&lt;/p>
&lt;p>&lt;strong>Citrine Host Webapps&lt;/strong> - Citrine kan nu &lt;a href="https://github.com/greenart7c3/Citrine/pull/81">webapplicaties hosten&lt;/a>, je telefoon omzetten in een lokale Nostr-webserver. Een aparte &lt;a href="https://github.com/greenart7c3/Citrine/pull/85">PR #85&lt;/a> voegt automatische herverbinding en event-uitzending toe wanneer netwerkconnectiviteit terugkeert, met uitgebreide testdekking over Android API-niveaus.&lt;/p>
&lt;p>&lt;strong>Nostrability Developer Toolkit Registry&lt;/strong> - De &lt;a href="https://github.com/nostrability/nostrability/issues/264">Developer Kits &amp;amp; Tooling&lt;/a> tracker onderhoudt een gecureerde registerboek van SDK&amp;rsquo;s, bibliotheken en developer-tools over talen (TypeScript, Rust, Python, Go, Dart, Swift en meer). Als je nieuw bent in Nostr-ontwikkeling, is dit een nuttig startpunt voor het vinden van de juiste toolkit voor je stack.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs-repository&lt;/a>:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-54/">NIP-54&lt;/a>&lt;/strong> - Kritieke internationalisatieoplossing voor wiki d-tag normalisatie (&lt;a href="https://github.com/nostr-protocol/nips/pull/2177">#2177&lt;/a>). Vorige regels converteerden alle niet-ASCII-tekens naar &lt;code>-&lt;/code>, verbroken ondersteuning voor Japans, Chinees, Arabisch, Cyrillisch en andere scripts. De bijgewerkte spec behoudt UTF-8-letters, past alleen kleine letters toe op tekens met variantengevallen, en bevat uitgebreide voorbeelden: &lt;code>&amp;quot;ウィキペディア&amp;quot;&lt;/code> blijft &lt;code>&amp;quot;ウィキペディア&amp;quot;&lt;/code>, &lt;code>&amp;quot;Москва&amp;quot;&lt;/code> wordt &lt;code>&amp;quot;москва&amp;quot;&lt;/code>, en gemengde scripts zoals &lt;code>&amp;quot;日本語 Article&amp;quot;&lt;/code> normaliseren naar &lt;code>&amp;quot;日本語-article&amp;quot;&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Zapstore 1.0-rc1&lt;/strong> - De Nostr-gebaseerde toepassing zonder toestemming verzendt de &lt;a href="https://github.com/zapstore/zapstore/releases/tag/1.0-rc1">eerste release candidate&lt;/a> van zijn nieuwe architectuur, met een volledige UI-vernieuwing, herschreven packagemanager met verbeterde foutafhandeling, App Stacks voor gecureerde ontdekkingen, herdoordachte profielschermen, achtergrondupdate controle en oneindige scrollen in release lists.&lt;/p>
&lt;p>&lt;strong>KeyChat v1.38.1&lt;/strong> - De MLS-gebaseerde versleutelde berichtenapp &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.38.1%2B6489">voegt UnifiedPush-ondersteuning toe&lt;/a> voor Android en Linux pushnotificaties, plus biometrische authenticatie voor privacyoperaties. Beschikbaar voor Android, Windows, macOS en Linux.&lt;/p>
&lt;p>&lt;strong>Alby Go v2.0.0&lt;/strong> - De mobiele Lightning-portefeuille metgezel &lt;a href="https://github.com/getAlby/go/releases/tag/v2.0.0">verzendt een visuele herontwerp&lt;/a> met nieuw logo, bijgewerkt kleurenpalet, herontworpen adresboek en verbeterd bedragsinvoerkeyboard. BTC Map is nu toegankelijk van het thuisscherm, en transactiebeschrijvingen verschijnen in notificaties.&lt;/p>
&lt;p>&lt;strong>nak v0.17.4&lt;/strong> - fiatjaf&amp;rsquo;s command-line Nostr-tool &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.17.4">vrijgegeven&lt;/a>, volgend op v0.17.3&amp;rsquo;s LMDB Linux-restrictie reparatie van vorige week.&lt;/p>
&lt;h2 id="opmerkelijk-code-en-documentatiewijzigingen">Opmerkelijk code en documentatiewijzigingen&lt;/h2>
&lt;p>&lt;em>Open pull requests en vroeg-stadium werk de moeite waard om te volgen.&lt;/em>&lt;/p>
&lt;h3 id="damus-ios">Damus (iOS)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3477">NIP-19 relay hints&lt;/a> implementeert relay hint consumptie voor event-ophaling. Wanneer gebruikers nevent, nprofile of naddr links openen, haalt Damus nu relayhinten uit de bech32 TLV-gegevens en verbindt zich met kortstondig relays om inhoud op te halen die niet in de relay pool van de gebruiker staat. De implementatie omvat ref-geteld opruiming om race conditions tijdens gelijktijdige lookups te voorkomen. &lt;a href="https://github.com/damus-io/damus/pull/3474">URL-detectie van afbeelding&lt;/a> converteert automatisch geplakte afbeeldings-URL&amp;rsquo;s in preview-miniatuurafbeeldingen in de composer, met een carrouselpositie badge voor meerdere afbeeldingen. &lt;a href="https://github.com/damus-io/damus/pull/3473">npub plakken conversie&lt;/a> transformeert geplakte npub/nprofile-strings in vermeldingskoppelingen met asynchrone profielresolutie.&lt;/p>
&lt;h3 id="amethyst-android">Amethyst (Android)&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1627">Betalingsdoelen&lt;/a> voegt een event-interface toe voor NIP-57 zap splits, waardoor berichten meerdere ontvangers kunnen specificeren die binnenkomende zaps delen (nuttig voor samenwerkingen, inkomstendelende of tipping zowel contentmakers als de tools die zij gebruiken). &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1624">Quartz-functie pariteit documentatie&lt;/a> voegt een gedetailleerde tabel toe die volgt welke functies over Android, Desktop JVM en iOS-doelen zijn geïmplementeerd, stellende dat iOS kernelcryptografie (&lt;code>Secp256k1Instance&lt;/code>), JSON-serialisatie en gegevensstructuren mist.&lt;/p>
&lt;h3 id="notedeck-desktop">Notedeck (Desktop)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck/pull/1226">Timeline filter wederopbouw&lt;/a> repareert een fout waarbij onvolgde accounts keer op keer in feeds verschenen. Timeline-filters werden eenmaal uit de contactlijst gebouwd en nooit bijgewerkt; de oplossing voegt &lt;code>contact_list_timestamp&lt;/code> tracking en een &lt;code>invalidate()&lt;/code> methode toe om herbouwen te triggeren wanneer vervolgstatus verandert.&lt;/p>
&lt;h3 id="citrine-android-relay">Citrine (Android Relay)&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Citrine/pull/86">ContentProvider API&lt;/a> stelt de lokale relay&amp;rsquo;s event-database bloot aan andere Android-apps via &lt;code>ContentResolver&lt;/code>. In plaats van de WebSocket-interface (die vereist dat apps een aanhoudende verbinding onderhouden en het Nostr relay-protocol spreken), biedt ContentProvider directe synchrone database-toegang via Android&amp;rsquo;s eigen IPC-mechanisme. Externe apps kunnen query-events op ID, pubkey, kind of datumbereik, insert nieuwe events met validatie en delete events zonder socket-verbindingen te beheren.&lt;/p>
&lt;h3 id="rust-nostr-bibliotheek">rust-nostr (Bibliotheek)&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1183">NIP-40 relay-niveau ondersteuning&lt;/a> voegt verval-afhandeling toe op het relay builder-niveau. Verlopen events worden nu geweigerd vóór opslag en gefilterd voordat ze naar clients worden verstuurd, waardoor elke database-implementatie onafhankelijk vervalbevoegingen hoeft af te handelen.&lt;/p>
&lt;h3 id="nak-cli">nak (CLI)&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak/pull/91">Blossom mirror&lt;/a> implementeert blob mirroring functionaliteit voor het command-line-tool.&lt;/p>
&lt;h3 id="mostro-p2p-trading">Mostro (P2P Trading)&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro/pull/559">Dev fee audit events&lt;/a> voegt transparante audit trails toe voor ontwikkelingsfonds betalingen via kind 8383 Nostr-events. De implementatie publiceert niet-blokkerend audit events na succesvolle fee-betalingen, met orderdetails en betalingshashes terwijl koper/verkoper pubkeys voor privacy worden uitgesloten.&lt;/p>
&lt;h3 id="mdk-marmot-development-kit">MDK (Marmot Development Kit)&lt;/h3>
&lt;p>Drie security audit reparaties landden: &lt;a href="https://github.com/marmot-protocol/mdk/pull/40">Author verificatie&lt;/a> handhaaft dat roddel pubkeys MLS zender gegevens afstemmen, het voorkomen van imitatie-aanvallen. &lt;a href="https://github.com/marmot-protocol/mdk/pull/41">KeyPackage identiteitsBinding&lt;/a> verifieert dat referentie-identiteit event ondertekenaar afstemt. &lt;a href="https://github.com/marmot-protocol/mdk/pull/42">Admin update validatie&lt;/a> voorkomt lege admin sets en niet-lid admin toewijzingen.&lt;/p>
&lt;h3 id="shopstr-marketplace">Shopstr (Marketplace)&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr/pull/217">HODL invoice escrow&lt;/a> implementeert een vertrouwensminimale betalingssysteem voor fysieke goederen. De architectuur gebruikt Alby&amp;rsquo;s &lt;code>makeHoldInvoice&lt;/code> om koper middelen in hun eigen portefeuille vast te leggen, met settling getriggerd alleen na inventarisverificatie door handelspartij. Het handshake-protocol stroomt door &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> versleuterde DMs: koper verzendt orderverzoek, handelspartij reageert met HODL factuur, koper betaalt (middelen vergrendeld), handelspartij bevestigt voorraad en verzending, dan setting geeft middelen vrij. Multi-handelspartij cart ondersteuning splitsbare betalingen over leveranciers.&lt;/p>
&lt;h3 id="jumble-web-client">Jumble (Web Client)&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble/pull/713">Per-relay discovery mode&lt;/a> voegt een toggle toe om berichten van vervolgde gebruikers op specifieke relays te verbergen, discovery feeds op basis van taal mogelijk makende (bijvoorbeeld nostr.band/lang/*). De functie filtert berichten uit waarbij de auteur pubkey in de volglijst van de gebruiker verschijnt, permanente toggle status per relay URL in localStorage.&lt;/p>
&lt;h3 id="white-noise-versleutelde-messaging">White Noise (Versleutelde Messaging)&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/937">Media upload retry&lt;/a> voegt herhalingopties toe voor mislukte uploads. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/927">Profile edit warnings&lt;/a> waarschuwen gebruikers over profielwijzigingen. Op de achterkant repareerde &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/422">whitenoise-rs&lt;/a> een race condition in AccountGroup creatie.&lt;/p>
&lt;h3 id="npubcash-lightning-address-service">npub.cash (Lightning Address Service)&lt;/h3>
&lt;p>&lt;a href="https://github.com/cashubtc/npubcash-server/pull/40">v3 herschrijving&lt;/a> migreert naar Bun voor de monorepo en server, voegt SQLite ondersteuning toe, laat v1-compatibiliteit vallen, implementeert LUD-21 en voegt real-time munt quote updates toe.&lt;/p>
&lt;h3 id="nostr-java-bibliotheek">nostr-java (Bibliotheek)&lt;/h3>
&lt;p>&lt;a href="https://github.com/tcheeric/nostr-java/releases/tag/v1.1.1">v1.1.1&lt;/a> verzendt WebSocket-afhandelingsherschrijvingen en verbeterde test-robuustheid over &lt;a href="https://github.com/tcheeric/nostr-java/pull/499">twee PRs&lt;/a>.&lt;/p>
&lt;h3 id="nips-repository">NIPs Repository&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2180">NIP-54 Djot migratie&lt;/a> stelt een aparte wijziging voor aan de wiki spec: het format van Asciidoc naar Djot omzetten, een lichtgewicht opmaaktaal met schonere syntaxis. De PR introduceert verwijzingsstijlkoppelingen voor wikilinks, het maken van cross-verwijzingen tussen wiki artikelen leesbaarder in bronvorm. &lt;a href="https://github.com/nostr-protocol/nips/pull/2179">NIP-XX Quorum&lt;/a> introduceert drempelmulti-handtekeningbestuur voor Nostr-groepen met behulp van FROST (Flexible Round-Optimized Schnorr Threshold signatures). Een Quorum is een nsec gedeeld onder leden via een T-van-N-schema waarbij leden zichzelf kunnen vertegenwoordigen of naar een raad van gevolmachtigden kunnen delegeren. Wanneer de raad verandert, wordt de oude nsec verouderd en een nieuwe wordt verdeeld—de afsluitende daad van elke raad ondertekent de bestuuring transitie event. De spec definieert lidmaatschap (openbaar of privé), verkiezingen en peilingen (populaire stemmen, stemmen van geen vertrouwen), optioneel natuurlijke taal &amp;ldquo;wetten,&amp;rdquo; en crucaal, quorum ontologieën waarbij quorum leden van andere quorum kunnen zijn, het mogelijk maken van hiërarchische structuren zoals lokaliteiten die zich voegen bij regionale lichamen. Gebruikssituaties beslaan broncode ontwikkeling, bedrijfsbesturen, HOA&amp;rsquo;s en gemodereerde gemeenschappen.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week en dit jaar. Bouwt u iets? Hebt u nieuws om te delen? Wilt u dat we uw project dekken? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Bereik ons via NIP-17 DM&lt;/a> of zoek ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Kompas #2</title><link>https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/</link><pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2025-12-24-newsletter/</guid><description>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor het Nostr-protocol ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Drie &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> signer-implementaties krijgen updates: Amber voegt prestatiecaching toe, Aegis krijgt &lt;code>nostrsigner:&lt;/code> URI-ondersteuning, en Primal Android voegt zich bij hen als volledige lokale signer. Shopstr introduceert &amp;ldquo;Zapsnags&amp;rdquo; voor flash-verkopen via zaps. Mostro voegt een ontwikkelingsfonds toe. Vier NIP-updates landen, waaronder Public Messages (kind 24) en verbeteringen in groepsprivacy. NDK cache-queries worden 162x sneller, Applesauce voegt reacties en NIP-60 wallet-ondersteuning toe, en Tenex introduceert RAL-architectuur voor AI-agent delegatie. In onze deep dive leggen we &lt;a href="https://nostrcompass.org/nl/topics/nip-02/">NIP-02&lt;/a> (volglijsten) en &lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10&lt;/a> (reply threading) uit, fundamentele specificaties voor het bouwen van sociale tijdlijnen en gesprekken.&lt;/p></description><content:encoded>&lt;p>Welkom terug bij Nostr Kompas, je wekelijkse gids voor het Nostr-protocol ecosysteem.&lt;/p>
&lt;p>&lt;strong>Deze week:&lt;/strong> Drie &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> signer-implementaties krijgen updates: Amber voegt prestatiecaching toe, Aegis krijgt &lt;code>nostrsigner:&lt;/code> URI-ondersteuning, en Primal Android voegt zich bij hen als volledige lokale signer. Shopstr introduceert &amp;ldquo;Zapsnags&amp;rdquo; voor flash-verkopen via zaps. Mostro voegt een ontwikkelingsfonds toe. Vier NIP-updates landen, waaronder Public Messages (kind 24) en verbeteringen in groepsprivacy. NDK cache-queries worden 162x sneller, Applesauce voegt reacties en NIP-60 wallet-ondersteuning toe, en Tenex introduceert RAL-architectuur voor AI-agent delegatie. In onze deep dive leggen we &lt;a href="https://nostrcompass.org/nl/topics/nip-02/">NIP-02&lt;/a> (volglijsten) en &lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10&lt;/a> (reply threading) uit, fundamentele specificaties voor het bouwen van sociale tijdlijnen en gesprekken.&lt;/p>
&lt;h2 id="news">Nieuws&lt;/h2>
&lt;p>&lt;strong>Primal Android Wordt een NIP-55 Signer&lt;/strong> - Voortbouwend op de &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/#primal-android">Nostr Connect ondersteuning&lt;/a> van vorige week, heeft Primal volledige lokale ondertekeningscapaciteiten geïmplementeerd via acht samengevoegde pull requests. De implementatie omvat een complete &lt;code>LocalSignerContentProvider&lt;/code> die ondertekeningsbewerkingen blootstelt aan andere Android-apps via Android&amp;rsquo;s content provider interface, volgens de &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> specificatie. De architectuur scheidt verantwoordelijkheden netjes: &lt;code>SignerActivity&lt;/code> handelt gebruikersgerichte goedkeuringsflows af, &lt;code>LocalSignerService&lt;/code> beheert achtergrondbewerkingen, en een nieuw permissiesysteem laat gebruikers bepalen welke apps handtekeningen kunnen aanvragen. Dit maakt Primal een levensvatbaar alternatief voor Amber voor Android-gebruikers die hun sleutels in één app willen houden terwijl ze anderen gebruiken voor verschillende Nostr-ervaringen.&lt;/p>
&lt;p>&lt;strong>Shopstr Zapsnags: Flash-verkopen via Lightning&lt;/strong> - De Nostr-native marktplaats introduceerde &lt;a href="https://github.com/shopstr-eng/shopstr/pull/211">&amp;ldquo;Zapsnags&amp;rdquo;&lt;/a>, een flash-verkoop functie waarmee kopers items direct vanuit hun sociale feed kunnen kopen met een enkele zap. De implementatie filtert kind 1 nota&amp;rsquo;s getagd met &lt;code>#shopstr-zapsnag&lt;/code> en rendert ze als productkaarten met een &amp;ldquo;Zap om te Kopen&amp;rdquo; knop in plaats van de standaard winkelwagen-flow. Wanneer een koper zapt, genereert het systeem een betalingsverzoek met behulp van &lt;a href="https://nostrcompass.org/nl/topics/nip-57/">NIP-57&lt;/a>, pollt voor de kind 9735 zap-ontvangst om betaling te bevestigen, en versleutelt vervolgens verzendinformatie met &lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a> gift wrapping voordat het privé naar de verkoper wordt gestuurd. De functie slaat kopergegevens lokaal op voor herhaalaankopen en bevat een handelarendashboard voor het maken van flash-verkoopvermeldingen. Het is een slimme combinatie van sociale, betalings- en privacy-primitieven die laat zien hoe Nostr&amp;rsquo;s componeerbare ontwerp nieuwe handelspatronen mogelijk maakt.&lt;/p>
&lt;p>&lt;strong>Mostro Introduceert Ontwikkelingsfonds&lt;/strong> - De &lt;a href="https://nostrcompass.org/nl/topics/nip-69/">NIP-69&lt;/a> P2P Bitcoin-handelsplatform &lt;a href="https://github.com/MostroP2P/mostro/pull/555">implementeerde configureerbare ontwikkelingskosten&lt;/a> om duurzaam onderhoud te ondersteunen. Operators kunnen &lt;code>dev_fee_percentage&lt;/code> instellen tussen 10-100% van de Mostro-handelskosten (standaard 30%), die automatisch worden doorgestuurd naar een ontwikkelingsfonds bij elke succesvolle transactie. De implementatie voegt drie databasekolommen toe (&lt;code>dev_fee&lt;/code>, &lt;code>dev_fee_paid&lt;/code>, &lt;code>dev_fee_payment_hash&lt;/code>) om bijdragen bij te houden en valideert het percentage bij daemon-opstart. Technische documentatie in &lt;a href="https://github.com/MostroP2P/mostro/blob/main/docs/DEV_FEE.md">&lt;code>docs/DEV_FEE.md&lt;/code>&lt;/a> legt het systeem uit. Dit opt-in model laat operators lopende ontwikkeling ondersteunen met behoud van volledige transparantie over kostenallocatie.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Nieuwe NIPs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-a4/">NIP-A4&lt;/a> (Public Messages, kind 24)&lt;/strong> - Een nieuwe kind voor notificatiescherm-berichten ontworpen voor brede client-ondersteuning (&lt;a href="https://github.com/nostr-protocol/nips/pull/1988">#1988&lt;/a>). In tegenstelling tot threaded gesprekken hebben deze berichten geen concept van chatgeschiedenis of berichtketens. Ze gebruiken &lt;code>q&lt;/code> tags (citaten) in plaats van &lt;code>e&lt;/code> tags om threading-complicaties te vermijden, waardoor ze ideaal zijn voor eenvoudige openbare notificaties die in de notificatiefeed van een ontvanger verschijnen zonder gespreksstatus te creëren.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Significante Wijzigingen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-29/">NIP-29&lt;/a>&lt;/strong> - Grote verduidelijking van groepssemantiek (&lt;a href="https://github.com/nostr-protocol/nips/pull/2106">#2106&lt;/a>). De &lt;code>closed&lt;/code> tag betekent nu &amp;ldquo;kan niet schrijven&amp;rdquo; (alleen-lezen voor niet-leden), losgekoppeld van join-mechanica. Een nieuwe &lt;code>hidden&lt;/code> tag voorkomt dat relays metadata of ledenevents serveren aan niet-leden, waardoor echt privégroepen mogelijk zijn die niet ontdekt kunnen worden zonder out-of-band uitnodiging. De &lt;code>private&lt;/code> tag controleert berichtzichtbaarheid terwijl publieke metadata nog steeds mogelijk is voor ontdekking.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a>&lt;/strong> - Kind 30006 toegevoegd voor gecureerde fotosets (&lt;a href="https://github.com/nostr-protocol/nips/pull/2170">#2170&lt;/a>), volgens het patroon van 30004 (artikelen) en 30005 (video&amp;rsquo;s). Al geïmplementeerd in Nostria.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>&lt;/strong> - Verduidelijkte verbindingsinitiatie voor Android signers (&lt;a href="https://github.com/nostr-protocol/nips/pull/2166">#2166&lt;/a>). Ontwikkelaars die multi-gebruiker sessies implementeerden misbruikten &lt;code>get_public_key&lt;/code> door het aan te roepen vanuit achtergrondprocessen. De bijgewerkte specificatie raadt aan om het slechts eenmaal aan te roepen tijdens initiële verbindingsopstelling, waarmee een veelvoorkomende implementatiefout wordt voorkomen.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-02-and-nip-10">NIP Diepgaand: NIP-02 en NIP-10&lt;/h2>
&lt;p>Deze week behandelen we twee NIPs die essentieel zijn voor sociale functionaliteit: hoe clients weten wie je volgt en hoe gesprekken worden gethreadd.&lt;/p>
&lt;h3 id="nip-02nltopicsnip-02-volglijst">&lt;a href="https://nostrcompass.org/nl/topics/nip-02/">NIP-02&lt;/a>: Volglijst&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/02.md">NIP-02&lt;/a> definieert kind 3 events, die je volglijst opslaan. Dit eenvoudige mechanisme voedt de sociale graaf die tijdlijnen mogelijk maakt.&lt;/p>
&lt;p>&lt;strong>Structuur:&lt;/strong> Een kind 3 event bevat &lt;code>p&lt;/code> tags die gevolgde pubkeys opsommen:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;d7a8f...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a3b9c...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1734912000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">3&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;91cf9..af5f&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://alicerelay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;alice&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;14aeb..8dad&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://bobrelay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;bob&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;612ae..982b&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;e4f8a...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Elke &lt;code>p&lt;/code> tag heeft vier posities: de tagnaam, de gevolgde pubkey (hex), een optionele relay URL-hint, en een optionele &amp;ldquo;petname&amp;rdquo; (een lokale bijnaam). De relay-hint vertelt andere clients waar ze de events van die gebruiker kunnen vinden. De petname laat je gedenkwaardige namen toewijzen aan contacten zonder te vertrouwen op hun zelf-gedeclareerde weergavenamen.&lt;/p>
&lt;p>&lt;strong>Vervangbaar gedrag:&lt;/strong> Kind 3 valt in het vervangbare bereik (0, 3, 10000-19999), dus relays houden alleen de laatste versie per pubkey bij. Wanneer je iemand nieuws volgt, publiceert je client een volledig nieuw kind 3 dat al je volgers bevat plus de nieuwe. Dit betekent dat volglijsten elke keer compleet moeten zijn; je kunt geen incrementele updates publiceren.&lt;/p>
&lt;p>&lt;strong>Tijdlijnen bouwen:&lt;/strong> Om een home-feed te construeren, haalt de client het kind 3 van de gebruiker op, extraheert alle &lt;code>p&lt;/code> tag pubkeys, en abonneert zich dan op kind 1 events van die auteurs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>[&lt;span style="color:#e6db74">&amp;#34;REQ&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;home&amp;#34;&lt;/span>, {&lt;span style="color:#f92672">&amp;#34;kinds&amp;#34;&lt;/span>: [&lt;span style="color:#ae81ff">1&lt;/span>], &lt;span style="color:#f92672">&amp;#34;authors&amp;#34;&lt;/span>: [&lt;span style="color:#e6db74">&amp;#34;91cf9...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;14aeb...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;612ae...&amp;#34;&lt;/span>], &lt;span style="color:#f92672">&amp;#34;limit&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">50&lt;/span>}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De relay retourneert overeenkomende nota&amp;rsquo;s en de client rendert ze. De relay-hints in kind 3 helpen clients te weten welke relays te bevragen voor elke gevolgde gebruiker.&lt;/p>
&lt;p>&lt;strong>Petnames en identiteit:&lt;/strong> Het petname-veld maakt een gedecentraliseerd naamgevingsschema mogelijk. In plaats van te vertrouwen op welke naam een gebruiker ook claimt in hun profiel, kun je je eigen label toewijzen. Een client zou kunnen weergeven &amp;ldquo;alice (Mijn Zus)&amp;rdquo; waar &amp;ldquo;alice&amp;rdquo; komt van haar kind 0 profiel en &amp;ldquo;Mijn Zus&amp;rdquo; is je petname. Dit biedt context die globale gebruikersnamen niet kunnen bieden.&lt;/p>
&lt;p>&lt;strong>Praktische overwegingen:&lt;/strong> Omdat kind 3 events vervangbaar zijn en compleet moeten zijn, moeten clients onbekende tags behouden bij het updaten. Als een andere client tags heeft toegevoegd die jouw client niet begrijpt, zou blind overschrijven die data verliezen. Voeg nieuwe volgers toe in plaats van helemaal opnieuw te bouwen.&lt;/p>
&lt;h3 id="nip-10nltopicsnip-10-tekstnota-threading">&lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10&lt;/a>: Tekstnota Threading&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/10.md">NIP-10&lt;/a> specificeert hoe kind 1 nota&amp;rsquo;s naar elkaar verwijzen om reply-threads te vormen. Dit begrijpen is essentieel voor het bouwen van gespreksweergaven.&lt;/p>
&lt;p>&lt;strong>Het probleem:&lt;/strong> Wanneer iemand reageert op een nota, moeten clients weten: Waarop is dit een reactie? Wat is de root van het gesprek? Wie moet genotificeerd worden? NIP-10 beantwoordt deze vragen via &lt;code>e&lt;/code> tags (event-referenties) en &lt;code>p&lt;/code> tags (pubkey-vermeldingen).&lt;/p>
&lt;p>&lt;strong>Gemarkeerde tags (voorkeur):&lt;/strong> Moderne clients gebruiken expliciete markers in &lt;code>e&lt;/code> tags:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;f9c2e...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;a3b9c...&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1734912345&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;abc123...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;root&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;def456...&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;reply&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;91cf9...&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;14aeb...&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Goed punt! Ik ben het ermee eens.&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;b7d3f...&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>root&lt;/code> marker wijst naar de originele nota die de thread startte. De &lt;code>reply&lt;/code> marker wijst naar de specifieke nota die wordt beantwoord. Als je direct reageert op de root, gebruik alleen &lt;code>root&lt;/code> (geen &lt;code>reply&lt;/code> tag nodig). Het onderscheid is belangrijk voor rendering: de &lt;code>reply&lt;/code> bepaalt inspringing in een threadweergave, terwijl &lt;code>root&lt;/code> alle replies groepeert.&lt;/p>
&lt;p>&lt;strong>Threading-regels:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Directe reply naar root: Eén &lt;code>e&lt;/code> tag met &lt;code>root&lt;/code> marker&lt;/li>
&lt;li>Reply op een reply: Twee &lt;code>e&lt;/code> tags, één &lt;code>root&lt;/code> en één &lt;code>reply&lt;/code>&lt;/li>
&lt;li>De &lt;code>root&lt;/code> blijft constant door de thread; &lt;code>reply&lt;/code> verandert op basis van waarop je reageert&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Pubkey tags voor notificaties:&lt;/strong> Neem &lt;code>p&lt;/code> tags op voor iedereen die genotificeerd moet worden. Minimaal, tag de auteur van de nota waarop je reageert. Conventie is om ook alle &lt;code>p&lt;/code> tags van het parent-event op te nemen (zodat iedereen in het gesprek op de hoogte blijft), plus alle gebruikers die je @vermeldt in je content.&lt;/p>
&lt;p>&lt;strong>Relay-hints:&lt;/strong> De derde positie in &lt;code>e&lt;/code> en &lt;code>p&lt;/code> tags kan een relay URL bevatten waar dat event of de content van die gebruiker gevonden kan worden. Dit helpt clients de gerefereerde content op te halen zelfs als ze niet verbonden zijn met de originele relay.&lt;/p>
&lt;p>&lt;strong>Verouderde positionele tags:&lt;/strong> Vroege Nostr-implementaties leidden betekenis af uit tagpositie in plaats van markers: eerste &lt;code>e&lt;/code> tag was root, laatste was reply, middelste waren vermeldingen. Deze aanpak is verouderd omdat het ambiguïteit creëert. Als je &lt;code>e&lt;/code> tags ziet zonder markers, zijn ze waarschijnlijk van oudere clients. Moderne implementaties moeten altijd expliciete markers gebruiken.&lt;/p>
&lt;p>&lt;strong>Threadweergaven bouwen:&lt;/strong> Om een thread weer te geven, haal het root-event op, vraag dan alle events op met een &lt;code>e&lt;/code> tag die naar die root verwijst:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>[&lt;span style="color:#e6db74">&amp;#34;REQ&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;thread&amp;#34;&lt;/span>, {&lt;span style="color:#f92672">&amp;#34;kinds&amp;#34;&lt;/span>: [&lt;span style="color:#ae81ff">1&lt;/span>], &lt;span style="color:#f92672">&amp;#34;#e&amp;#34;&lt;/span>: [&lt;span style="color:#e6db74">&amp;#34;&amp;lt;root-event-id&amp;gt;&amp;#34;&lt;/span>]}]
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Sorteer resultaten op &lt;code>created_at&lt;/code> en gebruik &lt;code>reply&lt;/code> markers om de boomstructuur te bouwen. Events waarvan de &lt;code>reply&lt;/code> naar de root wijst zijn top-level replies; events waarvan de &lt;code>reply&lt;/code> naar een andere reply wijst zijn geneste antwoorden.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Zeus v0.12.0&lt;/strong> - Voortbouwend op de &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/#zeus-lightning-wallet">NWC parallelle betalingen ondersteuning&lt;/a> van vorige week, levert de &lt;a href="https://github.com/ZeusLN/zeus/releases/tag/v0.12.0">grote release&lt;/a> van de Lightning wallet een complete &lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect service met aangepaste relay-ondersteuning en budgettracking. Een &lt;a href="https://github.com/ZeusLN/zeus/pull/3455">budget-herlaad fix&lt;/a> zorgt ervoor dat verbindingen huidige limieten gebruiken. &lt;a href="https://github.com/ZeusLN/zeus/pull/3460">Lightning adres kopiëren&lt;/a> bevat niet langer het &lt;code>lightning:&lt;/code> prefix, wat plakproblemen in Nostr-profielvelden repareert.&lt;/p>
&lt;p>&lt;strong>Amber v4.0.6&lt;/strong> - De Android &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a> signer &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.0.6">voegt prestatiecaching toe&lt;/a> aan ondertekeningsbewerkingen en verbetert foutafhandeling bij het decrypten van misvormde content. Verbindingsbetrouwbaarheid verbeterd met retry-logica voor relay connect events, en verschillende crashfixes pakken edge cases aan rond ongeldige &lt;code>nostrconnect://&lt;/code> URI&amp;rsquo;s en permissiescherm-interacties.&lt;/p>
&lt;p>&lt;strong>nak v0.17.3&lt;/strong> - De nieuwste release van de commandoregel Nostr-tool &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.17.3">beperkt LMDB builds tot Linux&lt;/a>, wat cross-platform compilatieproblemen repareert.&lt;/p>
&lt;p>&lt;strong>Aegis v0.3.4&lt;/strong> - De cross-platform Nostr signer &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.4">voegt ondersteuning toe&lt;/a> voor het &lt;code>nostrsigner:&lt;/code> URI-schema gedefinieerd in &lt;a href="https://nostrcompass.org/nl/topics/nip-55/">NIP-55&lt;/a>, overeenkomend met Amber&amp;rsquo;s verbindingsflow. Lokale relay-data kan nu worden geïmporteerd en geëxporteerd voor backup, en de release bevat bugfixes voor relay socket-fouten en UI-verbeteringen aan de lokale relay-interface.&lt;/p>
&lt;h2 id="notable-code-and-documentation-changes">Noemenswaardige code- en documentatiewijzigingen&lt;/h2>
&lt;p>&lt;em>Dit zijn open pull requests en werk in vroeg stadium, perfect om feedback te krijgen voordat ze worden samengevoegd. Als iets je aandacht trekt, overweeg om te reviewen of te reageren!&lt;/em>&lt;/p>
&lt;h3 id="damus">Damus (iOS)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3469">Mute-lijst persistentie&lt;/a> repareert een probleem waarbij mute-lijsten werden gewist bij koude start. De fix voegt guards toe om onbedoelde overschrijvingen tijdens app-initialisatie te voorkomen. &lt;a href="https://github.com/damus-io/damus/pull/3457">Profiel stream timing&lt;/a> elimineert een vertraging van ~1 seconde voordat gecachte profielen verschenen. Voorheen wachtten weergaven op abonnementstaken om te herstarten; nu levert &lt;code>streamProfile()&lt;/code> onmiddellijk gecachte data van NostrDB, waardoor het venster verdwijnt waarin afgekorte pubkeys en placeholder-afbeeldingen werden getoond.&lt;/p>
&lt;h3 id="white-noise">White Noise (Versleutelde Berichten)&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/919">Real-time berichtenstreaming&lt;/a> vervangt het vorige polling-mechanisme met een stream-gebaseerde architectuur. De nieuwe &lt;code>ChatStreamNotifier&lt;/code> consumeert de berichtenstream van de Rust SDK direct, handhaaft chronologische volgorde en handelt incrementele updates efficiënt af. Testen toonden significante verbetering in responsiviteit. Een &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/921">chat-lijst API&lt;/a> voegt &lt;code>get_chat_list&lt;/code> toe voor het ophalen van gesprekssamenvattingen, en een &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/905">stabiele sorteer-fix&lt;/a> voorkomt berichtherschikkingslussen door &lt;code>createdAt&lt;/code> met bericht-ID als tiebreaker te gebruiken.&lt;/p>
&lt;h3 id="ndk">NDK (Bibliotheek)&lt;/h3>
&lt;p>Twee pull requests leverden dramatische cache-prestatieverbeteringen. &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/371">PR #371&lt;/a> repareerde een bug waarbij events gelezen uit SQLite-cache onmiddellijk terug werden geschreven, wat 100% duplicate writes veroorzaakte bij app-boot. De fix voegt een &lt;code>fromCache&lt;/code> guard toe en implementeert O(1) duplicaatcontrole via een in-memory Set. Voor kleine resultaatsets (&amp;lt;100 events) vervangt directe JSON-overdracht binaire encoding-overhead. &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/372">PR #372&lt;/a> verwijderde onnodige &lt;code>seenEvent&lt;/code> calls voor gecachte events. De LRU cache lookup kostte 0.24-0.64ms per event; voor 5.700 gecachte events voegde dit ~1.4 seconden overhead toe. Resultaat: cache-queries daalden van ~3.690ms naar ~22ms (162x sneller).&lt;/p>
&lt;h3 id="rust-nostr">rust-nostr (Bibliotheek)&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1176">Multi-filter REQ ondersteuning&lt;/a> werd hersteld na verwijdering in een eerdere refactor. De SDK accepteert weer &lt;code>Vec&amp;lt;Filter&amp;gt;&lt;/code> voor abonnementsverzoeken, wat efficiënte queries mogelijk maakt die meerdere filtervoorwaarden combineren met OR-logica. &lt;a href="https://github.com/rust-nostr/nostr/pull/1156">Relay-herkomst&lt;/a> werd toegevoegd aan &lt;code>stream_events*&lt;/code> methodes, zodat elk gestreamd event nu de &lt;code>RelayUrl&lt;/code> bevat waar het vandaan kwam en een &lt;code>Result&lt;/code> die succes of falen aangeeft, nuttig voor het volgen van relay-betrouwbaarheid en debugging van verbindingsproblemen. Een &lt;a href="https://github.com/rust-nostr/nostr/pull/1179">beveiligingsfix&lt;/a> verwijderde de &lt;code>url-fork&lt;/code> dependency na RUSTSEC-2024-0421, wat een bekende kwetsbaarheid elimineert.&lt;/p>
&lt;h3 id="applesauce">Applesauce (Bibliotheek)&lt;/h3>
&lt;p>De TypeScript-bibliotheek die &lt;a href="https://github.com/hzrd149/nostrudel">noStrudel&lt;/a> aandrijft zag significante ontwikkeling deze week. Nieuwe modellen omvatten een &lt;a href="https://github.com/hzrd149/applesauce">reactiesysteem&lt;/a> en gebruikersgroepen casting. Wallet-functionaliteit breidde uit met NIP-60 ondersteuning, een verzend-tab en verbeterde token-recovery tools. Een nieuwe &lt;code>user.directMessageRelays$&lt;/code> property onthult DM relay-configuratie. Alle acties werden gerefactored om async interfaces te gebruiken (async generators verwijderd), en bugfixes pakten versleutelde content-herstel en tijd-gebaseerde event-filter edge cases aan.&lt;/p>
&lt;h3 id="tenex">Tenex (AI Agents)&lt;/h3>
&lt;p>Het &lt;a href="https://github.com/tenex-chat/tenex">multi-agent coördinatiesysteem&lt;/a> gebouwd op Nostr introduceerde RAL (Request-Action-Lifecycle) architectuur in &lt;a href="https://github.com/pablof7z/tenex/pull/38">vijf samengevoegde PRs&lt;/a>. RAL stelt agents in staat om te pauzeren bij het delegeren van taken en te hervatten wanneer resultaten binnenkomen, met gespreks-gebaseerde state-persistentie. Delegatie-tools (&lt;code>delegate&lt;/code>, &lt;code>ask&lt;/code>, &lt;code>delegate_followup&lt;/code>, &lt;code>delegate_external&lt;/code>) publiceren nu Nostr events en retourneren stop-signalen in plaats van te blokkeren. De refactor omvat AI SDK v6 migratie, VCR-testinfrastructuur voor deterministische LLM-interactie recording, en multimodale afbeeldingsondersteuning.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets? Heb je nieuws te delen? Wil je dat we jouw project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item><item><title>Nostr Kompas #1</title><link>https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/</guid><description>&lt;p>Welkom bij Nostr Kompas, een wekelijkse nieuwsbrief gewijd aan het Nostr-protocol ecosysteem. Onze missie is om ontwikkelaars, relay-operators en bouwers op de hoogte te houden van belangrijke ontwikkelingen in het netwerk. We documenteren protocol-evolutie met technische nauwkeurigheid, neutraliteit en diepgang, en behandelen alles van NIP-voorstellen tot client-releases tot implementatie best practices.&lt;/p>
&lt;p>Nostr Kompas is geïnspireerd door &lt;a href="https://bitcoinops.org/">Bitcoin Optech&lt;/a>, wiens jarenlange toegewijde werk aan het bevorderen van Bitcoin technische kennis de standaard heeft gezet voor protocol-gerichte nieuwsbrieven. We zijn dankbaar voor hun voorbeeld en hopen dezelfde nauwkeurigheid naar het Nostr-ecosysteem te brengen.&lt;/p></description><content:encoded>&lt;p>Welkom bij Nostr Kompas, een wekelijkse nieuwsbrief gewijd aan het Nostr-protocol ecosysteem. Onze missie is om ontwikkelaars, relay-operators en bouwers op de hoogte te houden van belangrijke ontwikkelingen in het netwerk. We documenteren protocol-evolutie met technische nauwkeurigheid, neutraliteit en diepgang, en behandelen alles van NIP-voorstellen tot client-releases tot implementatie best practices.&lt;/p>
&lt;p>Nostr Kompas is geïnspireerd door &lt;a href="https://bitcoinops.org/">Bitcoin Optech&lt;/a>, wiens jarenlange toegewijde werk aan het bevorderen van Bitcoin technische kennis de standaard heeft gezet voor protocol-gerichte nieuwsbrieven. We zijn dankbaar voor hun voorbeeld en hopen dezelfde nauwkeurigheid naar het Nostr-ecosysteem te brengen.&lt;/p>
&lt;p>Deze inaugurele editie introduceert ons wekelijkse format. Elke woensdag brengen we je NIP-updates, release notes, ontwikkelingshoogtepunten en technische begeleiding. Of je nu een client bouwt, een relay beheert of bijdraagt aan het protocol, Nostr Kompas wil je betrouwbare bron zijn voor wat er gebeurt in het ecosysteem.&lt;/p>
&lt;h2 id="wat-is-nostr">Wat is Nostr?&lt;/h2>
&lt;p>&lt;em>Aangezien dit onze eerste editie is, beginnen we met een introductie over hoe Nostr werkt. Vaste lezers kunnen &lt;a href="https://nostrcompass.org/nl/newsletters/2025-12-17-newsletter/#news">vooruit springen&lt;/a>.&lt;/em>&lt;/p>
&lt;p>Nostr (Notes and Other Stuff Transmitted by Relays) is een gedecentraliseerd protocol voor sociale netwerken en berichtenverkeer. In tegenstelling tot traditionele platforms heeft Nostr geen centrale server, geen bedrijf dat het controleert en geen enkel punt van falen. Gebruikers bezitten hun identiteit via cryptografische sleutelparen, en content stroomt via onafhankelijke relay-servers die iedereen kan draaien.&lt;/p>
&lt;p>&lt;strong>Hoe het werkt:&lt;/strong> Gebruikers genereren een sleutelpaar (een privésleutel genaamd nsec en publieke sleutel genaamd npub). De privésleutel ondertekent berichten die &amp;ldquo;events&amp;rdquo; worden genoemd, en de publieke sleutel dient als je identiteit. Events worden naar relays gestuurd, die ze opslaan en doorsturen naar andere gebruikers. Omdat je je sleutels beheert, kun je wisselen tussen clients of relays zonder je identiteit of volgers te verliezen.&lt;/p>
&lt;p>&lt;strong>Waarom het belangrijk is:&lt;/strong> Nostr biedt censuurbestendigheid door relay-diversiteit (als één relay je bant, kunnen anderen nog steeds je content serveren), portabiliteit (je identiteit werkt in elke Nostr-app) en interoperabiliteit (alle Nostr-clients spreken hetzelfde protocol). Er is geen algoritme dat bepaalt wat je ziet, geen advertenties en geen dataverzameling.&lt;/p>
&lt;p>&lt;strong>Het ecosysteem vandaag:&lt;/strong> Nostr ondersteunt microblogging (zoals Twitter/X), long-form content (zoals Medium), directe berichten, marktplaatsen, livestreaming en meer. Clients omvatten Damus (iOS), Amethyst (Android), Primal, Coracle en tientallen anderen. Lightning Network-integratie maakt directe betalingen mogelijk via &amp;ldquo;zaps.&amp;rdquo; Het protocol blijft evolueren via NIPs (Nostr Implementation Possibilities), community-gedreven specificaties die functionaliteit uitbreiden.&lt;/p>
&lt;h2 id="news">Nieuws&lt;/h2>
&lt;p>&lt;strong>NIP-BE Samengevoegd: Bluetooth Low Energy Ondersteuning&lt;/strong> - Een belangrijke nieuwe mogelijkheid &lt;a href="https://github.com/nostr-protocol/nips/pull/1979">is aan het protocol toegevoegd&lt;/a>. &lt;a href="https://nostrcompass.org/nl/topics/nip-be/">NIP-BE&lt;/a> specificeert hoe Nostr-applicaties kunnen communiceren en synchroniseren via Bluetooth Low Energy. Dit maakt offline-capabele apps mogelijk die data kunnen synchroniseren tussen apparaten in de buurt zonder internetverbinding. De specificatie past WebSocket relay-patronen aan voor de beperkingen van BLE, met behulp van DEFLATE-compressie en gesegmenteerde berichten om de kleine MTU-groottes van BLE (20-256 bytes) te hanteren. Apparaten onderhandelen rollen op basis van UUID-vergelijking, waarbij de hogere UUID de GATT-server wordt.&lt;/p>
&lt;p>&lt;strong>MIP-05: Privacy-behoudende Push Notificaties&lt;/strong> - Het &lt;a href="https://nostrcompass.org/nl/topics/marmot/">Marmot Protocol&lt;/a> publiceerde &lt;a href="https://nostrcompass.org/nl/topics/mip-05/">MIP-05&lt;/a> (&lt;a href="https://github.com/marmot-protocol/mips/blob/main/mip-05.md">specificatie&lt;/a>), een specificatie voor push notificaties die privacy behouden. Traditionele push-systemen vereisen dat servers apparaat-tokens en gebruikersidentiteiten kennen; MIP-05 lost dit op door apparaat-tokens te versleutelen met ECDH+HKDF en ChaCha20-Poly1305, met behulp van tijdelijke sleutels om correlatie te voorkomen. Een drie-event gossip-protocol (kinds 447-449) synchroniseert versleutelde tokens over groepsleden, en notificaties gebruiken &lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a> gift wrapping met decoy-tokens om groepsgroottes te verbergen. Dit stelt WhiteNoise en andere Marmot-clients in staat om tijdige notificaties te leveren zonder de privacy van gebruikers te compromitteren.&lt;/p>
&lt;p>&lt;strong>Blossom BUD-10: Nieuw URI-schema&lt;/strong> - Het &lt;a href="https://nostrcompass.org/nl/topics/blossom/">Blossom&lt;/a> mediaprotocol krijgt een aangepast URI-schema via &lt;a href="https://nostrcompass.org/nl/topics/bud-10/">BUD-10&lt;/a> (&lt;a href="https://github.com/hzrd149/blossom/blob/master/buds/10.md">specificatie&lt;/a>). Het nieuwe &lt;code>blossom:&amp;lt;sha256&amp;gt;.ext&lt;/code> formaat bevat bestandshash, extensie, grootte, meerdere serverhints en auteur-pubkeys voor &lt;a href="https://nostrcompass.org/nl/topics/bud-03/">BUD-03&lt;/a> serverontdekking. Dit maakt blob-links veerkrachtiger dan statische HTTP-URL&amp;rsquo;s door automatische fallback over servers mogelijk te maken.&lt;/p>
&lt;p>&lt;strong>Shopstr Marktplaats Updates&lt;/strong> - De Nostr-native marktplaats &lt;a href="https://github.com/shopstr-eng/shopstr/pull/202">implementeerde Nostr Wallet Connect&lt;/a> (&lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a>) voor betalingen, &lt;a href="https://github.com/shopstr-eng/shopstr/pull/203">voegde vermelding-verloopdatum toe&lt;/a> met behulp van &lt;a href="https://nostrcompass.org/nl/topics/nip-40/">NIP-40&lt;/a>, en introduceerde &lt;a href="https://github.com/shopstr-eng/shopstr/pull/210">kortingscodes&lt;/a> voor verkopers.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Recente wijzigingen in de &lt;a href="https://github.com/nostr-protocol/nips">NIPs repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Nieuwe NIPs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-be/">NIP-BE&lt;/a>&lt;/strong> - Bluetooth Low Energy messaging en apparaatsynchronisatie (&lt;a href="https://github.com/nostr-protocol/nips/pull/1979">#1979&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-63/">NIP-63&lt;/a>&lt;/strong> - Paywall/Premium Content standaard voor het afhandelen van afgesloten content binnen het protocol (&lt;a href="https://github.com/nostr-protocol/nips/pull/2156">#2156&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Significante Wijzigingen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-24/">NIP-24&lt;/a>&lt;/strong> - Optionele &lt;code>languages&lt;/code> array toegevoegd aan Kind 0 gebruikersmetadata, waarmee gebruikers meerdere voorkeurstalen kunnen specificeren met IETF BCP 47 tags voor verbeterde contentontdekking en relay-matching (&lt;a href="https://github.com/nostr-protocol/nips/pull/2159">#2159&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-69/">NIP-69&lt;/a>&lt;/strong> - Ondersteuning voor orderverloopdatum toegevoegd voor P2P-handel met &lt;code>expires_at&lt;/code> en &lt;code>expiration&lt;/code> tags (&lt;a href="https://github.com/nostr-protocol/nips/pull/2118">#2118&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-59/">NIP-59&lt;/a>&lt;/strong> - Gift wrap events kunnen nu worden verwijderd via NIP-09/NIP-62 verzoeken (&lt;a href="https://github.com/nostr-protocol/nips/pull/2131">#2131&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-51/">NIP-51&lt;/a>&lt;/strong> - Hashtag en URL tags verwijderd uit generieke bladwijzers; hashtags gebruiken nu kind 30015 (&lt;a href="https://github.com/nostr-protocol/nips/pull/2133">#2133&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-18/">NIP-18&lt;/a>&lt;/strong> - Verbeterde generieke reposts voor vervangbare events met &lt;code>a&lt;/code> tag ondersteuning (&lt;a href="https://github.com/nostr-protocol/nips/pull/2132">#2132&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-17/">NIP-17&lt;/a>&lt;/strong> - Verfijnde bewoording en kind 7 reactie-ondersteuning toegevoegd aan DMs (&lt;a href="https://github.com/nostr-protocol/nips/pull/2098">#2098&lt;/a>)&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/nl/topics/nip-11/">NIP-11&lt;/a>&lt;/strong> - &lt;code>self&lt;/code> veld toegevoegd voor relay publieke sleutel identificatie (&lt;a href="https://github.com/nostr-protocol/nips/pull/1764">#1764&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-01-and-nip-19">NIP Diepgaand: NIP-01 en NIP-19&lt;/h2>
&lt;p>Voor deze inaugurele editie behandelen we twee fundamentele NIPs die elke Nostr-ontwikkelaar moet begrijpen. Zie onze onderwerpspagina&amp;rsquo;s voor &lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a> en &lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a>.&lt;/p>
&lt;h3 id="nip-01-basisprotocol">NIP-01: Basisprotocol&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-01/">NIP-01&lt;/a> definieert het kernprotocol. Alles in Nostr bouwt voort op deze specificatie.&lt;/p>
&lt;p>&lt;strong>Events&lt;/strong> zijn het enige objecttype. Elk event bevat:&lt;/p>
&lt;ul>
&lt;li>&lt;code>id&lt;/code>: SHA256-hash van het geserialiseerde event (de unieke identifier van het event)&lt;/li>
&lt;li>&lt;code>pubkey&lt;/code>: De publieke sleutel van de maker (32-byte hex, secp256k1)&lt;/li>
&lt;li>&lt;code>created_at&lt;/code>: Unix-tijdstempel&lt;/li>
&lt;li>&lt;code>kind&lt;/code>: Integer die het eventtype categoriseert&lt;/li>
&lt;li>&lt;code>tags&lt;/code>: Array van arrays voor metadata&lt;/li>
&lt;li>&lt;code>content&lt;/code>: De payload (interpretatie hangt af van kind)&lt;/li>
&lt;li>&lt;code>sig&lt;/code>: Schnorr-handtekening die bewijst dat de pubkey dit event heeft gemaakt&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Kinds&lt;/strong> bepalen hoe relays events opslaan:&lt;/p>
&lt;ul>
&lt;li>Reguliere events (1, 2, 4-44, 1000-9999): Normaal opgeslagen, alle versies behouden&lt;/li>
&lt;li>Vervangbare events (0, 3, 10000-19999): Alleen de laatste per pubkey wordt behouden&lt;/li>
&lt;li>Vluchtige events (20000-29999): Niet opgeslagen, alleen doorgestuurd naar abonnees&lt;/li>
&lt;li>Adresseerbare events (30000-39999): Laatste per pubkey + kind + &lt;code>d&lt;/code> tag combinatie&lt;/li>
&lt;/ul>
&lt;p>Kind 0 is gebruikersmetadata (profiel), kind 1 is een tekstnota (de basis post), kind 3 is de volglijst.&lt;/p>
&lt;p>&lt;strong>Kind 1: Tekstnota&amp;rsquo;s&lt;/strong> vormen het hart van sociaal Nostr. Een kind 1 event is een korte post, vergelijkbaar met een tweet. Het &lt;code>content&lt;/code> veld bevat de berichttekst (platte tekst, hoewel clients vaak markdown renderen). Tags maken reacties, vermeldingen en referenties mogelijk:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-json" data-lang="json">&lt;span style="display:flex;">&lt;span>{
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;id&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;32-byte-hex&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;pubkey&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;32-byte-hex&amp;gt;&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;created_at&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1734480000&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;kind&amp;#34;&lt;/span>: &lt;span style="color:#ae81ff">1&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;content&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;Hallo Nostr! Bekijk het werk van @jb55 aan Damus.&amp;#34;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;tags&amp;#34;&lt;/span>: [
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;e&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;replied-to-event-id&amp;gt;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;wss://relay.example.com&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;reply&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;p&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;jb55-pubkey&amp;gt;&amp;#34;&lt;/span>]
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#f92672">&amp;#34;sig&amp;#34;&lt;/span>: &lt;span style="color:#e6db74">&amp;#34;&amp;lt;64-byte-hex&amp;gt;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>De &lt;code>e&lt;/code> tag met &amp;ldquo;reply&amp;rdquo; markering geeft aan dat dit een reactie is (zie &lt;a href="https://nostrcompass.org/nl/topics/nip-10/">NIP-10&lt;/a> voor threading-conventies). De &lt;code>p&lt;/code> tag vermeldt een gebruiker, waardoor clients hen kunnen notificeren en hun naam kunnen renderen in plaats van de ruwe pubkey. Clients halen het kind 0 event van de vermelde gebruiker op om hun weergavenaam en foto te krijgen.&lt;/p>
&lt;p>Om een tijdlijn te bouwen, abonneert een client zich op kind 1 events van gevolgde pubkeys: &lt;code>[&amp;quot;REQ&amp;quot;, &amp;quot;feed&amp;quot;, {&amp;quot;kinds&amp;quot;: [1], &amp;quot;authors&amp;quot;: [&amp;quot;&amp;lt;pubkey1&amp;gt;&amp;quot;, &amp;quot;&amp;lt;pubkey2&amp;gt;&amp;quot;, ...], &amp;quot;limit&amp;quot;: 50}]&lt;/code>. De relay retourneert overeenkomende nota&amp;rsquo;s en de client rendert ze chronologisch.&lt;/p>
&lt;p>&lt;strong>Adresseerbare events&lt;/strong> (30000-39999) werken zoals vervangbare events maar gebruiken een &lt;code>d&lt;/code> tag als extra identifier. De relay behoudt alleen de laatste versie van elke pubkey + kind + d-tag combinatie. Dit maakt bewerkbare artikelen, productvermeldingen of elk geval mogelijk waar je meerdere vervangbare items per gebruiker nodig hebt.&lt;/p>
&lt;p>&lt;strong>Tags&lt;/strong> zijn arrays waarbij het eerste element de tagnaam is. Standaard enkelletter-tags (&lt;code>e&lt;/code>, &lt;code>p&lt;/code>, &lt;code>a&lt;/code>, &lt;code>d&lt;/code>, &lt;code>t&lt;/code>) worden geïndexeerd door relays voor efficiënt opvragen. Bijvoorbeeld, &lt;code>[&amp;quot;e&amp;quot;, &amp;quot;&amp;lt;event-id&amp;gt;&amp;quot;]&lt;/code> verwijst naar een ander event, &lt;code>[&amp;quot;p&amp;quot;, &amp;quot;&amp;lt;pubkey&amp;gt;&amp;quot;]&lt;/code> verwijst naar een gebruiker.&lt;/p>
&lt;p>&lt;strong>Client-Relay Communicatie&lt;/strong> gebruikt WebSocket-verbindingen met JSON-arrays als berichten. Het eerste element identificeert het berichttype.&lt;/p>
&lt;p>Van client naar relay:&lt;/p>
&lt;ul>
&lt;li>&lt;code>[&amp;quot;EVENT&amp;quot;, &amp;lt;event&amp;gt;]&lt;/code> - Publiceer een event naar de relay&lt;/li>
&lt;li>&lt;code>[&amp;quot;REQ&amp;quot;, &amp;lt;sub-id&amp;gt;, &amp;lt;filter&amp;gt;, ...]&lt;/code> - Abonneer op events die overeenkomen met de filter(s)&lt;/li>
&lt;li>&lt;code>[&amp;quot;CLOSE&amp;quot;, &amp;lt;sub-id&amp;gt;]&lt;/code> - Beëindig een abonnement&lt;/li>
&lt;/ul>
&lt;p>Van relay naar client:&lt;/p>
&lt;ul>
&lt;li>&lt;code>[&amp;quot;EVENT&amp;quot;, &amp;lt;sub-id&amp;gt;, &amp;lt;event&amp;gt;]&lt;/code> - Levert een event dat overeenkomt met je abonnement&lt;/li>
&lt;li>&lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;sub-id&amp;gt;]&lt;/code> - &amp;ldquo;Einde van opgeslagen events&amp;rdquo; - de relay heeft alle historische overeenkomsten verzonden en zal nu alleen nieuwe events sturen wanneer ze binnenkomen&lt;/li>
&lt;li>&lt;code>[&amp;quot;OK&amp;quot;, &amp;lt;event-id&amp;gt;, &amp;lt;true|false&amp;gt;, &amp;lt;message&amp;gt;]&lt;/code> - Bevestigt of een event is geaccepteerd of afgewezen (en waarom)&lt;/li>
&lt;li>&lt;code>[&amp;quot;NOTICE&amp;quot;, &amp;lt;message&amp;gt;]&lt;/code> - Leesbaar bericht van de relay&lt;/li>
&lt;/ul>
&lt;p>De abonnementsstroom: client stuurt &lt;code>REQ&lt;/code> met een abonnement-ID en filter, relay antwoordt met overeenkomende &lt;code>EVENT&lt;/code>-berichten, stuurt vervolgens &lt;code>EOSE&lt;/code> om aan te geven dat het de geschiedenis heeft ingehaald. Na &lt;code>EOSE&lt;/code> zijn eventuele nieuwe &lt;code>EVENT&lt;/code>-berichten realtime. Client stuurt &lt;code>CLOSE&lt;/code> wanneer klaar.&lt;/p>
&lt;p>&lt;strong>Filters&lt;/strong> specificeren welke events opgehaald moeten worden. Een filterobject kan bevatten: &lt;code>ids&lt;/code> (event-ID&amp;rsquo;s), &lt;code>authors&lt;/code> (pubkeys), &lt;code>kinds&lt;/code> (eventtypes), &lt;code>#e&lt;/code>/&lt;code>#p&lt;/code>/&lt;code>#t&lt;/code> (tagwaarden), &lt;code>since&lt;/code>/&lt;code>until&lt;/code> (tijdstempels), en &lt;code>limit&lt;/code> (max resultaten). Alle voorwaarden binnen één filter gebruiken AND-logica. Je kunt meerdere filters opnemen in een &lt;code>REQ&lt;/code>, en ze combineren met OR-logica - handig voor het ophalen van verschillende eventtypes in één abonnement.&lt;/p>
&lt;h3 id="nip-19-bech32-gecodeerde-identifiers">NIP-19: Bech32-gecodeerde Identifiers&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/nl/topics/nip-19/">NIP-19&lt;/a> definieert de mensvriendelijke formaten die je overal in Nostr ziet: npub, nsec, note en meer. Deze worden niet in het protocol zelf gebruikt (dat gebruikt hex), maar ze zijn essentieel voor delen en weergave.&lt;/p>
&lt;p>&lt;strong>Waarom bech32?&lt;/strong> Ruwe hex-sleutels zijn foutgevoelig om te kopiëren en visueel moeilijk te onderscheiden. Bech32-codering voegt een leesbaar voorvoegsel en checksum toe. Je kunt onmiddellijk een &lt;code>npub&lt;/code> (publieke sleutel) onderscheiden van een &lt;code>nsec&lt;/code> (privésleutel) of &lt;code>note&lt;/code> (event-ID).&lt;/p>
&lt;p>&lt;strong>Basisformaten&lt;/strong> coderen ruwe 32-byte waarden:&lt;/p>
&lt;ul>
&lt;li>&lt;code>npub&lt;/code> - Publieke sleutel (je identiteit, veilig om te delen)&lt;/li>
&lt;li>&lt;code>nsec&lt;/code> - Privésleutel (houd geheim, gebruikt voor ondertekenen)&lt;/li>
&lt;li>&lt;code>note&lt;/code> - Event-ID (verwijst naar een specifiek event)&lt;/li>
&lt;/ul>
&lt;p>Voorbeeld: De hex-pubkey &lt;code>3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d&lt;/code> wordt &lt;code>npub180cvv07tjdrrgpa0j7j7tmnyl2yr6yr7l8j4s3evf6u64th6gkwsyjh6w6&lt;/code>.&lt;/p>
&lt;p>&lt;strong>Deelbare identifiers&lt;/strong> bevatten metadata met TLV (Type-Length-Value) codering:&lt;/p>
&lt;ul>
&lt;li>&lt;code>nprofile&lt;/code> - Profiel met relay-hints (helpt clients de gebruiker te vinden)&lt;/li>
&lt;li>&lt;code>nevent&lt;/code> - Event met relay-hints, auteur-pubkey en kind&lt;/li>
&lt;li>&lt;code>naddr&lt;/code> - Adresseerbare event-referentie (pubkey + kind + d-tag + relays)&lt;/li>
&lt;/ul>
&lt;p>Deze lossen een belangrijk probleem op: als iemand een note-ID deelt, hoe weet je welke relay het heeft? Een &lt;code>nevent&lt;/code> bundelt de event-ID met voorgestelde relays, waardoor delen betrouwbaarder wordt.&lt;/p>
&lt;p>&lt;strong>Belangrijk:&lt;/strong> Gebruik nooit bech32-formaten in het protocol zelf. Events, relay-berichten en NIP-05 antwoorden moeten hex gebruiken. Bech32 is puur voor menselijke interfaces: weergave, kopiëren/plakken, QR-codes en URL&amp;rsquo;s.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Amber v4.0.4&lt;/strong> - De Android signer-app repareert een NullPointerException, verbetert prestaties op het activiteitenscherm en voegt vertalingen toe voor sommige event-kinds. De eerdere v4.0.3 release voegde een vernieuwde encryptie/decryptie-UI toe, account export/import, per-account relay-afhandeling, bunker ping-ondersteuning en crashrapportage. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.0.4">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Coracle 0.6.28&lt;/strong> - Bugfix-release voor de webclient. Opgeloste problemen met topic-feeds, afbeeldingsafhandeling wanneer imgproxy is uitgeschakeld, en linkificatie van niet-link highlight-bronnen. &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.28">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Flotilla v1.6.2&lt;/strong> - De Discord-achtige communities-client repareert modal-scrolling en stijlproblemen. Eerdere releases in deze cyclus voegden optionele badges en geluiden toe voor notificaties, verbeterde linkrendering, QR-code scanning voor uitnodigingslinks en gestroomlijnde wallet-setup. &lt;a href="https://github.com/coracle-social/flotilla/releases/tag/1.6.2">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>nak v0.17.2&lt;/strong> - De commandoregel Nostr-tool voegde een nieuw &lt;code>nip&lt;/code>-commando toe voor snelle NIP-referentie-opzoekingen, plus fixes voor git repository-afhandeling en stdin event-verwerking. &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.17.2">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>White Noise v0.2.1&lt;/strong> - Grote release voor de MLS-gebaseerde versleutelde berichten-app met het toevoegen van afbeeldingen delen via Blossom, achtergrondsynchronisatie, push-notificaties, 8-talige lokalisatie en groepslidmaatschapsbeheer. &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.2.1%2B14">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Amethyst v1.04.2&lt;/strong> - Feature-release met introductie van volglijsten/pakketten, nieuwe tijdlijnfilters, afbeeldingsgalerij en H.265 videocompressie (50% kleinere bestanden). Voltooide Kotlin Multiplatform-migratie. &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.04.2">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Mostro v0.15.5&lt;/strong> - P2P-handelsplatform update met NIP-69 orderverloopdatum-ondersteuning en verbeterde handelsgeschiedenis-antwoorden. &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.15.5">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Nosflare v8.9.26&lt;/strong> - Serverless Nostr-relay gebouwd op Cloudflare-infrastructuur. Deze release levert een kritieke hotfix die een bug aanpakt die websocket-fouten kon veroorzaken, wat zorgt voor stabielere verbindingen voor gebruikers en applicaties die afhankelijk zijn van de relay. &lt;a href="https://github.com/Spl0itable/nosflare/releases/tag/v8.9.26">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Noscall v0.4.1&lt;/strong> - Nostr-gebaseerde beveiligde audio- en video-bel-app. Deze release verbetert de pop-up UI op de Me-pagina en repareert verschillende bekende problemen, resulterend in betere stabiliteit en belbetrouwbaarheid. &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.4.1-release">Release&lt;/a>&lt;/p>
&lt;p>&lt;strong>Gitplaza v0.25.0&lt;/strong> - Desktop Nostr-client gericht op Git-gerelateerde activiteit. Deze release introduceert een geavanceerd kind-filter voor de inbox-feed, omvat reguliere zaps in filters en vereenvoudigt tab-tekstopmaak. Prestatieverbeteringen optimaliseren comment-tree laden, verminderen onnodige database-queries en gebruiken gecachte comment-branches voor snellere weergave. &lt;a href="https://codeberg.org/dluvian/gitplaza/releases/tag/v0.25.0">Release&lt;/a>&lt;/p>
&lt;h2 id="notable-code-and-documentation-changes">Noemenswaardige code- en documentatiewijzigingen&lt;/h2>
&lt;h3 id="damus">Damus (iOS)&lt;/h3>
&lt;p>Stabiliteitsfocus met crash- en UI-fixes: &lt;a href="https://github.com/damus-io/damus/pull/3377">cursor-sprong fix&lt;/a> voor de compose-weergave, &lt;a href="https://github.com/damus-io/damus/pull/3366">NostrDB interface herontwerp&lt;/a> met Swift&amp;rsquo;s &lt;code>~Copyable&lt;/code> types voor transactieveiligheid, &lt;a href="https://github.com/damus-io/damus/pull/3341">thread UI-stabiliteit&lt;/a> die action bar herinstantiatie repareert, &lt;a href="https://github.com/damus-io/damus/pull/3346">mute-lijst bevriezing&lt;/a> van AttributeGraph-cycli, en &lt;a href="https://github.com/damus-io/damus/pull/3334">profiel-crash&lt;/a> van cross-thread transactie-opruiming. Ook &lt;a href="https://github.com/damus-io/damus/pull/3293">AGENTS.md&lt;/a> richtlijnen toegevoegd voor AI-codeeragenten.&lt;/p>
&lt;h3 id="notedeck">Notedeck (Desktop/Mobiel)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck/pull/1191">Beveiligde sleutelopslag&lt;/a> verplaatst nsec naar OS beveiligde opslag met automatische migratie. &lt;a href="https://github.com/damus-io/notedeck/pull/1201">Toekomstige nota-filtering&lt;/a> verbergt events met datum 24+ uur vooruit (anti-spam). &lt;a href="https://github.com/damus-io/notedeck/pull/1183">nevent kopiëren&lt;/a> bevat nu relay-hints. Ook: &lt;a href="https://github.com/damus-io/notedeck/pull/1212">profiel-kolom snelle toevoeging&lt;/a>, &lt;a href="https://github.com/damus-io/notedeck/pull/1208">toetsenbordnavigatie&lt;/a>, &lt;a href="https://github.com/damus-io/notedeck/pull/1210">media-laadoptimalisatie&lt;/a>.&lt;/p>
&lt;h3 id="amethyst">Amethyst (Android)&lt;/h3>
&lt;p>[&lt;a href="https://nostrcompass.org/nl/topics/nip-46/">NIP-46&lt;/a> remote signing](&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1555">https://github.com/vitorpamplona/amethyst/pull/1555&lt;/a>) ondersteuning voor Nostr Connect. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1586">Bladwijzerorganisatie&lt;/a> met publiek/privé lijstbeheer. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1596">strfry-compatibiliteit&lt;/a> fix voor relay-info parsing edge cases.&lt;/p>
&lt;h3 id="primal">Primal (Android)&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/788">Nostr Connect deep links&lt;/a> voor &lt;code>nostrconnect://&lt;/code> URL&amp;rsquo;s. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/787">Remote login&lt;/a> via QR-scan voor bunker-verbindingen. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/783">Verbindings-race condition fix&lt;/a>.&lt;/p>
&lt;h3 id="white-noise">White Noise (Versleutelde Berichten)&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/890">App-dataretentie fix&lt;/a> schakelt Android auto-backup uit voor privacy. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/861">Chat-scrollgedrag&lt;/a> behoudt positie bij het lezen van geschiedenis.&lt;/p>
&lt;h3 id="zeus">Zeus (Lightning Wallet)&lt;/h3>
&lt;p>[&lt;a href="https://nostrcompass.org/nl/topics/nip-47/">NIP-47&lt;/a> parallelle betalingen](&lt;a href="https://github.com/ZeusLN/zeus/pull/3407">https://github.com/ZeusLN/zeus/pull/3407&lt;/a>) voor verbeterde batch-zap doorvoer.&lt;/p>
&lt;h2 id="best-practices-voor-ontwikkelaars">Best Practices voor Ontwikkelaars&lt;/h2>
&lt;p>&lt;strong>Valideer Auth Events Defensief&lt;/strong> - go-nostr repareerde een &lt;a href="https://github.com/nbd-wtf/go-nostr/pull/182">panic in NIP-42 validatie&lt;/a> wanneer de relay-tag ontbrak. Controleer altijd op vereiste tags voordat je ze opent, zelfs in auth-flows waar je welgevormde events verwacht.&lt;/p>
&lt;p>&lt;strong>Rate Limit op Basis van Authenticatiestatus&lt;/strong> - khatru voegde &lt;a href="https://github.com/fiatjaf/khatru/pull/57">NIP-42 gebaseerde rate limiting&lt;/a> toe, waardoor relays verschillende limieten kunnen toepassen voor geauthenticeerde versus anonieme verbindingen. Overweeg gelaagde limieten op basis van auth-status in plaats van algemene restricties.&lt;/p>
&lt;p>&lt;strong>Gebruik Cursor-paginering voor Lijsten&lt;/strong> - Blossom &lt;a href="https://github.com/hzrd149/blossom/pull/65">verving datum-gebaseerde paginering&lt;/a> met cursor-gebaseerde paginering op het &lt;code>/list&lt;/code> endpoint. Datum-gebaseerde paginering faalt wanneer items tijdstempels delen; cursors bieden betrouwbare iteratie.&lt;/p>
&lt;p>&lt;strong>Schema-validatie voor Eventtypes&lt;/strong> - Het &lt;a href="https://github.com/nostrability/schemata">nostrability/schemata&lt;/a> project biedt JSON-schema&amp;rsquo;s voor het valideren van NIP-conforme events. Overweeg schema-validatie te integreren tijdens ontwikkeling om misvormde events te detecteren voordat ze relays bereiken.&lt;/p>
&lt;hr>
&lt;p>Dat is het voor deze week. Bouw je iets? Heb je nieuws te delen? Wil je dat we jouw project behandelen? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Neem contact op via NIP-17 DM&lt;/a> of vind ons op Nostr.&lt;/p></content:encoded></item></channel></rss>