<?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>Newsletter on Nostr Compass</title><link>https://nostrcompass.org/de/newsletters/</link><description>Recent content in Newsletter on Nostr Compass</description><generator>Hugo</generator><language>de</language><atom:link href="https://nostrcompass.org/de/newsletters/feed.xml" rel="self" type="application/rss+xml"/><item><title>Nostr Compass #34</title><link>https://nostrcompass.org/de/newsletters/2026-08-05-newsletter/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-08-05-newsletter/</guid><description>&lt;p>Willkommen zurück bei &lt;a href="https://github.com/andotherstuff/nostr-compass">Nostr Compass&lt;/a>, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://sandstr.app/">Sandstr&lt;/a> lässt Neulinge simulierte Nostr-Clients erkunden, ohne Schlüssel zu erstellen oder eine App zu installieren. &lt;a href="https://github.com/0ceanSlim/nostr-mill">nostr-mill&lt;/a> führt eine Signierzustimmung pro Event und eine clientübergreifende Schlüsselwiederherstellung ein, während &lt;a href="https://github.com/nostrord/nostrord">nostrord&lt;/a> relay-gehostete Gruppen, Signer, Moderation, Uploads und Highlights erweitert. Die Protokollarbeit umfasst Nostr-Eventformate, Wallet-Verbindungen, Relay-Discovery, Napplets, Marmot und Concord; die Deep Dives erklären relay-gestützte Suche und portable Highlights.&lt;/p>
&lt;h2 id="top-storys">Top-Storys&lt;/h2>
&lt;h3 id="nostr-mill-160-bringt-signierzustimmung-und-kontowiederherstellung-in-den-browser">nostr-mill 1.6.0 bringt Signierzustimmung und Kontowiederherstellung in den Browser&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/nostr-mill/releases/tag/v1.6.0">nostr-mill 1.6.0&lt;/a> ist ein einbettbarer Browser-Kontowähler und -Signer. Er fragt nun pro Event-Kind um Zustimmung und zeigt decodierte Inhalte und Tags vor dem Signieren an, mit zeitlich begrenzten Freigaben und einem Berechtigungsmanager. Das Release behebt außerdem einen Fehler in der ersten Sitzung, der Kategorien, die für eine Abfrage bei jedem Mal konfiguriert waren, ohne Nachfrage signieren ließ. Das optionale Google-Onboarding kann einen bestehenden &lt;code>nsec&lt;/code> importieren, speichert den Schlüssel verschlüsselt im App-Daten-Ordner des Nutzers auf Drive, unterstützt mehrere Identitäten und kann einen &lt;code>ncryptsec&lt;/code> im &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a>-Format (verschlüsseltes Private-Key-Format) exportieren.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei &lt;a href="https://github.com/andotherstuff/nostr-compass">Nostr Compass&lt;/a>, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://sandstr.app/">Sandstr&lt;/a> lässt Neulinge simulierte Nostr-Clients erkunden, ohne Schlüssel zu erstellen oder eine App zu installieren. &lt;a href="https://github.com/0ceanSlim/nostr-mill">nostr-mill&lt;/a> führt eine Signierzustimmung pro Event und eine clientübergreifende Schlüsselwiederherstellung ein, während &lt;a href="https://github.com/nostrord/nostrord">nostrord&lt;/a> relay-gehostete Gruppen, Signer, Moderation, Uploads und Highlights erweitert. Die Protokollarbeit umfasst Nostr-Eventformate, Wallet-Verbindungen, Relay-Discovery, Napplets, Marmot und Concord; die Deep Dives erklären relay-gestützte Suche und portable Highlights.&lt;/p>
&lt;h2 id="top-storys">Top-Storys&lt;/h2>
&lt;h3 id="nostr-mill-160-bringt-signierzustimmung-und-kontowiederherstellung-in-den-browser">nostr-mill 1.6.0 bringt Signierzustimmung und Kontowiederherstellung in den Browser&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/nostr-mill/releases/tag/v1.6.0">nostr-mill 1.6.0&lt;/a> ist ein einbettbarer Browser-Kontowähler und -Signer. Er fragt nun pro Event-Kind um Zustimmung und zeigt decodierte Inhalte und Tags vor dem Signieren an, mit zeitlich begrenzten Freigaben und einem Berechtigungsmanager. Das Release behebt außerdem einen Fehler in der ersten Sitzung, der Kategorien, die für eine Abfrage bei jedem Mal konfiguriert waren, ohne Nachfrage signieren ließ. Das optionale Google-Onboarding kann einen bestehenden &lt;code>nsec&lt;/code> importieren, speichert den Schlüssel verschlüsselt im App-Daten-Ordner des Nutzers auf Drive, unterstützt mehrere Identitäten und kann einen &lt;code>ncryptsec&lt;/code> im &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a>-Format (verschlüsseltes Private-Key-Format) exportieren.&lt;/p>
&lt;p>Das &lt;a href="https://github.com/0ceanSlim/nostr-mill/releases/tag/v1.6.0">experimentelle Relay-Backup&lt;/a> leitet eine starke Wiederherstellungsphrase mit scrypt und HKDF ab, verpackt den Schlüssel als &lt;code>ncryptsec&lt;/code>, verifiziert abgerufene Events und verlangt vor der Wiederherstellung ein Relay-Quorum. Der &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Login (Android-Signer-Intents) nutzt jetzt Ambers Zwischenablage-Rückweg, und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Verbindungen (relay-vermitteltes Remote-Signing) sind standardmäßig leise. Branding-Steuerungen und responsive Berechtigungsbildschirme runden das Release ab, ohne bestehende Integrationen zu ändern, sofern ein Betreiber nicht aktiv zustimmt.&lt;/p>
&lt;h3 id="nostrord-250-verleiht-relay-gruppen-stabile-relay-spezifische-identitäten">nostrord 2.5.0 verleiht Relay-Gruppen stabile, relay-spezifische Identitäten&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.5.0">nostrord 2.5.0&lt;/a> ist ein plattformübergreifender Client für relay-gehostete Communities. Er leitet nun eine &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Identität (relay-verwaltete Gruppen) aus Gruppen-ID und Host-Relay ab, begrenzt Mitgliedschaft und Admin-Abzeichen auf dieselbe Weise, akzeptiert Gruppen-&lt;code>naddr&lt;/code>-Deep-Links und synchronisiert private Gruppen-Threads zwischen Geräten.&lt;/p>
&lt;p>Das &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.5.0">Release&lt;/a> fügt außerdem einen &lt;a href="https://nostrcompass.org/de/topics/nip-56/">NIP-56&lt;/a>-Moderations-Posteingang (Report-Events) hinzu, Amber-Login über NIP-55, Rate-Limit-Backoff für NIP-46-Signer-Verkehr, &lt;a href="https://nostrcompass.org/de/topics/nip-84/">NIP-84&lt;/a>-Rendering (portable Highlights) mit Wiederholungsversuchen für unaufgelöste Referenzen sowie Medien-Uploads über Blossom oder &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> (HTTP-Dateispeicherung). Der Google-Login sichert den Schlüssel jetzt vor der Kontoerstellung und bestätigt Trennungen. Thread-Antworten erhalten reichhaltigere Inhalte und Admin-Löschungen, während Korrekturen am Desktop-Schlüsselbund und an der mobilen Tastatur diese Protokollfunktionen nutzbar halten.&lt;/p>
&lt;h3 id="primal-android-3525-aktualisiert-remote-signing-und-follow-listen-filterung">Primal Android 3.5.25 aktualisiert Remote-Signing und Follow-Listen-Filterung&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.5.25">Primal Android 3.5.25&lt;/a> ist ein mobiler Nostr-Client mit Feeds, Suche und Remote-Signing. Er aktualisiert seinen Remote-Signer auf das aktuelle Protokollverhalten, fügt eine Stummschaltungsliste für Gefolgte hinzu, öffnet die Suche aus Explore, repariert blockierte Relay-Verbindungen automatisch, legt Anfrage-Timeouts in der Oberfläche offen, weist ungültige Follow-Listen-Einträge zurück und aktualisiert die Fallback-Relay-URLs. Feed-Prefetching, geringerer Speicherverbrauch und eine 100-MB-Cache-Obergrenze senken die Kosten für die Aktualität dieser Feeds. Notizen mit einem einzelnen Bild nutzen nun die volle Inhaltsbreite, und Profilsteuerungen sowie Medien-Vorladen erhalten kleinere Interaktions- und Sortierkorrekturen.&lt;/p>
&lt;h3 id="nostur-1302-erweitert-private-antworten-und-medien-in-direktnachrichten">Nostur 1.30.2 erweitert private Antworten und Medien in Direktnachrichten&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/527">Nostur 1.30.2&lt;/a> ist ein Nostr-Client für Apple-Plattformen. Er blendet die Aktion für private Antworten jetzt immer ein, fügt DM-Medien-Caches pro Unterhaltung mit Limits und Löschsteuerungen hinzu, verbessert die Namen- und Tag-Vervollständigung in Beiträgen und Chats, zeigt referenzierte Nachrichten im Live-Chat an und nimmt den Raumtitel in Chat-Benachrichtigungen auf. Korrekturen an der Feed-Paginierung und an verschachtelten Antworten beheben Rückschritte beim Abruf und beim Rendern von Unterhaltungen.&lt;/p>
&lt;h3 id="chama-570-führt-schlichter-einträge-und-gecachte-handelswiederherstellung-ein">Chama 5.7.0 führt Schlichter-Einträge und gecachte Handelswiederherstellung ein&lt;/h3>
&lt;p>&lt;a href="https://github.com/jesuspirate/chama/releases/tag/v5.7.0">Chama 5.7.0&lt;/a> koordiniert Peer-Handel und Schlichtung über signierte Nostr-Event-Ketten. Es zeigt den gesperrten Betrag eines Schlichters, die Laufzeit seiner Kaution und seinen Finanzierungs-Outpoint an; verzeichnet, wann ein Ersatz einen abwesenden Schlichter ersetzt hat; und definiert ruhende Fehler-Attestierungen des Kinds &lt;code>38136&lt;/code>, die die Signaturen beider Parteien erfordern. Eine explizite Reparatur wiederholt unvollständige Relay-Historien gegen den dauerhaften Geräte-Cache und veröffentlicht wiederhergestellte Events erneut, während fehlgeschlagene Veröffentlichungen für die nächste Verbindung in die Warteschlange gehen. Das Release verhindert außerdem geräteübergreifend doppelte Schlichter-Prämienzahlungen, indem es das Kind-&lt;code>38113&lt;/code>-Event des Autors als Zahlungsnachweis behandelt.&lt;/p>
&lt;h3 id="auditable-voting-01165-stellt-die-zustellung-delegierter-stimmzettel-wieder-her">Auditable Voting 0.1.165 stellt die Zustellung delegierter Stimmzettel wieder her&lt;/h3>
&lt;p>&lt;a href="https://github.com/tidley/auditable-voting/releases/tag/v0.1.165">Auditable Voting 0.1.165&lt;/a> führt verifizierbare Abstimmungen durch und trennt dabei Wähler-Credentials vom Stimmzettelinhalt. Es stellt die delegierte Ausstellung blinder Stimmzettel über authentifizierte Delegationszustellung und Kontroll-DM-Nachträge wieder her, belässt Direktnachrichten mit blinden Credentials auf den konfigurierten privaten Relays und aktualisiert den Audit-Proxy auf 0.1.52.&lt;/p>
&lt;h3 id="sandstr-lässt-neulinge-nostr-clients-mit-mock-daten-ausprobieren">Sandstr lässt Neulinge Nostr-Clients mit Mock-Daten ausprobieren&lt;/h3>
&lt;p>&lt;a href="https://sandstr.app/">Sandstr&lt;/a> bietet interaktive Browser-Simulationen von Nostr-Clients, damit Neulinge deren Oberflächen vergleichen können, bevor sie einen installieren oder ein Schlüsselpaar erstellen. Der Launch vom 3. August umfasst referenzverifizierte Nachbildungen von Damus, Amethyst, Primal, Snort, YakiHonne, Coracle und Wisp sowie klar gekennzeichnete frühe Vorschauen von Gossip, Keychat und Olas. Alles läuft lokal gegen Mock-Daten, sodass die Simulationen weder Schlüssel erzeugen noch sich mit Relays verbinden. Jede Simulation verlinkt auf die Website und das Quell-Repository des echten Clients und macht Sandstr damit zu einem Onboarding- und Interface-Vergleichswerkzeug statt zu einem weiteren Nostr-Client. Es zeigt, wie sich Feeds, Profile, Threads, Direktnachrichten, Suche, Zaps und Relay-Steuerungen anfühlen, ohne von einem Erstnutzer vorab eine Identitäts- oder Sicherheitsentscheidung zu verlangen.&lt;/p>
&lt;h3 id="mineracks-signer-kombiniert-eine-browser-erweiterung-mit-einem-desktop-bunker">mineracks signer kombiniert eine Browser-Erweiterung mit einem Desktop-Bunker&lt;/h3>
&lt;p>&lt;a href="https://github.com/mineracks/mineracks-signer">mineracks signer&lt;/a> bietet zwei Signier-Oberflächen aus demselben Projekt. Seine Browser-Erweiterung implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a>, damit Webanwendungen Signaturen anfordern können, ohne den privaten Schlüssel zu erhalten, während die Desktop-Anwendung einen &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Remote-Signer für Clients bereitstellt, die über Relays kommunizieren.&lt;/p>
&lt;p>Das &lt;a href="https://github.com/mineracks/mineracks-signer/releases/tag/desktop-v0.1.0">Desktop-Release 0.1.0&lt;/a> des Projekts speichert Schlüsselmaterial mit der NIP-49-Verschlüsselungscodierung und hält den entschlüsselten Schlüssel im Rust-Prozess, statt ihn an die Oberfläche weiterzugeben. Jede Anfrage zeigt die aufrufende Anwendung und die angeforderte Aktion, während die automatische Genehmigung pro Anwendung optional und widerrufbar ist. Der erste Desktop-Build unterstützt Apple Silicon, aber keine Intel-Macs.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="jumble-2681-führt-proof-of-work-steuerungen-und-kommentar-vorschauen-ein">Jumble 26.8.1 führt Proof-of-Work-Steuerungen und Kommentar-Vorschauen ein&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.8.1">Jumble 26.8.1&lt;/a> ist ein Web- und Desktop-Nostr-Client. Er merkt sich die Proof-of-Work-Schwierigkeit für das Veröffentlichen, zeigt Abzeichen für verifizierte Arbeit an, zeigt Vorschauen verlinkter Kommentare über externen Inhalten, speichert Bilder aus dem Vollbild-Viewer und klappt lange Profil-Biografien bei Bedarf aus. Reaktions-Benachrichtigungen verwerfen jetzt nicht unterstützte Event-Kinds, Hinweise auf Relay-Trennungen sind weniger aufdringlich, die Standard-Relays wurden aktualisiert und ein Konflikt bei der Medien-Autowiedergabe wurde behoben.&lt;/p>
&lt;h3 id="nostr-calendar-210-stellt-die-signer-bindung-bei-privaten-formularen-wieder-her">nostr-calendar 2.1.0 stellt die Signer-Bindung bei privaten Formularen wieder her&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v2.1.0">nostr-calendar 2.1.0&lt;/a> veröffentlicht Kalender, Events und Formularantworten als Nostr-Daten. Es bindet Einreichungen privater Formulare an den aktiven Signer, speichert beabsichtigte doppelte Events auf Relays, behebt den Relay-Abruf, parst Kalenderdaten in lokaler Zeit und fügt App-Benachrichtigungen sowie einen iOS-Client hinzu. Die Signer-Korrektur verhindert, dass eine veraltete Identität eine unbrauchbare verschlüsselte Antwort erzeugt.&lt;/p>
&lt;h3 id="manent-200-führt-tagging-und-suche-für-gespeicherte-notizen-ein">Manent 2.0.0 führt Tagging und Suche für gespeicherte Notizen ein&lt;/h3>
&lt;p>&lt;a href="https://github.com/dtonon/manent/releases/tag/v2.0.0">Manent 2.0.0&lt;/a> ist ein persönliches Archiv für signierte Nostr-Notizen. Es fügt lokale Tags und Suche hinzu, sodass Leser gespeicherte Events organisieren und abrufen können, ohne deren signierte Inhalte zu verändern.&lt;/p>
&lt;h3 id="nosvelte-061-schließt-leere-abonnements-nach-eose">nosvelte 0.6.1 schließt leere Abonnements nach EOSE&lt;/h3>
&lt;p>&lt;a href="https://github.com/akiomik/nosvelte/releases/tag/v0.6.1">nosvelte 0.6.1&lt;/a> stellt reaktive Svelte-Komponenten und -Hooks für Relay-Daten bereit. Leere Suchen kommen jetzt mit dem End of Stored Events zum Abschluss, ein Abbruch schließt das zugrunde liegende &lt;code>REQ&lt;/code>, Wiederholungen räumen veraltete Fehler ab, und Listen-Hooks geben ihren dokumentierten Leerwert zurück. Es erkennt außerdem adressierbare Events unabhängig davon, wo ihr &lt;code>d&lt;/code>-Tag steht, ersetzt überholte Metadaten und Artikel, dedupliziert Reaktionen nach Event-ID und behält jedes Event aus dem ersten Batch eines Relays.&lt;/p>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="nmp-bindet-die-relay-zulassung-an-deklarationen-und-erweitert-gruppenabfragen">NMP bindet die Relay-Zulassung an Deklarationen und erweitert Gruppenabfragen&lt;/h3>
&lt;p>&lt;a href="https://github.com/pablof7z/nmp">NMP&lt;/a> ist ein TypeScript-Toolkit zum Bauen von Nostr-Anwendungen und relay-gestützten Gruppen-Oberflächen. &lt;a href="https://github.com/pablof7z/nmp/pull/1254">PR #1254&lt;/a> lässt die Relay-Zulassung dem Eigentümer der autorisierenden Deklaration folgen und hält die Berechtigungsentscheidung so an den signierten Nostr-Zustand gebunden. &lt;a href="https://github.com/pablof7z/nmp/pull/1255">PR #1255&lt;/a> verallgemeinert &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Abfragen relay-verwalteter Gruppen, statt eine einzige enge Abfrageform anzunehmen. Beide Änderungen sind gemergt, aber noch nicht in einem getaggten Release erschienen.&lt;/p>
&lt;h3 id="mosaico-leitet-die-identität-verwalteter-gruppen-aus-relay-einträgen-ab">Mosaico leitet die Identität verwalteter Gruppen aus Relay-Einträgen ab&lt;/h3>
&lt;p>&lt;a href="https://github.com/pablof7z/mosaico">Mosaico&lt;/a> ist ein Nostr-Client zum Durchsuchen und Verwalten relay-verwalteter Communities. &lt;a href="https://github.com/pablof7z/mosaico/pull/758">PR #758&lt;/a> leitet die Identität einer verwalteten Gruppe vom Relay ab, das ihre maßgeblichen Einträge hostet. &lt;a href="https://github.com/pablof7z/mosaico/pull/757">PR #757&lt;/a> beobachtet den veröffentlichten Eintrag der Gruppe bei der Auflösung des Administrationsstatus. So bleiben zwei gleichnamige Gruppen auf unterschiedlichen Relays unterscheidbar, und Clients erhalten eine relay-gestützte Quelle für ihre Verwaltungsmetadaten.&lt;/p>
&lt;h3 id="divine-isoliert-langsame-relays-bei-multi-relay-abfragen">Divine isoliert langsame Relays bei Multi-Relay-Abfragen&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">Divine&lt;/a> ist ein mobiler Kurzvideo-Client, der Videos über Nostr veröffentlicht und abruft. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/6673">PR #6673&lt;/a> gibt jeder Relay-Abfrage ihr eigenes Timeout, statt eine blockierte Verbindung das Zeitbudget einer gesamten Anfrage aufbrauchen zu lassen. Ergebnisse antwortender Relays können so eintreffen, während der langsame Endpunkt unabhängig aufgegeben wird. Die Änderung verbessert den Abruf, ohne ein Relay als maßgeblich für das kombinierte Ergebnis zu behandeln.&lt;/p>
&lt;h3 id="rust-nostr-härtet-verschlüsselung-hashes-und-reconciliation">rust-nostr härtet Verschlüsselung, Hashes und Reconciliation&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> ist eine Rust-Bibliothek und ein Toolkit für Nostr-Clients, -Relays und Protokollimplementierungen. &lt;a href="https://github.com/rust-nostr/nostr/pull/1421">PR #1421&lt;/a> reduziert Allokationen im versionierten &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselungspfad, während &lt;a href="https://github.com/rust-nostr/nostr/pull/1423">PR #1423&lt;/a> typisierte Hashes einführt, die das versehentliche Vermischen inkompatibler Digest-Werte erschweren. &lt;a href="https://github.com/rust-nostr/nostr/commit/21e31c28da3dfadedb5fa6e58c712647f16e5f69">Commit 21e31c2&lt;/a> verhindert, dass eine fehlerhafte &lt;a href="https://nostrcompass.org/de/topics/nip-77/">NIP-77&lt;/a>-Negentropy-Nachricht zur Mengenabgleichung das lokale Relay trennt. Die gemergte Arbeit verschärft sowohl den Umgang mit verschlüsselten Nutzdaten als auch das Fehlerverhalten bei der Reconciliation vor dem nächsten Release.&lt;/p>
&lt;h3 id="zeus-serialisiert-nwc-zahlungen-vor-der-belastung-von-ausgabenbudgets">Zeus serialisiert NWC-Zahlungen vor der Belastung von Ausgabenbudgets&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> ist eine mobile Bitcoin- und Lightning-Wallet, die Wallet-Operationen über Nostr Wallet Connect bereitstellen kann. &lt;a href="https://github.com/ZeusLN/zeus/pull/4305">PR #4305&lt;/a> rechnet ausstehende Zahlungen auf ein &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>-Budget (Nostr Wallet Connect) an, statt auf die Abwicklung zu warten. &lt;a href="https://github.com/ZeusLN/zeus/pull/4303">PR #4303&lt;/a> serialisiert die Zahlungsabwicklung, damit gleichzeitige Anfragen nicht dasselbe Autorisierungslimit überrennen können. Das gemergte Paar schließt eine Lücke bei der Budgetdurchsetzung auf der Nostr-Kontrolloberfläche der Wallet.&lt;/p>
&lt;h3 id="nostr-components-teilt-einen-einzigen-relay-verbindungsversuch">Nostr Components teilt einen einzigen Relay-Verbindungsversuch&lt;/h3>
&lt;p>&lt;a href="https://github.com/saiy2k/nostr-components">Nostr Components&lt;/a> ist eine wiederverwendbare Web-Component-Bibliothek, um Nostr-Daten und -Interaktionen in Anwendungen einzubinden. &lt;a href="https://github.com/saiy2k/nostr-components/pull/105">PR #105&lt;/a> lässt gleichzeitig gemountete Komponenten einen laufenden Relay-Verbindungsversuch teilen. Jeder Nutzer erhält weiterhin die resultierende Verbindung, aber gleichzeitige Mounts öffnen keine doppelten Sockets mehr, während der erste Handshake noch aussteht. Die Änderung reduziert vermeidbare Relay-Last in Anwendungen, die aus mehreren unabhängigen Komponenten zusammengesetzt sind.&lt;/p>
&lt;h2 id="nip-updates-und-protokoll-spezifikationsarbeit">NIP-Updates und Protokoll-Spezifikationsarbeit&lt;/h2>
&lt;h3 id="nostr-eventformate-und-discovery">Nostr-Eventformate und Discovery&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2430">NIP-PR #2430&lt;/a> schlägt Sticker-Packs als adressierbare Kind-&lt;code>30031&lt;/code>-Definitionen und die installierten Packs eines Nutzers als ersetzbares Kind &lt;code>10031&lt;/code> vor. Jeder Sticker-Tag trägt einen Shortcode, einen SHA-256-Hash und einen MIME-Typ; das Bild verbleibt auf einem &lt;a href="https://github.com/nostr-protocol/nips/blob/master/B7.md">NIP-B7&lt;/a>-Server (Blossom-Blob-Speicher). Der offene Entwurf standardisiert damit Pack-Identität und -Installation, ohne Bildbytes in Events abzulegen.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2429">NIP-PR #2429&lt;/a> schlägt adressierbare Gopher-Dokumente des Kinds &lt;code>31436&lt;/code> vor. Jedes Event enthält einen UTF-8-Text- oder Menüknoten, und signierte Knoten unter einer Pubkey bilden ein Gopherhole, das jede relay-gestützte RFC-1436-Bridge ausliefern kann. Der offene Vorschlag nutzt den gewöhnlichen Speicher adressierbarer Events, statt die Veröffentlichung an einen einzelnen Gopher-Hostnamen zu binden.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2428">NIP-PR #2428&lt;/a> schlägt private Gruppen mit Epochen-Tickets vor. Eine Gruppe rotiert Mitgliedschafts-Credentials zwischen Epochen, und Clients legen das Ticket der aktuellen Epoche vor, um teilzunehmen. Der Entwurf zielt auf privaten Chat ab, ohne von einem Relay zu verlangen, ein permanentes Bearer-Token als lebenslange Mitgliedschaft zu behandeln.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2425">NIP-PR #2425&lt;/a>, letzte Woche als Vorschlag behandelt, hat nun eine URI-Klarstellung in &lt;a href="https://nostrcompass.org/de/topics/nip-b0/">NIP-B0&lt;/a> (adressierbare Web-Lesezeichen) gemergt. Er unterscheidet weggelassene HTTPS-Präfixe von expliziten URI-Schemata, wenn ein Lesezeichen sein Ziel im &lt;code>d&lt;/code>-Tag speichert, und verhindert so, dass Clients ein mehrdeutiges Ziel rekonstruieren.&lt;/p>
&lt;h3 id="zahlungen-und-wallet-verbindungen">Zahlungen und Wallet-Verbindungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2419">NIP-PR #2419&lt;/a>, in der Ausgabe vom 22. Juli als Vorschlag behandelt, hat nun einen kleineren &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>-Kern (Nostr Wallet Connect) gemergt. Verbindungs-URIs, verschlüsselter Relay-Transport, Capability-Discovery, Verschlüsselungsaushandlung und gängige Methoden bleiben im NIP; Benachrichtigungen, Hold-Invoices, Keysend, Transaktionshistorie, Metadaten und Deep-Link-Pairing wandern in ein eigenes Erweiterungs-Repository. Bestehende Verbindungen bleiben kompatibel, während Wallets die optionalen Verträge unabhängig implementieren können.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-wallet-connect/nwc/pull/2">NWC-PR #2&lt;/a>, letzte Woche als Vorschlag behandelt, hat nun BIP-321-Zahlungsmethoden in jenes Erweiterungs-Repository gemergt. BIP-321 stellt einen gemeinsamen Bitcoin-Zahlungs-URI bereit, der verschiedene Rails tragen kann, sodass NWC-Aufrufer eine Zahlung anfordern oder senden können, ohne für jeden zugrunde liegenden Anweisungstyp einen neuen Kern-RPC hinzuzufügen.&lt;/p>
&lt;h3 id="napplet-host-fähigkeiten">Napplet-Host-Fähigkeiten&lt;/h3>
&lt;p>&lt;a href="https://github.com/napplet/naps/pull/95">NAP-PR #95&lt;/a> schlägt Katalog-Discovery für über Nostr verteilte Sandbox-Anwendungen vor. Ein Napplet fragt seinen Host, welche Anwendungen und Fähigkeiten verfügbar sind, und der Host liefert policy-gefilterte Metadaten, statt seine gesamte lokale Umgebung offenzulegen. Der Vertrag unterstützt Startentscheidungen, ohne während der Discovery Ausführungsrechte zu gewähren.&lt;/p>
&lt;p>&lt;a href="https://github.com/napplet/naps/pull/33">NAP-PR #33&lt;/a> schlägt shell-vermittelte Datei- und Blob-Uploads vor. Ein Napplet liefert Bytes und Absicht; der Host wählt einen NIP-96- oder Blossom-Rail, signiert die Autorisierung, meldet den Fortschritt und gibt URLs, Hashes, MIME-Daten und anhängfertige &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a>-Tags (Datei-Metadaten) zurück. Speicher-Credentials und HTTP-Autorität gelangen niemals in das Napplet.&lt;/p>
&lt;h3 id="marmot-verschlüsselte-gruppen">Marmot-verschlüsselte Gruppen&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot/pull/410">Marmot-PR #410&lt;/a> hat Konvergenz- und Deferred-Input-Regeln gemergt. Clients unterscheiden ein Objekt, dem eine aktuelle Epochen-Abhängigkeit fehlt, von veralteter oder ungültiger Eingabe, halten es nach einer Ressourcenverweigerung für einen erneuten Abruf berechtigt und versuchen es erneut, wenn ein anderer Commit den Entschlüsselungskontext ändert. Ein domänensepariertes State-Commitment gibt Konformitätstests ein gemeinsames Konvergenz-Orakel, ohne ein Produktions-Wire-Feld hinzuzufügen.&lt;/p>
&lt;h3 id="concord-community-ebenen">Concord-Community-Ebenen&lt;/h3>
&lt;p>&lt;a href="https://github.com/concord-protocol/concord/pull/14">Concord-PR #14&lt;/a> hat CORD-08-Disappearing-Messages gemergt. Ein Community-Metadatenwert legt die Lebensdauer fest; Chat-Rumors und verschlüsselte Wraps tragen einen &lt;a href="https://nostrcompass.org/de/topics/nip-40/">NIP-40&lt;/a>-Tag (Event-Ablauf), während Lösch-Events und der Timer-Hinweis des Kinds &lt;code>1740&lt;/code> ausgenommen sind. Der signierte Timer reist mit dem Community-Zustand, wobei das Relay-Löschen weiterhin eine Aufbewahrungsanfrage und keine kryptografische Löschgarantie bleibt.&lt;/p>
&lt;p>&lt;a href="https://github.com/concord-protocol/concord/pull/13">Concord-PR #13&lt;/a> hat rotierungsfestes Pinnen in CORD-04 gemergt. Jeder Kanal hat eine vollständig ersetzende Pin-Liste auf der Kontrollebene; Einträge tragen das ursprüngliche signierte Siegel plus NIP-44-Expansionsschlüssel pro Nachricht, sodass ein neues Mitglied Autor und Klartext verifizieren kann, ohne einen alten Epochenschlüssel zu erhalten. Private Listen können an eine Kanal-Epoche versiegelt bleiben, Obergrenzen begrenzen die Listengröße, und Autoren-Löschungen entfernen Pins, ohne die Kontrolebenen-Kette zu forken.&lt;/p>
&lt;h2 id="nip-deep-dive">NIP Deep Dive&lt;/h2>
&lt;h3 id="suchfähigkeit-nip-50">Suchfähigkeit (NIP-50)&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a>, definiert in der &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">primären Spezifikation&lt;/a>, fügt einen optionalen Suchfilter für Relays hinzu. Gewöhnliche Nostr-Filter funktionieren, wenn ein Client bereits einen Autor, ein Event-Kind, eine Kennung oder einen Tag kennt; NIP-50 adressiert die Discovery, wenn die Eingabe eine menschliche Anfrage wie &lt;code>best nostr apps&lt;/code> ist.&lt;/p>
&lt;p>Das &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md#search-filter-field">NIP-50-Wire-Format&lt;/a> fügt einem normalen Filter innerhalb einer &lt;code>REQ&lt;/code>-Nachricht einen &lt;code>search&lt;/code>-String hinzu. Eine Anfrage kann dieses Feld mit &lt;code>kinds&lt;/code>, &lt;code>authors&lt;/code>, &lt;code>ids&lt;/code>, Tag-Filtern und &lt;code>limit&lt;/code> kombinieren, und ein REQ kann mehrere unabhängige Filter tragen. Ein unterstützendes Relay sollte primär gegen den Event-&lt;code>content&lt;/code> matchen, darf andere Felder nutzen, wenn das Event-Kind dies sinnvoll macht, und sollte nach seinem eigenen Relevanz-Score sortieren, bevor es das &lt;code>limit&lt;/code> anwendet. Diese Reihenfolge unterscheidet sich vom üblichen Neueste-zuerst-Eventstream.&lt;/p>
&lt;p>Der Query-String kann die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md#extensions">&lt;code>key:value&lt;/code>-Erweiterungen&lt;/a> der Spezifikation enthalten. Sie nennt &lt;code>include:spam&lt;/code>, &lt;code>domain:&lt;/code>, &lt;code>language:&lt;/code>, &lt;code>sentiment:&lt;/code> und &lt;code>nsfw:&lt;/code>; ein Relay sollte Erweiterungen ignorieren, die es nicht implementiert. Clients erkennen die deklarierte Unterstützung über das &lt;code>supported_nips&lt;/code>-Feld des Relays in &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>, können den Filter aber trotzdem an andere Relays senden, wenn sie bereit sind, nicht passende Antworten zu verwerfen.&lt;/p>
&lt;p>Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50-Spezifikation&lt;/a> standardisiert bewusst weder Tokenisierung, Stemming, Ranking, Spracherkennung, Sentiment-Analyse noch Spam-Klassifizierung. Zwei konforme Relays können für dieselbe Anfrage unterschiedliche Events und unterschiedliche Reihenfolgen liefern. Das macht das Relay zu einem Index- und Ranking-Anbieter, nicht zu einer Wahrheitsquelle. Die Spezifikation empfiehlt, mehrere unterstützende Relays abzufragen, zu prüfen, ob die zurückgegebenen Events dem Anwendungsfall des Clients genügen, und Relays mit schlechter Präzision fallen zu lassen.&lt;/p>
&lt;p>Das unterscheidet sich vom exakten &lt;a href="https://github.com/nostr-protocol/nips/blob/master/01.md">NIP-01-Filtern&lt;/a>. Ein &lt;code>authors&lt;/code>- oder &lt;code>#t&lt;/code>-Filter hat deterministische Match-Semantik, die ein Client direkt verifizieren kann, während ein Suchtreffer von einem Index und einem opaken Score abhängen kann. NIP-50 behält den signierten Event-Umschlag und den Relay-Transport von NIP-01 bei, akzeptiert aber Variationen bei Recall und Reihenfolge, um offene Abfragen zu ermöglichen.&lt;/p>
&lt;p>Das folgende Event ist ein echtes Suchergebnis, das ein NIP-50-Suchrelay für eine Relay-Discovery-Abfrage zurückgegeben hat, mit den &lt;a href="https://github.com/nostr-protocol/nips/blob/master/01.md#events-and-signatures">sieben NIP-01-Event-Feldern&lt;/a> und einer gültigen Signatur.&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;2943d6b43bcbf0ee4a8b4cac912111be0309607b8bb435ae40529989bea7f6c5&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;3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d&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">1785771175&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;I&amp;#39;ve been working on a customizable client (mostly relay feeds, but a ton of other things and subtle details too). It&amp;#39;s called Hallway for reasons I don&amp;#39;t remember and it&amp;#39;s a fork of Fevela which is a fork of Jumble, but very rewritten for speed and simplicity...&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;5b058b89dab9bd09d81bdc10eff95536125b87fbcbbc97f08d835c1272b2a3190cc3d340e42f54acb0d7e0e4b00355ab91292d0305c84a2d73b538319c0da12c&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>Aktuelle Clients nutzen denselben Filter in unterschiedlichen Discovery-Oberflächen. &lt;a href="https://github.com/nostria-app/nostria/blob/d291c2ab091c60c36f99c90241e2fd9da1b0c4bc/src/app/services/relays/search-relay.ts">Nostria&lt;/a> sendet NIP-50-Suchen an dedizierte Such-Relays, &lt;a href="https://github.com/soapbox-pub/ditto/blob/04adb2d242ab6f5807fd27ae3e0cb9beab091641/src/hooks/useSearchEvents.ts">Ditto&lt;/a> sucht Events über seinen Relay-Pool, und &lt;a href="https://github.com/77elements/noornote/blob/bf1f9b431552497dc1779ea0d8fed2c3c28e6070/src/services/orchestration/SearchOrchestrator.ts">NoorNote&lt;/a> koordiniert relay-gestützte Suchen für das Longform-Lesen. Ihre unterschiedliche Ergebnisbehandlung spiegelt den Spielraum wider, den NIP-50 Relays und Clients lässt.&lt;/p>
&lt;h3 id="highlights-nip-84">Highlights (NIP-84)&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-84/">NIP-84&lt;/a>, definiert durch seine &lt;a href="https://github.com/nostr-protocol/nips/blob/master/84.md">primäre Spezifikation&lt;/a>, weist einem Highlight das Kind &lt;code>9802&lt;/code> zu. Es verwandelt eine ausgewählte Passage oder eine Referenz auf nicht-textuelle Medien in ein signiertes Event, das zwischen Lese-, Social- und Annotations-Clients wandern kann.&lt;/p>
&lt;p>Der &lt;a href="https://github.com/nostr-protocol/nips/blob/master/84.md#format">&lt;code>content&lt;/code> des Events&lt;/a> enthält den ausgewählten Text und kann leer sein, wenn die Quelle Audio, Video oder ein anderes nicht-textuelles Medium ist. Ein Highlight verweist mit einem &lt;code>a&lt;/code>-Tag auf ein adressierbares Event oder mit einem &lt;code>e&lt;/code>-Tag auf ein gewöhnliches Event als Nostr-Quelle; ein &lt;code>r&lt;/code>-Tag identifiziert eine Web-URL. URL-erzeugende Clients sollten Tracking- und andere nutzlose Query-Parameter vor dem Veröffentlichen entfernen, damit kosmetische URL-Varianten Referenzen auf dieselbe Quelle nicht fragmentieren.&lt;/p>
&lt;p>Optionale &lt;a href="https://github.com/nostr-protocol/nips/blob/master/84.md#attribution">&lt;code>p&lt;/code>-Tags&lt;/a> attribuieren die Quelle einer oder mehreren Nostr-Pubkeys. Ihr vierter Wert kann eine Rolle wie &lt;code>author&lt;/code> oder &lt;code>editor&lt;/code> angeben, und ein &lt;code>context&lt;/code>-Tag kann umgebenden Text bewahren, wenn die Auswahl allein unklar wäre. Ein Quote-Highlight fügt stattdessen einen &lt;code>comment&lt;/code>-Tag hinzu, statt eine zweite Kind-&lt;code>1&lt;/code>-Notiz zu veröffentlichen: Der &lt;code>r&lt;/code>-Tag der Quelle erhält die Markierung &lt;code>source&lt;/code>, während im Kommentar erwähnte Pubkeys oder URLs &lt;code>mention&lt;/code> tragen, sodass Renderer Attribution von der Antwort des Nutzers unterscheiden können.&lt;/p>
&lt;p>Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/84.md">Kind-&lt;code>9802&lt;/code>-Definition&lt;/a> macht ein Highlight zu einem regulären statt einem ersetzbaren Event. Das Wiederholen oder Korrigieren einer Auswahl erzeugt ein weiteres signiertes Event, und das Entfernen hängt vom normalen Löschanfrage-Fluss und der Aufbewahrungspolitik des Relays ab. Die Spezifikation definiert keine Byte-Offsets, Selektoren oder einen kanonischen Dokumenten-Snapshot, sodass ein Client eine Passage nach einer Änderung ihrer Web-Quelle möglicherweise nicht wiederfindet. Öffentliche Highlights offenbaren außerdem Leseinteressen; private Annotation erfordert ein separates Verschlüsselungs- und Sharing-Design.&lt;/p>
&lt;p>NIP-84 unterscheidet sich von einem &lt;a href="https://github.com/nostr-protocol/nips/blob/master/23.md">NIP-23-Longform-Event&lt;/a>, das einen ganzen Artikel als Kind &lt;code>30023&lt;/code> veröffentlicht; ein Highlight zitiert oder zeigt in Material, das anderswo verbleiben kann. Es unterscheidet sich auch von einem &lt;a href="https://github.com/nostr-protocol/nips/blob/master/51.md">NIP-51-Lesezeichen-Set&lt;/a>, das eine ersetzbare Sammlung von Referenzen speichert. NIP-84 macht jede Auswahl unabhängig signiert, attribuierbar, auffindbar und diskutierbar.&lt;/p>
&lt;p>Das folgende Highlight ist ein echtes Kind-&lt;code>9802&lt;/code>-Event, das aus Primals iOS-Client veröffentlicht und aus öffentlichen Relays wiederhergestellt wurde. Es trägt die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/01.md#events-and-signatures">sieben NIP-01-Event-Felder&lt;/a> mit gültiger Signatur, einen &lt;code>a&lt;/code>-Tag, der auf ein &lt;a href="https://github.com/nostr-protocol/nips/blob/master/23.md">NIP-23-Langform-Event&lt;/a> zeigt, einen &lt;code>p&lt;/code>-Tag zur Nennung des Artikelautors und einen &lt;code>context&lt;/code>-Tag mit der umgebenden Passage.&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;0d57c07cfdfe8ec00711e2af88a666b61fc35c167b90b02dfb5db7ffba7b794a&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;07367baec8e73c076b14e47fba3b0d5c014d559d7986a7172a79a8a64419d7c2&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">1785797755&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">9802&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;context&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;Quantum computers will break secp256k1 which nostr relies on for its public private key pair. This means that given an npub, a quantum computer will be able to derive your nsec, read all your encrypted data and sign events as you.&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;This is a highlight created in https://primal.net iOS application&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:1ec454734dcbf6fe54901ce25c0c7c6bca5edd89443416761fadc321d38df139:nostr-quantum-preparation&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;1ec454734dcbf6fe54901ce25c0c7c6bca5edd89443416761fadc321d38df139&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;mention&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;Quantum computers will break secp256k1 which nostr relies on for its public private key pair. This means that given an npub, a quantum computer will b&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;219f3c1e572d1a087d667dc0d3a5443c77c0db3a5d42ce4e630604901ac63d2c879a86269d81e220bb77fd48b1579adafc333075e53c6eb0a108791fdd4a1622&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>Das Format überschreitet bereits Client-Grenzen. &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.5.0">nostrord 2.5.0&lt;/a> hat diese Woche NIP-84-Rendering hinzugefügt, &lt;a href="https://github.com/77elements/noornote/blob/bf1f9b431552497dc1779ea0d8fed2c3c28e6070/src/components/ui/note-rendering/HighlightRenderer.ts">NoorNote&lt;/a> rendert Highlight-Events in seinem Longform-Client, und &lt;a href="https://github.com/soapbox-pub/ditto/blob/04adb2d242ab6f5807fd27ae3e0cb9beab091641/src/hooks/useCreateHighlight.ts">Ditto&lt;/a> veröffentlicht sie aus ausgewählten Inhalten. Diese Implementierungen decken Lesen, Erstellen und Social-Rendering ab, ohne dass ein einzelner Dienst die Annotation besitzen muss.&lt;/p>
&lt;hr>
&lt;p>Sende eine NIP-17-DM, um ein Projekt oder eine Nachricht über das &lt;a href="https://github.com/andotherstuff/nostr-compass">Nostr-Compass-Projekt&lt;/a> zu teilen.&lt;/p></content:encoded></item><item><title>Nostr Compass #33</title><link>https://nostrcompass.org/de/newsletters/2026-07-29-newsletter/</link><pubDate>Wed, 29 Jul 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-07-29-newsletter/</guid><description>&lt;p>Willkommen zurück bei &lt;a href="https://github.com/andotherstuff/nostr-compass">Nostr Compass&lt;/a>, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.1">Amethyst 1.13.1&lt;/a> folgt auf den Start der Nostr-Apps in Version 1.13.0 und bringt NIP-29-Authentifizierung beim Host-relay sowie authentifizierte Wiederholungsversuche für Blossom-Downloads. &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.68">Code Call&lt;/a> hält Remote-Coding-Sitzungen vom Smartphone aus in Gang, &lt;a href="https://github.com/DanConwayDev/gitworkshop">GitWorkshop&lt;/a> koordiniert Maintainer und die Synchronisierung von Repositories, und &lt;a href="https://github.com/pablof7z/mosaico/releases/tag/v0.1.2">Mosaico&lt;/a> stellt Coding-Agenten eine gemeinsame Nostr-Schicht für Statusinformationen bereit. &lt;a href="https://dev.nostrolo.gy/relays">Nostrology&lt;/a> kartiert, wie Profile Lese- und Schreibaufgaben auf ihre veröffentlichten relay-Listen verteilen. Android-Releases von &lt;a href="https://github.com/DestBro/mafrend-zapstore/releases/tag/v1.0">Mafrend&lt;/a>, &lt;a href="https://github.com/Letdown2491/hanami-android/releases/tag/v0.1.0">Hanami&lt;/a> und &lt;a href="https://github.com/Cordn-msg/cordn-web/releases/tag/v0.2.1">Cordn&lt;/a> führen die Releases mit Versions-Tag an, während &lt;a href="https://github.com/jmcorgan/fips/pull/126">FIPS eine Zugriffsschicht für OpenWrt ergänzt&lt;/a> und ein &lt;a href="https://github.com/jmcorgan/fips/pull/129">offener PR eine Portierung auf FreeBSD vorschlägt&lt;/a>. Die Protokollberichterstattung behandelt NIPs, BUDs, NAPs, Marmot, Gamma Markets, Concord und NWC, während &lt;a href="https://github.com/nostr-protocol/nips/commits/master/">Sechs Jahre Nostr im Juli&lt;/a> die Änderungen im Juli von der frühen Domainauflösung bis zum Zustand von relay-Gruppen nachzeichnet.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei &lt;a href="https://github.com/andotherstuff/nostr-compass">Nostr Compass&lt;/a>, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.1">Amethyst 1.13.1&lt;/a> folgt auf den Start der Nostr-Apps in Version 1.13.0 und bringt NIP-29-Authentifizierung beim Host-relay sowie authentifizierte Wiederholungsversuche für Blossom-Downloads. &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.68">Code Call&lt;/a> hält Remote-Coding-Sitzungen vom Smartphone aus in Gang, &lt;a href="https://github.com/DanConwayDev/gitworkshop">GitWorkshop&lt;/a> koordiniert Maintainer und die Synchronisierung von Repositories, und &lt;a href="https://github.com/pablof7z/mosaico/releases/tag/v0.1.2">Mosaico&lt;/a> stellt Coding-Agenten eine gemeinsame Nostr-Schicht für Statusinformationen bereit. &lt;a href="https://dev.nostrolo.gy/relays">Nostrology&lt;/a> kartiert, wie Profile Lese- und Schreibaufgaben auf ihre veröffentlichten relay-Listen verteilen. Android-Releases von &lt;a href="https://github.com/DestBro/mafrend-zapstore/releases/tag/v1.0">Mafrend&lt;/a>, &lt;a href="https://github.com/Letdown2491/hanami-android/releases/tag/v0.1.0">Hanami&lt;/a> und &lt;a href="https://github.com/Cordn-msg/cordn-web/releases/tag/v0.2.1">Cordn&lt;/a> führen die Releases mit Versions-Tag an, während &lt;a href="https://github.com/jmcorgan/fips/pull/126">FIPS eine Zugriffsschicht für OpenWrt ergänzt&lt;/a> und ein &lt;a href="https://github.com/jmcorgan/fips/pull/129">offener PR eine Portierung auf FreeBSD vorschlägt&lt;/a>. Die Protokollberichterstattung behandelt NIPs, BUDs, NAPs, Marmot, Gamma Markets, Concord und NWC, während &lt;a href="https://github.com/nostr-protocol/nips/commits/master/">Sechs Jahre Nostr im Juli&lt;/a> die Änderungen im Juli von der frühen Domainauflösung bis zum Zustand von relay-Gruppen nachzeichnet.&lt;/p>
&lt;h2 id="top-storys">Top-Storys&lt;/h2>
&lt;h3 id="amethyst-1131-ergänzt-nach-dem-start-seiner-nostr-apps-authentifizierten-zugriff-auf-gruppen-und-blossom">Amethyst 1.13.1 ergänzt nach dem Start seiner Nostr-Apps authentifizierten Zugriff auf Gruppen und Blossom&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.0">Amethyst 1.13.0&lt;/a>, am 28. Juli für den Android- und Multiplattform-Nostr-Client veröffentlicht, öffnet napplets und NIP-5A-nsites in einem isolierten Browserprozess ohne Schlüsselzugriff. Eine durch Zustimmung freigegebene &lt;code>window.nostr&lt;/code>-Brücke kann über das aktive Konto signieren und ausgewählte Funktionen nutzen, während Berechtigungsansichten pro Website und pro Konto Nutzern erlauben, diese Freigaben zu prüfen oder zu widerrufen. Bevorzugte Apps können an der unteren Leiste angeheftet bleiben, ohne Cookies, Anmeldestatus oder Freigaben zwischen Konten zu teilen.&lt;/p>
&lt;p>Dasselbe &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.0">Release 1.13.0&lt;/a> ergänzt Git-Repository-Bäume, Issues und Pull Requests sowie Concord-Communities, NIP-29-relay-Gruppen, Buzz-Gruppenchats, Wiki-Seiten und RSS-Feeds. Über diese Oberflächen kann ein Nutzer unter derselben Nostr-Identität zwischen Code, Community, Publikationen und sozialen Ansichten wechseln.&lt;/p>
&lt;p>Auch Zahlungen und Identitätsfunktionen wurden in &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.0">Version 1.13.0&lt;/a> erweitert. Amethyst kann BOLT12-Angebote erstellen und bezahlen, Remote-Signer-Konten automatisch starten, Blossom-Fallback-Server hinzufügen und die Web-of-Trust-Steuerung für Badges, Communities und relay-Gruppen ausbauen. Das &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.13.1">Folgerelease 1.13.1&lt;/a> vom 29. Juli ergänzt ein &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3767">CORD-02-Auflösungssiegel&lt;/a>, die &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3779">Löschung von Gruppen und Kanälen&lt;/a> mit kind &lt;code>9008&lt;/code>, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3788">NIP-29-Authentifizierung beim Host-relay&lt;/a> und authentifizierte &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3789">BUD-01-Wiederholungsversuche&lt;/a> für zugriffsbeschränkte Blossom-Downloads.&lt;/p>
&lt;h3 id="code-call-0268-ergänzt-einen-browser-für-worker-ordner-nachdem-0266-eine-aufholfunktion-eingeführt-hatte">Code Call 0.2.68 ergänzt einen Browser für Worker-Ordner, nachdem 0.2.66 eine Aufholfunktion eingeführt hatte&lt;/h3>
&lt;p>&lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.68">Code Call 0.2.68&lt;/a>, eine Android-Fernsteuerung für Coding-Sitzungen auf einem Computer, ersetzt die bisherige, auf Sonderfälle zugeschnittene Workspace-Liste durch einen Ordnerbrowser, der im Worker-Verzeichnis beginnt. Nutzer können zu verschachtelten zulässigen Ordnern navigieren, einen davon für eine OpenCode-Sitzung auswählen und zu übergeordneten Ordnern zurückkehren; &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.67">Version 0.2.67&lt;/a> öffnet diesen Browser beim Erstellen einer Sitzung.&lt;/p>
&lt;p>Das frühere &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.66">Release 0.2.66&lt;/a> kann einen zuständigen Worker um eine knappe Zusammenfassung des Stands seit der neuesten Smartphone-Nachricht bitten. Weitere Releases derselben Woche halten &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.51">mehrere Sitzungen voneinander unabhängig&lt;/a>, akzeptieren Antworten nur vom &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.56">erwarteten Absender&lt;/a> und halten den Posteingang für die Zustellung im Hintergrund mit &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.59">jedem konfigurierten Worker-relay&lt;/a> verbunden. Anfragen und Antworten werden als &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17 (Private Direktnachrichten)&lt;/a> übertragen, während lokal verschlüsselte &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Anhänge &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.55">nach der Entschlüsselung ihren ursprünglichen Dateityp behalten&lt;/a>.&lt;/p>
&lt;h3 id="gitworkshop-koordiniert-maintainer-und-hält-die-repository-synchronisierung-unabhängig">GitWorkshop koordiniert Maintainer und hält die Repository-Synchronisierung unabhängig&lt;/h3>
&lt;p>&lt;a href="https://primal.net/e/869e01f9a74d98f468a66f3b83865d198a82cc718c1db36324398b1b88a17c60">GitWorkshops signiertes Release vom 27. Juli&lt;/a> ergänzt die Android-Anmeldung über &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android-Signer-Anwendung)&lt;/a> für die browserbasierte &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34-Forge (&lt;code>git&lt;/code> stuff)&lt;/a>. Das &lt;a href="https://github.com/DanConwayDev/gitworkshop">Quell-Repository&lt;/a> koordiniert jetzt leitende Maintainer rekursiv, bewahrt die relay-Hinweise jedes Maintainers und hält die Repository-Synchronisierung unabhängig von der Annahme einer Einladung. Repository-übergreifende Verweise auf Arbeitselemente verbinden zusammengehörige Arbeit in verschiedenen Repositories, während GRASP Repository-Daten zu ausgewählten Git-Endpunkten kopiert, ohne diese Übertragung an die Zustellung einer Einladung zu koppeln. Das von einem Entwickler signierte &lt;a href="https://primal.net/e/01d0939e9960cb82f1f7aba6f1900af2c61ce384e38352221bf9d5878116ae2d">Update 3.1.1&lt;/a> korrigiert die Zustellung von Android-Signer-Intents, die rekursive Auflösung von Maintainern und Repository-Links unter Beibehaltung des Pfads.&lt;/p>
&lt;h3 id="mosaico-012-lässt-coding-agenten-ihren-status-über-nostr-teilen">Mosaico 0.1.2 lässt Coding-Agenten ihren Status über Nostr teilen&lt;/h3>
&lt;p>&lt;a href="https://github.com/pablof7z/mosaico/releases/tag/v0.1.2">Mosaico 0.1.2&lt;/a> ermöglicht Sitzungen von Coding-Agenten in Claude Code, Codex, Goose, Hermes, OpenCode und Grok, kurze Statusmeldungen über &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29 (relay-basierte Gruppen)&lt;/a> zu veröffentlichen. Sitzungen können zusammengehörige aktive Arbeiten über Hosts hinweg finden, ohne ihre Transkripte oder ihren Kontext zu teilen.&lt;/p>
&lt;p>Die Erkennung benannter Codex-Profile und Gooses Ansicht Top Of Mind machen diese gemeinsamen Statusinformationen in beiden Agentenwerkzeugen sichtbar (&lt;a href="https://github.com/pablof7z/mosaico/pull/618">PR #618&lt;/a>, &lt;a href="https://github.com/pablof7z/mosaico/pull/619">PR #619&lt;/a>). Das Release ermöglicht gehosteten Agenten wieder den Beitritt zur öffentlichen Schicht für Statusinformationen, und die Einrichtung erfordert nun die ausdrückliche Auswahl eines relay (&lt;a href="https://github.com/pablof7z/mosaico/pull/626">PR #626&lt;/a>, &lt;a href="https://github.com/pablof7z/mosaico/pull/629">PR #629&lt;/a>). Mosaico bleibt eine Schicht für Statusinformationen und ist weder Agenten-Host noch Orchestrator oder Werkzeug zur Zusammenführung von Transkripten.&lt;/p>
&lt;h3 id="nostrology-kartiert-die-konzentration-von-relay-listen-aus-veröffentlichten-nip-65-events">Nostrology kartiert die Konzentration von relay-Listen aus veröffentlichten NIP-65-events&lt;/h3>
&lt;p>&lt;a href="https://dev.nostrolo.gy/relays">Nostrologys relay-Observatorium&lt;/a> leitet seinen Datensatz aus dem neuesten &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65-event (Metadaten für relay-Listen)&lt;/a> mit kind &lt;code>10002&lt;/code> jedes Profils ab und folgt dabei der &lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">veröffentlichten Spezifikation&lt;/a>. Es trennt Lese-, Schreib- und kombinierte relay-Rollen, stellt grafisch dar, wie viele relays jedes Profil aufführt, und zeigt die zugrunde liegenden Zahlen in einer sortierbaren Tabelle. Bei der Veröffentlichungsprüfung am 29. Juli enthielt die Seite 34.430 verschiedene relay-URL-Werte und ordnete 520.468 Profile genau einem aufgeführten relay zu, verglichen mit 150.657 Profilen bei drei und 60.710 bei vier relays.&lt;/p>
&lt;p>Derselbe &lt;a href="https://dev.nostrolo.gy/relays">Nostrology-Snapshot&lt;/a> zeigt Überschneidungen in der Konzentration: &lt;code>relay.momostr.pink&lt;/code> ist in 298.859 Profilen eingetragen, &lt;code>relay.damus.io&lt;/code> in 287.181, &lt;code>nos.lol&lt;/code> in 279.468 und &lt;code>relay.primal.net&lt;/code> in 225.336. Diese Zahlen messen veröffentlichte Einträge in relay-Listen und nicht die Verfügbarkeit: Die Rohdatentabelle kann fehlerhafte URLs und lokale Adressen enthalten, während die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">NIP-65-Spezifikation&lt;/a> Routing-Metadaten definiert und den Zustand von relays nicht prüft. Das Observatorium macht Probleme bei Verbreitung und Datenqualität sichtbar, ohne ein aufgeführtes relay als aktives relay zu behandeln.&lt;/p>
&lt;h2 id="releases-mit-versions-tag">Releases mit Versions-Tag&lt;/h2>
&lt;h3 id="kairos-011-ergänzt-erinnerungen-und-eine-lokale-anweisung-für-astraea">Kairos 0.1.1 ergänzt Erinnerungen und eine lokale Anweisung für Astraea&lt;/h3>
&lt;p>&lt;a href="https://primal.net/e/ffb054280008dc3ba488d5d3a2cbfec6c4123489a874683545a29a466682fd90">Kairos 0.1.1&lt;/a> ergänzt Erinnerungen an Fälligkeitstermine, eine ausdrückliche lokale Anweisung für Astraea sowie eine strengere Behandlung von relays und URLs. Das &lt;a href="https://primal.net/e/6e02430844abdabf5421bbf5745a09ef2870e4ade93f56627ee14ba8db58a00a">signierte Release 0.1.0&lt;/a> führte den &lt;a href="https://github.com/Lwb89dev/kairos">Offline-First-Aufgabenmanager&lt;/a> ein, dessen optionale Synchronisierungsschicht mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (Verschlüsselte Nutzdaten)&lt;/a> verschlüsselte Datensätze auf vom Nutzer ausgewählte relays schreibt. Kairos verwendet deterministische Aufgabenkoordinaten und verschlüsselte Tombstones mit Löschanfragen nach &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09 (Anfrage zur event-Löschung)&lt;/a>, während rein lokale Aufgaben das Gerät nie verlassen.&lt;/p>
&lt;h3 id="bray-230-erweitert-sein-cli-um-allgemeines-gift-wrapping-und-eine-lokale-blossom-testoberfläche">Bray 2.3.0 erweitert sein CLI um allgemeines Gift Wrapping und eine lokale Blossom-Testoberfläche&lt;/h3>
&lt;p>&lt;a href="https://github.com/forgesworn/bray/releases/tag/v2.3.0">Bray 2.3.0&lt;/a>, ein Nostr-SDK und Kommandozeilen-Werkzeugpaket, kann beliebige events über &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a> verpacken und auspacken, wobei das Signieren über &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46 (Nostr Connect)&lt;/a> geleitet wird, wenn ein Bunker den Schlüssel verwahrt. &lt;a href="https://github.com/forgesworn/bray/pull/75">PR #75&lt;/a> versieht außerdem das mitgelieferte Test-relay mit Herausforderungen nach &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42 (Authentifizierung von Clients bei relays)&lt;/a> und stellt die verbleibenden Blossom-Client-Befehle bereit. &lt;a href="https://github.com/forgesworn/bray/pull/77">PR #77&lt;/a> ergänzt einen speicherinternen BUD-01/02-Server, dessen signierte Autorisierung jeden Upload oder jede Löschung an genau einen Blob bindet, während &lt;a href="https://github.com/forgesworn/bray/pull/76">PR #76&lt;/a> benannte event-kinds, Kurzformen für tags und Flags für den ID-Abgleich nach &lt;a href="https://nostrcompass.org/de/topics/nip-77/">NIP-77&lt;/a> ergänzt, damit events, die ein Aufrufer bereits besitzt, nicht erneut heruntergeladen werden.&lt;/p>
&lt;h3 id="buzz-desktop-050-verschärft-einladungen-suche-und-aktualisierungen-der-relay-identität">Buzz Desktop 0.5.0 verschärft Einladungen, Suche und Aktualisierungen der relay-Identität&lt;/h3>
&lt;p>Nach der Berichterstattung der vergangenen Woche über den Workspace von Armada und Buzz ergänzt &lt;a href="https://github.com/block/buzz/releases/tag/v0.5.0">Buzz Desktop 0.5.0&lt;/a> Einladungslinks mit begrenzter Nutzungszahl (&lt;a href="https://github.com/block/buzz/pull/3141">PR #3141&lt;/a>) und Suchfilter für Autor, Kanal und Zeitgrenzen (&lt;a href="https://github.com/block/buzz/pull/2871">PR #2871&lt;/a>). &lt;a href="https://github.com/block/buzz/pull/2862">PR #2862&lt;/a> ruft Beitrittsrichtlinien über die native Netzwerkschicht der Desktop-App ab, und &lt;a href="https://github.com/block/buzz/pull/2607">PR #2607&lt;/a> veröffentlicht den Identitätsdatensatz eines Agenten erneut, nachdem die Umbenennung einer Persona das relay erreicht hat. Das Release aktualisiert außerdem seine Nostr-Abhängigkeit wegen eines &lt;a href="https://github.com/block/buzz/pull/3135">Hinweises auf Remote-Denial-of-Service in NIP-44&lt;/a> und korrigiert die Wiederherstellung des lokalen Speichers, die Positionierung in Threads, die Wiederverbindung zu relays sowie Laufzeitpfade unter Linux und Windows.&lt;/p>
&lt;h3 id="shosho-100-erweitert-seinen-marktplatz-für-livestreams">Shosho 1.0.0 erweitert seinen Marktplatz für Livestreams&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v1.0.0">Shosho 1.0.0&lt;/a> gestaltet den Marktplatz für Livestreams rund um Kreative, Live-Sitzungen, Clips und Produkte neu, die Nutzer über eine konfigurierbare relay-Suche finden können. Ein einheitlicher Benachrichtigungs-Feed sammelt nun Erwähnungen, Reaktionen, Reposts und zaps und unterstützt Antworten, ohne den Feed zu verlassen. Zuschauer können Clips aus Livestreams oder Wiederholungen veröffentlichen; außerdem verbessert das Release Thread-Chats, Antworten auf Clips, das Laden von Profilen und die Netzwerknutzung.&lt;/p>
&lt;h3 id="mafrend-v10-gibt-einen-ausblick-auf-ortsbezogene-nostr-chats-unter-android">Mafrend v1.0 gibt einen Ausblick auf ortsbezogene Nostr-Chats unter Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/DestBro/mafrend-zapstore/releases/tag/v1.0">Mafrend v1.0&lt;/a> ist die erste öffentliche Android-Alpha einer geplanten App für ortsbezogene Nostr-Chats. Die &lt;a href="https://mafrend.com">Projektseite&lt;/a> bezeichnet den Funktionsumfang als noch in aktiver Entwicklung und beschreibt jeden Kartenort als eigenen Chatraum für Gespräche rund um einen Ort. Ein öffentliches Release-Repository enthält das installierbare Zapstore-Paket, während die Haupt-App privat bleibt.&lt;/p>
&lt;h3 id="hanami-010-bietet-blossom-servern-einen-durch-signer-vermittelten-android-zugang">Hanami 0.1.0 bietet Blossom-Servern einen durch Signer vermittelten Android-Zugang&lt;/h3>
&lt;p>&lt;a href="https://github.com/Letdown2491/hanami-android/releases/tag/v0.1.0">Hanami 0.1.0&lt;/a>, eine Android-Begleit-App für &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server, ermöglicht Anmeldung, Upload und Download per Smartphone. Die App verwendet &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android-Signer-Anwendung)&lt;/a> für ein Signieren mit Bestätigung und einen nativen Handshake nach &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98 (HTTP-Authentifizierung)&lt;/a> für die Serversitzung. Hanami beschränkt seine Web-Shell und Signierbrücke auf den Ursprung des ausgewählten Servers, sodass die Zugangsdaten beim Signer verbleiben, während die bestehende Weboberfläche des Servers das Nutzungserlebnis bereitstellt. Das erste öffentliche Release erfordert Android 8 oder neuer, einen erreichbaren Hanami-Server und eine kompatible Signer-App.&lt;/p>
&lt;h3 id="cordn-startet-seinen-gruppenchat-mit-nostr-identität-unter-android">Cordn startet seinen Gruppenchat mit Nostr-Identität unter Android&lt;/h3>
&lt;p>Cordn, ein Client für private Gruppennachrichten, bietet Android-Nutzern nun einen Einstieg mit Nostr-Identität, Profilverknüpfungen über &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05 (Zuordnung von Nostr-Schlüsseln zu DNS-basierten Internetkennungen)&lt;/a> und verifizierte Links, die Cordn-Ziele in der App öffnen. Das &lt;a href="https://github.com/Cordn-msg/cordn-web/releases/tag/v0.2.1">am 24. Juli veröffentlichte Release 0.2.1&lt;/a> führt diese native Produktlinie neben dem bestehenden Webclient ein. Nachrichten verwenden &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>, ein Protokoll zur Gruppenverschlüsselung, mit durch einen Koordinator unterstützter Zustellung, sodass Gruppen geordnete verschlüsselte Unterhaltungen behalten, ohne eine E-Mail-Adresse oder Telefonnummer zu benötigen.&lt;/p>
&lt;h3 id="nostur-1301-korrigiert-threads-und-doppelte-beiträge-nachdem-1300-die-freigabefunktionen-erweitert-hatte">Nostur 1.30.1 korrigiert Threads und doppelte Beiträge, nachdem 1.30.0 die Freigabefunktionen erweitert hatte&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/1.30.1">Nostur 1.30.1&lt;/a>, ein Nostr-Client für iPhone, iPad und Mac, lässt Nutzer durch verschachtelte Antwort-Threads navigieren, ohne dass die Fehler beim Auf- und Zuklappen auftreten, die das neue Layout beeinträchtigt hatten. Es verhindert außerdem, dass derselbe Entwurf zweimal veröffentlicht wird, auch wenn Callbacks beim Medien-Upload wiederholt eintreffen. Das Release folgt auf &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/1.30.0">1.30.0&lt;/a>, das verschwindende Direktnachrichten und einen Weg über das Teilen-Menü ergänzt hatte, um Medien an Nostr zu senden. Damit verbindet die App neue Wege für Nachrichten und Veröffentlichungen mit Korrekturen an den alltäglichen Abläufen für Threads und Beiträge.&lt;/p>
&lt;h3 id="formstr-drive-002-verbindet-nostr-dateimetadaten-mit-blossom-blobs">Formstr Drive 0.0.2 verbindet Nostr-Dateimetadaten mit Blossom-Blobs&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/formstr-drive/releases/tag/v0.0.2">Formstr Drive 0.0.2&lt;/a>, ein Nostr-nativer Dateimanager, bietet Nutzern Vorschauen in der App und die Option, Office-Dokumente in Nostr Docs zu öffnen. Im Hintergrund speichert er große Dateien als in Stücke aufgeteilte &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Blobs und löscht den entfernten Blob, wenn ein Nutzer eine Datei entfernt. Ein lokales relay hält die Nostr-Metadaten der App in unmittelbarer Nähe, während Blossom die Dateidaten verwahrt. Dies trennt die Dateiorganisation von den großen Datenmengen selbst.&lt;/p>
&lt;h3 id="noornote-131">NoorNote 1.3.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote/releases/tag/v1.3.1">NoorNote 1.3.1&lt;/a>, ein Nostr-Client für Web, Desktop und Android, ergänzt Timer für verschwindende Nachrichten und konfiguriert funktionierende Standard-DM-relays für neu erstellte Konten. Es filtert globale Artikel ohne Titelbild und leitet Repost-Benachrichtigungen in die Artikelansicht. Das vorherige &lt;a href="https://github.com/77elements/noornote/releases/tag/v1.3.0">Release 1.3.0&lt;/a> ergänzte Karten für &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53 (Live-Aktivitäten)&lt;/a>, Personen-tags für &lt;a href="https://nostrcompass.org/de/topics/nip-68/">NIP-68 (Bildorientierte Feeds)&lt;/a>, einen Soft Mute über &lt;a href="https://nostrcompass.org/de/topics/nip-78/">NIP-78 (Anwendungsdaten)&lt;/a> und einen relay-seen-Status für Notizen.&lt;/p>
&lt;h3 id="algia-00133">algia 0.0.133&lt;/h3>
&lt;p>&lt;a href="https://github.com/mattn/algia/releases/tag/v0.0.133">algia 0.0.133&lt;/a>, ein Go-Kommandozeilen-Client für Nostr, folgt auf &lt;a href="https://github.com/mattn/algia/releases/tag/v0.0.132">0.0.132&lt;/a>, das Auflistung, Timelines, Beiträge, Reaktionen, Löschungen sowie Beitritts- und Austrittsabläufe für &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29 (relay-basierte Gruppen)&lt;/a> ergänzte. Dasselbe Release fügte eine Vorabauthentifizierung nach &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42 (Authentifizierung von Clients bei relays)&lt;/a> für relays hinzu, die dies laut Konfiguration erfordern. Version 0.0.133 ergänzte anschließend die Befehle für reguläre, Kanal- und Gruppenbeiträge um Uploads lokaler Bilder und hängt die resultierenden URLs sowie tags nach &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92 (Medienanhänge)&lt;/a> an jedes event an. Auch reine Bildbeiträge funktionieren, und Gruppenbeiträge verwenden standardmäßig den Medienspeicher des Gruppen-relay, während andere Beiträge konfigurierte Dateiserver nutzen.&lt;/p>
&lt;h3 id="swift-nostr-070">swift-nostr 0.7.0&lt;/h3>
&lt;p>Für Swift-Anwendungen ermöglicht &lt;a href="https://github.com/yysskk/swift-nostr/releases/tag/0.7.0">swift-nostr 0.7.0&lt;/a>, eine Nostr-Bibliothek für Apple-Plattformen, dass ein &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46-Remote-Signer&lt;/a> über ihre Signierabstraktion sämtliche Client-Funktionen bedient. Das Release ergänzt Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98 (HTTP-Authentifizierung)&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29 (relay-basierte Gruppen)&lt;/a>, einschließlich Abläufen für Gruppenbeitritt, Beiträge und Moderation. Es validiert außerdem das Padding von &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (Verschlüsselte Nutzdaten, versioniert)&lt;/a> anhand der offiziellen Vektoren und weist Nutzdaten zurück, die einen gültigen MAC für nicht kanonisches Padding enthalten.&lt;/p>
&lt;h3 id="lawallet-nwc-200">lawallet-nwc 2.0.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/lawalletio/lawallet-nwc/releases/tag/v2.0.0">LaWallet NWC 2.0.0&lt;/a>, ein mit Nostr verbundenes Wallet und ein Dienst für &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>, ergänzt eine Passkey-Anmeldung, die den Nostr-Signierschlüssel im Browser mit der WebAuthn-PRF-Erweiterung ableitet. Der Server erhält dieses Geheimnis nie, und derselbe Passkey kann denselben Schlüssel auf einem anderen synchronisierten Gerät wiederherstellen. Konten können nun mehrere Nostr-pubkeys verknüpfen und zusammenführen, während der optionale Listener-Dienst Wallet-Connect-events weiterleitet und die Webhook-Zustellung nach einem nicht erreichbaren Endpunkt erneut versucht.&lt;/p>
&lt;h3 id="mdk-0910">MDK 0.9.10&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.9.10">MDK 0.9.10&lt;/a>, die Rust-Implementierung des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot-Protokolls&lt;/a>, bewahrt ausstehende Sendevorgänge, solange ein Transport inaktiv ist, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/1157">überwacht die Weiterleitung von relay-Benachrichtigungen&lt;/a>, sodass die eingehende Zustellung nach Verzögerung, Panic oder Schließung wiederhergestellt wird. &lt;a href="https://github.com/marmot-protocol/mdk/pull/1159">PR #1159&lt;/a> ergänzt einen dauerhaften, paginierten Gesprächsverlauf und den vollständigen Antwortkontext für lokale Agenten, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/1167">PR #1167&lt;/a> veröffentlicht das aktuelle signierte KeyPackage-event erneut, statt einen Ersatz zu erzeugen. Das Release bewahrt außerdem die manuelle Chat-Reihenfolge, unterstützt die endgültige Auflösung von Gruppen und erweitert die nach Web of Trust gewichtete Suche, relay-Richtlinien-APIs und Sprachbindungen.&lt;/p>
&lt;h3 id="pakstr-031">pakstr 0.3.1&lt;/h3>
&lt;p>&lt;a href="https://git.nostrdev.com/stuff/pakstr/releases/tag/v0.3.1">pakstr 0.3.1&lt;/a> ermöglicht Webteams, die einen Nostr-Client für Android paketieren, Laufzeitkonfiguration und einen API-Proxy bereitzustellen, ohne die App-Shell neu zu bauen. Seine &lt;a href="https://git.nostrdev.com/stuff/pakstr/releases">Release-Serie vom selben Tag&lt;/a> ergänzte eine Amber-Signer-Brücke, Ver- und Entschlüsselung nach &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (verschlüsselte Nutzdaten)&lt;/a> und korrigierte die Einfügung von Android-Berechtigungen vor der Arbeit an der Laufzeitkonfiguration in 0.3.x. Das Grundgerüst hält gebündelte Web-Assets lokal, während bereitstellungsspezifische Einstellungen zur Laufzeit bereitgestellt werden, und der Proxy bietet der verpackten App einen kontrollierten Weg für API-Anfragen neben ihren gewöhnlichen relay-Verbindungen.&lt;/p>
&lt;h3 id="ditto-2342">Ditto 2.34.2&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/ditto/-/releases/v2.34.2">Ditto 2.34.2&lt;/a>, ein anpassbarer sozialer Nostr-Client, stellt Nutzerstatus als Karten in Feeds, Detailseiten und eingebetteten Zitaten dar, einschließlich benutzerdefinierter Emojis, Ablaufzeit und optionaler Linkvorschau. Zaps mit Kommentaren erscheinen nun als Antworten unter dem referenzierten Beitrag. Das Release behält außerdem den &lt;a href="https://gitlab.com/soapbox-pub/ditto/-/releases/v2.34.1">optionalen Globus-Button auf Profilen aus 2.34.1&lt;/a> für Betreiber bei, die eine Stamm-Website nach &lt;a href="https://nostrcompass.org/de/topics/nip-5a/">NIP-5A (Website-Manifest)&lt;/a> veröffentlichen, und korrigiert die Navigation auf der Startseite, die Livestream-Suche, die Behandlung externer Links und fehlerhafte benutzerdefinierte Emojis.&lt;/p>
&lt;h3 id="earthly-009">Earthly 0.0.9&lt;/h3>
&lt;p>&lt;a href="https://github.com/zeSchlausKwab/earthly/releases/tag/v0.0.9">Earthly 0.0.9&lt;/a>, ein kollaborativer, auf Nostr aufgebauter Karteneditor, hält Likes nun sichtbar, wenn sich die Seitenleiste eines Kartenobjekts schließt, erneut öffnet oder aktualisiert. Sein Ablauf für &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57 (Lightning-zaps)&lt;/a> sendet gültiges JSON für zap-Anfragen, damit Lightning-Anbieter verifizierte Belege über öffentlich erreichbare relays veröffentlichen können, auch während der lokalen Entwicklung. Erzeugte Rechnungen bleiben beim Wechsel zwischen Objektansichten sichtbar, und die App zeigt eine Bestätigung, sobald ein verifizierter Beleg eintrifft.&lt;/p>
&lt;h2 id="in-entwicklung">In Entwicklung&lt;/h2>
&lt;h3 id="keep-ergänzt-kind-bezogenes-signieren-mit-nip-44-v3-und-verschärft-die-bestätigungsrichtlinie">Keep ergänzt kind-bezogenes Signieren mit NIP-44 v3 und verschärft die Bestätigungsrichtlinie&lt;/h3>
&lt;p>Keep hat fünf Änderungen am Android-Signer gemergt, die Anfragen zur Ver- und Entschlüsselung mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (Verschlüsselte Nutzdaten)&lt;/a> v3 sowohl durch die Transporte nach &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android-Signer-Anwendung)&lt;/a> als auch durch seinen &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46 (Nostr Connect)&lt;/a>-Bunker leiten. &lt;a href="https://github.com/privkeyio/keep-android/pull/451">PRs #451&lt;/a>, &lt;a href="https://github.com/privkeyio/keep-android/pull/452">#452&lt;/a> und &lt;a href="https://github.com/privkeyio/keep-android/pull/453">#453&lt;/a> halten Freigaben für v3 von v2 getrennt, begrenzen sie nach event-kind, weisen fehlende oder ungültige kinds zurück und bewahren Bestätigungsanfragen, die aus Benachrichtigungen geöffnet wurden. &lt;a href="https://github.com/privkeyio/keep-android/pull/454">PRs #454&lt;/a> und &lt;a href="https://github.com/privkeyio/keep-android/pull/455">#455&lt;/a> behandeln die Basic-Signierrichtlinie nicht mehr als Auto und verschieben die globale Auswahl in den verschlüsselten Speicher des Kerns. Die Maintainer von Keep mergten alle fünf Änderungen nach dem jüngsten getaggten Android-Release.&lt;/p>
&lt;h3 id="routstrd-ändert-nach-einer-nicht-authentifizierten-offenlegung-seine-standardmäßige-netzwerkbindung">Routstrd ändert nach einer nicht authentifizierten Offenlegung seine standardmäßige Netzwerkbindung&lt;/h3>
&lt;p>Routstrd &lt;a href="https://github.com/Routstr/routstrd/pull/56">PR #56&lt;/a> ändert die standardmäßige Bind-Adresse des lokalen Nostr-Inferenzrouters von allen Netzwerkschnittstellen zu &lt;code>127.0.0.1&lt;/code>. Der frühere Standard machte Endpunkte für Wallet-Guthaben, Verlauf, Zugriff, Senden, Rückerstattung, API-Schlüssel, Anbieter, Client, Nutzung und Daemon-Stopp ohne Authentifizierung für jeden Host zugänglich, der den Port erreichen konnte. Betreiber können weiterhin ausdrücklich eine nicht lokale Bindung konfigurieren, aber die gemergte Änderung beschränkt eine neue Bereitstellung standardmäßig auf den lokalen Rechner und ist noch nicht in einem Release mit Versions-Tag erschienen.&lt;/p>
&lt;h3 id="imwald-android-verdeutlicht-den-status-von-offline-veröffentlichungen">Imwald Android verdeutlicht den Status von Offline-Veröffentlichungen&lt;/h3>
&lt;p>Imwald Android, ein Android-Nostr-Client, behandelt die Bestätigung eines lokalen relay nun nur dann als abgeschlossene Veröffentlichung, wenn jedes konfigurierte Ziel lokal ist. Seine &lt;a href="https://git.imwald.eu/silberengel/imwald-android/commit/f4de9f61df35110c77d2e5f99d764c0df176962b">Korrektur für Offline-Veröffentlichung und Outbox&lt;/a> lässt die Remote-Zustellung ausstehend, wenn ein lokales relay das event angenommen hat, die konfigurierten entfernten relays jedoch noch nicht. Dadurch unterscheidet der Veröffentlichungsbericht zwischen der gerätelokalen Speicherung und der Zustellung an relays.&lt;/p>
&lt;h3 id="fips-ergänzt-eine-openwrt-zugriffsschicht-eine-portierung-auf-freebsd-wird-weiterhin-geprüft">FIPS ergänzt eine OpenWrt-Zugriffsschicht; eine Portierung auf FreeBSD wird weiterhin geprüft&lt;/h3>
&lt;p>Das Nostr-native Free Internetworking Peering System ermöglicht einem OpenWrt-Router nun über den &lt;a href="https://github.com/jmcorgan/fips/pull/126">gemergten PR #126&lt;/a>, ein offenes &lt;code>!FIPS&lt;/code>-Zugangsnetzwerk bereitzustellen. Der parallele, weiterhin offene &lt;a href="https://github.com/jmcorgan/fips/pull/129">FreeBSD-PR #129&lt;/a> schlägt die Portierung des Daemons, des TUN-Datenpfads, der Namensauflösung für &lt;code>.fips&lt;/code>, der Dienstverwaltung und des nativen Paketbaus vor. Der OpenWrt-Merge erweitert den Zugriff bereits heute, während die FreeBSD-Arbeit ihn auf ein weiteres universelles Betriebssystem ausdehnen würde.&lt;/p>
&lt;p>Ein &lt;a href="https://primal.net/e/d0afe733f75e909341ab7f39834883968df097472238a474df3a3346c5d38f51">FIPS-Projektupdate&lt;/a> vom 26. Juli meldete mehr als 300 Knoten in seinem öffentlichen UDP-Overlay und ein breiteres Mesh, das sich 2.000 Knoten nähert. Das &lt;a href="https://github.com/jmcorgan/fips">FIPS-Repository&lt;/a> härtete in derselben Woche parallele Netzwerktests, die Kontinuität beim Schlüsseltausch, das Verhalten von Hop-Limits, Firewall-Prüfungen und die Isolation des NAT-Labors. Die Arbeit am Repository stellt Betreibern reproduzierbare Prüfungen für diese Verhaltensweisen bereit, während das Netzwerk wächst.&lt;/p>
&lt;h3 id="zap-cooking-plant-beiträge-und-bindet-scanner-anfragen">Zap Cooking plant Beiträge und bindet Scanner-Anfragen&lt;/h3>
&lt;p>Zap Cooking, eine Nostr-App zum Teilen von Rezepten und Planen von Mahlzeiten, kann einen geplanten Beitrag nun im verschlüsselten Speicher halten und ihn bei Fälligkeit über eine periodische Abfrage von relays veröffentlichen (&lt;a href="https://github.com/zapcooking/frontend/pull/566">PR #566&lt;/a>, &lt;a href="https://github.com/zapcooking/frontend/pull/569">PR #569&lt;/a>). So erhalten Nutzer einen Weg zur geplanten Veröffentlichung, ohne unsignierte Beitragsinhalte in der Datenbank des Schedulers offenzulegen.&lt;/p>
&lt;p>Der Kühlschrankscanner authentifiziert nun den genauen Anfragekörper mit HTTP-Authentifizierung nach &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a>, sodass Mitgliedschaftsprüfungen auf dem Schlüssel beruhen, der die Scananfrage signiert hat, und nicht auf einem im Anfragekörper angegebenen pubkey (&lt;a href="https://github.com/zapcooking/frontend/pull/599">PR #599&lt;/a>).&lt;/p>
&lt;h3 id="citrine-macht-ein-android-gerät-zu-einem-verwaltbaren-relay">Citrine macht ein Android-Gerät zu einem verwaltbaren relay&lt;/h3>
&lt;p>Citrine, ein auf Android gehostetes Nostr-relay, kann gespeicherte events nun an externe relays senden und bietet Betreibern damit eine Möglichkeit, den lokalen Verlauf erneut zu übertragen (&lt;a href="https://github.com/greenart7c3/Citrine/pull/179">PR #179&lt;/a>). Es ergänzt außerdem Befehle nach &lt;a href="https://nostrcompass.org/de/topics/nip-86/">NIP-86 (relay-Verwaltungs-API)&lt;/a>, damit kompatible Clients das relay verwalten können (&lt;a href="https://github.com/greenart7c3/Citrine/pull/150">PR #150&lt;/a>).&lt;/p>
&lt;p>Gruppenbetreiber können relay-basierte Gruppen nach &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> per Amber-Signatur in &lt;a href="https://github.com/greenart7c3/Citrine/pull/178">PR #178&lt;/a> verwalten, während &lt;a href="https://github.com/greenart7c3/Citrine/pull/174">PR #174&lt;/a> die Tor-gestützte relay-Konfiguration und den Lebenszykluszustand über Neustarts hinweg im Einklang hält.&lt;/p>
&lt;h3 id="wired-stellt-vollständige-unterhaltungen-im-browser-wieder-her">Wired stellt vollständige Unterhaltungen im Browser wieder her&lt;/h3>
&lt;p>Wired, ein browserbasierter Nostr-Client, verfolgt Feed-Wurzeln, Antworten und referenzierte events nun bis zum Abschluss, anstatt bei festen Grenzwerten für Suchbreite oder Ergebniszahl anzuhalten (&lt;a href="https://github.com/smolgrrr/Wired/pull/148">PR #148&lt;/a>, &lt;a href="https://github.com/smolgrrr/Wired/pull/147">PR #147&lt;/a>, &lt;a href="https://github.com/smolgrrr/Wired/pull/146">PR #146&lt;/a>). Nutzer können dadurch tiefere Threads und Feed-Kontext wiederherstellen, wenn die relevanten events über ihre relays verfügbar sind.&lt;/p>
&lt;p>Der Browser bewahrt außerdem relay-Hinweise an referenzierten events und verwendet sie nur für weiterhin fehlenden Kontext. Damit stellt er Unterhaltungen wieder her, die konfigurierte relays nicht enthalten (&lt;a href="https://github.com/smolgrrr/Wired/pull/145">PR #145&lt;/a>, &lt;a href="https://github.com/smolgrrr/Wired/pull/144">PR #144&lt;/a>). Ein unvollständiger Abruf bleibt von einem abgeschlossenen Snapshot getrennt, sodass eine Teilantwort die vorherige zwischengespeicherte Ansicht nicht überschreibt.&lt;/p>
&lt;h2 id="protokoll--und-spezifikationsarbeit">Protokoll- und Spezifikationsarbeit&lt;/h2>
&lt;h3 id="nips-hosting-grenze-von-nip-34-gruppenmigration-und-drei-aktive-entwürfe">NIPs: Hosting-Grenze von NIP-34, Gruppenmigration und drei aktive Entwürfe&lt;/h3>
&lt;p>In dieser Woche wurden zwei Spezifikationsänderungen gemergt. &lt;a href="https://github.com/nostr-protocol/nips/commit/6d2979b3f503a8539c983efbcdcf901bbcf9ed23">NIP-34-Commit 6d2979b&lt;/a> entfernt GRASP-Hosting-Anweisungen aus der Pull-Request-Beschreibung für &lt;code>kind:1618&lt;/code>, sodass Hosting- und Fallback-Verhalten außerhalb des event-Vertrags bleiben. &lt;a href="https://github.com/nostr-protocol/nips/commit/db5fe3de8c5d1443b634c9bbf66ecb004f337057">NIP-29-Commit db5fe3d&lt;/a> definiert, wie Metadaten von relay-Gruppen zu einem anderen relay migrieren und wie Clients einen gültigen Umzug von einem unabhängig fortbestehenden Fork unterscheiden.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2424">PR #2424&lt;/a> schlägt gegenseitige Deklarationen von Schlüsselsätzen mit &lt;code>kind:10045&lt;/code> vor. Das Erfordernis der Gegenseitigkeit würde verhindern, dass eine Identität einseitig einen anderen Schlüssel zuordnet. &lt;a href="https://github.com/nostr-protocol/nips/pull/2421">PR #2421&lt;/a> schlägt BOLT12-zap-Absichten und Zahlernachweise vor, die Clients anhand von Ziel, Betrag, Angebot und abgeschlossener Zahlung validieren können, ohne von einem vom Empfänger betriebenen Belegserver abhängig zu sein.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2425">PR #2425&lt;/a> würde NIP-B0-Lesezeichen erlauben, neben Web-URLs auch Nicht-HTTP-Schemata wie &lt;code>nostr:&lt;/code> beizubehalten. Dadurch blieben native Nostr-Kennungen, Zahlungsanfragen und andere Anwendungsschemata in denselben privaten oder öffentlichen Lesezeichenlisten erhalten, die bereits Webadressen enthalten.&lt;/p>
&lt;h3 id="mill-implementiert-einen-entwurf-zur-schlüsselsicherung-über-cloud-konten">Mill implementiert einen Entwurf zur Schlüsselsicherung über Cloud-Konten&lt;/h3>
&lt;p>Mill &lt;a href="https://primal.net/e/6362d9b00662fa64200530f8a29ae547521bac0a1e3c9379ef9086eac7d2030b">kündigte&lt;/a> einen implementierten &lt;a href="https://github.com/0ceanSlim/nostr-mill/blob/main/docs/nip-cloud-key-backup.md">Entwurf zur Schlüsselsicherung über Cloud-Konten&lt;/a> an, der die Kennung eines Google-OIDC-Kontos mit einer Passphrase hoher Entropie kombiniert, um einen temporären Sicherungsschlüssel abzuleiten. Seine &lt;a href="https://github.com/0ceanSlim/nostr-mill/blob/main/src/nipbackup.js">Referenzimplementierung&lt;/a> verschlüsselt den echten Schlüssel des Nutzers als &lt;code>ncryptsec&lt;/code> nach &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49 (Verschlüsselung privater Schlüssel)&lt;/a> und speichert ihn anschließend in einem vorläufigen, parametrisiert ersetzbaren event mit kind &lt;code>30049&lt;/code> auf konfigurierten relays. Das Projekt hat &lt;a href="https://github.com/0ceanSlim/nostr-mill/commit/eeb4b9114d02114b703a6823ad36ca8063b224da">den Sicherungsablauf in main gemergt&lt;/a>, doch kein Release nach v1.0.0 enthält ihn, und der Sicherungsablauf bleibt deaktiviert, sofern ein Betreiber keine eigenen &lt;code>backupRelays&lt;/code> angibt. Ein versionierter relay-Satz bleibt vorläufig, und der Entwurf warnt davor, dass veröffentlichter Geheimtext für Offline-Versuche zum Erraten der Passphrase verfügbar bleibt. Leser sollten das Design als implementiertes Experiment behandeln, das von einer Passphrase hoher Entropie abhängt.&lt;/p>
&lt;h3 id="buds-blossom-server-können-unbekannte-uploads-anhand-ihrer-bytes-identifizieren">BUDs: Blossom-Server können unbekannte Uploads anhand ihrer Bytes identifizieren&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/blossom/pull/110">BUD-02 PR #110&lt;/a> schlägt vor, eine serverseitige MIME-Erkennung zu empfehlen, wenn ein Uploader &lt;code>Content-Type&lt;/code> auslässt oder &lt;code>application/octet-stream&lt;/code> sendet. Ein Blossom-Server würde die ersten Bytes mit einer gepflegten Bibliothek zur Dateityperkennung untersuchen, einen spezifischen vom Client angegebenen Typ beibehalten und auf den generischen Binärtyp zurückfallen, wenn die Erkennung scheitert. Damit blieben Bilder, Audio-, Video- und von Agenten erzeugte Dateien darstellbar, ohne Byte-Sniffing für jeden Upload vorzuschreiben.&lt;/p>
&lt;h3 id="naps-konventionen-ersetzen-nummerierte-reihen-während-sich-verträge-für-aufnahme-und-dateisystem-entwickeln">NAPs: Konventionen ersetzen nummerierte Reihen, während sich Verträge für Aufnahme und Dateisystem entwickeln&lt;/h3>
&lt;p>&lt;a href="https://github.com/napplet/naps/pull/87">PR #87&lt;/a> entfernt die nummerierte, Napplet-übergreifende Protokollreihe und hält Laufzeitfunktionen unter benannten Verträgen, während sich Anwendungsnachrichten auf Konventions-URIs nach dem Muster &lt;code>napplet:&amp;lt;archetype&amp;gt;/&amp;lt;intent&amp;gt;&lt;/code> zubewegen. Die gemergte &lt;a href="https://github.com/napplet/naps/pull/89">Änderung der Themenidentität&lt;/a> trennt einen stabilen Konventionspfad ohne Query-Parameter von Nutzdaten einzelner Nachrichten, und &lt;a href="https://github.com/napplet/naps/pull/90">PR #90&lt;/a> wendet diese Transpositionsregel auf Erkennungs- und Handler-Metadaten an.&lt;/p>
&lt;p>Zwei NAP-Entwürfe erweitern die Vertrauensgrenze der Shell. &lt;a href="https://github.com/napplet/naps/pull/94">NAP-CAPTURE PR #94&lt;/a> hält die Zustimmung zur Mikrofonnutzung, Plattformberechtigung, Grenzen, Aufbewahrung und Beendigung in der Laufzeitumgebung, während ein begrenztes Medienartefakt an ein Napplet in einer Sandbox zurückgegeben wird. &lt;a href="https://github.com/napplet/naps/pull/88">NAP-FS PR #88&lt;/a> ist der parallele Vorschlag für ein virtuelles Dateisystem mit richtliniengebundenen Handles anstelle uneingeschränkter Host-Pfade.&lt;/p>
&lt;h3 id="marmot-die-spezifikation-definiert-einen-endgültigen-gruppenzustand">Marmot: Die Spezifikation definiert einen endgültigen Gruppenzustand&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot/pull/409">Marmot PR #409&lt;/a> ergänzt einen authentifizierten, unumkehrbaren Zustand &lt;code>Disbanded&lt;/code>, da MLS selbst keine Operation zur Gruppenlöschung besitzt. Ein autorisierter Admin-Commit verschiebt eine Gruppe aus &lt;code>Active&lt;/code>, verhindert ihre Wiederbelebung durch alte Zweige, Nachrichten und Welcomes und bietet bestehenden Gruppen einen ausdrücklichen Kompatibilitätspfad, bevor sie sich auflösen können. Die vorangegangene &lt;a href="https://github.com/marmot-protocol/marmot/pull/408">Überarbeitung von Spezifikations-Issues&lt;/a> brachte außerdem die Autorität über Gruppenzustände, Konvergenz, Key Packages, Bestätigungen, Medienregeln, Registry-Sprache und 200 erfasste Spezifikations-Issues in Einklang.&lt;/p>
&lt;h3 id="gamma-markets-keine-öffentlichen-spezifikationsänderungen-veröffentlicht">Gamma Markets: Keine öffentlichen Spezifikationsänderungen veröffentlicht&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/GammaMarkets/market-spec">Spezifikations-Repository von Gamma Markets&lt;/a> verzeichnete vom 21. bis zum 28. Juli keine öffentlichen Commits oder Pull-Request-Aktivitäten. Seine veröffentlichten Dokumente zu Aufträgen, Abwicklung und Marktdaten bleiben die aktuelle Grundlage; dieser Eintrag ohne Änderungen hält Gamma in der wöchentlichen Spezifikationsübersicht sichtbar.&lt;/p>
&lt;h3 id="concord-lese--und-schreibfunktionen-könnten-innerhalb-einer-plane-getrennt-werden">Concord: Lese- und Schreibfunktionen könnten innerhalb einer Plane getrennt werden&lt;/h3>
&lt;p>&lt;a href="https://github.com/concord-protocol/concord/pull/12">Concord PR #12&lt;/a> bleibt ein offener Entwurf für Planes, in denen nicht alle Leser auch schreiben dürfen. Er entwickelt die Control Plane in Richtung getrennter Berechtigungen für Lese- und Schreib-Streams weiter und skizziert Kanäle mit eingeschränktem Schreibzugriff, Einladungen und Bereiche für die Schlüsselneuvergabe. Der Schreibschlüssel dient im Entwurf als Spam-Schranke, während signierte innere Akteure und Prüfungen der Mitgliederliste weiterhin Autorität vermitteln.&lt;/p>
&lt;h3 id="nwc-eine-wallet-methode-kann-zwischen-bolt11-und-bolt12-wählen">NWC: Eine Wallet-Methode kann zwischen BOLT11 und BOLT12 wählen&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-wallet-connect/nwc/pull/2">NWC PR #2&lt;/a> schlägt optionale Methoden &lt;code>pay&lt;/code> und &lt;code>receive&lt;/code> für BIP-321-Zahlungs-URIs vor. Ein Wallet-Dienst kann Unterstützung ankündigen, eine kompatible BOLT11-Rechnung oder ein BOLT12-Angebot aus einem URI auswählen, vor der Zahlung ein abweichendes Bitcoin-Netzwerk zurückweisen und melden, welchen Anweisungstyp er verwendet hat. Der Vorschlag bleibt außerhalb des NWC-Kerns, sodass Wallets ohne Unterstützung für BIP-321 oder BOLT12 ihn nicht implementieren müssen.&lt;/p>
&lt;h2 id="sechs-jahre-nostr-im-juli">Sechs Jahre Nostr im Juli&lt;/h2>
&lt;p>Diese Juli-Chronik verfolgt wiederkehrende Probleme von Nostr: lesbare Kennungen, relay-Filterung, portable Anwendungsdaten, Datenschutz und Interoperabilität. Über sechs Jahre hinweg verwandelt jede Schicht eine punktuelle Korrektur in gemeinsam genutzte Infrastruktur: Namen werden zu Profilen, Filter zu Anwendungsverträgen, und der über relays transportierte Zustand weitet sich von Notizen auf Live-Räume und Gruppen aus. Sie beginnt mit &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/1ce00bd3b6909f78f212a7a172cf845b55280599">der ersten Implementierung von NIP-05&lt;/a> und endet mit &lt;a href="https://github.com/nostr-protocol/nips/commit/2f4b09335c54a993d483bc220195e3f4a33df1ec">dem Merge dieses Monats zur adressierbaren Erkennung&lt;/a>. Anschließend untersucht sie die Änderungen im Juli, die diese Themen weiterentwickelt haben.&lt;/p>
&lt;h3 id="juli-2021">Juli 2021&lt;/h3>
&lt;p>Am 19. Juli 2021 ergänzte der &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/1ce00bd3b6909f78f212a7a172cf845b55280599">nostr-tools-Commit 1ce00bd&lt;/a> ein Modul &lt;code>nip05.js&lt;/code> und hob das Paket auf Version 0.5.0 an. Seine Funktion &lt;code>keyFromDomain&lt;/code> erzeugte eine DNS-TXT-Anfrage für &lt;code>_nostrkey.&amp;lt;domain&amp;gt;&lt;/code>, sendete die binäre Anfrage an einen von acht rotierenden DNS-over-HTTPS-Anbietern und gab den ersten Schlüssel in der Antwort zurück. Ein Browser-Client konnte dadurch eine von Menschen kontrollierte Domain einem öffentlichen Schlüssel zuordnen, ohne einen DNS-Resolver zu betreiben oder von einem fest eingestellten Anbieter abhängig zu sein.&lt;/p>
&lt;p>Dieser erste Ansatz löste die Zuordnung eines Schlüssels, unterstützte jedoch keine Namen innerhalb einer Domain, und seine Vertrauensgrenze lag im DNS sowie beim ausgewählten Resolver. Die moderne &lt;a href="https://github.com/nostr-protocol/nips/blob/master/05.md">NIP-05-Spezifikation&lt;/a> verlagerte die Erkennung zu &lt;code>/.well-known/nostr.json&lt;/code>, wo eine Domain lokale Namen pubkeys zuordnet und relay-Hinweise anfügen kann. Der Code von 2021 dokumentiert den früheren Gestaltungsdruck: Öffentliche Schlüssel waren portabel, doch Menschen benötigten weiterhin Kennungen, die sie lesen, verifizieren und zwischen Clients übertragen konnten.&lt;/p>
&lt;h3 id="juli-2022">Juli 2022&lt;/h3>
&lt;p>Am 10. Juli beschränkte der &lt;a href="https://github.com/nostr-protocol/nips/commit/3771186c0351656a675576051b75d253f26c0f0b">NIP-12-Commit 3771186&lt;/a> generische relay-Anfragen auf tags mit einem einzelnen Buchstaben. Diese Entscheidung machte Filter wie &lt;code>#r&lt;/code>, &lt;code>#g&lt;/code> und &lt;code>#t&lt;/code> für URL-Verweise, Geohashes und Hashtags nützlich, ohne relays aufzufordern, jeden beliebigen Metadatenschlüssel zu indizieren. Zehn Tage später nutzte der erste &lt;a href="https://github.com/nostr-protocol/nips/commit/9f9a864ce1e1ebfdcfdd4835cd60807440f038e8">NIP-20-Entwurf für Webkommentare&lt;/a> dieses Abfragemodell direkt: Ein Kommentar mit kind &lt;code>34&lt;/code> enthielt eine normalisierte Webseiten-URL in einem &lt;code>r&lt;/code>-tag, sodass eine Website und unabhängige Clients dieselbe Diskussion aus relays abrufen konnten.&lt;/p>
&lt;p>Es folgten relay-Richtlinien und soziale Rückmeldungen. Der ursprüngliche &lt;a href="https://github.com/nostr-protocol/nips/commit/f51ce9dc0efaf61f39a76e112c310a9f58af1c87">NIP-22-Commit&lt;/a> erlaubte relays, events zurückzuweisen, deren Zeitstempel &lt;code>created_at&lt;/code> unplausibel alt war, und &lt;a href="https://github.com/nostr-protocol/nips/commit/8bef0e9d79ebb4b11f8fd2bea11dc8f1668bc9d0">Commit 8bef0e9&lt;/a> nahm zukünftige Zeitstempel in dieselbe Richtlinie auf. Am 30. Juli definierte der &lt;a href="https://github.com/nostr-protocol/nips/commit/dcbd504639d20d1b0ae6bb837609710645781b88">NIP-25-Commit dcbd504&lt;/a> Reaktionen mit kind &lt;code>7&lt;/code> und Ziel-tags &lt;code>e&lt;/code> und &lt;code>p&lt;/code>; der nächste Commit wies &lt;code>-&lt;/code> einer negativen Reaktion zu, und &lt;a href="https://github.com/nostr-protocol/nips/commit/6903ff5b2c395a550a26069f6e2b5460ae1fdca6">Commit 6903ff5&lt;/a> machte &lt;code>+&lt;/code> zum ausdrücklichen allgemeinen Like. Zusammen spezifizierten diese Commits die Zurückweisung von relay-Zeitstempeln, den Abruf anhand von tags, Webkommentare und Reaktions-tags für Clients, die diese Entwürfe übernahmen.&lt;/p>
&lt;h3 id="juli-2023">Juli 2023&lt;/h3>
&lt;p>Im Juli 2023 ging die Koordination über kurze Notizen hinaus. Der &lt;a href="https://github.com/nostr-protocol/nips/commit/e057fa01ca3928a32bdc0e9a44c27f946f267041">NIP-37-Entwurf für verlorene Schlüssel&lt;/a> untersuchte die unumkehrbare Stilllegung von Schlüsseln, Schwellenwerte für soziale Wiederherstellung und vorab festgelegte Ersatzschlüssel, lehnte es aber ausdrücklich ab, das Ergebnis als universelle Schlüsselrotation zu bezeichnen. Fünf Tage später führte &lt;a href="https://github.com/nostr-protocol/nips/commit/141197c564d97073f0293e3b2f367f0b6b3619c2">NIP-53&lt;/a> adressierbare Live-Aktivitäten mit kind &lt;code>30311&lt;/code> und Chatnachrichten mit kind &lt;code>1311&lt;/code> ein und gab Streams, Bühnen und Live-Räumen ein gemeinsames event-Modell für Hosts, Teilnehmer, Status und Unterhaltung.&lt;/p>
&lt;p>Anwendungen begannen außerdem, Arbeit und Handel anzukündigen. Der erste &lt;a href="https://github.com/nostr-protocol/nips/commit/67e950a2009e81df1b8c91b0a2ade0596e83f168">Data-Vending-Machine-Entwurf&lt;/a> beschrieb Auftragsanfragen mit kind &lt;code>68001&lt;/code>, Ergebnisse mit kind &lt;code>68002&lt;/code>, Gebote, Ablaufzeiten, Verkettung und konkurrierende Anbieter für Aufgaben wie Transkription, Zusammenfassung und Übersetzung. Am 13. Juli ergänzte der &lt;a href="https://github.com/nostr-protocol/nips/commit/451c06a3c572a13afe45c1d80616f8e6dd9bb1de">Entwurf für Kleinanzeigen&lt;/a> adressierbare Angebote mit kind &lt;code>30402&lt;/code> und Metadaten für Titel, Zusammenfassung, Preis, Ort und Status. Diese Entwürfe wurden später zu NIP-90 und NIP-99, doch bereits ihre Fassungen vom Juli trennten eine Anfrage oder Anzeige vom Server, der sie darstellte.&lt;/p>
&lt;p>Auch das Zahlungsrouting wurde kombinierbar. Der &lt;a href="https://github.com/nostr-protocol/nips/commit/5d63b1570c490007252b10e757f7f68ef1f4b717">NIP-57-Merge für zap-Aufteilungen&lt;/a> vom 31. Juli änderte ein einzelnes &lt;code>zap&lt;/code>-Ziel in eine gewichtete Liste aus pubkeys von Empfängern und relay-Hinweisen. Ein Client konnte einen zap auf Mitwirkende aufteilen, Empfänger ohne Gewichtung auslassen, wenn Gewichtungen vorhanden waren, und die Aufteilung vor der Zahlung anzeigen. Die Änderung standardisierte eine Darstellung durch signierte events für gewichtete zap-Empfänger und relay-Hinweise, sodass kompatible Clients die Aufteilung vor der Zahlung darstellen konnten.&lt;/p>
&lt;h3 id="juli-2024">Juli 2024&lt;/h3>
&lt;p>Am 4. Juli ergänzte der &lt;a href="https://github.com/nostr-protocol/nips/commit/c60ca888efbdc9b8fa4bbfbace372409d0b2161a">NIP-29-Commit c60ca88&lt;/a> die relay-Moderationsaktion &lt;code>kind:9007&lt;/code> zum Erstellen einer Gruppe. Sechs Tage später definierte &lt;a href="https://github.com/nostr-protocol/nips/commit/ae1906ec7943a6bd756f05d2cd2fb2a041398921">NIP-70&lt;/a> geschützte events: Ein &lt;code>-&lt;/code>-tag weist ein relay an, die Veröffentlichung nur vom authentifizierten Autor des event anzunehmen. Eine Änderung gab relays einen ausdrücklichen Übergang des Gruppenzustands; die andere erlaubte Autoren, Dritte daran zu hindern, ansonsten gültige signierte events erneut in relays einzuspielen.&lt;/p>
&lt;p>Am 16. Juli führte ein &lt;a href="https://github.com/nostr-protocol/nips/commit/506b38916ab67a37b2d98b46b62cf0c0c5fde5a4">Commit zur Cashu-Spezifikation&lt;/a> sowohl NIP-60-Wallets als auch NIP-61-nutzaps ein. NIP-60 legte Wallet-Metadaten in kind &lt;code>37375&lt;/code>, nicht ausgegebene Nachweise in verschlüsselten events mit kind &lt;code>7375&lt;/code> und einen optionalen Transaktionsverlauf in kind &lt;code>7376&lt;/code> ab. NIP-61 verband die Präferenzen des Empfängers für Mint und relays aus kind &lt;code>10019&lt;/code> mit durch P2PK gesperrten nutzaps mit kind &lt;code>7337&lt;/code>. Wallet-Zustand und Inhabertoken konnten nun durch relays übertragen werden, während die Einlösung weiterhin von Nachweisen der Cashu-Mint und der sorgfältigen Verhinderung doppelter Ansprüche abhing.&lt;/p>
&lt;p>Zwei Änderungen Ende Juli präzisierten den deterministischen Zustand. &lt;a href="https://github.com/nostr-protocol/nips/commit/9c54549f1842245b842d8a66f3bade744da24189">NIP-01-Commit 9c54549&lt;/a> schrieb event-IDs als Entscheidungskriterium nach gleichen &lt;code>created_at&lt;/code>-Zeitstempeln vor, sodass Clients identische Ergebnismengen auf dieselbe Weise sortieren konnten. Der &lt;a href="https://github.com/nostr-protocol/nips/commit/722ac7a58695a365be0dbb6eccb33ccd7890a8c7">NIP-09-Merge zur Löschung&lt;/a> stellte klar, dass Anfragen mit kind &lt;code>5&lt;/code> auf event-IDs oder adressierbare Koordinaten zielen dürfen und &lt;code>k&lt;/code>-tags enthalten sollten, welche die kinds angeben, die relays löschen sollen. Beide Änderungen verringerten die Stellen, an denen zwei korrekte Implementierungen andernfalls zu unterschiedlichen Ergebnissen kommen konnten.&lt;/p>
&lt;h3 id="juli-2025">Juli 2025&lt;/h3>
&lt;p>Die Ecash-Erkennung erhielt am 16. Juli ein eigenes soziales Verzeichnis. &lt;a href="https://github.com/nostr-protocol/nips/commit/1afb6da049e57dd628ef46a3b0f90300653a66ee">NIP-87-Commit 1afb6da&lt;/a> definierte Cashu-Mint-Datensätze mit kind &lt;code>38172&lt;/code>, Fedimint-Datensätze mit kind &lt;code>38173&lt;/code> und Empfehlungen mit kind &lt;code>38000&lt;/code>, die mit relay-Hinweisen auf diese Datensätze verweisen können. Wallets konnten Empfehlungen vertrauenswürdiger Autoren abfragen, bevor sie sich mit einer Mint verbanden, während die Spezifikation davor warnte, dass ungefilterte globale Erkennung Nutzer zu böswilligen Betreibern lenken könnte.&lt;/p>
&lt;p>Eine Woche später spezifizierte ein Entwurf portable Nostr-event-Datensätze für Sprachnachrichten. Der erste &lt;a href="https://github.com/nostr-protocol/nips/commit/e50f37a527ace39cc3057827d52295c6b6de1112">NIP-A0-Commit&lt;/a> wies dem Root-event einer Sprachnachricht kind &lt;code>1222&lt;/code> und einer Antwort kind &lt;code>1244&lt;/code> zu; beide enthielten eine Audio-URL zusammen mit Medienmetadaten. Die &lt;a href="https://github.com/nostr-protocol/nips/commit/4984b057c20397eae919ee5e463bc8a5d3fb2dc0">Formataktualisierung&lt;/a> vom 27. Juli empfahl Opus in einem Ogg-Container und standardisierte eine komprimierte Wellenform. Clients konnten kurze Audiodateien austauschen, ohne sich auf ein einziges Aufnahmeprogramm, einen einzigen Host oder eine Darstellung der Wellenform zu einigen.&lt;/p>
&lt;p>Private Nachrichten und Wallet-Verbindungen ergänzten danach Protokollzustände für Lesefortschritt, Verschlüsselungsauswahl und Zahlungsfortschritt. &lt;a href="https://github.com/nostr-protocol/nips/commit/3d76da368e157934e056d95b3b3d8d6eaa105b09">NIP-17-Commit 3d76da3&lt;/a> definierte einen ersetzbaren Datensatz mit kind &lt;code>30016&lt;/code>, dessen geordnete &lt;code>seen&lt;/code>-tags einem Client erlauben, zwischen gelesenen Nachrichten und Lücken zu unterscheiden, die auf möglicherweise verpasste Nachrichten hinweisen. Am 31. Juli ermöglichte die &lt;a href="https://github.com/nostr-protocol/nips/commit/f30a43bd37e08516923b96dd0d860122c9ffe04e">Aushandlung der Verschlüsselung in NIP-47&lt;/a> Wallet-Diensten, NIP-44 v2 oder das ältere NIP-04 anzukündigen, während der &lt;a href="https://github.com/nostr-protocol/nips/commit/0595d438aaa163dd33ed00748026698a411a0861">Commit zum Transaktionszustand&lt;/a> die Zustände &lt;code>pending&lt;/code>, &lt;code>settled&lt;/code>, &lt;code>accepted&lt;/code>, &lt;code>expired&lt;/code> und &lt;code>failed&lt;/code> ergänzte. Zustellung, Verschlüsselung und Zahlungsfortschritt wurden zu ausdrücklichen Protokolldaten statt lokaler Schlussfolgerungen.&lt;/p>
&lt;h3 id="juli-2026">Juli 2026&lt;/h3>
&lt;p>Dieser Juli begann damit, gewöhnliche Webadressen mit relay-Anfragen zu verbinden. Der &lt;a href="https://github.com/nostr-protocol/nips/commit/2f4b09335c54a993d483bc220195e3f4a33df1ec">Commit 2f4b093 zur adressierbaren Erkennung&lt;/a> definiert eine Abfrage unter &lt;code>/.well-known/nostr.json?ad=&amp;lt;path&amp;gt;&lt;/code>, deren Antwort einen Nostr-Filter und eine relay-Liste enthält. Ein normaler Browser kann die ursprüngliche URL weiterhin als HTML öffnen, während ein Nostr-Client den entsprechenden Endpunkt &lt;code>/.well-known/nostr.json?ad=&amp;lt;path&amp;gt;&lt;/code> nach einem Filter und einer relay-Liste abfragen kann, die die Adresse einer Gruppe, einer nsite, einem Feed, einem event oder einem anderen nativen Objekt zuordnen. Das Muster greift das Problem von 2021 zur Zuordnung einer Domain zu einem Schlüssel auf einer breiteren Ebene erneut auf: Eine einzelne menschenlesbare URL kann nun sowohl eine Identität als auch eine Abfrage bezeichnen.&lt;/p>
&lt;p>NIP-29 entwickelte sich anschließend von flachen relay-Gruppen zu strukturierten Räumen. Der &lt;a href="https://github.com/nostr-protocol/nips/commit/223ddb3b0c282f2a133adb9f4a9c098a31b36937">Untergruppen-Commit&lt;/a> vom 16. Juli ergänzte Beziehungen zu übergeordneten Gruppen und geordneten Untergruppen; benachbarte Commits ergänzten Suffixe für Einladungscodes, Banner, geordnete Pin-Snapshots und Pins für adressierbare events. Am 22. Juli definierte die &lt;a href="https://github.com/nostr-protocol/nips/commit/db5fe3de8c5d1443b634c9bbf66ecb004f337057">Klarstellung zu Migration und Fork&lt;/a>, wann Metadaten eine Gruppe rechtmäßig zu einem anderen relay verschieben und wann ein weiterhin aktiver Zweig einen unabhängigen Fork bildet. Die Gruppenkennung blieb einfach, während Hierarchie, Darstellung und relay-Änderungen als ausdrücklicher Zustand abgebildet wurden.&lt;/p>
&lt;p>Zwei kleinere Änderungen verdeutlichten die Grenzen der Implementierung. &lt;a href="https://github.com/nostr-protocol/nips/commit/f0af20484c5e0d12e2d1936f87c5a6681a08daff">NIP-46-Commit f0af204&lt;/a> verlangt von einem Remote-Signer, bei unbekannten oder nicht unterstützten Methoden einen Fehler zurückzugeben, statt einen Client ohne Antwort in ein Timeout laufen zu lassen. &lt;a href="https://github.com/nostr-protocol/nips/commit/6d2979b3f503a8539c983efbcdcf901bbcf9ed23">NIP-34-Commit 6d2979b&lt;/a> entfernt GRASP-spezifische Hosting-Anweisungen aus der Beschreibung des Pull-Request-event. Eine Änderung gibt Aufrufern eine abschließende Antwort; die andere verhindert, dass ein portables Git-event stillschweigend ein einzelnes Serverprotokoll übernimmt.&lt;/p>
&lt;hr>
&lt;p>Sendet eine NIP-17-DM, um ein Projekt oder eine Nachricht über das &lt;a href="https://github.com/andotherstuff/nostr-compass">Projekt Nostr Compass&lt;/a> zu teilen.&lt;/p></content:encoded></item><item><title>Nostr Compass #32</title><link>https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/</link><pubDate>Wed, 22 Jul 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/</guid><description>&lt;p>Willkommen zurück beim Nostr Compass, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#indiesats-drops-its-publisher-role-and-relaunches-as-open-nostr-music-infrastructure">IndieSats&lt;/a> gibt die Schlüsselverwahrung, seine Whitelist und seinen obligatorischen Umsatzanteil auf und startet als offenes Relay, Player und Discovery-Schicht neu, auf der Künstler unter ihren eigenen Schlüsseln veröffentlichen. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nostrord-v230-ships-group-moderation-mute-lists-and-onion-relays">Nostrord v2.3.0&lt;/a> bringt Gruppenmoderation, Mute-Listen und Onion-Relays in derselben Woche, in der fünf &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">NIP-29-Spec-PRs gemergt werden&lt;/a>. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#zapstore-110-makes-the-device-key-portable-and-adds-background-auto-updates">Zapstore 1.1.0&lt;/a> führt einen portierbaren verschlüsselten Geräteschlüssel mit Amber-Backup und optionale Hintergrund-Auto-Updates ein. Der &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#the-favorite-follow-sets-list-kind-merges-and-immediately-moves-house">Favorite-Follow-Sets-Listen-Kind&lt;/a> wird gemergt und erhält innerhalb weniger Tage einen Umnummerierungs-PR. Und die &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#the-iris-projects-ship-a-pubsub-library-a-browser-fips-runtime-and-a-social-graph-20-in-one-week">Iris-Projekte&lt;/a> liefern nostr-pubsub, die Browser-Runtime fips-ts und nostr-social-graph 2.0 als zusammenhängenden Stack aus Peer-Transport und Identitätsgraph.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück beim Nostr Compass, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#indiesats-drops-its-publisher-role-and-relaunches-as-open-nostr-music-infrastructure">IndieSats&lt;/a> gibt die Schlüsselverwahrung, seine Whitelist und seinen obligatorischen Umsatzanteil auf und startet als offenes Relay, Player und Discovery-Schicht neu, auf der Künstler unter ihren eigenen Schlüsseln veröffentlichen. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nostrord-v230-ships-group-moderation-mute-lists-and-onion-relays">Nostrord v2.3.0&lt;/a> bringt Gruppenmoderation, Mute-Listen und Onion-Relays in derselben Woche, in der fünf &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">NIP-29-Spec-PRs gemergt werden&lt;/a>. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#zapstore-110-makes-the-device-key-portable-and-adds-background-auto-updates">Zapstore 1.1.0&lt;/a> führt einen portierbaren verschlüsselten Geräteschlüssel mit Amber-Backup und optionale Hintergrund-Auto-Updates ein. Der &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#the-favorite-follow-sets-list-kind-merges-and-immediately-moves-house">Favorite-Follow-Sets-Listen-Kind&lt;/a> wird gemergt und erhält innerhalb weniger Tage einen Umnummerierungs-PR. Und die &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#the-iris-projects-ship-a-pubsub-library-a-browser-fips-runtime-and-a-social-graph-20-in-one-week">Iris-Projekte&lt;/a> liefern nostr-pubsub, die Browser-Runtime fips-ts und nostr-social-graph 2.0 als zusammenhängenden Stack aus Peer-Transport und Identitätsgraph.&lt;/p>
&lt;p>Getaggte Releases bringen &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#amber-v630-groups-bunker-signing-approvals-and-adds-expert-list-support">Amber v6.3.0&lt;/a> mit gruppierten Bunker-Signierungs-Freigaben, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#armada-v0370-opens-buzz-workspaces-from-a-second-client">Armada v0.37.0&lt;/a> mit einem zweiten Client für Buzz-Workspaces, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#divine-mobile-1017-hardens-relay-security-and-dm-delivery">Divine Mobile 1.0.17&lt;/a> mit dauerhafter NIP-17-Zustellung und strikter TLS-Validierung sowie &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nak-v0202-adds-nip-34-pull-request-workflows">nak v0.20.2&lt;/a> mit Befehlen für NIP-34-Pull-Requests.&lt;/p>
&lt;p>Auf der unveröffentlichten Seite zeichnet &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#snort-rewrites-query-synchronization-around-eose-proven-coverage">Snort&lt;/a> durch EOSE belegte Cache-Abdeckung auf, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#shopstr-binds-payment-validation-to-signed-receipts-and-server-side-prices">Shopstr&lt;/a> schließt zwei Lücken bei der Zahlungsintegrität, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#mostr-bridges-activitypub-private-chats-and-nostr-dms">Mostr&lt;/a> verbindet private ActivityPub-Chats mit Nostr-DMs, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nostream-merges-eight-prs-without-cutting-a-release">nostream&lt;/a> mergt den Access-Control-Stack, den der Deep Dive dieser Woche behandelt, und &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#amethyst-lands-v1130-pre-release-qa-on-napplet-isolation-and-concord-authority">Amethyst&lt;/a> erreicht 88 gemergte PRs mit vollständigen NIP-88-Umfragen auf Desktop.&lt;/p>
&lt;p>Das NIPs-Repository mergt diese Woche fünf PRs, darunter das &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">NIP-29-Cluster&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#the-favorite-follow-sets-list-kind-merges-and-immediately-moves-house">kind:10011 Favorite Follow Sets&lt;/a>, und eröffnet Debatten über &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">NIP-47-Vereinfachung&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">Trusted Relay Assertions&lt;/a>. Der Deep Dive behandelt &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nip-deep-dive-nip-42-and-nip-43">NIP-42 und NIP-43, das Relay-Access-Control-Paar&lt;/a>.&lt;/p>
&lt;hr>
&lt;h2 id="lead-storys">Lead-Storys&lt;/h2>
&lt;h3 id="indiesats-legt-seine-publisher-rolle-ab-und-startet-als-offene-nostr-musikinfrastruktur-neu">IndieSats legt seine Publisher-Rolle ab und startet als offene Nostr-Musikinfrastruktur neu&lt;/h3>
&lt;p>&lt;a href="https://zapstore.dev">IndieSats&lt;/a> ist eine Nostr-basierte Musikplattform, die bis diese Woche als Publisher agierte: Sie hielt Schlüssel für Künstler, betrieb eine Whitelist und nahm einen obligatorischen Anteil von 2 % der Einnahmen. In einer &lt;a href="https://njump.me/nevent1qqsr4awwnfndnnz77zanjxarw6nd0uld0ckayxp2navz0u9tzzwfweqpzamhxue69uhhyetvv9ujuurjd9kkzmpwdejhgtczyquwq70hxz22lzytw65rnnjewg0lj8a74khxa8h9j47q38pdnqy3kqcyqqqqqqgz8083u">Pivot-Ankündigung vom 20. Juli&lt;/a> gab das Projekt alle drei Rollen auf einmal auf. Die neu gestartete Plattform besteht aus drei Teilen offener Infrastruktur: einem offenen Relay, einem Player und einer Discovery-Schicht. Künstler veröffentlichen Musik nun unter ihren eigenen Nostr-Profilen. Der Plattformanteil von 2 % pro Track ist optional, beim Veröffentlichen aber standardmäßig ausgewählt; Künstler können ihn abwählen und so die vollständige Zahlung behalten. Die Plattform berücksichtigt außerdem &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09&lt;/a> kind:5-Löschanfragen, damit Künstler ihre Werke entfernen können. Ein am 21. Juli veröffentlichtes &lt;a href="https://zapstore.dev/apps/com.indiesats.app">Update auf v1.1.5&lt;/a> stellte die Track-Veröffentlichung auf das Event-Format um, das Amethyst und andere Nostr-Musikclients erwarten, und machte die Relay-Zustellung explizit. Für einen Bereich, der gewöhnlich darüber spricht, wie Protokolle Plattformen ersetzen, ist dies ein praktischer Fall, in dem eine Plattform sich freiwillig in Protokollbausteine zerlegt.&lt;/p>
&lt;h3 id="nostrord-v230-liefert-gruppenmoderation-mute-listen-und-onion-relays">Nostrord v2.3.0 liefert Gruppenmoderation, Mute-Listen und Onion-Relays&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a>, der Gruppenchat-Client für Android, iOS, Web und Desktop, lieferte &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.3.0">v2.3.0&lt;/a> mit verdrahteten Gruppenmoderations-Aktionen auf allen UIs (&lt;a href="https://github.com/nostrord/nostrord/pull/192">PR #192&lt;/a>), einwilligungsbasierten Gruppeneinladungen mit Cross-Relay-Erkennung (&lt;a href="https://github.com/nostrord/nostrord/pull/195">PR #195&lt;/a>), plattformübergreifenden &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a>-Mute-Listen (&lt;a href="https://github.com/nostrord/nostrord/pull/188">PR #188&lt;/a>) und Unterstützung für Tor-.onion-Relays. Das Release erscheint in derselben Woche, in der die zugrunde liegende &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Spec fünf PRs zu Untergruppen, Nachrichten-Pinning, Bannern und Einladungscodes mergte (Details im &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#protocol-work-and-nip-updates">Protokoll-Abschnitt&lt;/a> dieser Woche). Gruppenchat auf Nostr hat damit sowohl eine tiefere Spec als auch einen Client, der den Großteil davon praktisch nutzt, was die Feedbackschleife für alle anderen verkürzt, die auf Relay-Gruppen aufbauen.&lt;/p>
&lt;h3 id="zapstore-110-macht-den-geräteschlüssel-portierbar-und-fügt-hintergrund-auto-updates-hinzu">Zapstore 1.1.0 macht den Geräteschlüssel portierbar und fügt Hintergrund-Auto-Updates hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a> ist ein Nostr-nativer App-Store, in dem Releases von Entwicklerschlüsseln signiert werden und kein zentraler Betreiber für sie bürgt. &lt;a href="https://github.com/zapstore/zapstore/releases/tag/1.1.0">Version 1.1.0&lt;/a>, das erste hier behandelte Release seit Anfang März, schließt die beiden größten Lücken zu konventionellen App-Stores. Für Updates laufen optionale Hintergrund-Downloads nun über WLAN und werden still oder gestuft installiert, sodass Apps ohne manuelle Gänge durch den Store aktuell bleiben. Identitätskontinuität entsteht durch einen portierbaren verschlüsselten Geräteschlüssel, den Nutzer über &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> via &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>, der Android-Signer-Schnittstelle, sichern können, sodass bei einem Handywechsel die Geräteidentität erhalten bleibt. Version 1.1.0 verschiebt außerdem den App-Katalog als gerätesignierte kind:10067-Events auf Relays, fügt aus dem Overflow-Menü &lt;a href="https://nostrcompass.org/de/topics/nip-56/">NIP-56&lt;/a>-verifizierte Meldungen hinzu, damit Nutzer problematische Apps auf eine für andere Clients verwertbare Weise kennzeichnen können, und prüft vor jeder Installation den einem Release beigefügten C1-Proof. Dadurch wird die Verbindung zwischen dem, was ein Entwickler signiert hat, und dem, was ein Gerät ausführt, enger abgesichert.&lt;/p>
&lt;h3 id="der-favorite-follow-sets-listen-kind-mergt-und-zieht-sofort-um">Der Favorite-Follow-Sets-Listen-Kind mergt und zieht sofort um&lt;/h3>
&lt;p>Eine Spec-Koordinationsgeschichte spielte sich innerhalb einer einzigen Woche ab. &lt;a href="https://github.com/nostr-protocol/nips/pull/2413">PR #2413&lt;/a> wurde am 15. Juli gemergt und standardisierte unter &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> (Listen) einen ersetzbaren Listen-Kind für Favorite Follow Sets: einen dedizierten Kind für die kuratierten Sets gefolgter Accounts eines Nutzers. Innerhalb weniger Tage stellte sich heraus, dass der zugewiesene kind:10011 bereits anderweitig in Gebrauch war, sodass nun ein Folge-&lt;a href="https://github.com/nostr-protocol/nips/pull/2417">PR #2417&lt;/a> offen ist, um die Liste auf kind:10021 umzunummerieren. Gegen den gemergten Kind ist noch nichts ausgeliefert, was diesen Moment zum günstigen Zeitpunkt für die Umnummerierung macht; sobald Clients anfangen, kind:10011-Events zu veröffentlichen, würde die Kollision teuer aufzulösen. Entwickler, die listenkonsumierende Features bauen, sollten bis zur Klärung dem Umnummerierungs-PR folgen, nicht dem gemergten Text.&lt;/p>
&lt;h3 id="die-iris-projekte-liefern-eine-pubsub-bibliothek-eine-browser-fips-runtime-und-einen-social-graph-20-in-einer-woche">Die Iris-Projekte liefern eine Pubsub-Bibliothek, eine Browser-FIPS-Runtime und einen Social Graph 2.0 in einer Woche&lt;/h3>
&lt;p>Drei Releases aus dem Umfeld von Iris erschienen gemeinsam und greifen ineinander. &lt;a href="https://github.com/mmalmi/nostr-pubsub">nostr-pubsub&lt;/a> ist eine transportneutrale Publish/Subscribe-Bibliothek für Nostr-Events; ihre &lt;a href="https://github.com/mmalmi/nostr-pubsub/releases">ersten erfassten Releases, v0.1.3 bis v0.5.2&lt;/a>, liefern einen Browser-Relay-Carrier auf Basis von nostr-tools’ SimplePool, Event-Verifizierung an der Transportgrenze, sodass ungültige Signaturen niemals Subscriber erreichen, und begrenzte historische Abfragen. &lt;a href="https://github.com/mmalmi/fips-ts">fips-ts&lt;/a> bringt &lt;a href="https://nostrcompass.org/de/topics/fips/">FIPS&lt;/a>, den zuvor als Rust-Stack verfügbaren Noise-over-secp256k1-Peer-Transport, als TypeScript-Runtime in den Browser: Die Releases &lt;a href="https://github.com/mmalmi/fips-ts/releases">0.0.24 bis 0.0.30&lt;/a> fügten einen WebRTC-Datachannel-Carrier, Nostr-basiertes Signaling für Peer-Discovery, einen Recent-Peer-Cache und einen IndexedDB-Adapter für Browser-Speicher hinzu; die Runtime ist wire-kompatibel mit der Rust-Referenzimplementierung. Das dritte Element, &lt;a href="https://github.com/mmalmi/nostr-social-graph/releases/tag/v2.0.0">nostr-social-graph v2.0.0&lt;/a>, ist eine neue Hauptversion der Social-Graph-Bibliothek: signierte Roster-Operationen für Nostr-Identitätsgraphen, Device-Approval-Flows, die aus einer kanonischen URI mit drei Feldern gebootstrapt werden, und FIPS-Transport-Identity-Facets mit gemeinsamen Rust- und TypeScript-Testvektoren. Den verbindenden Rahmen bildet der &lt;a href="https://stack.iris.to/">Iris Stack&lt;/a>, das Integrationslabor des Projekts, das diese Bibliotheken mit Blossom, Hashtree und verschlüsseltem Messaging verbindet. Zusammen kann eine Web-App nun Peers über Nostr entdecken, einen verschlüsselten FIPS-Kanal zu ihnen öffnen und einen signierten Social Graph pflegen, vollständig in TypeScript.&lt;/p>
&lt;hr>
&lt;h2 id="getaggte-releases">Getaggte Releases&lt;/h2>
&lt;h3 id="amber-v630-gruppiert-bunker-signierungs-freigaben-und-fügt-expert-list-unterstützung-hinzu">Amber v6.3.0 gruppiert Bunker-Signierungs-Freigaben und fügt Expert-List-Unterstützung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> ist ein Android-&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Remote-Signer. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.3.0">v6.3.0&lt;/a> fügt gruppierte Multi-Request-Freigaben hinzu, sodass Nutzer einen Stapel von Bunker-Signaturen auf einmal prüfen und freigeben können. Das Release fügt außerdem Unterstützung für Expert-List- (kind 12022) und Expert-Pack-Events (kind 32022) hinzu, einen Privacy-Modus, der sensible Inhalte auf dem Bildschirm verbirgt, und eine Änderung, die zuerst die &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a>-Relay-Liste eines Accounts abruft und erst danach dessen Profil-Metadaten, sodass Signer-Flows vom tatsächlichen Relay-Set des Nutzers ausgehen. Dies folgt der v6.2.x-Linie aus der Ausgabe vom 08.07.2026.&lt;/p>
&lt;h3 id="nostrord-v220-nachtrag">Nostrord v2.2.0-Nachtrag&lt;/h3>
&lt;p>Da &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-22-newsletter/#nostrord-v230-ships-group-moderation-mute-lists-and-onion-relays">v2.3.0&lt;/a> den News-Abschnitt dieser Woche anführt, vermerkt der Tagged-Release-Slot nur, was der Lead nicht abdeckt: v2.3.0 folgt auf die DM-Steuerungen aus v2.2.0, behandelt in #31 — damit ist dies das zweite wöchentliche Release des Clients in Folge.&lt;/p>
&lt;h3 id="armada-v0370-öffnet-buzz-workspaces-über-einen-zweiten-client">Armada v0.37.0 öffnet Buzz-Workspaces über einen zweiten Client&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/armada">Armada&lt;/a>, ein Discord-artiger Nostr-Client, veröffentlichte &lt;a href="https://gitlab.com/soapbox-pub/armada/-/commit/7a0d0ade51fb8a7bafa4513d2881d275bb2c7dde">v0.37.0&lt;/a> mit Unterstützung für Buzz-Relays als erweiterten &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Workspace-Modus, der über die &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Metadaten des Relays erkannt wird. Der Client stellt Buzz-Forenbeiträge und -Kommentare als kinds 45001 und 45003 dar, integriert Bearbeitungen und Löschungen in Stream-Timelines und fügt Oberflächen für Presence, Workflows, Jobs, Huddles und geteilte Canvas-Flächen hinzu. Sein Projects-Workspace liest &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a>-Repository-Ankündigungen, Patches, Pull-Requests, Issues und Status-Events direkt vom Relay (&lt;a href="https://gitlab.com/soapbox-pub/armada/-/commit/7d5603a3e21d564301d667113d28de4407d6f642">Implementierungs-Commit&lt;/a>). Damit erhalten Buzz-Workspaces einen zweiten Client für Unterhaltungen und Repository-Arbeit.&lt;/p>
&lt;h3 id="wisp-v120-fügt-einen-multi-account-wechsler-und-einklappbare-antwort-threads-hinzu">Wisp v1.2.0 fügt einen Multi-Account-Wechsler und einklappbare Antwort-Threads hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> ist ein datenschutzorientierter Nostr-Client mit integrierter Wallet-Unterstützung. &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.2.0">v1.2.0&lt;/a> fügt einen Multi-Account-Wechsler zum Wechseln zwischen Profilen ohne erneutes Login hinzu, einklappbare Antwort-Threads für lange Unterhaltungen, das Entfernen von Tracking-Parametern aus Note-Links, bevor sie geöffnet werden, und eine Wallet-Transaktionshistorie. Das Release folgt dem Wisp-Update aus der Ausgabe vom 08.07.2026.&lt;/p>
&lt;h3 id="divine-mobile-1017-härtet-relay-sicherheit-und-dm-zustellung">Divine Mobile 1.0.17 härtet Relay-Sicherheit und DM-Zustellung&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">Divine Mobile&lt;/a>, ein Nostr-Client für Kurzvideos, veröffentlichte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.17">1.0.17&lt;/a> mit einem persistenten Stop-Motion-Editor und strafferen Nostr-Pfaden. Direktnachrichten warten nun auf &lt;code>OK&lt;/code>-Antworten der Relays, werden über eine dauerhafte Queue erneut versucht und über die kind:10050-Inbox-Relay-Listen der Empfänger geleitet (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/6046">PR #6046&lt;/a>); beim NIP-46-Pairing bleiben &lt;code>auth_url&lt;/code>-Challenges als wiederaufnehmbare Signer-Schritte erhalten (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/6151">PR #6151&lt;/a>). &lt;a href="https://github.com/divinevideo/divine-mobile/pull/6278">PR #6278&lt;/a> entfernt die großzügige Zertifikatsakzeptanz aus produktiven Relay-WebSockets und HTTP-Anfragen für NIP-96-Uploads, LNURL und zaps und stellt außerhalb von Debug-Loopback-Verbindungen die TLS-Validierung der Plattform wieder her. Unterbrochene Uploads können außerdem ab dem letzten vom Server bestätigten Offset fortgesetzt werden, sodass eine in den Hintergrund verschobene Veröffentlichung nicht mehr bei null beginnt.&lt;/p>
&lt;h3 id="cliprelay-v012-neues-projekt-synchronisiert-zwischenablagen-über-nostr-relays-zwischen-geräten">ClipRelay v0.1.2 (neues Projekt) synchronisiert Zwischenablagen über Nostr-Relays zwischen Geräten&lt;/h3>
&lt;p>&lt;a href="https://github.com/tajava2006/cliprelay">ClipRelay&lt;/a> ist eine neu gestartete plattformübergreifende App (Android, macOS, Windows, Linux), die deine Zwischenablage zwischen deinen eigenen Geräten synchronisiert: auf einem Rechner kopieren, auf einem anderen einfügen. Der gesamte Verkehr läuft über Nostr-Relays als &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-verschlüsselte Events, die an dich selbst adressiert sind — es gibt also keinen Server zu betreiben und keinen Account zu erstellen; der private Schlüssel bleibt außerhalb der App. &lt;a href="https://github.com/tajava2006/cliprelay/releases">v0.1.2&lt;/a> behebt einen subtilen Sync-Fehler, bei dem ein aus dem Ruhezustand erwachender Rechner weiter veröffentlichte, aber still den Empfang einstellte, und verschärft die Relay-Status-Anzeigen, die zuvor tote Subscriptions als gesund meldeten. Dies ist ClipRelays erster Auftritt im Newsletter.&lt;/p>
&lt;h3 id="sonar-v01-alpha11-setzt-die-alpha-linie-fort">Sonar v0.1-alpha.11 setzt die Alpha-Linie fort&lt;/h3>
&lt;p>&lt;a href="https://github.com/hedwig-corp/bitchat-to-sonar">Sonar&lt;/a>, die Lead-Story der letzten Woche, schnitt &lt;a href="https://github.com/hedwig-corp/bitchat-to-sonar/releases/tag/v0.1-alpha.11">v0.1-alpha.11&lt;/a> mit Arbeit an der Rust-Mesh-Link-Engine, BLE- und Mesh-Fixes sowie Relay-Diagnostik; ein inkrementeller Nachtrag zur in #31 behandelten Alpha-Linie.&lt;/p>
&lt;h3 id="nak-v0202-fügt-workflows-für-nip-34-pull-requests-hinzu">nak v0.20.2 fügt Workflows für NIP-34-Pull-Requests hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, das Nostr-Kommandozeilenwerkzeug, veröffentlichte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.20.2">v0.20.2&lt;/a> mit Befehlen zum Erstellen, Pullen und Mergen von &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a>-Pull-Requests sowie zum Pullen einzelner Patches. Pushes sind außerdem möglich, ohne eine Repository-Ankündigung neu zu schreiben. Die &lt;a href="https://github.com/fiatjaf/nak/compare/v0.20.1...v0.20.2">Release-Spanne mit elf Commits&lt;/a> fügt darüber hinaus die Behandlung von Elterngruppen für &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> hinzu, fragt mehr Outbox-Relays ab, macht Timeouts für Relay-Verbindungen konfigurierbar und behebt die Bunker-Auswahl, wenn nur der Standardwert für &lt;code>--sec&lt;/code> vorhanden ist.&lt;/p>
&lt;h3 id="die-kleineren-launches-der-woche">Die kleineren Launches der Woche&lt;/h3>
&lt;p>Vier kleinere Releases verdienen je eine Zeile: &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.6.0-release">noscall v0.6.0&lt;/a>, die Nostr-Anruf-App, migrierte ihre Push-Benachrichtigungen auf UnifiedPush und hält das Call-Signaling damit von Googles Push-Infrastruktur fern; &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.1.3">nostr-vpn v4.1.3&lt;/a>, ein Mesh-VPN, das Nostr für Signaling nutzt, vereinheitlichte seine Exit-DNS-Richtlinie über alle Plattformen und stellt nach WireGuard- oder Private-Exit-Sitzungen nun den ursprünglichen Routing- und DNS-Zustand wieder her; &lt;a href="https://github.com/ChadFarrow/stablekraft-app/releases/tag/v1.3.0">StableKraft v1.3.0&lt;/a>, der im April behandelte Nostr-plus-Lightning-Musik- und Podcast-Aggregator, fügte native Android-Steuerungen für Sperrbildschirm und Headset sowie einen auf die Wiedergabe begrenzten Wake Lock hinzu, damit Audio Doze übersteht; und die neue Zapstore-App Hakari sichert einen Gewichts-Logger über verschlüsselte Nostr-Events.&lt;/p>
&lt;h3 id="amethyst-liefert-v1130-pre-release-qa-zu-napplet-isolation-und-concord-authority">Amethyst liefert v1.13.0-Pre-Release-QA zu Napplet-Isolation und Concord-Authority&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergte diese Woche 88 PRs im Vorfeld des v1.13.0-Releases. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3650">PR #3650&lt;/a> ist ein Pre-Release-QA-Durchlauf, der Napplet-Account-Isolation, Concord-Authority-Fixes und rund 30 weitere Fixes abdeckt. Die Arbeiten am Ende des Zeitfensters fügen auf Desktop vollständiges Rendern, Erstellen und Abstimmen für &lt;a href="https://github.com/nostr-protocol/nips/blob/master/88.md">NIP-88&lt;/a>-Umfragen, das Auszählen auf deklarierten Relays und die Suche nach kind 1068 hinzu (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/3664">PR #3664&lt;/a>); die NIP-50-Suche sortiert Ergebnisse nun nach BM25-Relevanz, während große Tag-Watcher begrenztes Merging verwenden (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/3663">PR #3663&lt;/a>). Ein separater Durchlauf am Relay-Store wählt Query-Indizes nach gemessenen Kosten aus, fügt Tag-Author-Kind-Indizes hinzu und serialisiert jedes Live-Event pro Fanout nur einmal (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/3660">PR #3660&lt;/a>). Angegebene Benchmarks sinken dabei für eine Query-Form von 149 auf 4 Millisekunden und für eine häufige DM-Room-Query von 14,2 auf 0,66 Millisekunden.&lt;/p>
&lt;hr>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="snort-schreibt-die-query-synchronisierung-rund-um-eose-belegte-abdeckung-neu">Snort schreibt die Query-Synchronisierung rund um EOSE-belegte Abdeckung neu&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/snort">Snort&lt;/a>, ein Nostr-Webclient, schrieb seinen Pfad für Query- und Cache-Synchronisierung in &lt;a href="https://github.com/v0l/snort/commit/8a627700d8a5af9527cb68655d844dd14a3ac79d">Commit 8a62770&lt;/a> neu. Der Client zeichnet nun auf, welche Query-Zeitfenster EOSE erreicht haben, überspringt anhand dieser Watermarks bereits abgedeckte Cache-Bereiche, zentralisiert die Event-Verteilung hinter einem einzigen Relay-Pool-Listener und sendet Suchfilter nur an Relays, deren NIP-11-Dokumente &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> ausweisen. Folge-Fixes serialisieren gleichzeitige Watermark-Updates und korrigieren inklusive Timeline-Grenzen, während &lt;a href="https://github.com/v0l/snort/commit/9d1721b8b5696a6f96f462170c469c232cabe672">Commit 9d1721b&lt;/a> eine Live-Subscription für den in Chunks geladenen Follows-Feed wiederherstellt, damit nach dem Seitenaufbau eintreffende Events nicht außerhalb seiner gecachten Zeitfenster stehen bleiben.&lt;/p>
&lt;h3 id="shopstr-bindet-die-zahlungsvalidierung-an-signierte-belege-und-serverseitige-preise">Shopstr bindet die Zahlungsvalidierung an signierte Belege und serverseitige Preise&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, ein Nostr-Marktplatz-Client, schloss zwei Lücken bei der Zahlungsintegrität. &lt;a href="https://github.com/shopstr-eng/shopstr/pull/552">PR #552&lt;/a> lässt Zapsnag bei jedem kind:9735-Beleg die Signatur, den Signer, die eingebettete zap request, Empfänger- und Produkt-Tags, den BOLT11-Betrag und ein optionales Preimage gegen den Payment Hash der Invoice prüfen, bevor er als Kauf behandelt wird. &lt;a href="https://github.com/shopstr-eng/shopstr/pull/449">PR #449&lt;/a> verlegt die Erstellung von Cashu-Quotes hinter eine Shopstr-API-Route, die das Listing auflöst und seinen Preis serverseitig neu berechnet, sodass ein im Browser veränderter Betrag nicht die Mint-Invoice bestimmen kann.&lt;/p>
&lt;h3 id="mostr-verbindet-private-activitypub-chats-und-nostr-dms">Mostr verbindet private ActivityPub-Chats und Nostr-DMs&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/mostr">Mostr&lt;/a>, eine ActivityPub-zu-Nostr-Bridge, überträgt nun direkte Pleroma-ChatMessage-Objekte und verschlüsselte Nostr-DMs in beide Richtungen (&lt;a href="https://gitlab.com/soapbox-pub/mostr/-/commit/36ee547035f9287029f71656c472fe029a7ab31b">Commit 36ee547&lt;/a>). Private ActivityPub-Chats werden zu kind:4-Events, die an den Nostr-Empfänger adressiert sind, während kind:4-Nachrichten an gebridgte Fediverse-Nutzer entschlüsselt und als ChatMessage-Objekte föderiert werden. Die Bridge begrenzt diese Events auf konfigurierte, durch &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> geschützte DM-Relays und authentifiziert sich mit einem separaten Relay-Schlüssel. Dieser Interoperabilitätspfad verwendet die veraltete &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a>-Verschlüsselung. NIP-17-Gift-Wrapping bleibt außerhalb dieser Implementierung.&lt;/p>
&lt;h3 id="nostream-mergt-acht-prs-ohne-ein-release-zu-schneiden">nostream mergt acht PRs, ohne ein Release zu schneiden&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a>, die TypeScript-Relay-Implementierung, mergte diese Woche acht PRs, ohne ein Release zu schneiden. Das Headline-Paar sind &lt;a href="https://github.com/Cameri/nostream/pull/702">PR #702&lt;/a> und &lt;a href="https://github.com/Cameri/nostream/pull/676">PR #676&lt;/a>, die Relay-Betreibern zusammen einen funktionierenden Authentifizierungs-plus-Mitgliedschafts-Access-Control-Stack geben; der NIP Deep Dive dieser Woche geht genau diesen Handshake durch. &lt;a href="https://github.com/Cameri/nostream/pull/694">PR #694&lt;/a> behebt generische &lt;code>#e&lt;/code>-, &lt;code>#p&lt;/code>-, &lt;code>#g&lt;/code>- und ähnliche Tag-Filter, die für jede passende Tag-Zeile eine Kopie eines Events zurückgeben konnten, und reduziert damit doppelten Protokollverkehr innerhalb einer Subscription.&lt;/p>
&lt;h3 id="fips-v041-strafft-die-iris-transportschicht">FIPS v0.4.1 strafft die Iris-Transportschicht&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">jmcorgan/fips&lt;/a> lieferte &lt;a href="https://github.com/jmcorgan/fips/releases/tag/v0.4.1">v0.4.1&lt;/a>, ein Wartungsrelease, das den Antipoison-State deckelt, Convergence- und MTU-Handling behebt und die CPU-Last senkt. Die Browser-TypeScript-Runtime &lt;a href="https://github.com/mmalmi/fips-ts">fips-ts&lt;/a> aus dem Cluster der Iris-Projekte ist wire-kompatibel mit diesem Rust-Transport, sodass Fixes hier direkt die Browser-Interoperabilität verbessern.&lt;/p>
&lt;hr>
&lt;h2 id="protokollarbeit-und-nip-updates">Protokollarbeit und NIP-Updates&lt;/h2>
&lt;p>Jüngste Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> (Relay-based Groups): Untergruppen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2319">PR #2319&lt;/a>, gemergt 2026-07-16): NIP-29 definiert relay-gehostete Gruppen, in denen Mitgliedschaft, Rollen und Chat-Verlauf auf einem einzelnen Relay als adressierbare &lt;code>kind:39000&lt;/code>-Serien-Events leben, mit Moderationsaktionen in &lt;code>kind:9000&lt;/code>-Serien-Admin-Events. Dieser PR erlaubt einer Gruppe, sich selbst als Untergruppe zu deklarieren, indem sie ihren Metadaten ein &lt;code>parent&lt;/code>-Tag hinzufügt, das auf den &lt;code>d&lt;/code>-Identifier einer anderen Gruppe auf demselben Relay zeigt. Untergruppen sind in jeder anderen Hinsicht gewöhnliche Gruppen: Mitgliedschaft kaskadiert nicht (der Beitritt zu einer Elterngruppe gewährt keine Mitgliedschaft in Kindgruppen), Admin-Rollen werden nicht vererbt (die &lt;code>kind:39001&lt;/code>-Admins-Liste jeder Untergruppe ist für ihren eigenen Geltungsbereich maßgeblich), und jede Untergruppe behält ihre eigenen unabhängigen &lt;code>kind:9000&lt;/code>/&lt;code>kind:9001&lt;/code>-Mitglieder-Events. Relays, die die Hierarchie unterstützen, bewerben dies in ihrem NIP-11-Relay-Information-Dokument unter einem &lt;code>nip29&lt;/code>-Objekt mit &lt;code>&amp;quot;subgroups&amp;quot;: true&lt;/code>, sodass Clients die Fähigkeit entdecken können, bevor sie verschachtelte Communities anlegen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>: Nachrichten-Pinning&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2379">PR #2379&lt;/a>, gemergt 2026-07-15; &lt;a href="https://github.com/nostr-protocol/nips/pull/2416">PR #2416&lt;/a>, gemergt 2026-07-17): Gruppenadmins können nun Nachrichten innerhalb einer Relay-basierten Gruppe anpinnen. Der Mechanismus fügt ein neues Moderations-Event hinzu, &lt;code>kind:9010&lt;/code> &lt;code>update-pin-list&lt;/code>, das die vollständige geordnete Pin-Liste als &lt;code>e&lt;/code>-Tags mit Verweisen auf reguläre Event-IDs trägt, sowie ein neues optionales gruppenweites Event, &lt;code>kind:39005&lt;/code> &lt;em>group pinned events&lt;/em>, das das Relay neu erzeugt, um die zuletzt akzeptierte Pin-Liste zu spiegeln. Jedes &lt;code>kind:9010&lt;/code> ersetzt die gesamte Liste; eine neue Liste drückt daher Pinnen, Entpinnen, Umordnen oder Leeren aus. Der Folge-PR #2416 erweitert das Format, sodass auch &lt;code>a&lt;/code>-Tags in der Pin-Liste akzeptiert werden. Admins können damit adressierbare Events wie Longform-Beiträge, Wiki-Seiten und andere parametrisierte ersetzbare Inhalte neben gewöhnlichen Chatnachrichten anpinnen. Relays dürfen die Zahl der Pins begrenzen, und der gemergte Spec-Text empfiehlt, Pins in der Reihenfolge der Tags anzuzeigen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>: Banner-Tag und Invite-Code-Suffix&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2383">PR #2383&lt;/a>, gemergt 2026-07-16; &lt;a href="https://github.com/nostr-protocol/nips/pull/2380">PR #2380&lt;/a>, gemergt 2026-07-16): Zwei Ergänzungen zu Gruppenmetadaten für Anzeige und Onboarding. PR #2383 fügt dem &lt;code>kind:39000&lt;/code>-Gruppenmetadaten-Event ein optionales &lt;code>banner&lt;/code>-Tag hinzu, das sich zu den bestehenden Feldern &lt;code>name&lt;/code>, &lt;code>picture&lt;/code> und &lt;code>about&lt;/code> gesellt, damit Clients ein Header-Bild für eine Gruppenseite rendern können. PR #2380 definiert ein Invite-Code-Suffix für Gruppen-Share-Links: Ein Einladungscode darf an den &lt;code>naddr&lt;/code>-Identifier der Gruppe als &lt;code>naddr1...?invite=&amp;lt;code&amp;gt;&lt;/code> angehängt werden. Da der bech32-Zeichensatz kein &lt;code>?&lt;/code> enthält, bleibt der Teil vor dem Suffix eigenständig ein gültiger naddr, sodass Clients, die die Erweiterung nicht verstehen, die Gruppe trotzdem auflösen können. Clients, die sie verstehen, füllen das &lt;code>code&lt;/code>-Tag auf der &lt;code>kind:9021&lt;/code>-Beitrittsanfrage vorab aus, was zusammen mit dem bestehenden &lt;code>kind:9009&lt;/code> &lt;code>create-invite&lt;/code>-Moderations-Event die Aufnahme in geschlossene Gruppen vereinfacht.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> (Listen): Favorite Follow Sets, kind:10011&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2413">PR #2413&lt;/a>, gemergt 2026-07-15): NIP-51 definiert die Standard-Listen-Kinds, aufgeteilt in ersetzbare &lt;code>kind:10000&lt;/code>-Serien-Listen (eine pro Nutzer) und adressierbare &lt;code>kind:30000&lt;/code>-Serien-Sets (viele pro Nutzer, per &lt;code>d&lt;/code>-Tag adressiert). Dieser PR fügt &lt;code>kind:10011&lt;/code> hinzu, &lt;em>favorite follow sets&lt;/em>, eine standardisierte ersetzbare Liste, deren &lt;code>a&lt;/code>-Tags auf &lt;code>kind:30000&lt;/code>-Follow-Sets zeigen. Als Spiegel von &lt;code>kind:10012&lt;/code> (Relay-Feeds), das &lt;code>a&lt;/code>-Tags auf &lt;code>kind:30002&lt;/code>-Relay-Sets hält, erlaubt der neue Kind einem Nutzer, benannte Follow-Sets zu bookmarken — etwa kuratierte Listen von Pubkey-Sammlungen, die von ihm selbst oder anderen veröffentlicht wurden — und Clients können sie für Folgen-per-Einmal-Tippen oder Feed-Wechsel anbieten. Beachte, dass diese Kind-Nummer bereits umstritten ist: siehe den offenen Umnummerierungs-PR unten.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect): Leitlinie zu Silent-Timeouts&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2375">PR #2375&lt;/a>, gemergt 2026-07-15): NIP-46 ist das Remote-Signing-Protokoll, bei dem ein Client verschlüsselte JSON-RPC-artige Anfragen über Relays an einen Signer (bunker) sendet und auf eine verschlüsselte Antwort wartet. Die gemergte Änderung ist ein Satz zum Wire-Verhalten: Anfragen mit unbekannten oder nicht unterstützten Methoden MÜSSEN mit einem Fehler beantwortet werden. Bisher konnte ein Signer, der eine nicht implementierte Methode empfing, einfach nie antworten; der Client hing dann bis zu seinem eigenen Timeout, ohne „nicht unterstützte Methode“ von „Signer offline“ unterscheiden zu können. Die vorgeschriebene Fehlerantwort lässt Clients schnell scheitern und vor dem lokalen Timeout einen aussagekräftigen Fehler anzeigen.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Umnummerierung von kind:10011 zu kind:10021&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2417">PR #2417&lt;/a>): Verschiebt die frisch gemergte Favorite-Follow-Sets-Liste von &lt;code>kind:10011&lt;/code> nach &lt;code>kind:10021&lt;/code>, weil &lt;code>10011&lt;/code> bereits anderweitig in Gebrauch ist. Der Umnummerierungs-PR war innerhalb weniger Tage nach dem ursprünglichen Merge offen, sodass Clients, die Favorite Follow Sets implementieren, diesem PR folgen und die finale Nummer anvisieren sollten, nicht &lt;code>10011&lt;/code>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect): Kernvereinfachung&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2419">PR #2419&lt;/a>): Schlägt vor, NIP-47, das Wallet-Connect-Protokoll, mit dem Apps Lightning-Zahlungen von einer entfernten Wallet über Nostr anfordern, zu einer kleineren Kern-Spec zu verengen. Optionale und spezialisiertere Funktionalität würde aus &lt;code>47.md&lt;/code> in ein dediziertes Extensions-Repository ausgelagert, &lt;a href="https://github.com/nostr-wallet-connect/nwc">nostr-wallet-connect/nwc&lt;/a>, wo sich Extension-Specs unabhängig vom Kern weiterentwickeln können. Das erklärte Ziel ist, den Kern klein, stabil und leicht implementierbar zu halten — in der Linie früherer NWC-Calls, eine minimale Wallet-Connect-Schicht von reichhaltigerem optionalem Verhalten zu trennen. Angesichts der breiten Verbreitung von NIP-47 in Wallets und Apps sollte jeder, der NWC spricht, die Restrukturierungsdiskussion verfolgen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Trusted Relay Assertions (Entwurf, noch keine Nummer vergeben)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2418">PR #2418&lt;/a>): Schlägt einen Standard zur Veröffentlichung von Vertrauensbewertungen über Nostr-Relays vor — positioniert als die „was wir daraus schließen&amp;quot;-Schicht neben &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (was ein Relay über sich selbst behauptet) und &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (was Monitore gemessen haben). Assertion-Anbieter würden Trust-Scores aus beobachteten Metriken, Betreiber-Reputation und Nutzerberichten berechnen; Clients würden diese Assertions abfragen, wenn sie wählen, mit welchen Relays sie sich verbinden. Der Entwurf führt &lt;code>kind:30385&lt;/code> ein (adressierbare Trusted Relay Assertion mit Tags für Score, Zuverlässigkeit, Qualität, Erreichbarkeit, Betreiber, Richtlinie und Jurisdiktion), &lt;code>kind:10385&lt;/code> (ersetzbare Trusted Provider List, die vom Nutzer gewählten Assertion-Anbieter), und nutzt &lt;a href="https://nostrcompass.org/de/topics/nip-32/">NIP-32&lt;/a>-Labels für Relay- und Betreiber-Reports wieder. Noch ist keine NIP-Nummer vergeben; dies ist ein früher Entwurf.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>AND-Operator für Filter („NIP-91“, vorgeschlagen, Nummer noch nicht im Repo)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2252">PR #2252&lt;/a>): Nach NIP-01 sind Tag-Filter reine ODER-Filter: Ein Filter &lt;code>&amp;quot;#t&amp;quot;: [&amp;quot;meme&amp;quot;, &amp;quot;cat&amp;quot;]&lt;/code> matcht Events mit einem der beiden Tags. Dieser Vorschlag fügt einen &lt;code>&amp;amp;&lt;/code>-Modifikator für indexierbare Tags hinzu, sodass &lt;code>&amp;quot;&amp;amp;t&amp;quot;: [&amp;quot;meme&amp;quot;, &amp;quot;cat&amp;quot;]&lt;/code> nur Events zurückgibt, die beide Tags tragen. Relays bilden die Schnittmenge serverseitig und liefern ein engeres Ergebnis zurück. Die Kompatibilitätsregeln geben UND Vorrang vor ODER, ignorieren auf unterstützenden Relays UND-Werte im ODER und verlangen von Clients zusätzlich die normalen &lt;code>#&lt;/code>-ODER-Tags für Relays ohne diese Erweiterung; die Clients bilden aus diesen breiteren Ergebnissen lokal die Schnittmenge. Dieser PR nimmt einen früheren Vorschlag wieder auf und nennt Relay-Implementierungen, darunter ein nostr-rs-relay-Docker-Image, netstr und ein Snort-Worker-Relay. NIP-91 erscheint nur im PR-Branch und fehlt weiterhin im NIP-Index der Repository-README; die Nummer ist daher vorläufig.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Nostr Web Applets („NIP-5D&amp;quot;, vorgeschlagen, Nummer noch nicht im Repo)&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2303">PR #2303&lt;/a>): Definiert ein &lt;code>postMessage&lt;/code>-Protokoll, über das sandboxed Web-Anwendungen („Napplets&amp;quot;) in iframes oder Webviews mit einer Host-Anwendung („Shell&amp;quot;) kommunizieren. Die Spec ist bewusst ein dünner Kern: Sie spezifiziert den Nachrichten-Envelope, Sandbox-Regeln (Napplet-iframes MÜSSEN &lt;code>sandbox=&amp;quot;allow-scripts&amp;quot;&lt;/code> ohne &lt;code>allow-same-origin&lt;/code> verwenden, und Shells DÜRFEN NICHT &lt;code>window.nostr&lt;/code> NIP-07 im iframe exponieren), Sender-Identifikation über die unverfälschbare &lt;code>MessageEvent.source&lt;/code>-Window-Referenz statt &lt;code>event.origin&lt;/code> und manifest-basierte Capability-Aushandlung. Die eigentlichen Protokollnachrichten für Signieren, Relay-Zugriff, Speicher und Napplet-zu-Napplet-Kommunikation werden an NAP-Extension-Specs (Nostr Applet Protocol) delegiert, von denen jede eine Capability-Domäne besitzt; Signieren und Verschlüsselung werden stets von der Shell vermittelt, sodass Schlüssel niemals die Sandbox betreten. Der Vorschlag hängt von der NIP-5A-Napplet-Manifest-Spec ab und ist diese Woche aktuell: Amethysts v1.13.0-Pre-Release-Arbeit umfasst Napplet-Account-Isolation, was clientseitiges Napplet-Hosting zu einem aktiven Implementierungsfeld macht. Wie bei „NIP-91&amp;quot; oben ist die 5D-Nummer vorläufig.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="nip-deep-dive-nip-42-und-nip-43">NIP Deep Dive: NIP-42 und NIP-43&lt;/h2>
&lt;p>Ein Relay zu betreiben, das nicht für alle offen ist, bedeutete früher, alles selbst zu erfinden. Der Betreiber eines bezahlten oder einladungsbasierten Relays musste eine Whitelist out-of-band pflegen — meist eine Textdatei mit über DMs gesammelten Pubkeys — ohne standardisierten Weg, einem verbundenen Client zu sagen „beweise, wer du bist&amp;quot;, und ohne standardisierten Weg für einen Nutzer, um Aufnahme zu bitten oder zu wissen, ob er Mitglied war. Jedes Relay, das Lese- oder Schreib-Gates wollte, baute seinen eigenen privaten Mechanismus, und Clients konnten mit keinem davon interagieren. &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> standardisiert die Identitätsnachweis-Hälfte dieses Problems, und &lt;a href="https://nostrcompass.org/de/topics/nip-43/">NIP-43&lt;/a> standardisiert die Mitgliedschafts-Hälfte. Diese Woche mergte nostream, das TypeScript-Relay, das Paar von Ende zu Ende: &lt;a href="https://github.com/Cameri/nostream/pull/702">PR #702&lt;/a> beschränkt Lesevorgänge verschlüsselter Kinds auf authentifizierte Empfänger, und &lt;a href="https://github.com/Cameri/nostream/pull/676">PR #676&lt;/a> fügt Join- und Leave-Request-Event-Strategien hinzu, beide gemergt am 20. Juli.&lt;/p>
&lt;h3 id="nip-42-authentifizierung-von-clients-gegenüber-relays">NIP-42: Authentifizierung von Clients gegenüber Relays&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> beantwortet eine Frage: Wer ist auf dieser Verbindung? Ein Relay, das Lese- oder Schreibzugriffe beschränken will, sendet beim Verbindungsaufbau oder bei Bedarf, wenn eine Anfrage Authentifizierung erfordert, eine &lt;code>AUTH&lt;/code>-Nachricht mit einem Challenge-String. Ein Client antwortet mit seiner eigenen &lt;code>AUTH&lt;/code>-Nachricht, die ein signiertes ephemeres Event des kind 22242 enthält, und das Relay antwortet mit einer &lt;code>OK&lt;/code>-Nachricht, genau als wäre das Auth-Event ein gewöhnlicher Schreibvorgang. Die Authentifizierung gilt dann für die Dauer der Verbindung. Eine Folge von &lt;code>AUTH&lt;/code>-Nachrichten kann mehrere pubkeys auf einer Verbindung authentifizieren.&lt;/p>
&lt;p>Das signierte Auth-Event ist ein kompaktes Objekt aus &lt;code>pubkey&lt;/code>, &lt;code>created_at&lt;/code>, kind 22242, einem &lt;code>relay&lt;/code>-Tag, einem &lt;code>challenge&lt;/code>-Tag, leerem &lt;code>content&lt;/code> und einer &lt;code>sig&lt;/code> über der Event-&lt;code>id&lt;/code>. Da kind 22242 ephemer ist — Relays dürfen es niemals speichern oder broadcasten — existiert kein veröffentlichtes Beispiel, das sich einbetten ließe; der Feldweg unten deckt ab, was es trägt.&lt;/p>
&lt;p>Der &lt;code>pubkey&lt;/code> ist die zu beweisende Identität, da das Relay die &lt;code>sig&lt;/code> über der Event-&lt;code>id&lt;/code> gegen ihn verifiziert. Kind 22242 liegt im ephemeren Bereich: Das Event ist ein Berechtigungsnachweis auf Verbindungsebene, den Relays niemals speichern oder an andere Clients broadcasten dürfen. Ein &lt;code>relay&lt;/code>-Tag bindet die Signatur an eine Relay-URL, sodass ein erbeutetes Auth-Event nicht gegen ein anderes Relay wiedergegeben werden kann, während das &lt;code>challenge&lt;/code>-Tag es an den konkreten Challenge-String dieser Verbindung bindet und eine spätere Wiedergabe verhindert. Sein &lt;code>created_at&lt;/code> muss nahe an der aktuellen Zeit liegen, innerhalb eines Fensters von ungefähr zehn Minuten, sodass ein veraltetes Auth-Event von selbst abläuft. Ein leeres &lt;code>content&lt;/code>-Feld bestätigt, dass nichts veröffentlicht wird.&lt;/p>
&lt;p>Die Spec definiert außerdem zwei maschinenlesbare Präfixe, die Gating für Clients sichtbar machen. Ein Relay, das eine Subscription ablehnt, weil sich der Client noch nicht authentifiziert hat, antwortet mit einer &lt;code>CLOSED&lt;/code>-Nachricht, die mit &lt;code>auth-required:&lt;/code> beginnt, und ein abgelehnter Schreibvorgang erhält ein &lt;code>OK&lt;/code> mit demselben Präfix. Ein Client, der authentifiziert ist, aber für die Aktion dennoch keine Berechtigung hat, erhält stattdessen &lt;code>restricted:&lt;/code>. Genau auf dieser Unterscheidung baut &lt;a href="https://github.com/Cameri/nostream/pull/702">nostreams PR #702&lt;/a> auf: Lesevorgänge verschlüsselter Kinds können nun mit &lt;code>auth-required:&lt;/code> geschlossen werden, bis der anfragende Pubkey beweist, dass er der Empfänger ist.&lt;/p>
&lt;h3 id="nip-43-relay-access-metadata-and-requests">NIP-43: Relay Access Metadata and Requests&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-43/">NIP-43&lt;/a> beantwortet die Folgefrage: Jetzt, wo das Relay weiß, wer du bist — was darfst du tun? Wo NIP-42 ein Handshake auf einer bestehenden Verbindung ist, ist NIP-43 ein Satz veröffentlichter Events, die den Mitgliedschaftsstatus beschreiben und Nutzern erlauben, dessen Änderung zu beantragen. Auf der Relay-Seite listet ein kind-13534-Event, signiert vom Pubkey im &lt;code>self&lt;/code>-Feld des &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Dokuments des Relays, ein &lt;code>member&lt;/code>-Tag pro Pubkey, mit optionalen Rollenargumenten, die auf als kind 33534 veröffentlichte Rollendefinitionen zeigen. Kind 8000 kündigt das Hinzufügen eines Mitglieds an und kind 8001 das Entfernen, beide signiert vom selben Relay-Schlüssel mit einem &lt;code>p&lt;/code>-Tag für das betroffene Mitglied. Auf der Nutzerseite ist kind 28934 eine Beitrittsanfrage, die einen Einladungscode in einem &lt;code>claim&lt;/code>-Tag trägt, kind 28935 ist ein ephemeres Invite-Code-Event, das das Relay on-the-fly erzeugt, wenn ein Nutzer einen Claim anfordert, und kind 28936 ist eine Austrittsanfrage.&lt;/p>
&lt;p>Eine Beitrittsanfrage ist ein ähnlich kleines Objekt, und bislang implementiert kein öffentliches Relay NIP-43, sodass es kein echtes kind-28934-Event zum Einbetten gibt; der Feldweg unten deckt ab, was es trägt.&lt;/p>
&lt;p>Der &lt;code>pubkey&lt;/code> ist der Nutzer, der um Aufnahme bittet, und kind 28934 markiert das Event als Beitrittsanfrage. Sein &lt;code>-&lt;/code>-Tag ist der &lt;a href="https://nostrcompass.org/de/topics/nip-70/">NIP-70&lt;/a>-Protected-Event-Marker und weist Relays an, das Event nur von seinem Autor anzunehmen. Ein &lt;code>claim&lt;/code>-Tag trägt den out-of-band erhaltenen Einladungscode, und &lt;code>created_at&lt;/code> muss innerhalb weniger Minuten um die aktuelle Zeit liegen, damit eine alte Anfrage nicht wiedergegeben werden kann. Relays beantworten den Claim mit einer &lt;code>OK&lt;/code>-Nachricht, verwenden das NIP-42-Präfix &lt;code>restricted:&lt;/code> für Fehler wie einen abgelaufenen oder ungültigen Code, aktualisieren die kind:13534-Liste und können ein kind:8000-Add-Member-Event veröffentlichen. Mitgliedschaft wird bewusst nicht aus einem einzelnen Event abgeleitet: Die Spec behandelt die vom Relay signierte Liste als eine Eingabe, und ein Client sollte sowohl kind:13534 des Relays als auch die eigenen Events des Mitglieds heranziehen, um dessen aktuellen Mitgliedschaftsstatus zu bestimmen. Clients dürfen Join-, Invite- oder Leave-Anfragen nur an Relays senden, die dieses NIP im Abschnitt &lt;code>supported_nips&lt;/code> ihres NIP-11-Dokuments ausweisen; &lt;a href="https://github.com/Cameri/nostream/pull/676">nostreams PR #676&lt;/a> ist die Relay-seitige Maschinerie, die aus diesen Request-Kinds tatsächliche Mitgliedschaftsänderungen macht.&lt;/p>
&lt;h3 id="geschichte">Geschichte&lt;/h3>
&lt;p>NIP-42 ist der ältere der beiden, und zwar mit deutlichem Abstand. Er ging am 2. Januar 2023 in &lt;a href="https://github.com/nostr-protocol/nips/commit/c80be21c">Commit c80be21c&lt;/a> in das NIPs-Repository ein, wo fiatjaf einen früheren von semisol entworfenen Relay-Auth-NIP drastisch vereinfachte und ein komplexeres Challenge-Schema auf das einzelne signierte ephemere Event reduzierte, das die Spec bis heute verwendet. NIP-43 kam viel später, am 30. Oktober 2025, als hodlbods &lt;a href="https://github.com/nostr-protocol/nips/pull/1079">PR #1079&lt;/a> gemergt wurde und Relay-Access-Metadaten und Requests direkt auf NIP-42s &lt;code>restricted:&lt;/code>-Präfix aufsetzte. Die Lücke von zweieinhalb Jahren spiegelt wider, wie lange Betreiber bezahlter und privater Relays Ad-hoc-Whitelists nutzten, bevor die Mitgliedschaftsschicht einen Standard bekam.&lt;/p>
&lt;h3 id="implementierungen">Implementierungen&lt;/h3>
&lt;p>Auf der Relay-Seite liefert &lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> nach den Merges dieser Woche nun beide Hälften. &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> implementiert NIP-42, validiert kind-22242-Auth-Events in seinem Ingester und gibt Challenges aus seiner Config heraus. &lt;a href="https://github.com/scsibug/nostr-rs-relay">nostr-rs-relay&lt;/a> handhabt den AUTH-Handshake in seiner Connection-Schicht mit Tests für Challenge und Zeitstempelfenster. &lt;a href="https://github.com/fiatjaf/khatru">khatru&lt;/a>, das Go-Relay-Framework, trackt den authentifizierten Pubkey pro Verbindung, sodass Policies Lesen und Schreiben darauf gaten können. Auf der Client-Seite signiert &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> kind-22242-Antworten auf Relay-Challenges, einschließlich Per-Stream-Auth für seine verschlüsselten Concord-Communities. Die beiden NIPs teilen Access Control entlang einer sauberen Linie: NIP-42 ist Identitätsnachweis, begrenzt auf eine Verbindung, eine Challenge und ein paar Minuten Gültigkeit, und sagt nichts über Policy. NIP-43 ist Policy, ausgedrückt als gewöhnliche Relay-Events: wer Mitglied ist, wer hinzugefügt oder entfernt wurde, und wie ein Nutzer diese Übergänge beantragt. Die Lücke, die Implementierer im Blick behalten sollten, ist, dass bislang nichts feiner granulare Berechtigungen über NIP-43s optionale Rollen-Metadaten hinaus standardisiert — jedes Relay, das mehr tut als eine binäre Mitglied/Nicht-Mitglied-Teilung, entwirft diese Schicht also selbst.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas oder hast News zu teilen? Melde dich per NIP-17-DM oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #31</title><link>https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/</link><pubDate>Wed, 15 Jul 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#vector-v040-moves-group-chats-from-marmot-to-concord-and-amethyst-ships-its-own-concord-client-days-later">Vector v0.4.0&lt;/a> ersetzt &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> als Standard-Transport für Group Chats zugunsten von &lt;a href="https://nostrcompass.org/de/topics/concord-protocol/">Concord&lt;/a>, einem offenen, MIT-lizenzierten Community-Protokoll, das auch von Soapbox&amp;rsquo; Armada verwendet wird, und liefert vier Tage später Concord v2 mit einem Slash-Command-Picker für Bots, einem Selbstzerstörungs-Timer und NIP-58-Badges. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#amethyst-ships-a-clean-room-concord-implementation-for-end-to-end-encrypted-communities">Amethyst mergt seine eigene Clean-Room-, drahtkompatible Concord-Implementierung&lt;/a> in derselben Woche. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#sonar-splits-off-from-bitchat-with-a-cross-platform-alpha-and-a-sticker-pack-spec">Sonar&lt;/a> spaltet sich von Bitchat ab mit einer plattformübergreifenden Alpha und ist die zitierte Spezifikationsquelle für den Sticker-Pack-Kinds-Vorschlag dieser Woche. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#divine-mobile-1016-ships-a-deeper-video-editor-at-rest-encryption-and-proofmode-provenance">Divine Mobile 1.0.16&lt;/a> liefert einen tieferen Video-Editor, At-Rest-Verschlüsselung und ProofMode-Provenienz, die wasserzeichenmarkierte Clip-Downloads überlebt. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#bitchat-v170-adds-live-push-to-talk-voice-for-dms-and-the-public-mesh">Bitchat v1.7.0&lt;/a> fügt Live-Push-to-Talk-Sprachübertragung für DMs und signiertes Push-to-Talk auf dem öffentlichen Mesh hinzu. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#mdk-v094-bounds-external-signer-login-and-adds-draft-persistence">MDK v0.9.4&lt;/a> begrenzt External-Signer-Login und fügt Draft-Persistenz hinzu, während Vector in derselben Woche die Spezifikation für Gruppen-Chat verlässt.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, eurem wöchentlichen Wegweiser für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#vector-v040-moves-group-chats-from-marmot-to-concord-and-amethyst-ships-its-own-concord-client-days-later">Vector v0.4.0&lt;/a> ersetzt &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> als Standard-Transport für Group Chats zugunsten von &lt;a href="https://nostrcompass.org/de/topics/concord-protocol/">Concord&lt;/a>, einem offenen, MIT-lizenzierten Community-Protokoll, das auch von Soapbox&amp;rsquo; Armada verwendet wird, und liefert vier Tage später Concord v2 mit einem Slash-Command-Picker für Bots, einem Selbstzerstörungs-Timer und NIP-58-Badges. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#amethyst-ships-a-clean-room-concord-implementation-for-end-to-end-encrypted-communities">Amethyst mergt seine eigene Clean-Room-, drahtkompatible Concord-Implementierung&lt;/a> in derselben Woche. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#sonar-splits-off-from-bitchat-with-a-cross-platform-alpha-and-a-sticker-pack-spec">Sonar&lt;/a> spaltet sich von Bitchat ab mit einer plattformübergreifenden Alpha und ist die zitierte Spezifikationsquelle für den Sticker-Pack-Kinds-Vorschlag dieser Woche. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#divine-mobile-1016-ships-a-deeper-video-editor-at-rest-encryption-and-proofmode-provenance">Divine Mobile 1.0.16&lt;/a> liefert einen tieferen Video-Editor, At-Rest-Verschlüsselung und ProofMode-Provenienz, die wasserzeichenmarkierte Clip-Downloads überlebt. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#bitchat-v170-adds-live-push-to-talk-voice-for-dms-and-the-public-mesh">Bitchat v1.7.0&lt;/a> fügt Live-Push-to-Talk-Sprachübertragung für DMs und signiertes Push-to-Talk auf dem öffentlichen Mesh hinzu. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#mdk-v094-bounds-external-signer-login-and-adds-draft-persistence">MDK v0.9.4&lt;/a> begrenzt External-Signer-Login und fügt Draft-Persistenz hinzu, während Vector in derselben Woche die Spezifikation für Gruppen-Chat verlässt.&lt;/p>
&lt;p>Getaggte Releases bringen &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#n_cord-v11-adds-nsec-bunker-support">n_cord v1.1&lt;/a> mit NSEC-Bunker-Unterstützung, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#cdk-v0173-adds-nip-47-wallet-service-support-across-cdk-cdk-nwc-and-cdk-ffi">cdk v0.17.3&lt;/a> mit NIP-47-Wallet-Service-Unterstützung über cdk, cdk-nwc und cdk-ffi, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#coop-mobile-v024-improves-nostr-connect-and-adds-ncryptsec1-import">Coop Mobile v0.2.4&lt;/a> mit verbessertem Nostr Connect und ncryptsec1-Import, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nmail-v0140-ships-on-macos-with-scheduled-send-and-push-notifications">Nmail v0.14.0&lt;/a> auf macOS mit geplantem Senden, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nostrord-v220-adds-a-dm-master-toggle-and-richer-direct-messages">Nostrord v2.2.0&lt;/a> mit einem DM-Master-Toggle, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nostr-wot-0386-hardens-key-backups-and-signing-prompts">Nostr WoT 0.3.86&lt;/a> mit gehärteten Schlüssel-Backups im NIP-49-Format, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#keep-android-v118-adds-first-run-frost-onboarding">Keep Android v1.1.8&lt;/a> mit First-Run-FROST-Onboarding, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#noscall-v060-adds-a-cashu-wallet-and-relay-based-push-notifications">Noscall v0.6.0&lt;/a> mit einem Cashu-Wallet und relay-basierten Push-Benachrichtigungen, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#kubo-ships-tablet-mode-and-group-chat-photos">Kubo&lt;/a> mit Tablet-Modus und Gruppen-Chat-Fotos und &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nostr-codex-phone-v029-adds-gitdiffread-file-helper-requests">Nostr Codex Phone v0.2.9&lt;/a> mit git-, diff- und read-file-Helper-Requests.&lt;/p>
&lt;p>Auf der unveröffentlichten Seite lässt &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#amethyst-lets-accounts-nickname-contacts-with-encrypted-nip-85-cards">Amethyst&lt;/a> Accounts Kontakte mit verschlüsselten NIP-85-Karten benennen, über 54 gemergte PRs. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#zap-cooking-ships-my-kitchen-phase-3-and-fixes-an-ndk-pool-quorum-bug">Zap Cooking&lt;/a> liefert My Kitchen Phase 3 und behebt einen NDK-Pool-Quorum-Bug. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#kehto-streams-outbox-reads-before-relay-discovery">Kehto&lt;/a> streamt Outbox-Reads vor Abschluss der Relay Discovery. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#wired-and-tao-add-nip-57-creator-revenue-sharing">Wired und TAO&lt;/a> fügen NIP-57-Creator-Revenue-Sharing hinzu. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#conduit-mono-rebuilds-the-merchant-orders-inbox-around-ephemeral-guest-checkout">Conduit Mono&lt;/a> baut seinen Händler-Bestelleingang um ephemeres Guest Checkout um. &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#buzz-hardens-channel-creator-provisioning-around-kind-39002">Buzz&lt;/a> härtet Channel-Creator-Provisioning über 240 gemergte PRs. Und &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nostr-docs-adopts-a-nip-49-signer-with-multi-account-and-qr-pairing">Nostr Docs&lt;/a> übernimmt einen NIP-49-Signer mit Multi-Account und QR-Pairing. Neu getrackt diese Woche: &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#opendiscord-v101-launches-as-a-discord-style-client-on-nostr">OpenDiscord v1.0.1&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#auditable-voting-v01140-aligns-organiser-voter-and-audit-proxy-roles">Auditable Voting v0.1.140&lt;/a> und Discovery-Pick &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#cambium-v032-pairs-with-heartwood-as-a-keyless-nip-55-signer">Cambium v0.3.2&lt;/a>, ein schlüsselloser NIP-55-Signer, der an einen Heartwood-Hardware-Companion weiterleitet.&lt;/p>
&lt;p>Das NIPs-Repository mergt in der letzten Woche nichts und öffnet sechs Vorschläge: &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-kind10011-favorite-follow-sets">kind:10011 Favorite Follow Sets&lt;/a>, ein &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-private-encrypted-drive-extends-nip-4e">privates verschlüsseltes Laufwerk als Erweiterung von NIP-4E&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-nip-da-permissioned-private-data-sharing">NIP-DA permissioned private data sharing&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-sticker-pack-kinds-10031-and-30031">Sticker-Pack-Kinds 10031 und 30031&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-nip-29-message-pinning-with-kind9010-and-kind39005">NIP-29 Message Pinning&lt;/a> und eine &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-nip-66-relay-discovery-restructure">NIP-66-Relay-Discovery-Umstrukturierung&lt;/a>. Der Deep Dive behandelt &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nip-deep-dive-nip-99-and-the-gamma-markets-commerce-extension">NIP-99 und die Gamma-Markets-Commerce-Erweiterung&lt;/a>.&lt;/p>
&lt;hr>
&lt;h2 id="leitgeschichten">Leitgeschichten&lt;/h2>
&lt;h3 id="vector-v040-moves-group-chats-from-marmot-to-concord-and-amethyst-ships-its-own-concord-client-days-later">Vector v0.4.0 moves Group Chats from Marmot to Concord, and Amethyst ships its own Concord client days later&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a> ist ein Nostr-Messenger, der auf einem Single-Binary-, datenschutzorientierten Client für DMs und Gruppen-Chats aufbaut. &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.0">Vector v0.4.0&lt;/a> schreibt die Messaging-Engine der App in eine gemeinsame &lt;code>vector-core&lt;/code>-Bibliothek um und ersetzt im selben Release &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> (MLS-over-Nostr) als Standard-Transport für Group Chats durch &lt;a href="https://nostrcompass.org/de/topics/concord-protocol/">Concord&lt;/a>, ein Ende-zu-Ende-verschlüsseltes Community-Protokoll; bestehende Marmot-Gruppenverläufe werden nicht übernommen, und die Release Notes empfehlen, alle Marmot-Gruppendaten vor dem Upgrade zu sichern. Vectors eigene Release Notes beschreiben Concord als „our custom messaging protocol&amp;quot;, aber die zugrunde liegenden &lt;a href="https://github.com/concord-protocol/concord">CORD-01- bis CORD-07-Spezifikationen&lt;/a> werden separat veröffentlicht, sind MIT-lizenziert und bereits außerhalb von Vector implementiert: Soapbox&amp;rsquo; Discord-artiger Client &lt;a href="https://gitlab.com/soapbox-pub/armada">Armada&lt;/a> baut sein Communities-Feature auf derselben Concord-Spezifikation auf, und einen Tag später &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3566">mergte Amethyst seine eigene Clean-Room-, drahtkompatible Concord-Implementierung&lt;/a>, die weiter unten vollständig behandelt wird. Dasselbe Vector-Release fügt optionales Tor-Routing für allen Datenverkehr, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signer-Login per QR oder eingefügter Bunker-URI, mehrere Accounts mit einem In-App-Switcher und benutzerdefinierte Emoji-Packs hinzu, die clientübergreifend geteilt werden. Das Löschen von Nachrichten entfernt eine Nachricht für beide Seiten in DMs und Gruppen-Chats, und Vector behält bewusst den ephemeren Signaturschlüssel, anstatt dem Standard-&lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-Löschablauf zu folgen, eine datenschutzmotivierte Abweichung, die das Projekt explizit in den Release Notes hervorhebt. Vier Tage später liefert &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.1">v0.4.1&lt;/a> &lt;strong>Concord v2&lt;/strong>, das wichtige Datenschutz- und Stabilitätsverbesserungen für Communities bringt, bei gleichzeitiger Kompatibilität bestehender Communities, zusammen mit einem Discord-artigen Slash-Command-Picker für Bots mit typisierten Parametern, einem Pro-Chat-Selbstzerstörungs-Timer und einem NIP-58-Badge-System für Bug Hunter. Der Wechsel weg von Marmot für Gruppen-Chat erfolgt in derselben Woche, in der &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#mdk-v094-bounds-external-signer-login-and-adds-draft-persistence">MDK v0.9.4&lt;/a> unten weiterhin in die Spezifikation investiert.&lt;/p>
&lt;h3 id="amethyst-ships-a-clean-room-concord-implementation-for-end-to-end-encrypted-communities">Amethyst ships a clean-room Concord implementation for end-to-end encrypted communities&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> ist ein funktionsreicher Android- und Multiplattform-Nostr-Client. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3566">PR #3566&lt;/a> fügt eine vollständige Implementierung von &lt;a href="https://nostrcompass.org/de/topics/concord-protocol/">Concord&lt;/a> (CORD-01 bis CORD-07) hinzu, die serverlose, Ende-zu-Ende-verschlüsselte Communities abdeckt: Gift-Wrapped Control-, Chat- und Guestbook-Ebenen über gewöhnliche Relays, vom Eigentümer verwurzelte Rollen- und Ban-Durchsetzung, die jeder Client lokal verifiziert, anstatt einem Server zu vertrauen, und Rekeying zum Ausschluss entfernter Mitglieder. Protokoll- und Krypto-Code liegt in &lt;code>quartz/&lt;/code>, State und View Models in &lt;code>commons/&lt;/code>, und Screens und Navigation in &lt;code>amethyst/&lt;/code> für Android, mit schlanken CLI-Verben unter &lt;code>cli/&lt;/code>; es gibt noch keine Desktop-UI, da die gemeinsame Logik in &lt;code>quartz&lt;/code>/&lt;code>commons&lt;/code> liegt, damit Desktop sie später übernehmen kann. Die Implementierung ist Clean-Room: aus den öffentlichen CORD-Spezifikationen und beobachteten Wire-Konstanten gebaut, unter Amethysts eigener MIT-Lizenz, getrennt von Armadas AGPL-3.0-Codebasis. Armadas eigene Test-Vector-Werte wurden in Quartz&amp;rsquo; Unit-Tests portiert, um zu bestätigen, dass die beiden Clients tatsächlich auf der Leitung interoperieren, was Concord innerhalb von Tagen drei unabhängige Implementierungen gibt: Vector liefert zuerst, Armada als Soapbox&amp;rsquo; Referenz-Client, und nun Amethysts Aus-der-Spezifikation-Build.&lt;/p>
&lt;h3 id="sonar-splits-off-from-bitchat-with-a-cross-platform-alpha-and-a-sticker-pack-spec">Sonar splits off from Bitchat with a cross-platform alpha and a sticker-pack spec&lt;/h3>
&lt;p>&lt;a href="https://sonarprivacy.xyz/">Sonar&lt;/a> ist ein Bluetooth-Mesh-plus-Nostr-Messenger und Wallet, gewachsen aus Bitchat, mit Marmot-Gruppen-DMs, die mit White Noise interoperieren. Code liegt unter &lt;a href="https://github.com/hedwig-corp/bitchat-to-sonar">hedwig-corp/bitchat-to-sonar&lt;/a>. &lt;a href="https://github.com/hedwig-corp/bitchat-to-sonar/releases/tag/v0.1-alpha.7">v0.1-alpha.7&lt;/a> fügt Signal-artiges begrenztes Transcript-Windowing hinzu, damit Open- und Scroll-Performance local-first bleibt, synchronisiert Nearby-Discovery-State über Peers und behebt Blossom-Medien-Uploads, die bei Content-Type und HTTP-Status-Handling fehlschlugen; das vorangehende &lt;a href="https://github.com/hedwig-corp/bitchat-to-sonar/releases/tag/v0.1-alpha.6">alpha.6&lt;/a> leerte Live-Marmot-Events für schnellere Chat-Aktualisierung und schloss Android-zu-iOS-Feature-Parity-Lücken über Anrufe, Messaging, Wallet und Push. Sonar ist auch die zitierte Spezifikationsquelle für &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#open-sticker-pack-kinds-10031-and-30031">PR #2410&lt;/a>, die Sticker-Pack-Event-Kinds unter der eigenen „Sonar Stickers&amp;quot;-Spezifikation des Projekts registriert, was diesem Launch eine direkte Hub-Verbindung zur Protokollarbeit dieser Woche gibt.&lt;/p>
&lt;h3 id="divine-mobile-1016-ships-a-deeper-video-editor-at-rest-encryption-and-proofmode-provenance">Divine Mobile 1.0.16 ships a deeper video editor, at-rest encryption, and ProofMode provenance&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">Divine&lt;/a> ist ein Kurzvideo-Client, der auf Nostr mit Web-of-Trust-Feed-Kuratierung aufbaut. &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.16">v1.0.16&lt;/a>, das erste getaggte Release seit #30, fügt dem Video-Editor Clip-Übergänge, Rückwärtswiedergabe, einen Voice-Over-Recorder und Timeline-Beat-Marker hinzu, zusammen mit einem Feed-Tuning-Control, das einem Nutzer ermöglicht, durch Wischen die Empfehlungen direkt anzupassen, anstatt sie opaken Engagement-Signalen zu überlassen. Das Release aktiviert auch At-Rest-Verschlüsselung für lokale Daten, fügt Hintergrund-Uploads hinzu, die das Suspendieren der App überleben, und führt &lt;a href="https://nostrcompass.org/de/topics/proofmode/">ProofMode&lt;/a>-Provenienzdaten weiter, wenn ein wasserzeichenmarkierter Clip heruntergeladen wird, damit die Attestierung menschlicher Herkunft beim Transit nicht entfernt wird. Divine liefert auch neue Schutzmaßnahmen für Accounts unter 16 Jahren und erweitert die Lokalisierung auf 17 Sprachen und 284 übersetzte Strings.&lt;/p>
&lt;h3 id="bitchat-v170-adds-live-push-to-talk-voice-for-dms-and-the-public-mesh">Bitchat v1.7.0 adds live push-to-talk voice for DMs and the public mesh&lt;/h3>
&lt;p>&lt;a href="https://github.com/permissionlesstech/bitchat">Bitchat&lt;/a> ist eine Bluetooth-Mesh-Chat-App mit einem optionalen Gateway auf Nostr-Relays. &lt;a href="https://github.com/permissionlesstech/bitchat/releases/tag/v1.7.0">v1.7.0&lt;/a>, veröffentlicht am Abend der Veröffentlichung von #30, fügt Live-Push-to-Talk-Sprachübertragung in &lt;a href="https://github.com/permissionlesstech/bitchat/pull/1403">PR #1403&lt;/a> hinzu, die Audio streamt, während der Sender die Taste hält, und bei Abbruch des Streams auf eine Sprachnotiz zurückfällt, plus signiertes öffentliches Mesh-Push-to-Talk in &lt;a href="https://github.com/permissionlesstech/bitchat/pull/1406">PR #1406&lt;/a>, sodass Live-Sprach-Bursts auf dem gemeinsamen Mesh-Kanal Sender-Authentifizierung tragen. Das Release heilt auch Peer-ID-Rotation durch erneutes Binden des Links bei einem verifizierten Re-Announce, wobei derselbe Peer unter seiner neuen ID erkannt wird (&lt;a href="https://github.com/permissionlesstech/bitchat/pull/1401">PR #1401&lt;/a>), und Direktnachrichten an einen derzeit nicht erreichbaren Peer werden jetzt mit Store-and-Forward-Zustellung in die Warteschlange gestellt, anstatt direkt fehlzuschlagen (&lt;a href="https://github.com/permissionlesstech/bitchat/pull/1415">PR #1415&lt;/a>). Dies setzt direkt die Berichterstattung von #30 über v1.6.0&amp;rsquo;s &lt;a href="https://nostrcompass.org/de/topics/nip-13/">NIP-13&lt;/a> Proof-of-Work und Mesh-to-Nostr-Gateway-Arbeit fort.&lt;/p>
&lt;h3 id="mdk-v094-bounds-external-signer-login-and-adds-draft-persistence">MDK v0.9.4 bounds external-signer login and adds draft persistence&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> ist das Referenz-SDK für das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll, die MLS-over-Nostr-Messaging-Schicht, deren Spezifikation #30 als übernommen behandelte. &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.9.4">v0.9.4&lt;/a> begrenzt die Advisory-Directory-Schritte, die ein Client beim External-Signer-Login durchläuft, in &lt;a href="https://github.com/marmot-protocol/mdk/pull/793">PR #793&lt;/a>, und verhindert eine unbegrenzte Retry-Schleife, wenn ein Remote Signer langsam oder nicht erreichbar ist. Dasselbe Release fügt Draft-Message-Persistenz und Profil-Website-Bindings in &lt;a href="https://github.com/marmot-protocol/mdk/pull/812">PR #812&lt;/a> hinzu und setzt den inkrementellen Härtungsdurchgang fort, den MDK seit dem Schneiden von v0.9.0 durchführt.&lt;/p>
&lt;hr>
&lt;h2 id="getaggte-releases">Getaggte Releases&lt;/h2>
&lt;h3 id="n_cord-v11-adds-nsec-bunker-support">n_cord v1.1 adds NSEC Bunker support&lt;/h3>
&lt;p>&lt;a href="https://github.com/0n4t3/n_cord">n_cord&lt;/a> ist ein Nostr-basierter Chat-Client, inspiriert von Discord und IRC. &lt;a href="https://github.com/0n4t3/n_cord/releases/tag/v1.1">v1.1&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> NSEC-Bunker-Unterstützung hinzu, zusammen mit einem Reply-Handling-Bug-Fix.&lt;/p>
&lt;h3 id="cdk-v0173-adds-nip-47-wallet-service-support-across-cdk-cdk-nwc-and-cdk-ffi">cdk v0.17.3 adds NIP-47 wallet-service support across cdk, cdk-nwc, and cdk-ffi&lt;/h3>
&lt;p>&lt;a href="https://github.com/cashubtc/cdk">cdk&lt;/a> ist ein Cashu Development Kit; dieses Release ist in den meisten Aspekten rein Bitcoin/Lightning, aber &lt;a href="https://github.com/cashubtc/cdk/releases/tag/v0.17.3">v0.17.3&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) Service-Unterstützung mit einem dedizierten NWC-Service-Crate, Wallet-Integration, FFI-Bindings für &lt;code>cdk-ffi&lt;/code> und End-to-End-Testabdeckung hinzu, was auf cdk aufbauenden Cashu-Wallets eine standardmäßige Nostr-Wallet-Connect-Oberfläche gibt.&lt;/p>
&lt;h3 id="coop-mobile-v024-improves-nostr-connect-and-adds-ncryptsec1-import">Coop Mobile v0.2.4 improves Nostr Connect and adds ncryptsec1 import&lt;/h3>
&lt;p>&lt;a href="https://git.reya.su/reya/coop-mobile">Coop Mobile&lt;/a> ist ein &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Private-Messaging-Client für mobile Plattformen. &lt;a href="https://git.reya.su/reya/coop-mobile/releases/tag/v0.2.4">v0.2.4&lt;/a> verbessert den &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Nostr-Connect-Ablauf, behebt einen Ladeindikator, der bei manchen Verbindungen permanent hängen blieb, und fügt Import-Unterstützung für das &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> &lt;code>ncryptsec1&lt;/code>-verschlüsselte-Schlüssel-Format hinzu, zusammen mit einem umgestalteten Identitätsimport-Bildschirm.&lt;/p>
&lt;h3 id="nmail-v0140-ships-on-macos-with-scheduled-send-and-push-notifications">Nmail v0.14.0 ships on macOS with scheduled send and push notifications&lt;/h3>
&lt;p>&lt;a href="https://github.com/nogringo/nostr-mail-client">Nmail&lt;/a> ist ein auf Nostr aufbauender Mail-Client; &lt;a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.14.0">v0.14.0&lt;/a> bringt die App auf macOS, fügt geplantes Senden mit einem dedizierten Scheduled-Postfach für wartende Nachrichten und Push-Benachrichtigungen hinzu. Das Release stellt auch die Adressbuch-Nostr-Identifier-Auflösung auf NDKs &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a>-Resolver um, anstelle einer maßgeschneiderten Implementierung.&lt;/p>
&lt;h3 id="nostrord-v220-adds-a-dm-master-toggle-and-richer-direct-messages">Nostrord v2.2.0 adds a DM master toggle and richer direct messages&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a> ist ein &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> relay-basierter Gruppen-Chat-Client für Android, iOS, Web und Desktop. &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.2.0">v2.2.0&lt;/a> fügt einen Master-Toggle zum gleichzeitigen Deaktivieren aller Direktnachrichten-Funktionen hinzu (&lt;a href="https://github.com/nostrord/nostrord/pull/175">PR #175&lt;/a>) und liefert „reichere Direktnachrichten&amp;quot; (&lt;a href="https://github.com/nostrord/nostrord/pull/186">PR #186&lt;/a>), fortgesetzt nach der Berichterstattung in #30 über das Release, das den Relay-Pool faltete und Zombie-WebSockets erkannte.&lt;/p>
&lt;h3 id="nostr-wot-0386-hardens-key-backups-and-signing-prompts">Nostr WoT 0.3.86 hardens key backups and signing prompts&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-wot/nostr-wot-extension">Nostr WoT&lt;/a> ist eine Browser-Erweiterung, die eine Nostr-Identität mit einem Lightning-Wallet koppelt. &lt;a href="https://github.com/nostr-wot/nostr-wot-extension/releases/tag/v0.3.86">v0.3.86&lt;/a> verschiebt verschlüsselte Schlüssel-Backups in das standardmäßige &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a>-Format, lässt Signatur-Prompts das vollständige Event und alle Tags anzeigen anstatt einer Zusammenfassung, verifiziert Relay-Daten gegen deren Signatur und stoppt das Offenlegen der aktiven Identität beim Kontowechsel. Die Erweiterung entfernt auch die ungenutzte &lt;code>scripting&lt;/code>-Browser-Berechtigung.&lt;/p>
&lt;h3 id="keep-android-v118-adds-first-run-frost-onboarding">Keep Android v1.1.8 adds first-run FROST onboarding&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> ist ein Android-Signer, der auf FROST-Threshold-Key-Shares aufbaut. &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v1.1.8">v1.1.8&lt;/a> fügt einen First-Run-Ablauf hinzu, der FROST-Key-Shares erklärt und einem neuen Nutzer ermöglicht, eine Signatur-Richtlinie (Manual, Basic oder Auto) zu wählen, bevor die erste Signaturanfrage eintrifft, das erste Android-seitige Onboarding für das Threshold-Signing-Modell des zugrunde liegenden keep-mobile-Crate.&lt;/p>
&lt;h3 id="noscall-v060-adds-a-cashu-wallet-and-relay-based-push-notifications">Noscall v0.6.0 adds a Cashu wallet and relay-based push notifications&lt;/h3>
&lt;p>&lt;a href="https://github.com/sanah9/noscall">Noscall&lt;/a> ist eine sichere Audio- und Videoanruf-App, die auf Nostr aufbaut. &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.6.0-release">v0.6.0&lt;/a> fügt ein kontobezogenes Cashu-Wallet mit Multi-Mint-Salden, ecash-Senden und -Empfangen und Lightning-Zahlen und -Empfangen mit Quote-Persistenz hinzu. Das Release migriert Android-Push-Benachrichtigungen auch weg von Firebase Cloud Messaging auf einen Nostr-relay-basierten Zustellpfad über UnifiedPush und verbessert die iOS-VoIP- und APNs-Push-Zuverlässigkeit bei Login-Wiederholungsversuchen.&lt;/p>
&lt;h3 id="kubo-ships-tablet-mode-and-group-chat-photos">Kubo ships tablet mode and group-chat photos&lt;/h3>
&lt;p>&lt;a href="https://github.com/JeroenOnNostr/kubo">Kubo&lt;/a> ist eine kindersichere Nostr-Videoplattform mit Web-of-Trust-Feed-Kuratierung. &lt;a href="https://github.com/JeroenOnNostr/kubo/releases/tag/kubo-v2026.07.05">kubo-v2026.07.05&lt;/a> fügt ein optionales Tablet-Grid-Layout für den Kinder-Feed und Unterstützung für das Anhängen von Fotos an Gruppen-Chat-Nachrichten hinzu, plus Fixes für den Anmeldeknopf, der sich auf Android hinter der Bildschirmtastatur versteckt.&lt;/p>
&lt;h3 id="nostr-codex-phone-v029-adds-gitdiffread-file-helper-requests">Nostr Codex Phone v0.2.9 adds git/diff/read-file helper requests&lt;/h3>
&lt;p>&lt;a href="https://github.com/tidley/nostr-codex-phone">Nostr Codex Phone&lt;/a> ist eine mobile Steuerungsoberfläche für einen lokalen Coding-Assistant-Worker, der über verschlüsselte Nostr-DMs kommuniziert. &lt;a href="https://github.com/tidley/nostr-codex-phone/releases/tag/v0.2.9">v0.2.9&lt;/a> fügt mobile OpenCode-Tool-Aktionen hinzu, darunter git-, diff-, read-file-, status- und history-Helper-Requests, Session-Pin- und Suchverbesserungen sowie eine Task-Stop-Steuerung, neben einem verschlüsselten &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Upload-Wrapper, der im vorangegangenen v0.2.8 geliefert wurde.&lt;/p>
&lt;h3 id="gitworkshop-v303-fixes-newly-announced-refs-in-the-repo-explorer-and-ships-its-first-android-build">GitWorkshop v3.0.3 fixes newly announced refs in the repo explorer, and ships its first Android build&lt;/h3>
&lt;p>&lt;a href="https://github.com/DanConwayDev/gitworkshop">GitWorkshop&lt;/a> ist eine git-over-Nostr-Web-UI zum Durchsuchen und Reviewen von NIP-34-Repositories. &lt;a href="https://github.com/DanConwayDev/gitworkshop/releases/tag/v3.0.3">v3.0.3&lt;/a> behebt das Fehlschlagen der Branches-, Tags-, Commits- und Code-Browsing-Ansichten beim Auflösen eines Refs, den ein Repository ankündigt, nachdem der Explorer es bereits geladen hat, zusammen mit CI-Workflow-Timing-Bereinigung, direkt gegen den Tag und die Commit-Historie bestätigt. In derselben Woche veröffentlichte GitWorkshop seinen ersten nativen Android-Build im &lt;a href="https://zapstore.dev">Zapstore&lt;/a>, startend bei v3.0.0 und innerhalb von Stunden v3.0.3 erreichend; die Web-UI bleibt das primäre Interface, und das Android-Paket bringt dasselbe NIP-34-Repository-Browsing zum ersten Mal auf ein Telefon.&lt;/p>
&lt;h3 id="bitcoin-safe-reaches-flathub-spotlighting-its-nostr-sync--chat-plugin">Bitcoin-Safe reaches Flathub, spotlighting its Nostr Sync &amp;amp; Chat plugin&lt;/h3>
&lt;p>&lt;a href="https://bitcoin-safe.org">Bitcoin-Safe&lt;/a> ist ein Self-Custody-Bitcoin-Wallet, das auf Hardware-Signer-Workflows aufbaut. Das Projekt &lt;a href="https://flathub.org/apps/org.bitcoin_safe.BitcoinSafe">hat ein Flathub-Paket veröffentlicht&lt;/a> in dieser Woche, sein erster Eintrag in einem Mainstream-Linux-App-Store. Das Flathub-Release bringt Bitcoin-Safes Sync-&amp;amp;-Chat-Plugin vor ein breiteres Publikum: Das Plugin verwendet &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Direktnachrichten über die projekteigene &lt;a href="https://github.com/andreasgriffin/bitcoin-nostr-chat">bitcoin-nostr-chat&lt;/a>-Bibliothek, um Wallet-Labels zwischen den Geräten eines Nutzers zu synchronisieren und PSBTs für Remote-Multisig-Co-Signing zwischen vertrauenswürdigen Teilnehmern zu senden und zu empfangen. Die Nostr-Schicht selbst wurde früher ausgeliefert, in &lt;a href="https://github.com/andreasgriffin/bitcoin-safe/releases/tag/2.0.0">2.0.0&lt;/a> (2026-06-29), das das Transaktionssignieren um einen „Share via Chat &amp;amp; Sync&amp;quot;-Verbindungstyp neben QR, USB und Bluetooth umgestaltete. Die Nachricht dieser Woche ist das Flathub-Packaging, das dieses bestehende Feature zum ersten Mal einem Mainstream-Linux-Publikum zugänglich macht.&lt;/p>
&lt;hr>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="amethyst-lets-accounts-nickname-contacts-with-encrypted-nip-85-cards">Amethyst lets accounts nickname contacts with encrypted NIP-85 cards&lt;/h3>
&lt;p>Neben der oben behandelten &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#amethyst-ships-a-clean-room-concord-implementation-for-end-to-end-encrypted-communities">Concord-Implementierung&lt;/a> mergte Amethyst in der letzten Woche 54 weitere PRs. Das Highlight darunter ist &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3548">PR #3548&lt;/a>, das einem Account ermöglicht, jeden anderen Nutzer mit einem Spitznamen zu versehen, indem es seine eigene kind-30382-&lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a>-Kontaktkarte über ihn veröffentlicht. Der Petname, eine private Notiz und beliebige benutzerdefinierte &lt;a href="https://nostrcompass.org/de/topics/nip-30/">NIP-30&lt;/a> Emoji-Shortcode-Zuordnungen befinden sich im &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-verschlüsselten Inhalt der Karte, sodass nur der signierende Account sie lesen kann, und Karten synchronisieren über das erweiterte Outbox-Relay-Set des Accounts bei Login und danach inkrementell. Feeds, Chats und Erwähnungen rendern den Petname anstelle des öffentlichen Anzeigenamens, mit einer antippbaren Spitznamenkarte auf der Profilseite oberhalb des echten Namens des Nutzers.&lt;/p>
&lt;h3 id="zap-cooking-ships-my-kitchen-phase-3-and-fixes-an-ndk-pool-quorum-bug">Zap Cooking ships My Kitchen Phase 3 and fixes an NDK pool quorum bug&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a> ist eine Rezept-Sharing- und Koch-Community-App, die auf Nostr aufbaut. Sie mergte 43 PRs, die ihr „My Kitchen&amp;quot;-Mahlzeitenplanungs-Feature fortsetzen, mit Einkaufslisten-Generierung, einem Rezept-Picker und einem Planer-Wochenraster in dieser Phase. Dieselbe Reihe von Änderungen behebt einen &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> (Nostr Development Kit) Connection-Pool-Quorum-Readiness-Bug, der Relay-Reads warten lassen konnte, nachdem ein Quorum von Relays bereits geantwortet hatte.&lt;/p>
&lt;h3 id="kehto-streams-outbox-reads-before-relay-discovery">Kehto streams outbox reads before relay discovery&lt;/h3>
&lt;p>&lt;a href="https://github.com/kehto/web">Kehto&lt;/a> ist eine frühe webbasierte Laufzeitumgebung für &lt;a href="https://nostrcompass.org/de/topics/nip-5d/">NIP-5D&lt;/a> Nostr Applets, oder „Napplets&amp;quot;. Sie mergte 26 PRs. &lt;a href="https://github.com/kehto/web/pull/193">PR #193&lt;/a> behebt Outbox-Reads, die zuvor auf das Laden der &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Liste warteten, bevor überhaupt ein Relay geöffnet wurde, sodass ein Relay-Liste-Load, der nie abschloss, sowohl Event-Zustellung als auch Query-Timeouts blockieren konnte; der Fix öffnet validierte Relay-Hints sofort und streamt Ergebnisse, während Write-Relays entdeckt werden. Eine zweite Änderung (&lt;a href="https://github.com/kehto/web/pull/196">PR #196&lt;/a>) richtet die Identitäts-Audit-Seite des Projekts an NAP-SHELL aus, dem Lifecycle-Contract der Napplet-Plattform, Teil derselben Protokoll-Alignment-Arbeit, die anderswo im &lt;code>napplet/web&lt;/code>-Release dieser Woche sichtbar ist.&lt;/p>
&lt;h3 id="wired-and-tao-add-nip-57-creator-revenue-sharing">Wired and TAO add NIP-57 creator revenue sharing&lt;/h3>
&lt;p>&lt;a href="https://github.com/smolgrrr/Wired">Wired&lt;/a> und &lt;a href="https://github.com/smolgrrr/TAO">TAO&lt;/a> sind Zwillings-Free-Speech-fokussierte Social-Clients, die auf Nostr aufbauen und dieselbe PR-Liste teilen; beide mergten &lt;a href="https://github.com/smolgrrr/Wired/pull/121">PR #121&lt;/a>, das &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> Creator Revenue Sharing implementiert, sodass an einen Post gesendete Zaps automatisch an Beitragende über den ursprünglichen Poster hinaus aufgeteilt werden können. Dies setzt die Berichterstattung von #30 über das Paar fort, das sein Proof-of-Work-Signal auf 21 Bit als unveröffentlichte Arbeit erhöht hat.&lt;/p>
&lt;h3 id="conduit-mono-rebuilds-the-merchant-orders-inbox-around-ephemeral-guest-checkout">Conduit Mono rebuilds the merchant orders inbox around ephemeral guest checkout&lt;/h3>
&lt;p>&lt;a href="https://github.com/Conduit-BTC/conduit-mono">Conduit Mono&lt;/a> ist ein Marktplatz-Protokoll neben &lt;a href="https://nostrcompass.org/de/topics/nip-99/">NIP-99&lt;/a> Classified Listings. &lt;a href="https://github.com/Conduit-BTC/conduit-mono/pull/174">PR #174&lt;/a> fügt Guest Checkout mit einem browserseitig generierten ephemeren Schlüssel hinzu: Der Gast sendet eine verschlüsselte Bestellung und einen Zahlungsbericht an den Händler unter Verwendung dieses Einmalschlüssels, und der Händler folgt außerhalb des Bands per Telefon oder E-Mail auf, sodass der Käufer nie eine dauerhafte Inbox-Identität benötigt. &lt;a href="https://github.com/Conduit-BTC/conduit-mono/pull/175">PR #175&lt;/a> baut den Händler-Bestelleingang um ein einzelnes gemeinsames Bestellstatus-Modell um, trennt Käufer- und Händlerrollen und verlangt einen Tracking-Code und Carrier, bevor eine physische oder gemischte Bestellung auf „versandt&amp;quot; wechseln kann. Der Checkout-Ablauf des Projekts baut auf &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Private Messages, &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> Verschlüsselung und &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrap auf. Der &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nip-deep-dive-nip-99-and-the-gamma-markets-commerce-extension">NIP Deep Dive&lt;/a> dieser Woche behandelt die &lt;a href="https://nostrcompass.org/de/topics/gamma-markets/">Gamma Markets&lt;/a>-Konventionen, auf die dasselbe Bestellstatus-Problem hinarbeitet.&lt;/p>
&lt;h3 id="buzz-hardens-channel-creator-provisioning-around-kind-39002">Buzz hardens channel-creator provisioning around kind 39002&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/buzz">Buzz&lt;/a> ist eine Hive-Mind-Kommunikationsplattform, die KI-Agenten und Menschen über Nostr verbindet. Sie mergte 240 PRs in der letzten Woche und setzte ihren Relay-Schicht-Härtungsbogen fort, nach der Berichterstattung von #30 über kind-44200-Agent-Turn-Metriken. Der Fix dieser Woche (&lt;a href="https://github.com/block/buzz/pull/1830">PR #1830&lt;/a>) behandelt den Creator eines Channels als Mitglied, bevor die kind-39002-Channel-Provisioning-Logik ausgeführt wird, und schließt eine Race Condition, bei der der eigene Channel des Creators ihn während des Setups ablehnen konnte.&lt;/p>
&lt;h3 id="nostr-docs-adopts-a-nip-49-signer-with-multi-account-and-qr-pairing">Nostr Docs adopts a NIP-49 signer with multi-account and QR pairing&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-docs">Nostr Docs&lt;/a> ist eine Nostr-native kollaborative Dokumentenanwendung. Sie mergte 5 PRs, der bemerkenswerte (&lt;a href="https://github.com/formstr-hq/nostr-docs/pull/50">PR #50&lt;/a>) übernimmt das &lt;code>@formstr/signer&lt;/code>-Paket für vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a>-Authentifizierung mit Multi-Account-Switching und QR-Pairing und ersetzt einen früheren maßgeschneiderten Signaturpfad.&lt;/p>
&lt;h3 id="ebenfalls-ausgeliefert">Ebenfalls ausgeliefert&lt;/h3>
&lt;p>Kleinere Signer-Interop- und Zuverlässigkeits-Fixes landeten in der letzten Woche über mehrere getrackte Projekte hinweg, ohne genug neue Oberfläche für eigene Absätze: &lt;a href="https://github.com/DanConwayDev/ngit-cli">ngit-cli&lt;/a>, ein Kommandozeilen-Client für eine Nostr-basierte GitHub-Alternative, liefert &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.6.3">v2.6.3&lt;/a>, das &lt;code>ngit init&lt;/code> umsetzbare Setup-Anleitung statt wiederholter nsec-Abfragen gibt; &lt;a href="https://github.com/dtonon/manent">Manent&lt;/a>, eine private verschlüsselte Notizen-und-Dateien-App auf Nostr, liefert &lt;a href="https://github.com/dtonon/manent/releases/tag/v1.4.1">v1.4.1&lt;/a> mit einem Fix für defektes Android-Signer-Login, wenn Amber einen Hex-pubkey zurückgibt, und verbessertem Bunker-Login-Scrolling; &lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a>, ein schlanker, Google-Service-freier Nostr-Client, liefert &lt;a href="https://github.com/77elements/noornote/releases/tag/v1.2.8">v1.2.8&lt;/a> mit einem Fix für verpasste Nostrord-Gruppen-Benachrichtigungen und einem Self-Post-Alert-Toggle; &lt;a href="https://github.com/forgesworn/bray">Bray&lt;/a>, ein vertrauensbewusster Nostr-MCP-Server für KI-Agenten und Menschen, liefert &lt;a href="https://github.com/forgesworn/bray/releases/tag/v1.34.0">v1.34.0&lt;/a>, das Client-Name-Metadaten bei &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Bunker Connect sendet; &lt;a href="https://github.com/TsukemonoGit/lumilumi">Lumilumi&lt;/a>, ein Nostr-Web-Client, cachet &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Listen im lokalen Speicher für Offline-Fallback; &lt;a href="https://github.com/moogmodular/earthly">Earthly&lt;/a>, eine Nostr-basierte lokale Stadt- und Community-App, fügt &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> Geo-Suche hinzu; und &lt;a href="https://github.com/lnbits/lnbits">lnbits&lt;/a>, ein freies und Open-Source-Lightning-Wallet- und Kontensystem, liefert &lt;a href="https://github.com/lnbits/lnbits/pull/3925">PR #3925&lt;/a>, das &lt;code>send_nostr_dm&lt;/code> nicht-blockierend innerhalb eines ansonsten Lightning-fokussierten Releases veröffentlicht.&lt;/p>
&lt;hr>
&lt;h2 id="neu-getrackt-und-entdeckt">Neu getrackt und entdeckt&lt;/h2>
&lt;h3 id="opendiscord-v101-launches-as-a-discord-style-client-on-nostr">OpenDiscord v1.0.1 launches as a Discord-style client on Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/sofia-gros/open-discord">OpenDiscord&lt;/a> ist ein Discord-artiger Server-und-Channel-Client, der auf Nostr mit rollenbasierten Berechtigungen und WebRTC/SFU-Sprach-Lobbies aufbaut. &lt;a href="https://github.com/sofia-gros/open-discord/releases/tag/v1.0.1">v1.0.1&lt;/a> ist das erste getaggte Installer-Release des Projekts.&lt;/p>
&lt;h3 id="auditable-voting-v01140-aligns-organiser-voter-and-audit-proxy-roles">Auditable Voting v0.1.140 aligns organiser, voter, and audit-proxy roles&lt;/h3>
&lt;p>&lt;a href="https://github.com/tidley/auditable-voting">Auditable Voting&lt;/a> ist eine Client-only-Nostr-Abstimmungs-Shell. &lt;a href="https://github.com/tidley/auditable-voting/releases/tag/v0.1.140">v0.1.140&lt;/a> richtet die Organiser-, Voter- und Audit-Proxy-Rollen am exakten vom Organiser signierten öffentlichen Questionnaire-Definition-Event aus und schließt eine Lücke, bei der ein Audit-Proxy auf veralteten generierten Accounts oder State operieren konnte, der von einem anderen Worker oder Organiser stammte.&lt;/p>
&lt;h3 id="cambium-v032-pairs-with-heartwood-as-a-keyless-nip-55-signer">Cambium v0.3.2 pairs with Heartwood as a keyless NIP-55 signer&lt;/h3>
&lt;p>&lt;a href="https://github.com/forgesworn/cambium">Cambium&lt;/a> ist der Discovery-Pick dieser Ausgabe: ein Android-&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Signer, der selbst kein privates Schlüsselmaterial hält und jede Signaturanfrage über &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> an einen Heartwood-Hardware-Signer-Companion weiterleitet. Das Projekt teilt die &lt;code>forgesworn&lt;/code>-GitHub-Org mit dem getrackten Projekt Bray, und Heartwood selbst wurde in #30 behandelt, als es die Relay-to-Serial-Signing-Bridge auslieferte, mit der Cambiums Android-Seite nun kommuniziert. &lt;a href="https://github.com/forgesworn/cambium">v0.3.2&lt;/a> poliert das Genehmigungsblatt, um live zu warnen, wenn die gewählte Identität von der bestehenden Bindung der App abweicht, und verschiebt Activity-Log-Schreibvorgänge in eine einzelne nicht-blockierende Warteschlange.&lt;/p>
&lt;h3 id="ebenfalls-diese-woche-gestartet-echoes-dispatch-und-linky">Ebenfalls diese Woche gestartet: echoes, Dispatch und Linky&lt;/h3>
&lt;p>Drei weitere Launches verdienen eine Erwähnung diese Woche. &lt;a href="https://github.com/Lwb89dev/echoes">echoes&lt;/a> ist eine Offline-First-, Ende-zu-Ende-verschlüsselte Notizen-App, die privat über Nostr synchronisiert. &lt;a href="https://github.com/freecritter/dispatch">Dispatch&lt;/a> ist ein Local-First-Reiseorganizer, bei dem jede Speicherung &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-verschlüsselt und über Nostr unter einem dedizierten, nicht verlinkbaren Schlüssel gesichert wird, und sein &lt;a href="https://github.com/freecritter/dispatch">v0.3.0&lt;/a>-Release fügt Amber-&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Login hinzu, damit die App den privaten Schlüssel des Nutzers nie direkt berührt. &lt;a href="https://github.com/hynek-jina/linky">Linky&lt;/a> kombiniert Nostr-Kontakte und DMs mit Lightning- und Cashu-Zahlungen in einer einzigen Progressive Web App.&lt;/p>
&lt;hr>
&lt;h2 id="protokollarbeit-und-nip-updates">Protokollarbeit und NIP-Updates&lt;/h2>
&lt;p>Keine PRs wurden in der letzten Woche in das &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> gemergt. Sechs Vorschläge wurden geöffnet.&lt;/p>
&lt;h3 id="open-kind10011-favorite-follow-sets">Open: kind:10011 favorite follow sets&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2413">PR #2413&lt;/a>, von fiatjaf, fügt kind:10011 Favorite Follow Sets hinzu. Es spiegelt das bestehende Muster, bei dem kind:10012 (Favorite Relay Sets) &lt;code>a&lt;/code>-Tags enthält, die auf kind:30002 Relay Sets zeigen, und erweitert denselben Favorisierungsmechanismus auf kind:30000 Follow Sets, damit ein Client eine kuratierte Follow-Liste als Lesezeichen speichern kann, ohne seine eigene Kontaktliste zu ersetzen.&lt;/p>
&lt;h3 id="open-private-encrypted-drive-extends-nip-4e">Open: private encrypted drive extends NIP-4E&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2412">PR #2412&lt;/a>, vom Form*-Team, schlägt ein generisches Metadata-Event vor, kind 34578, unterschieden durch einen &lt;code>d&lt;/code>-Identifier-Tag und einen &lt;code>t&lt;/code>-Sub-Type-Tag, zusammen mit einem privaten verschlüsselten Dateisystem, das darauf aufbaut und bereits in Form*&amp;rsquo;s eigenem, noch experimentellem Form* Drive Client implementiert ist. Ein Datei-Datensatz ist ein Metadata-Event mit &lt;code>t=files&lt;/code>: Datei-Blobs liegen auf &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Servern, während nur ein verschlüsselter Index auf Relays sitzt, und jeder Datei-Chunk erhält sein eigenes ephemeres Schlüsselpaar mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> v2 HKDF-abgeleiteter Verschlüsselung. Ein begleitendes Decoupled Encryption Key Event hält einen laufwerkweiten symmetrischen Schlüssel, gegen den jede Datei ihre Metadaten entschlüsselt, und baut explizit auf &lt;a href="https://nostrcompass.org/de/topics/nip-4e/">NIP-4E&lt;/a> auf, fiatjafs noch offenem Storage-Abstraction-Entwurf (&lt;a href="https://github.com/nostr-protocol/nips/pull/1647">PR #1647&lt;/a>, offen seit Dezember 2024).&lt;/p>
&lt;p>Dieser einzelne laufwerkweite Schlüssel bedeutet, dass ein durchgesickerter Schlüssel die Metadaten jeder Datei im Laufwerk offenlegt, nicht nur einer Datei, da die pro-Datei ephemeren Schlüsselpaare nur den Chunk-Verschlüsselungsschlüssel variieren, nicht den Metadaten-Entschlüsselungsschlüssel; es gibt noch keinen Rotations- oder Widerrufspfad außer dem Veröffentlichen eines neuen Metadata-Events mit der Warnung, dass ältere Events verloren gehen können. Ein zweiter, engerer Vorschlag greift dieselbe zugrunde liegende NIP-4E-Idee aus einem anderen Blickwinkel auf: &lt;a href="https://github.com/nostr-protocol/nips/pull/2361">PR #2361&lt;/a>, von fiatjaf, entkoppelt Identitäts- und Verschlüsselungsschlüssel speziell innerhalb von &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Messaging, offen seit 1. Juni. Beide PRs sind nicht gemergt, was dies zu einer aktiven, umstrittenen Ecke des Designraums macht. Form* sagt, der Drive Client sei experimentell und ein Update komme bald.&lt;/p>
&lt;h3 id="open-nip-da-permissioned-private-data-sharing">Open: NIP-DA permissioned private data sharing&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2411">PR #2411&lt;/a>, von JAFairweather, ist ein neuer NIP-DA-Entwurf für genehmigungsbasiertes privates Datenteilen über scoped Data Grants. Jeder Nutzer hält einen verschlüsselten, autoritativen Datensatz pro Scope auf Relays, und Zugang wird gewährt, indem der symmetrische Schlüssel dieses Scopes privat innerhalb eines &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wraps zugestellt wird, sodass Relays nur Ciphertext speichern und nie erfahren, wer wem Zugang gewährt hat; ein Widerruf ist einfach eine Schlüsselrotation, ohne jeden Consumer-Kopie neu schreiben zu müssen. Der Autor positioniert es als distinkt von &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DMs (die einen Daten-Snapshot transportieren können, aber keine Live-Updates oder Widerrufe) und von NIP-51 Private Lists (die kein Schlüsselmaterial transportieren), und zitiert zwei unabhängige Implementierungen, eine JavaScript-Referenzbibliothek und eine Go-CLI auf go-nostr, kreuzgetestet gegen relay.damus.io, nos.lol und relay.primal.net.&lt;/p>
&lt;h3 id="open-sticker-pack-kinds-10031-and-30031">Open: sticker pack kinds 10031 and 30031&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2410">PR #2410&lt;/a>, von vincenzopalazzo, registriert kind 30031 (adressierbare Sticker Packs) und kind 10031 (die Sticker-Pack-Liste eines Nutzers) in der Event-Kinds-Tabelle, spezifiziert durch das „Sonar Stickers&amp;quot;-Format, das &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#sonar-splits-off-from-bitchat-with-a-cross-platform-alpha-and-a-sticker-pack-spec">Sonar&lt;/a> diese Woche ausliefert. Die Kinds liegen bewusst einen Slot über den &lt;a href="https://nostrcompass.org/de/topics/nip-30/">NIP-30&lt;/a> Custom-Emoji-Kinds 30030 und 10030, damit ein Client ein Sticker Pack nicht mit einem Emoji-Set verwechseln kann; Sticker-Bild-Bytes liegen auf HTTPS-&lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-kompatiblen Servern, und gesendete Sticker-Referenzen tragen einen Klartext-Hash, damit ein bearbeitetes adressierbares Pack nicht stillschweigend das Aussehen von Stickern ändern kann, die bereits in alten Nachrichten gesendet wurden. Ein begleitender PR registriert dieselben Kinds im separaten &lt;code>registry-of-kinds&lt;/code>-Projekt.&lt;/p>
&lt;h3 id="open-nip-29-message-pinning-with-kind9010-and-kind39005">Open: NIP-29 message pinning with kind:9010 and kind:39005&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2379">PR #2379&lt;/a>, von Anderson-Juhasc, fügt Message Pinning zu &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> relay-basierten Gruppen hinzu: kind:9010 &lt;code>update-pin-list&lt;/code> ist ein Moderations-Event, das die vollständige Liste der angepinnten Events als &lt;code>e&lt;/code>-Tags in Anzeigereihenfolge trägt, sodass ein einzelnes Event pinnen, entpinnen, umsortieren oder die angepinnte Menge leeren kann, und kind:39005 ist ein relay-generierter Spiegel, der die zuletzt akzeptierte Liste offenlegt. Das Design ersetzt einen früheren Add/Remove-Paar-Ansatz aus &lt;a href="https://github.com/nostr-protocol/nips/pull/1163">PR #1163&lt;/a> nach Review-Feedback und wählt Kind-Nummern 9010/39005, weil 9009 und 39003 inzwischen von &lt;code>create-invite&lt;/code> und Gruppenrollen beansprucht wurden. Anderson-Juhasc pflegt auch &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#nostrord-v220-adds-a-dm-master-toggle-and-richer-direct-messages">Nostrord&lt;/a>, dessen &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v2.2.0">v2.2.0&lt;/a> in derselben Woche ausgeliefert wird.&lt;/p>
&lt;h3 id="open-nip-66-relay-discovery-restructure">Open: NIP-66 relay discovery restructure&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2241">PR #2241&lt;/a>, von VincenzoImp, ist eine umfassende Umstrukturierung von &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Relay Discovery. Es ersetzt die lose „Other tags include&amp;quot;-Prosa durch einen strukturierten Indexed-Tags-Abschnitt, fügt einen &lt;code>W&lt;/code>-Tag hinzu, der NIP-11s &lt;code>attributes&lt;/code>-Feld für Relay-Discovery-Filterung spiegelt, fügt einen &lt;code>l&lt;/code>-Label-Tag mit standardisierten Namespaces (&lt;code>ISO-639-1&lt;/code>, &lt;code>ISO-3166-1&lt;/code>, &lt;code>IANA-asn&lt;/code>, &lt;code>IANA-tz&lt;/code>, &lt;code>nip66.label.city&lt;/code>) hinzu und organisiert RTT-, SSL/TLS-, Netzwerk-, Geo-, DNS- und HTTP-Tags in dedizierte Abschnitte neben einer neuen Check-Types-Tabelle. Es behebt auch fehlerhafte Beispiel-Events mit falschen Feldnamen, einem fehlenden &lt;code>kind&lt;/code> und ungültigen Check-Type-Namen und schließt &lt;a href="https://github.com/nostr-protocol/nips/issues/2171">Issue #2171&lt;/a> ab. Alle Änderungen bleiben abwärtskompatibel, da jeder hinzugefügte Tag optional ist.&lt;/p>
&lt;hr>
&lt;h2 id="nip-deep-dive-nip-99-und-die-gamma-markets-commerce-erweiterung">NIP Deep Dive: NIP-99 und die Gamma-Markets-Commerce-Erweiterung&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-15/">NIP-15&lt;/a>, die ursprüngliche Nostr Marketplace-Spezifikation, ist inzwischen Legacy: Sie modellierte einen Merchant Stall (kind 30017) mit Produkten (kind 30018) darunter, und die Clients, die einst darauf liefen, Shopstr unter ihnen, sind seitdem zu &lt;a href="https://nostrcompass.org/de/topics/nip-99/">NIP-99&lt;/a> Classified Listings als aktiver Spezifikation gewechselt. NIP-99 selbst ist ein einzelnes adressierbares Event, kind 30402 für ein aktives Listing oder kind 30403 für einen Entwurf, ohne zuerst einen Stall erstellen zu müssen. Es lässt alles nach dem Listing undefiniert: Versandkosten, Bestellstatus, Quittungen, Bewertungen und eine Möglichkeit, mehrere Listings unter einem Schaufenster zu gruppieren, genau die Teile von NIP-15, die nie übernommen wurden. &lt;a href="https://nostrcompass.org/de/topics/gamma-markets/">Gamma Markets&lt;/a> füllt diese Lücke und ist die moderne Commerce-Schicht, die es heute zu verstehen lohnt.&lt;/p>
&lt;h3 id="die-lücke-die-nip-99-offen-lässt">Die Lücke, die NIP-99 offen lässt&lt;/h3>
&lt;p>Das &lt;code>content&lt;/code>-Feld eines NIP-99-Listings trägt eine Markdown-Beschreibung, &lt;code>price&lt;/code> und &lt;code>location&lt;/code> sitzen direkt auf dem Event, und &lt;code>t&lt;/code>-Tags machen es als gewöhnlichen Hashtag-Content durchsuchbar. Da es auf dem pubkey-, kind- und &lt;code>d&lt;/code>-Tag-Tupel adressierbar ist, bearbeitet ein Verkäufer ein Listing direkt, indem er eine neue Version mit demselben &lt;code>d&lt;/code>-Tag veröffentlicht:&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">30402&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;Vintage mechanical keyboard, Cherry MX Blue switches, barely used.&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;keyboard-mx-blue-01&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;Vintage Mechanical Keyboard&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;Cherry MX Blue, barely used&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;published_at&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1752537600&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;NYC&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;price&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;100&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;USD&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;electronics&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>Das ist die gesamte Spezifikation: eine signierte, aktualisierbare Kleinanzeige. Jeder Client, der NIP-99 für echten E-Commerce implementiert, über eine einmalige Kleinanzeige hinaus, musste seine eigenen privaten Konventionen für Versand, Bestellnachrichten und Bewertungen erfinden. Zwei NIP-99-Clients konnten jeweils ein Listing korrekt darstellen und hatten trotzdem keinen gemeinsamen Weg, einen Checkout zwischen ihnen abzuschließen.&lt;/p>
&lt;h3 id="gamma-markets-standardisierung-dessen-was-nip-99-ausließ">Gamma Markets: Standardisierung dessen, was NIP-99 ausließ&lt;/h3>
&lt;p>Gamma Markets ist der Name, den eine Arbeitsgruppe von Nostr-Marktplatz-Entwicklern, die Teams hinter Shopstr, Cypher, Plebeian Market und Conduit Market, einem gemeinsamen Satz von E-Commerce-Konventionen gab, die auf NIP-99s bestehendem kind-30402-Event aufbauen. Die Spezifikation ist vom kanonischen NIP-99-Dokument über &lt;a href="https://github.com/nostr-protocol/nips/pull/1784">PR #1784&lt;/a> verlinkt und wird in ihrem eigenen Repository gepflegt, &lt;a href="https://github.com/GammaMarkets/market-spec">GammaMarkets/market-spec&lt;/a>.&lt;/p>
&lt;p>Gamma Markets fügt zwei eigenständige listing-angrenzende Kinds hinzu. Kind 30405 gruppiert mehrere Listings in eine Produktsammlung und referenziert jedes über ein explizites &lt;code>a&lt;/code>-Tag:&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">30405&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;Summer sale picks&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;summer-picks&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;Summer Sale&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;30402:&amp;lt;merchant-pubkey&amp;gt;:keyboard-mx-blue-01&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;shipping_option&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30406:&amp;lt;merchant-pubkey&amp;gt;:standard-regional&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>Kind 30406 definiert eine Versandoption mit länderspezifischer Preisgestaltung und optionalen gewichts- oder entfernungsbasierten Kostenregeln:&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">30406&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;Standard Regional Shipping&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;standard-regional&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;Standard Shipping&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;price&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;5.99&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;USD&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;country&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;US&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;standard&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;duration&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;24&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;72&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;H&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;weight-max&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;kg&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>Bestellerstellung, Zahlungsanforderungen, Status- und Versand-Updates und Zahlungsbelege laufen alle als gewöhnliche &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Gift-Wrapped Private Messages, aufgeteilt auf drei Kinds nach Rolle, nicht durch erneutes Wrapping des Transports: kind 14 transportiert freie Käufer/Händler-Kommunikation, kind 16 transportiert jeden Bestellstatus-Übergang (ein &lt;code>type&lt;/code>-Tag von 1 bis 4 markiert Bestellerstellung, Zahlungsanforderung, Statusupdate oder Versandupdate), und kind 17 transportiert den Zahlungsbeleg des Käufers. Eine Bestellerstellungsnachricht sieht vor dem Gift-Wrapping so aus:&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">16&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;Please leave the package with the doorman.&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;merchant-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;subject&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;New order&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;type&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;order&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;order-8f21&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;amount&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;115000&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;item&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30402:&amp;lt;merchant-pubkey&amp;gt;:keyboard-mx-blue-01&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;shipping&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;30406:&amp;lt;merchant-pubkey&amp;gt;:standard-regional&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>Die Bewertung eines abgeschlossenen Kaufs ist ein separater adressierbarer Kind, 31555, der auf das bewertete Listing zurückverweist:&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">31555&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;Arrived fast, exactly as described.&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;a:30402:&amp;lt;merchant-pubkey&amp;gt;:keyboard-mx-blue-01&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rating&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;thumb&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rating&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;1.0&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;quality&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;rating&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;0.9&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;delivery&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>Bestellnachrichten auf NIP-17 aufzusetzen bedeutet, dass ein Gamma-Markets-Checkout denselben Private-Message-Transport nutzt, den Clients bereits für DMs ausliefern, anstatt einen eigenen Bestellnachrichten-Kind zu erfinden.&lt;/p>
&lt;p>Die zentrale Designentscheidung der Spezifikation ist, dass nichts kaskadiert. Ein Listing, das zu einer Sammlung gehört, referenziert diese explizit mit einem &lt;code>a&lt;/code>-Tag, anstatt die Versandoptionen oder Beschreibung der Sammlung automatisch zu erben, und eine Versandoption, die ein Listing verwendet, wird auf dieselbe explizite Weise referenziert. Das ist eine bewusste Umkehrung von NIP-15s Stall-Modell, bei dem ein Produkt stillschweigend die Währung und Versandtabelle seines übergeordneten Stalls erbte. Der Kompromiss ist mehr explizites Tagging auf jedem Listing, im Austausch dafür, dass die vollständige Konfiguration eines Listings immer aus dem Event selbst lesbar ist, ohne ein übergeordnetes Objekt zuerst auflösen zu müssen.&lt;/p>
&lt;h3 id="wo-das-in-der-praxis-auftaucht">Wo das in der Praxis auftaucht&lt;/h3>
&lt;p>Die &lt;a href="https://nostrcompass.org/de/newsletters/2026-07-15-newsletter/#conduit-mono-rebuilds-the-merchant-orders-inbox-around-ephemeral-guest-checkout">Conduit Mono&lt;/a>-Arbeit dieser Woche liegt im selben Bestellnachrichten-Territorium, das Gamma Markets standardisiert: &lt;a href="https://github.com/Conduit-BTC/conduit-mono/pull/174">PR #174&lt;/a>&amp;rsquo;s ephemerer Schlüssel-Guest-Checkout und &lt;a href="https://github.com/Conduit-BTC/conduit-mono/pull/175">PR #175&lt;/a>&amp;rsquo;s Händler-Bestelleingang-Umbau lösen beide das Käufer/Händler-Bestellstatus-Problem, das Gamma Markets&amp;rsquo; kind-14-, 16- und 17-Nachrichten formalisieren; Conduit Mono betreibt sein eigenes Bestellstatus-Modell neben diesen Kinds, ohne sie direkt zu übernehmen. Shopstr, eines der vier Projekte, die die Spezifikation verfasst haben, hat seine eigene Commerce-Infrastruktur in der letzten Woche ebenfalls vorangetrieben: &lt;a href="https://github.com/shopstr-eng/shopstr/pull/568">PR #568&lt;/a> extrahiert duplizierte NIP-17-Gift-Wrap-Logik in ein gemeinsames Modul, und &lt;a href="https://github.com/shopstr-eng/shopstr/pull/567">PR #567&lt;/a> bringt seinen &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a> HTTP-Auth-Parser auf vollständige Testabdeckung, Wartung an genau den Messaging- und Auth-Schichten, von denen ein Gamma-Markets-Bestellablauf abhängt, um einen Käufer und Händler sicher zu erreichen.&lt;/p>
&lt;p>NIP-15 verlor die Storefront-Rolle, indem es einen Stall und ein Produkt standardisierte und dann Zahlungen, Versand, Bewertungen und Bestellstatus als Anwendungsproblem beließ. Gamma Markets füllt den größten Teil dieser fehlenden Oberfläche, ohne NIP-99s Single-Listing-Form zu verändern, und baut auf Nostrs bestehendem DM-Stack, NIP-17, auf, anstatt eine neue Messaging-Schicht zu erfinden.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baut ihr etwas oder habt Neuigkeiten zu teilen? Meldet euch per NIP-17-DM oder findet uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #26</title><link>https://nostrcompass.org/de/newsletters/2026-06-10-newsletter/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-06-10-newsletter/</guid><description>&lt;p>Die Marmot-Protocol-Organisation öffnet drei neue Repos für einen v2-Protokollentwurf und eine native Client-Linie: ein Rust-Workspace namens &lt;code>darkmatter&lt;/code>, eine SwiftUI iOS-App &lt;code>darkmatter-ios&lt;/code> und eine Kotlin/Compose Android-App &lt;code>darkmatter-android&lt;/code>. Das ursprüngliche Flutter-Whitenoise wird archiviert. Chama komprimiert siebzehn Releases in eine Woche und überschreitet bei v3.0.0 die Standalone-App-Linie, bevor v3.1.0 eine vollständige Trade-Room-UI-Neugestaltung und Per-Verkäufer-Storefronts liefert, aufbauend auf Holder-only Shamir-Shares, Arbiter-Substitution, weltweitem Community-Routing und End-to-End-Trade-Benachrichtigungen. Coracle startet einen kostenpflichtigen Hosted-Relay-Dienst, gestützt auf den Open-Source-Caravel- und zooid-Stack, mit tiefer Flotilla-Integration in Planung. Angor stellt in v0.2.30 standardmäßig auf mainnet um und landet einen 3-User-UAT-Funding-Test in v0.2.29. Amethyst landet 41 unveröffentlichte PRs, die die NIP-32-/NIP-F4-/Tor-Arbeit der letzten Woche fortsetzen. NIP-67 (EOSE Completeness Hint) und NIP-50 Autocomplete werden gemerged und schließen zwei langbestehende Korrektheitslücken im Kern-Relay-Protokoll. NIP-GART schlägt ein datenschutzfreundliches Wire-Format für Notfallwarnungen vor, und NIP-46 erhält eine Logout-Methode.&lt;/p></description><content:encoded>&lt;p>Die Marmot-Protocol-Organisation öffnet drei neue Repos für einen v2-Protokollentwurf und eine native Client-Linie: ein Rust-Workspace namens &lt;code>darkmatter&lt;/code>, eine SwiftUI iOS-App &lt;code>darkmatter-ios&lt;/code> und eine Kotlin/Compose Android-App &lt;code>darkmatter-android&lt;/code>. Das ursprüngliche Flutter-Whitenoise wird archiviert. Chama komprimiert siebzehn Releases in eine Woche und überschreitet bei v3.0.0 die Standalone-App-Linie, bevor v3.1.0 eine vollständige Trade-Room-UI-Neugestaltung und Per-Verkäufer-Storefronts liefert, aufbauend auf Holder-only Shamir-Shares, Arbiter-Substitution, weltweitem Community-Routing und End-to-End-Trade-Benachrichtigungen. Coracle startet einen kostenpflichtigen Hosted-Relay-Dienst, gestützt auf den Open-Source-Caravel- und zooid-Stack, mit tiefer Flotilla-Integration in Planung. Angor stellt in v0.2.30 standardmäßig auf mainnet um und landet einen 3-User-UAT-Funding-Test in v0.2.29. Amethyst landet 41 unveröffentlichte PRs, die die NIP-32-/NIP-F4-/Tor-Arbeit der letzten Woche fortsetzen. NIP-67 (EOSE Completeness Hint) und NIP-50 Autocomplete werden gemerged und schließen zwei langbestehende Korrektheitslücken im Kern-Relay-Protokoll. NIP-GART schlägt ein datenschutzfreundliches Wire-Format für Notfallwarnungen vor, und NIP-46 erhält eine Logout-Methode.&lt;/p>
&lt;h2 id="top-stories">Top-Stories&lt;/h2>
&lt;h3 id="marmot-v2-dark-matter-protokoll-neuentwurf-native-clients-archivierte-flutter-app">Marmot v2 (Dark Matter): Protokoll-Neuentwurf, native Clients, archivierte Flutter-App&lt;/h3>
&lt;p>Drei neue Repos tauchten diese Woche unter der &lt;a href="https://github.com/marmot-protocol">marmot-protocol&lt;/a> GitHub-Organisation auf und bilden zusammen die frühe Fortschrittsform eines Marmot-v2-Protokollentwurfs und einer nativen Client-Linie, die die Flutter-App-Linie ablöst. &lt;a href="https://github.com/marmot-protocol/darkmatter">&lt;code>darkmatter&lt;/code>&lt;/a> (Rust, erstellt am 13. Mai, vierunddreißig Commits in den letzten sieben Tagen) hält den v2-Protokollentwurf in &lt;code>spec/&lt;/code>, eine OpenMLS-basierte CGKA-Engine in &lt;code>crates/cgka-engine&lt;/code>, einen Konformanz-Simulator mit Property-Tests und ein formales Tamarin-Modell für Konvergenzbeweise. &lt;a href="https://github.com/marmot-protocol/darkmatter-ios">&lt;code>darkmatter-ios&lt;/code>&lt;/a> (Swift, erstellt am 25. Mai) ist ein SwiftUI-Client, gestützt auf ein aus dem Rust-Workspace generiertes &lt;code>MarmotKit&lt;/code>-UniFFI-xcframework. &lt;a href="https://github.com/marmot-protocol/darkmatter-android">&lt;code>darkmatter-android&lt;/code>&lt;/a> (Kotlin/Jetpack Compose, erstellt am 25. Mai) sitzt auf denselben Rust-Bindings. Das ursprüngliche Flutter-Whitenoise wurde als &lt;a href="https://github.com/marmot-protocol/whitenoise-archive">&lt;code>whitenoise-archive&lt;/code>&lt;/a> markiert (&amp;ldquo;ARCHIVED: This was the original White Noise Flutter app&amp;rdquo;); ein neues &lt;a href="https://github.com/marmot-protocol/whitenoise">&lt;code>whitenoise&lt;/code>&lt;/a> Dart-Repo trägt die aktive Flutter-Linie parallel weiter.&lt;/p>
&lt;p>Lies das als frühen Fortschritt in Richtung eines zuverlässigeren Marmot, nicht als abgeschlossenen Pivot. Das darkmatter-README bezeichnet sich selbst als &amp;ldquo;Candidate Marmot v2 protocol draft, CGKA engine, and conformance workspace&amp;rdquo; und sagt direkt: &amp;ldquo;MDK remains the deployed Rust protocol implementation until this draft and engine are adopted.&amp;rdquo; Innerhalb des Workspaces ist der cgka-engine-Crate mit &lt;code>0.1.0&lt;/code> getaggt, &amp;ldquo;single internal consumer, not semver-stable.&amp;rdquo; Jede Spec-Seite trägt &amp;ldquo;Status: draft for internal review&amp;rdquo;. Drei Sterne auf dem Workspace-Repo und null auf den iOS- und Android-Apps bestätigen, dass die Arbeit vor der Ankündigung steht. Richtung, Umfang und Disziplin sind hier das Signal; Produktionsreife ist nicht der Anspruch.&lt;/p>
&lt;p>Der Protokollentwurf macht die v1-zu-v2-Deltas konkret. MIP-01s monolithische &lt;code>marmot_group_data&lt;/code> MLS-Erweiterung, die seit Beginn von Marmot Gruppenname, Beschreibung, Admin-pubkeys, Nostr-Group-Routing-ID, Relay-Liste, Gruppenbilddaten und Disappearing-Message-Einstellungen unter einem Dach getragen hat, wird &lt;a href="https://github.com/marmot-protocol/darkmatter/blob/master/spec/mip-coverage.md">in versionierte App-Komponenten aufgeteilt&lt;/a>: &lt;code>marmot.group.profile.v1&lt;/code> für Name und Beschreibung, &lt;code>marmot.group.admin-policy.v1&lt;/code> für Admin-pubkeys, &lt;code>marmot.transport.nostr.routing.v1&lt;/code> für die zufällige &lt;code>nostr_group_id&lt;/code> und die kanonische Relay-Liste, &lt;code>marmot.group.blossom.image.v1&lt;/code> für Bild-Hash, Verschlüsselungsschlüssel, Nonce und Upload-Schlüssel und &lt;code>marmot.group.message-retention.v1&lt;/code> für Disappearing-Message-Sekunden. Jede Komponente besitzt ihre exakten Bytes und ihren eigenen Versionierungspfad, sodass ein zukünftiges Feature eine Komponente überarbeiten kann, ohne den Rest des Gruppenzustands zu zwingen, MLS-Extension-Konsens noch einmal zu durchlaufen. MIP-00-Credentials erhalten außerdem ein neues Foundation-Dokument &lt;code>account-identity-proof-v1.md&lt;/code>, hervorgehoben als &amp;ldquo;new in v2 and breaking&amp;rdquo;. Der Identitätsbeweis lebt jetzt auf seiner eigenen Oberfläche, getrennt von der KeyPackage-Konstruktion.&lt;/p>
&lt;p>Die Bibliotheks-Deltas stützen die Spec-Überarbeitung. &lt;code>cgka-engine&lt;/code> ist die neue lokale Gruppen-State-Machine: sie wrappt OpenMLS, besitzt die Epoch-Zustände &lt;code>Stable&lt;/code>, &lt;code>PendingPublish&lt;/code>, &lt;code>Merging&lt;/code> und &lt;code>Recovering&lt;/code>, übersetzt Absichten in MLS-Commits, gibt typisierte &lt;code>IngestOutcome&lt;/code>- und &lt;code>GroupEvent&lt;/code>-Werte für jede eingehende Transport-Hülle zurück und liefert explizit keinen Transport und keine Persistenz. Ein &lt;code>TransportPeeler&lt;/code>-Trait trennt Nostr von der Engine, und ein &lt;code>StorageProvider&lt;/code>-Trait trennt SQLite (über &lt;code>storage-sqlite&lt;/code>, SQLCipher-basiert) von der Engine. Heutiges MDK packt all das zusammen; das Aufteilen der Schichten lässt eine Engine jetzt unter einem Nostr-Relay-Transport sitzen und später auch unter den ebenfalls ausgelieferten &lt;a href="https://github.com/marmot-protocol/darkmatter/blob/master/docs/quic-broker-deployment.md">QUIC-Stream- und Broker-Transports&lt;/a>, ohne Neufassung des Konvergenzmodells. Die Konvergenz selbst ist als &lt;code>distributed-convergence.md&lt;/code> dokumentiert und in einem Tamarin-Modell bewiesen, das deterministische Branch-Auswahl, policy-gated Eligibility, Retained-Anchor-Replay, Stale-Branch-Rejection, Delivery-Reordering, Duplikation, App-Output-Invalidation, Welcome/Commit-Handoff, Proposal-Konsum und Outbound-Gating während Sync abdeckt. Rust-Property-Tests prüfen dann, dass die Engine dieselben Regeln mit echten OpenMLS-Objekten und dem Simulator-Harness einhält. Formal-Methods-Zuverlässigkeitsarbeit dieses Umfangs fehlt im aktuellen Marmot-Stack.&lt;/p>
&lt;p>Beide nativen Clients verwerfen Flutter zugunsten plattformnativer UI-Toolkits. &lt;a href="https://github.com/marmot-protocol/darkmatter-ios">&lt;code>darkmatter-ios&lt;/code>&lt;/a> ist reines SwiftUI mit einer Notification Service Extension, die MIP-05-Push-Wakes auf dem Gerät entschlüsselt, vendort ein generiertes &lt;code>MarmotKit&lt;/code> Swift-Paket, das aus dem Rust-Workspace gebaut wurde, und registriert sich unter der &lt;code>dev.ipf.darkmatter&lt;/code> Bundle-ID und App-Gruppe. &lt;a href="https://github.com/marmot-protocol/darkmatter-android">&lt;code>darkmatter-android&lt;/code>&lt;/a> ist Kotlin und Jetpack Compose, mit einem &lt;code>just&lt;/code>-getriebenen Build, der ein signiertes &lt;code>arm64-v8a&lt;/code> APK erzeugt und Telemetrie-Endpunkte aus &lt;code>local.properties&lt;/code> liest. Das Android-README formuliert das architektonische Prinzip direkt: &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; Das spiegelt die Grenz-Disziplin, die das cgka-engine-README in der Rust-Schicht durchsetzt, angewendet auf die UI-Schicht.&lt;/p>
&lt;p>Native Clients sind für Marmot wichtig, weil die meistgenannte Schwäche des Protokolls die mobile Zuverlässigkeit unter ungleichmäßigen Zustellbedingungen war: verpasste Deadline-Notification-Wakes, MLS-Commit-Races während Netzwerk-Flaps, Background-Fetch-Limits, die Epoch-Fortschritte stranden lassen. SwiftUI und Compose geben den Clients direkten Zugriff auf plattformnahe Hintergrundverarbeitungs-Primitive, die Flutter durch eine Plugin-Brücke erreicht, und der UniFFI-Binding-Pfad hält Protokoll-Logik in einem Rust-Workspace, der auf beiden Plattformen als statische Bibliothek ausgeliefert wird. Die Flutter-Whitenoise-Linie setzt sich im nicht archivierten &lt;a href="https://github.com/marmot-protocol/whitenoise">&lt;code>whitenoise&lt;/code>&lt;/a>-Repo fort, sodass die Ankündigung additiv ist: eine neue native Client-Linie läuft parallel zur Flutter-App, während die v2-Spec konvergiert. Der Produktions-Cutover von MDK oder der aktuellen Whitenoise-App wartet, bis Entwurf, Engine und Clients produktionsreife Releases erreichen.&lt;/p>
&lt;h3 id="chama-v200-bis-v310-standalone-p2p-escrow-in-einer-woche">Chama v2.0.0 bis v3.1.0: Standalone-P2P-Escrow in einer Woche&lt;/h3>
&lt;p>Der in Newsletter #25 bei v1.3.0 eingeführte Nostr-native P2P-Escrow-Client hat in den letzten sieben Tagen siebzehn getaggte Releases ausgeliefert und endete am 9. Juni bei &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.1.0">v3.1.0&lt;/a> mit einer Trade-Room-UI-Neugestaltung und Per-Verkäufer-Storefronts. Die Versionsspur erzählt die Geschichte: &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.0">v2.0.0&lt;/a> ist die BREAKING-Basis, dann schließen &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> und &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.0.3">v2.0.3&lt;/a> Fedi-WebView-Funding-Rail-Lücken; &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> und &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.3.1">v2.3.1&lt;/a> härten die Arbiter-Schicht; &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> und &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.6.0">v2.6.0&lt;/a> fügen Self-Custody-Oberflächen und weltweites Community-Routing hinzu; &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> und &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v2.10.0">v2.10.0&lt;/a> schichten Plain-English-Key-Copy, Gruppen-Anwendungen, Dispute-Deadline-Arbitrierung und Reputation ein. &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.0.0">v3.0.0&lt;/a> verbindet das Paket mit End-to-End-Trade-Benachrichtigungen, und &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v3.1.0">v3.1.0&lt;/a> am 9. Juni zeichnet den Trade-Screen rund um ein Reserved → Locked → Settled Fortschritts-Rückgrat, rollen-farbige Aktions-Karten und eine Per-Verkäufer-Storefront-Listing-Klasse (kuratierte Swaps, Loanbooks und Rechnungen) neu.&lt;/p>
&lt;p>Der architektonische Pivot lebt in v2.0.0. Das Escrow-LOCK-Format hat sich geändert, sodass jeder Share eines 2-von-3 Shamir-Splits nur an seinen Holder verschlüsselt wird (sharePolicy &lt;code>holder-only-v1&lt;/code>). Das Bearer-Ecash der Föderation lässt sich nicht mehr von einem einzelnen Teilnehmer allein rekonstruieren, was einen Pfad schließt, auf dem eine böswillige Partei mit ihrem eigenen Share und einem Föderations-gehaltenen Share den Trade ohne Zustimmung abschließen konnte. Pre-2.0-Clients scheitern laut mit &amp;ldquo;can&amp;rsquo;t find your share&amp;rdquo;; der Trade kann auf einem veralteten Client nicht abgeschlossen werden, und im Prozess gehen keine Gelder verloren. Ein v2.0-Lock erfordert, dass jede Partei auf v2.x abwickelt. v2.0.0 fügte außerdem Multi-Unit-Storefronts und eine Sats-only Market-Ansicht hinzu.&lt;/p>
&lt;p>v2.1.0 führte die Arbiter-Substitution ein: der Arbiter-Share bei Shamir-Index 2 wird jetzt an eine deterministische Prioritätsordnung über den Community-Arbiter-Pool verschlüsselt, sodass ein abwesender Arbiter ersetzt werden kann, ohne den Trade zu stranden. v2.2.0 bewies, dass die Substitution in freier Wildbahn bei einem ₿121-Trade funktioniert, und fügte Healing-Substitution-Backups hinzu. v2.3.0 schloss die letzte Arbiter-Front-Running-Lücke, indem die Listing-Arbiter-Community-Mitgliedschaft zur Lock-Zeit geprüft wird, und v2.3.1 schloss den Geschwister-Race, bei dem ein automatisch zugewiesener Arbiter-Slot eine Vorschau war, bis der Lock ihn einsetzte.&lt;/p>
&lt;p>Die Self-Custody-Oberflächen kamen in v2.4.0 (BIP-39 Recovery-Phrase für die Fedimint-Ecash-Wallet, verschlüsselt auf Nostr gespeichert) und v2.5.0 (Master-nsec-Backup, das die Nostr-Identität und den Wallet-Seed besitzt). v2.6.0 überarbeitete das Onboarding rund um einen globalen Community-Picker, sodass Nutzer in Ländern ohne lokales Chama zur nächstgelegenen Föderation geleitet werden; frühere Builds warfen den Nutzer ohne Fallback zurück. v2.7.0 schrieb den Recovery-Key-Screen in Plain English um (&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 fügte Gruppen-Anwendungen, Dark/Light-Theming und zwei neue Event-kinds hinzu (38120 Roster, 38121 Application). v2.9.0 änderte die Dispute-Auflösung bei Deadline: umkämpfte Trades, die ihren Ablauf erreichen, werden jetzt per Arbiter-Urteil aufgelöst; vorheriges Verhalten war Auto-Refund. Das Release ist als COORDINATED markiert, sodass alle Parteien in einer Auseinandersetzung updaten müssen. v2.10.0 fügte Per-Trade Daumen-hoch/Daumen-runter-Bewertungen als neues Event-kind 38123 hinzu.&lt;/p>
&lt;p>v3.0.0 ist der Meilenstein, ab dem die App keine koordinierende Community mehr zum Betrieb braucht. End-to-End-Trade-Benachrichtigungen pingen den Nutzer nur bei handlungsrelevanten Zustandsübergängen: die Gegenpartei hat die Sats gesperrt, Auszahlung bereit zur Beanspruchung, Streit erfordert das Urteil des Nutzers als Arbiter, oder Trade abgeschlossen oder abgelaufen. Ein Toggle im Me-Screen schaltet Benachrichtigungen an oder aus, und der Berechtigungs-Prompt feuert nur, wenn der Toggle aktiviert ist. Die Fire-once-Dedup verhindert, dass ein Zustandsreload einen Alert-Sturm auslöst. Ein Wrong-Chama-Guardrail-Bug wurde ebenfalls in &lt;a href="https://github.com/jesuspirate/chama/pull/103">PR #103&lt;/a> geschlossen, wo frühere Versionen ein Listing mit dem Label eines Chamas, aber der Föderation eines anderen Chamas stempeln konnten. Windows- und Linux-Desktop-Bundles werden mit dem Release ausgeliefert; das macOS-dmg wird zurückgehalten, bis Signierung und Notarisierung landen.&lt;/p>
&lt;p>Chama gesellt sich jetzt zu Mostro und Shopstr als Nostr-nativer Marktplatz, unterschieden durch serverlose Architektur, Fedimint-gestützten 2-von-3 Shamir-Escrow, Holder-only-Share-Verschlüsselung und als einziger der drei, der einen self-contained Desktop- und Mobile-Client ohne koordinierende Community ausliefert.&lt;/p>
&lt;h3 id="coracle-hosting-kostenpflichtiger-relay-dienst-plus-open-source-caravel-stack">Coracle Hosting: kostenpflichtiger Relay-Dienst plus Open-Source-Caravel-Stack&lt;/h3>
&lt;p>Am 3. Juni &lt;a href="https://nos.lol/e/f8586160cd12df479c261397353c99e6f3e4d870b616382e1b4338bad3ab498a">kündigte Hodlbod Coracle Hosting an&lt;/a> unter &lt;a href="https://hosting.coracle.social">hosting.coracle.social&lt;/a>, einen gehosteten Community-Relay-Dienst, der wiederkehrende Lightning-Zahlungen per NWC oder Karte akzeptiert. Der Dienst wird von &lt;a href="https://gitea.coracle.social/coracle/caravel">Caravel&lt;/a> angetrieben, Coracles Abrechnungs- und Provisionierungs-Frontend, und &lt;a href="https://gitea.coracle.social/coracle/zooid">zooid&lt;/a>, einer Relay-Runtime, die viele virtuelle Relays auf einer einzigen Maschine hostet. Beide sind Open Source auf Coracles selbstgehostetem gitea. Caravel wird mit optionaler &lt;a href="https://livekit.io">livekit&lt;/a>- und &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Integration ausgeliefert, die Betreiber pro Relay umschalten können. Ein Free-Tier mit Mitglieder-Limits lässt Betreiber den Dienst evaluieren, bevor sie Zahlungsdetails hinterlegen.&lt;/p>
&lt;p>Hodlbod ist offen zum Geschäftsmodell: Open Source monetarisieren, indem eine gehostete Version eines Stacks verkauft wird, den jeder andere ebenfalls betreiben kann. Der Wettbewerbsvorteil ist die &lt;a href="https://flotilla.social">Flotilla&lt;/a>-Integration, der nächste geplante Schritt. Flotilla besitzt die Nutzeroberfläche, sodass die aus Flotilla heraus servierte Hosted-Option zum Standard-Pfad für jeden Nutzer wird, der verwaltete Infrastruktur bevorzugt. Hodlbod bot an, andere Caravel-Betreiber zu Flotillas Alternative-Hosting-Picker hinzuzufügen, wenn sie sich melden, und hält die Tür zu einem föderierten Hosting-Markt offen.&lt;/p>
&lt;p>Caravel gesellt sich zu &lt;a href="https://relay.tools">relay.tools&lt;/a> als öffentliche Nostr-Relay-Provisionierungs-Plattform mit kostenpflichtigen Mitglieder-Tiers. relay.tools ist älter als Caravel und liefert heute als dominanter Relay-Ersteller-Dienst aus, mit einem eigenen Verzeichnis von Community-Relays und Paid-Member- oder Moderator-Join-Flows. Caravels Unterscheidungsmerkmal ist der koordinierte Stack: die Relay-Runtime (zooid), das Abrechnungs- und Provisionierungs-Frontend (Caravel selbst) und der clientseitige Picker (Flotilla-Integration, noch in Arbeit) werden als ein Design ausgeliefert. Das andere Unterscheidungsmerkmal ist zooids Many-Relays-per-Process-Dichte, bei der Kunden-Relays einen einzigen Host-Prozess teilen, sodass der Betreiber Hosting-Kosten über viele kleine Communities amortisiert. Das ist dasselbe Dichte-Argument, das gemeinsames Web-Hosting Anfang der 2000er tragfähig machte, angewendet auf Nostrs Relay-Schicht.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="angor-v0229-und-v0230-mainnet-standard-und-3-user-uat-funding-test">Angor v0.2.29 und v0.2.30: mainnet-Standard und 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> am 4. Juni und &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.30">v0.2.30&lt;/a> am 8. Juni sind die zwei Releases dieser Woche für das dezentrale Bitcoin-und-Nostr-Funding-Protokoll. Die Schlagzeilen-Änderung von v0.2.30 ist &lt;a href="https://github.com/block-core/angor/pull/893">PR #893&lt;/a>, der das Standard-Netzwerk auf mainnet umstellt. Angor wird immer noch als instabiles Alpha-Release ausgeliefert, aber der Default-mainnet-Wechsel signalisiert, dass das Protokoll die testnet-only-Phase für die Desktop- und Mobile-Clients hinter sich gelassen hat. v0.2.30 landet außerdem einen One-Tap-Mobile-Create-Project-Flow mit Bild-Upload und Scroll-Reset (&lt;a href="https://github.com/block-core/angor/pull/889">PR #889&lt;/a>) und löst eine Race-Condition, bei der der Lightning-Invoice-Spinner hängen konnte (&lt;a href="https://github.com/block-core/angor/pull/890">PR #890&lt;/a>).&lt;/p>
&lt;p>v0.2.29 fügte in &lt;a href="https://github.com/block-core/angor/pull/881">PR #881&lt;/a> einen End-to-End-UAT-Test hinzu, der 3-User-Send-Funds über 10 Runden mit unbestätigten Ausgaben abdeckt, den ersten Multi-User-Funding-Flow-Test in der Angor-Test-Suite. Das Release fügte außerdem einen Implementierungsplan für eine Angor-CLI und einen MCP-Server hinzu (&lt;a href="https://github.com/block-core/angor/pull/792">PR #792&lt;/a>), mit CLI-Verbesserungen für den MCP-Test-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> von DavidGershony behob eine Boltz-Lightning-Invoice, die nach einem Runtime-Netzwerk-Switch das falsche Netzwerk verwendete, ein Bug, der nach dem v0.2.30-mainnet-Standard in der Produktion aufgetreten wäre. Die Einstellungen bieten jetzt einen optionalen Recovery-Wallet-Datei-Purge während des Data-Wipe (&lt;a href="https://github.com/block-core/angor/pull/883">PR #883&lt;/a>).&lt;/p>
&lt;h3 id="sprout-v0315-ttl-refresh-für-ephemere-kanäle-und-acp-slash-commands">Sprout v0.3.15: TTL-Refresh für ephemere Kanäle und 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>, veröffentlicht am 10. Juni, ist das achte Release in einem Lauf, der am 2. Juni mit v0.3.7 begann. Newsletter #25 behandelte den Lauf v0.3.1 bis v0.3.6 mit der mesh-llm-Integration und der Kanalabschnitt-Arbeit; v0.3.7 bis v0.3.15 sind downstream davon, fokussiert auf Politur und einige nutzerorientierte Ergänzungen. Die für Nutzer sichtbarste Änderung ist ein TTL-Refresh für ephemere Kanäle in &lt;a href="https://github.com/block/sprout/pull/902">PR #902&lt;/a>: wenn ein Nutzer einen ephemeren Kanal wieder aktiviert, verlängert Sprout die Time-to-Live des Kanals, sodass das Unarchive nicht sofort unter dem ursprünglichen Ablauf-Timer wieder archiviert wird. Mobile Custom Emojis kommen in &lt;a href="https://github.com/block/sprout/pull/906">PR #906&lt;/a> neben einem Settings-Redesign an, und Reaktionszähler animieren jetzt bei Änderung (&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> behebt eine langbestehende Lücke, in der Multi-Word-Display-Namen brachen und die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/27.md">NIP-27&lt;/a> &lt;code>nostr:npub&lt;/code>-Mention-Extraktion still fallen ließ. Eine verzeichnis-gestützte Team-UI für Desktop kommt in &lt;a href="https://github.com/block/sprout/pull/912">PR #912&lt;/a> mit Install-, Sync- und Reveal-Commands. Slash-Commands werden jetzt an &lt;a href="https://agentclientprotocol.com">ACP&lt;/a>-Konnektoren in &lt;a href="https://github.com/block/sprout/pull/919">PR #919&lt;/a> durchgereicht, sodass Sprout &lt;code>/help&lt;/code>-artige Commands direkt an Agent-Runtimes weiterleitet, während die Sprout-UI aus dem Pfad bleibt.&lt;/p>
&lt;h3 id="wisp-v111-spark-wallet-integration-und-nsec-paste-guard">Wisp v1.1.1: Spark-Wallet-Integration und 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>, veröffentlicht am 5. Juni, landet einen zweistufigen Wallet-Connect-Screen mit &lt;a href="https://www.spark.money">Spark&lt;/a>-Sub-Screen in &lt;a href="https://github.com/barrydeen/wisp/pull/548">PR #548&lt;/a> und Dashboard-Parität mit der iOS-Wallet-UI in &lt;a href="https://github.com/barrydeen/wisp/pull/549">PR #549&lt;/a>. Das Release enthält einen systemweiten &lt;a href="https://github.com/barrydeen/wisp/pull/553">nsec-Paste-Guard&lt;/a>, der einen &lt;code>nsec1&lt;/code>-präfigierten Paste-Vorgang irgendwo in der App erkennt und das Feld blockiert, es zu akzeptieren, was eines der meistzitierten Footguns in der Nostr-UX schließt. QR-Scan-Login plus ein Watch-only-Modus für &lt;code>npub&lt;/code> und &lt;code>nprofile&lt;/code> kommt in &lt;a href="https://github.com/barrydeen/wisp/pull/552">PR #552&lt;/a> und lässt einen Nutzer ein Profil nur zum Lesen durchsuchen. Zap-Nachrichten rendern jetzt als Mini-Posts im Engagement-Drawer (&lt;a href="https://github.com/barrydeen/wisp/pull/559">PR #559&lt;/a>), sodass Zap-Notes ihren Text zusammen mit dem Sat-Betrag tragen. Ein Web-of-Trust-Filter für Thread-Antworten kommt in &lt;a href="https://github.com/barrydeen/wisp/pull/583">PR #583&lt;/a> und lässt Nutzer Reply-Spam von Konten außerhalb ihres Follow-Graphen ausblenden.&lt;/p>
&lt;h3 id="nostria-v3146-und-nospeak-113-notification-überarbeitung-und-ice-restart">Nostria v3.1.46 und nospeak 1.1.3: Notification-Überarbeitung und 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> am 7. Juni beendet einen Drei-Release-Lauf, der den Notification-Counter so überarbeitete, dass nur neue Benachrichtigungen seit der letzten Ansicht gezählt werden, was eine langbestehende Inflation beseitigt, bei der das Scrollen zu älteren Benachrichtigungen den Badge-Zähler nach oben trieb. &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.45">Nostria v3.1.45&lt;/a> behob einen Split-Payment-Bug, der Lightning- und QR-Code-Zahlungen betraf, und verwarf ein zuvor geplantes transluzentes UI als auf Androids Compositor nicht umsetzbar.&lt;/p>
&lt;p>&lt;a href="https://github.com/psic4t/nospeak/releases/tag/v1.1.3">nospeak v1.1.3&lt;/a> am 4. Juni fügt ICE-Restart im FAILED-Zustand für 1-zu-1-Sprachanrufe hinzu. Standard-WebRTC-Verhalten wirft einen Anruf, wenn ICE-Kandidaten ohne alternativen Pfad zeitüberschreiten; der ICE-Restart-Pfad verhandelt Kandidaten neu, sodass der Anruf sich von vorübergehenden NAT- oder Netzwerkänderungen erholt. Android-Anrufe halten jetzt den Bildschirm während Videoanrufen an.&lt;/p>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="amethyst-41-prs-setzen-die-nip-32--nip-f4--tor-spur-fort">Amethyst: 41 PRs setzen die NIP-32 / NIP-F4 / Tor-Spur fort&lt;/h3>
&lt;p>Amethyst mergte diese Woche 41 PRs ohne einen Release-Tag zu schneiden, zusätzlich zu den 52 PRs der letzten Woche und der &lt;a href="https://nostrcompass.org/de/topics/nip-32/">NIP-32&lt;/a> Hashtag-Labeling- und &lt;a href="https://nostrcompass.org/de/topics/nip-f4/">NIP-F4&lt;/a> Podcast-Arbeit, die in Newsletter #25 behandelt wurde. Der aktive Branch sammelt weiterhin Features für das nächste getaggte Release und schichtet Politur auf die Schlagzeilen-Ergänzungen der letzten Woche: Hashtag-Labeler-Discovery, Podcast-Screen, Musiktracks und Playlists, Tor-Self-Heal-Watchdog, ephemere Signer für anonyme Uploads und Onchain-Zaps mit NIP-05-Filterung. Amethysts PR-Durchsatz bleibt der höchste jedes Nostr-Clients, und die unveröffentlichte Warteschlange ist die de-facto-Roadmap dafür, was andere Android-Nostr-Clients erreichen müssen.&lt;/p>
&lt;h3 id="damus-relay-tracking-aus-ok-nachrichten-und-v117-changelog">Damus: Relay-Tracking aus OK-Nachrichten und v1.17-Changelog&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3786">Damus PR #3786&lt;/a>, gemerged am 3. Juni, fügt erfolgreiche &lt;code>OK&lt;/code>-Nachrichten von einem Relay zur Post-Relay-Liste hinzu. Frühere Damus-Builds befüllten die Seen-Relays-Liste nur beim Empfang einer generischen Nachricht vom Relay, was bedeutete, dass ein Relay, das den Post bestätigte, aber keine Events zurücklieferte, für den Nutzer unsichtbar war. Die Änderung ist wichtig für Nutzer, die bestätigen möchten, dass ihr Post auf ihrem bevorzugten Outbox-Relay landete. &lt;a href="https://github.com/damus-io/damus/pull/3796">PR #3796&lt;/a> behebt einen &lt;code>AttributeGraph&lt;/code>-Zyklus auf der Profile-Ansicht, und &lt;a href="https://github.com/damus-io/damus/pull/3725">PR #3725&lt;/a> landet den v1.17-Changelog vor dem nächsten getaggten Release.&lt;/p>
&lt;h3 id="shopstr-nip-34-dual-publishing">Shopstr: NIP-34 Dual-Publishing&lt;/h3>
&lt;p>Shopstrs &lt;a href="https://relay.ngit.dev/npub1u350hpq840naxzkkle4gmdtvzanfxmjd9m9tytn5355aua7jh2cqgfuw39/shopstr.git">shopstr-Repo auf ngit&lt;/a> wurde diese Woche auf Nostr als &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> Git-Repo angekündigt und tritt ngits getrackten Repos bei. Das GitHub-Repo des Shop-Clients bleibt die primäre Entwicklungsoberfläche; die NIP-34-Ankündigung macht einen parallelen Git-über-Nostr-Kollaborationspfad verfügbar. Dies ist das zweite große Nostr-Marketplace-Projekt, das nach &lt;a href="https://relay.ngit.dev/">Mostro&lt;/a> doppelt zu NIP-34 veröffentlicht, und setzt die schrittweise Migration von Projekt-Metadaten auf Nostrs Git-Transport fort.&lt;/p>
&lt;h3 id="hermes-marmot-ki-agent-gateway-über-mls">Hermes-Marmot: KI-Agent-Gateway über MLS&lt;/h3>
&lt;p>&lt;a href="https://github.com/notmandatory/hermes-marmot">hermes-marmot&lt;/a>, ein Plugin für den &lt;a href="https://github.com/NousResearch/hermes-agent">Hermes Agent&lt;/a>, verbindet die Messaging-Oberfläche eines KI-Agenten mit &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> (MLS-über-Nostr) Gruppen unter Verwendung von &lt;a href="https://github.com/marmot-protocol/mdk-python">mdk-python&lt;/a>, den Python-Bindings zum Rust-Marmot-Development-Kit. Das Plugin lässt einen Nutzer einem KI-Agenten aus jedem Nostr-Client, der kind 445 MLS-Nachrichten spricht, eine DM schicken, einschließlich &lt;a href="https://whitenoise.chat">Whitenoise&lt;/a>. Eingehende DMs verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift-Wrap-Unwrapping über &lt;a href="https://github.com/rust-nostr/nostr">nostr-sdk&lt;/a> Python-Bindings, und eingehende Welcomes fließen durch &lt;code>UnwrappedGift.from_gift_wrap&lt;/code> zu &lt;code>mdk.process_welcome&lt;/code> und &lt;code>mdk.accept_welcome&lt;/code>. Die Zugriffskontrolle läuft über &lt;code>MARMOT_ALLOWED_USERS&lt;/code> (eine kommagetrennte npub-Allowlist) oder &lt;code>MARMOT_ALLOW_ALL_USERS=true&lt;/code> für offenen Entwicklungszugriff.&lt;/p>
&lt;p>Das Repo ist neu (letzte Aktualisierung am 27. Mai) und klein. Seine Bedeutung ist architektonisch: es ist die erste öffentliche Brücke zwischen einer LLM-Agent-Runtime und einem MLS-verschlüsselten Nostr-Messaging-Kanal und der erste Produktions-Einsatz von mdk-python über Whitenoise selbst hinaus. Das Muster deutet auf Agent-zu-Agent-Kommunikation hin, bei der beide Endpunkte MLS-Schlüssel halten und das Relay nur Chiffretext sieht.&lt;/p>
&lt;h2 id="nip-updates-und-protokoll-spec-arbeit">NIP-Updates und Protokoll-Spec-Arbeit&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> von mattn wurde am 6. Juni gemerged und fügt &lt;a href="https://nostrcompass.org/de/topics/nip-67/">NIP-67&lt;/a> dem Protokoll hinzu. Das NIP erweitert die &lt;code>EOSE&lt;/code>-Relay-Nachricht um ein optionales drittes Element: &lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;subscription_id&amp;gt;, &amp;quot;finish&amp;quot;]&lt;/code> signalisiert, dass jedes zum Filter passende gespeicherte Event ausgeliefert wurde, während ein blankes &lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;subscription_id&amp;gt;]&lt;/code> keinen Vollständigkeitsanspruch trägt. Ein Relay, das den Hinweis auslässt, sagt dem Client, dass möglicherweise mehr da ist; ein Relay, das die NIP-67-Ankündigung in NIP-11 auslässt, behält das heutige Verhalten unter der bestehenden Legacy-Heuristik. Die Änderung ist in beide Richtungen abwärtskompatibel: Legacy-Clients ignorieren das nachfolgende Array-Element, und Legacy-Relays lassen es weg.&lt;/p>
&lt;p>Die Motivation in der gemergten Spec ist zweifach. Erstens, stiller Datenverlust: ein Client fragt die letzten 500 Notes gegen ein Relay mit einer 300-Event-Internal-Cap ab, das Relay gibt 300 Events zurück, und der Client (unter Verwendung der Standard-&lt;code>received &amp;lt; limit&lt;/code>-Heuristik) schlussfolgert, dass das Ergebnis vollständig ist. Die 201sten bis Nsten ältesten passenden Notes bleiben auf dem Relay ungelesen, wobei der Client blind für diese Tatsache ist. Zweitens, obligatorische verschwendete Round-Trips: wenn ein Relay Antworten auf 300 Events deckelt, erfordert jede Subskription, die den Cap ausschöpft, ein zweites &lt;code>REQ&lt;/code> mit &lt;code>until=&amp;lt;oldest_created_at&amp;gt;&lt;/code> rein zur Bestätigung des Abschlusses, selbst wenn der Filter zufällig genau 300 Events matcht. Beide Fehlermodi werden von jedem Client bei jeder cap-erschöpften Subskription bezahlt. Der &lt;code>&amp;quot;finish&amp;quot;&lt;/code>-Hinweis ist ein optionaler String auf einer bestehenden Nachricht und eliminiert beide Kosten.&lt;/p>
&lt;h3 id="nip-50-autocomplete-erweiterung-pr-2357-gemerged">NIP-50 Autocomplete-Erweiterung (PR #2357) gemerged&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2357">PR #2357&lt;/a> von Alex Gleason wurde am 6. Juni gemerged und fügt ein &lt;code>autocomplete:true/false&lt;/code>-Token zur &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> Suche hinzu. Die Erweiterung lässt einen Client eine Anfrage als Typeahead-Lookup markieren, sodass das Relay Prefix-Matching verwendet, mit Volltext-Suche als Standard für Anfragen ohne das Token. Dittos Relay implementiert es für Follow Packs, Listen und jedes Event mit einem &lt;code>title&lt;/code>-Tag und gibt Matches gegen den Titel-Präfix zurück; der Standard-Suchpfad läuft mit Volltext-Scoring. Ohne dieses Token hatten Autocomplete-artige UIs keine Möglichkeit, die Prefix-Search-Absicht zu kommunizieren, und Relays mussten aus der Anfrageform raten. Das Token ist ein Per-Search-Hinweis, keine relay-weite Capability, sodass ein Relay es für eine Event-Klasse (Titel) implementieren kann, ohne allgemeine Autocomplete-Unterstützung zu beanspruchen.&lt;/p>
&lt;h3 id="nip-gart-notfallwarnungen-und-location-broadcasts-pr-2374">NIP-GART Notfallwarnungen und Location-Broadcasts (PR #2374)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2374">PR #2374&lt;/a> von disinqa, geöffnet am 9. Juni, definiert ein datenschutzfreundliches Wire-Format auf Nostr für Notfallwarnungen und Location-Broadcasts, die an eine Gruppe vertrauenswürdiger Empfänger adressiert sind. Das angegebene Designziel ist, Sender-Identität, Gruppenmitgliedschaft und Payload vor Relay-Betreibern zu verbergen, während die Events end-to-end replay-safe und signatur-verifizierbar bleiben. Die NIP-Nummer steht noch aus, der Vorschlag ist Frühentwurf. Der Use Case ist das Standard-Notfallwarn-Muster: ein Nutzer unter Bedrohung broadcastet einen Location-Ping, den nur eine vorab geteilte Gruppe vertrauenswürdiger Kontakte entschlüsseln kann, wobei das Relay blind für Sender, Empfänger-Set und Payload ist. Wire-Format-Details leben im PR und werden sich wahrscheinlich weiterentwickeln, während Maintainer prüfen.&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> von hzrd149, geöffnet am 8. Juni, fügt eine &lt;code>logout&lt;/code>-Methode zu &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> hinzu, sodass ein Client einem Bunker explizit sagen kann, dass die Session beendet ist. Bis jetzt war die einzige Möglichkeit, eine Bunker-Session zu beenden, auf den Session-Timeout zu warten oder aufzuhören, die Verbindung zu nutzen, wobei beides den Bunker mit Session-State für einen Client zurücklässt, der weg ist. Der Vorschlag ist kurz (eine neue Methode) und die Art von Housekeeping-Änderung, die langlebige Bunker-Integrationen sauberer macht.&lt;/p>
&lt;h3 id="nip-95-hybrid-relay-p2p-vorschlag-als-long-form-zirkuliert">NIP-95 Hybrid-Relay-P2P-Vorschlag als Long-Form zirkuliert&lt;/h3>
&lt;p>Eine Long-Form-&lt;a href="https://github.com/nostr-protocol/nips">NIP-95-Spezifikation&lt;/a> zirkulierte als &lt;code>kind:30023&lt;/code>-Post von npub &lt;code>91bea5cd9361504c409aaf459516988f68a2fcd482762fd969a7cdc71df4451c&lt;/code> am 4. Juni unter dem Titel &lt;em>Protocolo Híbrido Relay-P2P via WebRTC&lt;/em>. Das portugiesischsprachige Dokument definiert ein hybrides Peer-to-Peer-Relay-Protokoll, bei dem Nostr-Clients sich für Live-Messaging direkt über WebRTC verbinden, während sie weiterhin Relays für Stored-Event-Retrieval und Offline-Zustellung verwenden. Der Autor formulierte die Spec explizit als &amp;ldquo;LLM-ready&amp;rdquo;, und lieferte Nachrichten-Definitionen, logische Flows, Datenschemata und Zustandsregeln in einem Detailgrad, der einem KI-Modell erlaubt, funktionierenden Client- oder Server-Code zu generieren. Der Vorschlag ist noch nicht als NIP-PR gelandet; die Zirkulation über &lt;code>kind:30023&lt;/code> ist der übliche Vorläufer eines formalen nostr-protocol/nips Pull Requests.&lt;/p>
&lt;h3 id="nip-44-v3-gewinnt-einen-zweiten-signer-clave-portiert-die-spec">NIP-44 v3 gewinnt einen zweiten Signer: Clave portiert die Spec&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-06-03-newsletter/#nip-44-v3-amber-implementierung-vor-der-spec">Ambers v6.2.0-NIP-44-v3-Rollout von letzter Woche&lt;/a> wurde vor jedem gemergten NIPs-PR ausgeliefert und ließ v3 als Amber-spezifische Erweiterung zurück, die andere Clients spiegeln mussten, um zu interoperieren. Dieses Single-Implementation-Framing änderte sich diese Woche. &lt;a href="https://github.com/DocNR/clave">Clave&lt;/a>, der push-basierte iOS-NIP-46-Remote-Signer, landete am 3. und 4. Juni über acht Commits einen unabhängigen NIP-44-v3-Port. Kryptografische Primitive kommen in drei Commits: &lt;a href="https://github.com/DocNR/clave/commit/99ca5a5aacb501d1666c489fcdea30187c7853fa">HKDF + ECDH keys layer&lt;/a>, &lt;a href="https://github.com/DocNR/clave/commit/8808cdca54d32b4ae57856bd4b07ed73a45e8e5c">der v3-Padding-Algorithmus&lt;/a> und eine &lt;a href="https://github.com/DocNR/clave/commit/ae1f506a53cb2c8aa16523540dbe790876c1839e">Top-Level-Public-API plus Verschlüsselungs-Context&lt;/a>. Darauf folgt die NIP-46-Oberfläche in &lt;a href="https://github.com/DocNR/clave/commit/f37aa1afc8368862fc3ebac533408442349bfc38">RPC-Dispatch-Verdrahtung innerhalb LightSigner&lt;/a> und einem &lt;a href="https://github.com/DocNR/clave/commit/e51bcb49fc61cfa89b6030d61b203e046aeddb0a">PendingRequest-Schema, das den v3-Kontext (kind plus scope) trägt&lt;/a>, sodass der Signer aufzeichnen kann, für welches Event-kind und welchen Anwendungsfall die v3-Payload genehmigt wurde.&lt;/p>
&lt;p>Clave weicht auf der nutzerorientierten Oberfläche von Amber ab. Ein &lt;a href="https://github.com/DocNR/clave/commit/0a8b7de63c1f2994a80a66bf139ec519fab12877">Berechtigungserteilungs-Schema mit Sensitivity-Tiers&lt;/a> lässt Nutzer v3-Verschlüsselung für ein bestimmtes Event-kind und einen bestimmten Scope auf einer gewählten Sensitivity-Stufe erteilen. Bei erster Begegnung führen &lt;a href="https://github.com/DocNR/clave/commit/2cf563cb15b0406f5e8aaa0b4e34b887ff1896a1">v3-context-aware Approval-Prompts mit einer einmaligen Explainer-Card&lt;/a> v3 den Nutzern vor. Die Arbeit ist in main und ist &lt;a href="https://github.com/DocNR/clave/commit/4bd0c26d7cf308386ef15e5d96ee5673d6db2d4a">in das Xcode-Projekt verdrahtet&lt;/a>, aber unveröffentlicht; der jüngste getaggte Build ist &lt;a href="https://github.com/DocNR/clave/releases/tag/v0.2.0-build79">v0.2.0-build79&lt;/a> vom 12. Mai.&lt;/p>
&lt;p>Zwei unabhängige Implementierungen landen NIP-44 v3 in Produktionspfaden, bevor der NIPs-PR merged, was den Fall für das zugrunde liegende Wire-Format stärkt, das der Protokoll-PR formalisieren wird. Cross-Implementation-Interop-Tests werden jetzt der Pfad zur Spec-Konvergenz, mit Ambers Android-Approval-Oberfläche und Claves iOS-Sensitivity-Tier-Modell als den zwei Referenzpunkten. Weitere Remote-Signer, die v3 verdrahten (nsec.apps noauth ist seit Mai 2025 dormant, und andere Bunker haben keine v3-Arbeit angekündigt), würden den Konsens weiter festigen.&lt;/p>
&lt;h3 id="nip-34-aktivität-iris-übernimmt-den-stack-mit-einem-neuen-hashtree-transport">NIP-34-Aktivität: Iris übernimmt den Stack mit einem neuen Hashtree-Transport&lt;/h3>
&lt;p>Iris veröffentlichte NIP-34 Repo-Ankündigungen für &lt;a href="https://njump.me/nevent1qqs8kmy7a9dn5awurlp9q26lsaetl7dc4wauzdl8ww68dzmn09e074gpzfmhxue69uhhgetdwqhxjunfwvh8gmc850du0">&lt;code>hashtree&lt;/code>&lt;/a> am 8. Juni und für &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> und &lt;a href="https://njump.me/nevent1qqs0x98hpsv8vmrxvwm2rs9exxttrue5qv5p2n2sqjeylz2kgdmd7tgpzfmhxue69uhhgetdwqhxjunfwvh8gmca8783s">&lt;code>iris-chat-rs&lt;/code>&lt;/a> am 9. Juni, und wirbt für Clone-URLs unter einem neuen &lt;code>htree://&lt;/code>-Schema, das von &lt;code>wss://temp.iris.to&lt;/code> bedient wird. Der Hashtree-Transport ist eine content-adressierte Alternative zu GRASP-gerouteten Clones, und diese vier Ankündigungen sind seine ersten öffentlichen Verwendungen. Die Repos tragen leere Beschreibungen und die architektonischen Details entstehen noch, aber die Wahl, über NIP-34-Ankündigung zu veröffentlichen (statt einem benutzerdefinierten Iris-internen Manifest), signalisiert, dass Iris sich zum breiteren NIP-34-Git-über-Nostr-Stack bekennt.&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/de/topics/nip-67/">NIP-67&lt;/a> schließt eine der langbestehenden Korrektheitslücken in &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a>. Die ursprüngliche Spec definiert &lt;code>EOSE&lt;/code> als die Grenze zwischen gespeicherten Events und Live-Subscription-Events für ein &lt;code>REQ&lt;/code>, aber sie spezifizierte nie, ob das Relay die Auslieferung aller gespeicherten Matches beendet oder wegen einer internen Deckelung auf halbem Weg gestoppt hatte. Jedes Relay erzwingt eine Per-Subscription-Deckelung (üblicherweise 300 bis 1000 Events) unabhängig vom &lt;code>limit&lt;/code> des Clients, und Clients hatten keine Möglichkeit, diese Deckelung zu beobachten.&lt;/p>
&lt;p>Der Standard-Workaround war, den empfangenen Count gegen das angeforderte &lt;code>limit&lt;/code> zu vergleichen. Wenn &lt;code>received &amp;lt; limit&lt;/code>, behandle das Ergebnis als vollständig; sonst paginiere mit &lt;code>until=&amp;lt;oldest_created_at&amp;gt;&lt;/code>. Beide Branches sind kaputt. Der &lt;code>received &amp;lt; limit&lt;/code>-Branch trunkiert still: ein Client, der 500 Notes gegen ein auf 300 gedeckeltes Relay abfragt, sieht 300 Events, schlussfolgert, dass das Ergebnis vollständig ist, weil &lt;code>300 &amp;lt; 500&lt;/code>, und holt den Rest nie ab. Auf dem Relay gehaltene Events können &amp;ldquo;mehr verfügbar&amp;rdquo; durch keine bestehende Nachricht signalisieren. Paginierung als zweiter Branch ist verschwenderisch: ein Filter, der genau die Deckelung matcht, erfordert ein zweites &lt;code>REQ&lt;/code> zur Bestätigung der Vollständigkeit, das null Events zurückgibt, während ein voller Filter-Scan auf dem Relay konsumiert wird.&lt;/p>
&lt;p>NIP-67s Fix ist ein optionaler String auf der &lt;code>EOSE&lt;/code>-Nachricht:&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;] // explicit: all stored events delivered
[&amp;#34;EOSE&amp;#34;, &amp;#34;&amp;lt;sub_id&amp;gt;&amp;#34;] // no completeness claim
&lt;/code>&lt;/pre>&lt;p>Ein Relay, das NIP-67 in &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> &lt;code>supported_nips&lt;/code> bewirbt und ein blankes &lt;code>EOSE&lt;/code> aussendet, sagt dem Client, dass es mehr gibt. Ein Relay, das die Ankündigung auslässt, behält das heutige Verhalten, und der Client fällt auf die bestehende Heuristik zurück. Legacy-Clients ignorieren das nachfolgende Array-Element. Abwärtskompatibilität hält in beide Richtungen, ohne neue Verben oder Event-kinds.&lt;/p>
&lt;p>Was NIP-67 der Untersuchung wert macht, ist der Umfang, den es bewusst einschränkt. Die Spec definiert keinen Cursor oder Paginations-Token, sodass &lt;code>until&lt;/code>-basierte Paginierung der Mechanismus bleibt. Relay-Deckelungen bleiben, wo sie sind, und das NIP verlangt keine Offenlegung davon. NIP-67 bewahrt die Bedeutung von &lt;code>EOSE&lt;/code> als die Stored-to-Live-Grenze und fügt nur ein Yes-or-No-Signal an der Grenze hinzu: &amp;ldquo;Ich habe mehr für dich&amp;rdquo; gegen &amp;ldquo;das ist alles.&amp;rdquo; Diese minimale Oberfläche ist der Grund, warum der PR nach einem relativ kurzen Review-Zeitraum für eine NIP-01-Erweiterung merged, und warum mattn im PR explizit anmerkt, dass KI-Übersetzung für den englischen Text verwendet wurde. Die Änderung ist klein genug, dass die Übersetzungs-Unsicherheit keine Rolle spielt.&lt;/p>
&lt;p>Beispiel eines NIP-67-bewussten Austauschs zwischen einem Client und einem cap-erzwingenden Relay. NIP-11-Ankündigung vom 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>Der Wire-Level-Austausch, der folgt:&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>Die 178-Event-Antwort hätte zuvor ein drittes &lt;code>REQ&lt;/code> zur Bestätigung des Abschlusses ausgelöst. Mit NIP-67 stoppt der Client dort.&lt;/p>
&lt;p>NIP-67 ist auch bemerkenswert als NIP-01-Änderung, die mit seltenem Konsens landet. Die meisten NIP-01-Änderungen ziehen lange Debatten-Threads an, weil die winzige Oberfläche des Protokolls für jede Implementierung tragend ist. NIP-67 wurde nach einem erweiterten Review-Zeitraum gemerged (etwa sieben Wochen von Öffnung bis Merge), was nahelegt, dass wenn eine NIP-01-Änderung klein genug ist und der Fehlermodus konkret genug ist (stiller Datenverlust, obligatorischer verschwendeter Round-Trip), die Maintainer des Protokolls bereit sind, das Kern-Nachrichten-Vokabular zu erweitern.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-50-suche">NIP Deep Dive: NIP-50 (Suche)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> definiert das &lt;code>search&lt;/code>-Filterfeld in &lt;code>REQ&lt;/code>-Nachrichten, wodurch Clients ein Relay bitten können, Events per Volltext-Match gegen einen Query-String zu filtern. Die gemergte Basis-Spec ist bewusst minimal: das &lt;code>search&lt;/code>-Feld ist ein String, jedes Relay entscheidet seine eigene Such-Semantik (welche Felder indexiert werden, wie Scoring funktioniert, ob Stemming angewendet wird), und Relays bewerben NIP-50-Unterstützung in ihrem NIP-11-Dokument. Clients kontrollieren den Suchalgorithmus nur durch den Query-String selbst.&lt;/p>
&lt;p>Dieser Minimalismus ist sowohl NIP-50s Stärke als auch seine Einschränkung. Die Stärke ist, dass jedes Relay Suche auf jeder Qualitätsstufe implementieren kann: ein einfacher Substring-Scan erfüllt die Spec, und ein Relay, das Elasticsearch oder Meilisearch betreibt, erfüllt sie gleichermaßen. Die Einschränkung ist, dass Clients keine Möglichkeit haben, Suchabsicht auszudrücken. Eine Profile-Mention-Typeahead-UI möchte Prefix-Matching gegen Display-Namen; eine Volltext-Content-Suche möchte tokenisiertes Volltext-Scoring über den Note-Body. Dasselbe &lt;code>search&lt;/code>-Feld trägt beides, und das Relay muss aus der Anfrageform raten.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2357">PR #2357&lt;/a> fügt das erste NIP-50-Erweiterungs-Token hinzu: &lt;code>autocomplete:true&lt;/code> oder &lt;code>autocomplete:false&lt;/code>, eingebettet in die Such-Anfrage, signalisiert, welchen Modus der Client möchte. Dittos Relay implementiert das Token für Follow Packs, Listen und jedes Event mit einem &lt;code>title&lt;/code>-Tag und wechselt zu Prefix-Matching, wenn &lt;code>autocomplete:true&lt;/code> vorhanden ist. Das Token lebt inline in der Anfrage (separate Filter-Felder bleiben unberührt), sodass es mit dem Such-String reist und keinen Wire-Protokoll-Bump erfordert:&lt;/p>
&lt;pre tabindex="0">&lt;code>search: &amp;#34;fiat autocomplete:true&amp;#34;
&lt;/code>&lt;/pre>&lt;p>Token-förmige Hinweise wie dieser sind, wie NIP-50 immer schon relay-spezifische Dialekte gehandhabt hat. Relays unterstützten bereits Tokens wie &lt;code>language:en&lt;/code> und &lt;code>domain:example.com&lt;/code>. Jedes bleibt relay-spezifisch, wobei jedes Relay seinen eigenen Dialekt dokumentiert. NIP-50s PR #2357 hebt &lt;code>autocomplete&lt;/code> von einem relay-privaten Token zu einem spec-gesegneten und ebnet den Weg für Typeahead-bewusste Suche über Relays hinweg.&lt;/p>
&lt;p>Beispiel eines NIP-50 &lt;code>REQ&lt;/code> mit dem Autocomplete-Token, gerichtet auf ein Relay, das kind 0 Profil-Titel indexiert:&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>Der tatsächliche 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>Ein Relay, das das Token nicht erkennt, behandelt &lt;code>autocomplete:true&lt;/code> als Teil des wörtlichen Such-Strings und fällt auf Volltext-Matching zurück und gibt korrekte (wenn auch anders gerankte) Ergebnisse zurück. Die grazile Degradation macht das Token sicher, es bedingungslos einzuschließen für Clients, die Prefix-Matching bevorzugen, wenn verfügbar.&lt;/p>
&lt;p>Die nächste wahrscheinliche NIP-50-Erweiterung ist Per-kind-Ranking-Kontrolle: ein Hinweis, der sagt &amp;ldquo;rank by &lt;code>created_at&lt;/code> descending&amp;rdquo; gegen den Standard-Relevance-Score. Mehrere Relays akzeptieren bereits &lt;code>sort:newest&lt;/code> als relay-privates Token, und derselbe Aufwertungspfad, der &lt;code>autocomplete&lt;/code> in die Spec brachte, gilt. Suche bleibt eines der wenigen Nostr-Primitive, bei denen Relays um Ergebnisqualität konkurrieren; die Zuverlässigkeit der Zustellung ist bei allen konformen Relays gleich. Inkrementelle Tokens lassen Clients diese Qualitätskonkurrenz nutzen, ohne Relays zu zwingen, eine schwergewichtige neue Spec auszuliefern.&lt;/p></content:encoded></item><item><title>Nostr Compass #25</title><link>https://nostrcompass.org/de/newsletters/2026-06-03-newsletter/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-06-03-newsletter/</guid><description>&lt;p>Amber 6.2.0 liefert NIP-44 v3 Verschlüsselung vor der Spezifikation aus. Mostro landet über acht PRs das Fundament für Cashu-abgewickelten Escrow und wrappt das bestehende Cashu Development Kit als zweites Settlement-Backend neben Lightning. NIP-F4 Podcasts wird nach 27 Monaten Debatte gemerged. fiatjaf öffnet einen umstrittenen NIP-17-Key-Decoupling-Vorschlag, der das Bunker-gegen-Marmot-Architekturargument wieder öffnet. Amethyst landet NIP-32 Hashtag-Labeling, einen dedizierten Podcast-Screen und Onchain-Zaps über 52 unveröffentlichte PRs.&lt;/p>
&lt;h2 id="top-stories">Top-Stories&lt;/h2>
&lt;h3 id="amber-620-nip-44-v3-verschlüsselung-ausgeliefert">Amber 6.2.0: NIP-44 v3 Verschlüsselung ausgeliefert&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.2.0">Amber v6.2.0&lt;/a>, veröffentlicht am 1. Juni, fügt &lt;a href="https://github.com/greenart7c3/Amber/pull/448">NIP-44 v3 Verschlüsselungsunterstützung&lt;/a> mit einem dedizierten Zustimmungs-Screen, Intent-Vorschau, Bunker-Vorschau, History-Logging und Auto-Reject für ungültige Anfragen hinzu. Das Release registriert außerdem &lt;a href="https://github.com/greenart7c3/Amber/commit/8b93340">NIP-44 v3 ContentProvider-Authorities&lt;/a>, sodass andere Android-Apps v3-Verschlüsselung neben dem bestehenden v2-Pfad anfordern können. NIP-44 selbst ist die versionierte Encrypted-Payload-Spezifikation, die von &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> privaten DMs, NIP-46 Bunker-Verkehr und anderen Nostr-Primitiven verwendet wird; v3 in Amber ist ein Opt-in neben v2, signalisiert durch eine separate Signer-Methode, sodass empfängerseitige Clients den Algorithmus explizit aushandeln können. Der entsprechende NIPs-PR ist noch nicht gelandet, sodass Amber v3 vor dem Protokoll-Konsens ausrollt, wobei das Wire-Format und die ContentProvider-Authority für die Downstream-Client-Integration registriert sind.&lt;/p></description><content:encoded>&lt;p>Amber 6.2.0 liefert NIP-44 v3 Verschlüsselung vor der Spezifikation aus. Mostro landet über acht PRs das Fundament für Cashu-abgewickelten Escrow und wrappt das bestehende Cashu Development Kit als zweites Settlement-Backend neben Lightning. NIP-F4 Podcasts wird nach 27 Monaten Debatte gemerged. fiatjaf öffnet einen umstrittenen NIP-17-Key-Decoupling-Vorschlag, der das Bunker-gegen-Marmot-Architekturargument wieder öffnet. Amethyst landet NIP-32 Hashtag-Labeling, einen dedizierten Podcast-Screen und Onchain-Zaps über 52 unveröffentlichte PRs.&lt;/p>
&lt;h2 id="top-stories">Top-Stories&lt;/h2>
&lt;h3 id="amber-620-nip-44-v3-verschlüsselung-ausgeliefert">Amber 6.2.0: NIP-44 v3 Verschlüsselung ausgeliefert&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.2.0">Amber v6.2.0&lt;/a>, veröffentlicht am 1. Juni, fügt &lt;a href="https://github.com/greenart7c3/Amber/pull/448">NIP-44 v3 Verschlüsselungsunterstützung&lt;/a> mit einem dedizierten Zustimmungs-Screen, Intent-Vorschau, Bunker-Vorschau, History-Logging und Auto-Reject für ungültige Anfragen hinzu. Das Release registriert außerdem &lt;a href="https://github.com/greenart7c3/Amber/commit/8b93340">NIP-44 v3 ContentProvider-Authorities&lt;/a>, sodass andere Android-Apps v3-Verschlüsselung neben dem bestehenden v2-Pfad anfordern können. NIP-44 selbst ist die versionierte Encrypted-Payload-Spezifikation, die von &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> privaten DMs, NIP-46 Bunker-Verkehr und anderen Nostr-Primitiven verwendet wird; v3 in Amber ist ein Opt-in neben v2, signalisiert durch eine separate Signer-Methode, sodass empfängerseitige Clients den Algorithmus explizit aushandeln können. Der entsprechende NIPs-PR ist noch nicht gelandet, sodass Amber v3 vor dem Protokoll-Konsens ausrollt, wobei das Wire-Format und die ContentProvider-Authority für die Downstream-Client-Integration registriert sind.&lt;/p>
&lt;p>NIP-46-Sitzungen akzeptieren jetzt automatisch Ping-Anfragen beim Verbinden und entfernen den Prompt beim ersten Round-Trip nach dem Pairing. Die &lt;code>sign_message&lt;/code>-Signer-Methode wurde vollständig entfernt, nachdem sie deprecated und ungenutzt war.&lt;/p>
&lt;p>Da Amber der dominante Android-Signer ist, muss jeder Downstream-Client, der v3 möchte, Ambers Wire-Format anvisieren, bis der NIPs-PR landet. Das gibt Amber implizites Mitspracherecht bei der endgültigen v3-Spezifikation, bis das Protokoll aufholt. Der Trade ist real: v3 in Produktion lässt Amber Implementierungs-Feedback für das schließliche NIP sammeln, zum Preis eines temporären Single-Implementation-Referenzpunkts, an den sich andere Clients jetzt anpassen müssen.&lt;/p>
&lt;h3 id="mostro-cashu-escrow-integration-per-cdk">Mostro: Cashu-Escrow-Integration per CDK&lt;/h3>
&lt;p>grunch landete diese Woche acht PRs über MostroP2P, die Cashus bestehende P2PK-Multisig-Primitive (NUT-10 und NUT-11) als zweites Settlement-Backend neben Lightning auf dem Nostr-koordinierten P2P-Bitcoin-Exchange integrieren. Die kryptografischen Primitive sind Cashus; die Arbeit ist Integrations-Scaffolding und ein neuer Escrow-Backend-Trait. &lt;a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.12.0">Mostro core v0.12.0&lt;/a>, veröffentlicht am 30. Mai, fügt die &lt;a href="https://github.com/MostroP2P/mostro-core/pull/150">Protokoll-Typen für 2-von-3-Multisig-Escrow&lt;/a>, Per-Proof P_M-Signaturen hinzu und erlaubt Escrow-Events durch die Response-Validierung. Die Architektur ist in &lt;a href="https://github.com/MostroP2P/mostro/pull/756">PR #756&lt;/a> dokumentiert und verwendet Per-Order-Trade-Keys, geklärt in &lt;a href="https://github.com/MostroP2P/mostro/pull/757">PR #757&lt;/a>.&lt;/p>
&lt;p>Die Implementierung wurde über sechs Follow-up-PRs an einem einzigen Tag ausgerollt. &lt;a href="https://github.com/MostroP2P/mostro/pull/758">F2 (PR #758)&lt;/a> fügte die Konfiguration, den Escrow-Modus und den bedingten Boot hinzu. Die nächste Scheibe, &lt;a href="https://github.com/MostroP2P/mostro/pull/760">F3 (PR #760)&lt;/a>, definierte einen &lt;code>EscrowBackend&lt;/code>-Trait mit einer Lightning-Implementierung und einem Cashu-Stub, sodass Mostro Settlement-Backends wechseln kann, ohne die Order-State-Machine zu ändern. &lt;a href="https://github.com/MostroP2P/mostro/pull/759">F4 (PR #759)&lt;/a> wrappte &lt;a href="https://github.com/cashubtc/cdk">CDK&lt;/a> (das Cashu Development Kit) für Mint- und Wallet-Operationen. Datenbankarbeit in &lt;a href="https://github.com/MostroP2P/mostro/pull/761">F5 (PR #761)&lt;/a> fügte Compare-and-Swap-Escrow-Locks und Active-Locked-Queries hinzu. &lt;a href="https://github.com/MostroP2P/mostro/pull/762">F6 (PR #762)&lt;/a> baute ein containerisiertes Mint in einem dedizierten CI-Job für End-to-End-Escrow-Tests. Der Mostro-Flow verwendet bereits NIP-59 gift-wrapped DMs zur Order-Koordination über das Relay, sodass Cashu-Escrow als zweite Settlement-Option neben Lightning einrastet, ohne das Wire-Protokoll zu berühren.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="ngit-v250-grasp-fallback-und-lazy-git-fetches">ngit v2.5.0: GRASP-Fallback und 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> ändert das Standardverhalten von &lt;code>git push pr/&amp;lt;branch&amp;gt;&lt;/code> und &lt;code>ngit send&lt;/code>, um bei neuen Vorschlägen ein PR-kind zu erzeugen, wenn im Repository mindestens ein GRASP-Server registriert ist. Zuvor wurde dies nur bei übergroßen Commits über 60 KB oder Commits mit Submodulen ausgelöst. Wenn ein PR nicht an die GRASP-Server des Repositorys gepusht werden kann, fällt ngit jetzt auf GRASP-06-Routing über die deklarierten Server zurück. Das &lt;code>ngit send --git-server&lt;/code>-Flag oder &lt;code>git push -o git-server=&amp;lt;url&amp;gt;&lt;/code> erlaubt es Beitragenden, eine benutzerdefinierte Git-URL oder einen GRASP-Server explizit anzuvisieren.&lt;/p>
&lt;p>&lt;code>ngit init&lt;/code> Republishes bewahren jetzt unbekannte Tags aus bestehenden Ankündigungen, sodass Tags, die von einer zukünftigen ngit-Version oder einem Drittanbieter-Tool hinzugefügt wurden, den Republish überleben. Eine gelbe Warnung listet die übertragenen Tags, und &lt;code>--clean&lt;/code> entfernt sie auf Anfrage. &lt;code>ngit pr apply&lt;/code>, &lt;code>ngit pr checkout&lt;/code> und &lt;code>ngit pr list&lt;/code> konsultieren Git-Server lazy und teilen sich einen einzigen Fetch-Helper, sodass Checkout nicht mehr bedingungslos fetcht, wenn der Commit bereits lokal ist. &lt;code>ngit pr checkout&lt;/code> probiert auch vom Einreicher gelieferte Clone-URLs aus dem PR-Event als Fallback, wenn die deklarierten Git-Server des Repos die PR-Spitze nicht tragen, und passt so das bestehende Verhalten in &lt;code>ngit pr apply&lt;/code> an. ngit ist die Referenz-&lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a>-Implementierung für Git-Zusammenarbeit über Nostr, und v2.5.0 macht GRASP zum First-Class-Pfad für neue Beitragende.&lt;/p>
&lt;h3 id="jumble-v2657-exif-stripping-und-validierte-zap-zählungen">Jumble v26.5.7: EXIF-Stripping und validierte Zap-Zählungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.7">Jumble v26.5.7&lt;/a> fügt zwei Änderungen hinzu, die die Privatsphäre und Datenintegrität der Nutzer direkt betreffen. EXIF-Standort- und Kamera-Identifikatoren werden jetzt vor dem Verlassen des Clients aus Bild-Uploads entfernt, was eine langbestehende Metadata-Leak-Oberfläche schließt, die jedes von Jumble gepostete Bild betraf. Zap-Zählungen werden jetzt nur aus kryptografisch validierten Quittungen berechnet, was aufgeblähte Zählungen aus fehlgeformten Zap-Events behebt, die Angreifern erlaubten, Zap-Gesamtwerte an Notes zu übertreiben. Das Release fügt außerdem Sender-Identity-Verifikation für &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-DMs hinzu, was eine Spoofing-Oberfläche schließt, in der ein Absender seinen &lt;code>pubkey&lt;/code> im Seal fälschen konnte.&lt;/p>
&lt;h3 id="nostr-calendar-v160-rsvp-und-duplikat-teilnehmer-handling">nostr-calendar v1.6.0: RSVP und Duplikat-Teilnehmer-Handling&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> landet Formstrs RSVP-Flow (&lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/169">PR #169&lt;/a>) und verhindert Duplikat-Teilnehmer in Event-Einladungen (&lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/168">PR #168&lt;/a>). Die &lt;code>waitForAll&lt;/code>-Option in der Publish-Funktion ist jetzt standardmäßig false, sodass die UI nicht bei langsamen Relays blockiert (&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> lieferte Formstrs zwei NIP-Vorschlagsentwürfe für Terminplanung und Reservierungen.&lt;/p>
&lt;h3 id="sprout-036-sprout--mesh-llm-und-kanalabschnitte">Sprout 0.3.6: Sprout × mesh-llm und Kanalabschnitte&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout/releases/tag/v0.3.6">Sprout v0.3.6&lt;/a> ist die Schlagzeile eines Sechs-Release-Laufs von v0.3.1 bis v0.3.6 diese Woche. In-Process Sprout × mesh-llm Integration landet in &lt;a href="https://github.com/block/sprout/pull/798">PR #798&lt;/a> und lässt Sprout mesh-llm-Nodes über Relay-Zulassung bereitstellen und konsumieren. Benutzerdefinierte Kanalabschnitte synchronisieren über Geräte hinweg über Nostr in &lt;a href="https://github.com/block/sprout/pull/792">PR #792&lt;/a>, und Kanalabschnitte kommen mit Relay-Sync auf Mobile in &lt;a href="https://github.com/block/sprout/pull/800">PR #800&lt;/a>. Thread-bewusste Benachrichtigungen mit veränderlichen Follow- und Mute-Kontrollen kommen in &lt;a href="https://github.com/block/sprout/pull/761">PR #761&lt;/a> an.&lt;/p>
&lt;p>Anhänge beliebiger Dateitypen mit Download-Karten kamen in &lt;a href="https://github.com/block/sprout/pull/810">PR #810&lt;/a> an und erweiterten Sprout über reine Bild-Anhänge hinaus. Mobile gewann einen Pulse-Social-Feed-Tab (&lt;a href="https://github.com/block/sprout/pull/772">PR #772&lt;/a>) und Pulse-Politur über Feed-, Compose- und Filter-Oberflächen hinweg (&lt;a href="https://github.com/block/sprout/pull/796">PR #796&lt;/a>).&lt;/p>
&lt;h3 id="nostrbotkit-v050-marmot-gruppenchat-in-einem-rust-bot-framework">NostrBotKit v0.5.0: Marmot-Gruppenchat in einem 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>, veröffentlicht am 24. Mai auf Codeberg, fügt &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Unterstützung (MLS-über-Nostr, &lt;a href="https://github.com/nostr-protocol/nips/pull/2014">NIP-104&lt;/a>) zum selbstgehosteten Rust-Bot-Framework hinzu. Wenn &lt;code>marmot: true&lt;/code> gesetzt ist, veröffentlicht der Bot seine MLS-Key-Packages (kind 443, 30443, 10051), akzeptiert Gruppeneinladungen automatisch und lauscht auf Nachrichten in beigetretenen Gruppen. Zwei neue Command-Typen, &lt;code>dm_marmot&lt;/code> und &lt;code>dm_marmot_npub&lt;/code>, lassen Bots Nachrichten in benannte Marmot-Gruppen oder 1:1 Marmot-Chats per Cron-Jobs oder Webhooks senden. Um Feedback-Loops mit anderen Bots zu verhindern, antworten NostrBotKit-Bots nur auf Nachrichten, die explizit an sie adressiert sind, per &lt;code>/command&lt;/code> oder &lt;code>@botname/command&lt;/code>. Verschlüsselte Anhänge, die MIP-04 verwenden, werden automatisch entschlüsselt und per Blossom oder NIP-96 neu hochgeladen, und die MLS-Zustandsdatenbank wird mit einem aus dem privaten Schlüssel des Bots abgeleiteten Schlüssel verschlüsselt. NostrBotKit ist das erste Rust-Framework, das NIP-104-Bot-Unterstützung ausliefert und Marmot-verschlüsseltes Bot-Deployment einem anderen Operator-Profil öffnet als dem bestehenden TypeScript-Pfad.&lt;/p>
&lt;h3 id="noscrypt-v0114-signiertes-kryptografie-bibliotheks-release">noscrypt v0.1.14: signiertes Kryptografie-Bibliotheks-Release&lt;/h3>
&lt;p>&lt;a href="https://github.com/vnuge/noscrypt/releases/tag/v0.1.14">noscrypt v0.1.14&lt;/a> ist ein Security-Release der C-Kryptografie-Bibliothek, die von mehreren Nostr-Clients für secp256k1-, NIP-04- und NIP-44-Primitive verwendet wird. Das Release wird mit &lt;a href="https://www.vaughnnugent.com/resources/software/modules/noscrypt">PGP-signierten Downloads&lt;/a> ausgeliefert, die gegen den Public Key des Maintainers verifizierbar sind. Downstream-Clients, die noscrypt bundeln, sollten die Signatur vor der Integration validieren.&lt;/p>
&lt;h3 id="chama-v130-neuer-nostr-nativer-p2p-escrow-mit-fedimint">Chama v1.3.0: neuer Nostr-nativer P2P-Escrow mit Fedimint&lt;/h3>
&lt;p>&lt;a href="https://github.com/jesuspirate/chama/releases/tag/v1.3.0">Chama v1.3.0&lt;/a>, veröffentlicht am 1. Juni, ist die Schlagzeile eines Vier-Release-Laufs für einen neuen Nostr-nativen P2P-Escrow-Client, der Fedimint-Ecash und 2-von-3 Shamir-Secret-Sharing für Settlement verwendet. Das Projekt läuft unter &lt;a href="https://getchama.app">getchama.app&lt;/a> und funktioniert ohne Server. v1.3.0 führt &amp;ldquo;Heal that Sticks&amp;rdquo; ein (erfolgreiches Re-Broadcasten und Trade-Healing, das Session-Neustarts überlebt) und Pay-Rail-Matching, bei dem US-orientierte Chamas US-Zahlungsschienen zuerst anzeigen. Multi-Unit-Storefront-Grundlagen landeten über &lt;a href="https://github.com/jesuspirate/chama/releases/tag/v1.2.11">v1.2.11&lt;/a> (Multi-Unit-Schema) und &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-Härtung). Chama gesellt sich zu Mostro und Shopstr in der Nostr-Marketplace-Kategorie, unterschieden durch seine serverlose Architektur und Fedimint-basierte Escrow-Abwicklung.&lt;/p>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="amethyst-nip-32-hashtag-labeling-podcast-screen-musiktracks">Amethyst: NIP-32 Hashtag-Labeling, Podcast-Screen, Musiktracks&lt;/h3>
&lt;p>Amethyst mergte diese Woche 52 PRs und 411 Commits, ohne einen Release-Tag zu schneiden. Die größte funktionale Ergänzung ist &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3111">PR #3111&lt;/a>, der &lt;a href="https://nostrcompass.org/de/topics/nip-32/">NIP-32&lt;/a> Hashtag-Labeling und einen Label-basierten Hashtag-Feed mit kind 1985 Events mit &lt;code>L&lt;/code>-Namespace- und &lt;code>l&lt;/code>-Label-Tags implementiert. Dies ersetzt den brüchigen Text-Match-&lt;code>#tag&lt;/code>-Mechanismus durch ein labeler-basiertes Discovery-Modell, in dem Nutzer bestimmten Labeler-npubs so folgen können, wie sie Content-Erstellern folgen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> fügt einen dedizierten Podcast-Screen mit Episodenliste und Inline-Player hinzu, und landet innerhalb von Tagen nach dem Merge der &lt;a href="https://nostrcompass.org/de/topics/nip-f4/">NIP-F4&lt;/a> Podcast-Spec. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3071">PR #3071&lt;/a> fügt einen Software-Apps-Feed mit Follow-List-Filterung hinzu, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3067">PR #3067&lt;/a> fügt Unterstützung für Musiktracks und Playlists über &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> Sets hinzu.&lt;/p>
&lt;p>Ephemere Signer für anonyme Post-Uploads landen in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3123">PR #3123&lt;/a> und lassen Nutzer anonym posten, ohne ihren Identity-Key an Upload-Services preiszugeben. Ein Tor-Self-Heal-Watchdog mit Integrationstests gegen Arti v2.3.0 kommt in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3053">PR #3053&lt;/a> an und stärkt Amethysts Tor-Routing bei vorübergehenden Netzwerkausfällen. Onchain-Zaps und ein NIP-05-Filter für zurückkehrende Nutzer aus Gemini landen in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3052">PR #3052&lt;/a> und erweitern die Zap-Oberfläche über Lightning hinaus auf Onchain-Bitcoin-Zahlungen.&lt;/p>
&lt;h3 id="shopstr-opengraph-preview-url-validierung">Shopstr: OpenGraph-Preview-URL-Validierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr/pull/504">PR #504&lt;/a> validiert OpenGraph-Preview-URLs vor dem Rendern in Marketplace-Listings und schließt eine potenzielle XSS-Oberfläche, in der böswillige Verkäufer skriptbaren Content über gefertigte OG-Metadaten einbetten konnten. Shopstr-gehostete Shops zeigen OG-Vorschauen für externe Links, und unvalidierte URLs erlaubten einem Angreifer, beliebigen Inhalt in die Shop-UI zu injizieren.&lt;/p>
&lt;h2 id="nip-updates-und-protokoll-spec-arbeit">NIP-Updates und Protokoll-Spec-Arbeit&lt;/h2>
&lt;h3 id="nip-f4-podcasts-nach-zwei-jahren-gemerged">NIP-F4 (Podcasts) nach zwei Jahren gemerged&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/1093">PR #1093&lt;/a> wurde am 28. Mai gemerged, zwei Jahre und drei Monate nachdem fiatjaf den ursprünglichen Entwurf geöffnet hatte. NIP-F4 definiert Podcast-Episoden als kind 54 Events mit &lt;code>imeta&lt;/code> Tags für Audio-Datei-Metadaten (URL, MIME-Typ, ISO-Sprachcode, Fallback-URLs, NIP-96 Service-Flag, Bitrate, Dauer), einem &lt;code>title&lt;/code> Tag, optionalen &lt;code>image&lt;/code> und &lt;code>description&lt;/code> Tags sowie &lt;code>t&lt;/code> Tags für Topic-Labels. Die Spec behält bewusst RSS als Source of Truth: Episoden können ein &lt;code>i&lt;/code> Tag tragen, das auf die RSS-Podcast-GUID verweist, wodurch Nostr-Clients zu bestehenden Podcast-Feeds verlinken können, ohne Audio-Hosting zu duplizieren. Die lange Debatte im PR-Thread (mit dem Podcast-Namespace-Co-Autor Dave Jones, Alex Gleason und Mike Terenzio) einigte sich auf ein Koexistenz-Modell, in dem Nostr die soziale Schicht auf RSS bereitstellt, während RSS die Verteilungsschicht behält. Amethysts &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> Podcast-Screen landet innerhalb von Tagen nach dem Spec-Merge, und Jumbles GIF-Picker-Arbeit enthält auch frühes Podcast-Attachment-Scaffolding.&lt;/p>
&lt;h3 id="nip-17-key-decoupling-pr-2361">NIP-17-Key-Decoupling (PR #2361)&lt;/h3>
&lt;p>fiatjaf öffnete &lt;a href="https://github.com/nostr-protocol/nips/pull/2361">PR #2361&lt;/a> am 1. Juni und schlug vor, dass NIP-17 den Identity-Key vom Encryption-Key trennt. Empfänger kündigen ihren Encryption-Key in einem neuen kind 10044 Event an, und Sender verwenden diesen angekündigten Key (falls vorhanden) für das Gift-Wrap-Inner-Seal und fallen nur dann auf den Identity-Key des Empfängers zurück, wenn die Ankündigung fehlt. Der PR fügt außerdem ein &lt;code>n&lt;/code> Tag zum Seal hinzu, das den Encryption-pubkey des Senders trägt, sodass Empfänger den korrekten Konversationsschlüssel ableiten können, ohne Trial-Decryption gegen jeden ausrangierten Key durchführen zu müssen. Die erklärte Motivation ist Bunker-UX: unter dem aktuellen Design muss ein Bunker-Nutzer jede empfangene DM zum Entschlüsseln über den Signer roundtrippen, da der Encryption-Key der Signer-gehaltene Identity-Key ist. Die Entkopplung lässt den Client den Encryption-Key lokal halten, während der Identity-Key im Bunker für Signaturen bleibt.&lt;/p>
&lt;p>Der Vorschlag zog das umstrittenste Review der Woche an. Cody Tseng (Jumble) unterstützt ihn als den einfachsten Weg zu Cross-Client-DM-Interop. Vitor Pamplona (Amethyst) hat zwei Einwände: Er fügt ein neues langlebiges Entschlüsselungs-Geheimnis außerhalb des Bunkers hinzu, und Clients, die es nicht ausliefern, werden Nachrichten von Clients, die es tun, stillschweigend nicht mehr entschlüsseln, ohne Degradations-Pfad, weil der Bruch auf der Seal-Ebene liegt. Pamplona argumentiert, dass das Problem bereits korrekt durch &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmots&lt;/a> Key-Packages und Epoch-Rotation gelöst ist, und dass das nachträgliche Einbauen der Key-Trennung in die Basis-NIP-17-Spec die Art von Interop-Fehler erzeugt, um die Marmot zwei Jahre lang engineeren musste. fiatjafs Gegenrede hat drei Teile: Entkopplung ist optional pro Empfänger, der n-Tag-Fix adressiert die Trial-Decryption-Sorge, und die Alternative ist, Bunker-UX kaputt zu halten, während Telegram den Messaging-Use-Case frisst. Der Thread bleibt ohne Merge-Entscheidung offen und ist die meistbeobachtete NIP-Diskussion des Quartals.&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 öffnete PR #2362&lt;/a> am 1. Juni als Begleiter zum breiteren &lt;a href="https://github.com/nostr-protocol/nips/pull/2355">Nostr Silent Payments NIP-Entwurf (PR #2355)&lt;/a>. Das Payment-Flow-NIP definiert kind 8352 für Silent-Payment-Empfangsbenachrichtigungen (ausgeliefert per &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrap, damit der Empfangslink nicht öffentlich beobachtbar ist) und kind 10353 für einen verschlüsselten UTXO-Cache, der über Geräte für dieselbe Silent-Payments-Wallet synchronisiert. Das Paar zusammen lässt einen Zahler eine Zahlung an eine Silent-Payments-Adresse mit Nostr-nativen Primitiven signalisieren, ohne den On-Chain-Link auf der offenen Relay-Ebene preiszugeben.&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 öffnete PR #2364&lt;/a> am 1. Juni als Entwurf. Er führt einen Paket-Baum-Transport mit drei neuen adressierbaren kinds ein: 39078 trägt das Manifest, 39079 trägt einzelne Slices, und 39080 trägt Reparatur-Anfragen. Die Spec definiert ein Wire-Format, in dem große Dateien in adressierbare Slices zerlegt werden, mit Manifesten, die den Slice-Baum beschreiben, und Reparatur-Anfragen, die Empfängern erlauben, fehlende Slices anzufordern. Frühentwurfsstatus gilt, und der Vorschlag hat noch keine Maintainer-Review angezogen.&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> wurde am 28. Mai gemerged und erweitert &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> relay-basierte Gruppen um Audio- und Video-Live-Space-Unterstützung. Gruppen können jetzt auf eine aktive Live-Space-Session verweisen, wodurch &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a>-artige Live-Activity-Events in einem NIP-29-Gruppenkontext verankert werden können.&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> wurde am 28. Mai gemerged und fügt Audio-Track-&lt;code>imeta&lt;/code> Tags zu NIP-71 Video-Events hinzu. Das neue Format trägt URL, Hash, MIME-Typ, Sprach-Tag (mit ISO-639-1 plus Original-Version-Flag), Fallback-URLs, NIP-96 Service-Signal, Bitrate und Dauer. Das ermöglicht Audio-only Streaming (Video-Podcasts), Auflösungswechsel mit stabilem Audio, mehrere Sprachtracks und reduzierten Speicher, wenn Server Audio nicht direkt in Video-Dateien einbetten. Clients sollten die Audio-Track-Verfügbarkeit prüfen, bevor sie Single-Track-Verhalten annehmen.&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> wurde am 28. Mai gemerged und fügt kind 21059 als ephemeres Gegenstück zum bestehenden kind 1059 Gift Wrap hinzu. Die Semantik entspricht dem Standard-NIP-59-Wrap, folgt aber ephemeren Event-Regeln gemäß NIP-01 (Relays lassen sie nach dem Broadcast fallen und persistieren sie nicht). Damit können Apps Persistenz basierend auf Anforderungen wählen: Tipp-Indikatoren und Presence-Pings profitieren von Ephemeral, während DM-Historie Persistenz braucht.&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> wurde am 28. Mai gemerged und klassifiziert NIP-78 anwendungsspezifische Daten neu als normales adressierbares kind, wobei der vorherige separate Bereich aufgegeben wird. Dies vereinfacht die Replaceability-Semantik und richtet NIP-78 mit dem adressierbaren Event-Modell aus, das von anderen Anwendungszustand-NIPs verwendet wird.&lt;/p>
&lt;h3 id="nip-85-klärungen-pr-2304">NIP-85-Klärungen (PR #2304)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2304">PR #2304&lt;/a> wurde am 28. Mai gemerged, mit kleinen Verbesserungen der Sprache rund um mehrere Keys und Relays pro Service-Provider in &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> Trusted Assertions, und klärt den Operator-Key-Rotation-Pfad für Relay-Assertion-Services.&lt;/p>
&lt;h3 id="nip-01-relay-connection-management-einzeiler-pr-2307">NIP-01 Relay-Connection-Management-Einzeiler (PR #2307)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2307">PR #2307&lt;/a> wurde am 28. Mai gemerged und fügt einen einzigen Satz zu NIP-01 darüber hinzu, wie Clients Relay-Verbindungs-Lebensdauern handhaben sollen. Der Fix adressiert eine langlaufende Lücke, in der Clients uneinig waren, ob WebSocket-Verbindungen nach dem Fetchen offen bleiben sollten, was zu stillem Nachrichtenverlust auf Relays führte, die Idle-Verbindungen fallen lassen.&lt;/p>
&lt;h3 id="nip-c7-kind-9-chat-beschränkung-pr-2310">NIP-C7 Kind 9 Chat-Beschränkung (PR #2310)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2310">PR #2310&lt;/a> wurde am 28. Mai gemerged und beschränkt NIP-C7-Chat-Ansichten auf ausschließlich kind 9 Nachrichten. Das trennt ephemeren Chat von kind 1 Timeline-Posts in Clients, die NIP-C7-artige Chat-Oberflächen implementieren.&lt;/p>
&lt;h3 id="nip-55-vereinfachung-pr-2363">NIP-55-Vereinfachung (PR #2363)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2363">PR #2363&lt;/a> von greenart7c3, geöffnet am 1. Juni, vereinfacht die Android-Signer-Anwendungsspec. Vitor Pamplona gab &amp;ldquo;Looks good&amp;rdquo; als Zustimmung, und fiatjaf fragte, ob er bereit zum Mergen ist. Die Änderung ebnet den Weg für die NIP-44 v3 ContentProvider-Authority-Registrierung, die Amber diese Woche ausgeliefert hat.&lt;/p>
&lt;h3 id="nip-44-v3-amber-implementierung-vor-der-spec">NIP-44 v3 (Amber-Implementierung vor der Spec)&lt;/h3>
&lt;p>Amber lieferte NIP-44 v3 in v6.2.0 mit acht Commits aus, die das Verschlüsselungs-Upgrade und die ContentProvider-Authority-Registrierung implementieren, aber der NIPs-Repo-Spec-PR ist noch nicht gelandet. NIP-44 selbst definiert ein versioniertes Encrypted-Payload-Format, das innerhalb signierter Events verwendet wird; das bestehende v2 (seit 2024 in Produktion) verwendet secp256k1 ECDH, HKDF, Padding, ChaCha20, HMAC-SHA256 und base64. Das v3-Wire-Format fügt ein neues Versions-Byte (0x03) vor der Nonce hinzu, wodurch Empfänger-Clients den Algorithmus explizit aushandeln können. Ambers Implementierung enthält Auto-Reject für ungültige v3-Anfragen, einen dedizierten Zustimmungs-Screen, der sich von v2-Zustimmungen unterscheidet, und Per-Direction-Klartext-Logging für die History. Bis der NIPs-PR merged, steht v3 als Amber-spezifische Erweiterung. Behandle es als vorwärtsblickendes Signal, nicht als stabile protokollweite Signalisierung.&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/de/topics/nip-32/">NIP-32&lt;/a> definiert eine strukturierte Möglichkeit für jeden Nostr-Akteur, Events, pubkeys, Relays, URLs oder Topics mit adressierbaren kind 1985 Events unter Verwendung eines namespaced Label-Vokabulars zu labeln. Die Spec führt zwei neue Tags ein: &lt;code>L&lt;/code> bezeichnet einen Label-Namespace, und &lt;code>l&lt;/code> bezeichnet ein Label innerhalb dieses Namespaces. Label-Ziel-Tags (&lt;code>e&lt;/code>, &lt;code>p&lt;/code>, &lt;code>a&lt;/code>, &lt;code>r&lt;/code> oder &lt;code>t&lt;/code>) spezifizieren, was gelabelt wird. Die Namespace-Anforderung verhindert, dass mehrere Label-Systeme kollidieren: ein &lt;code>spam&lt;/code>-Label in &lt;code>nip28.moderation&lt;/code> trägt eine andere Semantik als ein &lt;code>spam&lt;/code>-Label in &lt;code>relay-report&lt;/code>.&lt;/p>
&lt;p>Die Designentscheidung, die NIP-32 über Moderation hinaus nützlich macht, ist, dass Labels Behauptungen sind, keine Protokoll-Level-Wahrheit. Ein kind 1985 Event sagt nur, dass ein bestimmter pubkey ein bestimmtes Ziel in einem bestimmten Namespace gelabelt hat. Das Vertrauensmodell wird an den Client delegiert: jeder Client wählt, welchen Labelern er glaubt, welche Namespaces er liest und welche UI-Affordance er jedem Label gibt. Dasselbe Primitiv trägt Content-Warnungen, Lizenzzuweisung, ISO-639-1-Sprach-Tags auf kind 1 Notes, ISO-3166-2-geografische Tags, Content-Klassifizierung, verteilte Moderations-Vorschläge und Reputations-Scores.&lt;/p>
&lt;p>Amethysts &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3111">PR #3111&lt;/a> diese Woche ist das bislang größte Deployment. Er fügt Hashtag-Labeling über NIP-32 und einen Label-basierten Hashtag-Feed hinzu, wodurch Nutzer nach Labels, die von vertrauenswürdigen Labelern zugewiesen wurden, browsen können. Der frühere &lt;code>#tag&lt;/code> Text-Match-Mechanismus, der Hashtag-Discovery auf Nostr ursprünglich antrieb, bleibt als Fallback für ungelabelte Notes. Das Hashtag-als-Label-Modell bedeutet, dass dieselbe Note unter mehreren Labels, die von verschiedenen Labelern zugewiesen wurden, entdeckbar sein kann, und Nutzer können bestimmte Labeler muten oder boosten, ohne die zugrunde liegenden Notes zu beeinflussen.&lt;/p>
&lt;p>Self-Labeling wird ebenfalls unterstützt. Ein Autor kann &lt;code>L&lt;/code> und &lt;code>l&lt;/code> Tags direkt an seine eigenen kind 1 Notes anhängen, um Sprache, Standort und Thema zu deklarieren. Eine Note, die mit &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> getaggt ist, identifiziert sich selbst als Englisch und kann von sprach-bewussten Clients ohne Drittanbieter-Labeling-Infrastruktur gefiltert werden.&lt;/p>
&lt;p>Beispiel eines NIP-32 Label-Events, das eine kind 1 Note als Englisch taggt und ihr einen Moderations-Tag zuweist:&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>Der Amethyst-Rollout kombiniert mit der jüngsten Trusted-Relay-Assertions-Arbeit legt nahe, dass NIP-32 zum Standard-Substrat für jedes &amp;ldquo;user-driven assertion about a target&amp;rdquo;-Muster auf Nostr wird. Der nächste Test ist, ob die Labeler selbst Vertrauens-Hierarchien entwickeln: ob Nutzer bestimmten Labeler-npubs so folgen werden, wie sie Content-Erstellern folgen.&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> wurde diese Woche gemerged, zwei Jahre und drei Monate nachdem fiatjaf den ursprünglichen Entwurf geöffnet hatte (PR #1093). Das F-Präfix ist einfache Hex-Nummerierung: NIP-F0 bis NIP-FF nutzen denselben 1-Byte-Hex-Raum wie NIP-0A bis NIP-0D, wobei der obere Hex-Bereich als Überlauf dient, jetzt wo sich der Dezimalbereich 01–99 füllt. NIP-F4 definiert, wie Podcasts Episoden und Metadaten als Nostr-Events veröffentlichen, während RSS als ergänzende Schicht für die Audio-Datei selbst erhalten bleibt.&lt;/p>
&lt;p>Die zentrale architektonische Entscheidung ist, dass jeder Podcast sein eigenes Nostr-Keypair ist. Die Spec eröffnet mit dieser Aussage direkt: &amp;ldquo;each podcast is its own Nostr keypair&amp;rdquo;. Das lässt Podcasts ihre Podcasting-Präsenz mit einer normalen kind 0 / kind 1 Microblogging-Präsenz kombinieren und lässt einen Podcast den Besitz über die Zeit hinweg über Key-Übergabe oder MuSig2-artiges geteiltes Signieren wechseln. Vier Event-kinds tragen die Publishing-Schicht:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>kind:10154&lt;/code>&lt;/strong>: replaceable Podcast-Metadaten. Trägt &lt;code>title&lt;/code>, &lt;code>image&lt;/code>, &lt;code>description&lt;/code>, optionale &lt;code>website&lt;/code> Tags und optionale &lt;code>p&lt;/code> Tags, die Autoren mit einer &lt;code>role&lt;/code> von &lt;code>host&lt;/code>, &lt;code>cohost&lt;/code> oder &lt;code>editor&lt;/code> markieren.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:10164&lt;/code>&lt;/strong>: Autoren-Gegenbehauptung. Das Beispiel in der Spec verwendet kind &lt;code>10064&lt;/code> (ein Typo, der zur Korrektur offen ist), aber die Überschrift und der umliegende Text identifizieren es als &lt;code>kind:10164&lt;/code>. Nutzer listen die Podcast-pubkeys, die sie authoren, sodass Clients die &lt;code>p&lt;/code> Tags in &lt;code>kind:10154&lt;/code> gegen eine äquivalente Behauptung des vermeintlichen Autors verifizieren können. Ohne dies könnte ein Podcast fälschlicherweise jeden als Host taggen.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:54&lt;/code>&lt;/strong>: Episoden-Events, die direkt vom Podcast-pubkey authored werden. Tags umfassen &lt;code>title&lt;/code>, optionales &lt;code>image&lt;/code>, &lt;code>description&lt;/code> und eine oder mehrere &lt;code>audio&lt;/code> Tags. Jedes &lt;code>audio&lt;/code> Tag ist &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>. Die Spec notiert &amp;ldquo;other important fields to be specified here later after further discovery&amp;rdquo;, und die gemergte Form ist bewusst minimal.&lt;/li>
&lt;li>&lt;strong>&lt;code>kind:10054&lt;/code>&lt;/strong>: eine &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a>-artige Favorite-Podcasts-Liste, mit der Nutzer markieren können, welchen Podcasts sie folgen.&lt;/li>
&lt;/ul>
&lt;p>Die Thread-Debatte rund um den Merge beinhaltete den Podcasting-2.0-Co-Autor &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> und &lt;a href="https://github.com/staab">staab&lt;/a>. Jones argumentierte stark gegen jeden Versuch, RSS zu ersetzen: &amp;ldquo;It&amp;rsquo;s been tried many times and always fails&amp;rdquo;, und zitierte JSONfeed, XMPP, AMP, Twitters API und Spotifys gescheiterte Migration. Terenzio formulierte den Vorschlag als soziale Schicht auf RSS um, wobei RSS selbst die Verteilungsschicht bleibt. fiatjaf stimmte zu, zurückzutreten und den Vorschlag reifen zu lassen: &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;. Zwei Jahre später landet die gemergte Spec näher an Koexistenz als an Ersatz.&lt;/p>
&lt;p>Drei Designfragen bleiben in der gemergten Spec explizit:&lt;/p>
&lt;ul>
&lt;li>Der &lt;code>kind:10164&lt;/code>-Typo (Beispiel zeigt &lt;code>10064&lt;/code>) muss abgeglichen werden, bevor Clients sicher interoperieren können.&lt;/li>
&lt;li>Episoden-Level-Discovery ohne RSS-GUID-Linking bleibt offen. Die gemergte Spec hat kein &lt;code>i&lt;/code> Tag, kein &lt;code>podcast:item:guid&lt;/code>-Format und keinen RSS-Bridging-Mechanismus. Clients, die einen bestehenden RSS-Katalog in kind 54 Events überbrücken wollen, müssen die Bridge-Konvention selbst definieren.&lt;/li>
&lt;li>Der &amp;ldquo;other important fields&amp;rdquo;-Stub auf der &lt;code>kind:54&lt;/code>-Definition lässt Bitrate, Dauer, Sprache, Transkript-Pointer, Kapitel und Per-Segment-Metadaten als offenes Territorium für Follow-up-Vorschläge.&lt;/li>
&lt;/ul>
&lt;p>Amethysts &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3105">PR #3105&lt;/a> landet einen dedizierten Podcast-Screen mit Episodenliste und Inline-Player innerhalb von Tagen nach dem Merge, die erste große Client-Implementierung. Jumble lieferte frühes Podcast-Attachment-Scaffolding neben seinem GIF-Picker aus. Wavlake bleibt die größte Nostr-native Podcast-Plattform und muss entscheiden, ob es seine bestehenden kind 31337 Musiktrack-Events mit NIP-F4s kind 54 Episoden-Modell in Einklang bringt.&lt;/p>
&lt;p>Beispiel eines NIP-F4 kind 54 Episoden-Events, passend zum minimalen Tag-Set der gemergten 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 war 27 Monate offen, weit über der Median-Offenzeit für gemergte NIPs-PRs. Der nächste Test für NIP-F4 ist, ob der kind 10164-Typo abgeglichen wird, ob Episoden-Discovery- und RSS-Bridge-Konventionen von den Implementierern entstehen und ob die großen Podcast-Hosts unter Per-Podcast-Keypairs veröffentlichen, wie die Spec empfiehlt.&lt;/p></content:encoded></item><item><title>Nostr Compass #24</title><link>https://nostrcompass.org/de/newsletters/2026-05-28-newsletter/</link><pubDate>Thu, 28 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-05-28-newsletter/</guid><description>&lt;p>Amethyst v1.11.0 landet eine vollständige NIP-52-Kalender-Implementierung mit Erinnerungen, On-Chain-Bitcoin-Zap-Splits und Marmot-Gruppenantwort-Unterstützung. White Noise v2026.5.22 liefert iOS-Push-Benachrichtigungen über eine Notification Service Extension, dazu eine Block-UX und einen &amp;ldquo;Mitglieder hinzufügen&amp;rdquo;-Button. Vector v0.4.0 landet eine umfassende Neufassung von vector-core, One-Click-Tor mit Bridges, NIP-46-Remote-Signer, vollständige Negentropy-MLS-Gruppensynchronisation und einen 21-Tool-MCP-Server für KI-Agenten. Applesauce v6.1.0 führt NIP-51-Lookup-Relay-Listen (kind 10086) und einen kompletten NIP-34-Git-Cast-Factory-Satz ein. MDK fügt NIP-40 verschwindende Nachrichten über iOS und Android durch eine einheitliche UniFFI-Oberfläche hinzu, und Mostro v0.17.4 schließt die Anti-Abuse-Bond-Schleife mit Phase-3-Auszahlungen von geslashten Bonds an den Gewinner. Notedeck merged vollständige NIP-77-Negentropy-Reconciliation für Giftwraps und Thread-Backfill, Cordn erscheint als koordinatorvermittelter MLS-Messenger, der eine Single-Point-Availability-Abhängigkeit gegen strengere Epochen-Ordnung und ein einfacheres Betriebsmodell tauscht, eine NIP-B0-Referenzimplementierung namens deepmarks liefert einen kurator-monetarisierten Bookmark-Client, und das Formstr-Team öffnet vier koordinierte Kalender-NIP-Vorschläge, die Selbst-Entfernung von Teilnehmern, private Events, Wiederholung und dezentrale Terminplanung abdecken.&lt;/p></description><content:encoded>&lt;p>Amethyst v1.11.0 landet eine vollständige NIP-52-Kalender-Implementierung mit Erinnerungen, On-Chain-Bitcoin-Zap-Splits und Marmot-Gruppenantwort-Unterstützung. White Noise v2026.5.22 liefert iOS-Push-Benachrichtigungen über eine Notification Service Extension, dazu eine Block-UX und einen &amp;ldquo;Mitglieder hinzufügen&amp;rdquo;-Button. Vector v0.4.0 landet eine umfassende Neufassung von vector-core, One-Click-Tor mit Bridges, NIP-46-Remote-Signer, vollständige Negentropy-MLS-Gruppensynchronisation und einen 21-Tool-MCP-Server für KI-Agenten. Applesauce v6.1.0 führt NIP-51-Lookup-Relay-Listen (kind 10086) und einen kompletten NIP-34-Git-Cast-Factory-Satz ein. MDK fügt NIP-40 verschwindende Nachrichten über iOS und Android durch eine einheitliche UniFFI-Oberfläche hinzu, und Mostro v0.17.4 schließt die Anti-Abuse-Bond-Schleife mit Phase-3-Auszahlungen von geslashten Bonds an den Gewinner. Notedeck merged vollständige NIP-77-Negentropy-Reconciliation für Giftwraps und Thread-Backfill, Cordn erscheint als koordinatorvermittelter MLS-Messenger, der eine Single-Point-Availability-Abhängigkeit gegen strengere Epochen-Ordnung und ein einfacheres Betriebsmodell tauscht, eine NIP-B0-Referenzimplementierung namens deepmarks liefert einen kurator-monetarisierten Bookmark-Client, und das Formstr-Team öffnet vier koordinierte Kalender-NIP-Vorschläge, die Selbst-Entfernung von Teilnehmern, private Events, Wiederholung und dezentrale Terminplanung abdecken.&lt;/p>
&lt;h2 id="top-stories">Top-Stories&lt;/h2>
&lt;h3 id="amethyst-v1110-kalender-on-chain-zap-splits-und-marmot-antworten">Amethyst v1.11.0: Kalender, On-Chain-Zap-Splits und Marmot-Antworten&lt;/h3>
&lt;p>Amethyst, der Nostr-Client für Android, gepflegt von Vitor Pamplona, lieferte &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.11.0">v1.11.0&lt;/a> aus. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2994">PR #2994&lt;/a> fügt eine &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> Kalender-Event-Implementierung mit einer dedizierten UI und einem Erinnerungssystem hinzu, sodass Kalender-Events jetzt in ihrer eigenen Timeline-Kategorie rendern, getrennt von der generischen kind-30023 Long-Form-Ansicht. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3018">PR #3018&lt;/a> erweitert On-Chain-Bitcoin-Zaps um Split-Unterstützung und verteilt eine einzelne Bitcoin-Transaktion auf mehrere Empfänger gemäß dem bestehenden Zap-Split-Tag, sodass sich eine On-Chain-Zahlung genauso verhält wie ein Lightning-Split. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2974">PR #2974&lt;/a> fügt einen paginierten On-Chain-Transaktions-Historien-Screen hinzu, der jeden abgewickelten Zap mit Block-Bestätigungsstatus zeigt.&lt;/p>
&lt;p>Gruppen-Messaging erhält Parität mit Eins-zu-eins-Chat: &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2995">PR #2995&lt;/a> fügt Antwort-Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>/MLS-Gruppennachrichten hinzu, sodass Threads innerhalb verschlüsselter Gruppen jetzt mit derselben Parent-Reference-UI wie öffentliche Notes rendern. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2984">PR #2984&lt;/a> härtet die &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> Zap-Quittungs-Validierung, indem geprüft wird, dass der LNURL-Provider zur angegebenen lud16 des Empfängers passt, was eine Klasse von Fälschungen schließt, bei denen ein Dritt-LNURL eine Quittung für eine nie eingegangene Zahlung erzeugen könnte. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2968">PR #2968&lt;/a> akzeptiert Fließkomma-Dimensionen in &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> &lt;code>imeta&lt;/code> Tags und richtet Amethyst mit Clients aus, die gebrochene Pixel-Density-Werte von Geräten wie dem iPhone Retina Display veröffentlichen. Das Release verdrahtet außerdem Payment Targets, ein neues replaceable-Event-Multi-Rail-Trinkgeldglas, das im Protokollabschnitt unten behandelt wird.&lt;/p>
&lt;h3 id="white-noise-v2026522-ios-push-block-ux-und-mitglieder-hinzufügen">White Noise v2026.5.22: iOS-Push, Block-UX und Mitglieder hinzufügen&lt;/h3>
&lt;p>White Noise, der Marmot-Protokoll-Gruppen-Messenger, lieferte &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.5.22%2B25">v2026.5.22&lt;/a> mit iOS-Push-Benachrichtigungen als Hauptfeature aus. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/673">PR #673&lt;/a> implementiert eine iOS Notification Service Extension (NSE), die MLS-Nachrichten innerhalb des Extension-Prozesses entschlüsselt und sie als System-Benachrichtigungen anzeigt, sodass iPhone-Nutzer die App nicht mehr im Vordergrund brauchen, um Nachrichten zu empfangen. Android-Push-Token-Plumbing routet durch dieselbe Backend-Pipeline, wobei die plattformspezifische NSE Chiffretext vom Broker fernhält.&lt;/p>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/676">PR #676&lt;/a> fügt eine vollständige Block- und Unblock-UX mit Bestätigungs-Flows und Kontaktlisten-Filterung hinzu. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/679">PR #679&lt;/a> fügt den lange geforderten &amp;ldquo;Mitglieder hinzufügen&amp;rdquo;-Button zum Gruppen-Info-Screen hinzu und schließt eine UX-Lücke, in der Gruppen-Admins auf Share-Links zurückgreifen mussten. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/688">PR #688&lt;/a> führt einen dedizierten iOS-Benachrichtigungseinstellungs-Screen ein, und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/687">PR #687&lt;/a> verdrahtet Share-per-Long-Press für Medien und Nachrichten.&lt;/p>
&lt;h3 id="mdk-fügt-nip-40-verschwindende-nachrichten-plattformübergreifend-hinzu">MDK fügt NIP-40 verschwindende Nachrichten plattformübergreifend hinzu&lt;/h3>
&lt;p>Das Marmot Development Kit, der geteilte Rust-Core, den White Noise iOS, White Noise Android und jeder zukünftige Marmot-Client verwenden, mergte &lt;a href="https://github.com/marmot-protocol/mdk/pull/306">PR #306&lt;/a>, um Validierung für verschwindende Nachrichten und &lt;a href="https://nostrcompass.org/de/topics/nip-40/">NIP-40&lt;/a> Ablauf-Handling über die UniFFI-Brücke zu exponieren. Der PR ist der zweite einer dreiteiligen Serie. iOS und Android teilen sich jetzt eine Rust-Implementierung der Ablauf-Logik; die Timing-Regeln leben in einem einzigen geprüften Code-Pfad, der von beiden Plattformen über UniFFI konsumiert wird. &lt;a href="https://github.com/marmot-protocol/mdk/pull/307">PR #307&lt;/a> begrenzt die gespeicherte Länge von Welcome-Fehlergründen und bereinigt sie vor der Persistierung, ein separater Härtungsdurchgang, der die letzte Woche ausgelieferte Welcome-Event-Behandlung ergänzt.&lt;/p>
&lt;p>Verschwindende Nachrichten in MLS sind nicht nur ein UI-Feature. Der Ablauf-Tag wird mit der verschlüsselten Nachrichten-Hülle veröffentlicht, sodass bei einem Empfänger, der die Nachricht nie öffnet, der zugrundeliegende Chiffretext trotzdem auf Relay-Ebene abläuft, zusammen mit jeder gecachten Kopie im empfangenden Client. Da MDK den Validierungs-Pfad besitzt, bleibt das Verhalten über Clients hinweg konsistent: jede konforme Marmot-Implementierung setzt dieselbe Ablauf-Semantik durch, sodass es kein Portabilitäts-Risiko mehr ist, dass ein Client Ablauf respektiert, während ein anderer für immer cached.&lt;/p>
&lt;h3 id="mostro-v0174-phase-3-schließt-die-slashed-bond-schleife">Mostro v0.17.4: Phase 3 schließt die Slashed-Bond-Schleife&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, das Peer-to-Peer-Bitcoin-Exchange-Protokoll auf Basis von Nostr, lieferte Phase 3 seines Anti-Abuse-Bond-Rollouts in &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.4">v0.17.4&lt;/a> aus. &lt;a href="https://github.com/MostroP2P/mostro/pull/738">PR #738&lt;/a> landet den Payout-Flow für geslashte Bonds, nimmt das verfallene Collateral des Verlierers und verteilt es an den Dispute-Gewinner. &lt;a href="https://github.com/MostroP2P/mostro/pull/743">PR #743&lt;/a> fügt Phase 3.5 hinzu, eine explizite Payout-Bestätigungsnachricht an den Gewinner, damit er weiß, dass die geslashten Sats abgewickelt sind, wobei das Bestätigungs-Event auf derselben Nostr-Sitzung ankommt wie die Dispute-Auflösung. Phase 2, letzte Woche behandelt, führte Slashing als Admin-Aktion ein; Phase 3 ist der Unterschied zwischen dem Androhen und dem Durchsetzen einer Strafe.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro/pull/746">PR #746&lt;/a> lässt den Daemon Disputes finalisieren, denen eine Solver-Zeile fehlt, ein Sonderfall, der zuvor die Auflösung bei Legacy-Disputes ins Stocken brachte. &lt;a href="https://github.com/MostroP2P/mostro/pull/748">PR #748&lt;/a> toleriert Null-Raten in Yadios &lt;code>/exrates/BTC&lt;/code>-Antwort, sodass ein kurzer Yadio-Ausfall Mostros Fiat-Konvertierungs-Pfad nicht mehr bricht. &lt;a href="https://github.com/MostroP2P/mostro/pull/745">PR #745&lt;/a> dokumentiert die Spezifikation für Multi-Source-Preisanbieter, die Grundlage dafür, Yadio als Single Point of Failure zu entfernen. Der Mostro Mobile-Client verdrahtete den passenden Phase-3-Claim-Pfad in &lt;a href="https://github.com/MostroP2P/mobile/pull/596">PR #596&lt;/a>.&lt;/p>
&lt;h3 id="applesauce-v610-lookup-relays-und-nip-34-git-casts">Applesauce v6.1.0: Lookup-Relays und NIP-34-Git-Casts&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/applesauce">Applesauce&lt;/a>, das modulare Nostr-Toolkit, das Coracle, noStrudel und Pablo F7z&amp;rsquo; Stack antreibt, veröffentlichte &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-actions%406.1.0">v6.1.0&lt;/a> über seine Pakete hinweg. Das Release fügt erstklassige &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> Lookup-Relay-Listen-Unterstützung hinzu: kind 10086 Events lassen einen Benutzer signalisieren &amp;ldquo;frag diese Relays, wenn du mich finden willst&amp;rdquo;, und ergänzen &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Outbox-Listen als Discovery-Primitiv. Anwendungen auf Basis von &lt;code>applesauce-core&lt;/code> erhalten ein reaktives &lt;code>User.lookupRelays$&lt;/code> Observable und einen passenden Loader in &lt;code>applesauce-relay&lt;/code>.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> Git-Cast-Factories kommen in &lt;code>applesauce-factory&lt;/code> an und geben jedem auf Applesauce basierenden Client einen Ein-Zeilen-Pfad zum Veröffentlichen von Repo-Ankündigungen (kind 30617), Patches (kind 1617) und Issues (kind 1621). Die reaktiven Eigenschaften &lt;code>User.favoriteGitRepos$&lt;/code>, &lt;code>User.gitAuthors$&lt;/code> und &lt;code>User.graspServers$&lt;/code> lassen Anwendungen die gefolgten Repos, Repo-Maintainer und konfigurierten GRASP-Server eines Benutzers direkt aus demselben User-Objekt auflisten. Das Release behebt auch Pool-Manual-Methoden, die offline Relays in &lt;a href="https://github.com/hzrd149/applesauce/pull/73">PR #73&lt;/a> stillschweigend fallen ließen.&lt;/p>
&lt;h3 id="notedeck-merged-nip-77-negentropy-für-giftwraps-und-thread-backfill">Notedeck merged NIP-77-Negentropy für Giftwraps und Thread-Backfill&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, Damus&amp;rsquo; nativer Multi-Column-Desktop-Client, mergte am 25. Mai &lt;a href="https://github.com/damus-io/notedeck/pull/1459">PR #1459&lt;/a>, um vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-77/">NIP-77&lt;/a> Negentropy-Reconciliation in den geteilten Outbox-Pfad zu verdrahten. Der PR fügt NIP-77 Client- und Relay-Frames, relay-lokale Negentropy-Sessions und einen Outbox-Full-History-Tracker hinzu, der Local-Set-Reconciliation und Missing-Event-Fetches antreibt. Messages-Giftwraps erhalten Negentropy-Reconciliation, sodass Private-Message-Hüllen von den Read-Relays des ausgewählten Kontos wiederhergestellt werden können. Thread-Ansichten sind nicht mehr durch das Live-Subscription-Antwort-Limit gedeckelt. Dave PNS ersetzt seine Dave-lokale Negentropy-Implementierung durch den geteilten Outbox-Pfad und behält dabei sein bestehendes Bounded-History-Verhalten bei.&lt;/p>
&lt;p>Live-Subscriptions und Negentropy verwenden jetzt separate Filter. Ein Flow kann eine kleine Live-Anfrage aufrechterhalten, während er einen breiteren Negentropy-Filter erlässt, um zu reconcilen, was das Relay bereits hat. Der PR aktiviert absichtlich keine breite Negentropy-Synchronisation für Home- oder Profil-Timelines, was die Kaltstart-Kostencharakteristik ändern würde. Testabdeckung wurde für Reconciliation, Giftwrap-Zustellung, Thread-Backfill, Dave-PNS-Restore, Konto-Wechsel, Relay-Retargeting, Fetch-Retries und NIP-77-Relay-Verhalten hinzugefügt.&lt;/p>
&lt;h3 id="vector-v040-vector-core-neufassung-tor-nip-46-full-negentropy-mls-und-eine-mcp-agent-oberfläche">Vector v0.4.0: vector-core-Neufassung, Tor, NIP-46, Full-Negentropy-MLS und eine MCP-Agent-Oberfläche&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, der auf NIP-17-DMs und Marmot-Gruppen basierende plattformübergreifende, datenschutzorientierte Messenger, lieferte &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.0">v0.4.0&lt;/a> als bislang größtes Release aus. Die Schlagzeile ist eine grundlegende Engine-Neufassung: Vectors gesamte Logik lebt jetzt in einem einzigen entkoppelten Crate, &lt;code>vector-core&lt;/code>, geteilt über Desktop, Android und jeden zukünftigen Client, mit über 440 Tests im Kern selbst und der Anwendungshülle um tausende Zeilen abgespeckt. Die Neufassung ist die Grundlage für eine Vector-CLI, Bots und SDKs, die denselben Protokollcode wie die GUI antreiben.&lt;/p>
&lt;p>Die Tor-Integration wird mit One-Click-Traffic-Routing und Bridge-Unterstützung zur Zensurumgehung ausgeliefert. Multi-Account-Unterstützung landet mit einem In-App-Switcher. Remote-Signer-Login kommt über &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> mit Bunker-Pairing per QR oder eingefügtem URI, sodass Benutzer sich anmelden können, ohne jemals ihren nsec preiszugeben. Delete-for-Everyone funktioniert sowohl in &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DMs als auch in &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> Gruppen-Chats, wobei Vector den ephemeren Signing-Key als bewusste Spec-Divergenz behält, die die Release Notes explizit hervorheben: &amp;ldquo;eine Abweichung von den traditionellen NIP-17/Marmot-Specs für verbesserte User-Privacy-Kontrollen.&amp;rdquo; Der behaltene ephemere Key gibt Vector-Clients lokalen Beweis, dass eine Löschung vom ursprünglichen Absender sanktioniert wurde, aber er bedeutet auch, dass jeder andere Vector-berührende Client eine andere Lösch-Verifizierbarkeits-Oberfläche sieht als Baseline-NIP-17/Marmot-Clients.&lt;/p>
&lt;p>MLS-Gruppen-Sync wird jetzt vollständig über &lt;a href="https://nostrcompass.org/de/topics/nip-77/">NIP-77&lt;/a> Negentropy reconciled, dieselbe Richtung, die Notedeck diese Woche für Giftwraps und Threads eingeschlagen hat. Der Blossom-Uploader macht Failover über mehrere Server, lernt die Fähigkeiten jedes Servers und synchronisiert die Serverliste über Geräte. Custom Emoji Packs sind benutzererstellbar, teilbar und kompatibel mit anderen Nostr-Clients. Der SQLite-Speicherverbrauch fiel von etwa 308MB auf 5MB. Das Emoji-Panel öffnet aus Disk-Cache und Discord-Style-Shortcodes (&lt;code>:smile:&lt;/code>) plus Unicode-Frequenz-Ranking bringen den richtigen Glyph zuerst an die Oberfläche.&lt;/p>
&lt;p>Die neuartigste Ergänzung ist &lt;code>vector-agent&lt;/code>, ein MCP-Server (Model Context Protocol), der 21 Tools exponiert, damit KI-Agenten Vector antreiben können: DMs senden, Gruppen verwalten, Dateien hochladen, Profile bearbeiten. Dies ist das zweite Nostr-Projekt diese Woche (neben Shopstr), das eine MCP-Oberfläche ausliefert, und die erste Messenger-Klasse-Anwendung, die das tut. Zusammen mit AgentNoise (letzte Woche behandelt) bewegt sich das Muster von agent-gesteuerten Nostr-Clients von einmaligen Experimenten zu einer bewussten Plattform-Richtung.&lt;/p>
&lt;h3 id="cordn-erscheint-als-koordinatorvermittelter-mls-messenger">Cordn erscheint als koordinatorvermittelter MLS-Messenger&lt;/h3>
&lt;p>&lt;a href="https://cordn.net">Cordn&lt;/a> (Web-Client unter &lt;a href="https://cordn.net">cordn.net&lt;/a>, Repos bei &lt;a href="https://github.com/Cordn-msg/cordn">Cordn-msg/cordn&lt;/a> und &lt;a href="https://github.com/Cordn-msg/cordn-web">Cordn-msg/cordn-web&lt;/a>) ist ein neuer MLS-Messenger, der einen anderen architektonischen Kurs einschlägt als Marmot. Während &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> vollständig relay-basiert ist ohne privilegierten Koordinator (jedes Gruppenmitglied schreibt direkt an Relays und jedes konforme Relay kann den Verkehr tragen), führt Cordn eine Per-Group-Koordinatorrolle ein, implementiert als &lt;a href="https://nostrcompass.org/de/topics/contextvm/">ContextVM&lt;/a>-Service. Der Koordinator ordnet MLS-Commits und übernimmt die Welcome-Verteilung.&lt;/p>
&lt;p>Cordns Argument, formuliert auf seiner &lt;a href="https://cordn.net/why">/why&lt;/a>-Seite, ist, dass MLS, wie es in Produktions-Messengern eingesetzt wird, &amp;ldquo;nicht koordinationsfrei&amp;rdquo; ist und dass &amp;ldquo;schwach geordnete öffentliche Verbreitung&amp;rdquo; die Konvergenz des Gruppenzustands &amp;ldquo;viel schwieriger&amp;rdquo; macht ohne einen starken Koordinationspunkt. Ein koordinatorvermitteltes Design bietet vorhersehbaren Epoch-Fortschritt und einfachere Auflösung gleichzeitiger Commits. Teilnehmer verbinden sich mit dem Koordinator über ephemere Keys, sodass der Koordinator die Group-ID und das Timing von Commit-Verkehr erfährt, aber nicht welche langfristigen pubkeys Mitglieder sind. Jede Partei, die Relays für eine Marmot-Gruppe abfragt, kann bereits dieselbe Oberfläche sehen: Gruppenaktivität nach Group-ID, mit aus dem Event-Eintreffen ableitbarem Timing. Cordn erkennt auch an, dass &amp;ldquo;Availability-Trust bestehen bleibt&amp;rdquo; beim Selbst-Hosting: ein selbstgehosteter Koordinator vermeidet die Zentralisierungsbedenken auf Betreiber-Ebene, führt aber einen Single Point of Failure für die Gruppen-Liveness ein. Marmot vermeidet diesen Single Point, indem die Ordnung MLS selbst überlassen wird (Epochs und Commit-Nachrichten übernehmen die Ordnung innerhalb des Protokolls) und Welcome-Events über &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrap verteilt werden, zum Preis von Admin-seitiger Disziplin: Admins müssen auf die Relay-Bestätigung eines Commits warten, bevor sie das passende Welcome senden, und Clients müssen gleichzeitige Commits reconcilen, wenn die Relay-Zustellung mit einem Zustandsübergang um die Wette läuft.&lt;/p>
&lt;p>Der Kontrast ist es wert, für jedes Team, das einen Private-Messaging-Stack auswählt, herausgearbeitet zu werden. Marmot tauscht etwas Implementierungskomplexität gegen ein relay-agnostisches Deployment ohne privilegierten Akteur im Pfad. Cordn tauscht eine Single-Point-Availability-Abhängigkeit gegen strengere Ordnung und ein einfacheres Betriebsmodell. Beide Projekte bauen auf &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a> auf und verwenden Nostr als Identity- und Transportschicht. Die Meinungsverschiedenheit betrifft, wo die Koordinationskosten liegen. Die cordn-msg-Repos zeigen stetige Commit-Kadenz, wobei der Koordinator-Service über ContextVM implementiert ist und die MLS-Schicht auf &lt;code>ts-mls&lt;/code> aufbaut.&lt;/p>
&lt;h3 id="deepmarks-nip-b0-bookmarks-mit-kurator-monetarisierter-veröffentlichung">deepmarks: NIP-B0-Bookmarks mit kurator-monetarisierter Veröffentlichung&lt;/h3>
&lt;p>&lt;a href="https://github.com/ostermayer/deepmarks-public">deepmarks-public&lt;/a> ist ein Referenz-Client für die vorgeschlagene &lt;a href="https://nostrcompass.org/de/topics/nip-b0/">NIP-B0&lt;/a>-Bookmark-Spec (kind 39701), mit einer Drei-Box-Architektur (Kurator, Indexer, Viewer) und einem Tier-System, finanziert durch direkte Kurator-&lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a>-Zaps. Der Client implementiert NIP-B0, &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>, NIP-57, &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> und Blossom BUD-01 und BUD-04 für Dateispeicherung. Ein 21.000-Sat-Lifetime-Tier wandelt zahlende Leser in wiederkehrende Zap-Empfänger für den Kurator um. Der Kurator veröffentlicht Bookmark-Events, der Indexer reichert sie mit maschinenlesbaren Metadaten an, und der Viewer rendert den Feed; jede Rolle ist ein separater deploybarer Service.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="amber-v610-ga-verschlüsseltes-per-account-backup">Amber v6.1.0 GA: verschlüsseltes Per-Account-Backup&lt;/h3>
&lt;p>&lt;strong>Amber&lt;/strong> wechselte diese Woche von &lt;code>v6.1.0-pre3&lt;/code> zu 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> liefert verschlüsseltes Backup und Restore für die Anwendungs-Berechtigungs-Datenbank, und &lt;a href="https://github.com/greenart7c3/Amber/pull/446">PR #446&lt;/a> teilt das Backup per Account, sodass Benutzer mit mehreren Nostr-Identitäten jeden Satz von App-Grants unabhängig sichern und wiederherstellen können. Die letzte Woche behandelte PSBT-Signing-Arbeit ist im GA-Cut enthalten.&lt;/p>
&lt;h3 id="citrine-per-relay-subscriptions-und-onion-url-leak-prävention">Citrine: Per-Relay-Subscriptions und Onion-URL-Leak-Prävention&lt;/h3>
&lt;p>&lt;strong>Citrine&lt;/strong>, das On-Device-Personal-Relay, das mit Amethyst ausgeliefert wird, brachte diesen Zyklus zwei Fixes. &lt;a href="https://github.com/greenart7c3/Citrine/pull/157">PR #157&lt;/a> wechselt von einer einzigen globalen Subscription zu Per-Relay-getaggten Subscriptions, sodass zwei Quell-Relays, die einen &lt;code>kinds: [1]&lt;/code> Filter teilen, auf der Aggregator-Seite nicht mehr kollidieren. &lt;a href="https://github.com/greenart7c3/Citrine/pull/162">PR #162&lt;/a> filtert Onion-Relay-URLs, wenn der ausgehende Tor-Proxy deaktiviert ist, und verhindert, dass Onion-Adressen auf den Clearnet-Routing-Pfad lecken.&lt;/p>
&lt;h3 id="angor-v0227-und-v0228-relay-zuverlässigkeit-und-boltz-reconnect">Angor v0.2.27 und v0.2.28: Relay-Zuverlässigkeit und Boltz-Reconnect&lt;/h3>
&lt;p>&lt;strong>Angor&lt;/strong> lieferte &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.27">v0.2.27&lt;/a> und &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.28">v0.2.28&lt;/a> aus. &lt;a href="https://github.com/block-core/angor/pull/874">PR #874&lt;/a> behebt einen Relay-Dedup-Bug, bei dem nur ein Relay gleichzeitig verbunden war, eine Regression, die die Zuverlässigkeit für Projekte mit mehreren Relay-Endpunkten stillschweigend verschlechterte. &lt;a href="https://github.com/block-core/angor/pull/876">PR #876&lt;/a> fügt WebSocket-Reconnect-Logik für Boltz-Submarine-Swap-Überwachung hinzu, sodass ein kurzer Verbindungsabbruch einen Swap nicht mehr in unbekanntem Zustand lässt.&lt;/p>
&lt;h3 id="nostrord-v110-nip-57-zaps-und-nip-29-rollenunterscheidung">Nostrord v1.1.0: NIP-57-Zaps und NIP-29-Rollenunterscheidung&lt;/h3>
&lt;p>&lt;strong>Nostrord&lt;/strong> veröffentlichte &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.1.0">v1.1.0&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> Lightning-Zap-Unterstützung für Nachrichten und Profile (&lt;a href="https://github.com/nostrord/nostrord/pull/98">PR #98&lt;/a>) und einer ordentlichen Unterscheidung im Aktivitäts-Feed zwischen &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> Rollen-Änderungen und Member-Adds (&lt;a href="https://github.com/nostrord/nostrord/pull/92">PR #92&lt;/a>), die früher identisch gerendert wurden und verschleierten, wer befördert und wer eingeladen worden war.&lt;/p>
&lt;h3 id="ぬるぬる-v15x-sqlcipher-mls-keystore-und-epoch-catch-up">ぬるぬる v1.5.x: SQLCipher MLS-Keystore und Epoch-Catch-up&lt;/h3>
&lt;p>&lt;strong>ぬるぬる&lt;/strong> (nurunuru, von tami1A84), ein japanischsprachiger Nostr-Client, der MLS-Gruppen-Messaging (kind 443) neben NIP-44, NIP-50 Advanced Search, NIP-55 und NIP-70 implementiert, lieferte diese Woche fünf Releases aus. &lt;a href="https://github.com/tami1A84/null--nostr/pull/184">PR #184&lt;/a> führt SQLCipher-Verschlüsselung für den MLS-Keystore in der Rust-Engine-Schicht ein. &lt;a href="https://github.com/tami1A84/null--nostr/pull/187">PR #187&lt;/a> und &lt;a href="https://github.com/tami1A84/null--nostr/pull/188">PR #188&lt;/a> erweitern SQLCipher auf Android bzw. iOS, mit einem Legacy-Plaintext-Purge-Schritt und CI-Guards. &lt;a href="https://github.com/tami1A84/null--nostr/pull/189">PR #189&lt;/a> und &lt;a href="https://github.com/tami1A84/null--nostr/pull/191">PR #191&lt;/a> fügen MLS-Peer-Epoch-Catch-up mit einem Replay-Cache und einem Recovery-Banner auf beiden Plattformen hinzu, sodass ein Client, der bei Gruppen-Commits ins Hintertreffen gerät, sich erholen kann, ohne die Konversation zu verlieren. ぬるぬる ist ein Marmot-Client auf Basis von &lt;code>mdk-core&lt;/code>, &lt;code>mdk-sqlite-storage&lt;/code> und &lt;code>mdk-storage-traits&lt;/code> aus &lt;code>marmot-protocol/mdk&lt;/code>, sodass die SQLCipher- und Epoch-Catch-up-Arbeit im selben MDK-Runtime landet, das White Noise verwendet.&lt;/p>
&lt;h3 id="bitcredit-core-v0510-nostr-verwurzelter-block-propagations-fix">Bitcredit Core v0.5.10: Nostr-verwurzelter Block-Propagations-Fix&lt;/h3>
&lt;p>&lt;strong>Bitcredit Core&lt;/strong> veröffentlichte &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.10">v0.5.10&lt;/a> mit einem Fix für ein fehlendes Nostr-Node-ID-Feld während der Block-Propagation, das Company-Creation-Flows mit Identity-Upload brach. Bitcredit ist ein E-Bill-Protokoll, das Nostr-Identitäten als Vertrauenswurzel für Company- und Bill-Propagations-Events nutzt.&lt;/p>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;p>&lt;strong>Jumble&lt;/strong> öffnete &lt;a href="https://github.com/CodyTseng/jumble/pull/797">PR #797&lt;/a> für Google-Login über den Pomegranate-Threshold-Signer, was einem Benutzer erlaubt, seinen Nostr-Key auf mehrere Parteien aufzuteilen, sodass kein einzelner Signer das vollständige Geheimnis hält. Dies ist ein bedeutender Schritt jenseits von Bunker- oder nsec-Import-Flows: ein Benutzer kann sein Konto wiederherstellen, auch wenn eine Signer-Partei kompromittiert ist, ohne dass diese Partei jemals den vollständigen Private Key gehalten hätte.&lt;/p>
&lt;p>&lt;strong>Shopstr&lt;/strong> öffnete &lt;a href="https://github.com/shopstr-eng/shopstr/pull/492">PR #492&lt;/a>, der einen MCP-Server (Model Context Protocol) initialisiert, mit &lt;a href="https://github.com/shopstr-eng/shopstr/pull/494">PR #494&lt;/a>, der die unterstützende Infrastruktur baut (Relay-Fetch, Parser, Validation, Errors, Dedup, Audit-Logging) und &lt;a href="https://github.com/shopstr-eng/shopstr/pull/472">PR #472&lt;/a>, der eine Relay-Allowlist für den MCP-Relay-Manager hinzufügt. Das macht Shopstr zum ersten Nostr-Marktplatz, der sich als MCP-Server exponiert, sodass KI-Agenten NIP-99-Listings als strukturiertes Tool durchsuchen und mit ihnen agieren können.&lt;/p>
&lt;p>&lt;strong>Keydex&lt;/strong>, der Shamir-Secret-Sharing-Vault, öffnete eine substantielle Migration in &lt;a href="https://github.com/mplorentz/keydex/pull/226">PR #226&lt;/a>, die die benutzerdefinierten kinds 1337-1345 in den Bereich 713-721 verschiebt, neben &lt;a href="https://github.com/mplorentz/keydex/pull/239">PR #239&lt;/a>, der AEAD über Shamir-Shares hinzufügt, und &lt;a href="https://github.com/mplorentz/keydex/pull/234">PR #234&lt;/a>, der zu GF256-Arithmetik migriert. Die Kind-Range-Migration richtet Keydex mit der Art aus, wie das NIPs-Repo benutzerdefinierte kinds alloziert, und rückt weg von einem selbst beanspruchten Bereich.&lt;/p>
&lt;p>&lt;strong>Mill&lt;/strong> (&lt;a href="https://github.com/0ceanSlim/nostr-mill">nostr-mill&lt;/a>) ist eine neue Drop-in-Nostr-Signer-UI von &lt;a href="https://github.com/0ceanSlim">OceanSlim&lt;/a> (Maintainer des &lt;a href="https://github.com/0ceanSlim/grain">grain&lt;/a> Go-Relays), ausgeliefert als Single-Script-Tag Web Component auf &lt;a href="https://www.npmjs.com/package/nostr-mill">npm&lt;/a> und &lt;a href="https://cdn.jsdelivr.net/npm/nostr-mill/dist/mill.umd.js">jsDelivr&lt;/a>. Ein &lt;code>&amp;lt;script&amp;gt;&lt;/code>-Tag gibt einer Web-App alle sechs gängigen Signer-Einstiegspunkte hinter einer einheitlichen UI: &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> Browser-Extension, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Bunker (URL-Einfügen oder QR-Pairing mit benutzerspezifizierbaren Relays, ungewöhnlich unter In-Page-Bunker-Integrationen), &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Amber über Android-Intents, verschlüsselter nsec, gespeichert in &lt;code>sessionStorage&lt;/code> per AES-256-GCM mit PBKDF2, Read-Only &lt;code>npub&lt;/code> und In-Browser-Keypair-Generierung. Die Komponente ist über 29 CSS Custom Properties themebar, die auf das Shadow DOM beschränkt sind, und exponiert eine kleine SemVer-getrackte API (&lt;code>MILL.open&lt;/code>, &lt;code>mill:connected&lt;/code> / &lt;code>mill:disconnected&lt;/code> Events, benannte Theme-Exporte). Die Motivation des Maintainers ist, dass Bunker-Login-Flows in Nostr eine Web-App nach der anderen neu implementiert wurden. Das Konsolidieren auf einer geteilten Komponente lässt Clients auf die Frage konvergieren, wie sich Signer-UX verhalten soll, und macht optionale Flows (wie Delegated-Key-Login durch Threshold-Signer, was Wisps oben behandelten Pomegranate-basierten Google-Login spiegelt) zu einer wiederverwendbaren Oberfläche, die jede App einbinden kann. Mill ist bei npm v1.5.0, Single-Maintainer, Alpha-Stadium, mit grain als geplantem ersten Integrator.&lt;/p>
&lt;p>&lt;strong>moStard&lt;/strong>, ein Monero-first-Fork von &lt;a href="https://github.com/hzrd149/nostrudel">noStrudel&lt;/a> von &lt;a href="https://github.com/roguehashrate">roguehashrate&lt;/a>, erreichte diese Woche &lt;a href="https://github.com/roguehashrate/moStard/releases">v1.0.1&lt;/a> mit einem abgespeckten Feature-Satz und einer Monero-themed Identität, geschichtet auf demselben Applesauce + Worker-Relay-Stack. Diese Woche landete Rendering für Zapstores kind 32267 Software-Application-Events (Embed-Karten in der Timeline mit App-Name, Icon, Screenshots, Plattform, Lizenz und einem Launch-Link zu &lt;code>zapstore.dev/apps/&amp;lt;d-tag&amp;gt;&lt;/code>), Umfragen per kind 20 und kind 21, NIP-A3 Payment-Targets-basiertes Tipping mit Per-Methode-QR-Codes, Markdown-Rendering in Notes, GIF-Picker-Unterstützung für externe GIF-Keyboards und Amber-Signer-Pairing-Fixes. Der Monero-Rahmen erstreckt sich auf den Trinkgeld-Flow: NIP-A3 &lt;code>payto&lt;/code>-Einträge für &lt;code>monero&lt;/code>-Adressen erhalten erstklassige Buttons in derselben UI neben &lt;code>lightning&lt;/code> und &lt;code>bitcoin&lt;/code>. Der Client ist Single-Maintainer und Alpha-Stadium, aber die Arbeit vom 27. Mai zeigt einen Builder, der NIP-A3 aus den Protokoll-Spec-Ankündigungen dieser Woche innerhalb von Tagen direkt in einen ausliefernden Fork zieht.&lt;/p>
&lt;h2 id="nip-updates-und-protokoll-spec-arbeit">NIP-Updates und Protokoll-Spec-Arbeit&lt;/h2>
&lt;h3 id="kalender-nip-stack-vier-vorschläge-vom-formstr-team">Kalender-NIP-Stack: vier Vorschläge vom Formstr-Team&lt;/h3>
&lt;p>Ix2 (&lt;a href="https://github.com/geralt-debugs">@geralt-debugs&lt;/a>) öffnete am 17. Mai vier koordinierte NIP-PRs, die alle auf die &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a>-Implementierung verweisen, die bereits vom selben Autor ausgeliefert wird. &lt;a href="https://github.com/nostr-protocol/nips/pull/2350">PR #2350&lt;/a> schlägt kind 84 als generalisiertes &amp;ldquo;Participant-Self-Removal&amp;rdquo;-Event vor: ein getaggter Teilnehmer bei jedem Event kann ein kind 84 veröffentlichen, das über &lt;code>e&lt;/code>, &lt;code>a&lt;/code> und &lt;code>k&lt;/code> Tags auf das Original verweist, um Opt-out zu signalisieren. Relays müssen validieren, dass der Signer von kind 84 in einem &lt;code>p&lt;/code> Tag des referenzierten Events auftaucht, bevor die Entfernung geehrt wird, und eine kind 5 Löschung hat immer Vorrang. Der PR generalisiert ein Muster, das zuvor nur im NIP-52-Kalender-Kontext beschrieben wurde, sodass kind 84 zum Standardweg für Nicht-Autoren wird, sich aus jedem Teilnehmer-Event zurückzuziehen.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> ist das Fundament des Kalender-Stacks: NIP-52E für private Kalender-Events (kinds 32678 zeitbasiert, 32681 Tages-Event, 32123 private Kalender-Liste, 31926 Busy-Liste, 1052 Gift Wrap, 52 Rumor) und NIP-52R für wiederkehrende Events. Im architektonischen Kern liegt das View-Key-Muster: ein zufällig erzeugtes Keypair verschlüsselt Event-Inhalte mit NIP-44, und die geheime Hälfte (bech32-kodiert als &lt;code>nsec&lt;/code>) wird per Gift Wrap an jeden Teilnehmer geliefert. Der Signierer hält nur den öffentlichen &lt;code>d&lt;/code> Tag; alles andere lebt in verschlüsseltem &lt;code>content&lt;/code>. Die Entkopplung der Inhaltsverschlüsselung von der Identität auf diese Weise bedeutet, dass das Bearbeiten eines Events kein Re-Keying der Empfänger erfordert. NIP-52R definiert zwei optionale Tags auf den bestehenden kinds 31923 und 31922 zur Deklaration von Wiederholung mit reinen RFC-5545-RRULE-Werten, wobei &lt;code>D&lt;/code>-Tages-Index optional wird, wenn RRULE vorhanden ist. Forward Secrecy fehlt explizit: ein geleakter View-Key offenbart alle vergangenen und zukünftigen Versionen des Events unter demselben &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> baut auf NIP-52E mit einer dezentralen Terminplanungs-Spec auf, die die PR-Beschreibung &amp;ldquo;eine Drop-in-Alternative zu Calendly/Cal.com ohne zentralen Vermittler&amp;rdquo; nennt. Kind 31927 kündigt eine Scheduling-Seite mit verschlüsselten Verfügbarkeitsfenstern an; kind 32680 ist ein host-seitiges selbstverschlüsseltes Recovery-Record für den View-Key; kinds 1057 und 1058 sind die gift-wrapped Booking-Anfrage und -Antwort. Der clevere Mechanismus: der Buchende generiert sowohl den &lt;code>d&lt;/code> Tag als auch den View-Key für das zukünftige private Event, bevor er die Anfrage sendet, sodass der Buchende den Termin mit dem korrekten Key sofort in seinen eigenen Kalender aufnehmen kann und der Host nie einen Key zurückschicken muss. Booking-Antworten tragen einen unverschlüsselten &lt;code>status&lt;/code> Tag auf dem äußeren Wrap, sodass Relays ohne Entschlüsselung filtern können.&lt;/p>
&lt;p>Eine Referenzimplementierung ist bereits live unter &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a> und als Calendar-Android-App auf Zapstore. &lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> schließt &lt;a href="https://github.com/nostr-protocol/nips/pull/2027">PR #2027&lt;/a> zu seinen Gunsten und konsolidiert einen früheren Private-Calendar-Vorschlag, der seit Anfang des Jahres offen war.&lt;/p>
&lt;h3 id="payment-targets-und-silent-payments">Payment Targets und Silent Payments&lt;/h3>
&lt;p>Zwei weitere NIP-Vorschläge zirkulierten diese Woche in &lt;code>kind:30023&lt;/code> Long-Form-Dokumenten.&lt;/p>
&lt;p>Ein &lt;strong>Payment-Targets&lt;/strong>-Vorschlag (NIP-A3 / payto) definiert ein replaceable kind 10133 Event, das einen oder mehrere &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 trägt, die auf RFC 8905 &lt;code>payto:&lt;/code> URIs abbilden. Unterstützte Typen umfassen bitcoin, lightning, ethereum, monero, nano, cashme, revolut und venmo. Die Absicht ist es, ein Multi-Rail-Trinkgeldglas zu standardisieren, das lud16-basierte NIP-57-Zaps ergänzt (nicht ersetzt). Amethyst v1.11.0 ist der erste Implementierer; gemergte PRs &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2953">#2953&lt;/a> und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3009">#3009&lt;/a> liefern die Subscription- und Observation-Oberfläche aus, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/3011">PR #3011&lt;/a> verdrahtet die UI für &lt;code>PaymentTargetsEvent&lt;/code>.&lt;/p>
&lt;p>Zwei konkurrierende Silent-Payments-Vorschläge kamen von verschiedenen Autoren. Die erste Variante leitet BIP-352 Silent-Payment-Scan- und -Spend-Keys aus &lt;code>nsec&lt;/code> über öffentliche additive Tweaks ab, sodass jeder Absender eine &lt;code>sp1q...&lt;/code>-Adresse aus einem &lt;code>npub&lt;/code> ohne Setup konstruieren kann. Die Autorenwarnung ist in der Spec explizit: &amp;ldquo;bscan und bspend MÜSSEN mit genau derselben Sorgfalt wie nsec behandelt werden&amp;rdquo;, weil der Scan-Key den nsec offenbart. Eine zweite Variante nimmt den umgekehrten Ansatz und fügt ein &lt;code>sp_address&lt;/code>-Feld zu kind 0 Profilmetadaten hinzu, das eine standardmäßige BIP-352 Silent-Payment-Adresse enthält, deren Keys unabhängig von der Nostr-Identität gehalten werden. Variante zwei ist strukturell sicherer. Beide Vorschläge zogen einen durchdachten Review-Thread an; erskingardner (Marmot-Lead) postete einen detaillierten &lt;a href="https://gist.github.com/trbouma/77648ebe1005b181b67d1c4b42c7f31d?permalink_comment_id=6167489#gistcomment-6167489">Kommentar&lt;/a> auf dem trbouma-Gist, der den Vorschlag verfolgt. Sein zentrales Anliegen ist, dass Variante 1 den Scan-Private-Key aus &lt;code>nsec&lt;/code> plus einem öffentlich berechenbaren Tweak ableitet, was bedeutet, dass jeder, der den Scan-Key hält (einschließlich eines Third-Party-Scanning-Service, an den der Benutzer in der Praxis delegieren muss), den vollständigen &lt;code>nsec&lt;/code> durch Subtraktion dieses Tweaks wiederherstellen kann. Derselbe Key, der einem Remote-Service erlaubt, eingehende Zahlungen für dich zu scannen, erlaubt diesem Service auch, deine Identität und alle daraus abgeleiteten Gelder zu stehlen.&lt;/p>
&lt;p>Auf der NIP-34 Git-über-Nostr-Seite veröffentlichte hzrd149 2 Patches auf &lt;a href="https://gitworkshop.dev/npub1zafcms4xya5ap9zr7xxr0jlrtrattwlesytn2s42030lzu0dwlzqpd26k5/relay.ngit.dev/schemata">schemata&lt;/a>. &lt;a href="https://gitworkshop.dev/">gitworkshop.dev&lt;/a> selbst zog zwei Issue-Reports an: einer flaggte, dass Login-Sitzungen bei Seiten-Refresh verloren gehen, wenn ein NIP-46 Remote-Signer verwendet wird, der andere bat um deutliches Link-Styling in README-Vorschauen.&lt;/p>
&lt;h2 id="sechs-jahre-nostr-maies">Sechs Jahre Nostr-Maies&lt;/h2>
&lt;p>Der letzte Newsletter des Mai 2026 tritt einen Schritt zurück von den Releases der Woche, um den Monat Mai durch Nostrs Geschichte zu begleiten. Jedes Jahr hatte einen anderen Schwerpunkt: 2021 war ein einzelner Commit, 2022 war die Formation des NIPs-Repos selbst, 2023 war die Protokoll-Spec-Explosion, 2024 war der Konsolidierungszyklus, 2025 war das Jahr, in dem Negentropy gemerged wurde und Damus&amp;rsquo; Notedeck zu Beta aufstieg, und 2026 ist der Monat, der in dieser und den drei vorhergehenden Ausgaben behandelt wird.&lt;/p>
&lt;h3 id="mai-2021">Mai 2021&lt;/h3>
&lt;p>Nostr war sechs Monate alt. Der einzige Nostr-Code lebte in &lt;a href="https://github.com/fiatjaf/nostr">fiatjaf/nostr&lt;/a>, und der gesamte Monat brachte genau einen Commit hervor, aber dieser Commit wurde zu einem der am meisten genutzten Teile des Protokolls. Am 22. Mai &lt;a href="https://github.com/fiatjaf/nostr/commit/9ee3a02">widmete fiatjaf NIP-02 um&lt;/a> als das Contact-List-NIP. Die Commit-Nachricht lautet: &amp;ldquo;repurpose NIP-02 and add NIP authorship&amp;rdquo;, und die explizite Anerkennung geht an &lt;a href="https://github.com/nostr-protocol/nostr/pull/16">PR #16&lt;/a> von arcbtc (Ben Arc von LNbits), geöffnet am 9. Februar und am Tag vor fiatjafs Aufnahme der Idee in NIP-02 geschlossen. arcbtcs Pitch war klein: ein kind zum &amp;ldquo;Senden der Follower-Liste an Relays&amp;rdquo;, das &amp;ldquo;nützlich zum Wiederherstellen von Konten und zum Empfehlen von Public Keys zum Folgen&amp;rdquo; sein würde. fiatjaf verallgemeinerte es in ein einzelnes &lt;code>kind:3&lt;/code> Event, dessen Tags gleichzeitig drei Zwecken dienen. Sie sind eine Follow-Liste (der soziale Graph), ein Petname-Store (lokale Spitznamen für Freunde) und eine Relay-Empfehlungsquelle (welche Relays ein Follow nutzt). Dasselbe Event, replaceable pro Autor, wurde zur kanonischen Antwort auf &amp;ldquo;wem folgt diese Person&amp;rdquo;, &amp;ldquo;wie nennt sie sie&amp;rdquo; und &amp;ldquo;wo liest sie&amp;rdquo;. Jeder in den nächsten fünf Jahren gebaute Client liest &lt;code>kind:3&lt;/code>. Die Konvention, die im selben Commit hinzugefügt wurde, dass jedes NIP seinen Autor benennt, ist der Grund, warum jede Spec heute Bylines hat.&lt;/p>
&lt;h3 id="mai-2022">Mai 2022&lt;/h3>
&lt;p>Der Monat, in dem das NIPs-Repo zu einem Community-Projekt wurde. Am 1. Mai &lt;a href="https://github.com/nostr-protocol/nips/commit/f25c7e6">migrierte fiatjaf die Specs&lt;/a> von &lt;code>fiatjaf/nostr&lt;/code> in ein dediziertes &lt;a href="https://github.com/nostr-protocol/nips">&lt;code>nostr-protocol/nips&lt;/code>&lt;/a> Repo und fügte am 2. Mai &lt;a href="https://github.com/nostr-protocol/nips/commit/c053670">formale Akzeptanzkriterien&lt;/a> hinzu. Zwei Tage später öffnete Robert C. Martin (Uncle Bob) &lt;a href="https://github.com/nostr-protocol/nips/pull/1">PR #1&lt;/a>, den ersten externen Pull Request, der Threading-Konventionen für &lt;code>e&lt;/code> und &lt;code>p&lt;/code> Tags vorschlug. Der PR war ursprünglich als NIP-13 nummeriert, dann &lt;a href="https://github.com/nostr-protocol/nips/commit/bd4a81a">zu NIP-10 umbenannt&lt;/a>, um Platz für Proof-of-Work zu schaffen. Drei der ersten sechs NIPs sind von Uncle Bob: NIP-10 (Threading-Marker), NIP-14 (&lt;a href="https://github.com/nostr-protocol/nips/commit/ebacbcc">der Subject-Tag&lt;/a>) und der Commit vom 21. Mai, der &lt;a href="https://github.com/nostr-protocol/nips/commit/e22ea1a">&lt;code>kind:1&lt;/code> als das kanonische Short-Text-Note-kind&lt;/a> festlegte. Am 5. Mai machte William Casarin seine ersten NIP-Commits: &lt;a href="https://github.com/nostr-protocol/nips/commit/d7a4aad">NIP-13 Proof of Work&lt;/a> und das &lt;a href="https://github.com/nostr-protocol/nips/commit/ad1eb96">kind:2 Recommend-Relay-Event&lt;/a>. Am nächsten Tag veröffentlichte fiatjaf &lt;a href="https://github.com/nostr-protocol/nips/commit/37eb53e">NIP-07 &lt;code>window.nostr&lt;/code>&lt;/a>, zwanzig Zeilen Markdown, die die noch heute genutzte Browser-Extension-Signer-Schnittstelle definierten. Die &lt;a href="https://github.com/nostr-protocol/nips/commit/57b86d2">CORS-Warnung&lt;/a> von NIP-05 von David A. Harding und NIP-01s &lt;a href="https://github.com/nostr-protocol/nips/commit/a4aea53">&lt;code>filter.limit&lt;/code>&lt;/a> landeten in derselben Woche. nostr-tools lieferte seinen &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/dc489bf">ersten browser-importierbaren ESM-Build&lt;/a> am 8. Mai aus. Semisol entwarf &lt;a href="https://github.com/nostr-protocol/nips/commit/a787093">NIP-15 (End Of Stored Events)&lt;/a> und &lt;a href="https://github.com/nostr-protocol/nips/commit/62fde6c">NIP-16 (Event-kind-Ranges)&lt;/a> zum Monatsende, die Dokumente, die immer noch die Relay-Sync-Semantik und die Regular-vs-Replaceable-vs-Ephemeral-Klassifikation regeln.&lt;/p>
&lt;h3 id="mai-2023">Mai 2023&lt;/h3>
&lt;p>Die Protokoll-Spec-Explosion. In diesem Monat wurden vierundsechzig NIP-PRs eröffnet, mit mehreren der Vorschläge, die Nostrs Oberfläche für die nächsten zwei Jahre definierten, alle in 31 Tagen landend, und die größte Finanzierungsankündigung, die Nostr je erhalten hatte, landete am 4. Mai mit dem OpenSats &lt;a href="https://opensats.org/blog/opensats-receives-additional-funding-of-dollar10m-from-startsmall">10-Millionen-Dollar-Grant von Jack Dorseys #startsmall&lt;/a>, dem Geld, das jede Nostr-Grant-Welle seither trug. NIP-47 (Nostr Wallet Connect) wurde &lt;a href="https://github.com/nostr-protocol/nips/pull/406">am 2. Mai gemerged&lt;/a> und brachte Albys Wallet-Connect-Spec in das Haupt-Protokoll. Zwei Tage später &lt;a href="https://github.com/nostr-protocol/nips/pull/498">schlug Vitor Pamplona NIP-53 Live Activities vor&lt;/a> mit &lt;code>kind:30311&lt;/code> Räumen und &lt;code>kind:1311&lt;/code> Chat-Nachrichten, dem Fundament für jede darauf folgende Nostr-Livestreaming-Oberfläche. Pablo Fernandez öffnete &lt;a href="https://github.com/nostr-protocol/nips/pull/501">NIP-84 Highlights&lt;/a> am 5. Mai und &lt;a href="https://github.com/nostr-protocol/nips/pull/530">NIP-89 Recommended Application Handlers&lt;/a> am 14. Mai. v0l (Kieran Babich, Snort-Autor) schlug &lt;a href="https://github.com/nostr-protocol/nips/commit/29f26e7">NIP-98 HTTP Auth&lt;/a> am 8. Mai vor, das Authentifizierungs-Primitiv, auf das sich später sowohl NIP-96 als auch Blossom stützten. Jonathan Staab schlug &lt;a href="https://github.com/nostr-protocol/nips/pull/532">NIP-32 Labels&lt;/a> am 15. Mai vor, und &lt;a href="https://github.com/nostr-protocol/nips/pull/484">NIP-30 Custom Emoji&lt;/a> wurde am selben Tag gemerged. Arthur Franca schlug &lt;a href="https://github.com/nostr-protocol/nips/pull/547">NIP-96 HTTP File Storage Integration&lt;/a> am 21. Mai vor. Zwei Tage später fügte Vitor &lt;a href="https://github.com/nostr-protocol/nips/commit/e4937be">Zap-Splits zu NIP-57&lt;/a> hinzu, und verbiricha fügte &lt;a href="https://github.com/nostr-protocol/nips/commit/0495931">&lt;code>kind:30024&lt;/code> Long-Form-Drafts zu NIP-23&lt;/a> hinzu, die Spec, die zum Fundament moderner Nostr-Long-Form-Authoring-Workflows in Habla, YakiHonne und Highlighter wurde. fiatjaf schlug &lt;a href="https://github.com/nostr-protocol/nips/pull/566">NIP-29 Simple Groups&lt;/a> am 28. Mai vor, die erste relay-verwaltete Gruppen-Spec, die &lt;code>kind:9000&lt;/code> bis &lt;code>kind:9020&lt;/code> Moderations-Events abdeckte. Der Monat schloss mit Paul Miller, der &lt;a href="https://github.com/nostr-protocol/nips/pull/574">die NIP-44-Konversation&lt;/a> am 31. Mai eröffnete, ein XChaCha20-basiertes verschlüsseltes DM-Design, das NIP-04 ersetzen sollte. Die Client-Seite bewegte sich ebenso schnell: Damus lieferte NWC, Zap Pool und Pending Zaps über den Zeitraum &lt;a href="https://github.com/damus-io/damus/commits/master/?since=2023-05-10&amp;amp;until=2023-05-15">10. bis 15. Mai&lt;/a>; Snort launchte &lt;a href="https://github.com/v0l/snort/commit/6cbc3ae">Zap Pool&lt;/a> und &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> lieferte im Laufe des Monats etwa dreißig versionierte Releases aus, von v0.40.1 am 1. Mai bis zum v0.55.x-Bereich zum Monatsende, mit Zap-Splits in v0.45.0 und NIP-32-Labels in v0.46.0; das &lt;a href="https://github.com/PrimalHQ/primal-android-app/commit/6654cf9">Primal-Android-Repo&lt;/a> wurde am 16. Mai erstellt; &lt;a href="https://github.com/rust-nostr/nostr/releases/tag/v0.22.0">rust-nostr v0.22.0&lt;/a> fügte NIP-47 und NIP-58 hinzu. Am 1. Mai &lt;a href="https://github.com/hoytech/strfry/commit/de475c5">lieferte strfry seine Negentropy-Integration&lt;/a> aus, die erste Relay-Implementierung von Doug Hoytes Set-Reconciliation-Protokoll, das später zu NIP-77 werden sollte. Der Monat schloss mit &lt;a href="https://www.forbes.com/sites/digital-assets/2023/05/30/bitcoin-social-network-nostr-creator-fiatjaf-/">Forbes, das am 30. Mai ein Long-Form-Portrait von fiatjaf veröffentlichte&lt;/a>, einer der ersten Mainstream-Presse-Deep-Dives über Nostrs anonymen Gründer.&lt;/p>
&lt;h3 id="mai-2024">Mai 2024&lt;/h3>
&lt;p>Der Konsolidierungszyklus. Weniger auffällige Vorschläge, mehr Ausliefern. &lt;a href="https://github.com/nostr-protocol/nips/pull/787">NIP-54 Dezentrale Wikis&lt;/a> wurde am 2. Mai gemerged mit &lt;code>kind:30818&lt;/code> Artikeln und case-normalisierten &lt;code>d&lt;/code> Tags. Drei Tage später wurde &lt;a href="https://github.com/nostr-protocol/nips/pull/1213">NIP-56&lt;/a> erweitert, sodass Missbrauchsberichte digitale Bedrohungen (Malware, Phishing) neben Content-Only-Kategorien flaggen konnten. Am 6. Mai wurden &lt;a href="https://github.com/nostr-protocol/nips/pull/1221">NIP-25 Reaktionen vereinfacht&lt;/a>, um den gesamten Reply-Thread nicht mehr als &lt;code>e&lt;/code>-Tags einzuschließen. Arthur Franca &lt;a href="https://github.com/nostr-protocol/nips/pull/1233">schlug NIP-22 Comment vor&lt;/a> am 12. Mai und führte &lt;code>kind:1111&lt;/code> ein, sodass Antworten auf Nicht-&lt;code>kind:1&lt;/code>-Events (Artikel, Dateien, Produkte) eine strukturierte Möglichkeit zum Threading erhalten. Am 19. Mai &lt;a href="https://github.com/nostr-protocol/nips/pull/1248">überholte fiatjaf NIP-46&lt;/a>, um NIP-04 vollständig aufzugeben und den gesamten Bunker-Verkehr auf NIP-44-Verschlüsselung umzustellen, der Deprecation-Zug, der jede Bunker-Implementierung seither geprägt hat. Am 20. Mai wurde &lt;a href="https://github.com/nostr-protocol/nips/pull/923">NIP-71 Video Events&lt;/a> mit &lt;code>kind:21&lt;/code> und &lt;code>kind:22&lt;/code> gemerged, und &lt;a href="https://github.com/nostr-protocol/nips/pull/1171">NIP-10&lt;/a> fügte das optionale pubkey-Argument bei &lt;code>e&lt;/code> Tags hinzu, sodass Clients Thread-Autoren auflösen können, ohne zuerst das referenzierte Event zu holen. Kieran Walshs &lt;a href="https://github.com/nostr-protocol/nips/pull/1175">NIP-35 Torrents&lt;/a> wurde am 22. Mai gemerged, und am 24. Mai referenzierte die NIPs-README erstmals &lt;a href="https://github.com/nostr-protocol/nips/pull/1251">CIP-01&lt;/a> als Off-Repo-Vorschlag, was den Start des &amp;ldquo;NIPs als eines von mehreren Vorschlags-Venues&amp;rdquo;-Musters signalisierte. Am 25. Mai entfernte ein &lt;a href="https://github.com/nostr-protocol/nips/pull/1254">Cleanup-PR&lt;/a> den &lt;code>aes-256-gcm&lt;/code>-Tag aus NIP-71, bevor Downstream-Implementierungen ihn einfroren. NIP-96 fügte &lt;a href="https://github.com/nostr-protocol/nips/pull/1262">&lt;code>list files&lt;/code> hinzu und verwarf die Transform-Anforderung&lt;/a> am 27. Mai. Am 28. Mai schlug Jonathan Staab vor, &lt;a href="https://github.com/nostr-protocol/nips/pull/1264">die NIP-Akzeptanzhürde anzuheben&lt;/a>, sodass mindestens zwei interoperierende Implementierungen erforderlich sind, bevor ein Entwurf aufsteigen kann. Client-Seite: Damus taggte &lt;a href="https://github.com/damus-io/damus/releases/tag/v1.7.2">v1.7.2&lt;/a> und &lt;a href="https://github.com/damus-io/damus/releases/tag/v1.8">v1.8&lt;/a> plus ein &lt;a href="https://github.com/damus-io/damus/commits/v1.9">v1.9 mit vollem NIP-10 Marker-Handling&lt;/a> am 9.–10. Mai, landete &lt;a href="https://github.com/damus-io/damus/commit/8feb228">NIP-98-Authentifizierung für Push-Benachrichtigungen&lt;/a> und lieferte volle &lt;a href="https://github.com/damus-io/damus/commit/52aefc8">NIP-10 Marker-Unterstützung&lt;/a> aus. Amethyst machte &lt;a href="https://github.com/vitorpamplona/amethyst/commit/1f45a63">NIP-17 zum DM-Standard-Modus&lt;/a> am 14. Mai, baute &lt;a href="https://github.com/vitorpamplona/amethyst/commit/aa97c7e">NIP-65 Outbox-Model-Relay-Management&lt;/a> aus, fügte &lt;a href="https://github.com/vitorpamplona/amethyst/commit/ff94f45">NIP-96 Server-Auswahl&lt;/a> hinzu und lieferte &lt;a href="https://github.com/vitorpamplona/amethyst/commit/04c4490">NIP-06 BIP-32/BIP-39 Key-Ableitung&lt;/a> aus. Primal Android &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/0.99.2">0.99.2&lt;/a> am 10. Mai fügte User-Tagging und External-Wallet-NWC hinzu, gefolgt von &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/0.99.4">0.99.4&lt;/a>. Pablo Fernandez landete einen &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> über den Zeitraum 24.–31. Mai. Snort fügte &lt;a href="https://github.com/v0l/snort/commit/5763d91">NIP-96 Server-Auswahl&lt;/a> hinzu, und cashu-ts &lt;a href="https://github.com/cashubtc/cashu-ts/commit/3e20f45">trennte seine Crypto-Primitive&lt;/a> in &lt;code>@cashu/crypto&lt;/code> ab.&lt;/p>
&lt;h3 id="mai-2025">Mai 2025&lt;/h3>
&lt;p>Der Monat, in dem &lt;a href="https://github.com/nostr-protocol/nips/pull/1494">NIP-77 (Negentropy Syncing)&lt;/a> am 27. Mai gemerged wurde, fiatjafs und Doug Hoytes Spec für das Wire-Protokoll, das Brute-Force-REQ-Filter durch logarithmisch aufwändige Differenzberechnung ersetzt. Dies war dieselbe Negentropy, die strfry zwei Jahre zuvor als relay-seitiges Feature ausgeliefert hatte, jetzt als Client-Relay-Protokoll formalisiert, und &lt;a href="https://github.com/nostr-protocol/nips/pull/1939">der README-Eintrag&lt;/a> landete am selben Tag. Die Woche davor definierte &lt;a href="https://github.com/nostr-protocol/nips/pull/1897">NIP-23 Long-Form&lt;/a>, wie sich HTML-Dokumente durch einen &lt;code>&amp;lt;link&amp;gt;&lt;/code> Tag am 24. Mai mit Nostr-Entitäten assoziieren, das kanonische Web-Copy-Primitiv. NIP-25 fügte &lt;a href="https://github.com/nostr-protocol/nips/pull/1702">Reaction-Target-Relay-Hints&lt;/a> am 22. Mai hinzu und &lt;a href="https://github.com/nostr-protocol/nips/pull/1486">verwarf die Emoji-zu-Like/Dislike-Empfehlung&lt;/a>, womit Emojis als eigenständige semantische Einheiten behandelt wurden. NIP-52 wurde am 14. Mai &lt;a href="https://github.com/nostr-protocol/nips/pull/1922">vereinfacht&lt;/a>, um sich auf die kinds zu konzentrieren, die Clients in der Produktion auslieferten, der Zuschnitt, der die Formstr-Kalender-Erweiterungen ein Jahr später einfacher aufpfropfbar machte. Am 9. Mai betraten &lt;a href="https://github.com/nostr-protocol/nips/commit/873afc5fb823f58c3b7f29c5090f9c56172623f2">Follow Packs&lt;/a> (kind 39089 kuratierte Follow-Listen) und &lt;a href="https://github.com/nostr-protocol/nips/pull/1848">Favorite Relays&lt;/a> (eine neue replaceable-Liste unter NIP-51) am selben Tag die README. Der Marmot-Protokoll-Bogen hatte noch nicht begonnen: nur das &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> Repo existierte (erster Commit am 9. September 2024), und der Mai 2025 war seine Svelte+Tauri-Prototyp-Phase, wobei der &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/commit/b8e6754">Commit vom 14. Mai&lt;/a> Tauri-spezifischen Code entfernte, als das Projekt auf seine aktuelle Architektur schwenkte. Der dedizierte MDK-Rust-Core (12. September 2025), das Marmot-Spec-Repo (19. September 2025) und die Flutter-UI (2. Dezember 2025) kamen alle später im Jahr. Auf Client-Seite lieferte Damus&amp;rsquo; &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.4.0">Notedeck v0.4.0&lt;/a> am 5. Mai als erstes Beta aus, aufgestiegen aus dem Alpha, mit Volltextsuche, dem Dave AI-Assistenten, Zaps über NWC, GIFs, User-Tagging und Mute-Listen. Zwei Tage später überschritt hodlbods &lt;a href="https://github.com/coracle-social/flotilla/releases/tag/1.0.0">Flotilla 1.0.0&lt;/a> die Public-Launch-Grenze als NIP-29-basierter Gruppen-Chat-Client, neben &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.12">Coracle 0.6.12&lt;/a>, dem ersten von sechs Coracle-Releases, die bis zu &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.17">0.6.17 am 14. Mai&lt;/a> liefen. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v3.4.0">Amber v3.4.0&lt;/a> am 12. Mai wechselte von deprecateten Android Autofill- und ClipboardManager-APIs weg und migrierte von verschlüsselten Shared Preferences zu DataStore. Primal Android &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.2.20">2.2.20&lt;/a> am 20. Mai fügte den Redeem-Code-Flow für Primal Premium und eine überarbeitete Bildgalerie hinzu. &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.14.0">nak v0.14.0&lt;/a> am 21. Mai veröffentlichte ein Minor der kanonischen CLI in derselben Woche wie die Coracle-, Flotilla- und Notedeck-Releases. OpenSats erhielt seine bislang größte Nicht-Bitcoin-Treasury-Spende, als &lt;a href="https://opensats.org/blog/opensats-receives-two-million-donation-from-the-reynolds-foundation">die Reynolds Foundation 2 Millionen Dollar spendete&lt;/a> am 22. Mai.&lt;/p>
&lt;h3 id="mai-2026">Mai 2026&lt;/h3>
&lt;p>Der Monat, der in &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/">Newsletter #21&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/">#22&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-21-newsletter/">#23&lt;/a> und dieser Ausgabe behandelt wird. Der bestimmende Faden ist MLS-auf-Nostr, das Multi-Client-Produktion erreicht: &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.8.0">MDK 0.8.0&lt;/a> lieferte MIP-05 Leaf-Index-Primitive und adressierbare Key Packages aus, gefolgt von &lt;a href="https://github.com/marmot-protocol/mdk/pull/306">PR #306&lt;/a>, der NIP-40-Validierung für verschwindende Nachrichten über iOS und Android durch eine geteilte UniFFI-Oberfläche hinzufügt. &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.5.22%2B25">White Noise v2026.5.22+25&lt;/a> lieferte iOS-Push durch eine Notification Service Extension aus, die MLS-Chiffretext innerhalb des Extension-Prozesses entschlüsselt, sodass der Broker niemals Klartext sieht, und zwei neue Marmot-Clients erschienen: &lt;a href="https://github.com/DavidGershony/Scramble">Scramble&lt;/a> (ein .NET/Avalonia-Desktop- und Android-Client mit Multi-Device-KeyPackage-Slots) und &lt;a href="https://cordn.net">Cordn&lt;/a> (eine alternative MLS-Architektur mit einem Per-Group-Koordinator über ContextVM). Angor migrierte sein verschlüsseltes Messaging von NIP-04 zu NIP-44 in &lt;a href="https://github.com/block-core/angor/pull/860">PR #860&lt;/a> und schloss den Deprecation-Bogen, der mit &lt;a href="https://github.com/nostr-protocol/nips/pull/574">Paul Millers NIP-44-Vorschlag im Mai 2023&lt;/a> eröffnet wurde. Das Formstr-Team öffnete die größte koordinierte NIP-Einreichung der jüngeren Erinnerung am 17. Mai, mit &lt;a href="https://github.com/nostr-protocol/nips/pull/2350">PR #2350&lt;/a> für Selbst-Entfernung von Teilnehmern, &lt;a href="https://github.com/nostr-protocol/nips/pull/2351">PR #2351&lt;/a> für private Kalender-Events und Wiederholung (NIP-52E und NIP-52R) und &lt;a href="https://github.com/nostr-protocol/nips/pull/2352">PR #2352&lt;/a> für dezentrale Terminplanung, wobei &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a> bereits die Referenzimplementierung ausliefert. &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.11.0">Amethyst v1.11.0&lt;/a> renderte NIP-52-Kalender als Timeline-Kategorie und erweiterte On-Chain-Bitcoin-Zaps auf Split-Verteilungen. Ein Jahr nachdem &lt;a href="https://github.com/nostr-protocol/nips/pull/1494">NIP-77 im Mai 2025 gemerged wurde&lt;/a>, lieferten drei unabhängige Implementierungen im selben Fenster Negentropy-Adoption aus: &lt;a href="https://github.com/damus-io/notedeck/pull/1459">Notedeck PR #1459&lt;/a> verdrahtete es in Damus&amp;rsquo; Desktop-Client für Giftwrap und Thread-Backfill, &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.4.0">Vector v0.4.0&lt;/a> nutzte vollständige Negentropy-MLS-Synchronisation als Teil seiner grundlegenden &lt;code>vector-core&lt;/code>-Neufassung neben One-Click-Tor und einer 21-Tool-MCP-Agent-Oberfläche, und &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v3.0.0-pre1">Citrine v3.0.0-pre1&lt;/a> fügte es dem Android-nativen Relay neben eingebautem Tor und Multi-Relay-Aggregation hinzu. &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.4">Mostro v0.17.4&lt;/a> schloss die Anti-Abuse-Bond-Schleife mit Phase-3-Slashed-Bond-Payouts in &lt;a href="https://github.com/MostroP2P/mostro/pull/738">PR #738&lt;/a> und setzte durch, was das Protokoll zuvor nur androhte. Drei Jahre von &amp;ldquo;sollen wir NIP-04 ersetzen&amp;rdquo; zu &amp;ldquo;sollen wir NIP-44 mit vollem MLS-Gruppenzustand ersetzen&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;p>Wenn du diskutieren möchtest, DM uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #23</title><link>https://nostrcompass.org/de/newsletters/2026-05-21-newsletter/</link><pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-05-21-newsletter/</guid><description>&lt;p>Primal 3.5 liefert eine überarbeitete Android-Shell aus, Amethyst fügt Onchain-Bitcoin-Zaps hinzu, White Noise erhält Markdown-Rendering und Deep Links, Keycast besteht ein Security-Audit, und AgentNoise ermöglicht die Steuerung lokaler KI-Coding-Agenten über Marmot-verschlüsselten Chat. Hostr startet eine P2P-Vermietungsplattform auf Nostr mit vier NIP-Entwürfen für Listings, Reservierungen und EVM-basierten Escrow. Angor migriert verschlüsseltes Messaging von NIP-04 zu NIP-44, Dart NDK fügt NIP-77 und einen Web-Signer hinzu, Alby js-sdk v8 liefert nativen NWC-Multi-Relay-Reconnect, und KeyChat schließt eine Forward-Secrecy-Lücke im Signal One-Time-Prekey-Löschen. Auf Protokollseite erreicht Mostros Anti-Abuse-Bond Phase 2, Wisp liefert private Antworten und gift-wrapped Reaktionen, und eine Welle von Namecoin-NIP-05-Implementierungen berührt in einer einzigen Woche ein halbes Dutzend Clients.&lt;/p></description><content:encoded>&lt;p>Primal 3.5 liefert eine überarbeitete Android-Shell aus, Amethyst fügt Onchain-Bitcoin-Zaps hinzu, White Noise erhält Markdown-Rendering und Deep Links, Keycast besteht ein Security-Audit, und AgentNoise ermöglicht die Steuerung lokaler KI-Coding-Agenten über Marmot-verschlüsselten Chat. Hostr startet eine P2P-Vermietungsplattform auf Nostr mit vier NIP-Entwürfen für Listings, Reservierungen und EVM-basierten Escrow. Angor migriert verschlüsseltes Messaging von NIP-04 zu NIP-44, Dart NDK fügt NIP-77 und einen Web-Signer hinzu, Alby js-sdk v8 liefert nativen NWC-Multi-Relay-Reconnect, und KeyChat schließt eine Forward-Secrecy-Lücke im Signal One-Time-Prekey-Löschen. Auf Protokollseite erreicht Mostros Anti-Abuse-Bond Phase 2, Wisp liefert private Antworten und gift-wrapped Reaktionen, und eine Welle von Namecoin-NIP-05-Implementierungen berührt in einer einzigen Woche ein halbes Dutzend Clients.&lt;/p>
&lt;h2 id="top-stories">Top-Stories&lt;/h2>
&lt;h3 id="primal-35-für-android">Primal 3.5 für Android&lt;/h3>
&lt;p>Primal, der Social-Client, gestützt auf seine eigene Caching-Relay-Infrastruktur, lieferte diese Woche &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.5.9">3.5.9&lt;/a> mit einer überarbeiteten Anwendungs-Shell aus. Das Redesign ersetzt die vorherige Navigationsstruktur mit einem aktualisierten Layout und einem neuen Explore-Screen, der der Haupt-Discovery-Oberfläche ein eigenes dediziertes Zuhause gibt. Das Release fügt Audio-Wiedergabe für Link-Vorschauen hinzu, sodass in Notes eingebettete Audiodateien inline abgespielt werden, ohne den Feed zu verlassen. NIP-05-Verifizierungs-Badges erscheinen jetzt inline auf Profilen und machen die Identitätsbestätigung auf einen Blick sichtbar. Die Notification-Filterung wurde überarbeitet und lässt Benutzer eingrenzen, welche Event-Typen ihre Notification-Liste erreichen. Der Editor erhielt besseres Event-Link-Handling, und die zugrunde liegende Datenbankschicht erhielt Stabilitäts-Fixes.&lt;/p>
&lt;h3 id="white-noise-markdown-deep-links-und-audio-metadaten">White Noise: Markdown, Deep Links und Audio-Metadaten&lt;/h3>
&lt;p>White Noise, die Marmot-verschlüsselte Gruppen-Messaging-App, gebaut auf Nostr und MLS (&lt;a href="https://www.rfc-editor.org/rfc/rfc9420">RFC 9420&lt;/a>), hatte eine der bisher geschäftigsten Wochen sowohl in Frontend- als auch Backend-Repositories.&lt;/p>
&lt;p>Im Frontend fügt &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/665">PR #665&lt;/a> vollständiges Markdown-Rendering für Chat-Nachrichten hinzu, sodass fett, kursiv, Code-Blöcke und Links jetzt nativ in der Nachrichtenansicht gerendert werden. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/675">PR #675&lt;/a> aktiviert den Leave-Group-Flow, der zuvor für Nicht-Letzt-Admins blockiert war, und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/661">PR #661&lt;/a> fügt native Deep-Link-Unterstützung für &lt;code>whitenoise://&lt;/code> und &lt;code>whitenoise-staging://&lt;/code> URIs für Benutzer, Chats und Einstellungen hinzu, ohne HTTP-Redirect-Infrastruktur zu benötigen.&lt;/p>
&lt;p>Im Backend in whitenoise-rs sorgt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/835">PR #835&lt;/a> dafür, dass die Key-Package-Rotation korrekt funktioniert, indem der &lt;code>d_tag&lt;/code>-Slot für kind:30443 Veröffentlichungen wiederverwendet wird, was NIP-33 Replaceable-Event-Semantik ermöglicht, sodass aufeinanderfolgende Key-Package-Rotationen das vorherige Event auf Relays ersetzen und nur das aktuelle Key-Package behalten. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/833">PR #833&lt;/a> erweitert &lt;code>FileMetadata&lt;/code> um optionale &lt;code>duration_ms&lt;/code>- und &lt;code>waveform&lt;/code>-Felder für Audio-Anhänge, koordiniert mit MDKs &lt;a href="https://github.com/marmot-protocol/mdk/pull/300">PR #300&lt;/a>, der dieselben Felder zu MIP-04-Medien-Tags hinzufügt. Ein neuer &lt;code>whitenoise-markdown&lt;/code>-Crate (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/836">PR #836&lt;/a>) ersetzt den vorherigen nostr-sdk-Token-Parser durch eine dedizierte Markdown-Rendering-Bibliothek.&lt;/p>
&lt;p>Die Marmot-Protokollspezifikation selbst erhielt einen Security-Fix in &lt;a href="https://github.com/marmot-protocol/marmot/pull/68">PR #68&lt;/a>, der ein Sicherheitsproblem schließt, indem HKDF-SHA256 für Bildschlüsselableitungen in MIP-01 explizit spezifiziert wird, wodurch Ambiguität entfernt wird, die zu Implementierungs-Divergenz führen könnte. In MDK bereinigt &lt;a href="https://github.com/marmot-protocol/mdk/pull/307">PR #307&lt;/a> Welcome-Fehlerbegründungen und begrenzt die gespeicherte Länge, was einen separaten Sicherheitsbefund schließt.&lt;/p>
&lt;h3 id="amethyst-v1100-onchain-bitcoin-zaps">Amethyst v1.10.0: Onchain-Bitcoin-Zaps&lt;/h3>
&lt;p>Amethyst lieferte diese Woche vier Releases aus, wobei &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.10.0">v1.10.0&lt;/a> die Schlagzeile war. Das Release fügt Unterstützung für NIP-BC Onchain-Bitcoin-Zaps hinzu und ermöglicht Benutzern, Zaps direkt onchain über Bitcoin-Transaktionen zu senden, zu empfangen und anzuzeigen. Frühere Releases in der Reihe behoben die Blossom-Blob-Erkennung, um nicht-konforme Dateinamen abzulehnen (&lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.09.2">v1.09.2&lt;/a>), patchten ProGuard-Regeln für Desktop-Builds und mergten &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2977">PR #2977&lt;/a>, um Onchain-Bitcoin-Zapper als dedizierte ₿-Zeile in der erweiterten Reaktionen-Galerie anzuzeigen. Ein in Arbeit befindlicher On-Chain-Transaktions-Historien-Screen mit Paginierung landete in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2974">PR #2974&lt;/a>.&lt;/p>
&lt;h3 id="agentnoise-coding-agenten-über-white-noise-steuern">AgentNoise: Coding-Agenten über White Noise steuern&lt;/h3>
&lt;p>&lt;a href="https://github.com/nvk/agentnoise">AgentNoise&lt;/a> von nvk ist ein Rust-nativer Desktop-Helper, mit dem man ein White-Noise-Telefon als Steuerungsoberfläche für lokale Codex- und Claude-Coding-Agent-Sessions verwenden kann. Das Tool lauscht auf einen oder mehrere White-Noise-Chats, authentifiziert Absender über einen First-Pairing-PIN-Flow und startet lokale Coding-Agenten über den konfigurierten Launcher. Das Senden von &lt;code>/claude &amp;lt;prompt&amp;gt;&lt;/code> vom Telefon öffnet eine neue White-Noise-Arbeitssession, benannt nach dem Maschinen-Hostname und einer kurzen Prompt-Zusammenfassung, und streamt dann Fortschrittsupdates und die endgültige Ausgabe zurück in diesen Chat. Es ist bewusst Rust-first gehalten und hält Node aus dem vertrauenswürdigen Bridge-Pfad heraus. Das Projekt erreichte diese Woche &lt;a href="https://github.com/nvk/agentnoise/releases/tag/v0.1.24">v0.1.24&lt;/a> und fügte kürzere Telefon-lesbare Antworten, Job-Referenzen per kurzem eindeutigem Präfix und einen optionalen lokalen Session-Watcher hinzu. AgentNoise treibt die &lt;code>wn&lt;/code>- und &lt;code>wnd&lt;/code>-CLIs aus &lt;code>marmot-protocol/whitenoise-rs&lt;/code> als Subprozesse an, sodass es seinen Nostr-Transport mit dem White-Noise-Client selbst teilt.&lt;/p>
&lt;h3 id="keycast-security-audit-abgeschlossen">Keycast-Security-Audit abgeschlossen&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/keycast">Keycast&lt;/a>, der teamorientierte NIP-46-Remote-Signing-Server, der Nostr-Private-Keys verschlüsselt at rest in SQLite speichert, hat im Mai 2026 ein Security-Audit abgeschlossen. Der Härtungsdurchgang adressierte Auth-, Berechtigungs-, Datenintegritäts- und Abhängigkeitsprobleme, und die Ergebnisse sind in &lt;a href="https://github.com/marmot-protocol/keycast/blob/master/AUDIT.md">AUDIT.md&lt;/a> dokumentiert. Änderungen umfassen: NIP-98 HTTP-Auth erfordert jetzt genau einen &lt;code>u&lt;/code> Tag und einen &lt;code>method&lt;/code> Tag, lehnt veraltete Zeitstempel ab und validiert &lt;code>payload&lt;/code>-Hashes; die &lt;code>ALLOWED_PUBKEYS&lt;/code>-Allowlist wird exakt geparst und serverseitig durchgesetzt; leere Policies verweigern jetzt standardmäßig Sign/Encrypt/Decrypt-Anfragen; Foreign-Key-Enforcement ist auf SQLite-Verbindungen aktiviert; und verschachtelte App-Routen wie &lt;code>/teams/:id&lt;/code> sind serverseitig geschützt. Eine SQL-Migration normalisiert alte Allowed-Kinds-Berechtigungs-JSON beim Start. Das Projekt befindet sich noch in einem frühen Stadium, und das Audit nennt Restpunkte, die vor dem Vertrauen mit echten Teamschlüsseln zu erledigen sind.&lt;/p>
&lt;h3 id="scramble-marmot-client-für-desktop-und-android">Scramble: Marmot-Client für Desktop und Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/DavidGershony/Scramble">Scramble&lt;/a> (früher OpenChat) ist ein .NET/Avalonia-Desktop- und Android-Client für das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot-Protokoll&lt;/a>, das MIPs 00-04 implementiert: KeyPackage-Veröffentlichung (kind:30443), Gruppen-Metadaten mit der NostrGroupData-MLS-Erweiterung, NIP-59 gift-wrapped Welcome-Events (kind:444), ChaCha20-Poly1305 verschlüsselte Nachrichten (kind:445) und Blossom verschlüsselte Medien-Anhänge. Es ist vollständig interoperabel mit White Noise und jedem anderen Marmot-kompatiblen Client.&lt;/p>
&lt;p>Das Projekt lieferte diese Woche 13 Releases aus, mit Multi-Device-Unterstützung als Hauptfeature. Jedes Gerät generiert einen eindeutigen KeyPackage-Slot (ein &lt;code>d&lt;/code>-Tag auf kind:30443). Beim Start holt Scramble die eigenen KeyPackages des Benutzers von Relays, erkennt Peer-Device-Slot-IDs und fügt sie automatisch bestehenden MLS-Gruppen über den Staged-Commit-Flow hinzu. Auto-Add ist auf Gruppen beschränkt, in denen der aktuelle Benutzer Admin ist; Nicht-Admin-Gruppen werden übersprungen, mit dem Hinweis, den Gruppen-Admin zu fragen. Ein Forward-Secrecy-Disclosure-Banner informiert neu verknüpfte Geräte, dass alte Nachrichten nicht verfügbar sind. Ein Slot-ID-Reconciliation-Durchgang (&lt;code>TryReconcileSlotId&lt;/code>) verarbeitet Geräte, die von Pre-Multi-Device-Versionen migriert wurden, indem Relay-KeyPackage-Bytes gegen lokales Schlüsselmaterial abgeglichen werden, um das korrekte &lt;code>d&lt;/code>-Tag zu übernehmen. External-Signer-Reconnect für Amber- und NIP-46-Benutzer wurde ebenfalls behoben: der &lt;code>IsConnected&lt;/code>-Guard, der den eingebauten Auto-Reconnect von &lt;code>ExternalSignerService&lt;/code> blockierte, wurde an allen neun Aufrufstellen in &lt;code>NostrService&lt;/code> entfernt.&lt;/p>
&lt;h3 id="hostr-p2p-vermietungsplattform-auf-nostr">Hostr: P2P-Vermietungsplattform auf Nostr&lt;/h3>
&lt;p>&lt;a href="https://hostr.network">Hostr&lt;/a> (&lt;a href="https://github.com/sudonym-btc/hostr">Quelle&lt;/a>) ist eine Peer-to-Peer-Vermietungsplattform, die vollständig auf Nostr aufgebaut ist. Sie deckt den gesamten Airbnb-artigen Flow ab (Suche und Auflistung von Immobilien, Verhandlung von Reservierungen und Zahlungsabwicklung) mithilfe von vier NIP-Entwürfen, die das Projekt parallel zur Anwendung entwickelt.&lt;/p>
&lt;p>Das Accommodation-NIP erweitert &lt;a href="https://github.com/nostr-protocol/nips/blob/master/99.md">NIP-99&lt;/a> Classified Listings (kind:30402 aktiv, kind:30403 Entwurf) um unterkunftsspezifische Tags für Typ (&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-Zeiten, Mindestaufenthalt und H3-Geospatial-Cell-Indexes für standortbasierte Suche in konfigurierbarer Präzision. Das Reservation-NIP definiert ein vollständiges Verhandlungs- und Lebenszyklus-Protokoll: kind:32122 replaceable Reservierungs-Events tragen eine &lt;code>d&lt;/code> Trade-ID, einen Listing-Anker &lt;code>a&lt;/code> Tag und Teilnehmer-&lt;code>p&lt;/code>-Tags mit Rollen (&lt;code>buyer&lt;/code>, &lt;code>seller&lt;/code>, &lt;code>escrow&lt;/code>); kind:1327 strukturierte Message-Rumors liefern private negotiate-stage Gegenangebote per NIP-59-Gift-Wraps, sodass die Verhandlung von öffentlichen Relays fernbleibt; kind:1326 Append-Only-Transitions-Events erstellen einen öffentlichen Audit-Trail, sobald eine Reservierung committed. Käuferprivatsphäre wird durch temporäre Nostr-Keys pro Trade bewahrt, die über verschlüsselte &lt;code>participant_proof&lt;/code>-Tags an die reale Identität des Käufers gebunden sind. Das Escrow-NIP definiert kind:30303 Escrow-Service-Ankündigungen und kind:17388 User-Trust-Deklarationen; die Referenzimplementierung nutzt EVM-Smart-Contracts auf Rootstock, wobei &lt;code>contractBytecodeHash&lt;/code> es Clients erlaubt zu verifizieren, dass der deployte Contract mit einer bekannten geprüften Implementierung übereinstimmt. Das Marketplace-Listing-NIP definiert generische Tags, die von allen NIP-99-Marketplace-Profilen geteilt werden, einschließlich &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> und &lt;code>maxDisputePeriod&lt;/code>. Diese Woche bereitete das Projekt seine App-Store-Einreichung vor und mergte MCP-Client-Identity-Unterstützung für agent-basierte Automatisierung.&lt;/p>
&lt;p>Zwei neue Einträge erschienen diese Woche auf der Shakespeare-MiniApps-Plattform: &lt;a href="https://inkpress.shakespeare.wtf">InkPress&lt;/a>, ein KI-Magazin-Generator, der strukturierte magazinartige Inhalte als Nostr-Events veröffentlicht, und &lt;a href="https://pressstr.shakespeare.wtf">PressStr&lt;/a>, eine Schreib- und Publishing-Plattform für den Soapbox-Stack.&lt;/p>
&lt;h2 id="diese-woche-ausgeliefert">Diese Woche ausgeliefert&lt;/h2>
&lt;h3 id="ngit-v244">ngit v2.4.4&lt;/h3>
&lt;p>&lt;strong>ngit&lt;/strong> lieferte &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.4">v2.4.4&lt;/a> aus und fügte &lt;code>ngit sync --trust-server&lt;/code> (&lt;code>-t&lt;/code>) für Fälle hinzu, in denen ein Git-Server dem Nostr-Zustand voraus ist. Wenn diese Situation erkannt wird, meldet sync die betroffenen Refs und verlangt das Flag, um ein aktualisiertes State-Event zu signieren und zu veröffentlichen; eine &lt;code>nostr.trust-server-domains&lt;/code> Git-Config-Einstellung bietet eine mit Semikolon getrennte Allowlist für Server, denen automatisch ohne das Flag vertraut werden soll.&lt;/p>
&lt;h3 id="amber-v610-pre3-fügt-psbt-signierung-hinzu">Amber v6.1.0-pre3 fügt PSBT-Signierung hinzu&lt;/h3>
&lt;p>&lt;strong>Amber&lt;/strong> veröffentlichte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0-pre3">v6.1.0-pre3&lt;/a> mit verbessertem Layout für neue App-Verbindungen, Crash-Fixes und einer Select/Deselect-All-Option auf dem Berechtigungs-Screen. &lt;a href="https://github.com/greenart7c3/Amber/pull/438">PR #438&lt;/a> fügt PSBT-Signing-Unterstützung sowohl über den Intent-basierten als auch über den NIP-46 Relay-basierten Pfad hinzu und erlaubt Amber, Partially Signed Bitcoin Transactions zu signieren, ohne die nsec der anfragenden App preiszugeben.&lt;/p>
&lt;h3 id="wisp-v110-liefert-private-antworten-und-verwirft-amber-unterstützung">Wisp v1.1.0 liefert private Antworten und verwirft Amber-Unterstützung&lt;/h3>
&lt;p>&lt;strong>Wisp&lt;/strong> veröffentlichte &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.1.0">v1.1.0&lt;/a> mit privaten Antworten per NIP-17-Gift-Wrap (&lt;a href="https://github.com/barrydeen/wisp/pull/540">PR #540&lt;/a>), gift-wrapped Reaktionen und DIP-03-Zaps auf private Antworten (&lt;a href="https://github.com/barrydeen/wisp/pull/543">PR #543&lt;/a>), Auto-Übersetzung für Notes (&lt;a href="https://github.com/barrydeen/wisp/pull/523">PR #523&lt;/a>) und einer Register-artigen Fiat-Eingabe im Zap-Dialog. &lt;a href="https://github.com/barrydeen/wisp/pull/541">PR #541&lt;/a> migriert private Zaps von einem hausgemachten DM-Relay-Klartext-Schema zu DIP-03 mit korrektem DM-Relay-Routing. Derselbe Release-Zyklus entfernte die NIP-55-Remote-Signer-Unterstützung (&lt;a href="https://github.com/barrydeen/wisp/pull/531">PR #531&lt;/a>), verwarf Amber und andere externe Signer-Integrationen und entfernte das gebündelte lokale Relay (&lt;a href="https://github.com/barrydeen/wisp/pull/533">PR #533&lt;/a>). Wisp ist ein Nostr-Social-Client für Android.&lt;/p>
&lt;h3 id="calendar-by-formstr-v154-behebt-gift-wrap-für-neue-teilnehmer">Calendar by Formstr v1.5.4 behebt Gift-Wrap für neue Teilnehmer&lt;/h3>
&lt;p>&lt;strong>Calendar by Formstr&lt;/strong> lieferte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.5.4">v1.5.4&lt;/a> aus (das neueste in einer v1.5.2 → v1.5.4 Sequenz). &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/160">PR #160&lt;/a> behebt einen Bug, bei dem das Bearbeiten eines privaten Kalender-Events mit neuen Teilnehmern das aktualisierte Event mit den neuen pubkeys in &lt;code>p&lt;/code> Tags veröffentlichte, aber nie Gift-Wrap-Einladungen an diese Teilnehmer erstellte oder auslieferte, was den Einladungs-Flow für Last-Minute-Ergänzungen brach. &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/156">PR #156&lt;/a> fügt Fehlerbehandlung rund um die Private-Event-Entschlüsselung hinzu, sodass Clients nicht mehr bei unentschlüsselbaren Events werfen, und &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/138">PR #138&lt;/a> korrigiert wiederkehrende Event-Zeiten, die über Zeitzonen drifteten.&lt;/p>
&lt;h3 id="applesauce-v610-fügt-nip-34-git-casts-und-nip-51-lookup-relays-hinzu">Applesauce v6.1.0 fügt NIP-34-Git-Casts und NIP-51-Lookup-Relays hinzu&lt;/h3>
&lt;p>&lt;strong>Applesauce&lt;/strong> veröffentlichte &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%406.1.0">v6.1.0&lt;/a> über seine Pakete hinweg mit signifikanter NIP-34-Unterstützung (Git-über-Nostr): applesauce-common fügt neue &lt;code>GitRepository&lt;/code>-, &lt;code>GitGraspList&lt;/code>- und &lt;code>FavoriteGitRepos&lt;/code>-Casts plus passende Factories hinzu und exponiert &lt;code>User.favoriteGitRepos$&lt;/code>, &lt;code>User.gitAuthors$&lt;/code> und &lt;code>User.graspServers$&lt;/code> als reaktive Eigenschaften, sodass Anwendungen die gefolgten Git-Repos, Repo-Maintainer und konfigurierten GRASP-Server eines Benutzers direkt aus demselben User-Objekt auflisten können. Dasselbe Release fügt Unterstützung für NIP-51 kind 10086 Lookup-Relay-Listen hinzu, eine jüngste Ergänzung zur Relay-List-Familie, die verwendet wird, um herauszufinden, wo bestimmte Daten zu finden sind. applesauce-core gewinnt &lt;code>replaceableAddress&lt;/code> auf &lt;code>EventCast&lt;/code> für NIP-01 Replaceable-Address-Lookup, plus &lt;code>pointer&lt;/code>, &lt;code>kind&lt;/code> und einen &lt;code>getReplaceableAddressForEvent&lt;/code>-Helper und fügt eine &lt;code>timeline$()&lt;/code>-Methode zum Basis-&lt;code>User&lt;/code>-Cast hinzu. &lt;a href="https://github.com/hzrd149/applesauce/pull/73">PR #73&lt;/a> behebt Pool-Manual-Methoden, die offline Relays stillschweigend fallen ließen.&lt;/p>
&lt;h3 id="sprout-v0016-liefert-sprig-binary-und-huddle-protokoll-v2">Sprout v0.0.16 liefert Sprig-Binary und Huddle-Protokoll v2&lt;/h3>
&lt;p>&lt;strong>Sprout&lt;/strong> von Block, ein selbstgehosteter Nostr-Relay-basierter Team-Workspace, in dem Menschen und KI-Agenten dieselben Räume und Event-Logs teilen, lieferte &lt;a href="https://github.com/block/sprout/releases/tag/v0.0.16">v0.0.16&lt;/a> der Desktop-App zusammen mit Rolling Builds des neuen Sprig-All-in-One-Binaries (&lt;a href="https://github.com/block/sprout/pull/605">PR #605&lt;/a>) aus, das den ACP-Harness, den Agenten und das Developer-MCP in ein einzelnes Busybox-artiges Binary bündelt, für einfaches Deployment. Das &lt;code>--no-memory&lt;/code>-Flag, hinzugefügt in &lt;a href="https://github.com/block/sprout/pull/611">PR #611&lt;/a>, erlaubt Betreibern, die NIP-AE-Core-Memory-Injection für den ACP-Harness zu deaktivieren. Auf der Echtzeit-Seite erweitert &lt;a href="https://github.com/block/sprout/pull/609">PR #609&lt;/a> das Huddle-Voice-Protokoll auf einen v2 Frame-Header, der bis zu 10 gleichzeitige Peers unterstützt.&lt;/p>
&lt;h3 id="nostrord-v103-fügt-os-keychain-und-multi-account-hinzu">Nostrord v1.0.3 fügt OS-Keychain und Multi-Account hinzu&lt;/h3>
&lt;p>&lt;strong>Nostrord&lt;/strong> veröffentlichte &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.3">v1.0.3&lt;/a> mit lokaler Schlüsselspeicherung, gehärtet über OS-Keychain und Passphrase-Fallback, Multi-Account-Unterstützung und einem tappbaren Bunker-QR-Code, der die Signer-App auf Android öffnet.&lt;/p>
&lt;h3 id="angor-migriert-zu-nip-44-und-liefert-security-hardening-aus">Angor migriert zu NIP-44 und liefert Security-Hardening aus&lt;/h3>
&lt;p>&lt;strong>Angor&lt;/strong>, die Bitcoin-Crowdfunding-App auf Basis von Nostr und Taproot, lieferte diese Woche drei instabile Releases aus (&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> und &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.26">v0.2.26&lt;/a>) mit einer Reihe von Security-Hardening- und Nostr-Integrations-Änderungen. &lt;a href="https://github.com/block-core/angor/pull/860">PR #860&lt;/a> migriert das verschlüsselte Nostr-Messaging von NIP-04 zu NIP-44 und ersetzt das deprecatete XOR-basierte Schema durch ChaCha20-Poly1305-Verschlüsselung. &lt;a href="https://github.com/block-core/angor/pull/861">PR #861&lt;/a> erlaubt Blossom-Medien-Uploads ohne ausgewählte Wallet, indem ein ephemerer Nostr-Auth-Key verwendet wird, wodurch Uploads für Benutzer entsperrt werden, die noch keine Wallet verbunden haben. Die Security-Serie adressierte mehrere gehärtete Kategorien: &lt;a href="https://github.com/block-core/angor/pull/854">PR #854&lt;/a> fügt Typsicherheit für AngorKey und Mnemonic-Memory-Schutz hinzu, &lt;a href="https://github.com/block-core/angor/pull/856">PR #856&lt;/a> erzwingt Protokoll-Level-Validierung für Timelocks, Fee-Rates, Dust-Schwellenwerte und Penalty-Regeln, und &lt;a href="https://github.com/block-core/angor/pull/851">PR #851&lt;/a> wendet Non-Breaking-Hardening über acht Kategorien mittleren und niedrigen Schweregrads an. &lt;a href="https://github.com/block-core/angor/pull/859">PR #859&lt;/a> behebt GrapheneOS-Kompatibilität, indem AOT-Kompilierung aktiviert und Runtime-Code-Generierung entfernt wird, und &lt;a href="https://github.com/block-core/angor/pull/855">PR #855&lt;/a> verhindert Wallet-Verlust bei Android-Swipe-Kill, indem der Wallet-Zustand persistiert wird, bevor das OS den Prozess beendet.&lt;/p>
&lt;h3 id="alby-js-sdk-v80-liefert-nwc-multi-relay-reconnect">Alby js-sdk v8.0 liefert NWC-Multi-Relay-Reconnect&lt;/h3>
&lt;p>&lt;strong>Alby js-sdk&lt;/strong> veröffentlichte die v8.0-Linie (&lt;a href="https://github.com/getAlby/js-sdk/releases/tag/v8.0.1">v8.0.1&lt;/a> bis &lt;a href="https://github.com/getAlby/js-sdk/releases/tag/v8.0.3">v8.0.3&lt;/a>) mit NWC-Multi-Relay-Subscription-Unterstützung. &lt;a href="https://github.com/getAlby/js-sdk/pull/516">PR #516&lt;/a> aktualisiert die nostr-tools-Abhängigkeit und aktiviert nativen Auto-Reconnect über mehrere Relays, ersetzt den vorherigen Polling-Ansatz durch relay-native Reconnection-Logik. &lt;a href="https://github.com/getAlby/js-sdk/pull/542">PR #542&lt;/a> ersetzt alle &lt;code>console.debug&lt;/code>-Aufrufe durch eine injizierbare Logger-Schnittstelle, sodass Anwendungsentwickler SDK-Diagnosen durch ihre eigene Logging-Infrastruktur routen können. Das Release verwirft den WebSocket-Polyfill und erfordert Node.js 22 oder höher für serverseitige Konsumenten. v8.0.2 fügte einen Fix für einen Utils-Crypto-Import-Bug hinzu, der bestimmte Bundler brach.&lt;/p>
&lt;h3 id="keychat-v1411-behebt-forward-secrecy">KeyChat v1.41.1 behebt Forward Secrecy&lt;/h3>
&lt;p>&lt;strong>KeyChat&lt;/strong>, eine Messaging-App, die das Signal-Protokoll mit Nostr-Relay-Transport kombiniert, veröffentlichte &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.41.1&amp;#43;6513">v1.41.1+6513&lt;/a>. Der Schlagzeilen-Fix erzwingt Forward Secrecy, indem Signal-One-Time-Prekeys unmittelbar nach einer erfolgreichen Entschlüsselung gelöscht werden, was eine Lücke schließt, in der ein zurückbehaltener Prekey verwendet werden könnte, um vergangene Nachrichten zu entschlüsseln, falls das Gerät später kompromittiert wird. Das Release fügt außerdem URL-Vorschau für Nachrichten hinzu, die aus einem einzelnen Link bestehen, zentralisiert Medien-Auto-Download unter einem neuen &lt;code>FileDownloadManager&lt;/code> mit einem 20-MB-Auto-Schwellenwert und refaktoriert das NIP-11-Relay-Info-Fetching, um beim Kaltstart einen Force-Refresh zu erzwingen, sodass Paid-Relay-Fee-Konfigurationen immer korrekt geladen werden.&lt;/p>
&lt;h2 id="in-entwicklung">In Entwicklung&lt;/h2>
&lt;p>&lt;strong>Citrine&lt;/strong> mergte &lt;a href="https://github.com/greenart7c3/Citrine/pull/151">PR #151&lt;/a> und implementierte NIP-70-Enforcement: das Android-Relay blockiert jetzt Reposts, die geschützte Event-Inhalte einbetten, wie die Spezifikation es verlangt. &lt;a href="https://github.com/greenart7c3/Citrine/pull/149">PR #149&lt;/a> fügt Anzeige- und Kopieraktionen für mehrere Verbindungsadressen, Localhost, lokales WLAN und Tor, vom Relay-Einstellungs-Screen aus hinzu. &lt;a href="https://github.com/greenart7c3/Citrine/pull/141">PR #141&lt;/a> fügt NIP-42 AUTH-Challenge-Handling über externe Signer-Integration mit Amber hinzu.&lt;/p>
&lt;p>&lt;strong>Mostro&lt;/strong> erreichte Phase 2 seines Anti-Abuse-Bond-Rollouts. &lt;a href="https://github.com/MostroP2P/mostro/pull/737">PR #737&lt;/a> landet Solver-directed Dispute-Slash-Logik: Admin-Handler konsumieren jetzt die &lt;code>BondResolution&lt;/code>-Payload von mostro-core, wodurch ein Admin bei der Auflösung eines Disputes den Bond einer der Parteien slashen kann. Phase 1.5, gemerged in &lt;a href="https://github.com/MostroP2P/mostro/pull/736">PR #736&lt;/a>, führte eine dedizierte &lt;code>PayBondInvoice&lt;/code>-Aktion und einen &lt;code>WaitingTakerBond&lt;/code>-Status ein und trennte die Anti-Abuse-Bond-Zahlung des Takers vom Trade-Payout des Käufers. Der Mobile-Client fügte die vollständige Phase-1.5-UX in &lt;a href="https://github.com/MostroP2P/mobile/pull/592">PR #592&lt;/a> hinzu. Mostro ist ein Peer-to-Peer-Bitcoin-Exchange-Protokoll auf Basis von Nostr.&lt;/p>
&lt;p>&lt;strong>Damus&lt;/strong> mergte &lt;a href="https://github.com/damus-io/damus/pull/3773">PR #3773&lt;/a> und stellte den Relay-Signal-Indikator wieder her, und &lt;a href="https://github.com/damus-io/damus/pull/3775">PR #3775&lt;/a> behebt Relays, die sich nach einem anfänglichen Verbindungsfehler nicht wieder verbanden.&lt;/p>
&lt;p>&lt;strong>rust-nostr&lt;/strong> mergte &lt;a href="https://github.com/rust-nostr/nostr/pull/1358">PR #1358&lt;/a> und fügte Event-Finalization-Traits und NIP-spezifische Event-Builder hinzu, was es einfacher macht, korrekt typisierte Events für bestimmte Protokollfunktionen zu konstruieren. &lt;a href="https://github.com/rust-nostr/nostr/pull/1363">PR #1363&lt;/a> portiert einen Fix zurück, der sicherstellt, dass der NIP-46-Signer Notifications abonniert, bevor er die Connect-Antwort sendet, was eine Race-Condition schließt, bei der Client-Nachrichten, die unmittelbar nach Connect eintrafen, verpasst werden konnten.&lt;/p>
&lt;p>&lt;strong>dart-nostr&lt;/strong> mergte &lt;a href="https://github.com/ethicnology/dart-nostr/pull/44">PR #44&lt;/a> und fügte einen Namecoin-&lt;code>.bit&lt;/code>-Relay-Resolver und TLSA-Pin-Records hinzu, was Flutter-Anwendungen erlaubt, &lt;code>wss://example.bit/&lt;/code>-Relay-URLs über Namecoin-DNS zu ihren tatsächlichen WebSocket-Adressen aufzulösen.&lt;/p>
&lt;p>&lt;strong>Dart NDK&lt;/strong> (das Dart/Flutter-Nostr-Development-Kit, jetzt bei &lt;code>relaystr/ndk&lt;/code>) mergte &lt;a href="https://github.com/relaystr/ndk/pull/464">PR #464&lt;/a> und implementierte NIP-77, das Offline-Event-Signing-Protokoll. Auf Signer-Seite fügen &lt;a href="https://github.com/relaystr/ndk/pull/602">PR #602&lt;/a> und &lt;a href="https://github.com/relaystr/ndk/pull/601">PR #601&lt;/a> einen web-spezifischen Event-Signer und eine &lt;code>PlatformEventVerifier&lt;/code>-Abstraktion hinzu, sodass Flutter-Web-Apps den Plattform-Signer ohne separaten Codepfad nutzen können; &lt;a href="https://github.com/relaystr/ndk/pull/604">PR #604&lt;/a> führt eine Event-Signer-Factory für Runtime-Signer-Auswahl ein. &lt;a href="https://github.com/relaystr/ndk/pull/608">PR #608&lt;/a> fügt &lt;code>getDmRelays()&lt;/code> zum Abrufen einer NIP-17-DM-Relay-Liste eines Benutzers (kind:10050) hinzu, und &lt;a href="https://github.com/relaystr/ndk/pull/600">PR #600&lt;/a> behebt die NIP-46 Signed-Field-Preservation, sodass Remote-Signer keine Felder beim Round-Trip verlieren.&lt;/p>
&lt;p>&lt;strong>Pages by Form*&lt;/strong> (&lt;a href="https://github.com/formstr-hq/nostr-docs">Repo&lt;/a>), Formstrs Nostr-natives kollaboratives Dokument-App, gehostet auf &lt;a href="https://pages.formstr.app">pages.formstr.app&lt;/a>, mergte diese Woche vier PRs, die die Encrypted-Attachment- und Dokument-Management-Flows straffen. &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/37">PR #37&lt;/a> behebt fehlende Bilder in DOCX-, HTML- und PDF-Exports, indem verschlüsselte Anhänge inline eingebunden werden: es holt &lt;code>&amp;lt;encrypted-file&amp;gt;&lt;/code>-Blobs von Blossom-Servern, entschlüsselt sie mit AES-GCM 256-Bit unter Verwendung des gespeicherten Schlüssels und Nonce, validiert den Bild-MIME-Typ und konvertiert sie in Base64-Data-URLs, sodass Exports Bilder erhalten, die nur auf Blossom in verschlüsselter Form existieren. &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/39">PR #39&lt;/a> fügt einen lokalen Dokument-Suchmechanismus hinzu, &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/38">PR #38&lt;/a> räumt den Rename-Flow auf, und &lt;a href="https://github.com/formstr-hq/nostr-docs/pull/40">PR #40&lt;/a> behebt Shared-Backup-Handling.&lt;/p>
&lt;p>&lt;strong>Zap Cooking&lt;/strong> mergte &lt;a href="https://github.com/zapcooking/frontend/pull/396">PR #396&lt;/a>, die erste Phase einer Feed-Überarbeitung, die Feed-Rendering-Primitive legt, ohne noch benutzersichtbare Änderungen. Der PR führt einen NIP-92 &lt;code>imeta&lt;/code> Tag-Parser ein, der die Slots &lt;code>url&lt;/code>, &lt;code>m&lt;/code> (MIME), &lt;code>dim&lt;/code> (Dimensionen), &lt;code>blurhash&lt;/code>, &lt;code>alt&lt;/code>, &lt;code>x&lt;/code> (File-Hash) und &lt;code>fallback&lt;/code> liest, plus einen handportierten kanonischen Blurhash-Decoder (~200 LOC), der PNG-Data-URLs per Canvas mit einem SSR-sicheren Null-Fallback erzeugt. Wenn &lt;code>imeta&lt;/code>-Tags fehlen, greift der Parser auf das Extrahieren roher Bild- und Video-URLs aus dem Event-Inhalt zurück und nutzt dieselben Heuristiken, die der aktuelle Feed bereits verwendet.&lt;/p>
&lt;p>&lt;strong>Nurunuru&lt;/strong> (ぬるぬる, &lt;code>tami1A84/null--nostr&lt;/code>), ein Nostr-Client mit nativen Android-, iOS- und Web-Varianten, die eine Rust-FFI-Engine teilen, mergte seinen v1.5.0 Native → Web Sync in &lt;a href="https://github.com/tami1A84/null--nostr/pull/176">PR #176&lt;/a>. Der Sync bringt mehrere Feature-Ergänzungen zum Web-Build, die auf Android v1.4.9 und iOS 1.0.4 bereits ausgeliefert waren: das &lt;a href="https://github.com/tami1A84/null--nostr/pull/176">NotificationModal&lt;/a> zeigt jetzt Geburtstagsbenachrichtigungen, Mutual-Follow-Zap-Erkennung und benutzerdefinierte Emoji-Reaktions-Benachrichtigungen; der Reaction-Picker verwirft die Unicode-Default-Reactions-Quick-Row und zentriert die UX auf benutzerdefinierte Emoji; die Empfehlungsmaschine in &lt;code>lib/recommendation.js&lt;/code> filtert Benutzer ohne Icons oder Display-Names heraus und priorisiert Following-Einträge, während Recommended im Hintergrund lädt. Sprachein­gabe ist das eine Feature, das in die andere Richtung geht: der Web-Build verwendet bereits ElevenLabs-Scribe-Streaming, und v1.5.0 synchronisiert die Native-Seite teilweise zum OS-Standard &lt;code>SpeechRecognizer&lt;/code> (Android) und &lt;code>SFSpeechRecognizer&lt;/code> + &lt;code>AVAudioEngine&lt;/code> (iOS), während die vollständige Native-Scribe-Integration auf v1.6 verschoben wird.&lt;/p>
&lt;h2 id="protokoll--und-spezifikationsarbeit">Protokoll- und Spezifikationsarbeit&lt;/h2>
&lt;p>&lt;strong>PR &lt;a href="https://github.com/nostr-protocol/nips/pull/2251">#2251&lt;/a>&lt;/strong> verschärft die NIP-70-Protected-Events-Spezifikation: es wird jetzt explizit festgelegt, dass Reposts, die den vollen Inhalt eines geschützten Events einbetten, von Relays abgelehnt werden müssen. NIP-70 definiert den &lt;code>-&lt;/code> Tag, der signalisiert, dass ein Note-Autor der Republikation seiner Note nicht zustimmt. Die ursprüngliche Spezifikation deckte das Verhalten der Relay-Filterung ab, ließ den Repost-Fall aber mehrdeutig. Dieser PR schließt diese Lücke. Citrines &lt;a href="https://github.com/greenart7c3/Citrine/pull/151">PR #151&lt;/a> implementiert die Durchsetzung auf Relay-Seite in derselben Woche.&lt;/p>
&lt;p>&lt;strong>PR &lt;a href="https://github.com/nostr-protocol/nips/pull/1653">#1653&lt;/a>&lt;/strong> schlägt ein Drafts-NIP zum Speichern und Synchronisieren privater Draft-Events vor. Der Vorschlag verwendet replaceable Events mit einem &lt;code>draft&lt;/code>-Status und NIP-44-Verschlüsselung an den eigenen Key des Autors, wodurch Clients Work-in-Progress-Werke auf Relays speichern können, ohne dass diese Events für irgendjemanden anderes sichtbar sind. Das Draft-Event trägt das vollständige, zur Veröffentlichung vorgesehene Event als verschlüsselten Inhalt, einschließlich seines schließlichen kinds und seiner 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> ist ein offener Vorschlag, ein unveränderliches Snapshot-Event zur Bewahrung einer exakten Version eines replaceable Nostr-Events zu definieren. Das Snapshot-Event trägt den vollständigen Inhalt des replaceable Events zu einem bestimmten Zeitpunkt, mit einem &lt;code>a&lt;/code> Tag, der zurück zur Adresse des replaceable Events verlinkt, sodass alle historischen Versionen zusammen abgefragt werden können. Das macht es möglich für Beobachter, historischen Zustand zu inspizieren, selbst nachdem Relays alte Versionen nicht mehr aufbewahren.&lt;/p>
&lt;p>&lt;strong>Namecoin-NIP-05-Welle:&lt;/strong> Diese Woche gab es einen koordinierten Vorstoß, &lt;code>.bit&lt;/code> NIP-05-Auflösung zu Nostr-Clients hinzuzufügen. Der NIP-Diskussions-Feed erfasste Open-Source-PRs gegen Aegis (&lt;a href="https://github.com/ZharlieW/Aegis/pull/14">#14&lt;/a>, der Sign-Time-Verifikation beim Signer hinzufügt), nostter (&lt;a href="https://github.com/SnowCait/nostter/pull/2128">#2128&lt;/a>) und dart-nostr (&lt;a href="https://github.com/ethicnology/dart-nostr/pull/44">#44&lt;/a>), neben einem Upstream-NIP-Entwurf (&lt;a href="https://github.com/nostr-protocol/nips/pull/2349">PR #2349&lt;/a>). Der Aegis-PR ist bemerkenswert dafür, die Verifikation auf die Producer-Seite zu setzen: der Signer prüft die Namecoin-Chain, bevor er ein kind:0-Event signiert, das eine &lt;code>.bit&lt;/code>-Identität beansprucht, und warnt den Benutzer bei Nichtübereinstimmung, wodurch das Problem erkannt wird, bevor das Event ein Relay erreicht.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-07-windownostr-für-web-browser">NIP Deep Dive: NIP-07 (window.nostr für Web-Browser)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/07.md">NIP-07&lt;/a> definiert die &lt;code>window.nostr&lt;/code>-Schnittstelle, die Browser-Erweiterungen für Webanwendungen bereitstellen. Es ist die am weitesten verbreitete Signer-Schnittstelle im Web, implementiert von Erweiterungen wie Alby, nos2x, Flamingo und horse.&lt;/p>
&lt;p>Die Schnittstelle hat zwei erforderliche und mehrere optionale Methoden. &lt;code>window.nostr.getPublicKey()&lt;/code> gibt den Public Key des Benutzers als Hex-String zurück, ohne dass der Private Key jemals an die aufrufende Seite freigegeben wird. &lt;code>window.nostr.signEvent(event)&lt;/code> nimmt ein partielles Event mit &lt;code>created_at&lt;/code>, &lt;code>kind&lt;/code>, &lt;code>tags&lt;/code> und &lt;code>content&lt;/code> entgegen und gibt das vollständige signierte Event zurück, mit hinzugefügtem &lt;code>id&lt;/code>, &lt;code>pubkey&lt;/code> und &lt;code>sig&lt;/code>. Der wichtige Punkt ist, dass der Private Key niemals den isolierten Kontext der Erweiterung verlässt; die Webanwendung reicht ein unsigniertes Event ein und erhält ein signiertes zurück.&lt;/p>
&lt;p>Die optionalen Methoden decken Verschlüsselung ab: &lt;code>window.nostr.nip04.encrypt&lt;/code> und &lt;code>window.nostr.nip04.decrypt&lt;/code> für das ältere NIP-04-Schema (jetzt deprecated) und &lt;code>window.nostr.nip44.encrypt&lt;/code> und &lt;code>window.nostr.nip44.decrypt&lt;/code> für das aktuelle NIP-44-Schema. Erweiterungen, die NIP-44 unterstützen, können daher sowohl Direct-Message-Verschlüsselung als auch jede andere Anwendung, die pubkey-gebundene Verschlüsselung benötigt, verarbeiten, ohne dass die aufrufende Seite den nsec sieht.&lt;/p>
&lt;p>Die Spezifikation enthält auch eine Empfehlung an Erweiterungs-Autoren: Skripte mit &lt;code>&amp;quot;run_at&amp;quot;: &amp;quot;document_end&amp;quot;&lt;/code> im Erweiterungs-Manifest zu laden, sodass &lt;code>window.nostr&lt;/code> synchron verfügbar ist, wenn die Seite lädt, wodurch Race-Conditions vermieden werden, bei denen ein Client &lt;code>window.nostr&lt;/code> prüft, bevor die Erweiterung es injiziert hat.&lt;/p>
&lt;p>Ein wichtiges Beispiel für NIP-07 in Aktion ist das oben behandelte Keycast-Projekt. Das Keycast-Web-Frontend nutzt NIP-07, um NIP-98-HTTP-Auth-Events zu signieren: die SvelteKit-App handhabt den nsec des Benutzers nie direkt. Sie ruft &lt;code>window.nostr.signEvent&lt;/code> auf, um den Auth-Header zu erzeugen, und sendet diesen Header dann an die Keycast-API. Diese Architektur bedeutet, dass das Schlüsselmaterial während des gesamten Team-Key-Management-Flows in der Browser-Erweiterung bleibt.&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-identitäten-in-profilen">NIP Deep Dive: NIP-39 (externe Identitäten in Profilen)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/39.md">NIP-39&lt;/a> definiert, wie ein Nostr-Benutzer die Kontrolle über externe Plattform-Identitäten in seinem Profil deklarieren kann. Jede Deklaration verwendet einen &lt;code>i&lt;/code> Tag innerhalb eines kind:10011-Events und behauptet den Besitz eines bestimmten Kontos auf einer anderen Plattform zusammen mit einem Beweis, der unabhängig verifiziert werden kann.&lt;/p>
&lt;p>Jedes Tag folgt dem Format &lt;code>[&amp;quot;i&amp;quot;, &amp;quot;platform:identity&amp;quot;, &amp;quot;proof&amp;quot;]&lt;/code>, wobei &lt;code>platform:identity&lt;/code> den Plattformnamen und den Benutzernamen mit einem Doppelpunkt-Separator kombiniert (&lt;code>github:semisol&lt;/code>, &lt;code>twitter:semisol_public&lt;/code>). &lt;code>proof&lt;/code> zeigt auf ein verifizierbares Artefakt auf der Plattform selbst.&lt;/p>
&lt;p>Für GitHub ist der Beweis eine Gist-ID. Der Benutzer erstellt aus seinem GitHub-Konto einen öffentlichen Gist, der den Text &lt;code>Verifying that I control the following Nostr public key: npub1...&lt;/code> enthält. Ein Client, der die Behauptung verifiziert, holt &lt;code>https://gist.github.com/&amp;lt;identity&amp;gt;/&amp;lt;proof&amp;gt;&lt;/code> und prüft, dass der Gist vom beanspruchten GitHub-Benutzernamen verfasst wurde und den erwarteten pubkey enthält. Für Twitter ist der Beweis eine Tweet-ID, für Mastodon eine Post-ID und für Telegram eine Nachrichten-Referenz in einer öffentlichen Gruppe.&lt;/p>
&lt;p>Der Identitätsanbieter-Name darf nur &lt;code>a-z&lt;/code>, &lt;code>0-9&lt;/code> und die Zeichen &lt;code>._-/&lt;/code> enthalten und darf &lt;code>:&lt;/code> nicht enthalten. Identitätsnamen sollten auf Kleinbuchstaben normalisiert werden, wobei der primäre Alias verwendet wird, wenn mehrere existieren.&lt;/p>
&lt;p>Die diese Woche stattfindende Namecoin-&lt;code>.bit&lt;/code>-NIP-05-Diskussion zeigt die Rolle von NIP-39 im breiteren Identity-Stack: es bietet einen standardisierten, relay-agnostischen Weg, einen Nostr-Key mit einer etablierten Identität andernorts zu kreuzverweisen, ohne eine zentrale Verifikationsstelle zu benötigen. Ein Client kann den Beweis unabhängig verifizieren, indem er ein öffentliches Artefakt auf der benannten Plattform holt, und der Beweis ist an den spezifischen Nostr-pubkey im Gist- oder Tweet-Text gebunden, nicht an eine generische Plattform-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>Das war&amp;rsquo;s für diese Woche. Wenn du an etwas baust oder Neuigkeiten zu teilen hast, DM uns auf Nostr oder finde uns unter &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/de/newsletters/2026-05-13-newsletter/</link><pubDate>Wed, 13 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zur Nostr-Protokollentwicklung.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#nostr-vpn-liefert-acht-releases-gipfelnd-in-v4010">acht Releases in sieben Tagen&lt;/a> von einem neu gestalteten Geräte-Pairing-Flow über einen FIPS-AEAD-Tausch, der den TCP-Durchsatz ungefähr verdoppelt. &lt;a href="https://github.com/marmot-protocol">Marmot Protocol&lt;/a> (die Grundlage für &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>) liefert ein &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#marmot-white-noise-liefert-blockierungskomplettes-frontend-und-31-fusionierte-prs-%c3%bcber-mdk-und-backend">Frontend-Release, das das Benutzer-Blockierungsfeature abschließt&lt;/a>, und 31 fusionierte PRs über MDK und Backend. &lt;a href="https://github.com/0ceanSlim/grain">Grain&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#grain-v060-f%c3%bcgt-nip-40-nip-50-nip-70-und-nip-45-hinzu">v0.6.0&lt;/a> mit vier neuen NIP-Implementierungen in einem Meilenstein. &lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#citrine-v300-pre1-bringt-eingebauten-tor-und-relay-aggregation">v3.0.0-pre1&lt;/a> mit eingebautem Tor und Relay-Aggregation. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#amber-v610-pre2-verbessert-neuen-app-verbindungsflow">v6.1.0-pre2&lt;/a> mit Verbindungsflow- und Signierungsverbesserungen. &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#alby-hub-v1222-f%c3%bcgt-ki-und-agents-seite-und-core-lightning-unterst%c3%bctzung-hinzu">v1.22.2&lt;/a> mit einer KI- und Agents-Seite und Core-Lightning-Integration. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> liefert gleichzeitige Taker-Bonds und &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#mostro-liefert-gleichzeitige-taker-bonds-und-mostro-core-v0110">mostro-core v0.11.0&lt;/a>. &lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#jumble-liefert-f%c3%bcnf-releases-mit-zuletzt-gesucht-und-account-persistenz">fünf Releases&lt;/a> mit Suchverlauf und Account-Daten-Persistenz-Fixes. &lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#nostrord-liefert-gruppen-share-modals-medien-upload-und-arch-linux-pakete">drei Releases&lt;/a> mit Gruppen-Share-Modals und Arch-Linux-Paketen. &lt;a href="https://flotilla.social">Flotilla&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#flotilla-180-liefert-videoanrufe-e-mail-rendering-und-raum-erw%c3%a4hnungen">1.8.0&lt;/a> mit Videoanrufen, E-Mail-Rendering und Raum-Erwähnungen. &lt;a href="https://calendar.formstr.app">Calendar by Formstr&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#calendar-by-formstr-liefert-v151-mit-terminplanung-und-android-kalendersync">v1.5.1&lt;/a> mit Terminplanung und Android-Kalendersync. &lt;a href="https://github.com/Negr087/tamagostrich">Tamagostrich&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#tamagostrich-startet-ein-dezentralisiertes-nip-78-tamagotchi-mit-sats-belohnungen">startet ein dezentralisiertes NIP-78-Tamagotchi mit Sats-Belohnungen&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zur Nostr-Protokollentwicklung.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#nostr-vpn-liefert-acht-releases-gipfelnd-in-v4010">acht Releases in sieben Tagen&lt;/a> von einem neu gestalteten Geräte-Pairing-Flow über einen FIPS-AEAD-Tausch, der den TCP-Durchsatz ungefähr verdoppelt. &lt;a href="https://github.com/marmot-protocol">Marmot Protocol&lt;/a> (die Grundlage für &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>) liefert ein &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#marmot-white-noise-liefert-blockierungskomplettes-frontend-und-31-fusionierte-prs-%c3%bcber-mdk-und-backend">Frontend-Release, das das Benutzer-Blockierungsfeature abschließt&lt;/a>, und 31 fusionierte PRs über MDK und Backend. &lt;a href="https://github.com/0ceanSlim/grain">Grain&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#grain-v060-f%c3%bcgt-nip-40-nip-50-nip-70-und-nip-45-hinzu">v0.6.0&lt;/a> mit vier neuen NIP-Implementierungen in einem Meilenstein. &lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#citrine-v300-pre1-bringt-eingebauten-tor-und-relay-aggregation">v3.0.0-pre1&lt;/a> mit eingebautem Tor und Relay-Aggregation. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#amber-v610-pre2-verbessert-neuen-app-verbindungsflow">v6.1.0-pre2&lt;/a> mit Verbindungsflow- und Signierungsverbesserungen. &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#alby-hub-v1222-f%c3%bcgt-ki-und-agents-seite-und-core-lightning-unterst%c3%bctzung-hinzu">v1.22.2&lt;/a> mit einer KI- und Agents-Seite und Core-Lightning-Integration. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> liefert gleichzeitige Taker-Bonds und &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#mostro-liefert-gleichzeitige-taker-bonds-und-mostro-core-v0110">mostro-core v0.11.0&lt;/a>. &lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#jumble-liefert-f%c3%bcnf-releases-mit-zuletzt-gesucht-und-account-persistenz">fünf Releases&lt;/a> mit Suchverlauf und Account-Daten-Persistenz-Fixes. &lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#nostrord-liefert-gruppen-share-modals-medien-upload-und-arch-linux-pakete">drei Releases&lt;/a> mit Gruppen-Share-Modals und Arch-Linux-Paketen. &lt;a href="https://flotilla.social">Flotilla&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#flotilla-180-liefert-videoanrufe-e-mail-rendering-und-raum-erw%c3%a4hnungen">1.8.0&lt;/a> mit Videoanrufen, E-Mail-Rendering und Raum-Erwähnungen. &lt;a href="https://calendar.formstr.app">Calendar by Formstr&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#calendar-by-formstr-liefert-v151-mit-terminplanung-und-android-kalendersync">v1.5.1&lt;/a> mit Terminplanung und Android-Kalendersync. &lt;a href="https://github.com/Negr087/tamagostrich">Tamagostrich&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-13-newsletter/#tamagostrich-startet-ein-dezentralisiertes-nip-78-tamagotchi-mit-sats-belohnungen">startet ein dezentralisiertes NIP-78-Tamagotchi mit Sats-Belohnungen&lt;/a>.&lt;/p>
&lt;h2 id="top-geschichten">Top-Geschichten&lt;/h2>
&lt;h3 id="nostr-vpn-liefert-acht-releases-gipfelnd-in-v4010">Nostr VPN liefert acht Releases, gipfelnd in v4.0.10&lt;/h3>
&lt;p>&lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a>, das Rust-basierte dezentralisierte Mesh-VPN, das Nostr für Peer-Discovery und ein FIPS-gestütztes Noise-Protokoll für die Datenebene verwendet, lieferte acht Releases von &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.0.1">v4.0.1&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.0.10">v4.0.10&lt;/a> über macOS, Linux, Windows und Android diese Woche.&lt;/p>
&lt;p>Die Hauptänderung ist in &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.0.8">v4.0.8&lt;/a>: Das AEAD wurde vom RustCrypto-&lt;code>chacha20poly1305&lt;/code>-Soft-Backend auf BoringSSLs ChaCha20-Poly1305 in &lt;code>ring&lt;/code> 0.17 getauscht, das hand-abgestimmtes NEON auf aarch64 und AVX2/AVX-512 auf x86_64 verwendet. Docker-Benchmarks auf identischer Hardware zeigten, dass der 2-Node-Direkt-TCP-Durchsatz von 437 auf 1097 Mbps sprang. Das Drahtformat ist unverändert.&lt;/p>
&lt;p>Früher in der Woche baute &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.0.1">v4.0.1&lt;/a> den Geräte-Pairing-Flow mit Exit-Node-Leckschutz, einem einheitlichen WireGuard-Konfigurationsblock unter Exit-Nodes und signierten/notarisierten macOS-Artefakten neu. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v4.0.9">v4.0.9&lt;/a> fügte &lt;code>sendmmsg(2)&lt;/code>-Batching auf dem UDP-Sendepfad hinzu, amortisierte Pro-Paket-&lt;code>sendto&lt;/code>-Syscalls über 8-Paket-Batches und schob TCP Single-Stream von 1066 auf 1548 Mbps (1,45×).&lt;/p>
&lt;h3 id="marmot--white-noise-liefert-blockierungskomplettes-frontend-und-31-fusionierte-prs-über-mdk-und-backend">Marmot / White Noise liefert blockierungskomplettes Frontend und 31 fusionierte PRs über MDK und Backend&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, die private Gruppen-Messaging-App, die auf dem &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-MLS-basierten Protokoll aufgebaut ist, lieferte &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.5.7&amp;#43;24">v2026.5.7+24&lt;/a> am 7. Mai als das Frontend-Release, das das Blockierungsfeature-Set abschließt. Das vorherige Release lieferte Stummschalten, Suche und Archivierung; dieses vollendet die Blockierung. Ein blockierter Benutzer ist jetzt aus Einladungen, Chat-Vorschauen, Nachrichtenzeitlinien, Suchergebnissen und Benachrichtigungen ausgeblendet, und seine Nachrichten zählen nicht mehr zu ungelesenen Abzeichen. Video-Anhänge funktionieren Ende-zu-Ende über Geräte hinweg.&lt;/p>
&lt;p>Die unterstützende Arbeit umfasst 31 fusionierte PRs über MDK und das Backend. MDK landete &lt;a href="https://github.com/marmot-protocol/mdk/pull/258">PR #258&lt;/a> mit dem Extension-v3-Drahtformat und &lt;code>disappearing_message_secs&lt;/code>-Schema, was die Grundlage für verschwindende Nachrichten legt.&lt;/p>
&lt;h3 id="grain-v060-fügt-nip-40-nip-50-nip-70-und-nip-45-hinzu">Grain v0.6.0 fügt NIP-40, NIP-50, NIP-70 und NIP-45 hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/grain">Grain&lt;/a>, die Go-basierte Nostr-Relay- und Client-Bibliothek, lieferte &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.6.0">v0.6.0&lt;/a> am 6. Mai mit vier neuen NIP-Implementierungen und einem Produktionshärtungs-Pass. Der v0.6-Meilenstein fügt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/40.md">NIP-40&lt;/a>-Event-Ablauf, &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50&lt;/a>-Volltextsuche, &lt;a href="https://github.com/nostr-protocol/nips/blob/master/70.md">NIP-70&lt;/a>-geschützte Events und &lt;a href="https://github.com/nostr-protocol/nips/blob/master/45.md">NIP-45&lt;/a>-Event-Zählungen hinzu.&lt;/p>
&lt;p>Event-Ablauf über NIP-40 lässt Publisher einen Ablaufzeitstempel setzen, damit der Relay Events nach ihrem Ablauf verwirft, in der Praxis für ephemere Präsenz-Events und zeitlich begrenzte Ankündigungen verwendet. NIP-50-Volltextsuche lässt Clients &lt;code>search&lt;/code>-Filter in REQ-Nachrichten ausgeben und den Relay die Abgleicharbeit machen. Geschützte Events über NIP-70 verhindern, dass Relays Events ohne die ausdrückliche Erlaubnis des Autors weitergeben. NIP-45-Zählabfragen lassen Clients einen Relay fragen, eine Anzahl übereinstimmender Events zurückzugeben.&lt;/p>
&lt;h2 id="lieferungen-dieser-woche">Lieferungen dieser Woche&lt;/h2>
&lt;h3 id="citrine-v300-pre1-bringt-eingebauten-tor-und-relay-aggregation">Citrine v3.0.0-pre1 bringt eingebauten Tor und Relay-Aggregation&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a>, die Android-App, die ein Telefon in einen Nostr-Relay-Knoten verwandelt, lieferte &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v3.0.0-pre1">v3.0.0-pre1&lt;/a> als Pre-Release diese Woche. Die Hauptzusätze sind eingebaute Tor-Unterstützung für datenschutzerhaltenden Relay-Zugang und Relay-Aggregation, bei der Citrine Events von mehreren Upstream-Relays abrufen und lokalen Clients bereitstellen kann. &lt;a href="https://github.com/greenart7c3/Citrine/pull/139">PR #139&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-77/">NIP-77 (Negentropy-Abgleich)&lt;/a>-Unterstützung für effizienten set-reconciliation-basierten Event-Sync hinzu.&lt;/p>
&lt;h3 id="amber-v610-pre2-verbessert-neuen-app-verbindungsflow">Amber v6.1.0-pre2 verbessert neuen App-Verbindungsflow&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die Android-Signer-App für &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android Signer Application)&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>, lieferte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0-pre2">v6.1.0-pre2&lt;/a>. Die Hauptfixes: Der Signer-Dialog schließt sich jetzt korrekt nach dem Akzeptieren einer Bunker-Anfrage, fehlerhafte Bunker-Anfragen zeigen einen Invalid-Request-Bildschirm, und Rate-Limiting wird für intentbasierte Signieranfragen hinzugefügt.&lt;/p>
&lt;h3 id="alby-hub-v1222-fügt-ki--und-agents-seite-und-core-lightning-unterstützung-hinzu">Alby Hub v1.22.2 fügt KI- und Agents-Seite und Core-Lightning-Unterstützung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a>, der selbstverwahrende Lightning-Knoten und Nostr-Wallet-Connect-Server, lieferte &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.22.2">v1.22.2&lt;/a> mit mehreren wichtigen Zusätzen. Die neue KI- und Agents-Seite legt Alby Hubs Lightning- und NWC-Fähigkeiten für KI-Agents und MCP-kompatible Tools frei. Das meistgewünschte Feature seit dem Launch wurde geliefert: Core Lightning (CLN) ist jetzt ein unterstütztes Backend neben LND und LDK.&lt;/p>
&lt;h3 id="mostro-liefert-gleichzeitige-taker-bonds-und-mostro-core-v0110">Mostro liefert gleichzeitige Taker-Bonds und mostro-core v0.11.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, das Peer-to-Peer-Bitcoin-Handelsprotokoll auf Nostr, fusionierte 11 PRs diese Woche und advance das Taker-Bond-Feature, das Griefing verhindert, indem beide Parteien Mittel sperren müssen, bevor ein Handel fortschreitet. &lt;a href="https://github.com/MostroP2P/mostro/pull/733">PR #733&lt;/a> implementiert gleichzeitige Taker-Bonds, bei denen mehrere Taker gleichzeitig Bond-Rechnungen einreichen können und der erste, der sperrt, gewinnt.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro-core">mostro-core&lt;/a> lieferte &lt;a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.11.0">v0.11.0&lt;/a> mit den passenden Bibliothekszusätzen, und &lt;a href="https://github.com/MostroP2P/mostro-cli">mostro-cli&lt;/a> lieferte &lt;a href="https://github.com/MostroP2P/mostro-cli/releases/tag/v0.15.0">v0.15.0&lt;/a>.&lt;/p>
&lt;h3 id="jumble-liefert-fünf-releases-mit-zuletzt-gesucht-und-account-persistenz">Jumble liefert fünf Releases mit Zuletzt-Gesucht und Account-Persistenz&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a>, der relay-zentrische Nostr-Client als Web-App und Electron-Desktop-App, lieferte fünf Releases diese Woche: &lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.2">v26.5.2&lt;/a> bis &lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.6">v26.5.6&lt;/a>. &lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.5">v26.5.5&lt;/a> fügt Suche-zuletzt-Verlauf hinzu. Ein kritischer Persistenz-Bug ist in &lt;a href="https://github.com/CodyTseng/jumble/releases/tag/v26.5.6">v26.5.6&lt;/a> behoben: Accounts und gecachte Daten überleben jetzt einen vollständigen App-Neustart.&lt;/p>
&lt;h3 id="nostrord-liefert-gruppen-share-modals-medien-upload-und-arch-linux-pakete">Nostrord liefert Gruppen-Share-Modals, Medien-Upload und Arch-Linux-Pakete&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a>, ein Nostr-Client für NIP-29-relay-basierte Gruppen, lieferte &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.0">v1.0.0&lt;/a>, &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.1">v1.0.1&lt;/a> und &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.2">v1.0.2&lt;/a> diese Woche. &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.1">v1.0.1&lt;/a> liefert Arch-Linux-Pakete über AUR als &lt;code>nostrord-bin&lt;/code> mit PGP-signierten &lt;code>.pkg.tar.zst&lt;/code>-Artefakten, und &lt;a href="https://github.com/nostrord/nostrord/releases/tag/v1.0.2">v1.0.2&lt;/a> fügt Gruppen-Sharing über &lt;a href="https://github.com/nostrord/nostrord/pull/49">PR #49&lt;/a> mit einem Share-Modal hinzu, das sowohl einen &lt;code>nostr:naddr&lt;/code>-URI als auch einen webfreundlichen &lt;code>nostrord.com/open/&lt;/code>-Link generiert.&lt;/p>
&lt;h3 id="fips-v030-liefert-plattformübergreifende-reichweite-nostr-peer-discovery-und-ein-gateway-für-unmodifizierte-lans">FIPS v0.3.0 liefert plattformübergreifende Reichweite, Nostr-Peer-Discovery und ein Gateway für unmodifizierte LANs&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> (Free Internetworking Peering System), das Nostr-native Mesh-Netzwerk-Projekt, lieferte &lt;a href="https://github.com/jmcorgan/fips/releases/tag/v0.3.0">v0.3.0&lt;/a> diese Woche als wichtigen Meilenstein, der das Projekt von Linux-only auf Linux, macOS, Windows und OpenWrt erweitert. Der Hauptzusatz ist Nostr-vermittelte Peer-Discovery mit STUN-unterstützter UDP-NAT-Traversal. Knoten veröffentlichen jetzt signierte Overlay-Adverts als kind:37195-parametrisierte ersetzbare Events auf öffentlichen Nostr-Relays.&lt;/p>
&lt;h3 id="flotilla-180-liefert-videoanrufe-e-mail-rendering-und-raum-erwähnungen">Flotilla 1.8.0 liefert Videoanrufe, E-Mail-Rendering und Raum-Erwähnungen&lt;/h3>
&lt;p>&lt;a href="https://flotilla.social">Flotilla&lt;/a>, die &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-relay-basierte Gruppen-Chat-App von hodlbod, lieferte &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.8.0">1.8.0&lt;/a> diese Woche mit mehreren bemerkenswerten Zusätzen. Sprach-Räume unterstützen jetzt Video: Teilnehmer können Kameras einschalten oder ihren Bildschirm während eines Anrufs teilen. E-Mail-Rendering kommt über ein Update der welshman-Bibliothek: Flotilla kann jetzt Nachrichten empfangen, die eingebettete HTML-E-Mail-Inhalte enthalten, und rendert das HTML inline.&lt;/p>
&lt;h3 id="calendar-by-formstr-liefert-v151-mit-terminplanung-und-android-kalendersync">Calendar by Formstr liefert v1.5.1 mit Terminplanung und Android-Kalendersync&lt;/h3>
&lt;p>&lt;a href="https://calendar.formstr.app">Calendar by Formstr&lt;/a>, eine Nostr-native Kalender-App, lieferte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.5.0">v1.5.0&lt;/a> am 10. Mai und &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.5.1">v1.5.1&lt;/a> am 11. Mai. Terminplanung kommt in &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/89">PR #89&lt;/a>, das Benutzern erlaubt, buchbare Zeitfenster in ihrem Kalender zu erstellen. Schreibgeschützte Android-Kalender-Integration in &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/123">PR #123&lt;/a> synchronisiert Nostr-Events mit dem Gerätekalender.&lt;/p>
&lt;h2 id="in-entwicklung">In Entwicklung&lt;/h2>
&lt;h3 id="amethyst-fügt-geplante-beiträge-nip-9a-community-regeln-und-ein-desktop-local-relay-hinzu">Amethyst fügt geplante Beiträge, NIP-9A-Community-Regeln und ein Desktop-Local-Relay hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der funktionsreiche Android-Client, fusionierte 78 PRs diese Woche über mehrere wichtige Feature-Bereiche. Geplante Beiträge landen auf Android in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2765">PR #2765&lt;/a>: Benutzer können eine Notiz verfassen und eine zukünftige Veröffentlichungszeit setzen. Ein Desktop-Build erhält ein eingebettetes lokales Relay mit SQLite-Event-Persistenz in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2841">PR #2841&lt;/a>.&lt;/p>
&lt;h3 id="shopstr-fügt-mcp-audit-protokollierung-und-sitzungssicherheit-hinzu">Shopstr fügt MCP-Audit-Protokollierung und Sitzungssicherheit hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, der dezentralisierte Marktplatz auf Nostr, fusionierte fünf PRs diese Woche. Audit-Protokollierung für die MCP-Tool-Schicht landet in &lt;a href="https://github.com/shopstr-eng/shopstr/pull/456">PR #456&lt;/a>, und Sitzungssicherheit wird in &lt;a href="https://github.com/shopstr-eng/shopstr/pull/477">PR #477&lt;/a> verschärft.&lt;/p>
&lt;h3 id="dart-ndk-fügt-web-unterstützung-und-seal-signatur-verifizierung-hinzu">Dart NDK fügt Web-Unterstützung und Seal-Signatur-Verifizierung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/relaystr/dart_ndk">Dart NDK&lt;/a>, die Dart-Bibliothek für Nostr-Protokollentwicklung, fusionierte sechs PRs diese Woche. Web-Unterstützung kommt in &lt;code>SembastCacheManager&lt;/code> über &lt;a href="https://github.com/relaystr/dart_ndk/pull/571">PR #571&lt;/a>, und Seal-Signatur-Verifizierung landet in &lt;a href="https://github.com/relaystr/dart_ndk/pull/595">PR #595&lt;/a> für den &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a>-Flow.&lt;/p>
&lt;h2 id="neue-projekte">Neue Projekte&lt;/h2>
&lt;h3 id="tamagostrich-startet-ein-dezentralisiertes-nip-78-tamagotchi-mit-sats-belohnungen">Tamagostrich startet ein dezentralisiertes NIP-78-Tamagotchi mit Sats-Belohnungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/Negr087/tamagostrich">Tamagostrich&lt;/a> ist ein browser-basiertes virtuelles Haustierspiel, das beim IDENTITY Hackathon 2026 gestartet wurde, bei dem ein Baby-Strauß, Nori, sich durch deine Nostr-Social-Aktivität entwickelt. Der Haustierstatus lebt in einem &lt;a href="https://nostrcompass.org/de/topics/nip-78/">NIP-78&lt;/a>-kind:30078-Event, damit er über jedes Gerät synchronisiert wird, das dasselbe Schlüsselpaar teilt. Meilenstein-Belohnungen zahlen automatisch in Sats über &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a> aus: 50 Sats auf Level 5, 210 Sats auf Level 10 und 420 Sats auf dem maximalen Level 21.&lt;/p>
&lt;h2 id="protokoll--und-spezifikationsarbeit">Protokoll- und Spezifikationsarbeit&lt;/h2>
&lt;p>Das NIPs-Repository fusionierte &lt;a href="https://github.com/nostr-protocol/nips/pull/2338">PR #2338&lt;/a>, das README-Referenzlinks für Marmot-Event-Kinds und den Geocaching-Kind 37516 behebt. Fünf neue Vorschläge wurden diese Woche eröffnet:&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2331">PR #2331&lt;/a> schlägt &lt;strong>NIP-9A: Verifizierbare Community-Regeln&lt;/strong> vor, das kind:34551 einführt, ein parametrisiertes ersetzbares Event, das einem Community-Eigentümer erlaubt, ein maschinenlesbares, kryptografisch signiertes Regelwerk zu veröffentlichen.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2335">PR #2335&lt;/a> schlägt &lt;strong>Reservierungs-Events für Nostr-Marktplätze&lt;/strong> vor, das kind:32122 (parametrisierte ersetzbare Reservierungs-Events), kind:1326 (Append-only-Übergangs-Audit-Records) und kind:32124 (Post-Trade-Bewertungen) definiert.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2334">PR #2334&lt;/a> schlägt &lt;strong>Treuhandservices für Nostr-Marktplätze&lt;/strong> vor, das kind:30303 für Treuhandoperatoren verwendet, um ihre EVM-Vertragsadresse und Gebührenplan zu deklarieren.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2333">PR #2333&lt;/a> schlägt &lt;strong>Unterkunftslisten-Profile für NIP-99-Marktplatz-Listings&lt;/strong> vor, das NIP-99-klassifizierte Listings mit H3-Geospatial-Index-&lt;code>g&lt;/code>-Tags erweitert.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2332">PR #2332&lt;/a> schlägt &lt;strong>NIP-BC: Onchain-Zaps (kind 8333)&lt;/strong> vor, das eine direkte Identität zwischen Nostr-Schlüsseln und Bitcoin-Taproot-Adressen ausnutzt: Ein Nostr-Pubkey ist ein 32-Byte-x-only-secp256k1-Schlüssel, und so ist auch ein BIP-341-P2TR-interner Schlüssel.&lt;/p>
&lt;h2 id="nip-tieftauchgang-nip-78-app-spezifische-daten">NIP-Tieftauchgang: NIP-78 (App-spezifische Daten)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-78/">NIP-78&lt;/a> definiert eine Standardmethode für Anwendungen, beliebige private oder öffentliche Daten im Namen eines Benutzers über Nostr-Events zu speichern. Der zentrale Event-Kind ist 30078, ein parametrisiertes ersetzbares Event, bei dem der &lt;code>d&lt;/code>-Tag eine anwendungsdefinierte Bezeichner-Zeichenfolge ist.&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;64-char 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;64-char 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">1747180800&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;tamagostrich-pet-state&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;level\&amp;#34;:7,\&amp;#34;xp\&amp;#34;:1420,\&amp;#34;happiness\&amp;#34;:82,\&amp;#34;energy\&amp;#34;:61}&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;128-char 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>Die primäre Motivation ist die geräteübergreifende Synchronisation ohne zentralen Server. Jeder Client, der den öffentlichen Schlüssel eines Benutzers und den &lt;code>d&lt;/code>-Tag der Anwendung kennt, kann den aktuellen Zustand aus dem Relay-Set des Benutzers abrufen. Für private Anwendungsdaten können NIP-78-Events den Inhaltsbereich mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (Versionierte Verschlüsselung)&lt;/a> oder dem älteren &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> verschlüsseln.&lt;/p>
&lt;hr>
&lt;p>&lt;strong>Primäre Quellen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/78.md">NIP-78-Spezifikation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/Negr087/tamagostrich">Tamagostrich&lt;/a>: Produktionsimplementierung diese Woche&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Siehe auch:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51: Listen&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65: Relay-Listen-Metadaten&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="nip-tieftauchgang-nip-98-http-auth">NIP-Tieftauchgang: NIP-98 (HTTP-Auth)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a> definiert ein HTTP-Authentifizierungsschema, das Nostr-Schlüsselpaaren erlaubt, Anfragen an HTTP-Server zu autorisieren, ohne Benutzernamen, Passwörter oder OAuth-Token zu benötigen. Ein Client erstellt ein kurzlebiges Nostr-Event von kind 27235, signiert es mit seinem privaten Schlüssel, base64-kodiert das JSON und sendet es in einem &lt;code>Authorization: Nostr &amp;lt;base64&amp;gt;&lt;/code>-HTTP-Header.&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;64-char 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;64-char 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">1747180800&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">27235&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;u&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;https://files.example.com/upload&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;method&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;POST&amp;#34;&lt;/span>],
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> [&lt;span style="color:#e6db74">&amp;#34;payload&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;&amp;lt;sha256-hash-of-request-body&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;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;128-char 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>Das Kind-27235-Event enthält die HTTP-Methode in einem &lt;code>method&lt;/code>-Tag, die vollständige Anfrage-URL in einem &lt;code>u&lt;/code>-Tag und einen &lt;code>created_at&lt;/code>-Zeitstempel. Der Server validiert die Signatur, prüft, dass die Methode und URL mit der tatsächlichen Anfrage übereinstimmen, und verifiziert, dass der Zeitstempel aktuell ist (innerhalb weniger Minuten), um Replay-Angriffe zu verhindern.&lt;/p>
&lt;p>NIP-98 wird in Blossom (&lt;a href="https://github.com/hzrd149/blossom/blob/master/buds/01.md">BUD-01&lt;/a>) zur Authentifizierung von Blob-Uploads und -Downloads verwendet. Routstr verwendet es für HTTP-API-Zugriffskontrolle auf Pro-Anfrage-Basis. Sprout verwendet es für Git-Transport-Auth und REST-Relay-Zugang.&lt;/p>
&lt;hr>
&lt;p>&lt;strong>Primäre Quellen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98-Spezifikation&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://github.com/hzrd149/blossom/blob/master/buds/01.md">BUD-01: Blossom-Upload-Auth&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Siehe auch:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96: HTTP-Dateispeicher-Integration&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>Das war es für diese Woche. Wenn du etwas baust oder Neuigkeiten zu teilen hast, sende uns eine DM auf Nostr oder finde uns auf &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #21</title><link>https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/</link><pubDate>Wed, 06 May 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/marmot-protocol">Marmot Protocol&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#mdk-080-f%c3%bcgt-mip-05-benachrichtigungs-primitive-und-adressierbare-schl%c3%bcsselpakete-hinzu">MDK 0.8.0&lt;/a> mit den ersten MIP-05-Benachrichtigungs-Primitiven, adressierbaren &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51 (Listen)&lt;/a>-Schlüsselpaketen und einem verschärften Sicherheitsreview. &lt;a href="https://github.com/lawalletio/lawallet-nwc">LaWallet NWC&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#lawallet-nwc-v0100-liefert-das-vollst%c3%a4ndige-monorepo-und-end-user-wallet">v0.10.0&lt;/a> als größten Release seit der OpenSats-Finanzierung mit einem vollständigen Admin-Dashboard, End-User-Wallet, End-to-End-Aktivitätsprotokoll und einem neuen &lt;code>LightningAddress 1→N&lt;/code>- und &lt;code>NWCConnection&lt;/code>-Schema. &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> bringt einen &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#amethyst-stabilisiert-nests-mit-keep-alive-jwt-resilienz-und-lebenszyklus-abonnements">Nests-Stabilitätssprint&lt;/a> mit Audio-Gap-Beseitigung beim JWT-Refresh, lebenszyklusbewussten Schlüsseldatenabonnements, Relay-Keep-Alive-Wiederverbindung und einem animierten Sprecher-Teilnehmer-Indikator. &lt;a href="https://github.com/DanConwayDev/ngit-cli">ngit&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#ngit-v242-und-v243-beheben-grasp-server-erkennung-und-multi-remote-state-events">v2.4.2&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#ngit-v242-und-v243-beheben-grasp-server-erkennung-und-multi-remote-state-events">v2.4.3&lt;/a> zur Behebung der GRASP-Server-Erkennung bei PR-Einreichungen und der Multi-Remote-State-Event-Filterung. &lt;a href="https://github.com/0ceanSlim/grain">GRAIN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#grain-v054-bringt-produktionsh%c3%a4rtung-und-einen-stillen-datenverlust-fix">v0.5.4&lt;/a> mit Produktionshärtung und einem stillen Datenverlust-Fix im Docker-Quickstart. &lt;a href="https://github.com/MostroP2P/mostro-core">Mostro Core&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#mostro-core-v0101-f%c3%bcgt-pgp-signierte-release-artefakte-hinzu">v0.10.1&lt;/a> mit PGP-signierten Release-Artefakten als Nachfolger des v0.10.0 P2P-Chat-Protokollmoduls der letzten Woche. &lt;a href="https://github.com/clave-mobile">Clave&lt;/a> startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#clave-v020-startet-multi-account-unter-ios-mit-nip-46-nostr-connect-signierung">v0.2.0&lt;/a> mit Multi-Account-Unterstützung unter iOS.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/marmot-protocol">Marmot Protocol&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#mdk-080-f%c3%bcgt-mip-05-benachrichtigungs-primitive-und-adressierbare-schl%c3%bcsselpakete-hinzu">MDK 0.8.0&lt;/a> mit den ersten MIP-05-Benachrichtigungs-Primitiven, adressierbaren &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51 (Listen)&lt;/a>-Schlüsselpaketen und einem verschärften Sicherheitsreview. &lt;a href="https://github.com/lawalletio/lawallet-nwc">LaWallet NWC&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#lawallet-nwc-v0100-liefert-das-vollst%c3%a4ndige-monorepo-und-end-user-wallet">v0.10.0&lt;/a> als größten Release seit der OpenSats-Finanzierung mit einem vollständigen Admin-Dashboard, End-User-Wallet, End-to-End-Aktivitätsprotokoll und einem neuen &lt;code>LightningAddress 1→N&lt;/code>- und &lt;code>NWCConnection&lt;/code>-Schema. &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> bringt einen &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#amethyst-stabilisiert-nests-mit-keep-alive-jwt-resilienz-und-lebenszyklus-abonnements">Nests-Stabilitätssprint&lt;/a> mit Audio-Gap-Beseitigung beim JWT-Refresh, lebenszyklusbewussten Schlüsseldatenabonnements, Relay-Keep-Alive-Wiederverbindung und einem animierten Sprecher-Teilnehmer-Indikator. &lt;a href="https://github.com/DanConwayDev/ngit-cli">ngit&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#ngit-v242-und-v243-beheben-grasp-server-erkennung-und-multi-remote-state-events">v2.4.2&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#ngit-v242-und-v243-beheben-grasp-server-erkennung-und-multi-remote-state-events">v2.4.3&lt;/a> zur Behebung der GRASP-Server-Erkennung bei PR-Einreichungen und der Multi-Remote-State-Event-Filterung. &lt;a href="https://github.com/0ceanSlim/grain">GRAIN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#grain-v054-bringt-produktionsh%c3%a4rtung-und-einen-stillen-datenverlust-fix">v0.5.4&lt;/a> mit Produktionshärtung und einem stillen Datenverlust-Fix im Docker-Quickstart. &lt;a href="https://github.com/MostroP2P/mostro-core">Mostro Core&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#mostro-core-v0101-f%c3%bcgt-pgp-signierte-release-artefakte-hinzu">v0.10.1&lt;/a> mit PGP-signierten Release-Artefakten als Nachfolger des v0.10.0 P2P-Chat-Protokollmoduls der letzten Woche. &lt;a href="https://github.com/clave-mobile">Clave&lt;/a> startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-05-06-newsletter/#clave-v020-startet-multi-account-unter-ios-mit-nip-46-nostr-connect-signierung">v0.2.0&lt;/a> mit Multi-Account-Unterstützung unter iOS.&lt;/p>
&lt;h2 id="hauptgeschichten">Hauptgeschichten&lt;/h2>
&lt;h3 id="mdk-080-fügt-mip-05-benachrichtigungs-primitive-und-adressierbare-schlüsselpakete-hinzu">MDK 0.8.0 fügt MIP-05-Benachrichtigungs-Primitive und adressierbare Schlüsselpakete hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a>, die Rust-Kernbibliothek für das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll, lieferte &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.8.0">v0.8.0&lt;/a> am 4. Mai. Dieses Release bringt die ersten MIP-05-Benachrichtigungs-Bausteine, verschiebt MIP-00-Schlüsselpakete zu adressierbaren Events, damit das Schlüsselpaket eines Benutzers an Ort und Stelle ersetzt werden kann, verbessert die gemischte Versionskompatibilität der Gruppe, erweitert die UniFFI-Abdeckung für mobile Bindungen und verschärft Validierungspfade rund um Admin-Aktionen, Commits, Speicherung, Verschlüsselungsgrenzen und Replay-Behandlung. MIP-05-Primitive umfassen Blattindex-Helfer, die in &lt;a href="https://github.com/marmot-protocol/mdk/pull/235">PR #235&lt;/a> hinzugefügt wurden und nachgelagerten Clients genug Informationen geben, um pro-Empfänger-Push-Benachrichtigungen zu liefern, ohne die Gruppenstruktur preiszugeben. Operative Fixes landen ebenfalls: &lt;a href="https://github.com/marmot-protocol/mdk/pull/273">PR #273&lt;/a> stellt die mdk-core crates.io-Veröffentlichung wieder her, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/269">PR #269&lt;/a> legt das test_util-Modul hinter einem &lt;code>test-utils&lt;/code>-Cargo-Feature frei, damit externe Client-Suiten Marmots Test-Harness teilen können. Für Client-Teams ist die wichtigste praktische Änderung das adressierbare Schlüsselpaket: Die MIP-00-Ankündigung eines Benutzers ist jetzt ein Kind, das an Ort und Stelle ersetzt wird, sodass das Rotieren zu einem frischen Schlüsselpaket keine veralteten Events mehr über Relays verteilt.&lt;/p>
&lt;h3 id="lawallet-nwc-v0100-liefert-das-vollständige-monorepo-und-end-user-wallet">LaWallet NWC v0.10.0 liefert das vollständige Monorepo und End-User-Wallet&lt;/h3>
&lt;p>&lt;a href="https://github.com/lawalletio/lawallet-nwc">LaWallet NWC&lt;/a>, die &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>-Nostr-Wallet-Connect-Implementierung des LaWallet-Teams, lieferte &lt;a href="https://github.com/lawalletio/lawallet-nwc/releases/tag/v0.10.0">v0.10.0&lt;/a> am 30. April. Dies ist der größte Release seit der OpenSats-Finanzierung des Projekts. Er liefert das vollständige Monorepo, das komplette Admin-Dashboard, ein End-User-Wallet, ein End-to-End-Aktivitätsprotokoll, dynamisches Branding und das neue &lt;code>LightningAddress 1→N&lt;/code>- und &lt;code>NWCConnection&lt;/code>-Schema, das pro-Adresse-NWC-Routing freischaltet, wo eine Lightning-Adresse an mehrere NWC-Verbindungen unter verschiedenen RBAC-Rollen weitergeleitet werden kann. Das benutzerorientierte Wallet, das in &lt;a href="https://github.com/lawalletio/lawallet-nwc/pull/191">PR #191&lt;/a> geliefert wurde, deckt Onboarding, Home, Senden/Empfangen, Scan, Währungen, einen Aktivitätsfeed und einen Offline-Cache ab. &lt;a href="https://github.com/lawalletio/lawallet-nwc/pull/192">PR #192&lt;/a> verbindet den First-Run-Flow mit confirm-root, Community-Auto-Import und Setup-now-CTAs. &lt;a href="https://github.com/lawalletio/lawallet-nwc/pull/196">PR #196&lt;/a> fügt eine Live-OpenAPI-3.1-Referenz hinzu, die durch Scalar mit rollenbasierter Zugriffskontrolldokumentation gerendert wird, und &lt;a href="https://github.com/lawalletio/lawallet-nwc/pull/193">PR #193&lt;/a> bringt vollständige JSDoc-Abdeckung für die öffentliche &lt;code>lib/&lt;/code>-Oberfläche, damit Editor-Tooltips die Wallet-API korrekt bei Integrationsarbeiten anzeigen.&lt;/p>
&lt;h3 id="amethyst-stabilisiert-nests-mit-keep-alive-jwt-resilienz-und-lebenszyklus-abonnements">Amethyst stabilisiert Nests mit Keep-Alive, JWT-Resilienz und Lebenszyklus-Abonnements&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der funktionsreiche Android-Client, setzte die &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a>-Nests-Audio-Raum-Arbeit aus Newsletter &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#amethyst-advances-nests-audio-rooms-with-moq-interop-testing">#20&lt;/a> mit einem Stabilitätssprint fort, der sich auf die Fehlermodi konzentrierte, die Anrufe in der Produktion unterbrachen. Der Audio-Gap-Fix in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2733">PR #2733&lt;/a> überschneidet den neuen Anmeldeinformationserwerb mit dem aktiven Stream während des JWT-Refreshs, sodass der Hörer keinen Ausfall hört, wenn das Token rotiert. Ein neuer Keep-Alive-Mechanismus in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2730">PR #2730&lt;/a> verbindet getrennte Relays wieder, ohne eine manuelle Benutzeraktion zu erfordern, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2728">PR #2728&lt;/a> ersetzt das Legacy-&lt;code>KeyDataSourceSubscription&lt;/code> durch &lt;code>LifecycleAwareKeyDataSourceSubscription&lt;/code>, das die Abonnementlebensdauer an den Android-Activity-Lebenszyklus bindet, damit Hintergrundtabs keine offenen Abonnements durchsickern lassen. Androids 12+ &lt;code>ForegroundServiceStartNotAllowedException&lt;/code> wird jetzt über &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2727">PR #2727&lt;/a> graceful behandelt, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2726">PR #2726&lt;/a> fügt den lebenszyklusbewussten Abonnements eine Schonfrist hinzu, damit ein kurzes Ausschalten des Bildschirms den Anruf nicht abbricht. Hörer erhalten einen neuen visuellen Hinweis aus &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2724">PR #2724&lt;/a>, einen animierten Außenring-Indikator, der den sprechenden Teilnehmer in Multi-Sprecher-Sitzungen hervorhebt.&lt;/p>
&lt;h3 id="ngit-v242-und-v243-beheben-grasp-server-erkennung-und-multi-remote-state-events">ngit v2.4.2 und v2.4.3 beheben GRASP-Server-Erkennung und Multi-Remote-State-Events&lt;/h3>
&lt;p>&lt;a href="https://github.com/DanConwayDev/ngit-cli">ngit&lt;/a>, das Kommandozeilen-Tool und &lt;code>git&lt;/code>-Plugin für &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a>-Kollaboration, lieferte &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.2">v2.4.2&lt;/a> am 28. April und &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.3">v2.4.3&lt;/a> am 1. Mai. v2.4.2 behebt einen URL-Normalisierungs-Mismatch, bei dem &lt;code>repo_grasps&lt;/code> normalisierte Hostnamen hielt, aber der Vergleich gegen vollständige Clone-URLs gemacht wurde. Die leere Kandidatenserverliste bedeutete, dass jede PR-Einreichung stillschweigend auf den Fork-Erstellungspfad auf einem persönlichen GRASP-Server fiel, wenn der korrekte Pfad ein direkter Push zum eigenen GRASP-Server des Repositorys war. v2.4.3 behebt eine State-Event-Ambiguität, die auftrat, wenn ein Repository mehrere &lt;code>nostr://&lt;/code>-Remotes mit demselben Bezeichner hat: Relays konnten State-Events zurückgeben, die von Maintainern des &lt;em>anderen&lt;/em> Remotes erstellt wurden, und ohne Filterung gewann das neueste Event unabhängig vom Autor und zeigte Refs auf die falschen Commits. State-Event-Kandidaten in &lt;code>run_list&lt;/code> werden jetzt auf Maintainer der Repo-Ankündigung des aktuellen Remotes gefiltert, damit der richtige State gewinnt.&lt;/p>
&lt;h3 id="grain-v054-bringt-produktionshärtung-und-einen-stillen-datenverlust-fix">GRAIN v0.5.4 bringt Produktionshärtung und einen stillen Datenverlust-Fix&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/grain">GRAIN&lt;/a>, die Go-basierte Nostr-Relay- und Client-Bibliothek, lieferte &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.5.4">v0.5.4&lt;/a> am 30. April. Das Release fasst sechs akkumulierte Fixes seit v0.5.3 zusammen, darunter einen stillen Datenverlust-Bug im Docker-Quickstart, der zuvor Events bei Neustart des Containers verlor, einen Speicherschicht-Korrektheitsbug bei adressierbaren Event-Lesevorgängen, bei dem falsches Tag-Handling Event-Lesevorgänge nach dem Neustart unterbrach, und zwei Verbindungsverfolgungsbugs, die beim Debuggen der v0.5.0-zu-v0.5.3-Sperrkette aufgedeckt wurden. Das Produktionshärtungspaar, das v0.5.3 ursprünglich angestrebt hatte, ist jetzt vorhanden: ein Pro-IP-Ratenlimit und eine IP-Blacklist, beide konfigurierbar.&lt;/p>
&lt;h3 id="mostro-core-v0101-fügt-pgp-signierte-release-artefakte-hinzu">Mostro Core v0.10.1 fügt PGP-signierte Release-Artefakte hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro-core">Mostro Core&lt;/a>, die Rust-Bibliothek für Peer-to-Peer-Funktionalität für den Mostro-Daemon und andere nachgelagerte Anwendungen, lieferte &lt;a href="https://github.com/MostroP2P/mostro-core/releases/tag/v0.10.1">v0.10.1&lt;/a> am 28. April als Nachfolger des &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#mostro-core-v0100-and-mostro-mobile-v125-adopt-nip-59-dual-key-gift-wrap">v0.10.0 P2P-Chat-Protokollmoduls der letzten Woche&lt;/a>. Das neue Release fügt PGP-signierte Release-Artefakte und einen &lt;code>verify-release&lt;/code>-Flow hinzu, damit nachgelagerte Packager die Artefaktherkunft bestätigen können, bevor sie die Bibliothek vertreiben.&lt;/p>
&lt;h2 id="getaggte-releases">Getaggte Releases&lt;/h2>
&lt;h3 id="clave-v020-startet-multi-account-unter-ios-mit-nip-46-nostr-connect-signierung">Clave v0.2.0 startet Multi-Account unter iOS mit NIP-46 (Nostr Connect) Signierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/clave-mobile">Clave&lt;/a>, die iOS-&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Remote-Signierungsapp, die APNs für Push-Zustellung verwendet (behandelt in &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#clave-brings-nip-46-remote-signing-to-ios-via-apns">#20&lt;/a>), lieferte &lt;a href="https://github.com/clave-mobile/clave/releases">v0.2.0&lt;/a> am 5. Mai. Das bisher größte Update führt Multi-Account-Unterstützung ein: Clave kann jetzt bis zu vier Accounts auf einem Gerät halten, mit einem Ein-Tipp-Wechsler und Pro-Account-Isolation. Die iOS-Klempner und das Entwicklermenü für Multi-Account landen in &lt;a href="https://github.com/clave-mobile/clave/pull/23">PR #23&lt;/a>, und &lt;a href="https://github.com/clave-mobile/clave/pull/22">PR #22&lt;/a> fügt dem APNs-Payload ein &lt;code>signer_pubkey&lt;/code>-Feld hinzu, damit das Gerät weiß, zu welchem Account eine Remote-Signierungsanfrage gehört. Aktivitätsdetails beschreiben jetzt, was signiert wurde, und verlinken auf &lt;code>njump&lt;/code> (&lt;a href="https://github.com/clave-mobile/clave/pull/19">PR #19&lt;/a>). Der Cold-Start-Zustellungs-Bug, bei dem das APNs-Token registriert war, aber das iOS-Benachrichtigungscenter veraltete leere Slots hatte, die die Zustellung verhinderten, ist in &lt;a href="https://github.com/clave-mobile/clave/pull/16">PR #16&lt;/a> behoben.&lt;/p>
&lt;h3 id="wisp-liefert-v103--v105-stabilitätsarbeit">Wisp liefert v1.0.3 → v1.0.5 Stabilitätsarbeit&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, der Android-Client, der &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#wisp-v100-graduates-from-beta">in #20 aus der Beta graduierte&lt;/a>, lieferte &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.3">v1.0.3&lt;/a>, &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.4">v1.0.4&lt;/a> und &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.5">v1.0.5&lt;/a> am 4. Mai mit Stabilitätsarbeit. &lt;a href="https://github.com/barrydeen/wisp/pull/506">PR #506&lt;/a> fügt Thumbhash für verschwommene Bildvorschauen hinzu, während vollständige Medien laden, und &lt;a href="https://github.com/barrydeen/wisp/pull/514">PR #514&lt;/a> reduziert Ruckeln beim Wechsel der unteren Tabs. &lt;a href="https://github.com/barrydeen/wisp/pull/515">PR #515&lt;/a> reduziert Start- und Feed-Rendering-Arbeit, und &lt;a href="https://github.com/barrydeen/wisp/pull/516">PR #516&lt;/a> verhindert, dass die App beim Wechsel der unteren Navigation veraltete Tab-Back-Stacks wiederherstellt.&lt;/p>
&lt;h3 id="amber-610-pre1-liefert-layout--und-stabilitätsfixes">Amber 6.1.0-pre1 liefert Layout- und Stabilitätsfixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die Android-Signer-App für &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android Signer Application)&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>, lieferte &lt;a href="https://github.com/greenart7c3/Amber/releases">v6.1.0-pre1&lt;/a> mit einem Layout-Pass beim neuen App-Verbindungsflow und mehreren gemeldeten Crash-Fixes. &lt;a href="https://github.com/greenart7c3/Amber/pull/416">PR #416&lt;/a> behebt &lt;code>ActivityStatsBar&lt;/code>-Layout- und Textüberlaufprobleme, &lt;a href="https://github.com/greenart7c3/Amber/pull/412">PR #412&lt;/a> verbessert die Benachrichtigungsberechtigungsbehandlung und Fehlerresilienz, und &lt;a href="https://github.com/greenart7c3/Amber/pull/411">PR #411&lt;/a> stellt sicher, dass &lt;code>SignerActivity&lt;/code> nach der Behandlung einer Anfrage immer schließt.&lt;/p>
&lt;h3 id="routstr-core-v043-verbessert-zahlung-rückerstattung-und-nutzungsberichte">Routstr Core v0.4.3 verbessert Zahlung, Rückerstattung und Nutzungsberichte&lt;/h3>
&lt;p>&lt;a href="https://github.com/Routstr/routstr-core">Routstr Core&lt;/a>, die dezentrale Inferenzschicht, lieferte &lt;a href="https://github.com/Routstr/routstr-core/releases">v0.4.3&lt;/a> als Pre-Release am 1. Mai. Das Release verbessert Zahlungs- und Rückerstattungshandling, schärft Kostenverfolgung und Nutzungsberichte und liefert mehrere Fixes rund um API-Key-Anzeige, Nachrichtenhandling und Modellvalidierung.&lt;/p>
&lt;h3 id="nostria-v3137-bis-v3141-fügen-web-lesezeichen-und-ein-auto-theme-hinzu">Nostria v3.1.37 bis v3.1.41 fügen Web-Lesezeichen und ein Auto-Theme hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, der Multi-Plattform-Nostr-Client, lieferte &lt;a href="https://github.com/nostria-app/nostria/releases">v3.1.37 bis v3.1.41&lt;/a> am 30. April und 4. Mai. Die Releases fügen &lt;a href="https://nostrcompass.org/de/topics/nip-b0/">NIP-B0 (Web Bookmarks)&lt;/a>-Unterstützung, ein &amp;ldquo;Auto&amp;rdquo;-Theme, das den Geräteeinstellungen folgt, In-App-PDF-Ansicht, Layout-Fixes für den Mediaplayer im Vollbildmodus und einen verbesserten Artikel- und Notizeditor hinzu.&lt;/p>
&lt;h3 id="noornote-v089-behebt-leeren-startbildschirm-auf-desktop">NoorNote v0.8.9 behebt leeren Startbildschirm auf Desktop&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a>, der plattformübergreifende Nostr-Client, lieferte &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.9">v0.8.9&lt;/a> am 28. April und behebt einen Leerbildschirm-Bug beim ersten Start der Desktop-App, bei dem der Willkommens- und Anmeldebildschirm nicht gerendert wurde.&lt;/p>
&lt;h3 id="kubo-v034-bis-v041-liefert-eine-kindersichere-nostr-videoplattform-mit-elterlicher-kontrolle-und-web-of-trust-feed-kuration">Kubo v0.3.4 bis v0.4.1 liefert eine kindersichere Nostr-Videoplattform mit elterlicher Kontrolle und Web-of-Trust-Feed-Kuration&lt;/h3>
&lt;p>&lt;a href="https://github.com/JeroenOnNostr/kubo">Kubo&lt;/a>, eine kindersichere Videoplattform auf Nostr, die Eltern ermöglicht, die Inhaltswelt ihres Kindes durch Web-of-Trust-Filter zu kuratieren, lieferte &lt;a href="https://github.com/JeroenOnNostr/kubo/releases/tag/kubo-v0.3.4">v0.3.4&lt;/a>, &lt;a href="https://github.com/JeroenOnNostr/kubo/releases/tag/kubo-v0.3.5">v0.3.5&lt;/a>, &lt;a href="https://github.com/JeroenOnNostr/kubo/releases/tag/kubo-v0.4.0">v0.4.0&lt;/a> und &lt;a href="https://github.com/JeroenOnNostr/kubo/releases/tag/kubo-v0.4.1">v0.4.1&lt;/a> am 4. und 5. Mai. Die Plattform ist ein Soft-Fork von &lt;a href="https://github.com/soapbox-pub/ditto">Ditto&lt;/a>, der für den Familien-und-Kinder-Anwendungsfall umbenannt wurde. Jedes Kind erhält ein separates Nostr-Schlüsselpaar und einen videozentrierten Feed, wo Eltern Zeitlimits (15 bis 180 Minuten täglich), erlaubte Zeitfenster und andere Aspekte der Feed-Steuerung kontrollieren.&lt;/p>
&lt;h2 id="nicht-veröffentlichte-änderungen">Nicht veröffentlichte Änderungen&lt;/h2>
&lt;h3 id="sprout-liefert-desktop-v004-und-v005-neben-nip-oa-agent-authentifizierung-und-dem-pair-relay-sidecar">Sprout liefert Desktop v0.0.4 und v0.0.5 neben NIP-OA-Agent-Authentifizierung und dem Pair-Relay-Sidecar&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout">Sprout&lt;/a>, Blocks Nostr-Client mit eingebautem Relay, lieferte &lt;a href="https://github.com/block/sprout/releases">Sprout Desktop v0.0.4&lt;/a> am 5. Mai und &lt;a href="https://github.com/block/sprout/releases">v0.0.5&lt;/a> am 6. Mai, neben ungefähr 80 zusammengeführten PRs, die einen großen NIP-OA-, NIP-43- und NIP-AB-Pairing-Pass abdecken. Die Hauptänderung in &lt;a href="https://github.com/block/sprout/pull/471">PR #471&lt;/a> verbindet NIP-OA-Agent-Authentifizierung mit dem NIP-43-Mitgliedschaftsflow des Relays über WebSocket-, REST- und Git-Transporte, sodass ein autonomer Agent beweisen kann, dass ein bestimmter menschlicher Pubkey seine Aktionen autorisiert hat, bevor das Relay Zugang gewährt. Ein neues ephemeres Sidecar-Relay für NIP-AB-Gerätepairing kommt in &lt;a href="https://github.com/block/sprout/pull/467">PR #467&lt;/a> als &lt;code>sprout-pair-relay&lt;/code>.&lt;/p>
&lt;h3 id="nostream-fügt-marmot-relay-unterstützung-und-nip-25-reaktionen-hinzu">nostream fügt Marmot-Relay-Unterstützung und NIP-25-Reaktionen hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a>, die Node.js-Relay-Implementierung, fusionierte eine produktive Woche von Protokollzusätzen. Marmot Protocol Relay-Unterstützung für MIPs 00 bis 03 landet in &lt;a href="https://github.com/Cameri/nostream/pull/602">PR #602&lt;/a>. Die kleineren Protokollzusätze: &lt;a href="https://nostrcompass.org/de/topics/nip-25/">NIP-25&lt;/a>-Reaktionsunterstützung in &lt;a href="https://github.com/Cameri/nostream/pull/589">PR #589&lt;/a>, Geohash-Präfix-Matching für &lt;code>#g&lt;/code>-Filter in &lt;a href="https://github.com/Cameri/nostream/pull/586">PR #586&lt;/a> und eine verschärfte &lt;code>maxlimit&lt;/code>-Prüfung für Abonnement-Event-Anfragen in &lt;a href="https://github.com/Cameri/nostream/pull/600">PR #600&lt;/a>.&lt;/p>
&lt;h3 id="strfry-fügt-pro-verbindungs-observierbarkeit-hinzu-und-reduziert-nofiles-decke">strfry fügt Pro-Verbindungs-Observierbarkeit hinzu und reduziert nofiles-Decke&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a>, das C++-Nostr-Relay, fusionierte 14 PRs, die auf Observierbarkeit und operative Hygiene abzielen. Die Hauptänderung ist &lt;a href="https://github.com/hoytech/strfry/pull/218">PR #218&lt;/a>, das Pro-Verbindungs-ausstehende Ausgangs-Observierbarkeit und eine konfigurierbare Backpressure-Kappe hinzufügt. Auf der Performance-Seite entfernt &lt;a href="https://github.com/hoytech/strfry/pull/224">PR #224&lt;/a> &lt;code>std::function&lt;/code>-Heap-Allokationen aus dem Pro-Event-Monitor-Fanout.&lt;/p>
&lt;h3 id="damus-ersetzt-tenor-gifs-durch-einen-purple-proxy-und-liefert-kompaktierungs-ux">Damus ersetzt Tenor GIFs durch einen Purple-Proxy und liefert Kompaktierungs-UX&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, der iOS-Nostr-Client, fusionierte &lt;a href="https://github.com/damus-io/damus/pull/3737">PR #3737&lt;/a>, der die Tenor-GIF-Integration durch einen &lt;a href="https://damus.io/purple/">Damus Purple&lt;/a>-Proxy ersetzt, bei dem Damus&amp;rsquo; gehosteter Abonnementdienst GIF-Anfragen im Namen des Clients weiterleitet.&lt;/p>
&lt;h3 id="primal-android-poliert-explore-benachrichtigungen-und-das-nip-05-verifizierungsabzeichen">Primal Android poliert Explore, Benachrichtigungen und das NIP-05-Verifizierungsabzeichen&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> fusionierte &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1043">PR #1043&lt;/a>, der ein flackerndes &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05 (Domain-Verifizierung)&lt;/a>-Verifizierungsabzeichen für Benutzer mit &lt;code>_@domain&lt;/code>-Bezeichnern behebt.&lt;/p>
&lt;h3 id="alby-hub-fügt-nwc-zahlungen-von-app-verbindungen-hinzu">Alby Hub fügt NWC-Zahlungen von App-Verbindungen hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> fusionierte &lt;a href="https://github.com/getAlby/hub/pull/2267">PR #2267&lt;/a>, der Zahlungen von App-Verbindungen erlaubt, und &lt;a href="https://github.com/getAlby/hub/pull/2268">PR #2268&lt;/a>, der die Onchain-Empfangsrouting-Logik vereinfacht, beide über Alby Hubs &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>-Oberfläche geliefert.&lt;/p>
&lt;h3 id="routstrd-auth-ein-dockerisierter-routstrd-für-teams-mit-nip-98-auth-und-npub-rbac">routstrd-auth: ein dockerisierter Routstrd für Teams mit NIP-98-Auth und npub-RBAC&lt;/h3>
&lt;p>&lt;a href="https://github.com/Routstr/routstrd-auth">routstrd-auth&lt;/a>, am 27. April vom Routstr-Team erstellt, ist eine dockerisierte Variante von Routstrd für Multi-User-Team-Deployments. Die Hauptänderung ist ein granulares npub-basiertes rollenbasiertes Zugriffskontrollsystem mit &lt;code>admin&lt;/code>- und &lt;code>user&lt;/code>-Rollen und Client-Endpunkten, die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a>-HTTP-Authentifizierung mit Eigentumsnahverfolgung übernehmen.&lt;/p>
&lt;h3 id="routstrd-integriert-hermes-für-daemon-clients-und-remote-modus">Routstrd integriert Hermes für Daemon-Clients und Remote-Modus&lt;/h3>
&lt;p>&lt;a href="https://github.com/routstr/routstrd">Routstrd&lt;/a>, der lokale Daemon, der Routstr-Inferenz-Clients orchestriert, fusionierte &lt;a href="https://github.com/routstr/routstrd/pull/22">PR #22&lt;/a> und fügt Integration mit &lt;a href="https://github.com/NousResearch/hermes-agent">Hermes Agent&lt;/a> hinzu, sodass die Konfigurationsdatei des Agents mit den Modellanbietern und API-Keys gefüllt wird, die Routstrd über Nostr entdeckt.&lt;/p>
&lt;h3 id="divine-liefert-nip-07-web-anmeldung-und-16-locale-schlüsselparität">diVine liefert NIP-07-Web-Anmeldung und 16-Locale-Schlüsselparität&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, der Video-Client, lieferte diese Woche zwei iOS-Releases neben 139 fusionierten PRs. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/3994">PR #3994&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07 (Browser-Extension-Signer)&lt;/a>-Anmeldung für den Web-Build hinzu, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/3992">PR #3992&lt;/a> übersetzt 16 nicht-englische Locales auf vollständige Schlüsselparität.&lt;/p>
&lt;h3 id="whitenoise-rs-liefert-pro-account-datenbankirsolierung-und-vorschlagsupgrades">whitenoise-rs liefert Pro-Account-Datenbankirsolierung und Vorschlagsupgrades&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a>, die Rust-Kernbibliothek für den White-Noise-Messenger, fusionierte &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/796">PR #796&lt;/a>, das Nachrichtenprojektionstabellen in Pro-Account-Datenbanken verschiebt, und &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/791">PR #791&lt;/a>, das Vorschlagsupgrades hinzufügt, damit Gruppen ihre Funktionalität mit neuen Vorschlagstypen erweitern können.&lt;/p>
&lt;h3 id="angor-0221-liefert-kompakte-app-flows-neben-key-provider--und-netzwerkwechsel-härtung">Angor 0.2.21 liefert kompakte App-Flows neben Key-Provider- und Netzwerkwechsel-Härtung&lt;/h3>
&lt;p>&lt;a href="https://github.com/block-core/angor">Angor&lt;/a>, die Bitcoin-Crowdfunding-Plattform mit Nostr-veröffentlichten Gründerprofilen, lieferte &lt;a href="https://github.com/block-core/angor/releases">Angor 0.2.21&lt;/a> am 6. Mai und fasst eine Woche mobiler und Integrationsarbeit zusammen.&lt;/p>
&lt;h2 id="neu-verfolgt-und-entdeckt">Neu verfolgt und entdeckt&lt;/h2>
&lt;h3 id="bitmacro-signer-ein-selbst-hostbarer-nip-46-bunker-mit-clientseitiger-schlüsselverschlüsselung">BitMacro Signer: ein selbst-hostbarer NIP-46-Bunker mit clientseitiger Schlüsselverschlüsselung&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitmacro/bitmacro-signer">BitMacro Signer&lt;/a> ist ein selbst-hostbares Nostr-Signing-Tool, das private Schlüssel mit dem &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Bunker-Modell verwaltet. Der Signer verschlüsselt Schlüssel auf dem Client vor der Speicherung, sodass die Serverseite niemals Klartext hält.&lt;/p>
&lt;p>Die NIP-34-Repo-Entdeckung dieser Woche brachte 26 neue Repository-Ankündigungen hervor, von denen vier herausragen.&lt;/p>
&lt;h3 id="gnostr-eine-git-implementierung-direkt-auf-nostr-aufgebaut">gnostr: eine Git-Implementierung direkt auf Nostr aufgebaut&lt;/h3>
&lt;p>&lt;a href="https://github.com/gnostr-org/gnostr">gnostr&lt;/a> ist eine Git-Implementierung, die direkt auf Nostr aufgebaut ist und sich von &lt;code>git-remote-nostr&lt;/code> dadurch unterscheidet, dass sie eigene Working-Tree-Befehle als von Grund auf native Nostr-Versionskontroll-Client liefert.&lt;/p>
&lt;h3 id="nostr-archive-eine-inhaltsadressierte-archivspezifikation-auf-nostr-und-blossom">nostr-archive: eine inhaltsadressierte Archivspezifikation auf Nostr und Blossom&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/nostr-archive/nostr-archive">nostr-archive&lt;/a> ist eine Entwurfsspezifikation und Referenzimplementierung für inhaltsadressierte Archive auf Nostr und Blossom.&lt;/p>
&lt;h3 id="flower-cache-ein-lokaler-blossom-cache-server">flower-cache: ein lokaler Blossom-Cache-Server&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/flower-cache/flower-cache">flower-cache&lt;/a> ist ein lokaler Blossom-Cache-Server, nützlich für Clients, die einen heißen lokalen Spiegel eines Remote-Blossom-Server-Blob-Sets ohne Round-Trip zum Upstream wünschen.&lt;/p>
&lt;h3 id="micro-vpn-ansible-ansible-playbooks-für-vpn-deployment-über-nip-34">micro-vpn-ansible: Ansible-Playbooks für VPN-Deployment über NIP-34&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/npub1mu9fsh42uh48trncevdpju8cyv3mxmj9qj3rdjqc46zc324c6hys9ctsnc/relay.ngit.dev/micro-vpn-ansible">micro-vpn-ansible&lt;/a> ist eine kleine Ansible-Playbook-Sammlung für das Deployment eines Micro-VPN, gehostet als NIP-34-Repository.&lt;/p>
&lt;h2 id="protokollarbeit">Protokollarbeit&lt;/h2>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Ein brokerfreier Hashrate-Markt über Nostr&lt;/strong> (&lt;a href="https://njump.me/nevent1qqsqd2478wqugjh9ur9lenw9la0wd987h6jcc0tma4kkuat4xceymvszypxxmj0zcqtwqm34f48gzulrg99daaczllhtqun7xsldkh8neua2jhr32rf">Entwurfsvorschlag&lt;/a>): Anonymer NIP-Entwurf aus einem Nostr-Langformbeitrag, der argumentiert, dass die aktuellen Hashrate-Marktakteure (Braiins, Nicehash, Mining Rig Rentals) alle verwahrende Broker sind, die Benutzer KYC unterziehen. Der Vorschlag skizziert einen Peer-to-Peer-Hashrate-Markt auf Nostr-Events.&lt;/li>
&lt;li>&lt;strong>Curated Feeds: eine einfachere Alternative zu DVM-Feeds&lt;/strong> (&lt;a href="https://njump.me/nevent1qqsqj55kvu28uyq2jr6nfwx20mv7c0vkm0vxkgx0zzrnanfp4wwv8nczyzm7669svt0xkjsju50a22zurc0qa589z2xd4yatzx6p2z64a5e0cyxz3e3">Entwurfsvorschlag&lt;/a>): Ein Entwurf argumentiert, dass &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> Data Vending Machines als allgemeiner Rechenmarktplatz konzipiert wurden und das Anfrage/Antwort-Modell schwerer ist als notwendig, wenn ein Client nur eine adressierbare Liste von Event-IDs möchte.&lt;/li>
&lt;li>&lt;strong>Profile Colors: deterministische visuelle Identität&lt;/strong> (&lt;a href="https://njump.me/nevent1qqsy3tj7mn3r7wczmc52aknf5ym43lj3rrhd3sfprzvc6qydsq62wrgzyzjk8j56zmt5fwv088l5y84hqq4gags3grvuznlu4zmyt54w34cccyxenp3">Entwurfsvorschlag&lt;/a>): Ein neues NIP-Entwurf zur Ableitung deterministischer, lesbarer Farben aus einem Nostr-Pubkey für konsistente visuelle Identität über Clients hinweg.&lt;/li>
&lt;li>&lt;strong>Namecoin-Track NIPs: Verankern von Identität, Relays, TLS und Reputation&lt;/strong> (&lt;a href="https://njump.me/nevent1qqsydpjnaj2netmv0h5mlm2j6zpk8u50yvc9pqth3ly8pzuwy22720szypp3shk7edn43y5zfvdr0ftl8eq8l00zaknjqx3c9xuv7ja8ck60q7uupzs">Entwurfscluster&lt;/a>): Ein trennbarer Cluster von NIP-Entwürfen, der Teile des bestehenden Nostr-Stacks in Namecoin-verankerte Records verschiebt.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-tieftauchgang-nip-34-git-stuff">NIP-Tieftauchgang: NIP-34 (git stuff)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> definiert Event-Kinds für das Hosting von Git-Repositories, Patches, Pull-Requests, Issues und Merge-Status auf Nostr-Relays. Es ist der Standard, der Nostr zu einer Koordinationsschicht für Code-Kollaboration macht: Die Repository-Daten leben weiterhin auf einem Git-Server (GitHub, eine selbst-gehostete Forge oder ein GRASP-Server), während Ankündigungs-Events, Patches, PRs, Issues und Status-Updates auf Relays laufen.&lt;/p>
&lt;p>Ein Repository wird als kind-&lt;code>30617&lt;/code>-adressierbares Event angekündigt, dessen &lt;code>d&lt;/code>-Tag ein Kebab-Case-Bezeichner (typischerweise der Projektname) ist und dessen Body &lt;code>name&lt;/code>, &lt;code>description&lt;/code>, eine oder mehrere &lt;code>clone&lt;/code>-URLs, optionale &lt;code>web&lt;/code>-URLs, einen &lt;code>relays&lt;/code>-Tag mit Relays, die der Maintainer überwacht, und einen &lt;code>maintainers&lt;/code>-Tag mit zusätzlichen Pubkeys zur Verwaltung des Projekts enthält.&lt;/p>
&lt;p>Patches verwenden kind &lt;code>1617&lt;/code> und tragen &lt;code>git format-patch&lt;/code>-Ausgabe im Content-Body. Pull-Requests verwenden kind &lt;code>1618&lt;/code> und sind für Changesets größer als 60 KB gedacht. Issues verwenden kind &lt;code>1621&lt;/code> mit Markdown-Inhalt. Status-Events verschieben einen Thread zwischen Open (&lt;code>1630&lt;/code>), Applied/Merged oder Resolved (&lt;code>1631&lt;/code>), Closed (&lt;code>1632&lt;/code>) und Draft (&lt;code>1633&lt;/code>).&lt;/p>
&lt;p>Die NIP-34-Geschichte dieser Woche ist dieselbe wie die &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#gitworkshop-ships-in-browser-pr-merge-repository-following-and-a-bandwidth-efficient-git-explorer">GitWorkshop-v2-Einführung der letzten Woche&lt;/a>: Der In-Browser-PR-Merge-Button funktioniert, weil GRASP-Server, ngit und das &lt;code>nostr://&lt;/code>-Clone-URL-Schema zusammen die Schleife einer vollständig dezentralisierten Forge schließen.&lt;/p>
&lt;h2 id="nip-tieftauchgang-nip-53-live-activities">NIP-Tieftauchgang: NIP-53 (Live Activities)&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a> definiert die Standardereignisoberfläche für Live-Aktivitäten auf Nostr: Live-Streams, persistente Meeting-Räume, geplante Konferenzereignisse, Hörer-Präsenz und den Live-Chat-Kanal, der Chat-Nachrichten an einen bestimmten Live-Aktivitätsdatensatz bindet.&lt;/p>
&lt;p>Ein Live-Stream wird als kind-&lt;code>30311&lt;/code>-adressierbares Event angekündigt. Sein &lt;code>d&lt;/code>-Tag ist der stabile Bezeichner, der &lt;code>streaming&lt;/code>-Tag zeigt auf die Wiedergabe-URL, und der &lt;code>status&lt;/code>-Tag trägt einen von &lt;code>planned&lt;/code>, &lt;code>live&lt;/code> oder &lt;code>ended&lt;/code>. NIP-53 trennt den persistenten Raum vom geplanten Event, das darin stattfindet. Eine kind-&lt;code>30312&lt;/code>-Meeting-Space definiert einen Raum, und ein kind-&lt;code>30313&lt;/code>-Konferenz-Event repräsentiert ein geplantes oder laufendes Meeting in diesem Raum.&lt;/p>
&lt;p>Der Nostr-Live-Aktivitäts-Stack ist absichtlich dünn: NIP-53 kündigt die Aktivität an, während andere NIPs angrenzende Belange handhaben. Zaps für Live-Streams verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57 (Zaps)&lt;/a>-Zap-Quittungen, Spendensammelziele verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-75/">NIP-75 (Zap Goals)&lt;/a>-Zap-Ziele, und Videoaufzeichnungen können als &lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71 (Video Events)&lt;/a>-Video-Events erneut veröffentlicht werden.&lt;/p>
&lt;hr>
&lt;p>Das war es für diese Woche. Wenn du etwas baust oder Neuigkeiten zu teilen hast, sende uns eine DM auf Nostr oder finde uns auf &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a>.&lt;/p></content:encoded></item><item><title>Nostr Compass #20</title><link>https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/</link><pubDate>Wed, 29 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Leitfaden zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#gitworkshop-liefert-in-browser-pr-merge-repository-following-und-einen-bandbreiteneffizienten-git-explorer">GitWorkshop&lt;/a> macht Git-über-Nostr zu einer vollständigeren Code-Review-Oberfläche mit einem In-Browser-PR-Merge-Button, Stars und Repository-Following, einem bandbreiteneffizienten Git-Explorer, kind &lt;code>1111&lt;/code> Inline-Review-Kommentaren und verschlüsseltem Multi-Device-Notification-State. &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#routstrd-startet-einen-lokalen-router-f%c3%bcr-inferenz-%c3%bcber-nostr">Routstrd&lt;/a> startet einen lokalen Daemon, der Modellanbieter über Nostr kind &lt;code>38421&lt;/code> Ankündigungen entdeckt und sie mit Cashu bezahlt. Getaggte Releases umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#ngit-v242-behebt-grasp-relay-erkennung-f%c3%bcr-pr-einreichungen">ngit v2.4.2&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#wisp-v100-verl%c3%a4sst-die-beta">Wisp v1.0.0&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#grain-v052-behebt-websocket-lockup-v053-setzt-politur-fort">grain v0.5.2 und v0.5.3&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#mostro-core-v0100-und-mostro-mobile-v125-%c3%bcbernehmen-nip-59-dual-key-gift-wrap">Mostro Core v0.10.0 und Mostro Mobile v1.2.5&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#marmot-ts-v050-liefert-adressierbare-keypackages">marmot-ts v0.5.0&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#cruxcoach-v013-liefert-verschl%c3%bcsseltes-backup-f%c3%bcr-kletterdaten-mit-nostr-und-blossom">CruxCoach v0.1.3&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#meiso-v130-f%c3%bcgt-subtasks-blossom-anh%c3%a4nge-und-nip-89-tagging-hinzu">Meiso v1.3.0&lt;/a>, NoorNote, Nostria, Nostr Calendar, nos2x-fox, applesauce, nostr-double-ratchet und mehr. Unveröffentlichte Änderungen umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#amethyst-treibt-nests-audio-r%c3%a4ume-mit-moq-interop-tests-voran">Amethyst Nests&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#nostream-f%c3%bcgt-nip-65-relay-listen-unterst%c3%bctzung-und-nwc-zahlungen-hinzu">nostream NIP-65 und NWC&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#fips-f%c3%bcgt-nostr-basierten-udpnat-bootstrap-hinzu">FIPS Nostr-basierten udp:nat-Bootstrap&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#strfry-f%c3%bcgt-per-connection-observability-hinzu">strfry-Observability&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#sprout-f%c3%bcgt-owner-attestation-und-multi-workspace-unterst%c3%bctzung-hinzu">Sprout Owner-Attestierungen&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#zap-cooking-f%c3%bcgt-recipe-packs-l%c3%b6sch-anfragen-und-bunker-login-hinzu">Zap Cooking Recipe Packs&lt;/a>. Neu getrackte Projekte umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#nostrord-ein-nip-29-client-mit-kotlin-multiplatform-und-wasm">Nostrord&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#clave-bringt-nip-46-remote-signing-per-apns-auf-ios">Clave&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#treasures-dezentrales-geocaching-auf-nostr">Treasures&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Leitfaden zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#gitworkshop-liefert-in-browser-pr-merge-repository-following-und-einen-bandbreiteneffizienten-git-explorer">GitWorkshop&lt;/a> macht Git-über-Nostr zu einer vollständigeren Code-Review-Oberfläche mit einem In-Browser-PR-Merge-Button, Stars und Repository-Following, einem bandbreiteneffizienten Git-Explorer, kind &lt;code>1111&lt;/code> Inline-Review-Kommentaren und verschlüsseltem Multi-Device-Notification-State. &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#routstrd-startet-einen-lokalen-router-f%c3%bcr-inferenz-%c3%bcber-nostr">Routstrd&lt;/a> startet einen lokalen Daemon, der Modellanbieter über Nostr kind &lt;code>38421&lt;/code> Ankündigungen entdeckt und sie mit Cashu bezahlt. Getaggte Releases umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#ngit-v242-behebt-grasp-relay-erkennung-f%c3%bcr-pr-einreichungen">ngit v2.4.2&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#wisp-v100-verl%c3%a4sst-die-beta">Wisp v1.0.0&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#grain-v052-behebt-websocket-lockup-v053-setzt-politur-fort">grain v0.5.2 und v0.5.3&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#mostro-core-v0100-und-mostro-mobile-v125-%c3%bcbernehmen-nip-59-dual-key-gift-wrap">Mostro Core v0.10.0 und Mostro Mobile v1.2.5&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#marmot-ts-v050-liefert-adressierbare-keypackages">marmot-ts v0.5.0&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#cruxcoach-v013-liefert-verschl%c3%bcsseltes-backup-f%c3%bcr-kletterdaten-mit-nostr-und-blossom">CruxCoach v0.1.3&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#meiso-v130-f%c3%bcgt-subtasks-blossom-anh%c3%a4nge-und-nip-89-tagging-hinzu">Meiso v1.3.0&lt;/a>, NoorNote, Nostria, Nostr Calendar, nos2x-fox, applesauce, nostr-double-ratchet und mehr. Unveröffentlichte Änderungen umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#amethyst-treibt-nests-audio-r%c3%a4ume-mit-moq-interop-tests-voran">Amethyst Nests&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#nostream-f%c3%bcgt-nip-65-relay-listen-unterst%c3%bctzung-und-nwc-zahlungen-hinzu">nostream NIP-65 und NWC&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#fips-f%c3%bcgt-nostr-basierten-udpnat-bootstrap-hinzu">FIPS Nostr-basierten udp:nat-Bootstrap&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#strfry-f%c3%bcgt-per-connection-observability-hinzu">strfry-Observability&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#sprout-f%c3%bcgt-owner-attestation-und-multi-workspace-unterst%c3%bctzung-hinzu">Sprout Owner-Attestierungen&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#zap-cooking-f%c3%bcgt-recipe-packs-l%c3%b6sch-anfragen-und-bunker-login-hinzu">Zap Cooking Recipe Packs&lt;/a>. Neu getrackte Projekte umfassen &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#nostrord-ein-nip-29-client-mit-kotlin-multiplatform-und-wasm">Nostrord&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#clave-bringt-nip-46-remote-signing-per-apns-auf-ios">Clave&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#treasures-dezentrales-geocaching-auf-nostr">Treasures&lt;/a>.&lt;/p>
&lt;h2 id="leitartikel">Leitartikel&lt;/h2>
&lt;h3 id="gitworkshop-liefert-in-browser-pr-merge-repository-following-und-einen-bandbreiteneffizienten-git-explorer">GitWorkshop liefert In-Browser-PR-Merge, Repository-Following und einen bandbreiteneffizienten Git-Explorer&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev">GitWorkshop&lt;/a>, Dan Conways webbasierte Kollaborationsschicht für &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> Git-über-Nostr, hat diese Woche ein großes Release veröffentlicht, das den Workflow deutlich näher an das heranbringt, was Entwickler von GitHub oder GitLab erwarten, während Kommentare, Repository-Listen und Benachrichtigungen weiterhin in signierten Nostr-Events liegen.&lt;/p>
&lt;p>Die wichtigste Neuerung ist ein lange erwarteter In-Browser-PR-Merge-Button für Repositories, die GRASP-Relays nutzen. Das Release fügt außerdem Stars und Repository-Following hinzu, die auf Reaktionen und &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> Listen basieren, wobei angepinnte Repository-Sets als kind &lt;code>10617&lt;/code> Events veröffentlicht werden, die über geordnete &lt;code>a&lt;/code> Tags auf kind &lt;code>30617&lt;/code> Repo-Ankündigungen zeigen. Profilseiten können jetzt eine portable Liste von Repositories präsentieren.&lt;/p>
&lt;p>Ein bandbreiteneffizienter Git-Explorer ersetzt den vorherigen In-Browser-Shallow-Clone. Der neue Explorer stützt sich auf das zugrunde liegende Git-Client/Server-Protokoll, auf dem GRASP aufbaut, sodass er große Repositories verarbeiten kann, ohne den Browser zu zwingen, ein vollständiges Pack zu laden. Die Suche deckt jetzt Benutzernamen und Repository-Metadaten ab, angetrieben von &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50&lt;/a> und einer &lt;code>ngit-indexer&lt;/code> Relay-Implementierung, die Repository-Ankündigungen im Netzwerk entdeckt und synchronisiert. Ein In-Browser-Workflow zur Repository-Erstellung rundet den Entdeckungs- und Onboarding-Pfad ab.&lt;/p>
&lt;p>Das Review-Tooling wurde rund um einen Files-Changed-Tab, einen Per-Patch-Diff-Viewer und eine Reihe experimenteller neuer Primitive neu aufgebaut. Inline-Code-Review-Kommentare verwenden kind &lt;code>1111&lt;/code>, aufgebaut auf &lt;a href="https://github.com/nostr-protocol/nips/blob/master/22.md">NIP-22&lt;/a>: jeder Kommentar zeigt auf einen Dateipfad (&lt;code>f&lt;/code> Tag), einen Commit-SHA (&lt;code>c&lt;/code> Tag) und einen ausgewählten Zeilenbereich (&lt;code>line&lt;/code> Tag), sodass ein Client den Kommentar an der korrekten Position in einem Diff rendern kann. Eine zweite Stufe experimenteller Primitive ist auf Autor und Repo-Maintainer beschränkt und nutzt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/32.md">NIP-32&lt;/a> Labels: einen Issue- oder PR-Betreff nach der Einreichung umbenennen, nachträglich Hashtags hinzufügen, eine versionskontrollierte CoverNote als bearbeitbare Zusammenfassung an die Spitze eines PR oder Issue heften und Inline-Code-Diskussions-Subthreads als erledigt markieren. Verdict-Events und &lt;code>suggestion&lt;/code> Blöcke bleiben im Entwurfsstadium und wurden noch nicht ausgeliefert.&lt;/p>
&lt;p>Der Notification-State über Geräte hinweg wird ebenfalls über Nostr synchronisiert, allerdings mit einem datenschutzfreundlichen Kniff. GitWorkshop generiert ein dediziertes Notifications-Keypair, verschlüsselt diesen nsec und speichert ihn in einem kind &lt;code>30078&lt;/code> Event. Der Notifications-nsec signiert dann die tatsächlichen Notification-State-Events. Diese Indirektion verhindert, dass der Haupt-Signer des Benutzers mit häufigen Verschlüsselungs- und Entschlüsselungsanfragen für jede Lese- oder Archivierungsaktion überschwemmt wird, und sie hindert außenstehende Beobachter daran, leicht zu sehen, wann ein Benutzer seinen Notification-State berührt. Ein Benutzer kann Lese- und Archivierungsstatus über Geräte hinweg synchronisieren; Relays sehen nur verschlüsselte Blobs.&lt;/p>
&lt;h3 id="routstrd-startet-einen-lokalen-router-für-inferenz-über-nostr">Routstrd startet einen lokalen Router für Inferenz über Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/routstr/routstrd">Routstrd&lt;/a> ist ein neuer TypeScript-Daemon, der lokalen Werkzeugen einen OpenAI-kompatiblen Endpunkt bietet und jede Anfrage an einen konkurrierenden &lt;a href="https://routstr.com">Routstr&lt;/a> Provider routet. Der Daemon entdeckt Provider durch Nostr kind &lt;code>38421&lt;/code> Ankündigungen, die in Routstrs RIP-02-Spezifikation definiert sind. Er bewertet Provider dann nach Preis, Vertrauen und jüngster Leistung unter RIP-06 und sendet jede Anfrage an die aktuell beste Option.&lt;/p>
&lt;p>Die Zahlung läuft über eine lokale Cashu-Wallet, die von cocod verwaltet und mit Lightning gefundet wird. Das gibt dem Client einen in Sats denominierten Abrechnungspfad, während die Provider-Entdeckung öffentlich und permissionless über Nostr-Relays bleibt. Wenn ein Provider während einer Session ausfällt, kann Routstrd auf den nächstplatzierten Knoten zurückfallen. Der Installationspfad ist &lt;code>bun install -g routstrd&lt;/code>, gefolgt von &lt;code>routstrd onboard&lt;/code> für Wallet- und Relay-Setup.&lt;/p>
&lt;p>Die breitere &lt;a href="https://github.com/routstr">Routstr-Org&lt;/a> pflegt den Daemon, die Python-Node-Software (&lt;code>routstr-core&lt;/code>), eine Chat-UI und Protokollspezifikationen. Für Benutzer wird der lokale Port zur stabilen Schnittstelle: bestehende OpenAI-kompatible Werkzeuge zeigen auf Routstrd, während der Daemon Provider-Entdeckung, Routing und Zahlung übernimmt.&lt;/p>
&lt;h2 id="getaggte-releases">Getaggte Releases&lt;/h2>
&lt;h3 id="ngit-v242-behebt-grasp-relay-erkennung-für-pr-einreichungen">ngit v2.4.2 behebt GRASP-Relay-Erkennung für PR-Einreichungen&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/DanConwayDev/ngit-cli">ngit&lt;/a> hat &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.2">v2.4.2&lt;/a> mit einem Fix für die Repository-GRASP-Server-Erkennung veröffentlicht, wodurch PR-Einreichungen auf dem Happy Path bleiben, wenn ein Vorschlag das PR-kind verwendet. Beachte, dass ngit derzeit standardmäßig das &lt;code>Patch&lt;/code>-kind für die meisten Änderungen verwendet, sofern sie nicht groß sind; der Maintainer arbeitet daran, den Standard zu ändern. &lt;a href="https://github.com/DanConwayDev/ngit-cli/releases/tag/v2.4.1">v2.4.1&lt;/a>, das früher in der Woche veröffentlicht wurde, behob &lt;code>fatal&lt;/code> Fehler während Clone und Fetch, wenn die Git-Daten eines offenen PR auf den festgelegten Git-Servern des Repositorys nicht verfügbar waren.&lt;/p>
&lt;h3 id="wisp-v100-verlässt-die-beta">Wisp v1.0.0 verlässt die Beta&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, ein Kotlin- und Jetpack-Compose-Android-Client mit Fokus auf Relay-Routing, Datenschutz und einer schlanken nativen UI, veröffentlichte &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.0">v1.0.0&lt;/a> und folgte mit &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v1.0.2">v1.0.2&lt;/a>. Der 1.0.0-Meilenstein sammelt den Normie-Mode Fiat-Denominierungsschalter, den For-You-Feed, die &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> relay-basierte Gruppenkonfiguration und das &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-List-Broadcasting, die in &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-22-newsletter/#wisp-v0180-beta-adds-normie-mode-for-you-feed-and-nip-29-group-config">Newsletter #19&lt;/a> behandelt wurden. v1.0.2 fügt Unterstützung für Android 15 16-KB-Seitengröße, einen QR-Scan-Tab im Drawer-Sheet, einen Download-Button für Inline-Video-Kontrollen und Fixes für die Performance der Notification-Liste hinzu.&lt;/p>
&lt;h3 id="grain-v052-behebt-websocket-lockup-v053-setzt-politur-fort">grain v0.5.2 behebt WebSocket-Lockup, v0.5.3 setzt Politur fort&lt;/h3>
&lt;p>&lt;a href="https://github.com/0ceanSlim/grain">grain&lt;/a>, das Go-Relay von 0ceanSlim, veröffentlichte &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.5.2">v0.5.2&lt;/a> als kritischen Hotfix für ein WebSocket-Lockup, das in v0.5.0 eingeführt wurde, und folgte dann mit &lt;a href="https://github.com/0ceanSlim/grain/releases/tag/v0.5.3">v0.5.3&lt;/a>. Das Lockup führte dazu, dass Verbindungen unter bestimmten Filter- und WebSocket-Pfaden hingen, sodass Betreiber auf v0.5.1 oder v0.5.0 upgraden sollten. grain trackt alle wichtigen Nostr-Event-Kategorien, stellt NIP-11 Relay-Informationen bereit, unterstützt Whitelist/Blacklist-Zugriffskontrolle, Per-kind-Rate-Limits, ein Web-Dashboard und eine Go-Client-Bibliothek, die in der v0.5.x-Linie hinzugefügt wurde.&lt;/p>
&lt;h3 id="mostro-core-v0100-und-mostro-mobile-v125-übernehmen-nip-59-dual-key-gift-wrap">Mostro Core v0.10.0 und Mostro Mobile v1.2.5 übernehmen NIP-59 Dual-Key Gift Wrap&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> fügt das neue &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift-Wrap-Modul mit getrennten Identity- und Trade-Keys hinzu. Frühere Transportcode verwendete einen einzigen Identity-Key sowohl für Trade-Identity als auch für Gift-Wrapping. v0.10.0 trennt die stabile Trade-Identity vom ephemeren Wrapping-Key, sodass jeder Trade einen frischen Transport-Key verwenden kann, während die für das Trade-Protokoll benötigte Identity erhalten bleibt. Die Daemon-Integration landet über &lt;a href="https://github.com/MostroP2P/mostro/pull/718">Mostro PR #718&lt;/a>, und &lt;a href="https://github.com/MostroP2P/mostro-cli/pull/165">mostro-cli PR #165&lt;/a> bringt dieselbe Migration in den Command-Line-Client.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.5">Mostro Mobile v1.2.5&lt;/a> wird zusammen mit der Protokollarbeit ausgeliefert. &lt;a href="https://github.com/MostroP2P/mobile/pull/581">PR #581&lt;/a> lässt Taker Angebote nach dem Kontoalter des Makers filtern und gibt Benutzern eine Möglichkeit, neu erstellte Maker-Accounts im Orderbuch zu vermeiden. &lt;a href="https://github.com/MostroP2P/mobile/pull/580">PR #580&lt;/a> korrigiert Rollen-Labels bei den Details stornierter Aufträge, und &lt;a href="https://github.com/MostroP2P/mobile/pull/576">PR #576&lt;/a> räumt die Buttons für die kooperative Stornierung auf.&lt;/p>
&lt;h3 id="marmot-ts-v050-liefert-adressierbare-keypackages">marmot-ts v0.5.0 liefert adressierbare KeyPackages&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a> veröffentlichte &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>, das erste geplante Breaking-Change-Release für den TypeScript-&lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Client. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/68">PR #68&lt;/a> fügt Unterstützung für adressierbare KeyPackages hinzu: &lt;code>KeyPackageManager&lt;/code> kann jetzt sowohl legacy kind &lt;code>443&lt;/code> als auch neue kind &lt;code>30443&lt;/code> KeyPackage-Events verarbeiten. Das Release entfernt &lt;code>KeyPackageStore&lt;/code> und die Group-State-Storage-Klassen und ersetzt sie durch generische Key-Value-Stores, die an &lt;code>KeyPackageManager&lt;/code> und &lt;code>MarmotGroup&lt;/code> übergeben werden. Es verschiebt außerdem Einladungs- und Gruppenverwaltung auf &lt;code>MarmotClient.invites&lt;/code> und &lt;code>MarmotClient.groups&lt;/code>, sodass direkte Embedder vor dem Upgrade Konstruktor- und Storage-Änderungen benötigen.&lt;/p>
&lt;h3 id="cruxcoach-v013-liefert-verschlüsseltes-backup-für-kletterdaten-mit-nostr-und-blossom">CruxCoach v0.1.3 liefert verschlüsseltes Backup für Kletterdaten mit Nostr und Blossom&lt;/h3>
&lt;p>&lt;a href="https://codeberg.org/CruxCoach/CruxCoach">CruxCoach&lt;/a> ist eine neue Open-Source-Android-App für Kilter-Board-Kletterer. Das Kilter Board ist eine interaktive Trainingswand, deren Griffe über Bluetooth aufleuchten, um Routen anzuzeigen. Die App wurde am 14. April veröffentlicht und erreichte am 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 fügt ein optionales verschlüsseltes Cloud-Backup hinzu. Das CruxCoach-Konto eines Benutzers ist ein Nostr-Keypair, und der private Schlüssel dient gleichzeitig als Eingabe für den lokalen Backup-Verschlüsselungsschlüssel. Die App verschlüsselt Kletterdaten auf dem Gerät und spiegelt den Chiffretext auf Blossom-Storage-Server (&lt;code>blossom.primal.net&lt;/code> und &lt;code>nostr.download&lt;/code>). Delete-Remote-Aktionen rufen den Blossom-Cleanup-Pfad auf. Über das Backup hinaus verwendet CruxCoach &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing für Amber-Unterstützung, &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> private DMs für den In-App-Entwicklerkontakt, &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Listen zur Relay-Entdeckung und Vitor Pamplonas &lt;a href="https://github.com/vitorpamplona/quartz">Quartz&lt;/a>-Bibliothek für Nostr-Plumbing. Benutzer können sie über Zapstore oder direkte Codeberg-APKs installieren.&lt;/p>
&lt;h3 id="meiso-v130-fügt-subtasks-blossom-anhänge-und-nip-89-tagging-hinzu">Meiso v1.3.0 fügt Subtasks, Blossom-Anhänge und NIP-89-Tagging hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/higedamc/meiso">Meiso&lt;/a> ist ein minimalistischer Flutter-Task-Manager für Android, der Aufgaben als &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> verschlüsselte kind &lt;code>30078&lt;/code> Anwendungsdaten auf Nostr-Relays speichert. &lt;a href="https://github.com/higedamc/meiso/releases/tag/v1.3.0">v1.3.0&lt;/a>, veröffentlicht am 6. April, fügt Subtasks mit Eltern-Kind-Beziehungen, Task-Links für blocks/blocked-by/related-to/duplicate-of, Bildanhänge über Blossom und &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> HTTP-File-Upload-Endpunkte, einen &lt;a href="https://github.com/nostr-protocol/nips/blob/master/89.md">NIP-89&lt;/a> &lt;code>client&lt;/code> Tag für empfohlene Anwendungen bei veröffentlichten Events und ein Go-Command-Line-Sync-Tool hinzu. v1.3.0 behebt außerdem das Cold-Start-Relay-Verhalten und die Wiederverwendung des Amber-Clients.&lt;/p>
&lt;h3 id="noornote-nostria-nostr-calendar-nos2x-fox-und-bibliotheks-releases">NoorNote, Nostria, Nostr Calendar, nos2x-fox und Bibliotheks-Releases&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a> veröffentlichte &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> und &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.9">v0.8.9&lt;/a>. Diese Releases beheben das Handling von Bild- und Video-Klicks in zitierten Reposts, fügen Lightbox-Unterstützung für Bilder in Long-Form-Artikeln hinzu und beheben den leeren Desktop-Startbildschirm. &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> veröffentlichte &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> und &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.31">v3.1.31&lt;/a>, die Bildkompression im Artikel-Editor, einen Wallet-USD-Schalter, Promotional-Card-Kontrollen, PDF-Unterstützung und Politur des Mobile-Layouts hinzufügen.&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> entkoppelt die Kalender-Event-Veröffentlichung von der Kalender-Listen-Verwaltung und behebt das Einladungs-Tracking. &lt;a href="https://github.com/diegogurpegui/nos2x-fox/releases/tag/v1.19.0">nos2x-fox v1.19.0&lt;/a> fügt benutzerdefinierte Autorisierungszeiträume für Firefox NIP-07 Browser-Signing-Grants hinzu. &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.97">nostr-double-ratchet v0.0.97&lt;/a> liefert neue 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> mountet &lt;code>NostrSessionProvider&lt;/code> standardmäßig, und &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/535">nostr-tools PR #535&lt;/a> fügt Multi-Relay-Parsing-Unterstützung für NIP-47 Wallet-Connect-Strings hinzu.&lt;/p>
&lt;p>Spät in der Woche veröffentlichte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.1.0-pre1">Amber v6.1.0-pre1&lt;/a> ein Pre-Release mit einem verbesserten Connect-New-App-Layout, Signer-Dialog-Fixes, verbessertem Handling der Benachrichtigungsberechtigungen und einer überarbeiteten Kontoauswahl. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.14">nostr-vpn v0.3.14&lt;/a> veröffentlichte einen frischen Build mit macOS Apple Silicon, Linux und Windows Artefakten. &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.8">Bitcredit Core v0.5.7-hotfix-1 und v0.5.8&lt;/a> lieferten Back-to-Back-Fixes für ein Validierungsproblem verwaister Blöcke. &lt;a href="https://gitlab.com/chad.curtis/surveil/-/tags/v0.1.6">Surveil v0.1.6&lt;/a> brachte Politur für die mobile UI und eine überarbeitete About-Seite; das Projekt selbst wird &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-29-newsletter/#surveil-ein-magic-the-gathering-deckbauer-auf-nostr">unten&lt;/a> vorgestellt.&lt;/p>
&lt;h3 id="applesauce-600-entfernt-legacy-event-factories-und-fügt-blossom-uri-parsing-hinzu">applesauce 6.0.0 entfernt Legacy-Event-Factories und fügt Blossom-URI-Parsing hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/applesauce">applesauce&lt;/a>, hzrd149s TypeScript-Nostr-Toolkit, veröffentlichte einen 6.0.0-Release-Train über das Monorepo hinweg. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%406.0.0">applesauce-core@6.0.0&lt;/a> entfernt die Legacy-Klasse &lt;code>EventFactory&lt;/code> und die alten Helpers &lt;code>buildEvent&lt;/code>, &lt;code>modifyEvent&lt;/code> und &lt;code>createEvent&lt;/code> und drängt Aufrufer zu den neueren Factory-Klassen in &lt;code>applesauce-core/factories&lt;/code> und &lt;code>applesauce-common&lt;/code>. Es fügt außerdem IP-Adressen- und Localhost-Handling zum Link-Parsing hinzu, BUD-10 Blossom-URI-Regular-Expressions und neue Observable-Helpers wie &lt;code>timeoutWithIgnore&lt;/code>, &lt;code>combineLatestBy&lt;/code>, &lt;code>combineLatestByIndex&lt;/code> und &lt;code>combineLatestByKey&lt;/code>.&lt;/p>
&lt;p>Paket-Level-Releases füllen die Nostr-spezifischen Teile aus. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-content%406.0.0">applesauce-content@6.0.0&lt;/a> fügt BUD-10 Blossom-URI-Nodes für Text und Markdown hinzu und gibt Renderern eine erstklassige Möglichkeit, Blossom-Referenzen in Inhalten zu parsen. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-actions%406.0.0">applesauce-actions@6.0.0&lt;/a> fügt Basis-Factory-Klassen für NIP-51 Listen für Relays, Benutzer und Items hinzu und macht die Listenkonstruktion weniger ad hoc. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-wallet-connect%406.0.0">applesauce-wallet-connect@6.0.0&lt;/a> exponiert &lt;code>WalletConnect.connectURI&lt;/code>, sodass Apps direkt auf eine bestehende NIP-47 Wallet-Connect-URI zugreifen können.&lt;/p>
&lt;h2 id="unveröffentlichte-änderungen">Unveröffentlichte Änderungen&lt;/h2>
&lt;h3 id="amethyst-treibt-nests-audio-räume-mit-moq-interop-tests-voran">Amethyst treibt Nests-Audio-Räume mit MoQ-Interop-Tests voran&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergte diese Woche mehrere Nests-fokussierte PRs, die auf dem &lt;a href="https://datatracker.ietf.org/group/moq/about/">Media over QUIC&lt;/a> Audio-Room-Stack der letzten Woche aufbauen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2622">PR #2622&lt;/a> fügt ein Cross-Client-Interop-Harness hinzu, das den Amethyst-MoQ-Client gegen die Referenz-Web-Implementierung ausführt. Ziel ist es, Android/Browser-Wire-Level-Divergenzen zu erkennen, bevor sie Benutzer treffen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2625">PR #2625&lt;/a> verbessert Picture-in-Picture-Sprecher-Fokus und Verbindungsstatus, während &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2620">PR #2620&lt;/a> Avatare, Mute-Status und Speaking-Status im Teilnehmer-Grid klärt. Spät in der Woche behebt &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2634">PR #2634&lt;/a> IME-Padding und Window-Insets in der Full-Screen-Nest-Ansicht und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2635">PR #2635&lt;/a> fügt presence-basierte Frische-Filterung zum Nests-Feed hinzu. Separat entfernt &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2627">PR #2627&lt;/a> Amethysts benutzerdefinierte C-secp256k1-Implementierung und migriert zu &lt;code>libschnorr256k1&lt;/code>.&lt;/p>
&lt;h3 id="nostream-fügt-nip-65-relay-listen-unterstützung-und-nwc-zahlungen-hinzu">nostream fügt NIP-65 Relay-Listen-Unterstützung und NWC-Zahlungen hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> mergte drei bemerkenswerte PRs nach dem 53-PR-Relay-Sprint der letzten Woche. &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Listen-Metadaten-Unterstützung landet in &lt;a href="https://github.com/Cameri/nostream/pull/585">PR #585&lt;/a>, sodass das Relay kind &lt;code>10002&lt;/code> Relay-Listen-Events indexieren und ausliefern kann. Ein Nostr-Wallet-Connect-Zahlungsprozessor folgt in &lt;a href="https://github.com/Cameri/nostream/pull/539">PR #539&lt;/a> und fügt einen Pay-to-Relay-Pfad hinzu. Das Verbindungs-Cleanup verbessert sich in &lt;a href="https://github.com/Cameri/nostream/pull/438">PR #438&lt;/a>, der einen Dead-Connection-Bug schließt, bei dem Sockets mit aktiven Subskriptionen nicht abgeräumt wurden, was zu einer Drift der Subskriptionszahlen auf lang laufenden Instanzen führte.&lt;/p>
&lt;h3 id="fips-fügt-nostr-basierten-udpnat-bootstrap-hinzu">FIPS fügt Nostr-basierten udp:nat-Bootstrap hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a>, das Free Internetworking Peering System, das zuvor in &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking">Newsletter #6&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#fips-v020-ships-tor-transport-reproducible-builds-and-sidecar-examples">Newsletter #10&lt;/a> behandelt wurde, mergte &lt;a href="https://github.com/jmcorgan/fips/pull/53">PR #53&lt;/a> mit Nostr-basiertem &lt;code>udp:nat&lt;/code>-Bootstrap. Die Änderung lässt Nodes Nostr-Adverts veröffentlichen, verschlüsselte Offer/Answer-Signaling austauschen, öffentliche Adressen über STUN entdecken, UDP-Hole-Punching durchführen und den gepunchten Socket in den normalen FIPS-Transport-Stack übergeben. Die Implementierung bindet Signal-Payload-Identitäten an den tatsächlichen Nostr-Sender, fragt konfigurierte DM- und Advert-Relays für den Inbox-Lookup ab und rollt fehlgeschlagene adoptierte Traversal-Übergaben zurück, sodass verwaiste UDP-Transporte nicht am Leben bleiben. Dies ist die Nostr-Ankündigungs- und NAT-Traversal-Arbeit, die im kanonischen Repo &lt;code>jmcorgan/fips&lt;/code> zu verfolgen ist.&lt;/p>
&lt;h3 id="strfry-fügt-per-connection-observability-hinzu">strfry fügt Per-Connection-Observability hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> mergte &lt;a href="https://github.com/hoytech/strfry/pull/214">PR #214&lt;/a> und fügt Per-Connection-Observability und Verbindungs-Level-Metriken hinzu, die über Prometheus exportierbar sind. &lt;a href="https://github.com/hoytech/strfry/pull/204">PR #204&lt;/a> normalisiert Prometheus-Labels, und &lt;a href="https://github.com/hoytech/strfry/pull/215">PR #215&lt;/a> fügt einen Community-Integrations-Abschnitt zur Dokumentation hinzu, der Namecoin-Identity-Projekte abdeckt, die auf strfry aufbauen.&lt;/p>
&lt;h3 id="sprout-fügt-owner-attestation-und-multi-workspace-unterstützung-hinzu">Sprout fügt Owner Attestation und Multi-Workspace-Unterstützung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout">Sprout&lt;/a>, Blocks Nostr-Client, mergte &lt;a href="https://github.com/block/sprout/pull/406">PR #406&lt;/a> und implementiert NIP-OA (Owner Attestation). Das Feature gibt einem autonomen Agenten einen kryptografischen Beweis, dass ein spezifischer menschlicher pubkey seine Aktionen autorisiert hat. &lt;a href="https://github.com/block/sprout/pull/409">PR #409&lt;/a> fügt Multi-Workspace-Unterstützung zur Desktop-App hinzu, &lt;a href="https://github.com/block/sprout/pull/411">PR #411&lt;/a> fügt &lt;code>#channel&lt;/code>-Autocomplete zum mobilen Compose hinzu, und &lt;a href="https://github.com/block/sprout/pull/410">PR #410&lt;/a> schließt ein Race-Fenster, das aktive Channel-Nachrichten fallenlassen konnte. &lt;a href="https://github.com/block/sprout/pull/413">PR #413&lt;/a> führt NIP-RS für die Cross-Device-Read-State-Synchronisation ein, und die Follow-up-PRs &lt;a href="https://github.com/block/sprout/pull/420">PR #420&lt;/a> und &lt;a href="https://github.com/block/sprout/pull/422">PR #422&lt;/a> verdrahten diesen Read-State in die mobilen Unread-Badges.&lt;/p>
&lt;h3 id="zap-cooking-fügt-recipe-packs-lösch-anfragen-und-bunker-login-hinzu">Zap Cooking fügt Recipe Packs, Lösch-Anfragen und Bunker-Login hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a> mergte eine produktive Woche der Rezeptveröffentlichungsarbeit. &lt;a href="https://github.com/nostr-protocol/nips/blob/master/09.md">NIP-09&lt;/a> Lösch-Anfragen für die eigenen Recipe Packs eines Benutzers landen in &lt;a href="https://github.com/zapcooking/frontend/pull/367">PR #367&lt;/a>. Die Veröffentlichungszuverlässigkeit verbessert sich durch &lt;a href="https://github.com/zapcooking/frontend/pull/366">PR #366&lt;/a>, der jedes neue Rezept auf das Garden-Relay zwingt und eine Retry-Queue für das gemeinsame Rezept-Set hinzufügt. One-Click-authored Pack-Publishing landet in &lt;a href="https://github.com/zapcooking/frontend/pull/365">PR #365&lt;/a>, und &lt;a href="https://github.com/zapcooking/frontend/pull/331">PR #331&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Bunker-Login-Unterstützung hinzu.&lt;/p>
&lt;h3 id="whitenoise-rs-verschlüsselt-seine-lokale-datenbank">Whitenoise-rs verschlüsselt seine lokale Datenbank&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> mergte &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/758">PR #758&lt;/a> und fügt SQLCipher-Verschlüsselung für die On-Disk-Whitenoise-Datenbank hinzu. Das schließt eine langbestehende At-Rest-Sicherheitslücke für den Marmot-Daemon-Stack. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/775">PR #775&lt;/a> exponiert die erforderlichen Gruppenfähigkeiten, &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/772">PR #772&lt;/a> migriert Gruppen-Medien-Operationen auf sessionbesessene &lt;code>MediaOps&lt;/code>, und &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/773">PR #773&lt;/a> extrahiert einen &lt;code>SharedServices&lt;/code>-Holder als Teil des Session-Ops-Refactors. Auf der mobilen Seite aktiviert &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/577">whitenoise PR #577&lt;/a> Boot-Auto-Restart für den Android-Foreground-Service und behebt den Fall, dass der Daemon nach einem Geräteneustart nicht zurückkommen würde.&lt;/p>
&lt;h2 id="neu-getrackt-und-entdeckt">Neu getrackt und entdeckt&lt;/h2>
&lt;h3 id="nostrord-ein-nip-29-client-mit-kotlin-multiplatform-und-wasm">Nostrord: ein NIP-29-Client mit Kotlin Multiplatform und WASM&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrord/nostrord">Nostrord&lt;/a> ist ein neuer &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> Gruppen-Chat-Client, der auf den Discord-Ersatz-Anwendungsfall abzielt. Gruppen leben auf Nostr-Relays mit relay-erzwungener Mitgliedschaft, Rollen, Moderation und Zugriffskontrolle, sodass der Gruppenzustand vom ausgewählten NIP-29-Relay gehostet wird. Der Client-Entwickler kontrolliert keine separate Anwendungsdatenbank für diese Gruppen. Die Web-App läuft unter &lt;a href="https://web.nostrord.com">web.nostrord.com&lt;/a> und ist mit Kotlin Multiplatform gebaut, das zu WebAssembly kompiliert, mit nativen Android-, iOS- und Desktop-Builds in Entwicklung. Nostrord ist ein &lt;a href="https://opensats.org">OpenSats&lt;/a> Grant-Empfänger und interoperiert mit denselben NIP-29-Relays, die von Flotilla, Chachi und 0xChat verwendet werden.&lt;/p>
&lt;h3 id="clave-bringt-nip-46-remote-signing-per-apns-auf-ios">Clave bringt NIP-46 Remote-Signing per APNs auf iOS&lt;/h3>
&lt;p>&lt;a href="https://github.com/DocNR/clave">Clave&lt;/a> ist ein iOS-Remote-Signer in der Beta, der Nostr-Events signiert, wenn die App nicht geöffnet ist. Der private Schlüssel bleibt im iPhone-Keychain. Wenn ein Client eine &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing-Anfrage sendet, liefert ein serverseitiger Proxy eine Apple Push Notification aus und weckt eine Notification Service Extension für bis zu 30 Sekunden. Diese Extension entschlüsselt die Anfrage mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> Verschlüsselung, signiert mit dem Keychain-Schlüssel und veröffentlicht die Antwort. Die Device-Token-Registrierung nutzt &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a> HTTP-Auth, um Token-Hijacking zu verhindern. Clave unterstützt &lt;code>bunker://&lt;/code> und &lt;code>nostrconnect://&lt;/code> Pairing, Per-Client-Vertrauensstufen, Per-kind-Overrides und wurde mit Nostur und noStrudel getestet.&lt;/p>
&lt;h3 id="treasures-dezentrales-geocaching-auf-nostr">Treasures: dezentrales Geocaching auf Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/treasures">Treasures&lt;/a> ist eine Geocaching-Plattform, bei der Caches und Funde signierte Nostr-Events sind. Cache-Ersteller veröffentlichen adressierbare kind &lt;code>37516&lt;/code> Events mit GPS-Koordinaten. Finder loggen die Entdeckung, indem sie einen QR-Code scannen, der am physischen Cache angebracht ist; der Code kodiert den Ersteller-pubkey, den &lt;code>d&lt;/code> Tag des Caches und einen Verifikations-Private-Key, der als Beweis des physischen Besuchs dient. &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> Zaps können von Findern zu Cache-Erstellern fließen, und die Live-App ist unter &lt;a href="https://treasures.to">treasures.to&lt;/a> erreichbar.&lt;/p>
&lt;h3 id="smesh-v051-selbstgehostetes-nostr-relay-client-und-signer-in-einem-stack">smesh v0.5.1: selbstgehostetes Nostr-Relay, Client und Signer in einem Stack&lt;/h3>
&lt;p>&lt;a href="https://git.smesh.lol/smesh/smesh">smesh&lt;/a> ist ein selbstgehosteter Nostr-Stack, geschrieben in Moxie, einer benutzerdefinierten Sprache, die von mleku aus Go und TinyGo abgeleitet wurde. Der Stack liefert eine native Relay-Binary mit HTTP-, WebSocket-, AUTH-, Such- und Blossom-Unterstützung; &lt;code>sm3sh&lt;/code>, einen Web-Client, der zu ES-Modulen kompiliert wird; und eine Browser-Signer-Erweiterung mit NIP-07 Browser-Signing plus NIP-04 und NIP-44 Verschlüsselungsunterstützung. Jüngste Arbeit umfasst MLS (RFC 9420) Gruppen-Messaging in v0.5.0, negentropy Set-Reconciliation für Relay-Sync und eine Web-of-Trust-Graph-Engine. Der Code liegt in mlekus selbstgehosteter Forge auf &lt;code>git.smesh.lol&lt;/code>, gebaut mit seinem eigenen &lt;code>git-web&lt;/code>-Tool. Das verwandte &lt;a href="https://git.smesh.lol/smesh/gitea-nostr-auth">gitea-nostr-auth&lt;/a> Repo ist eine OAuth2/OIDC-Brücke für Gitea: Benutzer authentifizieren sich mit einem NIP-07 Browser-Signer, die Brücke entdeckt Relays über NIP-65 und Gitea erhält standardmäßige OIDC-Identity-Claims.&lt;/p>
&lt;h3 id="surveil-ein-magic-the-gathering-deckbauer-auf-nostr">Surveil: ein Magic: The Gathering Deckbauer auf Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/surveil">Surveil&lt;/a> ist ein Nostr-Client für Magic: The Gathering Spieler, mit dem Benutzer Karten suchen, Decks bauen, Papierkarten auf Android mit On-Device-ML-Kit-OCR scannen und Decks im Netzwerk teilen können. Decks werden als adressierbare kind &lt;code>37381&lt;/code> Events veröffentlicht, und die Deck-Event-Spezifikation ist in der &lt;code>NIP.md&lt;/code> des Projekts dokumentiert. Die soziale Schicht ist aus standardmäßigen Nostr-Primitiven aufgebaut: NIP-22 (kind &lt;code>1111&lt;/code>) Threaded-Comments, die auf jedes Deck beschränkt sind, NIP-25 (kind &lt;code>7&lt;/code>) Reaktionen, &lt;a href="https://github.com/nostr-protocol/nips/blob/master/78.md">NIP-78&lt;/a> (kind &lt;code>30078&lt;/code>) Profildaten für Spieler-Homes, kind &lt;code>3&lt;/code> Follow-Feeds und Forks, die einen &lt;code>a&lt;/code> Tag zurück zum Original-Deck tragen. &lt;a href="https://gitlab.com/chad.curtis/surveil/-/tags/v0.1.6">v0.1.6&lt;/a> wurde diese Woche mit Politur der mobilen UI, Verbesserungen des Life Counters, einer überarbeiteten About-Seite und einer Relay-Pille am Deck-Hero-Banner ausgeliefert. Die Web-App läuft überall dort, wo statisches HTML ausgeliefert wird, der Android-Build wird über &lt;a href="https://zapstore.dev">Zapstore&lt;/a> ausgeliefert, und kind &lt;code>37381&lt;/code> Events werden auch nativ von &lt;a href="https://about.ditto.pub/reference">Ditto&lt;/a> als Magic-Decks indexiert. Das Repo liegt auf GitLab unter &lt;a href="https://gitlab.com/chad.curtis/surveil">chad.curtis/surveil&lt;/a>.&lt;/p>
&lt;h3 id="kleinere-ergänzungen-fundstr-nod-city-deploy-nsite-to-pages-und-null--nostr">Kleinere Ergänzungen: Fundstr, Nod City, deploy-nsite-to-pages und null&amp;ndash;nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/ritty65/Fundstr">Fundstr&lt;/a> ist eine Creator-Funding-Plattform auf Nostr, die Cashu-Ecash für einmalige und wiederkehrende Zusagen verwendet, mit Creator-Tier-Definitionen und Nostr-DMs. &lt;a href="https://nod.city">Nod City&lt;/a> ist eine Bitcoin-Service-Bewertungsseite, auf der Bewertungen signierte Nostr-Events sind und Rezensenten Zaps empfangen können; ein öffentliches Quellcode-Repo wurde nicht gefunden. &lt;a href="https://github.com/Origami74/deploy-nsite-to-pages">deploy-nsite-to-pages&lt;/a> ist eine GitHub Action, die eine nsite über &lt;code>nsyte download&lt;/code> auf GitHub Pages spiegelt, mit Unterstützung für root kind &lt;code>15128&lt;/code> und named kind &lt;code>35128&lt;/code> nsites. &lt;a href="https://github.com/tami1A84/null--nostr">null&amp;ndash;nostr&lt;/a>, ebenfalls in den NIP-34-Daten dieser Woche entdeckt, ist der Client, der in der jüngsten OpenSats-Welle als Nurunuru behandelt wurde; er unterstützt MLS-Gruppen-Messaging, Amber, NIP-50-Suche, NIP-70 geschützte Posts, ProofMode-Badges und Zapstore-Distribution.&lt;/p>
&lt;p>FIPS ist kein neues Projekt für Compass. Es wurde in &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#fips-nostr-native-mesh-networking">Newsletter #6&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#fips-v020-ships-tor-transport-reproducible-builds-and-sidecar-examples">Newsletter #10&lt;/a> behandelt. Die Datenbank zeigt jetzt auf das korrekte kanonische Repo, &lt;a href="https://github.com/jmcorgan/fips">jmcorgan/fips&lt;/a>, und die NIP-34-Entdeckung dieser Woche brachte auch verwandte Git-über-Nostr-Mirrors wie &lt;code>fips&lt;/code> und &lt;code>awesome-fips&lt;/code> ans Licht.&lt;/p>
&lt;h2 id="protokollarbeit">Protokollarbeit&lt;/h2>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;p>Jüngste Vorschläge und Diskussionen im &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Diese Woche gemerged:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-34 Git-Repositories: ungenutzte refs-Tag-Erweiterung entfernen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2325">PR #2325&lt;/a>): Entfernt eine &lt;code>refs&lt;/code> Tag-Erweiterung aus &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a>, die definiert, aber ungenutzt war. Das Cleanup reduziert die Implementierungsambiguität für Git-über-Nostr-Tools.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-34 Git-Repositories: falschen NIP-09-Anspruch entfernen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2326">PR #2326&lt;/a>): Entfernt einen falschen Anspruch, dass &lt;a href="https://github.com/nostr-protocol/nips/blob/master/09.md">NIP-09&lt;/a> Lösch-Events den Repository-Zustand zurücksetzen können. NIP-09-Löschung ist eine clientseitige Event-Lösch-Anfrage, kein Repository-State-Machine. Die Korrektur verhindert, dass NIP-34-Implementierer Lösch-Hinweise als autoritativ für Repo-Resets behandeln.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene und implementierungsgetriebene Arbeit:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>GitWorkshop kind &lt;code>1111&lt;/code> Inline-Review-Kommentare&lt;/strong>: Das Inline-Code-Review-Kommentar-kind ist in der &lt;code>NIP.md&lt;/code> von GitWorkshop dokumentiert und jetzt aktiv im Einsatz, wurde aber noch nicht als formales NIP vorgeschlagen. Verdict-Events (kind &lt;code>7321&lt;/code>) und &lt;code>suggestion&lt;/code> Blöcke bleiben im Entwurf und wurden noch nicht ausgeliefert. Implementierungsfeedback von GitWorkshop und ngit wird bestimmen, ob die Formen ein eigenständiges Git-Review-NIP werden oder eine Anwendungskonvention bleiben, die auf NIP-34 aufgesetzt ist.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Nostr Mail Core und Nostrmon&lt;/strong>: Zwei neue benutzerdefinierte NIP-Entwürfe zirkulierten diese Woche. &lt;a href="https://njump.me/57d11cdf2f9ed73f7f39d6a7a6012ee3d642584ab11887f96a031f7d00fd9697">Nostr Mail Core&lt;/a> schlägt kind &lt;code>1301&lt;/code> für RFC-2822-E-Mail-Inhalte vor, umschlossen von NIP-59 für private Zustellung und über NIP-05-aufgelöste Bridge-pubkeys mit Legacy-E-Mail verbunden. &lt;a href="https://njump.me/5e9a8cee19d464f5f0322518ac9ccaf2399c69da6572346b4fb12d36acb17a27">Nostrmon&lt;/a> skizziert adressierbare Event-kinds für Regionen, Karten, Kreaturen, NPCs, Spieler-Saves und Items. Beide bleiben benutzerdefinierte Entwürfe, keine gemergten 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>): Der Vorschlag iteriert weiter über das Hinzufügen eines positiven Completeness-Markers zu &lt;code>EOSE&lt;/code>, wodurch Relays &amp;ldquo;gespeicherte Events vollständig ausgeliefert&amp;rdquo; von Legacy-&lt;code>EOSE&lt;/code>-Fällen unterscheiden können, in denen das Relay keinen Completeness-Anspruch erhebt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="sechs-nostr-aprile">Sechs Nostr-Aprile&lt;/h2>
&lt;p>Der April gibt einen sauberen Querschnitt des Nostr-Entwicklungspfads: das Protokolldokument in 2021, frühe Client-Arbeit in 2022, die Post-Damus-Anwendungswelle in 2023, private Nachrichten und Git-über-Nostr-Arbeit in 2024, Blossom und Relay-Listen-Cleanup in 2025 und adoptionsfokussierte Client-Grants in 2026.&lt;/p>
&lt;h3 id="april-2021-das-protokolldokument-vor-dem-nips-repo">April 2021: das Protokolldokument vor dem NIPs-Repo&lt;/h3>
&lt;p>Fiatjaf veröffentlichte den ursprünglichen Nostr-Artikel, &lt;a href="https://fiatjaf.com/nostr.html">&amp;ldquo;Notes and Other Stuff Transmitted by Relays&amp;rdquo;&lt;/a>, am 20. November 2020. Dieser erste Text enthielt bereits die Kernform, die das Protokoll immer noch definiert: Benutzer signieren Events mit Schlüsseln, veröffentlichen sie an Relays und lesen von Relays ihrer Wahl. Das &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> zeigt keine Commits zwischen dem 1. und 30. April. Aktivität liegt auf beiden Seiten: Commits vom März 2021 fügten frühe &amp;ldquo;nostwitter&amp;rdquo;-Links und einen &lt;code>kind&lt;/code>-Filter hinzu, während der Mai 2021 NIP-02 umwidmete und die NIP-Autorenschaft hinzufügte.&lt;/p>
&lt;p>Im April 2021 gab es keinen öffentlichen Client-Markt, kein sichtbares Relay-Netzwerk und kein NIPs-Repo. Das Protokoll lebte immer noch als kleines Dokument und ein paar Experimente. Nostr war noch kein soziales Netzwerk oder eine Entwicklungsplattform geworden. Es war immer noch ein Relay/Key/Event-Modell, das auf seine erste nachhaltige Contributor-Welle wartete.&lt;/p>
&lt;h3 id="april-2022-nips-lebten-noch-im-haupt-repo">April 2022: NIPs lebten noch im Haupt-Repo&lt;/h3>
&lt;p>Der April 2022 war der letzte Monat, bevor NIPs aus dem Haupt-Repo &lt;code>nostr-protocol/nostr&lt;/code> ausgegliedert wurden. Da die Aufteilung noch nicht stattgefunden hatte, hatte das dedizierte &lt;a href="https://github.com/nostr-protocol/nips">&lt;code>nostr-protocol/nips&lt;/code>&lt;/a> Repo keine April-Pull-Request-Historie. Im Haupt-Repo landeten drei April-Commits: &lt;a href="https://github.com/nostr-protocol/nostr/commit/bae286312a233b971bee5429adda7aff41747eb8">&amp;ldquo;Update readme to add nip12&amp;rdquo;&lt;/a> am 8. April von goswami1999, &lt;a href="https://github.com/nostr-protocol/nostr/commit/4b9e9d123273ba8a5c70d77df46922070c11c11d">&amp;ldquo;add kinds list&amp;rdquo;&lt;/a> am 25. April von jb55 und &lt;a href="https://github.com/nostr-protocol/nostr/commit/759997657f07e0344064228ffe5e93febe85d367">&amp;ldquo;add js formatting to sample code&amp;rdquo;&lt;/a> am 28. April von steliosrammos.&lt;/p>
&lt;p>Auch die Client-Arbeit begann Gestalt anzunehmen. Damus-Commits aus April 2022 fügten frühes Chatroom-Verhalten, Profil-Handling und App-Icons hinzu, während nostr-tools zum JavaScript-Bibliothekspfad für frühe Clients und Experimente wurde. Auf der Protokollseite gab NIP-12 Generic-Tag-Queries der Tag-Suche einen dokumentierten Platz, die kinds-Liste bewegte Nostr in Richtung eines Registry-Modells, und bessere JavaScript-Beispiele machten die Spezifikation für Client- und Bibliotheksautoren einfacher zu implementieren. Am 1. Mai verschob fiatjaf die NIPs in das dedizierte Repo. Der April 2022 war der letzte Monat der ursprünglichen Single-Repo-Ära.&lt;/p>
&lt;h3 id="april-2023-post-damus-anwendungsexpansion">April 2023: Post-Damus-Anwendungsexpansion&lt;/h3>
&lt;p>Der April 2023 kam drei Monate nachdem Damus am 31. Januar 2023 im iOS App Store gestartet war und nachdem Jack Dorsey seinen Nostr Public Key gepostet hatte. Das Netzwerk hatte gerade seine erste große öffentliche Wachstumswelle absorbiert. Clients wie Damus, Snort, Iris, Coracle und Amethyst waren aktiv, während Relay-Betreiber lernten, was ein größerer sozialer Graph mit den Annahmen zu Bandbreite, Spam, Suche und Moderation machte.&lt;/p>
&lt;p>Der April 2023 hatte einen gemergten NIPs-PR: &lt;a href="https://github.com/nostr-protocol/nips/pull/456">PR #456&lt;/a>, gemerged am 17. April, der NIP-19 bech32-Entity-Links zur NIP-21-URI-Behandlung hinzufügte. Die umliegenden Commits zeigen den Anwendungsdruck hinter der Protokollarbeit. Der April 2023 sah Arbeit an &lt;a href="https://github.com/nostr-protocol/nips/commit/8b39976e78f90fe766ad7149e250777cddacbb5e">NIP-45 COUNT&lt;/a>, event-spezifischen Zap-Markern, &lt;a href="https://github.com/nostr-protocol/nips/commit/bf0a0da6a48b96467172414d8e41dc72b0ca379c">NIP-15 Marketplace&lt;/a>, NIP-26 Delete-Delegation-Semantik, NIP-94 File-Metadaten, NIP-47 Wallet-Connect-Error-Handling und &lt;a href="https://github.com/nostr-protocol/nips/commit/e91ce3409e1ce8267fc07a21784d2538621267c3">NIP-30 Custom Emoji&lt;/a>. Die Contributor-Liste hatte sich erweitert und umfasste fiatjaf, staab, pablof7z, Semisol, CodyTseng, sethforprivacy, mikedilger, AsaiToshiya, alexgleason, martindsq, frbittencourt und arkin0x.&lt;/p>
&lt;p>Damus, Snort, Iris, Coracle und Amethyst waren keine Demos rund um eine Spezifikation mehr; sie waren Produktionsclients, die sich mit Onboarding, Feeds, Spam, Zaps, Medien und Relay-Auswahl beschäftigten. Die Protokollarbeit vom April 2023 liest sich wie das Backlog, das diese Clients erstellt haben: Zaps, Marketplaces, File-Metadaten, Counting, Emoji und Identity-Links haben die Spezifikation alle über einfache Notes und Follows hinausgeschoben.&lt;/p>
&lt;h3 id="april-2024-private-nachrichten-git-über-nostr-und-maintainer-support">April 2024: private Nachrichten, Git-über-Nostr und Maintainer-Support&lt;/h3>
&lt;p>Der April 2024 hatte zwei NIP-PR-Merges. &lt;a href="https://github.com/nostr-protocol/nips/pull/1167">PR #1167&lt;/a>, gemerged am 10. April, behob verwirrende Terminologie in &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing, wo Clients und Signer eine exakte Sprache für angefragte und autorisierte Aktionen benötigen. &lt;a href="https://github.com/nostr-protocol/nips/pull/1108">PR #1108&lt;/a>, gemerged am 17. April, erweiterte &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> Git-Repositories mit Status-Events, Klärungen, optionalen Maintainern, Repo-Identifikatoren und Discoverability-Tags. Dieser Schritt machte Git-über-Nostr für ngit und später GitWorkshop praktikabler.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/commit/df30012430c88d49fb5b124992b04d5c61b6338b">NIP-17&lt;/a>, früher NIP-24, landete am 24. April als sealed gift-wrapped Nachrichten für private DMs und kleine Gruppen-Chats. Client- und Bibliotheksarbeit lief parallel: Amethyst, Primal, Gossip, nostr-tools, NDK und rust-nostr waren alle im selben Zeitraum aktiv.&lt;/p>
&lt;p>OpenSats kündigte im April 2024 auch langfristige Unterstützung für Nostr-Entwickler an: &lt;a href="https://opensats.org/blog/pablofz7-receives-lts-grant">PabloF7z&lt;/a> am 9. April, &lt;a href="https://opensats.org/blog/stuart-bowman-receives-lts-grant">Stuart Bowman&lt;/a> am 12. April und &lt;a href="https://opensats.org/blog/hzrd149-receives-lts-grant">hzrd149&lt;/a> am 15. April. Diese Grants verschoben die Finanzierung von isolierten Projekt-Grants hin zu nachhaltiger Wartung von Relays, Bibliotheken und Client-Infrastruktur.&lt;/p>
&lt;h3 id="april-2025-dichte-nip-bereinigung-und-blossom-formalisierung">April 2025: dichte NIP-Bereinigung und Blossom-Formalisierung&lt;/h3>
&lt;p>Der April 2025 war der dichteste Protokollmonat in dieser Retrospektive, mit sechzehn gemergten NIPs-PRs. Der Monat begann mit &lt;a href="https://github.com/nostr-protocol/nips/pull/1846">PR #1846&lt;/a>, der Blockchain-Transaktionen und -Adressen zu NIP-73 hinzufügte, und &lt;a href="https://github.com/nostr-protocol/nips/pull/1865">PR #1865&lt;/a>, der NIP-C0-Tags zur Tabelle der standardisierten Tags hinzufügte. Er ging weiter mit &lt;a href="https://github.com/nostr-protocol/nips/pull/1801">PR #1801&lt;/a> und &lt;a href="https://github.com/nostr-protocol/nips/pull/1889">PR #1889&lt;/a>, die beide die Anleitung zur Republikation von kind &lt;code>10002&lt;/code> Relay-Listen verbesserten, und &lt;a href="https://github.com/nostr-protocol/nips/pull/1879">PR #1879&lt;/a>, der &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> verkleinerte und klärte.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/1822">PR #1822&lt;/a> fügte NIP-B7 für Blossom-Interaktion hinzu und gab Nostr-Clients und Blossom-Servern nach mehr als einem Jahr informeller Praxis eine kanonische Koordinationsschicht. &lt;a href="https://github.com/nostr-protocol/nips/pull/1051">PR #1051&lt;/a> deprecatete &lt;a href="https://github.com/nostr-protocol/nips/blob/master/26.md">NIP-26&lt;/a>, die Spezifikation zur delegierten Event-Signierung. NIP-26 war schwierig sicher zu implementieren gewesen und war weniger attraktiv geworden, als NIP-46 und andere Signer-Muster reifer wurden.&lt;/p>
&lt;p>Der Rest des Monats kombinierte Bereinigung mit Anwendungserweiterung: &lt;a href="https://github.com/nostr-protocol/nips/pull/1882">PR #1882&lt;/a> fügte Datenschutzrichtlinien- und Nutzungsbedingungsfelder zu &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> hinzu, &lt;a href="https://github.com/nostr-protocol/nips/pull/1849">PR #1849&lt;/a> erweiterte kind &lt;code>39701&lt;/code> Web-Bookmarks unter NIP-B0, &lt;a href="https://github.com/nostr-protocol/nips/pull/1891">PR #1891&lt;/a> fügte dieses Bookmark-kind zur README hinzu, und &lt;a href="https://github.com/nostr-protocol/nips/pull/1895">PR #1895&lt;/a> fügte NIP-B0 standardisierte Tags hinzu. OpenSats kündigte am 16. April seine &lt;a href="https://opensats.org/blog/eleventh-wave-of-nostr-grants">elfte Welle der Nostr-Grants&lt;/a> an und finanzierte Swae, HAMSTR, Vertex, Nostr Double Ratchet und Nostr Game Engine. Primal, Coracle, noStrudel, nostr-tools, NDK und rust-nostr lieferten in diesem Zeitraum ebenfalls aus, sodass die Protokollbereinigung neben aktiver Client- und Bibliotheksarbeit stand.&lt;/p>
&lt;h3 id="april-2026-nip-34-härtung-badges-und-adoptionsfokussierte-grants">April 2026: NIP-34-Härtung, Badges und adoptionsfokussierte Grants&lt;/h3>
&lt;p>Der April 2026, der Monat, mit dem diese Ausgabe abschließt, hatte vier gemergte NIPs-PRs. Der erste war &lt;a href="https://github.com/nostr-protocol/nips/pull/2276">PR #2276&lt;/a>, gemerged am 1. April, der &lt;a href="https://github.com/nostr-protocol/nips/blob/master/58.md">NIP-58&lt;/a> Profile Badges auf kind &lt;code>10008&lt;/code> änderte und kind &lt;code>30008&lt;/code> Badge-Sets hinzufügte, wodurch Badge-Zuweisung und Badge-Sammlungen komponierbarer wurden. Eine zweite Usability-Änderung für Git-über-Nostr kam in &lt;a href="https://github.com/nostr-protocol/nips/pull/2312">PR #2312&lt;/a>, gemerged am 10. April, die &lt;code>nostr://&lt;/code> Clone-URL-Semantik zu &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> hinzufügte. Die Bereinigungen vom 25. April, &lt;a href="https://github.com/nostr-protocol/nips/pull/2325">PR #2325&lt;/a> und &lt;a href="https://github.com/nostr-protocol/nips/pull/2326">PR #2326&lt;/a>, entfernten ungenutzte und falsche NIP-34-Sprache.&lt;/p>
&lt;p>Verwandte Commits schärfen dieselben Oberflächen. Am 22. April fügte fiatjaf eine Blossom-Server-Liste zu NIP-51 hinzu und passte die NIP-29-Metadaten-Bearbeitung an das PUT-Style-Verhalten von Flotilla an. Am 26. April benannte er NIP-5A zur Klarheit um. Der April 2026 konzentrierte sich darauf, bereits genutzte Protokolloberflächen einfacher zu implementieren und schwerer fehlzuinterpretieren zu machen.&lt;/p>
&lt;p>OpenSats kündigte am 8. April seine &lt;a href="https://opensats.org/blog/sixteenth-wave-of-nostr-grants">sechzehnte Welle der Nostr-Grants&lt;/a> an und unterstützte Amethyst Desktop, Nostr Mail, Nostrord, Nurunuru (null&amp;ndash;nostr) und eine HAMSTR-Erneuerung: Desktop-Clients, E-Mail-ähnliches Messaging, Gruppen-UX, japanisches Onboarding und Off-Grid-Konnektivität.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Danke fürs Lesen von Nostr Compass #20. &lt;a href="https://nostr.com">DM uns auf Nostr&lt;/a> mit Tipps, Korrekturen oder neuen Projekten, die wir behandeln sollen.&lt;/em>&lt;/p></content:encoded></item><item><title>Nostr Compass #19</title><link>https://nostrcompass.org/de/newsletters/2026-04-22-newsletter/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-04-22-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert einen großen Schwung an Marmot-, Community- und MoQ-Audio-Rooms-Arbeit aus, &lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> stabilisiert Pay-per-use-Internetzugang über Nostr und Cashu in v0.1.0, und &lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> schließt eine Woche Relay-Arbeit rund um &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a>, Kompression, Query-Härtung und vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Parität ab. Forgesworn startet einen kompletten Signing-, Identity- und Paid-API-Stack für Nostr. ShockWallet treibt Nostr-native Lightning-Wallet-Flows weiter voran. Die Formstr-Suite bringt Security-Härtung in Pollerama, i18n in Forms und RRULE-Support in Nostr Calendar. StableKraft, Keep, topaz, WoT Relay, Flotilla und NipLock runden die Releases ab. Die Deep Dives behandeln &lt;a href="https://nostrcompass.org/de/topics/nip-72/">NIP-72&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert einen großen Schwung an Marmot-, Community- und MoQ-Audio-Rooms-Arbeit aus, &lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> stabilisiert Pay-per-use-Internetzugang über Nostr und Cashu in v0.1.0, und &lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a> schließt eine Woche Relay-Arbeit rund um &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a>, Kompression, Query-Härtung und vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Parität ab. Forgesworn startet einen kompletten Signing-, Identity- und Paid-API-Stack für Nostr. ShockWallet treibt Nostr-native Lightning-Wallet-Flows weiter voran. Die Formstr-Suite bringt Security-Härtung in Pollerama, i18n in Forms und RRULE-Support in Nostr Calendar. StableKraft, Keep, topaz, WoT Relay, Flotilla und NipLock runden die Releases ab. Die Deep Dives behandeln &lt;a href="https://nostrcompass.org/de/topics/nip-72/">NIP-72&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a>.&lt;/p>
&lt;h2 id="top-stories">Top Stories&lt;/h2>
&lt;h3 id="amethyst-liefert-marmot-mip-compliance-nip-72-communities-zap-goals-und-moq-audio-räume">Amethyst liefert Marmot-MIP-Compliance, NIP-72-Communities, Zap Goals und MoQ-Audio-Räume&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergte diese Woche 57 PRs. Die Hauptthemen sind &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Compliance, erstklassige &lt;a href="https://nostrcompass.org/de/topics/nip-72/">NIP-72&lt;/a>-Communities, Zap Goals auf Livestreams und ein neuer Audio-Rooms-Stack auf Basis von Media over QUIC. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2462">PR #2462&lt;/a> richtet die eingebettete &lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a>-Implementierung an den Wire-Formaten von MIP-01 und MIP-05 aus. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2435">PR #2435&lt;/a> ergänzt MIP-00 KeyPackage Relay Lists, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2436">PR #2436&lt;/a> schließt Admin-Gate- und Media-Lücken aus Cross-Client-Tests mit &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>.&lt;/p>
&lt;p>Am selben Tag landen Korrekturen für MLS-Commit-Framing und Outer-Layer-Decryption in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2466">PR #2466&lt;/a> und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2471">PR #2471&lt;/a>. Weitere Compliance-Arbeit in &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2477">PR #2477&lt;/a> und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2493">PR #2493&lt;/a> schließt zusätzliche Commit- und Message-Encryption-Lücken und fügt einen Validator für MLS-Commit-Kryptographie hinzu. Parallel dazu liefert &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2488">PR #2488&lt;/a> &lt;code>amy&lt;/code>, eine CLI für Marmot- und MLS-Gruppenoperationen.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2468">PR #2468&lt;/a> bringt erstklassige Erstellung und Verwaltung von &lt;a href="https://nostrcompass.org/de/topics/nip-72/">NIP-72&lt;/a>-Communities. Nutzer können die kind-&lt;code>34550&lt;/code>-Community-Definition veröffentlichen, Moderatoren und Relay-Hints hinzufügen, Beiträge mit &lt;code>a&lt;/code>-Tag einreichen und ausstehende Freigaben über kind &lt;code>4549&lt;/code> verwalten. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2469">PR #2469&lt;/a> integriert &lt;a href="https://nostrcompass.org/de/topics/nip-75/">NIP-75&lt;/a> Zap Goals in den &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a>-Live-Activities-Screen. Jeder Stream erhält jetzt einen Fundraising-Header mit Fortschrittsbalken, One-Tap-Zap-Button und Top-Zappers-Leaderboard.&lt;/p>
&lt;p>Der ambitionierteste neue Bereich ist Echtzeit-Audio. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2494">PR #2494&lt;/a> fügt einen Media-over-QUIC-Transport-Client und Audio-Rooms-Support hinzu. Zusammen mit dem neuen Public-Chats-Screen aus &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2487">PR #2487&lt;/a> hat Amethyst nun eine End-to-End-Oberfläche für öffentliche Audio-Räume neben seinem Marmot-Messaging.&lt;/p>
&lt;h3 id="tollgate-v010-stabilisiert-pay-per-use-internet-über-nostr-und-cashu">TollGate v0.1.0 stabilisiert Pay-per-use-Internet über Nostr und Cashu&lt;/h3>
&lt;p>&lt;a href="https://github.com/OpenTollGate/tollgate">TollGate&lt;/a> veröffentlichte am 21. April &lt;a href="https://github.com/OpenTollGate/tollgate/releases/tag/v0.1.0">v0.1.0&lt;/a>, den ersten getaggten Snapshot seines Spezifikationsstapels für Pay-per-use-Netzwerkzugang. Das Protokoll erlaubt Geräten wie WiFi-Routern, Ethernet-Switches oder Bluetooth-Tethers, Preise zu bewerben, &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-ecash-Tokens zu akzeptieren und Sessions über vorausbezahlte lokale Tokens zu verwalten. Ein Kunde mit einigen sats in einer lokalen Cashu-Wallet kann so die nächsten Minuten oder Megabytes Konnektivität kaufen.&lt;/p>
&lt;p>Der Release fixiert drei Schichten der Architektur. &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/TIP-01.md">TIP-01&lt;/a> definiert die Basis-Eventformen, &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/TIP-02.md">TIP-02&lt;/a> legt Cashu-Zahlungen darüber, &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/HTTP-01.md">HTTP-01&lt;/a> bis HTTP-03 definieren eine plain-HTTP-Oberfläche, &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/NOSTR-01.md">NOSTR-01&lt;/a> die Nostr-Relay-Variante, und &lt;a href="https://github.com/OpenTollGate/tollgate/blob/v0.1.0/WIFI-01.md">WIFI-01&lt;/a> die Captive-Portal-Routing-Schicht. Die neue &lt;a href="https://nostrcompass.org/de/topics/tollgate/">TollGate-Topic-Page&lt;/a> deckt den gesamten Stack ab.&lt;/p>
&lt;h3 id="nostream-mergt-53-prs-für-nip-45-nip-62-kompression-und-query-härtung">nostream mergt 53 PRs für NIP-45, NIP-62, Kompression und Query-Härtung&lt;/h3>
&lt;p>&lt;a href="https://github.com/Cameri/nostream">nostream&lt;/a>, die TypeScript-Relay-Implementierung von Cameri, mergte 53 PRs in einer Woche. &lt;a href="https://github.com/Cameri/nostream/pull/522">PR #522&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a> &lt;code>COUNT&lt;/code>-Support hinzu, &lt;a href="https://github.com/Cameri/nostream/pull/544">PR #544&lt;/a> ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> Right-to-Vanish in der beworbenen Feature-Liste, &lt;a href="https://github.com/Cameri/nostream/pull/548">PR #548&lt;/a> erweitert das Filter-Schema um Großbuchstaben-Tag-Filter, und &lt;a href="https://github.com/Cameri/nostream/pull/514">PR #514&lt;/a> bringt gzip- und xz-Kompression für Event-Import und -Export.&lt;/p>
&lt;p>&lt;a href="https://github.com/Cameri/nostream/pull/534">PR #534&lt;/a> führt ein Benchmarking-Harness und Optimierungen in der Filter-zu-SQL-Übersetzung ein. &lt;a href="https://github.com/Cameri/nostream/pull/524">PR #524&lt;/a> behebt einen Fehler beim Matching von Pubkeys in White- und Blacklists, &lt;a href="https://github.com/Cameri/nostream/pull/553">PR #553&lt;/a> fügt einen deterministischen Tie-Breaker zu &lt;code>upsertMany&lt;/code> hinzu, und &lt;a href="https://github.com/Cameri/nostream/pull/493">PR #493&lt;/a> beschränkt das Vertrauen in &lt;code>X-Forwarded-For&lt;/code> auf konfigurierte Trusted Proxies. &lt;a href="https://github.com/Cameri/nostream/pull/557">PR #557&lt;/a> bringt vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Parität.&lt;/p>
&lt;h2 id="shipping-this-week">Shipping This Week&lt;/h2>
&lt;h3 id="primal-android-liefert-explore-tab-nip-05-verifikation-und-audio-player">Primal Android liefert Explore-Tab, NIP-05-Verifikation und Audio-Player&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> pushte 11 gemergte PRs auf den Feed-Redesigns der Vorwoche aufbauend. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1021">PR #1021&lt;/a> bringt einen neuen Explore-Tab, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1015">PR #1015&lt;/a> einen Feed-Editor mit Primal-DSL, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/994">PR #994&lt;/a> &lt;a href="https://github.com/nostr-protocol/nips/blob/master/05.md">NIP-05&lt;/a>-Verifikation für Profile und &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/997">PR #997&lt;/a> einen In-Feed-Audio-Player. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1018">PR #1018&lt;/a> ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> nostr-connect-Pairing über den Wallet-QR-Scanner.&lt;/p>
&lt;h3 id="strfry-fügt-prometheus-write-path-metriken-hinzu-und-behebt-nip-42-auth-envelope">strfry fügt Prometheus-Write-Path-Metriken hinzu und behebt NIP-42-AUTH-Envelope&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> veröffentlichte mehrere operator-orientierte Verbesserungen. &lt;a href="https://github.com/hoytech/strfry/pull/194">PR #194&lt;/a> fügt einen dedizierten Prometheus-Exporter für den Write Path hinzu, &lt;a href="https://github.com/hoytech/strfry/pull/197">PR #197&lt;/a> loggt Bytes up und down sowie Kompressionsraten, und &lt;a href="https://github.com/hoytech/strfry/pull/192">PR #192&lt;/a> macht das Filter-Tag-Limit zur Laufzeit konfigurierbar. &lt;a href="https://github.com/hoytech/strfry/pull/201">PR #201&lt;/a> korrigiert die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/42.md">NIP-42&lt;/a>-AUTH-Failures vom &lt;code>NOTICE&lt;/code>-Format auf das im NIP spezifizierte &lt;code>OK&lt;/code>-Envelope.&lt;/p>
&lt;h3 id="shopstr-härtet-storefront-sicherheit-über-13-prs">Shopstr härtet Storefront-Sicherheit über 13 PRs&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> mergte 13 PRs, dominiert von Security-Fixes. Dazu gehören die Schließung einer Stored-JavaScript-Lücke in Storefront-Links, Escaping für HTML-Rendering, Absicherung von API-Endpunkten hinter Auth und Fixes für SSRF-Funde. Funktional wurden ein Replay-sicherer Failed-Relay-Publish-Queue, ein Fix für Wallet-Events-Fetches und Revalidierung gespeicherter Cart-Discounts ergänzt.&lt;/p>
&lt;h3 id="nostria-v3122-bis-v3128-fügen-hintergrund-musikwiedergabe-auf-android-hinzu">Nostria v3.1.22 bis v3.1.28 fügen Hintergrund-Musikwiedergabe auf Android hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> veröffentlichte sechs Releases von &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.22">v3.1.22&lt;/a> bis &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.28">v3.1.28&lt;/a>. Die zentrale Änderung in &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.26">v3.1.26&lt;/a> ist Hintergrund-Musikwiedergabe auf Android mit Steuerung in Benachrichtigungsleiste und Lockscreen. Die nachfolgenden Releases härten diesen neuen Media-Service-Pfad.&lt;/p>
&lt;h3 id="wisp-v0180-beta-fügt-normie-mode-for-you-feed-und-nip-29-gruppenkonfiguration-hinzu">Wisp v0.18.0-beta fügt Normie Mode, For You Feed und NIP-29-Gruppenkonfiguration hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> veröffentlichte &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.18.0-beta">v0.18.0-beta&lt;/a> am 16. April. &lt;a href="https://github.com/barrydeen/wisp/pull/462">PR #462&lt;/a> ergänzt einen Normie Mode mit Fiat-Beträgen, &lt;a href="https://github.com/barrydeen/wisp/pull/464">PR #464&lt;/a> überarbeitet das Onboarding, und &lt;a href="https://github.com/barrydeen/wisp/pull/469">PR #469&lt;/a> fügt einen For You Feed hinzu. Auf der Protokollseite ergänzt &lt;a href="https://github.com/barrydeen/wisp/pull/471">PR #471&lt;/a> &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Gruppenkonfiguration für Flags, Invites, Rollen und AUTH-Prompts.&lt;/p>
&lt;h3 id="noornote-v084-fügt-geplante-beiträge-und-livestream-zaps-hinzu">NoorNote v0.8.4 fügt geplante Beiträge und Livestream-Zaps hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a> veröffentlichte &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.4">v0.8.4&lt;/a> und &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.8.5">v0.8.5&lt;/a>. v0.8.4 bringt ein Scheduled-Posts-Add-on, bei dem die App ein vollständig signiertes Event an ein NoorNote-Relay übergibt, das es zum geplanten Zeitpunkt veröffentlicht. Derselbe Release ergänzt One-Tap-Zapping aus Livestream-Karten, wobei die sats im Chat-Overlay des Streams über &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a> erscheinen.&lt;/p>
&lt;h3 id="topaz-v002-liefert-ein-nostr-relay-für-android-aus">topaz v0.0.2 liefert ein Nostr-Relay für Android aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/topaz">topaz&lt;/a>, ein neues Nostr-Relay für Android-Telefone von fiatjaf, veröffentlichte &lt;a href="https://github.com/fiatjaf/topaz/releases/tag/v0.0.2">v0.0.2&lt;/a> am 17. April. Das Projekt ist Kotlin-first und positioniert das Smartphone als stets verfügbares persönliches Relay.&lt;/p>
&lt;h3 id="stablekraft-v100-liefert-den-ersten-stabilen-pwa-release-für-musik-und-podcasts-aus">StableKraft v1.0.0 liefert den ersten stabilen PWA-Release für Musik und Podcasts aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/ChadFarrow/stablekraft-app">StableKraft&lt;/a> ist eine Next.js-PWA zum Entdecken, Organisieren und Streamen von Musik aus Podcast-Feeds, mit Nostr für Auth und soziale Features und Lightning für V4V-Zahlungen. Das Projekt erreichte &lt;a href="https://github.com/ChadFarrow/stablekraft-app/releases/tag/v1.0.0">v1.0.0&lt;/a> am 18. April. Dieselbe Woche brachte Feed-Ingestion-Härtung und ein kleineres Reparse-Fenster, damit neu hinzugefügte Feeds schneller selbst heilen.&lt;/p>
&lt;h3 id="niplock-liefert-einen-auf-nip-17-basierenden-passwortmanager-aus">NipLock liefert einen auf NIP-17 basierenden Passwortmanager aus&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/npub1z5jf78uhd68znuwwwu926th55rzd0wy8nd9clkr03cx22mwme0jqazk56h/relay.ngit.dev/passwd">NipLock&lt;/a> ist ein Passwortmanager, der Zugangsdaten über &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Gift-Wrapped Direct Messages zwischen Geräten speichert und synchronisiert. Jede Passwort-Zeile ist eine NIP-17-DM vom Schlüssel des Nutzers an sich selbst, sodass dieselben Events auf jedes Gerät replizieren, das sich mit demselben Schlüssel authentifiziert. Signing funktioniert mit nsec, Browser Extensions wie &lt;a href="https://github.com/fiatjaf/nos2x">nos2x&lt;/a> oder &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> via &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>.&lt;/p>
&lt;h3 id="flotilla-budabit-poliert-seine-nip-34-repo-oberfläche">flotilla-budabit poliert seine NIP-34-Repo-Oberfläche&lt;/h3>
&lt;p>Die Budabit-Community-Fork von &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>, lieferte mehrere Fixes für ihren NIP-34-Git-over-Nostr-Workflow aus, darunter wiederhergestellte Repo-Diskussionssteuerung, sichtbare Sticky-Tabs, Laden von Repo-Announcements aus gespeicherten GRASP-Relays und Synchronisierung des durch Maintainer gesetzten Patch-Status.&lt;/p>
&lt;h3 id="rx-nostr-372-bis-374-fügen-default-verifier-und-optionale-constructor-argumente-hinzu">rx-nostr 3.7.2 bis 3.7.4 fügen Default-Verifier und optionale Constructor-Argumente hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/penpenpng/rx-nostr">rx-nostr&lt;/a> veröffentlichte &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> und &lt;a href="https://github.com/penpenpng/rx-nostr/releases/tag/rx-nostr%403.7.4">3.7.4&lt;/a>. &lt;a href="https://github.com/penpenpng/rx-nostr/pull/192">PR #192&lt;/a> ergänzt einen standardmäßigen Schnorr-Signaturverifier, und &lt;a href="https://github.com/penpenpng/rx-nostr/pull/195">PR #195&lt;/a> macht die Argumente von &lt;code>createRxNostr()&lt;/code> optional.&lt;/p>
&lt;h3 id="keep-android-v100-liefert-mit-reproducible-builds-und-null-trackern-aus">Keep Android v1.0.0 liefert mit reproducible builds und null Trackern aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> veröffentlichte &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v1.0.0">v1.0.0&lt;/a> am 21. April nach mehreren Hardening-PRs. Dazu gehören reproducible builds mit fixierter Toolchain, der Wechsel von Google ML Kit zu ZXing und ein &lt;a href="https://reports.exodus-privacy.eu.org/en/">Exodus Privacy scan&lt;/a>, der null Tracker auf dem v1.0.0-Build zeigt.&lt;/p>
&lt;h3 id="flotilla-173-und-174-fügen-kind-9-wrapping-für-reichere-nip-29-räume-hinzu">Flotilla 1.7.3 und 1.7.4 fügen kind-9-Wrapping für reichere NIP-29-Räume hinzu&lt;/h3>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, hodlbods &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Client, veröffentlichte &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.3">1.7.3&lt;/a> und &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.4">1.7.4&lt;/a>. Die wichtigste Protokolländerung ist kind-9-Wrapping für Nicht-Chat-Inhaltstypen, angekündigt in &lt;a href="#ZgotmplZ">hodlbods Release-Note&lt;/a> und verknüpft mit &lt;a href="https://github.com/nostr-protocol/nips/pull/2310">NIP PR #2310&lt;/a>.&lt;/p>
&lt;h3 id="wot-relay-v021-migriert-den-eventstore-auf-lmdb">WoT Relay v0.2.1 migriert den Eventstore auf LMDB&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/wot-relay">WoT Relay&lt;/a> veröffentlichte &lt;a href="https://github.com/bitvora/wot-relay/releases/tag/v0.2.1">v0.2.1&lt;/a> am 22. April. &lt;a href="https://github.com/bitvora/wot-relay/pull/97">PR #97&lt;/a> migriert den Eventstore auf &lt;a href="http://www.lmdb.tech/">LMDB&lt;/a>, &lt;a href="https://github.com/bitvora/wot-relay/pull/99">PR #99&lt;/a> aktualisiert &lt;code>golang.org/x/crypto&lt;/code>, und &lt;a href="https://github.com/bitvora/wot-relay/pull/100">PR #100&lt;/a> aktualisiert die beworbene &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Software-URL und Versionszeichenkette.&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>Die Formstr-Suite mergte 26 PRs über Pollerama, Formstr Forms und Nostr Calendar hinweg. &lt;a href="https://pollerama.fun">Pollerama&lt;/a> härte sein Key-Handling, indem gecachte Direct Messages beim Logout verfallen, lokale Keys in sichere Browser-Storage wandern und &lt;code>JSON.parse&lt;/code> von kind-0-Profilen auf allen Login-Pfaden abgesichert wird. &lt;a href="https://formstr.app">Formstr&lt;/a> ergänzte Audio- und Video-URLs, i18n und einen Google-Forms-Importer. &lt;a href="https://calendar.formstr.app">Nostr Calendar by Formstr&lt;/a> veröffentlichte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.3.0">v1.3.0&lt;/a> und &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.4.0">v1.4.0&lt;/a> mit RRULE-Unterstützung, UTC-Korrektur für Floating-Dates und überarbeitetem Login- und Loading-Pfad.&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>Mehrere Clients veröffentlichten kleinere iterative Releases ohne große Headlines. notedeck brachte v0.10.0-beta.4 mit Column-Rendering- und Relay-Pool-Fixes, nostr.blue v0.8.6 zog Dioxus 0.7.5 nach und reparierte den Android-Build, cliprelay veröffentlichte Desktop v0.0.3 und Android v0.0.4, und Captain&amp;rsquo;s Log lieferte Alpha-Builds mit Liveness Detection für Sync-Relays.&lt;/p>
&lt;h2 id="in-development">In Development&lt;/h2>
&lt;h3 id="whitenoise-rs-refaktoriert-zu-session-scoped-account-views">whitenoise-rs refaktoriert zu session-scoped Account-Views&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a>, der Rust-Daemon unter dem &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Client, mergte 15 PRs, die einen mehrphasigen Refactor von globalen Singletons zu account-spezifischen &lt;code>AccountSession&lt;/code>-Views voranbringen. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/743">PR #743&lt;/a> schuf das Grundgerüst, Folgephasen migrierten Relay-Handles, Drafts, Settings, Message-Ops, Gruppenfunktionen, Push Notifications und KeyPackage-Reads, und &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/770">PR #770&lt;/a> verlegt nun auch den Event-Dispatch in die Session.&lt;/p>
&lt;h3 id="white-noise-fügt-blockunblock-ui-leave-group-und-offline-hinweise-hinzu">White Noise fügt Block/Unblock-UI, Leave-Group und Offline-Hinweise hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> ergänzte fehlende Group-Lifecycle-Steuerung. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/578">PR #578&lt;/a> liefert die Block- und Unblock-UI, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/571">PR #571&lt;/a> und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/572">PR #572&lt;/a> verkabeln &lt;code>clear_chat&lt;/code>, &lt;code>delete_chat&lt;/code> und &lt;code>leave_and_delete_group&lt;/code> aus der Rust-Seite in die App, und &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> ergänzen Offline-Hinweise in Chat- und Settings-Screens.&lt;/p>
&lt;h3 id="mdk-fügt-mixed-version-invite-support-und-selfupdate-konvergenz-hinzu">MDK fügt Mixed-Version-Invite-Support und SelfUpdate-Konvergenz hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> mergte sieben PRs. Die wichtigste Korrektur ist &lt;a href="https://github.com/marmot-protocol/mdk/pull/261">PR #261&lt;/a>, die &lt;code>RequiredCapabilities&lt;/code> einer Gruppe als LCD der Invitee-Fähigkeiten berechnet und damit Mixed-Version-Invites zwischen Amethyst und White Noise freischaltet. &lt;a href="https://github.com/marmot-protocol/mdk/pull/264">PR #264&lt;/a> vereinheitlicht das SelfUpdate-Wire-Format, weitere PRs härten Invitee-KeyPackage-Parsing, Admin-Depletion-Validierung und In-Memory-Storage.&lt;/p>
&lt;h3 id="nostter-fügt-nip-44-verschlüsselung-für-people-lists-bookmarks-und-mutes-hinzu">nostter fügt NIP-44-Verschlüsselung für People Lists, Bookmarks und Mutes hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/SnowCait/nostter">nostter&lt;/a> mergte 10 PRs. &lt;a href="https://github.com/SnowCait/nostter/pull/2088">PR #2088&lt;/a> ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> für Mute-Listen, &lt;a href="https://github.com/SnowCait/nostter/pull/2089">PR #2089&lt;/a> für Bookmarks und &lt;a href="https://github.com/SnowCait/nostter/pull/2090">PR #2090&lt;/a> für People Lists. Damit wandert die App dort, wo es passt, von &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> ab.&lt;/p>
&lt;h3 id="zapcooking-liefert-nourish-scoring-und-wiederverwendbaren-comment-thread">zap.cooking liefert Nourish-Scoring und wiederverwendbaren Comment Thread&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">zap.cooking&lt;/a> mergte 20 PRs. Das zentrale Feature ist ein neues Nourish-Rezeptbewertungsmodul, dazu kommt ein vierstufiger Refactor, der das Comments-Modul zu einem wiederverwendbaren &lt;code>CommentThread&lt;/code> macht.&lt;/p>
&lt;h3 id="ridestr-extrahiert-gemeinsamen-rider-coordinator">ridestr extrahiert gemeinsamen Rider Coordinator&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">ridestr&lt;/a> mergte 10 PRs, refaktorierte Compose-Screens in fokussierte Komponenten und extrahierte Protokolllogik für Rider und Driver in ein gemeinsames &lt;code>:common&lt;/code>-Coordinator-Modul. &lt;a href="https://github.com/variablefate/ridestr/pull/60">PR #60&lt;/a> ergänzt einen kind-&lt;code>3189&lt;/code>-Driver-Ping-Receiver.&lt;/p>
&lt;h3 id="blossom-entwirft-einen-bud-01-sunset-header-für-blob-expiration">Blossom entwirft einen BUD-01-Sunset-Header für Blob-Expiration&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a> eröffnete &lt;a href="https://github.com/hzrd149/blossom/pull/99">PR #99&lt;/a>, um einen &lt;code>Sunset&lt;/code>-Header zu BUD-01 hinzuzufügen. Ein Server könnte damit einen zukünftigen Timestamp ankündigen, ab dem ein Blob nicht mehr ausgeliefert wird.&lt;/p>
&lt;h2 id="new-projects">New Projects&lt;/h2>
&lt;h3 id="forgesworn-veröffentlicht-ein-29-repos-umfassendes-kryptographisches-toolkit-für-nostr">Forgesworn veröffentlicht ein 29-Repos-umfassendes kryptographisches Toolkit für Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/forgesworn">Forgesworn&lt;/a> veröffentlichte in fünf Tagen 29 Open-Source-Repositories für Signing, Identity, Attestations, Web of Trust und Paid-API-Discovery auf Nostr. Zum Signing-Stack gehören &lt;a href="https://github.com/forgesworn/nsec-tree">nsec-tree&lt;/a>, &lt;a href="https://github.com/forgesworn/heartwood">Heartwood&lt;/a>, &lt;a href="https://github.com/forgesworn/sapwood">Sapwood&lt;/a> und &lt;a href="https://github.com/forgesworn/nsec-tree-cli">nsec-tree-cli&lt;/a>. Auf der Identity-Seite erreichte &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>, &lt;a href="https://github.com/forgesworn/nostr-attestations">nostr-attestations&lt;/a> definiert ein einheitliches kind-&lt;code>31000&lt;/code>-Event, und &lt;a href="https://github.com/forgesworn/nostr-veil">nostr-veil&lt;/a> baut ein privacy-preserving Web of Trust auf LSAG-Ring-Signaturen.&lt;/p>
&lt;p>Die Monetisierungsseite deckt bezahlte APIs über Lightning und Nostr ab. &lt;a href="https://github.com/forgesworn/toll-booth">toll-booth&lt;/a> ist ein L402-Middleware-Layer für mehrere Frameworks, &lt;a href="https://github.com/forgesworn/toll-booth-dvm">toll-booth-dvm&lt;/a> exponiert die API als &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> Data Vending Machine, und &lt;a href="https://github.com/forgesworn/402-announce">402-announce&lt;/a> publiziert kind-&lt;code>31402&lt;/code>-Events für HTTP-402-Service-Discovery auf Nostr.&lt;/p>
&lt;h3 id="shockwallet-liefert-nostr-nativen-lightning-wallet-sync-und-multi-node-verbindungen-aus">ShockWallet liefert Nostr-nativen Lightning-Wallet-Sync und Multi-Node-Verbindungen aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/shocknet/wallet2">ShockWallet&lt;/a> ist eine Lightning-Wallet, die Nostr als Transport für die Verbindung zu selbstverwahrten Lightning-Nodes nutzt. Die App koppelt sich über ein &lt;code>nprofile&lt;/code> an einen oder mehrere &lt;a href="https://github.com/shocknet/Lightning.Pub">Lightning.Pub&lt;/a>-Nodes und signiert Payment-Autorisierungen Ende zu Ende zwischen Wallet und Node. Das Team lieferte &lt;a href="https://github.com/shocknet/wallet2/pull/608">PR #608&lt;/a> mit einer neuen Channels-Dashboard-UI aus, dazu kamen ein Admin-Invite-Link-QR-Flow und Verbesserungen für das Metrics-Dashboard.&lt;/p>
&lt;p>ShockWallet nutzt &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-78&lt;/a> application-specific data events für Multi-Device-Wallet-State-Sync, sodass die Wallet-Sicht über Browser und Smartphone konsistent bleibt, ohne einen zentralen Sync-Server.&lt;/p>
&lt;h3 id="nostrability-issues-wechseln-nach-github-zensur-zu-git-over-nostr">Nostrability-Issues wechseln nach GitHub-Zensur zu Git over Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitworkshop.dev/elsat@habla.news/nostrability/issues">Nostrability&lt;/a>, elsats Interoperabilitäts-Tracker für Nostr-Clients und Relays, verlagert seinen Issue-Workflow auf Git over Nostr, nachdem die GitHub-Organisation Nostrability entfernt wurde und zwei Wochen lang keine Antwort vom GitHub-Support kam.&lt;/p>
&lt;h3 id="nowhere-codiert-vollständige-websites-in-url-fragmente-und-routet-bestellungen-über-nostr">nowhere codiert vollständige Websites in URL-Fragmente und routet Bestellungen über Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/5t34k/nowhere">nowhere&lt;/a> serialisiert eine komplette Website in den URL-Fragmentteil nach &lt;code>#&lt;/code>, komprimiert sie und kodiert sie base64url. Weil Browser Fragmente nicht an Server senden, sieht der Host, der die Seite ausliefert, den eigentlichen Inhalt nie. Fünf der acht Site-Typen sind statisch, für Store, Forum und Petition läuft die Live-Kommunikation über Nostr-Relays und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-verschlüsselte Events mit Wegwerf-Schlüsseln.&lt;/p>
&lt;h3 id="kleine-neue-flächen-relaykit-und-brainstorm-search">Kleine neue Flächen: relayk.it und Brainstorm Search&lt;/h3>
&lt;p>Zwei kleine Projekte verdienen ohne großes Changelog eine Erwähnung. &lt;a href="https://relayk.it">relayk.it&lt;/a> ist ein mit &lt;a href="https://shakespeare.diy">Shakespeare&lt;/a> gebauter Relay-Discovery-Client komplett im Browser. &lt;a href="https://brainstorm.world">Brainstorm Search&lt;/a> ist eine Single-Page-Nostr-Suche mit Fokus auf Inhalte im gesamten Netzwerk.&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>Aktuelle Vorschläge und Diskussionen im &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/de/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>): Schlägt ein optionales drittes Element für &lt;code>EOSE&lt;/code> vor, damit ein Relay explizit signalisieren kann, ob alle passenden gespeicherten Events geliefert wurden.&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>): Schlägt einen neuen kind für interaktive Applets auf Nostr vor, zwischen &lt;a href="https://nostrcompass.org/de/topics/nip-5a/">NIP-5A&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-5c/">NIP-5C&lt;/a>.&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>): Erweitert &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> um eine Subgroup-Hierarchie für mehrere Channels innerhalb einer Gruppe.&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>): Definiert ein explizites Berechtigungsschema für Rollen in NIP-29.&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>): Schlägt ein neues optionales &lt;code>access_control&lt;/code>-Objekt im &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> Relay Information Document vor.&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>): Wird seit &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-15-newsletter/">Newsletter #18&lt;/a> weiter ausgearbeitet.&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>): Schlägt ein addressable Event für signierte Attestierungen über autonome Agenten und Services auf Nostr vor.&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>): Iteriert weiter am kind-&lt;code>20411&lt;/code>-Modell und der &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselungsform pro Empfänger.&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>): Bündelt die ersten geplanten Breaking Changes im TypeScript-Marmot-Client.&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> definiert ein Modell für themenbasierte Communities auf Nostr, in dem Moderatoren eine Leseansicht über sonst unbeschränkte Schreibrechte kuratieren. Anders als bei &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Gruppen liegt die Autorität nicht bei einem einzelnen Relay. Eine NIP-72-Community lebt in normalen Nostr-Events, und jedes Relay, das die relevanten Kinds trägt, kann sie ausliefern.&lt;/p>
&lt;p>Eine Community wird durch ein addressable kind-&lt;code>34550&lt;/code>-Event definiert. Das &lt;code>d&lt;/code>-Tag ist ihr stabiler Slug, &lt;code>name&lt;/code>, &lt;code>description&lt;/code>, &lt;code>image&lt;/code> und &lt;code>rules&lt;/code> tragen Darstellungsmetadaten, und &lt;code>p&lt;/code>-Tags mit Marker &lt;code>moderator&lt;/code> listen die pubkeys auf, deren Freigaben zählen. Nutzer reichen Beiträge ein, indem sie ein beliebiges gewöhnliches Event veröffentlichen und ein &lt;code>a&lt;/code>-Tag mit der Community-Koordinate hinzufügen. Die Freigabe erfolgt über ein separates kind-&lt;code>4549&lt;/code>-Event eines Moderators, das die Einreichung referenziert und eine stringifizierte Kopie davon in &lt;code>content&lt;/code> cached.&lt;/p>
&lt;p>Das Modell hat drei wichtige Eigenschaften: Moderationsentscheidungen sind transparent, weil jede Freigabe ein signiertes Nostr-Event ist; Moderation ist nicht exklusiv, weil derselbe Beitrag von mehreren Communities freigegeben werden kann; und sie ist auf Leseschicht umkehrbar, weil ältere Freigaben eines entfernten Moderators in Clients nicht mehr zählen müssen. Der Tradeoff bleibt, dass Einreichungen von Anfang an öffentlich sind. NIP-72 verbirgt unfreigegebene Beiträge auf Rendering-Ebene, hält sie aber nicht vom Wire fern.&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> definiert zaps, also die Verknüpfung von Lightning-Zahlungen mit Nostr-Identitäten und Inhalten. Ein Zap beweist, dass ein bestimmter Sender einen bestimmten Betrag an einen bestimmten Empfänger für ein bestimmtes Ziel bezahlt hat und dass dieser Nachweis von jedem Nostr-Client gelesen werden kann. Das NIP verbindet LNURL, Lightning und Nostr in einem gemeinsamen Ablauf.&lt;/p>
&lt;p>Der Sender entdeckt zuerst den LNURL-Endpoint des Empfängers aus dessen Profil oder einem &lt;code>zap&lt;/code>-Tag auf dem Ziel-Event. Danach signiert der Client ein kind-&lt;code>9734&lt;/code>-Zap-Request-Event und sendet es an den LNURL-Callback, nicht an Relays. Nach Zahlung veröffentlicht der Wallet-Server des Empfängers ein kind-&lt;code>9735&lt;/code>-Zap-Receipt auf den Relays, die im Request angegeben wurden. Das Receipt enthält den stringifizierten Zap-Request im &lt;code>description&lt;/code>-Tag, die bezahlte Invoice im &lt;code>bolt11&lt;/code>-Tag und einen &lt;code>preimage&lt;/code>-Nachweis.&lt;/p>
&lt;p>Die Sicherheitsgarantie entsteht erst durch Validierung. Ein Client sollte die Signatur des Receipts gegen den &lt;code>nostrPubkey&lt;/code> aus der LNURL-Antwort prüfen, die &lt;code>bolt11&lt;/code>-Amount gegen den &lt;code>amount&lt;/code>-Tag vergleichen, den Description-Hash gegen den eingebetteten Request validieren und das &lt;code>preimage&lt;/code> gegen den &lt;code>payment_hash&lt;/code> der Invoice prüfen. Ohne diese Prüfungen ist ein Receipt nur eine Behauptung. NIP-57 trägt außerdem &lt;a href="https://nostrcompass.org/de/topics/nip-75/">NIP-75&lt;/a> Zap Goals, bei denen beliebige Zap Receipts auf das Fortschrittsziel eines kind-&lt;code>9041&lt;/code>-Events angerechnet werden.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wenn du etwas baust oder Neuigkeiten teilen willst, schreib uns auf Nostr oder schau bei &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a> vorbei.&lt;/p></content:encoded></item><item><title>Nostr Compass #18</title><link>https://nostrcompass.org/de/newsletters/2026-04-15-newsletter/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-04-15-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergt 29 PRs, darunter Desktop-Tor-Support, eine eigene C-secp256k1-Implementierung, ein vollständiges WebRTC-Calls-System für &lt;a href="https://nostrcompass.org/de/topics/nip-ac/">NIP-AC&lt;/a>, RFC-9420-MLS-Compliance für &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> und Multi-Wallet-&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>. &lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> startet als Android-Push-App, die Firebase durch Nostr-Relays und kind &lt;code>7741&lt;/code> ersetzt. &lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a> fügt Reticulum hinzu und bringt Nostr über LoRa-Mesh ohne Internetanbindung. &lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> startet mit v0.1.0 als Desktop-App mit integriertem &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server und Relay. &lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> debütiert als Nostr-Internetradio auf Basis von &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a>. &lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> startet als self-hosted Bot-Plattform für &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Gruppenchats. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a> liefert v0.5.0 bis v0.5.3 mit Security-Audit und Performance-Überarbeitung, und &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> gestaltet seinen Feed neu.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergt 29 PRs, darunter Desktop-Tor-Support, eine eigene C-secp256k1-Implementierung, ein vollständiges WebRTC-Calls-System für &lt;a href="https://nostrcompass.org/de/topics/nip-ac/">NIP-AC&lt;/a>, RFC-9420-MLS-Compliance für &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> und Multi-Wallet-&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>. &lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> startet als Android-Push-App, die Firebase durch Nostr-Relays und kind &lt;code>7741&lt;/code> ersetzt. &lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a> fügt Reticulum hinzu und bringt Nostr über LoRa-Mesh ohne Internetanbindung. &lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> startet mit v0.1.0 als Desktop-App mit integriertem &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server und Relay. &lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> debütiert als Nostr-Internetradio auf Basis von &lt;a href="https://nostrcompass.org/de/topics/nip-53/">NIP-53&lt;/a>. &lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> startet als self-hosted Bot-Plattform für &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Gruppenchats. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a> liefert v0.5.0 bis v0.5.3 mit Security-Audit und Performance-Überarbeitung, und &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> gestaltet seinen Feed neu.&lt;/p>
&lt;h2 id="top-stories">Top Stories&lt;/h2>
&lt;h3 id="amethyst-mergt-desktop-tor-c-secp256k1-webrtc-calls-und-multi-wallet-nwc">Amethyst mergt Desktop Tor, C secp256k1, WebRTC-Calls und Multi-Wallet NWC&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der von vitorpamplona gepflegte Android-Client, mergte diese Woche 29 PRs zu Kryptographie, Networking, Calling und Wallet-Infrastruktur. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2381">PR #2381&lt;/a> ist die größte Änderung: Desktop-Tor-Support mit eingebettetem kmp-tor-Daemon und Fail-Closed-Design. Wenn Tor aktiviert ist, laufen alle Relay-Verbindungen über den eingebetteten Tor-Prozess. Startet Tor nicht, verbindet sich die App nicht. Damit erreicht das Privacy-Routing Parität zwischen Android- und Desktop-Builds.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2374">PR #2374&lt;/a> fügt eine eigene C-secp256k1-Implementierung mit JNI-Bindings für die Signaturverifikation hinzu. Die Implementierung nutzt GLV-Decomposition, wNAF-Punktkodierung und hardwarebeschleunigtes SHA-256 auf x86_64 und ARM64. Das bringt laut Projekt eine zwei- bis dreifache Beschleunigung der Schnorr-Signaturprüfung gegenüber dem bisherigen reinen Kotlin-Pfad. Zusätzliche PRs in derselben Serie verbessern fused multiply-reduce, ersetzen &lt;code>LongArray&lt;/code> durch eine dedizierte Fe4-Struktur und fügen plattformspezifische Intrinsics hinzu.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2202">PR #2202&lt;/a> bringt die reine Kotlin-MLS-Implementierung auf RFC-9420-Compliance und ergänzt Reuse-Guard-Prüfungen, Additional Authenticated Data, Korrekturen beim Commit-Processing und Thread-Safety für die &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Integration. Eine Serie von WebRTC-PRs, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2203">PR #2203&lt;/a> bis &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2211">PR #2211&lt;/a>, fügt ein vollständiges Sprach- und Video-Calls-System für &lt;a href="https://nostrcompass.org/de/topics/nip-ac/">NIP-AC&lt;/a> hinzu, einschließlich ICE-Restart, Kamerawechsel zur Laufzeit, Netzwerküberwachung, Reconnect-Logik und Android-14+-Foreground-Service-Fixes. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1988">PR #1988&lt;/a> ergänzt außerdem Multi-Wallet-&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>-Support.&lt;/p>
&lt;h3 id="nstrfy-startet-nostr-native-push-benachrichtigungen-für-android">nstrfy startet Nostr-native Push-Benachrichtigungen für Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/vcavallo/nstrfy-android">nstrfy&lt;/a> startete am 13. April mit drei Releases von &lt;a href="https://github.com/vcavallo/nstrfy-android/releases/tag/v1.0.0">v1.0.0&lt;/a> bis &lt;a href="https://github.com/vcavallo/nstrfy-android/releases/tag/v1.2.0">v1.2.0&lt;/a>. Die App ist ein Fork von ntfy-android, bei dem der HTTP-Transport durch Nostr ersetzt wurde. Statt einen Server auf Push-Nachrichten abzufragen, abonniert nstrfy kind-&lt;code>7741&lt;/code>-Events auf konfigurierbaren Relays und zeigt sie als native Android-Benachrichtigungen an.&lt;/p>
&lt;p>Das Benachrichtigungsmodell unterstützt sowohl plaintext als auch mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> verschlüsselte Payloads. Wenn Verschlüsselung aktiv ist, nutzt nstrfy &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> für Signing via &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> oder einen lokalen nsec. Topic-basierte Subscriptions erlauben pro Topic Sender-Allowlists mit npub-Whitelisting. Die App importiert Relay-Listen aus dem Profil des Nutzers über &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> und respektiert &lt;a href="https://nostrcompass.org/de/topics/nip-40/">NIP-40&lt;/a> Event Expiration. Das Begleitprojekt &lt;a href="https://github.com/vcavallo/nstrfy.sh">nstrfy.sh&lt;/a> liefert eine bash-CLI und einen gehosteten Web-Client.&lt;/p>
&lt;h3 id="hamstr-fügt-reticulum-für-nostr-über-lora-mesh-hinzu">HAMSTR fügt Reticulum für Nostr über LoRa-Mesh hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/LibertyFarmer/hamstr">HAMSTR&lt;/a>, das Nostr-Events und Lightning-zaps über Amateurfunk überträgt, mergte am 12. April &lt;a href="https://github.com/LibertyFarmer/hamstr/pull/10">PR #10&lt;/a> und fügte &lt;a href="https://reticulum.network/">Reticulum&lt;/a> als Transport-Backend hinzu. Reticulum ist ein kryptographisches Mesh-Protokoll für LoRa, HF, VHF/UHF, serielle Verbindungen und TCP/IP. Mit dieser Ergänzung kann HAMSTR Nostr-Events über ein Mesh aus RNode-Hardware vollständig ohne Internet-Infrastruktur weiterleiten.&lt;/p>
&lt;p>Die bestehenden AX.25-Packet-Radio- und VARA-HF-Transports bleiben verfügbar. HAMSTRs Zero-Knowledge-Server-Architektur bedeutet, dass das Relay keine private keys sieht, und die &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a>-Zap-Compliance sorgt dafür, dass Offline-Lightning-zaps in Clients wie Amethyst und Primal korrekt erscheinen. Eine Setup-Anleitung für den Reticulum-Transport ist in &lt;a href="https://github.com/LibertyFarmer/hamstr/blob/master/RETICULUM.MD">RETICULUM.MD&lt;/a> enthalten.&lt;/p>
&lt;h2 id="shipping-this-week">Shipping This Week&lt;/h2>
&lt;h3 id="bloom-v010-liefert-self-hosted-blossom-server-und-relay-aus">Bloom v0.1.0 liefert self-hosted Blossom-Server und Relay aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrnative/bloom">Bloom&lt;/a> veröffentlichte seinen ersten Release, &lt;a href="https://github.com/nostrnative/bloom/releases/tag/v0.1.0">v0.1.0&lt;/a>, am 9. April. Bloom wird mit Tauri v2 und React 19 gebaut und bündelt einen vollständigen &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienserver, BUD-00 bis BUD-10, und ein Nostr-Relay in einer einzigen Desktop-Anwendung für macOS, Windows und Linux. Nutzer erhalten souveräne Dateispeicherung mit SHA-256-Content-Addressing, &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a>-Dateimetadaten und &lt;code>blossom://&lt;/code>-Auflösung, ohne eigene Server-Infrastruktur betreiben zu müssen.&lt;/p>
&lt;h3 id="wavefunc-v010-und-v011-starten-nostr-internetradio">WaveFunc v0.1.0 und v0.1.1 starten Nostr-Internetradio&lt;/h3>
&lt;p>&lt;a href="https://github.com/zeSchlausKwab/wavefunc">WaveFunc&lt;/a> veröffentlichte &lt;a href="https://github.com/zeSchlausKwab/wavefunc/releases/tag/v0.1.0">v0.1.0&lt;/a> und &lt;a href="https://github.com/zeSchlausKwab/wavefunc/releases/tag/v0.1.1">v0.1.1&lt;/a> am 13. April. Der Dienst startet als auf Nostr basierendes Internetradio-Verzeichnis und Player. Die Datenstruktur nutzt eigene Event-Kinds: kind &lt;code>31237&lt;/code> für Senderlisten, kind &lt;code>30078&lt;/code> für Favoritenlisten, kind &lt;code>1311&lt;/code> für Live-Chat und kind &lt;code>1111&lt;/code> für Senderkommentare. Ein Khatru-Relay-Backend liefert SQLite-Speicherung und Bluge-Volltextsuche mit &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a>.&lt;/p>
&lt;p>WaveFunc bringt außerdem eine &lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a>-Cashu-Wallet und nutzap-Support mit, migrierte von NDK zu applesauce-core und ergänzte in v0.1.1 Genre-Karussells, Lightning-Donations, Senderverwaltung für eingeloggte Nutzer und einen Zapstore-Eintrag.&lt;/p>
&lt;h3 id="snort-liefert-v050-bis-v053-mit-security-härtung-und-performance-überarbeitung">Snort liefert v0.5.0 bis v0.5.3 mit Security-Härtung und Performance-Überarbeitung&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/snort">Snort&lt;/a> veröffentlichte drei Releases von &lt;a href="https://github.com/v0l/snort/releases/tag/v0.5.0">v0.5.0&lt;/a> bis &lt;a href="https://github.com/v0l/snort/releases/tag/v0.5.3">v0.5.3&lt;/a>. v0.5.0 ist der größte Schritt und bringt ein umfassendes Security-Audit, echte Schnorr-Signaturprüfung, gehärteten Schutz für &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> gegen gefälschte Relay-Nachrichten, verbesserte PIN-Verschlüsselung und das Ende des Vertrauens in unbestätigte NIP-26-Delegation. Performance-Gewinne kommen durch gebündelte WASM-Verifikation, lazy-geladene Routen und einen neu geschriebenen Priority-Profile-Loader.&lt;/p>
&lt;p>Die Release-Linie ergänzt außerdem die Anzeige von kind-&lt;code>7000&lt;/code>-Payment-Required-Invoices für &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> DVMs. &lt;a href="https://github.com/v0l/snort/pull/620">PR #620&lt;/a> überarbeitet zusätzlich das Messaging-System und ersetzt eine O(n²)-Berechnung der Chat-Liste durch einen einzelnen Map-basierten Durchlauf.&lt;/p>
&lt;h3 id="primal-android-liefert-3021-und-gestaltet-das-feed-layout-neu">Primal Android liefert 3.0.21 und gestaltet das Feed-Layout neu&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> veröffentlichte &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.21">v3.0.21&lt;/a> mit Fixes für Poll-Zap-Stimmen, Wallet-Multi-Account-Sharing und Auto-Reconnect für Remote Signer und Wallet-Service. Danach folgten sieben gemergte PRs. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1008">PR #1008&lt;/a> vereinheitlicht das Main-Screen-Layout, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1010">PR #1010&lt;/a> führt ein neues Feed-Card-Design mit größeren Avataren ein, und &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1009">PR #1009&lt;/a> ergänzt Video-Support und Portrait-Layout für Media-Cards.&lt;/p>
&lt;h3 id="nostria-v3119-bis-v3121-fügen-lokale-ai-bildgenerierung-hinzu">Nostria v3.1.19 bis v3.1.21 fügen lokale AI-Bildgenerierung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> veröffentlichte drei Releases von &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.19">v3.1.19&lt;/a> bis &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.21">v3.1.21&lt;/a> mit mehr als 80 Commits. Die wichtigste Neuerung ist lokale Bildgenerierung mit Janus Pro und WebGPU-Beschleunigung, sodass Nutzer Bilder direkt auf dem Gerät ohne externe API erzeugen können. Dazu kommen Cloud-Bildgenerierung, multimodaler Chat, ONNX-Runtime-Support, eine AI-Prompt-Bibliothek und AI-Cache-Management.&lt;/p>
&lt;h3 id="tubestr-v103-liefert-feed--und-studio-updates-aus">TubeStr v1.0.3 liefert Feed- und Studio-Updates aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/Tubestr/tubestr-v2">TubeStr&lt;/a> veröffentlichte &lt;a href="https://github.com/Tubestr/tubestr-v2/releases/tag/v1.0.3">v1.0.3&lt;/a> am 13. April. Der Release verbessert Feed und Studio. &lt;a href="https://github.com/Tubestr/tubestr-v2/pull/3">PR #3&lt;/a> überarbeitet das Onboarding, &lt;a href="https://github.com/Tubestr/tubestr-v2/pull/2">PR #2&lt;/a> behebt einen Fehler beim Videoexport. Die App nutzt NDK und MDK für verschlüsselte Medienfreigabe im Familienkontext und plant &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a> für die Medienspeicherung.&lt;/p>
&lt;h2 id="in-development">In Development&lt;/h2>
&lt;h3 id="botburrow-beginnt-die-entwicklung-als-marmot-bot-plattform">Botburrow beginnt die Entwicklung als Marmot-Bot-Plattform&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/botburrow">Botburrow&lt;/a> ist ein neues Projekt des Marmot-Teams, gestartet am 3. April. Es ist eine self-hosted Bot-Management-Plattform, auf der jeder Bot eine eigene Nostr-Identität erhält, &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-verschlüsselten Gruppen per Welcome-Nachrichten beitritt und Ende-zu-Ende-verschlüsselte Nachrichten sendet und empfängt. Das Dashboard ist mit Rails 8.1 gebaut und spricht über einen Unix-Socket mit einem einzelnen whitenoise-rs-Daemon.&lt;/p>
&lt;h3 id="nostr-archives-fügt-trending-feeds-relay-und-entity-resolution-hinzu">Nostr Archives fügt Trending-Feeds-Relay und Entity Resolution hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/nostrarchives-api">Nostr Archives&lt;/a> entwickelte seine Rust-API und das Next.js-Frontend weiter. &lt;a href="https://github.com/barrydeen/nostrarchives-api/pull/118">PR #118&lt;/a> ergänzt Time-Range-Filterung für das Client-Leaderboard, &lt;a href="https://github.com/barrydeen/nostrarchives-api/pull/117">PR #117&lt;/a> fügt Engagement-Zähler für Reply-Events hinzu. Auf der Frontend-Seite löst &lt;a href="https://github.com/barrydeen/nostrarchives-frontend/pull/85">PR #85&lt;/a> Nostr-Entities direkt aus URL-Pfaden auf, und &lt;a href="https://github.com/barrydeen/nostrarchives-frontend/pull/86">PR #86&lt;/a> fügt eine API-Dokumentationsseite hinzu.&lt;/p>
&lt;h3 id="damus-behebt-die-favorites-timeline">Damus behebt die Favorites-Timeline&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> mergte &lt;a href="https://github.com/damus-io/damus/pull/3708">PR #3708&lt;/a>, das &lt;code>subscribe_to_favorites()&lt;/code> mit In-Place-Filtering, neuer Deduplizierung und persistierter Tab-Auswahl neu schreibt.&lt;/p>
&lt;h3 id="nostur-fügt-private-zaps-und-benutzerdefinierte-emoji-anzeige-hinzu">Nostur fügt private zaps und benutzerdefinierte Emoji-Anzeige hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> pushte zehn Commits und ergänzte private zaps, Anzeige benutzerdefinierter Emoji, einen Fix für animiertes &lt;code>.webp&lt;/code>-Rendering und Erkennung des Audioformats für Sprachmemos.&lt;/p>
&lt;h3 id="amber-liefert-v601-bis-v603-mit-webdav-backups-und-relay-reconnect-fixes">Amber liefert v6.0.1 bis v6.0.3 mit WebDAV-Backups und Relay-Reconnect-Fixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die Android-&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Signer-App, veröffentlichte drei Releases. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.1">v6.0.1&lt;/a> fügt WebDAV- und Google-Drive-Backups hinzu, implementiert Exponential Backoff für Relay-Reconnects und aktualisiert Quartz. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.2">v6.0.2&lt;/a> ergänzt eine Account-Index-Option bei Seed-Wörtern, und &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.3">v6.0.3&lt;/a> behebt leere Request-IDs beim Empfangen von Intents.&lt;/p>
&lt;h3 id="plektos-v060-gestaltet-mit-ditto-themes-neu">Plektos v0.6.0 gestaltet mit Ditto-Themes neu&lt;/h3>
&lt;p>&lt;a href="https://github.com/derekross/plektos">Plektos&lt;/a>, die auf &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> basierende Meetup- und Event-Plattform, veröffentlichte &lt;a href="https://github.com/derekross/plektos/commit/7a691cdf089ceb7a8582dd5c0ee026830f2cdc77">v0.6.0&lt;/a> und &lt;a href="https://github.com/derekross/plektos/commit/3a6474ae380522d8ee1b3526423fcfc3328fd879">v0.6.1&lt;/a>. Das Update bringt Ditto-artige Community-Themes, konfigurierbare Avatar-Formen und eine UI-Überarbeitung.&lt;/p>
&lt;h3 id="shadow-fügt-nostr-os-api-und-cashu-wallet-app-hinzu">Shadow fügt Nostr OS API und Cashu-Wallet-App hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/justinmoon/shadow">Shadow&lt;/a> pushte in zwei Tagen über 30 Commits. &lt;a href="https://github.com/justinmoon/shadow/commit/88cbda5131814d2730a2d892029932136db005df">Commit 88cbda5&lt;/a> fügt eine Cashu-Wallet-App innerhalb der Shadow-Runtime hinzu, &lt;a href="https://github.com/justinmoon/shadow/commit/865c415">Commit 865c415&lt;/a> ergänzt einen Podcast-Player-Demo. Die Runtime exponiert &lt;code>Shadow.os.nostr&lt;/code> und &lt;code>Shadow.os.audio&lt;/code> als erstklassige OS-APIs.&lt;/p>
&lt;h3 id="lief-behebt-amber-login-und-fügt-zapstore-hinzu">Lief behebt Amber-Login und fügt Zapstore hinzu&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/lief">Lief&lt;/a> veröffentlichte Build &lt;code>v2026.04.12&lt;/code> und behebt ein &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>-Signer-Login-Problem auf Android, vereinfacht den Signer-Nudge-Flow, aktualisiert nostrify und ergänzt Zapstore-Integration.&lt;/p>
&lt;h3 id="espy-überarbeitet-den-color-picker-und-behebt-amber-login">Espy überarbeitet den Color Picker und behebt Amber-Login&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/chad.curtis/espy">Espy&lt;/a> veröffentlichte ebenfalls Build &lt;code>v2026.04.12&lt;/code>. Das Update überarbeitet den Color Picker, ersetzt den Grayscale-Toggle durch einen gekrümmten Sättigungsbogen, behebt Flicker-Bugs im Hue-Ring und fügt Easter-Egg-Charaktere hinzu. Außerdem kommt derselbe Amber-Login-Fix wie in Lief.&lt;/p>
&lt;h3 id="jumble-fügt-kind-filter-pro-feed-und-einen-artikel-tab-hinzu">Jumble fügt Kind-Filter pro Feed und einen Artikel-Tab hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a> pushte 13 Commits und ergänzte Kind-Filter pro Feed, einen Articles-Tab, Sync des Notification-Read-Status mit einer privacy-preserving Option, einen Avatar-Hide-Modus und einen Fix für einen Race-Condition beim Account-Wechsel.&lt;/p>
&lt;h3 id="primal-web-liefert-acht-versionssprünge">Primal Web liefert acht Versionssprünge&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-web-app">Primal Web&lt;/a> veröffentlichte in einer Woche die Versionen 3.0.93 bis 3.0.101 mit 21 Commits. Die Arbeit konzentrierte sich auf Verbesserungen im Livestream-Chat, Mention-Boundary-Fixes, Bookmark-Pagination, Verhinderung doppelter Likes und 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>Aktuelle Änderungen im &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/de/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>): Der PR fügt ein &lt;code>nostr://&lt;/code>-Clone-URL-Format für Git-over-Nostr-Repositories hinzu. Definiert werden direkte &lt;code>naddr&lt;/code>-Referenzen sowie menschenlesbare Formen über &lt;code>npub&lt;/code> oder &lt;a href="https://github.com/nostr-protocol/nips/blob/master/05.md">NIP-05&lt;/a>. Die Änderung ist bereits in Shakespeare, ngit, GitWorkshop.dev und NostrHub.io sichtbar und verschärft zugleich das &lt;code>d&lt;/code>-Tag-Format für Repository-Identifiers.&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>): Schlägt ein neues replaceable kind-&lt;code>10164&lt;/code>-Event vor, mit dem Content-Creator Payment Gateways, Preisstufen und Subscription-Regeln für bezahlte Inhalte deklarieren können.&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>): Schlägt kind &lt;code>10100&lt;/code> für gossippbare Relay-Selbsterklärungen sowie eine neue Relay-zu-Client-Nachricht &lt;code>HORIZON&lt;/code> vor, die dem Client vor &lt;code>EOSE&lt;/code> mitteilt, ab welchem Timestamp das Relay überhaupt Daten hält.&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>): Schlägt kind &lt;code>20411&lt;/code> für verschlüsselte Geolokationsdaten an ausgewählte Empfänger vor, mit &lt;code>ttl&lt;/code>-Tag und per Empfänger verschlüsselten &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Payloads.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Führt die Spezifikation für WebAssembly-Programme auf Nostr weiter aus und verfeinert Event-Format und Runtime-Interface für Scrolls.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Schlägt abwärtskompatible Unterstützung für Payloads vor, die größer als 65.535 Byte sind, vor allem relevant für große &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Antworten wie umfangreiche Contact Lists.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Präzisiert, dass Clients in Chat-Ansichten nur kind-&lt;code>9&lt;/code>-Events abrufen sollen, damit Chat-Nachrichten nicht ohne Kontext in allgemeine Feeds geraten.&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> definiert ein Modell für Gruppenkommunikation, bei dem das Relay selbst Mitgliedschaft und Moderation verwaltet. Gruppen leben auf einem bestimmten Relay und das Relay setzt durch, wer schreiben darf. Das ist eine andere Architektur als &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> oder &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> Gruppenchats: Bei NIP-29 ist das Relay die Autorität, kann die Nachrichten lesen und moderiert auf Relay-Ebene.&lt;/p>
&lt;p>Eine Gruppe wird durch &lt;code>&amp;lt;host&amp;gt;'&amp;lt;group-id&amp;gt;&lt;/code> identifiziert, etwa &lt;code>groups.nostr.com'abcdef&lt;/code>. Nutzer-Events tragen ein &lt;code>h&lt;/code>-Tag mit der Gruppen-ID, und das optionale &lt;code>previous&lt;/code>-Tag wirkt als Mechanismus zur Tamper-Erkennung. Clients fügen die ersten acht Hex-Zeichen kürzlich gesehener Events bei, und Relays lehnen Events ab, deren &lt;code>previous&lt;/code>-Referenzen sie nicht in ihrer Datenbank finden. Das ist keine vollständige Chain of Custody, macht aber Kontextverluste und Replay in Relay-Forks erkennbar.&lt;/p>
&lt;p>Mitgliedschaft wird über eine Reihe von Moderations-Events im Bereich &lt;code>9000-9020&lt;/code> verwaltet. Ein Nutzer tritt über kind &lt;code>9021&lt;/code> bei, das Relay akzeptiert oder verweigert die Anfrage nach eigener Policy. Admins können Nutzer mit Rollen hinzufügen, entfernen, Gruppenmetadaten ändern und Events löschen. Die Gruppe veröffentlicht ihren Zustand als addressable Events, etwa kind &lt;code>39000&lt;/code> für Metadaten und kind &lt;code>39003&lt;/code> für Rollen und Fähigkeiten. Der entscheidende Tradeoff bleibt: NIP-29 ist einfach und praktisch für öffentliche Communities, aber das Relay ist ein Vertrauensanker und kein neutraler Transport.&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> definiert ein Protokoll für On-Demand-Compute über Nostr. Ein Kunde veröffentlicht einen Job-Request, Service-Provider konkurrieren um die Ausführung, und Resultate kommen als Nostr-Events zurück. Die Spezifikation reserviert kinds &lt;code>5000-5999&lt;/code> für Requests, &lt;code>6000-6999&lt;/code> für Resultate und kind &lt;code>7000&lt;/code> für Feedback. Ein Result- kind ist immer genau &lt;code>1000&lt;/code> höher als der passende Request-kind.&lt;/p>
&lt;p>Requests nutzen &lt;code>i&lt;/code>-Tags für Input, &lt;code>output&lt;/code> für das erwartete Format, &lt;code>bid&lt;/code> für eine Preisobergrenze und &lt;code>param&lt;/code> für job-spezifische Parameter. Resultate referenzieren den Original-Request, nennen den pubkey des Kunden und können über das &lt;code>amount&lt;/code>-Tag eine Lightning-Rechnung mitliefern. Feedback-Events mit kind &lt;code>7000&lt;/code> erlauben Statusmeldungen wie &lt;code>payment-required&lt;/code>, &lt;code>processing&lt;/code>, &lt;code>error&lt;/code> oder &lt;code>success&lt;/code>, bevor das Endergebnis vorliegt.&lt;/p>
&lt;p>Wichtig ist, dass NIP-90 auch Job Chaining erlaubt. Ein nachgelagerter Job kann den Output eines früheren Jobs über einen &lt;code>i&lt;/code>-Tag vom Typ &lt;code>job&lt;/code> referenzieren. Damit entstehen Pipeline-artige Abläufe, etwa Audio transkribieren, den Text zusammenfassen und das Ergebnis übersetzen. Für Privacy können &lt;code>i&lt;/code>- und &lt;code>param&lt;/code>-Daten verschlüsselt in &lt;code>content&lt;/code> verschoben werden, was Relay-Beobachtern die Eingaben verbirgt, aber die Auswahl eines bestimmten Providers voraussetzt.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wenn du etwas baust oder Neuigkeiten teilen willst, schreib uns auf Nostr oder schau bei &lt;a href="https://nostrcompass.org">nostrcompass.org&lt;/a> vorbei.&lt;/p></content:encoded></item><item><title>Nostr Compass #17</title><link>https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#amethyst-liefert-arti-tor-und-integriert-reines-kotlin-mls-und-marmot">v1.08.0&lt;/a> mit Arti-Tor-Integration und einer neu gestalteten Shorts-UI aus und integriert zugleich reine Kotlin-Implementierungen von &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> in seine &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a>-Bibliothek. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nostur-v1270-f%c3%bcgt-videoaufnahme-und-private-antworten-hinzu">v1.27.0&lt;/a> mit Videoaufnahme, animierten GIF-Profilen und privaten Antworten. &lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a> startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#shosho-v0150-startet-shows-und-ein-vertikales-video-karussell">v0.15.0&lt;/a> mit Shows, also benutzerdefinierten Livestream-Infos mit OBS-Anbindung, und einem TikTok-artigen vertikalen Video-Karussell. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nymchat-nimmt-marmot-zur%c3%bcck-und-liefert-erweiterte-nip-17-gruppenchats-aus">nimmt Marmot zurück und liefert erweiterte NIP-17-Gruppenchats aus&lt;/a>, die rotierende ephemeral keys nutzen. &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nostr-vpn-liefert-exit-node-support-und-umbrel-paketierung-aus">exit node-Support und Umbrel-Paketierung&lt;/a> über sechs Releases hinweg. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> springt auf &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#amber-v600-pre1-f%c3%bcgt-signing-keys-pro-verbindung-f%c3%bcr-nip-46-hinzu">v6.0.0-pre1&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-signing keys pro Verbindung und In-App-Updates über Zapstore. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> erreicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-liefert-zapstore-self-update-aus">v0.10.0-beta&lt;/a> mit APK-Self-Update via Zapstore, und &lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a> (Badges) erhält eine &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nip-updates">kind-Migration&lt;/a>. Zwei NIP-Deep Dives behandeln &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing).&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#amethyst-liefert-arti-tor-und-integriert-reines-kotlin-mls-und-marmot">v1.08.0&lt;/a> mit Arti-Tor-Integration und einer neu gestalteten Shorts-UI aus und integriert zugleich reine Kotlin-Implementierungen von &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> in seine &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a>-Bibliothek. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nostur-v1270-f%c3%bcgt-videoaufnahme-und-private-antworten-hinzu">v1.27.0&lt;/a> mit Videoaufnahme, animierten GIF-Profilen und privaten Antworten. &lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a> startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#shosho-v0150-startet-shows-und-ein-vertikales-video-karussell">v0.15.0&lt;/a> mit Shows, also benutzerdefinierten Livestream-Infos mit OBS-Anbindung, und einem TikTok-artigen vertikalen Video-Karussell. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nymchat-nimmt-marmot-zur%c3%bcck-und-liefert-erweiterte-nip-17-gruppenchats-aus">nimmt Marmot zurück und liefert erweiterte NIP-17-Gruppenchats aus&lt;/a>, die rotierende ephemeral keys nutzen. &lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nostr-vpn-liefert-exit-node-support-und-umbrel-paketierung-aus">exit node-Support und Umbrel-Paketierung&lt;/a> über sechs Releases hinweg. &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> springt auf &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#amber-v600-pre1-f%c3%bcgt-signing-keys-pro-verbindung-f%c3%bcr-nip-46-hinzu">v6.0.0-pre1&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-signing keys pro Verbindung und In-App-Updates über Zapstore. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> erreicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-liefert-zapstore-self-update-aus">v0.10.0-beta&lt;/a> mit APK-Self-Update via Zapstore, und &lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a> (Badges) erhält eine &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nip-updates">kind-Migration&lt;/a>. Zwei NIP-Deep Dives behandeln &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing).&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="amethyst-liefert-arti-tor-und-integriert-reines-kotlin-mls-und-marmot">Amethyst liefert Arti Tor und integriert reines Kotlin MLS und Marmot&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der von vitorpamplona gepflegte Android-Client, lieferte vier Releases von &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.3">v1.07.3&lt;/a> bis &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.08.0">v1.08.0&lt;/a> aus und mergte ein großes Paket noch unveröffentlichter Arbeit in seine &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a>-Bibliothek, also das gemeinsame Kotlin-Multiplatform-Nostr-Modul. Das Hauptrelease ist v1.08.0 &amp;ldquo;Arti Tor&amp;rdquo;, das die Tor-Anbindung der App von der C-basierten Tor-Bibliothek auf &lt;a href="https://gitlab.torproject.org/tpo/core/arti">Arti&lt;/a>, die Rust-Implementierung des Tor Project, umstellt. Die Migration behebt zufällige Abstürze, die unter den bisherigen C-Tor-Bindings auftraten. Arti ist der langfristige Ersatz des Tor Project für die C-Codebasis, von Grund auf in Rust geschrieben für Memory Safety und async I/O.&lt;/p>
&lt;p>Der Release v1.07.3 gestaltet die Shorts-UI neu und ersetzt das seitenbasierte Design durch randlose Feeds für Bilder, Shorts und lange Videos. Derselbe Release migriert Badges auf kind &lt;code>10008&lt;/code> und Bookmarks auf kind &lt;code>10003&lt;/code> und richtet sich damit an der &lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a>-kind-Migration aus, die &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#nip-updates">diese Woche gemergt wurde&lt;/a>. v1.07.4 behebt ein Problem bei der Secret-Verarbeitung in Nostr Wallet Connect, und v1.07.5 behebt einen Absturz beim Bild-Upload.&lt;/p>
&lt;p>Auf &lt;code>main&lt;/code>, aber noch nicht in einem getaggten Release, hat das Team eine vollständige Kotlin-Implementierung sowohl von &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a> als auch des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokolls geschrieben und damit den Bedarf an nativen C/Rust-Bibliotheks-Bindings ersetzt. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2147">PR #2147&lt;/a> fügt die zentrale Marmot-MLS-Schicht für Gruppennachrichten hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2149">PR #2149&lt;/a> fügt die Gruppenchat-UI hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2146">PR #2146&lt;/a> fügt eingehende und ausgehende Message-Processor mit Subscription-Manager hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2141">PR #2141&lt;/a> fügt Persistenz für MLS-Gruppenstatus und KeyPackage-Rotationsverwaltung hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2150">PR #2150&lt;/a> fügt eine vollständige MLS-Testsuite mit verbessertem GroupInfo-Signing hinzu, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2158">PR #2158&lt;/a> fügt Tracking für den Veröffentlichungsstatus von KeyPackages hinzu. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2166">PR #2166&lt;/a> fügt eine reine Kotlin-secp256k1-Implementierung für Nostr-Kryptographieoperationen hinzu und ersetzt damit die Abhängigkeit von der nativen C-Bibliothek. Zusammen mit der Kotlin-MLS-Implementierung kann &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a> Nostr-Signing und Marmot-Gruppennachrichten ohne jegliche native Bindings ausführen, was den Weg für Kotlin-Multiplatform-Ziele einschließlich iOS öffnet.&lt;/p>
&lt;p>Das Team baut außerdem Unterstützung für &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> fügt eine vollständige Testsuite für die NIP-AC-Call-State-Machine hinzu, und &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2164">PR #2164&lt;/a> verhindert, dass veraltete Call Offers nach einem App-Neustart erneut ausgelöst werden.&lt;/p>
&lt;h3 id="nostur-v1270-fügt-videoaufnahme-und-private-antworten-hinzu">Nostur v1.27.0 fügt Videoaufnahme und private Antworten hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a>, der iOS-Nostr-Client, lieferte &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/v1.27.0">v1.27.0&lt;/a> am 2. April aus. Der Release fügt Videoaufnahme direkt in der App mit Zuschneiden vor dem Upload hinzu, sodass Nutzer kurze Clips aufnehmen, auf Länge schneiden und veröffentlichen können, ohne den Client zu verlassen. Die Unterstützung für animierte GIFs erstreckt sich nun auch auf Profil- und Bannerbilder, zusätzlich kam Rendering für animierte WebP-Dateien hinzu. Eine neue Shortcuts-Integration erlaubt es Nutzern, Nostr-Posts aus Apple-Shortcuts-Automationen zu senden. Der Release fügt außerdem private Antworten hinzu und behebt DM-Kompatibilitätsprobleme, die die Zustellung zwischen Nostur und anderen Clients beeinträchtigten.&lt;/p>
&lt;h3 id="shosho-v0150-startet-shows-und-ein-vertikales-video-karussell">Shosho v0.15.0 startet Shows und ein vertikales Video-Karussell&lt;/h3>
&lt;p>&lt;a href="https://github.com/r0d8lsh0p/shosho-releases">Shosho&lt;/a>, die Nostr-Livestreaming-App, lieferte &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.0">v0.15.0&lt;/a> und &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.15.1">v0.15.1&lt;/a> am 7. April aus. Das Hauptfeature ist Shows: Streamer können vor dem Start eines Livestreams eigene Show-Informationen anlegen und ihre Show mit OBS oder einem anderen externen Encoder verbinden. Dadurch wird die Metadatenfrage &amp;ldquo;Was streame ich?&amp;rdquo; vom eigentlichen Go-Live getrennt, sodass Streamer Titel, Beschreibungen und Produkte vorbereiten können, bevor sie senden. Derselbe Release fügt außerdem ein TikTok-artiges vertikales Video-Karussell zum Durchwischen von Lives, Clips und Replays in einem Vollbild-Feed hinzu sowie Quick Add zum Veröffentlichen von Videoclips und Hinzufügen von Produkten direkt von einer Profilseite. v0.15.1 behebt einen Fehler, bei dem die Tastatur das Chat-Eingabefeld des Livestreams verdeckte.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="notedeck-v0100-beta-liefert-zapstore-self-update-aus">Notedeck v0.10.0-beta liefert Zapstore-Self-Update aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der Desktop- und Mobile-Client des Damus-Teams, lieferte &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.1">v0.10.0-beta.1&lt;/a> und &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.10.0-beta.2">v0.10.0-beta.2&lt;/a> als Test-Prereleases für APK-Self-Update aus. &lt;a href="https://github.com/damus-io/notedeck/pull/1417">PR #1417&lt;/a> fügt APK-Self-Update über den Nostr/Zapstore-Updater auf Android hinzu und baut auf der &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-18-newsletter/#notedeck-moves-release-discovery-onto-nostr">Nostr-nativen Release-Erkennung aus Newsletter #14&lt;/a> auf. Der Update-Flow entdeckt neue Releases über Nostr-Events, die an Relays veröffentlicht werden, lädt dann das APK dort herunter, wo der Entwickler es hostet, also etwa bei GitHub Releases, einem Blossom-CDN oder anderen Quellen, verifiziert den SHA-256-Hash gegen das signierte Nostr-Event und installiert es. &lt;a href="https://github.com/damus-io/notedeck/pull/1438">PR #1438&lt;/a> behebt einen Fehler im Welcome Screen, bei dem Login- und CreateAccount-Buttons sofort wieder zurücknavigierten, und &lt;a href="https://github.com/damus-io/notedeck/pull/1424">PR #1424&lt;/a> behebt Textüberlauf in der Agentium-AI-Session-Ansicht.&lt;/p>
&lt;h3 id="amber-v600-pre1-fügt-signing-keys-pro-verbindung-für-nip-46-hinzu">Amber v6.0.0-pre1 fügt signing keys pro Verbindung für NIP-46 hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signer-App, lieferte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v6.0.0-pre1">v6.0.0-pre1&lt;/a> am 4. April aus. Die wichtigste Änderung sind signing keys pro Verbindung für das &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Remote Signing) Bunker-Protokoll. Statt ein einziges Schlüsselpaar für alle Bunker-Verbindungen zu verwenden, erzeugt Amber nun für jeden verbundenen Client einen eigenen Schlüssel. Wird die Verbindung eines Clients kompromittiert, kann ein Angreifer den Signer nicht gegenüber anderen Clients imitieren.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/pull/377">PR #377&lt;/a> fügt In-App-Prüfung und Installation von Updates via Zapstore hinzu und folgt damit &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#notedeck-v0100-beta-liefert-zapstore-self-update-aus">Notedeck&lt;/a> bei der Einführung Nostr-nativer App-Distribution. &lt;a href="https://github.com/greenart7c3/Amber/pull/375">PR #375&lt;/a> behandelt AndroidKeyStore-Fehler robust, indem eine Warnung angezeigt wird statt die App abstürzen zu lassen, und &lt;a href="https://github.com/greenart7c3/Amber/pull/371">PR #371&lt;/a> fügt Datenbankbereinigung mit Größenlimits und Inhaltskürzung hinzu, um unbegrenztes Speicherwachstum zu verhindern. Das Prerelease trägt außerdem die &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a>-Relay-Auth-Whitelist und Mnemonic-Recovery-Phrase-Login aus dem &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#amber-v502-through-v504">v5.0.x-Zyklus, den wir letzte Woche behandelt haben&lt;/a>.&lt;/p>
&lt;h3 id="nostria-liefert-native-mobile-app-aus">Nostria liefert native Mobile-App aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, der von SondreB gepflegte plattformübergreifende Nostr-Client, veröffentlichte eine native Mobile-App für Android mit acht Releases von &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.11">v3.1.11&lt;/a> bis &lt;a href="https://github.com/nostria-app/nostria/releases/tag/v3.1.18">v3.1.18&lt;/a>. Die wichtigste neue Fähigkeit ist native Unterstützung für lokale Signer wie &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> und Aegis. &lt;a href="https://www.nostria.app/download">Desktop-Installer&lt;/a> für Linux, macOS und Windows sind ebenfalls verfügbar. &lt;a href="https://github.com/nostria-app/nostria/pull/610">PR #610&lt;/a> senkt den Speicherdruck im Feed mit adaptiven Runtime-Limits und Bereinigung von Preview-URLs. v3.1.14 behebt die Integration mit Brainstorm, einem Anbieter für &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web of Trust&lt;/a>. v3.1.15 konzentriert sich auf Musik-Verbesserungen. Die neue Android-App ist auf &lt;a href="https://zapstore.dev/apps/app.nostria">Zapstore&lt;/a> verfügbar.&lt;/p>
&lt;h3 id="divine-108-liefert-fortsetzbare-uploads-und-dms-aus">diVine 1.0.8 liefert fortsetzbare Uploads und DMs aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, der Kurzform-Video-Client, lieferte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.8">1.0.8&lt;/a> mit 87 gemergten PRs aus. Fortsetzbare Uploads erlauben es Creatorn, unterbrochene Uploads Chunk für Chunk wiederaufzunehmen, statt bei instabiler Verbindung von vorn zu beginnen. Der Release fügt Einstellungen für Videoqualität und Bitrate, Double-Tap zum Liken und DM-Verbesserungen hinzu. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2722">PR #2722&lt;/a> fügt ein macOS-Kamera-Plugin für Desktop-Videoaufnahme hinzu, und &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2820">PR #2820&lt;/a> migriert das Benachrichtigungssystem auf eine BLoC-Architektur mit Anreicherung und Gruppierung. Das Team ersetzte außerdem AI-generierte Sticker und Kategorie-Grafiken durch OpenMoji-SVGs (&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-fügt-unschärfe-für-sensible-notizen-und-nip-42-auth-hinzu">Manent v1.3.0 fügt Unschärfe für sensible Notizen und NIP-42-Auth hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/dtonon/manent">Manent&lt;/a>, die private App für verschlüsselte Notizen und Dateispeicherung, lieferte &lt;a href="https://github.com/dtonon/manent/releases/tag/v1.3.0">v1.3.0&lt;/a> am 2. April aus. Nutzer können Notizen nun als sensibel markieren, damit sie in der Listenansicht unscharf dargestellt werden und private Inhalte beim beiläufigen Scrollen verborgen bleiben. Der Release fügt außerdem Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> (Authentication of Clients to Relays) hinzu, sodass Manent sich bei Relays authentifizieren kann, die dies verlangen, bevor sie Events annehmen. Manent speichert alle Daten verschlüsselt auf Nostr-Relays unter Verwendung des Schlüsselpaares des Nutzers, daher erweitert NIP-42 die Menge an Relays, die es für die Speicherung nutzen kann.&lt;/p>
&lt;h3 id="wisp-v0170-bis-v0173-fügen-livestream-zaps-und-wallet-backup-hinzu">Wisp v0.17.0 bis v0.17.3 fügen Livestream-Zaps und Wallet-Backup hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, der Android-Nostr-Client, lieferte sechs Releases von &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.2-beta">v0.16.2-beta&lt;/a> bis &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.17.3-beta">v0.17.3-beta&lt;/a> mit 44 gemergten PRs aus. Der Release v0.17.0 fügt Sicherheitsabfragen für Wallet-Backups und Verbesserungen an der Zap-UX hinzu. &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.17.1-beta">v0.17.1&lt;/a> fügt plattformübergreifende Sichtbarkeit des Livestream-Chats und Livestream-Zap-Funktionalität hinzu. &lt;a href="https://github.com/barrydeen/wisp/pull/423">PR #423&lt;/a> fügt automatisches Suchen von Profilen, eine Zap-Erfolgsanimation und Verbesserungen bei Nutzerstatus hinzu. &lt;a href="https://github.com/barrydeen/wisp/pull/426">PR #426&lt;/a> behebt einen Out-of-Memory-Absturz in &lt;code>computeId&lt;/code> bei Events mit großen Tag-Listen. Die v0.16.x-Releases fügten Emoji-Shortcode-Autocomplete, Verbesserungen an der Gruppenchat-UI und Filterung blockierter Nutzer über alle Benachrichtigungspfade hinweg hinzu.&lt;/p>
&lt;h3 id="mostro-liefert-deep-links-nostr-wechselkurse-und-einen-fix-für-doppelte-zahlungen-aus">Mostro liefert Deep Links, Nostr-Wechselkurse und einen Fix für doppelte Zahlungen aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, die auf Nostr basierende Peer-to-Peer-Bitcoin-Börse, sah diese Woche Updates sowohl am Server-Daemon als auch am Mobile-Client. Auf der Serverseite verhindert &lt;a href="https://github.com/MostroP2P/mostro/pull/692">PR #692&lt;/a>, dass veraltete Order-Schreibvorgänge doppelte Zahlungen verursachen, also ein Fehlerbild, bei dem ein Verkäufer für denselben Trade zweimal bezahlt werden könnte. &lt;a href="https://github.com/MostroP2P/mostro/pull/693">PR #693&lt;/a> nutzt gezielte Updates für dev_fee-Schreibvorgänge statt vollständiger Order-Überschreibungen.&lt;/p>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, der Flutter-Client, lieferte &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.3">v1.2.3&lt;/a> am 3. April aus. Der Release behandelt Deep Links von unterschiedlichen Mostro-Instanzen, sodass Nutzer Links antippen können, die zum richtigen Exchange-Server führen. &lt;a href="https://github.com/MostroP2P/mobile/pull/498">PR #498&lt;/a> erkennt Admin- und Dispute-DMs in der Hintergrund-Benachrichtigungspipeline, und die App holt Wechselkurse nun von Nostr mit HTTP/Cache-Fallback. &lt;a href="https://github.com/MostroP2P/mobile/pull/560">PR #560&lt;/a> behebt einen blockierenden Relay-Verbindungsfehler, der die App unter bestimmten Netzwerkbedingungen daran hinderte, Relays zu erreichen.&lt;/p>
&lt;h3 id="unfiltered-v1012-fügt-hashtags-und-kommentare-hinzu">Unfiltered v1.0.12 fügt Hashtags und Kommentare hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a>, ein Nostr-Client mit Fokus auf bildzentrierte Inhalte, lieferte &lt;a href="https://github.com/dmcarrington/unfiltered/releases/tag/v1.0.12">v1.0.12&lt;/a> aus. &lt;a href="https://github.com/dmcarrington/unfiltered/pull/69">PR #69&lt;/a> fügt Unterstützung für Hashtags hinzu, und &lt;a href="https://github.com/dmcarrington/unfiltered/pull/72">PR #72&lt;/a> fügt die Möglichkeit hinzu, Kommentare zu Beiträgen zu schreiben und anzuzeigen. &lt;a href="https://github.com/dmcarrington/unfiltered/pull/71">PR #71&lt;/a> behebt Navigationsprobleme bei Beiträgen mit mehreren Bildern.&lt;/p>
&lt;h3 id="primal-android-liefert-wallet-multi-account-sharing-und-auto-reconnect-für-remote-signer-aus">Primal Android liefert Wallet-Multi-Account-Sharing und Auto-Reconnect für Remote Signer aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal&lt;/a>, der Android-Nostr-Client, lieferte am 7. April einen Release aus. Das Update fügt Wallet-Multi-Account-Sharing sowie ein Overflow-Menü mit Wallet-Löschung in den Dev Tools hinzu. Der Remote Signer verbindet sich nun bei Verbindungsabbrüchen automatisch neu, und auch der Wallet-Service erhielt eine eigene Auto-Reconnect-Logik. Zu den Fixes gehören, dass Poll-Zap-Stimmen nicht länger als Top Zaps erscheinen, leere Poll-Optionen keinen Absturz mehr auslösen, Wallet-Guthaben verborgen wird, wenn keine Wallet existiert, und WalletException-Typen in NWC-Antworten auf Fehlercodes abgebildet werden.&lt;/p>
&lt;h3 id="titan-v010-startet-nativen-nsite-browser-mit-bitcoin-namensregistrierung">Titan v0.1.0 startet nativen nsite://-Browser mit Bitcoin-Namensregistrierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/btcjt/titan">Titan&lt;/a>, ein nativer Desktop-Browser für das Nostr-Web, lieferte &lt;a href="https://github.com/btcjt/titan/releases/tag/v0.1.0">v0.1.0&lt;/a> am 7. April aus. Titan löst &lt;code>nsite://&lt;/code>-URLs auf, indem es menschenlesbare, auf Bitcoin registrierte Namen nachschlägt, Nostr-Relays nach den Content-Events der Website abfragt und Seiten rendert, die von &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Servern geladen werden. Das Ergebnis ist ein Browser-Erlebnis ohne DNS, ohne TLS-Zertifikate und ohne Hosting-Anbieter. Namen werden über eine &lt;a href="https://npub1hmq6xuqnplk5lw0h3700cujmx5gymqn5wrn42u6432r6ntzumezqc3marw.nsite.lol/register">Weboberfläche&lt;/a> registriert, die mit Bitcoin-Transaktionen verknüpft ist. Der erste Release kommt als macOS-&lt;code>.dmg&lt;/code> für ARM, mit Rosetta-2-Unterstützung für Intel, und enthält Unterstützung für Nix-Entwicklungsumgebungen.&lt;/p>
&lt;h3 id="bikel-v150-liefert-nativen-foreground-service-für-de-googled-phones-aus">Bikel v1.5.0 liefert nativen Foreground Service für de-Googled Phones aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/Mnpezz/bikel">Bikel&lt;/a>, ein dezentraler Fahrrad-Tracker, der Fahrten über Nostr in öffentliche Infrastrukturdaten verwandelt, lieferte &lt;a href="https://github.com/Mnpezz/bikel/releases/tag/v1.5.0">v1.5.0&lt;/a> am 4. April aus. Der Release migriert von dem von GMS abhängigen Expo TaskManager zu einem benutzerdefinierten nativen Foreground Service und sorgt damit für zuverlässiges Ride-Tracking im Hintergrund auf LineageOS, GrapheneOS und anderen de-Googled-Android-Varianten. Der Bikel Bot erhielt eine Dual-Pocket-Architektur mit autonomer eCash-Einsammlung via Cashu nutzaps. v1.4.3 und v1.4.2 beheben die Synchronisierung des Hintergrund-Trackings für nicht standardisierte Android-Umgebungen, und die App fügt Schalter für OSM-Fahrradständer-Kartenpunkte hinzu.&lt;/p>
&lt;h3 id="sprout-fügt-nip-01--nip-23--und-nip-33-unterstützung-hinzu">Sprout fügt NIP-01-, NIP-23- und NIP-33-Unterstützung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/block/sprout">Sprout&lt;/a>, eine Kommunikationsplattform von Block mit eingebautem Nostr-relay, lieferte &lt;a href="https://github.com/block/sprout/releases/tag/desktop/v0.1.0-rc7">desktop/v0.1.0-rc7&lt;/a> am 6. April aus. Diese Woche fügte das Team Unterstützung für &lt;a href="https://nostrcompass.org/en/topics/nip-23/">NIP-23&lt;/a> (Long-form Content) Artikel mit kind &lt;code>30023&lt;/code>, &lt;a href="https://nostrcompass.org/en/topics/nip-33/">NIP-33&lt;/a> parametrisierbare ersetzbare Events mit &lt;code>d&lt;/code>-Tag-basierter Ersetzung sowie &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a>/&lt;a href="https://nostrcompass.org/en/topics/nip-02/">NIP-02&lt;/a> Textnotizen mit kind &lt;code>1&lt;/code> und Follow-Listen mit kind &lt;code>3&lt;/code> hinzu. Der Release fügt außerdem ein adaptives IDE-Theme-System mit 54 Themes, UX-Politur für Workflow- und Agent-Run-Historie sowie eine Bereinigung der Mitglieder-Sidebar hinzu.&lt;/p>
&lt;h3 id="mesh-llm-v0560-liefert-verteiltes-config-protokoll-aus">mesh-llm v0.56.0 liefert verteiltes Config-Protokoll aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/michaelneale/mesh-llm">mesh-llm&lt;/a>, ein verteiltes LLM-Inferenzsystem, das Nostr-Schlüsselpaare für Node-Identität nutzt, lieferte &lt;a href="https://github.com/michaelneale/mesh-llm/releases/tag/v0.56.0">v0.56.0&lt;/a> am 7. April aus. Der Release fügt ein verteiltes Config-Protokoll mit Ownership-Semantik, asymmetrische KV-Cache-Quantisierung mit Q8_0-Keys und Q4-Werten zur Reduzierung des Speicherverbrauchs, OS-Keychain-Speicherung für Identity-Keystores, flüssiges Chat-Streaming mit Message-Queueing sowie Fixes für Fullscreen-Layout und KV-Cache-Splitting mit Flash Attention hinzu.&lt;/p>
&lt;h3 id="nostr-vpn-liefert-exit-node-support-und-umbrel-paketierung-aus">Nostr VPN liefert exit node-Support und Umbrel-Paketierung aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/mmalmi/nostr-vpn">Nostr VPN&lt;/a>, ein Peer-to-Peer-VPN, das Nostr-Relays für Signalisierung und WireGuard für verschlüsselte Tunnel nutzt, lieferte diese Woche sechs Releases von &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.0">v0.3.0&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.6">v0.3.6&lt;/a> aus. Der v0.3.x-Zyklus fügt exit node-Support auf Windows und macOS hinzu, sodass Peers Internetverkehr durch andere Nodes im Netzwerk leiten können. Invite- und Alias-Propagation synchronisieren nun über Nostr, sodass Nutzer Netzwerkzugang teilen können, ohne sich außerhalb des Protokolls abzustimmen. Die Releases fügen Umbrel-Paketierung für Self-Hosting-Deployments, NAT-Punch-Through mit gemerkten öffentlichen Endpunkten, automatische Bereinigung veralteter exit nodes und eine veröffentlichte Protokollspezifikation hinzu. Das Projekt stabilisierte außerdem die Routenbehandlung auf macOS mit selbstheilenden Default Routes und Underlay-Reparatur und fügte einen Android-Build via Tauri hinzu. Builds sind für macOS, Apple Silicon und Intel, Linux, AppImage und .deb, Windows und Android verfügbar.&lt;/p>
&lt;h3 id="nymchat-nimmt-marmot-zurück-und-liefert-erweiterte-nip-17-gruppenchats-aus">Nymchat nimmt Marmot zurück und liefert erweiterte NIP-17-Gruppenchats aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a>, der MLS-fähige Chat-Client, lieferte 14 Releases von &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/3.56.261">v3.56.261&lt;/a> bis &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.274">v3.58.274&lt;/a> aus. Die bedeutendste Änderung ist ein Protokollwechsel: &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.57.261">v3.57.261&lt;/a> fügte Marmot-MLS-Gruppenchats hinzu, aber &lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.268">v3.58.268&lt;/a> kehrte zu &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> zurück, weil die Multi-Device-Unterstützung von Marmot noch nicht fertig ist, was Probleme bei der Synchronisierung des Gruppenchatzustands über Geräte hinweg verursachte. v3.58.271 führt erweiterte NIP-17-Gruppenchats mit rotierenden ephemeral keys für alle Nachrichten ein, die Timing- und Korrelationsangriffe verhindern sollen. Die Woche brachte außerdem ein Friends-System mit granularer Kontrolle über Einstellungen (&lt;a href="https://github.com/Spl0itable/NYM/releases/tag/v3.58.262">v3.58.262&lt;/a>), MLS-Gruppenchat-Nachrichtensynchronisierung in verschlüsselten App-Einstellungen und mehrere Fixes für Relay-Konnektivität.&lt;/p>
&lt;h3 id="nak-v0195-fügt-blossom-multi-server-und-outbox-publishing-hinzu">nak v0.19.5 fügt Blossom-Multi-Server und Outbox-Publishing hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjafs Kommandozeilen-Nostr-Toolkit, lieferte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.5">v0.19.5&lt;/a> aus. Der &lt;code>blossom&lt;/code>-Befehl akzeptiert nun mehrere &lt;code>--server&lt;/code>-Flags, um in einem Aufruf auf mehrere &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server hochzuladen. Ein neuer &lt;code>key&lt;/code>-Befehl erweitert partielle Schlüssel durch Linkspadding mit Nullen. Der &lt;code>event&lt;/code>-Befehl erhält ein &lt;code>--outbox&lt;/code>-Flag zum Veröffentlichen von Events über das Outbox-Modell, und &lt;code>fetch&lt;/code> beendet sich nun mit einem Fehlercode, wenn kein Event zurückgegeben wird.&lt;/p>
&lt;h2 id="in-entwicklung">In Entwicklung&lt;/h2>
&lt;h3 id="white-noise-fügt-thumbhash-vorschauen-und-push-registration-bridge-hinzu">White Noise fügt thumbhash-Vorschauen und Push-Registration-Bridge hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, der private Messenger auf Basis des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokolls, mergte fünf PRs. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/549">PR #549&lt;/a> ersetzt blurhash-Bildvorschauen durch thumbhash, einen neueren Algorithmus, der schärfere Platzhalterbilder mit kleinerer Payload-Größe erzeugt, typischerweise unter 30 Byte statt blurhashs etwa 50 bis 100 Byte, und dabei Seitenverhältnis und Farbverteilung des Originalbilds bewahrt. Blurhash bleibt als Fallback für ältere Inhalte erhalten. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/548">PR #548&lt;/a> aktualisiert whitenoise-rs und fügt die &lt;a href="https://nostrcompass.org/de/topics/mip-05/">MIP-05&lt;/a> Push-Registration-Bridge hinzu, die die &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#marmot-moves-keypackages-to-addressable-events-and-tightens-push-notifications">Push-Benachrichtigungsspezifikation der letzten Woche&lt;/a> mit dem Client verbindet. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/493">PR #493&lt;/a> fügt cursor-basierte Pagination für Chat-Nachrichten hinzu und ersetzt die bisherige Ladestrategie durch einen scrollgesteuerten Ansatz.&lt;/p>
&lt;h3 id="route96-fügt-dynamische-label-konfiguration-und-zero-egress-bereinigung-hinzu">Route96 fügt dynamische Label-Konfiguration und Zero-Egress-Bereinigung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, der &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienserver von v0l, mergte drei PRs. &lt;a href="https://github.com/v0l/route96/pull/80">PR #80&lt;/a> fügt dynamische Konfiguration des Label-Modells über die Admin-API hinzu, sodass Betreiber Content-Klassifizierungsmodelle ohne Neustart des Servers austauschen können. &lt;a href="https://github.com/v0l/route96/pull/82">PR #82&lt;/a> fügt Felder zur Label-Konfiguration der Admin-UI hinzu. &lt;a href="https://github.com/v0l/route96/pull/79">PR #79&lt;/a> fügt eine Zero-Egress-Dateibereinigungsrichtlinie hinzu, die Dateien, die nie heruntergeladen wurden, automatisch entfernt und so die Speicherkosten für Betreiber senkt.&lt;/p>
&lt;h3 id="snort-liefert-sicherheitshärtung-und-dvm-zahlungsrechnungen-aus">Snort liefert Sicherheitshärtung und DVM-Zahlungsrechnungen aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/snort">Snort&lt;/a>, der Web-Client, lieferte diese Woche zwei Releases zusammen mit einem umfassenden Sicherheitsaudit aus. Zu den Fixes gehören Schnorr-Signaturprüfung, Schutz vor Relay-Message-Forgery in &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>, also vor Angriffen, bei denen kompromittierte Relays Signing-Anfragen einschleusen könnten, Verbesserungen bei der PIN-Verschlüsselung und die Entfernung des Vertrauens in NIP-26-Delegation. Performance-Gewinne kommen durch gebündelte Schnorr-Verifikation in WASM, lazy-geladene Routen, vorkompilierte Übersetzungen und den Wegfall doppelter Verifikation pro Event. &lt;a href="https://github.com/v0l/snort/pull/618">PR #618&lt;/a> fügt die Anzeige von zahlungspflichtigen Rechnungen für &lt;a href="https://nostrcompass.org/en/topics/nip-90/">NIP-90&lt;/a> (Data Vending Machine) kind &lt;code>7000&lt;/code> hinzu, sodass Snort die Lightning-Rechnung direkt im Feed rendert, wenn eine DVM eine Zahlungsanforderung zurückgibt.&lt;/p>
&lt;h3 id="damus-verbessert-lmdb-kompaktierung">Damus verbessert LMDB-Kompaktierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, der iOS-Client, mergte &lt;a href="https://github.com/damus-io/damus/pull/3719">PR #3719&lt;/a>, das automatische LMDB-Kompaktierung nach Zeitplan hinzufügt und damit verhindert, dass die lokale Datenbank unbegrenzt wächst. &lt;a href="https://github.com/damus-io/damus/pull/3663">PR #3663&lt;/a> verbessert die BlurOverlayView, sodass sie schützend statt kaputt wirkt.&lt;/p>
&lt;h3 id="captains-log-fügt-tag-indizierung-und-notiz-sync-hinzu">Captain&amp;rsquo;s Log fügt Tag-Indizierung und Notiz-Sync hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nodetec/captains-log">Captain&amp;rsquo;s Log&lt;/a> (Comet), das Nostr-native Langform-Schreibwerkzeug von Nodetec, mergte diese Woche vier PRs. &lt;a href="https://github.com/nodetec/captains-log/pull/156">PR #156&lt;/a> fügt Tag-Indizierung und Sync-Unterstützung über Notizen hinweg hinzu, &lt;a href="https://github.com/nodetec/captains-log/pull/157">PR #157&lt;/a> refaktoriert Notiz-Sync und Tag-Verarbeitung, und &lt;a href="https://github.com/nodetec/captains-log/pull/159">PR #159&lt;/a> behebt den Sync gelöschter Notizen, damit entfernte Notizen auf allen Geräten gelöscht bleiben.&lt;/p>
&lt;h3 id="relatr-v02x-gestaltet-das-plugin-system-mit-nostr-nativem-validator-marktplatz-neu">Relatr v0.2.x gestaltet das Plugin-System mit Nostr-nativem Validator-Marktplatz neu&lt;/h3>
&lt;p>&lt;a href="https://github.com/ContextVM/relatr">Relatr&lt;/a>, eine &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web of Trust&lt;/a>-Scoring-Engine, die Vertrauensrankings aus Distanz im sozialen Graphen und konfigurierbaren Validatoren berechnet, lieferte die v0.2.x-Familie mit einer vollständigen Neugestaltung des Plugin-Systems aus. Validatoren werden nun in Elo geschrieben, einer portablen funktionalen Ausdruckssprache, die geforkt wurde, um mehrstufige, host-orchestrierte Fähigkeiten zu unterstützen, darunter Nostr-Abfragen, Social-Graph-Lookups und NIP-05-Auflösung. Plugins werden als Nostr-Events mit kind &lt;code>765&lt;/code> veröffentlicht und machen die Distribution damit nativ für das Relay-Netzwerk. Ein neuer &lt;a href="https://relatr.net">Plugin-Marktplatz&lt;/a> erlaubt es Betreibern, Validatoren im Browser zu entdecken, zu installieren und zu gewichten, ergänzt durch eine CLI namens &lt;code>relo&lt;/code> für lokales Authoring und Publishing. Die Architektur ist sandboxed: Plugins können nur Fähigkeiten aufrufen, die der Host ausdrücklich bereitstellt, sodass ein bösartiger Validator seinen definierten Scope nicht verlassen kann. Relatr-Instanzen lassen sich nun von der Website aus verwalten, mit voller Transparenz darüber, welche Plugins den Scoring-Algorithmus zusammensetzen und welches einzelne Gewicht sie haben.&lt;/p>
&lt;h3 id="shopstr-verbessert-mobile-navigation-und-zugriffskontrolle">Shopstr verbessert Mobile-Navigation und Zugriffskontrolle&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, der Nostr-native Marktplatz für Kauf und Verkauf mit Bitcoin, pushte diese Woche 158 Commits über seine Haupt-App und das Begleitprojekt &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>. Zu den Fixes gehören Verbesserungen am Community-Layout auf Mobilgeräten, das Schließen von Menüs bei Navigation und automatisches Schließen von Dropdowns. Geschützte Routen lassen sich nicht mehr per direkter URL ohne Anmeldung aufrufen, und die Slug-Matching-Logik behandelt mehrere exakte Treffer nun korrekt.&lt;/p>
&lt;h3 id="pollerama-fügt-benachrichtigungen-filmsuche-und-rating-ui-hinzu">Pollerama fügt Benachrichtigungen, Filmsuche und Rating-UI hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-polls">Pollerama&lt;/a>, eine auf Nostr basierende Umfrage-, Survey- und Social-Rating-App, fügte Thread-Benachrichtigungen, eine Filmsuche und eine überarbeitete Rating-UI hinzu. Der Release behebt außerdem Ladeprobleme im Feed und hebt Abhängigkeitsversionen an.&lt;/p>
&lt;h3 id="purser-baut-nostr-nativen-zahlungs-daemon-mit-marmot-verschlüsselung">Purser baut Nostr-nativen Zahlungs-Daemon mit Marmot-Verschlüsselung&lt;/h3>
&lt;p>&lt;a href="https://github.com/EthnTuttle/purser">Purser&lt;/a>, ein Nostr-nativer Zahlungs-Daemon als Ersatz für Zaprite, mergte diese Woche neun PRs zum Ausbau seiner Kernarchitektur. Das Projekt nutzt &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> MLS über MDK für verschlüsselte Händler-Kunden-Kommunikation, mit Strike und Square als Zahlungsanbietern. Diese Woche landeten Konfigurations- und Katalogladen, Message-Schema-Validierung, die MDK-Kommunikationsschicht, Implementierungen für Strike und Square, eine Polling-Engine, Anti-Spam-Rate-Limiting, Persistenz ausstehender Zahlungen und die Order-Processing-Pipeline. Alle 99 Tests verwenden nun echte mdk-core-MLS-Operationen, nachdem das Team Mock-MLS zugunsten realer Verschlüsselung im lokalen Modus entfernt hat.&lt;/p>
&lt;h3 id="vector-refaktoriert-dm-anhänge-und-fügt-profilbearbeitung-hinzu">Vector refaktoriert DM-Anhänge und fügt Profilbearbeitung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, der mit Tauri gebaute datenschutzorientierte Nostr-Messenger, mergte &lt;a href="https://github.com/VectorPrivacy/Vector/pull/55">PR #55&lt;/a>, das das Frontend refaktoriert. Entschlüsselung und Speichern von DM-Anhängen wurden in die vector-core-Bibliothek verschoben, und die App unterstützt nun Profilbearbeitung. Das Upload-Cancel-Flag ist jetzt korrekt durch TauriSendCallback verdrahtet, und ungenutzte Callbacks für Attachment-Vorschauen wurden entfernt.&lt;/p>
&lt;h2 id="protokoll--und-spezifikationsarbeit">Protokoll- und Spezifikationsarbeit&lt;/h2>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a> (Badges): Profile Badges wechseln zu kind 10008, Badge Sets zu kind 30008&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2276">PR #2276&lt;/a>): Migriert Profile Badges von kind &lt;code>30008&lt;/code> zu kind &lt;code>10008&lt;/code>, also einem ersetzbaren Event, eines pro pubkey, und führt kind &lt;code>30008&lt;/code> für Badge Sets ein. Zuvor nutzten Profile Badges denselben kind &lt;code>30008&lt;/code> wie Badge-Definitionen und waren damit parametrisierbare ersetzbare Events mit einem &lt;code>d&lt;/code>-Tag als Schlüssel. Der neue kind &lt;code>10008&lt;/code> ist ein einfaches ersetzbares Event, eines pro pubkey, ohne benötigten &lt;code>d&lt;/code>-Tag. Clients fragen damit ein einzelnes ersetzbares Event pro Nutzer ab, statt parametrisierbare ersetzbare Events zu scannen. Amethyst v1.07.3 liefert diese Migration bereits aus.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> (Git Stuff): Git-bezogene Follow-Listen hinzufügen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2130">PR #2130&lt;/a>): Fügt Konventionen für Follow-Listen zur Repository- und Issue-Verfolgung in NIP-34 hinzu. Nutzer veröffentlichen kind-&lt;code>30000&lt;/code>-Follow-Sets mit &lt;code>d&lt;/code>-Tags wie &lt;code>git-repos&lt;/code> oder &lt;code>git-issues&lt;/code>, die &lt;code>a&lt;/code>-Tag-Referenzen auf Repositories enthalten, kind &lt;code>30617&lt;/code>, die sie verfolgen möchten. Clients können diese Follow-Sets abonnieren, um Repository-Aktivität im Feed eines Nutzers anzuzeigen, ähnlich wie kind-&lt;code>3&lt;/code>-Kontaktlisten für pubkeys funktionieren.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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>): Erweitert das ursprüngliche NIP-100, umgesetzt von 0xChat, um drei Änderungen: Migration auf &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung, verpackt in &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> gift wraps, um Metadatenlecks zu eliminieren, einen spezifizierten WebRTC-Workflow für Sprach- und Videoanrufe, also Offer, Answer und ICE Candidates, und ein Mesh-Modell für Gruppenanrufe, bei dem jeder Peer eine direkte WebRTC-Verbindung zu jedem anderen Peer aufbaut. Die Spezifikation ist nicht abwärtskompatibel zu NIP-100. Amethyst baut bereits dagegen, mit einer Testsuite für die Call-State-Machine (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2143">PR #2143&lt;/a>) und dem Handling veralteter Call Offers (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2164">PR #2164&lt;/a>), die diese Woche landeten.&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>): Schlägt Konventionen für Threshold-Signing mit &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a> (Flexible Round-Optimized Schnorr Threshold) auf Nostr vor. FROST erlaubt es einer Gruppe von Signern, gemeinsam eine Nostr-Identität zu kontrollieren, bei der beliebige t-von-n-Mitglieder Events signieren können, ohne den vollständigen privaten Schlüssel zu rekonstruieren. Das NIP definiert, wie Signing-Runden koordiniert, Key Shares verteilt und threshold-signierte Events veröffentlicht werden, aufbauend auf der Igloo-Signer-Arbeit aus dem &lt;a href="https://nostrcompass.org/en/newsletters/2026-04-01-newsletter/#igloo-signer-11">FROSTR-Projekt&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>): Definiert ein &lt;code>postMessage&lt;/code>-Protokoll für sandboxed Webanwendungen, sogenannte &amp;ldquo;napplets&amp;rdquo;, die in iframes laufen und mit einer hostenden Anwendung, der &amp;ldquo;shell&amp;rdquo;, kommunizieren. Die shell stellt dem napplet Nostr-Signing, Relay-Zugang und Nutzerkontext über eine strukturierte Message-API bereit, während die iframe-Sandbox direkten Zugriff auf Schlüssel verhindert. Das erweitert das Hosting-Modell für statische Websites aus &lt;a href="https://nostrcompass.org/en/topics/nip-5a/">NIP-5A&lt;/a> in Richtung interaktiver Anwendungen, die Nostr-Events lesen und schreiben können. Das NIP ist in aktiver Entwicklung und hat bereits eine funktionierende Runtime-Implementierung.&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>): Wurde gegenüber dem früheren Vorschlag NIP-A5 umbenannt. Definiert Konventionen für das Veröffentlichen und Entdecken von WebAssembly-Programmen auf Nostr. WASM-Binaries werden als Nostr-Events gespeichert, und Clients können sie in einer sandboxed Runtime herunterladen und ausführen. Eine &lt;a href="https://nprogram.netlify.app/">Demo-App&lt;/a> zeigt Scrolls, die im Browser laufen, mit Beispielprogrammen, die als Nostr-Events veröffentlicht sind und von jedem Client geladen und ausgeführt werden können.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions): Klarstellungen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2304">PR #2304&lt;/a>): Präzisiert die Spezifikationssprache rund um mehrere Schlüssel und Relays pro Service-Provider und klärt, wie Clients mit Assertions von Anbietern umgehen sollten, die über mehrere pubkeys oder Relay-Endpunkte arbeiten.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-24/">NIP-24&lt;/a> (Extra Metadata Fields): &lt;code>published_at&lt;/code> für ersetzbare Events&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2300">PR #2300&lt;/a>): Verallgemeinert den &lt;code>published_at&lt;/code>-Tag aus &lt;a href="https://nostrcompass.org/en/topics/nip-23/">NIP-23&lt;/a> (Long-form Content) auf alle ersetzbaren und adressierbaren Events. Der Tag dient nur der Darstellung: Wenn &lt;code>published_at&lt;/code> gleich &lt;code>created_at&lt;/code> ist, zeigen Clients das Event als &amp;ldquo;created&amp;rdquo; zu diesem Zeitpunkt an, und wenn sie sich unterscheiden, weil das Event aktualisiert wurde, können Clients stattdessen &amp;ldquo;updated&amp;rdquo; anzeigen. Dadurch können Profile mit kind &lt;code>0&lt;/code> ein &amp;ldquo;joined at&amp;rdquo;-Datum anzeigen, und andere ersetzbare Events behalten ihren ursprünglichen Veröffentlichungszeitpunkt über Updates hinweg. Ein komplementärer Vorschlag für &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2302">PR #2302&lt;/a>) fügt denselben Tag zu Listen-Events hinzu.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Fügt kind &lt;code>21059&lt;/code> als ephemeres Gegenstück zum bestehenden gift wrap mit kind &lt;code>1059&lt;/code> hinzu. Ephemere Events, kinds &lt;code>20000&lt;/code> bis &lt;code>29999&lt;/code>, folgen der Semantik von &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a>: Relays müssen sie nicht speichern und können sie nach der Zustellung verwerfen. Dadurch können Anwendungen gift-wrapped Messages senden, die nach der Zustellung von Relays verschwinden, was die Speicheranforderungen für volumenstarke Nachrichten reduziert und dabei dasselbe Drei-Schichten-Verschlüsselungsmodell wie normale &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DMs beibehält.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="opensats-kündigt-sechzehnte-welle-von-nostr-grants-an">OpenSats kündigt sechzehnte Welle von Nostr-Grants an&lt;/h3>
&lt;p>&lt;a href="https://opensats.org">OpenSats&lt;/a> kündigte am 8. April seine &lt;a href="https://opensats.org/blog/sixteenth-wave-of-nostr-grants">sechzehnte Welle von Nostr-Grants&lt;/a> an und finanziert damit vier Erstförderungen und eine Verlängerung. &lt;a href="https://github.com/vitorpamplona/amethyst/tree/main/desktopApp">Amethyst Desktop&lt;/a> erhält Förderung für den Contributor Robert Nagy, um auf Basis der &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a>- und Commons-Module eine eigenständige Desktop-App zu bauen, die das Feature-Set des Android-Clients auf mausgesteuerte Oberflächen mit persistenten Relay-Verbindungen bringt. &lt;a href="https://github.com/nogringo/nostr-mail">Nostr Mail&lt;/a> erhält Förderung für den Bau eines vollständigen E-Mail-Systems auf Nostr unter Verwendung von kind-&lt;code>1301&lt;/code>-Events, verpackt in &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> gift wraps, mit einem Flutter-Client und SMTP-Bridge-Servern für Gmail- und Outlook-Kompatibilität. &lt;a href="https://github.com/Nostrord/nostrord">Nostrord&lt;/a> erhält Förderung für einen Kotlin-Multiplatform-Gruppenclient auf Basis von &lt;a href="https://nostrcompass.org/en/topics/nip-29/">NIP-29&lt;/a> und Relay-basierten Gruppen, mit Discord-artigen Gruppenchats, Moderation und Threads. &lt;a href="https://github.com/tami1A84/null--nostr">Nurunuru&lt;/a> erhält Förderung für eine native iOS-Version des auf Japan fokussierten Nostr-Clients, modelliert an der vertrauten LINE-Oberfläche, mit passkey-basierter biometrischer Anmeldung für das Onboarding. HAMSTR erhielt eine Förderverlängerung, erstmals gefördert in der &lt;a href="https://opensats.org/blog/eleventh-wave-of-nostr-grants#hamstr">elften Welle&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> definiert den aktuellen Standard für private Direktnachrichten auf Nostr. Es ersetzt das ältere Schema &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages), das Metadaten leckte, also Absender, Empfänger und Zeitstempel waren auf Relays sichtbar, und eine schwächere Verschlüsselungskonstruktion nutzte. NIP-17 kombiniert &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) für die Verschlüsselung mit &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) für den Schutz von Metadaten und schafft damit ein Dreischichtensystem, in dem Relays nicht sehen können, wer mit wem spricht.&lt;/p>
&lt;p>Das Protokoll verwendet drei ineinander verschachtelte Event-Kinds. Die innerste Schicht ist die eigentliche Nachricht, ein unsigniertes Event mit kind &lt;code>14&lt;/code>:&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>Das Event mit kind &lt;code>14&lt;/code> ist absichtlich unsigniert, also mit leerem &lt;code>sig&lt;/code>. Die Spezifikation beschreibt das als Deniability, aber in der Praxis ist dieser Schutz begrenzt. Das Siegel mit kind &lt;code>13&lt;/code>, das das rumor umhüllt, ist mit dem echten Schlüssel des Absenders signiert. Ein Empfänger kann das signierte Siegel einem Dritten zeigen und damit beweisen, dass der Absender mit ihm kommuniziert hat, auch ohne den Nachrichteninhalt offenzulegen. Mit Zero-Knowledge-Proofs kann ein Empfänger sogar den exakten Nachrichteninhalt beweisen, ohne seinen eigenen privaten Schlüssel offenzulegen. Das unsignierte rumor ist wie ein unsignierter Brief in einem signierten Umschlag: Die Signatur auf dem Umschlag verbindet den Absender mit dem Inhalt. Echte Deniability würde symmetrische Authentifizierung erfordern, wie HMACs bei Signal, was mit Nostrs dezentralem Relay-Modell unvereinbar ist, weil Nachrichten selbstauthentifizierend sein müssen. Die eigentlichen Stärken von NIP-17 sind Privatsphäre bei Metadaten und Geheimhaltung des Inhalts, nicht Deniability.&lt;/p>
&lt;p>Diese unsignierte Nachricht wird dann in ein Siegel mit kind &lt;code>13&lt;/code> verpackt, das vom tatsächlichen Absender signiert und mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> für den Empfänger verschlüsselt wird:&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>Das Siegel hat keine Tags, daher würde es selbst nach einer Entschlüsselung den Empfänger nicht offenlegen. Das Siegel ist mit dem echten Schlüssel des Absenders signiert, was dem Empfänger erlaubt, die Nachricht zu authentifizieren, indem er prüft, dass der &lt;code>pubkey&lt;/code> des Siegels mit dem &lt;code>pubkey&lt;/code> des inneren kind-&lt;code>14&lt;/code>-Events übereinstimmt.&lt;/p>
&lt;p>Das Siegel wird anschließend in ein gift wrap mit kind &lt;code>1059&lt;/code> verpackt, signiert von einem zufälligen Wegwerf-Schlüssel und an den Empfänger adressiert:&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>Der &lt;code>pubkey&lt;/code> des gift wrap ist ein zufälliger Schlüssel, der nur für diese Nachricht erzeugt wurde, und &lt;code>created_at&lt;/code> wird um bis zu zwei Tage in die Vergangenheit randomisiert. Das ist die äußerste Schicht, die Relays tatsächlich sehen: eine Nachricht von einem unbekannten pubkey an den Empfänger, mit einem Zeitstempel, der nicht widerspiegelt, wann die Nachricht tatsächlich gesendet wurde. Der randomisierte Zeitstempel schützt vor nachträglicher Analyse gespeicherter Events, aber ein Angreifer, der aktiv mit Relays verbunden ist, kann weiterhin beobachten, wann das gift wrap erstmals auftaucht, daher ist diese Verteidigung auf passive Beobachter beschränkt, die Relay-Daten später abfragen. Weil der pubkey zufällig und der Zeitstempel gefälscht ist, können Relays den echten Absender nicht bestimmen. Um die Nachricht zu lesen, entschlüsselt der Empfänger das gift wrap mit seinem eigenen Schlüssel und dem zufälligen pubkey, findet darin das Siegel, entschlüsselt das Siegel mit seinem eigenen Schlüssel und dem pubkey des Absenders aus dem Siegel und findet darin die Nachricht mit kind &lt;code>14&lt;/code>.&lt;/p>
&lt;p>NIP-17 bietet keine forward secrecy. Alle Nachrichten werden mit dem statischen Nostr-Schlüsselpaar verschlüsselt, über die Schlüsselableitung von NIP-44 aus den Schlüsseln von Absender und Empfänger. Wird ein privater Schlüssel kompromittiert, kann jede vergangene und zukünftige Nachricht entschlüsselt werden, die an diesen Schlüssel verschlüsselt wurde. Das ist ein bewusster Tradeoff: Weil die Verschlüsselung nur vom nsec abhängt, kann ein Nutzer, der seinen nsec sichert, seine gesamte Nachrichtenhistorie von jedem Relay wiederherstellen, das die gift wraps noch speichert. Protokolle wie MLS, wie es von &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> genutzt wird, bieten forward secrecy durch rotierendes Schlüsselmaterial, aber um den Preis von notwendiger State-Synchronisierung und der Unmöglichkeit, historische Nachrichten nach einer Schlüsselrotation wiederherzustellen.&lt;/p>
&lt;p>NIP-17 definiert außerdem kind &lt;code>15&lt;/code> für verschlüsselte Dateinachrichten. Dieser fügt die Tags &lt;code>file-type&lt;/code>, &lt;code>encryption-algorithm&lt;/code>, &lt;code>decryption-key&lt;/code> und &lt;code>decryption-nonce&lt;/code> hinzu, damit der Empfänger eine angehängte Datei entschlüsseln kann, die vor dem Upload auf einen Blossom-Server mit AES-GCM verschlüsselt wurde. kind &lt;code>10050&lt;/code> wird genutzt, um die bevorzugte DM-Relay-Liste des Nutzers zu veröffentlichen, damit Absender wissen, wohin sie gift wraps zustellen sollen. Die Menge aus &lt;code>pubkey&lt;/code>- und &lt;code>p&lt;/code>-Tags in einer Nachricht definiert einen Chatraum, und das Hinzufügen oder Entfernen eines Teilnehmers erzeugt einen neuen Raum mit sauberer Historie.&lt;/p>
&lt;p>Implementierungen decken die meisten großen Clients ab. &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> nutzt NIP-17 für sämtliche Eins-zu-eins-Nachrichten. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> nutzt NIP-17 für seine Proof-of-Work-DMs. &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> und &lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a> implementieren NIP-17 alle als ihr primäres DM-Protokoll. Die Spezifikation unterstützt auch verschwindende Nachrichten durch Setzen eines &lt;code>expiration&lt;/code>-Tags im gift wrap.&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> definiert ein Protokoll, das den privaten Schlüssel des Nutzers von der Client-Anwendung trennt. Statt einen nsec in eine Web-App einzufügen, betreibt der Nutzer einen Remote Signer, auch &amp;ldquo;bunker&amp;rdquo; genannt, der den privaten Schlüssel hält und über Nostr-Relays auf Signing-Anfragen antwortet. Der Client sieht den privaten Schlüssel nie. Das reduziert die Angriffsfläche: Ein kompromittierter Client kann Signaturen anfordern, den Schlüssel selbst aber nicht extrahieren.&lt;/p>
&lt;p>Das Protokoll nutzt kind &lt;code>24133&lt;/code> sowohl für Requests als auch für Responses, verschlüsselt mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads). Ein Client erzeugt für die Session ein Wegwerf-&lt;code>client-keypair&lt;/code> und kommuniziert mit dem Remote Signer über NIP-44-verschlüsselte Nachrichten, die mit den pubkeys des jeweils anderen getaggt sind. Hier ist eine Signing-Anfrage von einem Client an einen 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>Das verschlüsselte &lt;code>content&lt;/code> enthält eine JSON-RPC-ähnliche Struktur:&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>Der Remote Signer entschlüsselt die Anfrage, legt sie dem Nutzer zur Freigabe vor, oder genehmigt sie automatisch auf Basis konfigurierter Berechtigungen, signiert das Event mit dem privaten Schlüssel des Nutzers und gibt das signierte Event in einer Response zurück:&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>Verbindungen können von beiden Seiten initiiert werden. Ein Remote Signer stellt eine &lt;code>bunker://&lt;/code>-URL bereit, die seinen pubkey und Relay-Informationen enthält. Ein Client stellt eine &lt;code>nostrconnect://&lt;/code>-URL mit seinem Client-pubkey, Relays und einem Secret zur Verbindungsüberprüfung bereit. Der Parameter &lt;code>secret&lt;/code> verhindert Connection-Spoofing: Nur die Partei, die die URL außerhalb des Protokolls erhalten hat, kann den Handshake abschließen.&lt;/p>
&lt;p>Acht Methoden sind definiert: &lt;code>connect&lt;/code> zum Aufbau der Session, &lt;code>sign_event&lt;/code> zum Signieren von Events, &lt;code>get_public_key&lt;/code> zum Abrufen des pubkeys des Nutzers, &lt;code>ping&lt;/code> für Keepalive, &lt;code>nip04_encrypt&lt;/code> und &lt;code>nip04_decrypt&lt;/code> für Legacy-Verschlüsselung, &lt;code>nip44_encrypt&lt;/code> und &lt;code>nip44_decrypt&lt;/code> für aktuelle Verschlüsselung sowie &lt;code>switch_relays&lt;/code> für Relay-Management. Relay-Migration wird vom Remote Signer behandelt, der die Verbindung im Lauf der Zeit auf neue Relays verschieben kann, ohne die Session zu unterbrechen.&lt;/p>
&lt;p>Clients fordern beim Verbindungsaufbau spezifische Fähigkeiten über ein Berechtigungssystem an. Ein Berechtigungsstring wie &lt;code>nip44_encrypt,sign_event:1,sign_event:14&lt;/code> fordert Zugriff auf NIP-44-Verschlüsselung und Signing-Rechte nur für Events mit kind &lt;code>1&lt;/code> und kind &lt;code>14&lt;/code> an. Der Remote Signer kann diese Berechtigungen akzeptieren, ablehnen oder verändern. Das bedeutet, dass ein Web-Client zum Lesen und Posten von Notizen vielleicht nur &lt;code>sign_event:1&lt;/code> erhält, während ein DM-Client zusätzlich &lt;code>sign_event:14&lt;/code> und &lt;code>nip44_encrypt&lt;/code> bekommen kann.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> implementiert NIP-46 auf Android, und &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-08-newsletter/#amber-v600-pre1-f%c3%bcgt-signing-keys-pro-verbindung-f%c3%bcr-nip-46-hinzu">v6.0.0-pre1&lt;/a> dieser Woche fügt signing keys pro Verbindung hinzu, um Clients voneinander zu isolieren. &lt;a href="https://github.com/nicktee/nsecapp">nsec.app&lt;/a>, früher Nostr Connect, bietet einen webbasierten bunker. &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> enthält &lt;code>BunkerSigner&lt;/code> für JavaScript-Clients, und &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">PR #530 der letzten Woche&lt;/a> fügte &lt;code>skipSwitchRelays&lt;/code> für manuelles Relay-Management hinzu. Das Protokoll unterstützt außerdem Auth-Challenges: Wenn ein Remote Signer zusätzliche Authentifizierung benötigt, also Passwort, Biometrie oder Hardware-Token, antwortet er mit einer &lt;code>auth_url&lt;/code>, die der Client in einem Browser öffnet, damit der Nutzer den Vorgang abschließen kann.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas oder hast Neuigkeiten zu teilen? Schreib uns eine DM auf Nostr oder finde uns auf &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/de/newsletters/2026-04-01-newsletter/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amethyst-liefert-angepinnte-notizen-relay-management-und-request-to-vanish">v1.07.0&lt;/a> mit angepinnten Notizen, Relay-Management über &lt;a href="https://nostrcompass.org/de/topics/nip-86/">NIP-86&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> Request-to-Vanish-Unterstützung. &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nip-5a-wird-gemergt-und-bringt-statische-websites-auf-nostr">NIP-5A&lt;/a> (Static Websites) wird ins NIPs-Repository gemergt und definiert, wie Websites unter Nostr-Schlüsselpaaren mit &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Speicher gehostet werden. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#flotilla-v170-f%c3%bcgt-voice-rooms-und-email-login-hinzu">v1.7.0&lt;/a> mit Voice Rooms, Email/Password-Login und Proof-of-Work-DMs. &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> behebt Relay-Churn in &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#white-noise-behebt-relay-churn-und-erweitert-client-kontrollen">v2026.3.23&lt;/a>, &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> startet sein &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nospeak-startet-als-10-private-messenger">1.0.0&lt;/a> als Messenger ohne Anmeldung. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nymchat-liefert-marmot-basierte-gruppenchats">übernimmt Marmot&lt;/a> für MLS-verschlüsselte Gruppenchats mit NIP-17-Fallback. &lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a> erreicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#calendar-by-form-v100">v1.0.0&lt;/a> mit privaten Kalenderlisten und ICS-Import, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amber-v502-bis-v504">Mnemonic-Recovery und NIP-42-Relay-Auth-Whitelisting&lt;/a> hinzu, und die &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#marmot-verschiebt-keypackages-zu-adressierbaren-events-und-versch%c3%a4rft-push-benachrichtigungen">Marmot-Spezifikation&lt;/a> verschiebt KeyPackages zu adressierbaren Events und verschärft das MIP-05-Push-Benachrichtigungsformat.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amethyst-liefert-angepinnte-notizen-relay-management-und-request-to-vanish">v1.07.0&lt;/a> mit angepinnten Notizen, Relay-Management über &lt;a href="https://nostrcompass.org/de/topics/nip-86/">NIP-86&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> Request-to-Vanish-Unterstützung. &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nip-5a-wird-gemergt-und-bringt-statische-websites-auf-nostr">NIP-5A&lt;/a> (Static Websites) wird ins NIPs-Repository gemergt und definiert, wie Websites unter Nostr-Schlüsselpaaren mit &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Speicher gehostet werden. &lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#flotilla-v170-f%c3%bcgt-voice-rooms-und-email-login-hinzu">v1.7.0&lt;/a> mit Voice Rooms, Email/Password-Login und Proof-of-Work-DMs. &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> behebt Relay-Churn in &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#white-noise-behebt-relay-churn-und-erweitert-client-kontrollen">v2026.3.23&lt;/a>, &lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a> startet sein &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nospeak-startet-als-10-private-messenger">1.0.0&lt;/a> als Messenger ohne Anmeldung. &lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nymchat-liefert-marmot-basierte-gruppenchats">übernimmt Marmot&lt;/a> für MLS-verschlüsselte Gruppenchats mit NIP-17-Fallback. &lt;a href="https://github.com/formstr-hq/nostr-calendar">Calendar by Form*&lt;/a> erreicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#calendar-by-form-v100">v1.0.0&lt;/a> mit privaten Kalenderlisten und ICS-Import, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amber-v502-bis-v504">Mnemonic-Recovery und NIP-42-Relay-Auth-Whitelisting&lt;/a> hinzu, und die &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#marmot-verschiebt-keypackages-zu-adressierbaren-events-und-versch%c3%a4rft-push-benachrichtigungen">Marmot-Spezifikation&lt;/a> verschiebt KeyPackages zu adressierbaren Events und verschärft das MIP-05-Push-Benachrichtigungsformat.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="amethyst-liefert-angepinnte-notizen-relay-management-und-request-to-vanish">Amethyst liefert angepinnte Notizen, Relay-Management und Request to Vanish&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der Android-Client gepflegt von vitorpamplona, lieferte sechs Releases in drei Tagen, von &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.0">v1.07.0&lt;/a> bis &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.07.5">v1.07.5&lt;/a>. Das Hauptfeature-Set umfasst sechs Protokolloberflächen: angepinnte Notizen, einen dedizierten Polls-Feed-Bildschirm, &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) Unterstützung für das Anfordern vollständiger Event-Löschung von Relays, &lt;a href="https://nostrcompass.org/de/topics/nip-86/">NIP-86&lt;/a> (Relay Management API) innerhalb des Clients, &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring) Assessments im Relay-Info-Bildschirm und &lt;a href="https://nostrcompass.org/de/topics/nip-43/">NIP-43&lt;/a> (Relay Access Metadata and Requests) Anzeige von Mitgliedsinformationen.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-86/">NIP-86&lt;/a> definiert eine JSON-RPC-Schnittstelle für Relay-Betreiber, die Clients ermöglicht, administrative Befehle wie das Sperren von Pubkeys, das Erlauben von Pubkeys und das Auflisten gesperrter Nutzer über eine standardisierte API zu senden. Amethyst stellt dies nun direkt in seiner Relay-Management-UI bereit, sodass Nutzer, die ihre eigenen Relays betreiben, sie aus demselben Client verwalten können, den sie zum Posten verwenden. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/2039">PR #2039&lt;/a> ersetzt den alten Hex-Input-Dialog für gesperrte und erlaubte Pubkeys durch einen interaktiven Nutzersuchdialog.&lt;/p>
&lt;p>v1.07.2 fügte GIF-Keyboard-Uploads hinzu und behob eine Signing-Regression, bei der Amber-Ablehnungsantworten falsch gelesen wurden, weil ältere Amber-Versionen einen leeren String für das &lt;code>rejected&lt;/code>-Feld zurückgaben (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/2042">PR #2042&lt;/a>). v1.07.5 behebt einen Absturz beim Bild-Upload. Die Releases &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.2">v1.06.2&lt;/a> und &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.3">v1.06.3&lt;/a> früher in der Woche fügten einen Poll-Typ-Selektor für Einzel- versus Mehrfachauswahl-Polls, Drag-to-Seek auf Video-Fortschrittsleisten und Verbesserungen beim anonymen Posten hinzu.&lt;/p>
&lt;h3 id="nip-5a-wird-gemergt-und-bringt-statische-websites-auf-nostr">NIP-5A wird gemergt und bringt statische Websites auf Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">NIP-5A&lt;/a> (Static Websites) wurde über &lt;a href="https://github.com/nostr-protocol/nips/pull/1538">PR #1538&lt;/a> gemergt und definiert, wie statische Websites unter Nostr-Schlüsselpaaren gehostet werden. Die Spezifikation verwendet zwei Event-Kinds: Kind &lt;code>15128&lt;/code> für eine Root-Site, eine pro Pubkey, und Kind &lt;code>35128&lt;/code> für benannte Sites, die durch einen &lt;code>d&lt;/code>-Tag identifiziert werden. Jedes Manifest ordnet URL-Pfade SHA256-Hashes zu, mit optionalen &lt;code>server&lt;/code>-Tags, die auf &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Speicher-Hosts zeigen, auf denen die eigentlichen Dateien liegen.&lt;/p>
&lt;p>Das Hosting-Modell funktioniert so: Ein Seitenautor baut eine statische Site, lädt die Dateien zu einem oder mehreren Blossom-Servern hoch und veröffentlicht dann ein signiertes Manifest-Event, das Pfade auf Content-Hashes abbildet. Ein Host-Server empfängt Web-Anfragen, löst den Pubkey des Autors aus der Subdomain auf, ruft das Manifest aus der &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Liste des Autors ab und liefert Dateien aus, indem er die passenden Blobs von Blossom herunterlädt. Die Site bleibt unter Kontrolle des Autors, weil nur dieser Schlüssel ein aktualisiertes Manifest signieren kann. Der Host-Server ist austauschbar, weil jeder Server, der NIP-5A versteht, dieselbe Site aus demselben Manifest ausliefern kann.&lt;/p>
&lt;p>Die Spezifikation baut auf Infrastruktur auf, die bereits existiert. &lt;a href="https://github.com/lez/nsite">nsite&lt;/a>, die NIP-5A-Referenz-Host-Implementierung von lez, und &lt;a href="https://github.com/hzrd149/nsite-manager">nsite-manager&lt;/a>, hzrd149s Management-UI, liefen bereits, bevor das NIP gemergt wurde. Der Merge macht die Event-Kinds und URL-Auflösungsregeln offiziell und gibt zweiten und dritten Implementierungen ein stabiles Ziel.&lt;/p>
&lt;h3 id="white-noise-behebt-relay-churn-und-erweitert-client-kontrollen">White Noise behebt Relay-Churn und erweitert Client-Kontrollen&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, der private Messenger auf Basis des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokolls, lieferte &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v2026.3.23">v2026.3.23&lt;/a> am 25. März. Die Hauptarbeit betrifft Relay-Stabilität. Login wartet nicht mehr darauf, dass jede Relay-List-Publikation abgeschlossen ist, weil Relay-List-Publishing nun Quorum-Logik verwendet und den Rest im Hintergrund wiederholt. Einmalige Fetches und Publishes verwenden abgegrenzte ephemere Relay-Sessions, statt im langlebigen Pool zu verbleiben, wiederhergestellte Sessions holen nach dem Start ihren Group-Refresh-Pfad wieder ein, und die App stellt nun Relay-Diagnostik und Relay-State-Inspektion über &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/495">PR #495&lt;/a> und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/502">PR #502&lt;/a> bereit.&lt;/p>
&lt;p>Dasselbe Release ändert auch das Verhalten von Konversationen. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/468">PR #468&lt;/a> fügt NIP-C7-Reply-Threading mit &lt;code>q&lt;/code>-Tags und &lt;code>nostr:nevent&lt;/code>-Referenzen hinzu, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/471">PR #471&lt;/a> und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/512">PR #512&lt;/a> lassen gelöschte Nachrichten als gelöschte Platzhalter sichtbar statt sie still zu entfernen, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/478">PR #478&lt;/a> fügt einen In-App-Bugreport-Flow mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) anonymen Berichten hinzu, und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/486">PR #486&lt;/a> fügt Support-Chat direkt im Client hinzu. Nutzerseitige Nachrichtenkontrollen landeten im selben Zeitfenster: &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/532">PR #532&lt;/a> archiviert Chats, &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/541">PR #541&lt;/a> fügt Mute und Unmute mit konfigurierbaren Dauern hinzu, und &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/535">PR #535&lt;/a> fügt Benachrichtigungseinstellungen hinzu. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/539">PR #539&lt;/a> ist vorbereitende Push-Registrierungsarbeit und verdrahtet APNs-Registrierung auf iOS und Play-Services-Erkennung auf Android, damit Registrierung darauf aufbauen kann. Auf der Backend-Seite fügte das &lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> (Marmot Development Kit) MIP-05-Push-Benachrichtigungsprimitiven und einen Notification-Request-Builder hinzu (&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>), während &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">whitenoise-rs&lt;/a> Persistenz für Push-Benachrichtigungsregistrierung (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/688">PR #688&lt;/a>), Fixes für Hintergrund-Task-Abbrüche (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/696">PR #696&lt;/a>) und Key-Package-Recovery beim Start (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/693">PR #693&lt;/a>) hinzufügte.&lt;/p>
&lt;h3 id="nostr-vpn-erreicht-v030-mit-roster-sync-und-invite-v2">Nostr VPN erreicht v0.3.0 mit Roster-Sync und Invite v2&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostr-vpn-startet-als-tailscale-alternative">Anschließend an die Launch-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a>, das Peer-to-Peer-VPN, das Nostr-Relays zur Signalisierung und WireGuard für verschlüsselte Tunnel nutzt, setzte sein schnelles Release-Tempo fort und lieferte Releases bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.3.3">v0.3.3&lt;/a>. Der Versionssprung bringt zwei Breaking Changes: Das Invite-Format wechselt auf v2 (0.3.0 kann weiterhin v1-Invites importieren, ältere Builds können aber keine v2-Invites importieren), und admin-signierter Roster-Sync wurde dem Signalisierungsprotokoll hinzugefügt. Peers mit gemischten Versionen können sich auf der Mesh-Ebene weiterhin verbinden, aber ältere Peers nehmen nicht an der Roster-Synchronisierung teil.&lt;/p>
&lt;p>Die Ergänzung des Roster-Syncs beginnt die Bewegung in Richtung eines verwalteten Netzwerks. Ein Admin-Node kann nun Mitgliedschaftsänderungen an alle Peers pushen, sodass das Hinzufügen oder Entfernen eines Geräts aus dem Mesh nicht verlangt, dass jeder Peer seine Konfiguration manuell aktualisiert. Die v0.2.x-Releases derselben Woche adressierten spezifische Deployment-Probleme: &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.22">v0.2.22&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.28">v0.2.28&lt;/a> beheben Windows-Service-Management, fügen Android-Build-Skripte hinzu und verfeinern den LAN-Pairing-Flow.&lt;/p>
&lt;h3 id="nospeak-startet-als-10-private-messenger">nospeak startet als 1.0-Private-Messenger&lt;/h3>
&lt;p>&lt;a href="https://github.com/psic4t/nospeak">nospeak&lt;/a>, ein privater Messenger auf Nostr-Basis, lieferte seinen &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v1.0.0">1.0.0&lt;/a>-Release am 27. März. Das Projekt umfasst Eins-zu-eins- und Gruppenkonversationen, Kontaktmanagement und eine selbst hostbare Architektur. Eins-zu-eins-Chats nutzen &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), das &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) kombiniert, um den Absender vor Relays zu verbergen. Für Medien werden Dateien client-seitig mit AES-256-GCM verschlüsselt, bevor sie zu Blossom-Servern hochgeladen werden. Der Release kommt auch als Container-Image für Self-Hosting.&lt;/p>
&lt;h3 id="flotilla-v170-fügt-voice-rooms-und-email-login-hinzu">Flotilla v1.7.0 fügt Voice Rooms und Email-Login hinzu&lt;/h3>
&lt;p>&lt;a href="https://gitea.coracle.social/coracle/flotilla">Flotilla&lt;/a>, hodlbods Discord-artiger &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> (Relay-based Groups) Client rund um das Modell „Relays as groups“, lieferte &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.0">v1.7.0&lt;/a> und &lt;a href="https://gitea.coracle.social/coracle/flotilla/src/tag/1.7.1">v1.7.1&lt;/a> am 30. und 31. März. Das Hauptfeature sind Voice Rooms, beigesteuert von mplorentz. Nutzer können nun Voice Calls innerhalb von Gruppenchannels beitreten, mit einem Join-Dialog (&lt;a href="https://gitea.coracle.social/coracle/flotilla/pulls/109">PR #109&lt;/a>), der ihnen erlaubt, ein Audio-Eingabegerät auszuwählen und zu entscheiden, ob sie dem Voice Call beitreten oder nur den Text-Chat sehen wollen. Der Dialog löst ein UX-Problem der vorherigen Iteration: Das Betreten eines Voice-fähigen Raums aktivierte zuvor das Mikrofon zwangsweise, selbst wenn der Nutzer nur Nachrichten lesen oder Raumeinstellungen prüfen wollte.&lt;/p>
&lt;p>Dasselbe Release fügt Email-und-Passwort-Login als Alternative zu Nostr-Schlüssel-basierter Auth hinzu, Proof-of-Work auf DMs, DM-Editing, neu gestaltetes Relay-Onboarding und Einstellungen, Blossom-Support-Erkennung über &lt;code>supported_nips&lt;/code>, verbesserte Benachrichtigungs-Badges, Android-Push-Benachrichtigungs-Fallback und File-Upload-Fixes auf Android. v1.7.1 folgt mit einem Fix für Pomade-Registrierungs-Fallback bei Verwendung eines Offline-Signers.&lt;/p>
&lt;p>Hodlbod baut auch &lt;a href="https://gitea.coracle.social/coracle/caravel">Caravel&lt;/a>, einen Hosting-Manager und ein Dashboard für zooid-Relays, das diese Woche 40 Commits in der frühen Entwicklung verzeichnete.&lt;/p>
&lt;h3 id="nymchat-liefert-marmot-basierte-gruppenchats">Nymchat liefert Marmot-basierte Gruppenchats&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">Nymchat&lt;/a> (auch bekannt als NYM, Nostr Ynstant Messenger), der ephemere Chat-Client mit Bitchat-Bridge, kündigte an, dass alle neuen Gruppenchats nun das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll für MLS-verschlüsselte Nachrichten verwenden. Die Integration nutzt die Kinds &lt;code>443&lt;/code>, &lt;code>444&lt;/code> und &lt;code>445&lt;/code> für Key Packages, Welcome Messages und Gruppennachrichten und liefert Forward Secrecy, Post-Compromise Security und null Metadaten-Leckage. Wenn ein Empfänger MLS nicht nutzen kann, fällt Nymchat auf seinen früheren &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) Gruppenchats-Pfad zurück, der weiterhin Ende-zu-Ende verschlüsselt ist, aber nicht die Ratchet-Tree-Eigenschaften von MLS besitzt.&lt;/p>
&lt;p>Die Serien v3.55 und v3.56 konzentrierten sich diese Woche auf Randfälle bei Gruppenchats: Laden auf neuen Geräten, Leave-Verhalten, Notification-Routing und Unread-Badge-Zähler. Derselbe Zyklus patchte auch eine XSS-Schwachstelle durch unescaped HTML und fügte Keyword- und Phrase-Blocking hinzu, das auch auf Nutzernamen ausgeweitet wurde. Das macht Nymchat zu einem weiteren Marmot-Client neben &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#white-noise-behebt-relay-churn-und-erweitert-client-kontrollen">White Noise&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#openchat-v024-bis-v030">OpenChat&lt;/a> und erweitert die Menge an Apps, die MLS-verschlüsselte Gruppennachrichten über dasselbe Protokoll austauschen können.&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>, die dezentrale Kalender-App auf Basis von &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> (Calendar Events), erreichte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v1.0.0">v1.0.0&lt;/a> am 29. März. Der Release fügt private Kalenderlisten mit verschlüsselten Nostr-Events (Kind &lt;code>32123&lt;/code>) und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) Self-Encryption hinzu, sodass Nutzer Events in privaten Sammlungen organisieren können, ohne die Gruppierung Relays preiszugeben. Derselbe Release fügt ICS-Intent-Behandlung zum Import von Kalenderdaten aus anderen Anwendungen und Invitation Requests zum Teilen von Events zwischen Nutzern hinzu.&lt;/p>
&lt;h3 id="amber-v502-bis-v504">Amber v5.0.2 bis v5.0.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signer-App, lieferte drei Punkt-Releases: &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> und &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.4">v5.0.4&lt;/a>. Die sichtbarste Ergänzung ist Mnemonic-Recovery-Phrase-Login (&lt;a href="https://github.com/greenart7c3/Amber/pull/358">PR #358&lt;/a>), das Nutzern erlaubt, ihren Signer aus einer BIP39-Seed-Phrase wiederherzustellen, statt den rohen nsec- oder ncryptsec-String zu benötigen. &lt;a href="https://github.com/greenart7c3/Amber/pull/357">PR #357&lt;/a> fügt eine &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Auth-Whitelist hinzu, sodass Nutzer einschränken können, welche Relays Client-Authentifizierung anfordern dürfen. &lt;a href="https://github.com/greenart7c3/Amber/pull/353">PR #353&lt;/a> fügt Encryption-Scope-Auswahl für Decrypt-Berechtigungen hinzu, sodass Nutzer NIP-04-only- oder NIP-44-only-Decrypt-Zugriff statt einer pauschalen Berechtigung gewähren können. v5.0.4 behebt einen Bug, bei dem Ablehnung Scoped-Encrypt- und -Decrypt-Berechtigungen nicht respektierte, und verbessert die Performance beim Empfang mehrerer 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>, der plattformübergreifende Signer, lieferte &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.4.0">v0.4.0&lt;/a> am 26. März. Der Release fügt Full- und Selective-Authorization-Modi in den Einstellungen hinzu und behebt mehrere QR-Scanning-Probleme. Folge-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> und &lt;a href="https://github.com/ZharlieW/Aegis/commit/e4f40b6f1f48c2dae1bb5e4246df26c26dba419e">e4f40b6&lt;/a> setzen dieselbe Arbeit fort mit Batch-Select-Kontrollen, wiederverwendbaren Batch-Selection-Statistiken, Set-All-Groups-Selection-APIs und Pro-Berechtigung-Nutzungsstatistiken auf der App-Permissions-Seite.&lt;/p>
&lt;h3 id="schemata-v027-bis-v030">Schemata v0.2.7 bis v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/schemata">Schemata&lt;/a>, die JSON-Schema-Definitionen zur Validierung von Nostr-Event-Kinds, lieferte vier Releases von &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.2.7">v0.2.7&lt;/a> bis &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.3.0">v0.3.0&lt;/a> mit 21 gemergten PRs. Der Release v0.3.0 bringt Pattern-Consistency-Fixes über Relay-URLs, Hex-IDs, MIME-Typen und BOLT-11-Strings hinweg (&lt;a href="https://github.com/nostrability/schemata/pull/126">PR #126&lt;/a>), zentralisierte Relay-URL-Patterns (&lt;a href="https://github.com/nostrability/schemata/pull/117">PR #117&lt;/a>), &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> Bech32-Basistyp-Schemas (&lt;a href="https://github.com/nostrability/schemata/pull/118">PR #118&lt;/a>) und Validierung für Kind-777-Spell-Events (&lt;a href="https://github.com/nostrability/schemata/pull/125">PR #125&lt;/a>). Die Release-Pipeline veröffentlicht nun bei jedem Release eine Kind-&lt;code>1&lt;/code>-Notiz auf Nostr (&lt;a href="https://github.com/nostrability/schemata/pull/120">PR #120&lt;/a>), sodass das Projekt sich selbst über das Protokoll ankündigt, das es validiert. Schemata unterstützt nun ein Dutzend Sprachen jenseits des kanonischen JS/TS-Pakets: Rust, Go, Python, Kotlin, Java, Swift, Dart, PHP, C#/.NET, C++, Ruby und C.&lt;/p>
&lt;p>Neben Schemata veröffentlichte das Team &lt;a href="https://github.com/nostrability/schemata-codegen">schemata-codegen&lt;/a>, einen experimentellen Codegenerator, der ein anderes Vorgehen für dasselbe Validierungsproblem verfolgt. Während Schematas Validator-Pakete eine JSON-Schema-Runtime-Abhängigkeit benötigen, portiert schemata-codegen Schemas direkt in typisierte native Sprachkonstrukte (typisierte Tag-Tupel, Kind-Interfaces und Runtime-Validatoren) und entfernt die Notwendigkeit einer Validator-Bibliothek zur Laufzeit. Der &lt;a href="https://github.com/nostrability/schemata-codegen/blob/main/CODEGEN-VS-VALIDATORS.md">Vergleich codegen-vs-validators&lt;/a> dokumentiert, wann welcher Ansatz passt.&lt;/p>
&lt;h3 id="bigbrotr-v650-bis-v654">BigBrotr v6.5.0 bis v6.5.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a>, die Relay-Analyseplattform, lieferte fünf Releases von &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.5.0">v6.5.0&lt;/a> bis &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.5.4">v6.5.4&lt;/a>. Der Release v6.5.0 zentralisiert Relay-URL-Validierung mit einer &lt;code>parse_relay_url()&lt;/code>-Factory-Funktion und fügt URL-Längenprüfung und Pfad-Sanitization hinzu. Die Monitoring-Infrastruktur erhielt ebenfalls Fixes: Announcement-Events enthalten nun Geohash-Location-Tags (in Anlehnung an &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a>), und Timeout-Schutz wurde zu den Geo/Net-&lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Metadaten-Tests hinzugefügt, die zuvor keine Deadline hatten und unbegrenzt hängen konnten. &lt;a href="https://github.com/BigBrotr/bigbrotr/pull/410">PR #410&lt;/a> aktualisiert PostgreSQL von 16 auf 18, was das Async-I/O-Subsystem und verbesserten WAL-Durchsatz zur Relay-Analyse-Pipeline bringt.&lt;/p>
&lt;h3 id="vertex-lab-relay-fügt-nip-50-profilsuche-hinzu">Vertex-Lab-Relay fügt NIP-50-Profilsuche hinzu&lt;/h3>
&lt;p>&lt;a href="https://vertexlab.io">Vertex Lab&lt;/a>, das Team hinter &lt;a href="https://github.com/vertex-lab/npub.world">npub.world&lt;/a> und der &lt;a href="https://vertexlab.io/docs">Vertex&lt;/a> Web-of-Trust-Engine, kündigte an, dass &lt;code>wss://relay.vertexlab.io&lt;/code> nun &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> (Search) für Profilabfragen unterstützt. NIP-50 erweitert den Standard-Nostr-&lt;code>REQ&lt;/code>-Filter um ein &lt;code>search&lt;/code>-Feld und erlaubt Clients, Volltextsuchanfragen an Relays zu senden, die Indizierung unterstützen. Das Hinzufügen von Profilsuche zu einem Relay, das bereits Web-of-Trust-Daten ausliefert, bedeutet, dass Clients, die mit &lt;code>relay.vertexlab.io&lt;/code> verbunden sind, Nutzer per Name oder Beschreibung finden können, ohne einen separaten Suchdienst zu benötigen.&lt;/p>
&lt;h3 id="hashtree-v0217-und-v0218-liefern-webrtc-mesh-und-iris-desktop">Hashtree v0.2.17 und v0.2.18 liefern WebRTC-Mesh und Iris Desktop&lt;/h3>
&lt;p>&lt;a href="https://github.com/mmalmi/hashtree">Hashtree&lt;/a>, mmalmis content-addressiertes Blob-Speichersystem, das Merkle-Wurzeln auf Nostr veröffentlicht, lieferte &lt;a href="https://github.com/mmalmi/hashtree/releases/tag/v0.2.17">v0.2.17&lt;/a> und &lt;a href="https://github.com/mmalmi/hashtree/releases/tag/v0.2.18">v0.2.18&lt;/a> am 31. März. Die beiden Releases krönen einen 30-Commit-Sprint, der drei unterschiedliche Fähigkeiten hinzufügt. Erstens fügt das &lt;code>hashtree-webrtc&lt;/code>-Crate (in v0.2.18 in &lt;code>hashtree-network&lt;/code> umbenannt) WebRTC-basierten Peer-to-Peer-Blob-Transport mit einheitlicher Mesh-Signalisierung über Rust-CLI, Simulation-Harness und TypeScript-Client hinweg hinzu. Zweitens baut die Release-Pipeline nun Windows-Artefakte (CLI-Zip und Iris-Installer) und bringt plattformübergreifende Abdeckung für macOS, Linux und Windows. Drittens bündeln beide Releases Iris Desktop 0.1.0, mmalmis Nostr-Social-Client, als AppImage-, .deb- und Windows-Installer-Assets neben der Hashtree-CLI. &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/">Hashtree wurde erstmals in Newsletter #10 behandelt&lt;/a>, als es als filesystem-basierter &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-kompatibler Store startete. Die WebRTC-Schicht ist der erste Schritt zu Peer-to-Peer-Content-Distribution ohne Abhängigkeit von zentralisierten Blossom-Servern.&lt;/p>
&lt;h3 id="nostr-mail-client-v070-bis-v072">Nostr Mail Client v0.7.0 bis v0.7.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/nogringo/nostr-mail-client">Nostr Mail Client&lt;/a>, der Flutter-Mail-Client auf Basis von Nostr-Identitäten, lieferte &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> und &lt;a href="https://github.com/nogringo/nostr-mail-client/releases/tag/v0.7.2">v0.7.2&lt;/a> in drei Tagen. Die sichtbare Produktarbeit konzentrierte sich auf Onboarding (&lt;a href="https://github.com/nogringo/nostr-mail-client/pull/9">PR #9&lt;/a>) und Profilbearbeitung (&lt;a href="https://github.com/nogringo/nostr-mail-client/pull/10">PR #10&lt;/a>), beides grundlegende Teile für jeden Client, der Nostr als Postfach präsentieren will. Die späteren Punkt-Releases paketierten diese Arbeit in neue Android- und Linux-Builds.&lt;/p>
&lt;h3 id="wisp-v0140-bis-v0161">Wisp v0.14.0 bis v0.16.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, der Android-Nostr-Client, lieferte 13 weitere Releases von &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.14.0-beta">v0.14.0-beta&lt;/a> bis &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.3-beta">v0.16.3-beta&lt;/a>. Die Arbeit diese Woche umfasst NIP-17-Rumor-JSON-Fixes (&lt;a href="https://github.com/barrydeen/wisp/pull/385">PR #385&lt;/a>), Repost-Badges auf Galerie-Karten (&lt;a href="https://github.com/barrydeen/wisp/pull/383">PR #383&lt;/a>), ausklappbare Reaktionsdetails (&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>) und Video-Autoplay-Kontrollen (&lt;a href="https://github.com/barrydeen/wisp/pull/380">PR #380&lt;/a>). Das neueste &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.16.3-beta">v0.16.3-beta&lt;/a> behebt außerdem benutzerdefinierte Emoji-Shortcodes mit Bindestrichen und fehlende 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> lieferte &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.17">3.0.17&lt;/a> am 24. März. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/1000">PR #1000&lt;/a> ordnet WalletException-Typen Fehlercodes in NWC-Antworten zu und gibt &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> Clients strukturierte Fehlerinformationen statt generischer Fehler. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/995">PR #995&lt;/a> behebt, dass Poll-Zap-Stimmen als Top Zaps erscheinen, und &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/998">PR #998&lt;/a> blendet Wallet-Guthaben und Aktionsbuttons aus, wenn keine Wallet konfiguriert ist.&lt;/p>
&lt;h3 id="openchat-v024-bis-v030">OpenChat v0.2.4 bis v0.3.0&lt;/h3>
&lt;p>&lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, der Avalonia-basierte Chat-Client auf dem &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Stack, lieferte sechs Releases von &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.2.4">v0.2.4&lt;/a> bis &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.3.0">v0.3.0&lt;/a> in vier Tagen. Das Commit-Log erzählt die Geschichte eines Clients, der die Lücken zwischen „Marmot funktioniert“ und „jemand kann das tatsächlich täglich nutzen“ schließt. &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Authentifizierung landete, gefolgt von einer Relay-Picker-UI mit Duplicate-Event-Filtering. Voice Messages erhielten Pause, Resume, Seek und Zeitanzeige. Der Signer-Pfad wurde gehärtet: Amber-Verbindungen wurden mit einem aktualisierten &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> URI-Format behoben, der WebSocket reconnectet nun automatisch vor dem Senden von Requests, und doppelte Amber-Requests werden jetzt durch Prüfung auf replizierte Antworten abgefangen. Auf der Speicherseite erhielten Linux und macOS AES-256-GCM Secure Storage mit file-backed keys, und das Abrufen von User-Metadaten nutzt nun &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Discovery und cached Ergebnisse in einer lokalen Datenbank.&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>, der iOS-&lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a> Threshold-Signer des FROSTR-Projekts, lieferte &lt;a href="https://github.com/FROSTR-ORG/igloo-ios-prototype/releases/tag/v1.1">v1.1&lt;/a> am 28. März. FROST (Flexible Round-Optimized Schnorr Threshold) Signaturen erlauben einer Gruppe von Signern, gemeinsam ein Nostr-Schlüsselpaar zu kontrollieren, wobei beliebige t-von-n-Teilnehmer ein Event signieren können, ohne dass eine einzelne Partei den vollständigen privaten Schlüssel hält. Igloo ist eine der ersten mobilen Implementierungen dieses Ansatzes für Nostr.&lt;/p>
&lt;h3 id="nak-v0193-und-v0194">nak v0.19.3 und v0.19.4&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjafs Kommandozeilen-Nostr-Toolkit, lieferte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.3">v0.19.3&lt;/a> und &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.4">v0.19.4&lt;/a> am 26. und 30. März. Beide Releases beheben Panic-Zustände: &lt;a href="https://github.com/fiatjaf/nak/pull/118">PR #118&lt;/a> ersetzt &lt;code>strings.Split&lt;/code> durch &lt;code>strings.Cut&lt;/code>, um einen potenziellen Out-of-Bounds-Zugriff zu verhindern, und &lt;a href="https://github.com/fiatjaf/nak/pull/119">PR #119&lt;/a> verhindert dieselbe Klasse von Panic bei der Curl-Flag-Parsing-Logik.&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>, eine Chrome-Erweiterung für dezentrale Bildschirmaufnahme und -teilung auf Nostr, lieferte &lt;a href="https://github.com/shawnyeager/flora-extension/releases/tag/v0.3.0">v0.3.0&lt;/a>. Der Release fügt private verschlüsselte Video-Freigabe mit öffentlichen, ungelisteten und privaten Modi hinzu. Private Aufnahmen werden mit AES-256-GCM verschlüsselt und via &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) an Empfänger ausgeliefert, sodass die Aufnahme niemals im Klartext einen Server berührt.&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>, der mobile Nostr-Client, lieferte &lt;a href="https://github.com/YakiHonne/mobile-app/releases/tag/YakiHonne-2.0.3">2.0.3&lt;/a> mit Relay-Reviews und Join-Requests, erweiterten verschachtelten Antworten, Auto-Übersetzung für Notizen und NWC-Multi-Relay-Unterstützung.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="zap-cooking-fügt-zap-polls-und-branta-zahlungsverifizierung-hinzu">Zap Cooking fügt Zap-Polls und Branta-Zahlungsverifizierung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a>, die Rezept- und Content-Plattform, mergte diese Woche 11 PRs mit Fokus auf interaktive Inhalte und Zahlungsflüsse. &lt;a href="https://github.com/zapcooking/frontend/pull/277">PR #277&lt;/a> fügt Zap-Polls (Kind 6969) hinzu, bei denen Nutzer durch das Senden von sats abstimmen und Wählerlisten mit Profilbildern sehen können. &lt;a href="https://github.com/zapcooking/frontend/pull/274">PR #274&lt;/a> gestaltet die Poll-UX neu, sodass die Abstimmungsoberfläche natürlicher im Feed sitzt.&lt;/p>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend/pull/276">PR #276&lt;/a> fügt kamera-basiertes QR-Scanning zum Send-Payment-Flow hinzu und integriert &lt;a href="https://branta.pro/">Branta&lt;/a>, einen Verifizierungsdienst, der prüft, ob ein Zahlungsziel legitim ist, bevor gesendet wird. Branta prüft Zahlungsziele vor dem Senden auf Phishing, Address Swaps und Man-in-the-Middle-Abfangen. In Zap Cookings Implementierung erscheinen ein Branta-verifizierter Plattformname und ein Logo direkt im Zahlungsfluss, und Branta-fähige QR-Codes können &lt;code>branta_id&lt;/code>- und &lt;code>branta_secret&lt;/code>-Parameter tragen, sodass die Wallet das Ziel direkt aus dem gescannten Code verifizieren kann.&lt;/p>
&lt;h3 id="divine-legt-die-grundlage-für-einheitliche-suche-und-härtet-video-auslieferung">diVine legt die Grundlage für einheitliche Suche und härtet Video-Auslieferung&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, der Kurzform-Video-Client, verbrachte die Woche damit, Suche, Feed-Navigation, Playback-Recovery und Upload-Verhalten zu verschärfen. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2540">PR #2540&lt;/a> legt die Grundlage für einen einheitlichen Suchbildschirm mit gruppierten Abschnitten für Videos, People und Tags. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2623">PR #2623&lt;/a> härtet Pagination über Profil-Feeds, Inbox, Benachrichtigungen, Discover-Listen, klassische Vines, Suche und die composable Grid-Feeds, indem sie auf einen gemeinsamen Pagination-Controller verschoben werden.&lt;/p>
&lt;p>Auch die Video-Auslieferung erhielt mehrere konkrete Fixes. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2643">PR #2643&lt;/a> wiederholt Divine-gehostete Derivatquellen der Reihe nach und fällt auf den rohen Blob zurück, bevor ein Playback-Fehler angezeigt wird, sodass transiente Fehler an einer Quelle die Wiedergabe nicht sofort beenden. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2634">PR #2634&lt;/a> hält resumable Uploads auf dem Divine-eigenen Pfad, wenn Capability-Probing transient fehlschlägt, und reduziert dadurch defekte Uploads durch kurze Netzwerkfehler. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2637">PR #2637&lt;/a> ändert außerdem das Sensitive-Content-Gate, sodass Videos nur bei tatsächlichen Warning-Labels hart blockiert werden, nicht bloß bei vom Creator gelieferten Content-Warning-Labels.&lt;/p>
&lt;h3 id="shopstr-fügt-benutzerdefinierte-storefronts-hinzu-und-milk-market-liefert-weiter-marktplatz-arbeit-aus">Shopstr fügt benutzerdefinierte Storefronts hinzu und Milk Market liefert weiter Marktplatz-Arbeit aus&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, der Nostr-basierte Marktplatz, mergte &lt;a href="https://github.com/shopstr-eng/shopstr/pull/245">PR #245&lt;/a> und fügt benutzerdefinierte Storefronts hinzu. Das gibt Verkäufern eine deutlichere Home-Oberfläche, statt jedes Listing in dieselbe generische Darstellung zu zwingen.&lt;/p>
&lt;p>&lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>, ein dedizierter Marktplatz für Milch, setzte die Arbeit mit Storefront-Optimierungen (&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>) und MCP-Tool-Typing-Fixes (&lt;a href="https://github.com/shopstr-eng/milk-market/pull/16">PR #16&lt;/a>) fort.&lt;/p>
&lt;h3 id="notedeck-fügt-soundeffekte-hinzu-und-erweitert-seinen-updater-pfad-in-richtung-android">Notedeck fügt Soundeffekte hinzu und erweitert seinen Updater-Pfad in Richtung Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der Desktop-Client des Damus-Teams, mergte &lt;a href="https://github.com/damus-io/notedeck/pull/1412">PR #1412&lt;/a>, die ein Soundeffekt-Subsystem mit UI-Interaktionsgeräuschen via rodio hinzufügt, und &lt;a href="https://github.com/damus-io/notedeck/pull/1399">PR #1399&lt;/a> mit Agentium-Updates einschließlich eines CLI-Title-Flags und einklappbarer Session-Ordner. Ein offener &lt;a href="https://github.com/damus-io/notedeck/pull/1417">PR #1417&lt;/a> schlägt APK-Self-Update via Nostr/Zapstore auf Android vor und baut auf &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#notedeck-verlagert-release-erkennung-auf-nostr">Notedecks Nostr-nativer Updater-Arbeit aus Newsletter #14&lt;/a> auf.&lt;/p>
&lt;h3 id="nostria-fügt-repost-relay-hints-und-nip-98-ausrichtung-hinzu">Nostria fügt Repost-Relay-Hints und NIP-98-Ausrichtung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> mergte &lt;a href="https://github.com/nostria-app/nostria/pull/583">PR #583&lt;/a> und fügt &lt;a href="https://nostrcompass.org/de/topics/nip-18/">NIP-18&lt;/a> (Reposts) Relay-Hints zu Repost-&lt;code>e&lt;/code>-Tags für Kind-6- und Kind-16-Events hinzu, &lt;a href="https://github.com/nostria-app/nostria/pull/582">PR #582&lt;/a> richtet Brainstorm-HTTP-Auth (Kind 27235) an den von &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a> (HTTP Auth) geforderten Tags aus, und &lt;a href="https://github.com/nostria-app/nostria/pull/576">PR #576&lt;/a> fügt Schemata-Schema-Validation-Tests hinzu. Die NIP-98-Änderung bedeutet, dass Nostria sich gegenüber externen Diensten mit demselben HTTP-Auth-Format authentifizieren kann, das andere Clients verwenden.&lt;/p>
&lt;h3 id="nostr-doc-fügt-desktop-paketierung-und-offline-first-arbeit-hinzu">Nostr-Doc fügt Desktop-Paketierung und Offline-First-Arbeit hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-docs">Nostr-Doc&lt;/a>, der kollaborative Editor von Form*, hatte eine arbeitsreiche Woche mit Paketierung und Editor-Arbeit. &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/fcdc00a564c8d76f094c586b06efce07592a60e4">Commit fcdc00a&lt;/a> fügt eine Desktop-App hinzu, &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/3977a8eb2e62b84a67de756c2776e14de8470927">Commit 3977a8e&lt;/a> startet Native-App-Arbeit, und &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/413a030f5b47fb8e32a5dff81bcef557ad9b5869">Commit 413a030&lt;/a> drängt die App in Richtung Offline-First-Verhalten. Auf der Editor-Seite fügt &lt;a href="https://github.com/formstr-hq/nostr-docs/commit/1855ce86ee83ad504e14e47d9c339baffb114786">Commit 1855ce8&lt;/a> Ctrl+S-Speichern, Save-Warnungen, Link-Preview-Fixes und korrigiertes Strikethrough-Rendering hinzu.&lt;/p>
&lt;h3 id="rust-nostr-optimiert-nip-21-parsing-und-fügt-relay-seitige-nip-62-unterstützung-hinzu">rust-nostr optimiert NIP-21-Parsing und fügt Relay-seitige NIP-62-Unterstützung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> mergte acht PRs. Der bemerkenswerteste ist &lt;a href="https://github.com/rust-nostr/nostr/pull/1308">PR #1308&lt;/a>, der &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> optimiert, indem es an die Performance des Standard-Bech32-Parsings angeglichen wird. Zuvor brauchten NIP-21-URIs ungefähr doppelt so lange zum Parsen wie rohe Bech32-Schlüssel. Das Projekt hat außerdem vier offene PRs, die Relay-spezifische &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) Unterstützung über die Memory-, LMDB-, SQLite- und Datenbank-Test-Backends hinzufügen (&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-fügt-bunker-relay-kontrolle-hinzu-und-behebt-nip-47-multi-relay-parsing">nostr-tools fügt Bunker-Relay-Kontrolle hinzu und behebt NIP-47-Multi-Relay-Parsing&lt;/h3>
&lt;p>&lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> mergte &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/530">PR #530&lt;/a> und fügt &lt;code>skipSwitchRelays&lt;/code> zu BunkerSignerParams für manuelles Relay-Management hinzu, und &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/529">PR #529&lt;/a> behebt &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) Connection-String-Parsing, um mehrere Relays zu unterstützen, wie es die Spezifikation erlaubt.&lt;/p>
&lt;h3 id="nostrability-integriert-sherlock-audit-daten-und-veröffentlicht-schemata-überblick">Nostrability integriert Sherlock-Audit-Daten und veröffentlicht Schemata-Überblick&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/nostrability">Nostrability&lt;/a>, der Interoperability-Tracker für Nostr-Clients, mergte 14 PRs. &lt;a href="https://github.com/nostrability/nostrability/pull/306">PR #306&lt;/a> integriert Sherlock-Scan-Statistiken in das Dashboard. Sherlock ist Nostrabilitys automatisiertes Audit-Tool, das sich mit Nostr-Clients verbindet, die von ihnen veröffentlichten Events erfasst und jedes Event gegen die Schemata-JSON-Schema-Definitionen validiert, um Spec-Verstöße zu erkennen. Das Dashboard zeigt nun schema fail rates pro Client (&lt;a href="https://github.com/nostrability/nostrability/pull/315">PR #315&lt;/a>), sodass Entwickler sehen können, bei welchen Event-Kinds ihr Client Fehler macht. &lt;a href="https://github.com/nostrability/nostrability/pull/323">PR #323&lt;/a> überarbeitet den Nostr-Publish-Workflow, sodass Release-Ankündigungen als separater Job laufen, der nicht durch frühere CI-Schritte abgebrochen werden kann.&lt;/p>
&lt;p>elsat veröffentlichte außerdem am 30. März &lt;a href="https://njump.me/naddr1qvzqqqr4gupzq96n3hp2vfmf6z2y8uvvxl97xk86kkalnqghx4p25lzl79c76a7yqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcqz4fnx4rkw3x57nrcwdn8zt22xd982jehfptsgqtrww">Schemata for nostr devs&lt;/a>, das beschreibt, wie schemata, schemata-codegen und Sherlock zusammenpassen, und aktuelle Abdeckungszahlen nennt: 179 Event-Kind-Schemas über 65 NIPs, 154 Tag-Schemas, 13 Protokollnachrichten und 310 Beispiel-Events.&lt;/p>
&lt;h3 id="nalgorithm-fügt-digest-generierung-und-lokales-score-caching-hinzu">Nalgorithm fügt Digest-Generierung und lokales Score-Caching hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/jooray/nalgorithm">Nalgorithm&lt;/a>, ein neues relevance-geranktes Nostr-Feed-Projekt, startete diese Woche die öffentliche Entwicklung. &lt;a href="https://github.com/jooray/nalgorithm/commit/cf6c501e754ef95a1b4fecc1a76288471a101f43">Commit cf6c501&lt;/a> legt die initiale Web-App an, die Posts von Follows lädt und sie gegen einen nutzerdefinierten Präferenz-Prompt bewertet. &lt;a href="https://github.com/jooray/nalgorithm/commit/8e931b6ae85d470e73603752134ff49b7ba4bb86">Commit 8e931b6&lt;/a> fügt ein CLI-Digest-Tool hinzu, das Top-gerankte Posts in eine gesprochene Zusammenfassung verwandelt, während &lt;a href="https://github.com/jooray/nalgorithm/commit/4cb9c635489a9a3429e8d71f3861dc2a11624153">Commit 4cb9c63&lt;/a> file-basiertes Score-Caching und inkrementelle Learned-Prompt-Evolution aus jüngsten Likes hinzufügt. &lt;a href="https://github.com/jooray/nalgorithm/commit/c2edfb8b89fadbe0028c3f5729bda7e23b2e3c03">Commit c2edfb8&lt;/a> stoppt außerdem das Caching von Fallback-Scores aus fehlgeschlagenen Batches, sodass ein transienter Scoring-Fehler nicht dauerhaft das Ranking eines Posts abflacht.&lt;/p>
&lt;h3 id="tenex-fügt-rag-vector-store-und-gezielten-mcp-start-hinzu">TENEX fügt RAG-Vector-Store und gezielten MCP-Start hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>, das Nostr-native Agent-Framework, das AI-Agenten über Telegram mit Nostr-Channels verbindet, mergte diese Woche sieben PRs. &lt;a href="https://github.com/tenex-chat/tenex/pull/101">PR #101&lt;/a> fügt eine austauschbare Vector-Store-Abstraktion mit SQLite-vec-, LanceDB- und Qdrant-Backends hinzu und gibt Agenten Retrieval-Augmented Generation, ohne auf eine einzelne Vector-Datenbank festgelegt zu sein. &lt;a href="https://github.com/tenex-chat/tenex/pull/102">PR #102&lt;/a> macht den MCP-Start gezielt: Es werden nur die MCP-Server gestartet, deren Tools ein Agent tatsächlich nutzt, statt alle Server beim ersten Lauf eager zu starten. &lt;a href="https://github.com/tenex-chat/tenex/pull/100">PR #100&lt;/a> fügt ein &lt;code>send_message&lt;/code>-Tool hinzu, sodass Agenten mit Telegram-Channel-Bindings Nachrichten proaktiv pushen können, statt nur auf eingehende zu antworten. &lt;a href="https://github.com/tenex-chat/tenex/pull/106">PR #106&lt;/a> vermeidet einen Subprozess-Spawn, der eine 9GB-Bun/JSC-Pre-Allocation von Speicher auslöste, indem &lt;code>.git/HEAD&lt;/code> direkt gelesen wird, statt &lt;code>git branch&lt;/code> auszuführen.&lt;/p>
&lt;h3 id="dart-ndk-verschiebt-amber-signer-und-fügt-alby-go-1-click-hinzu">Dart NDK verschiebt Amber-Signer und fügt Alby Go 1-Click hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/relaystr/ndk">Dart NDK&lt;/a>, das Flutter Nostr Development Kit, lieferte 11 gemergte PRs. &lt;a href="https://github.com/relaystr/ndk/pull/525">PR #525&lt;/a> verschiebt Amber-Signer-Unterstützung in das ndk_flutter-Paket, und &lt;a href="https://github.com/relaystr/ndk/pull/552">PR #552&lt;/a> fügt Alby-Go-One-Click-Wallet-Verbindung zur Sample-App hinzu. &lt;a href="https://github.com/relaystr/ndk/pull/502">PR #502&lt;/a> fügt ein install.sh-Skript für die CLI hinzu, und &lt;a href="https://github.com/relaystr/ndk/pull/523">PR #523&lt;/a> entfernt die Rust-Verifier-Abhängigkeit zugunsten nativer Asset-Behandlung.&lt;/p>
&lt;h2 id="protokoll--und-spezifikationsarbeit">Protokoll- und Spezifikationsarbeit&lt;/h2>
&lt;h3 id="marmot-verschiebt-keypackages-zu-adressierbaren-events-und-verschärft-push-benachrichtigungen">Marmot verschiebt KeyPackages zu adressierbaren Events und verschärft Push-Benachrichtigungen&lt;/h3>
&lt;p>Die &lt;a href="https://github.com/marmot-protocol/marmot">Marmot-Spezifikation&lt;/a> mergte vier PRs, die ändern, wie das Protokoll Schlüsselmaterial und Gruppenmitgliedschaft handhabt. &lt;a href="https://github.com/marmot-protocol/marmot/pull/54">PR #54&lt;/a> migriert KeyPackage-Events von regulärem &lt;code>kind:443&lt;/code> zu adressierbarem &lt;code>kind:30443&lt;/code> mit einem &lt;code>d&lt;/code>-Tag und eliminiert damit die Notwendigkeit von &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09&lt;/a> Event-Löschung während der Schlüsselrotation. Addressable Events überschreiben sich an Ort und Stelle, wodurch Rotation in sich geschlossen wird. &lt;a href="https://github.com/marmot-protocol/marmot/pull/57">PR #57&lt;/a> erlaubt Nicht-Admin-Nutzern, SelfRemove-Proposals (freiwilliger Gruppenaustritt) zu committen, und &lt;a href="https://github.com/marmot-protocol/marmot/pull/62">PR #62&lt;/a> verlangt von Admins, vor der Nutzung von SelfRemove ihren Admin-Status aufzugeben, um zu verhindern, dass ein Admin verschwindet, während er noch erhöhte Rechte hält.&lt;/p>
&lt;p>&lt;a href="https://github.com/marmot-protocol/marmot/pull/61">PR #61&lt;/a> verschärft das &lt;a href="https://nostrcompass.org/de/topics/mip-05/">MIP-05&lt;/a> Push-Benachrichtigungsformat, indem Single-Blob-Base64-Kodierung, Versionierung, Token-Wire-Format und X-only-Key-Verwendung explizit gemacht werden. Der Effekt ist eine definierte Wire-Repräsentation für Token-Blobs und X-only-Keys über Spezifikation, Client-Bibliotheken und App-Backends hinweg. Die Implementierung dieser Spec-Änderungen landete diese Woche im White-Noise-Stack und wird im &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#white-noise-behebt-relay-churn-und-erweitert-client-kontrollen">White Noise v2026.3.23-Abschnitt oben&lt;/a> behandelt.&lt;/p>
&lt;h3 id="nip-updates">NIP-Updates&lt;/h3>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&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>): Definiert Kind &lt;code>15128&lt;/code> (Root Site) und Kind &lt;code>35128&lt;/code> (Named Site) Manifest-Events zum Hosting statischer Websites unter Nostr-Schlüsselpaaren mit Blossom-Speicher. Siehe den &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#nip-deep-dive-nip-5a-static-websites">Deep Dive unten&lt;/a>.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-30/">NIP-30&lt;/a> (Custom Emoji): Bindestriche in Shortcodes erlauben&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2297">PR #2297&lt;/a>): Aktualisiert die Shortcode-Beschreibung, um Bindestriche einzuschließen. Bindestrichhaltige Shortcodes werden in der Praxis seit Einführung des NIPs verwendet, daher dokumentiert die Spezifikation nun die aktuelle Nutzung.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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>): Schlägt ein strukturiertes Nachrichtenformat vor, mit dem Agenten interaktive UI-Elemente über verschlüsselte DMs senden können, einschließlich typisierter &lt;code>text&lt;/code>-, &lt;code>buttons&lt;/code>-, &lt;code>card&lt;/code>- und &lt;code>table&lt;/code>-Payloads. Der Entwurf hält alles innerhalb bestehender &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> Direktnachrichten-Inhalte als JSON. Er definiert keinen neuen Event-Kind und verwendet ein einfaches Callback-String-Format für Button-Antworten.&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>): Schlägt ein hybrides Relay-Modell vor, bei dem Relays autoritativ bleiben, aber auch Peer-to-Peer-Verteilung jüngerer Events über WebRTC koordinieren können. Der Entwurf führt Relay-Messages wie &lt;code>PEER_REGISTER&lt;/code>, &lt;code>PEER_REQUEST&lt;/code> und &lt;code>PEER_OFFER&lt;/code> ein, mit stabilen Clients als Super Peers und dem Relay als Seed Node und 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>): Öffnet die alte NIP-69-Zap-Poll-Idee erneut, jetzt da &lt;a href="https://github.com/nostr-protocol/nips/blob/master/88.md">NIP-88&lt;/a> (Polls) freie Umfragen abdeckt. Der Entwurf nutzt Kind &lt;code>6969&lt;/code> Poll-Definitionen und Kind &lt;code>9734&lt;/code> Zaps als Stimmen und macht daraus ein bezahltes Poll-System mit ökonomischer Sybil-Resistenz. Es ergänzt freie 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>): Schlägt eine Konvention vor, bei der Zaps, die an den Pubkey eines Relays oder Clients gesendet werden, als spezialisierte Werbenotizen angezeigt werden, wodurch Zap-Quittungen faktisch zu einer Anzeigenfläche werden. Relay-Betreiber und Clients würden Profile mit &lt;code>lud16&lt;/code> veröffentlichen, diese Quittungen abrufen, eingebettete Inhalte aus Zap-Beschreibungen extrahieren und optional Minimum-sats-Schwellen setzen, um Spam zu unterdrücken.&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>): Schlägt Kind &lt;code>30085&lt;/code> als parametrisierbares ersetzbares Event für strukturierte Reputations-Assertions über Nostr-Agenten vor. Der Entwurf vermeidet einen einzelnen globalen Score, indem Reputation beobachterabhängig gemacht wird, fügt zeitlichen Decay hinzu, damit alte Assertions verblassen, unterstützt negative Bewertungen mit Evidenzanforderungen und skizziert sowohl einfaches gewichtetes Scoring als auch Graph-Diversity-Scoring für bessere Sybil-Resistenz.&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>): Schlägt Kind-&lt;code>31402&lt;/code>-Addressable-Events zum Bewerben bezahlter HTTP-APIs vor, wobei Nostr Discovery und HTTP-402-Handhabung die Zahlung übernimmt. Der Entwurf ist tags-first, sodass Relays nach Zahlungsmethoden, Preisen und Fähigkeiten filtern können, ohne JSON-Inhalt zu parsen, und erlaubt optionale Request- und Response-Schemas, sodass Clients oder Agenten Aufrufe automatisch generieren können.&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>): Schlägt vor, ein Nostr-Schlüsselpaar aus einer LNURL-auth-ECDSA-Signatur kombiniert mit einer client-seitigen zufälligen Nonce abzuleiten. Die Ableitungsformel ist &lt;code>nsec = SHA256(ecdsa_signature || nonce)&lt;/code>. Der Server sieht die ECDSA-Signatur (inhärent im LNURL-auth-Handshake), aber niemals die Nonce, und der Browser generiert die Nonce, kontrolliert aber nicht die Signatur. Keine der beiden Komponenten allein kann den nsec ableiten. Das beabsichtigte Ergebnis ist, dass dieselbe Lightning-Wallet über Geräte hinweg denselben Nostr-Schlüssel produziert, mit der Wallet als Recovery-Anker und ohne dass ein Server den privaten Schlüssel rekonstruieren kann.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>: &lt;code>rejected&lt;/code>-Feld dokumentieren&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2290">PR #2290&lt;/a>): Dokumentiert das &lt;code>rejected&lt;/code>-Feld für intent-basierte Signer-Antworten und formalisiert damit das Verhalten, das &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amethyst-liefert-angepinnte-notizen-relay-management-und-request-to-vanish">Amethysts v1.07.x-Fix&lt;/a> umgehen musste.&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> definiert, wie statische Websites unter Nostr-Schlüsselpaaren gehostet werden, wobei zwei Event-Kinds und bestehende Blob-Speicher-Infrastruktur genutzt werden, um signierte Events in ausgelieferte Webseiten zu verwandeln. Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/5A.md">Spezifikation&lt;/a> wurde am 25. März über &lt;a href="https://github.com/nostr-protocol/nips/pull/1538">PR #1538&lt;/a> gemergt.&lt;/p>
&lt;p>Das Modell nutzt Kind &lt;code>15128&lt;/code> für eine Root Site, eine pro Pubkey, und Kind &lt;code>35128&lt;/code> für benannte Sites, die durch einen &lt;code>d&lt;/code>-Tag identifiziert werden. Jedes Manifest ordnet absolute URL-Pfade SHA256-Hashes zu. Hier ist ein Root-Site-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>Der Serving-Flow arbeitet in drei Schritten. Ein Host-Server empfängt eine HTTP-Anfrage, extrahiert den Pubkey des Autors aus der Subdomain (entweder ein npub für Root Sites oder ein base36-kodierter Pubkey für benannte Sites), ruft die Relay-Liste des Autors über &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> ab und fragt nach dem Site-Manifest. Sobald das Manifest gefunden ist, löst der Server den angeforderten Pfad in einen Content-Hash auf, lädt den passenden Blob vom Blossom-Server oder den Blossom-Servern herunter, die in den &lt;code>server&lt;/code>-Tags aufgelistet sind, und gibt ihn zurück.&lt;/p>
&lt;p>Das DNS-Subdomain-Format ist eng spezifiziert. Root Sites verwenden den Standard-npub als Subdomain. Benannte Sites verwenden eine 50-Zeichen-Base36-Kodierung des rohen Pubkeys gefolgt vom &lt;code>d&lt;/code>-Tag-Wert, alles in einem einzigen DNS-Label. Weil DNS-Labels auf 63 Zeichen begrenzt sind und die Base36-Kodierung immer 50 Zeichen benötigt, ist der &lt;code>d&lt;/code>-Tag auf 13 Zeichen begrenzt. Die Spezifikation verlangt außerdem, dass &lt;code>d&lt;/code>-Tags zu &lt;code>^[a-z0-9-]{1,13}$&lt;/code> passen und nicht mit einem Bindestrich enden, um Mehrdeutigkeiten bei der DNS-Auflösung zu verhindern.&lt;/p>
&lt;p>Die Verwendung von Content-Hashes bedeutet, dass dieselbe Site von verschiedenen Host-Servern ausgeliefert werden kann und die Datei-Integrität überprüfbar ist, ohne dem Server zu vertrauen. Ein Host-Server muss keine Dateien selbst speichern. Er lädt sie bei Bedarf von Blossom anhand der Hashes im Manifest. Das bedeutet, der Autor kontrolliert, was ausgeliefert wird, der Blossom-Server speichert die rohen Dateien, und der Host-Server verbindet nur beides. Jede dieser drei Komponenten kann unabhängig ersetzt werden.&lt;/p>
&lt;p>Bestehende Implementierungen umfassen &lt;a href="https://github.com/lez/nsite">nsite&lt;/a>, den Host-Server, der Manifeste auflöst und Dateien ausliefert, und &lt;a href="https://github.com/hzrd149/nsite-manager">nsite-manager&lt;/a>, eine UI zum Erstellen und Veröffentlichen von Manifesten. Die Spezifikation fügte auch einen &lt;code>source&lt;/code>-Tag zum Verlinken des Source-Code-Repositories einer Site hinzu, und das separat gemergte README-Update in &lt;a href="https://github.com/nostr-protocol/nips/pull/2286">PR #2286&lt;/a> registrierte sowohl Kind &lt;code>15128&lt;/code> als auch &lt;code>35128&lt;/code> im 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> definiert Kind &lt;code>62&lt;/code> als Anfrage an Relays, alle Events des anfragenden Pubkeys zu löschen. Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/62.md">Spezifikation&lt;/a> ist rechtlich motiviert: In Jurisdiktionen mit Right-to-be-Forgotten-Gesetzen gibt eine standardisierte, signierte Löschanfrage Relay-Betreibern ein klares Signal zum Handeln.&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>Die Spezifikation trennt gezielte und globale Vanish-Anfragen. Eine gezielte Anfrage enthält spezifische &lt;code>relay&lt;/code>-Tags, die identifizieren, welche Relays handeln sollen. Eine globale Anfrage verwendet den Literal-String &lt;code>ALL_RELAYS&lt;/code> als &lt;code>relay&lt;/code>-Tag-Wert und fordert jedes Relay, das das Event sieht, auf, alle Events dieses Pubkeys zu löschen. Relays, die dem folgen, müssen außerdem sicherstellen, dass gelöschte Events nicht wieder in das Relay zurückgesendet werden können, sodass die Löschung sticky wird.&lt;/p>
&lt;p>NIP-62 geht in Umfang und Absicht über &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09&lt;/a> (Event Deletion) hinaus. NIP-09 erlaubt das Löschen einzelner Events, und Relays MAY folgen. NIP-62 fordert die Löschung von allem, und die Spezifikation sagt, dass Relays MUST folgen, wenn ihre URL getaggt ist. Sie bittet Relays außerdem, &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) Events zu löschen, die den anfragenden Pubkey mit &lt;code>p&lt;/code> getaggt haben, was bedeutet, dass eingehende DMs zusammen mit den eigenen Events des Nutzers aufgeräumt werden. Das Veröffentlichen einer NIP-09-Löschung gegen eine NIP-62-Vanish-Anfrage hat keinen Effekt: Sobald du vanished bist, kannst du das Verschwinden nicht rückgängig machen, indem du die Vanish-Anfrage löschst.&lt;/p>
&lt;p>Diese Woche lieferte &lt;a href="https://nostrcompass.org/de/newsletters/2026-04-01-newsletter/#amethyst-liefert-angepinnte-notizen-relay-management-und-request-to-vanish">Amethyst v1.07.0&lt;/a> client-seitige NIP-62-Unterstützung und ermöglicht Nutzern, Vanish-Anfragen aus der App heraus zu initiieren. Auf der Relay-Seite hat &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> vier offene PRs, die NIP-62-Unterstützung über die Memory-, LMDB-, SQLite- und Datenbank-Test-Backends hinzufügen (&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>). Das bringt Client- und Relay-Unterstützungsarbeit in dieselbe Woche.&lt;/p>
&lt;p>Das Protokolldesign wirft eine praktische Spannung auf. Nostrs Wertversprechen umfasst Zensurresistenz, was bedeutet, dass Relays die Veröffentlichung nicht verhindern sollten. NIP-62 führt einen Fall ein, in dem ein Relay MUST die Wiederveröffentlichung eines bestimmten Pubkeys verhindern. Die beiden Eigenschaften koexistieren, weil die Anfrage selbstgerichtet ist: Du bittest um Löschung deiner eigenen Events, nicht der von jemand anderem. Die Zensurresistenz-Eigenschaft bleibt für alle intakt außer für die Person, die sich explizit dagegen entschieden hat.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut oder Neuigkeiten zu teilen hat: &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) DM erreichbar&lt;/a> oder auf Nostr findbar.&lt;/p></content:encoded></item><item><title>Nostr Compass #15</title><link>https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> folgt seinem 3.0-Wallet-Release mit &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#primal-f%c3%bcgt-follow-packs-zap-anreicherung-und-deep-links-hinzu">Follow Packs, Zap-Anreicherung und &lt;code>primalconnect://&lt;/code>-Deep-Links&lt;/a>. &lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a> veröffentlicht eine &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#bigbrotr-kartiert-exponierte-private-schl%c3%bcssel-im-relay-netzwerk">nsec-Leak-Analyse&lt;/a>, die 41 Millionen Events über 1.085 Relays scannt und 16.599 gültige private Schlüssel findet, während &lt;a href="https://npub.world">npub.world&lt;/a> in derselben Woche Leak-Warnungen in Profilseiten integriert. Martti Malmi startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostr-vpn-startet-als-tailscale-alternative">nostr-vpn&lt;/a>, eine Tailscale-Alternative, die über Nostr-Relays signalisiert und WireGuard-Tunnel erstellt, und liefert 11 Releases in sieben Tagen. Das &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-Team &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#open-source-doom-l%c3%a4uft-peer-to-peer-%c3%bcber-nostr">veröffentlicht P2P-DOOM als Open Source&lt;/a> über Nostr, &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#fips-v020-liefert-tor-transport-reproduzierbare-builds-und-sidecar-beispiele">v0.2.0&lt;/a>, und &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a> expandiert in einer Woche auf &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostrability-schemata-wird-mehrsprachig">sechs Sprachen&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> folgt seinem 3.0-Wallet-Release mit &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#primal-f%c3%bcgt-follow-packs-zap-anreicherung-und-deep-links-hinzu">Follow Packs, Zap-Anreicherung und &lt;code>primalconnect://&lt;/code>-Deep-Links&lt;/a>. &lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a> veröffentlicht eine &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#bigbrotr-kartiert-exponierte-private-schl%c3%bcssel-im-relay-netzwerk">nsec-Leak-Analyse&lt;/a>, die 41 Millionen Events über 1.085 Relays scannt und 16.599 gültige private Schlüssel findet, während &lt;a href="https://npub.world">npub.world&lt;/a> in derselben Woche Leak-Warnungen in Profilseiten integriert. Martti Malmi startet &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostr-vpn-startet-als-tailscale-alternative">nostr-vpn&lt;/a>, eine Tailscale-Alternative, die über Nostr-Relays signalisiert und WireGuard-Tunnel erstellt, und liefert 11 Releases in sieben Tagen. Das &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-Team &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#open-source-doom-l%c3%a4uft-peer-to-peer-%c3%bcber-nostr">veröffentlicht P2P-DOOM als Open Source&lt;/a> über Nostr, &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> liefert &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#fips-v020-liefert-tor-transport-reproduzierbare-builds-und-sidecar-beispiele">v0.2.0&lt;/a>, und &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a> expandiert in einer Woche auf &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostrability-schemata-wird-mehrsprachig">sechs Sprachen&lt;/a>.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="primal-fügt-follow-packs-zap-anreicherung-und-deep-links-hinzu">Primal fügt Follow Packs, Zap-Anreicherung und Deep Links hinzu&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/">Anschließend an die 3.0.7-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> arbeitete diese Woche an Post-Release-Arbeit rund um Onboarding, Composer-UX und Wallet-Kontext. Neu gestaltetes Onboarding führt Follow Packs ein (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/949">PR #949&lt;/a>), ein nativer GIF-Button kommt in den Notiz-Composer, ein Zap-Anreicherungsdienst (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/979">PR #979&lt;/a>) annotiert Wallet-Transaktionen mit Zap-Kontext, und ein &lt;code>primalconnect://&lt;/code>-Deep-Linking-Protokoll (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/969">PR #969&lt;/a>) ermöglicht app-übergreifende Navigation.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> liefert dieselbe Arbeit parallel über TestFlight, wobei der Wallet-Wechsel (&lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/191">PR #191&lt;/a>), die Poll-Implementierung und der Onboarding-Umbau im selben Zeitfenster landen.&lt;/p>
&lt;h3 id="bigbrotr-kartiert-exponierte-private-schlüssel-im-relay-netzwerk">BigBrotr kartiert exponierte private Schlüssel im Relay-Netzwerk&lt;/h3>
&lt;p>&lt;a href="https://github.com/BigBrotr/bigbrotr">BigBrotr&lt;/a>, die Nostr-Relay-Analyseplattform, veröffentlichte eine &lt;a href="https://bigbrotr.com/blog/exposed-nsec-analysis/">detaillierte Analyse exponierter privater Schlüssel&lt;/a> im Relay-Netzwerk. Die Studie scannte 41 Millionen Events von 1.085 Relays und suchte nach gültigen nsec-Strings in Event-Inhalten, wobei 16.599 gültige private Schlüssel gefunden wurden. Diese Zahl sieht alarmierend aus, bis man einen Bot namens &amp;ldquo;Mr.nsec&amp;rdquo; herausfiltert, der 92 % der Treffer ausmacht. Nach Entfernung des Bot-Traffics hatten nur 38 echte Accounts mit mehr als 21.000 kombinierten Followern exponierte Schlüssel, und keiner zeigte Anzeichen dafür, dass er wusste, dass seine Schlüssel öffentlich waren.&lt;/p>
&lt;p>Das Team baute einen nsec-Leak-Checker als &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> (Data Vending Machine) Dienst, der Nutzern ermöglicht zu prüfen, ob ihr privater Schlüssel irgendwo im gescannten Datensatz auftaucht, ohne den Schlüssel dem Prüfer preiszugeben. &lt;a href="https://npub.world">npub.world&lt;/a> integrierte die Leak-Daten in derselben Woche und zeigt Warnbanner auf Profilseiten, auf denen exponierte Schlüssel erkannt wurden. Die Kombination gibt dem Netzwerk sowohl eine programmatische Schnittstelle für DVMs und Agenten als auch eine menschenlesbare Warnung für reguläre Nutzer. Der zugrundeliegende Datensatz speist auch &lt;a href="https://github.com/BigBrotr/bigbrotr/releases/tag/v6.4.0">BigBrotr v6.4.0&lt;/a>, das ersetzbare und adressierbare Event-Materialized-Views und einen Synchronizer-Idle-Timeout-Fix hinzufügt.&lt;/p>
&lt;h3 id="nostr-vpn-startet-als-tailscale-alternative">Nostr VPN startet als Tailscale-Alternative&lt;/h3>
&lt;p>Martti Malmi (mmalmi), Schöpfer von Iris, baute und lieferte &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a>, ein Peer-to-Peer-VPN, das Nostr-Relays für Signalisierung und WireGuard (via boringtun) für verschlüsselte Tunnel verwendet. Die Motivation war direkt: &amp;ldquo;Got annoyed by Tailscale requiring 3rd party accounts, so created Nostr VPN.&amp;rdquo; Das Tool erstellt Mesh-Netzwerke zwischen Geräten unter Verwendung von Nostr-Schlüsselpaaren als Identität, ohne zentralen Koordinationsserver.&lt;/p>
&lt;p>Das Projekt lieferte 11 Releases in sieben Tagen, von &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.2">v0.2.2&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.13">v0.2.13&lt;/a>. Dieser Sprint fügte Windows-Unterstützung, LAN-Pairing für lokale Netzwerkerkennung und einen Android-Sidecar für mobile Geräte hinzu. Die Architektur ist einfach: Zwei Geräte tauschen Verbindungsmetadaten über Nostr-Relays aus, dann bauen sie einen direkten WireGuard-Tunnel auf. Nostr übernimmt Discovery und NAT-Traversal-Signalisierung. WireGuard übernimmt den eigentlichen Traffic. Identität ist ein Nostr-Schlüsselpaar.&lt;/p>
&lt;p>Malmi trieb auch &lt;a href="https://github.com/mmalmi/nostr-double-ratchet">nostr-double-ratchet&lt;/a> weiter voran, eine Signal-artige sichere Messaging-Channel-Bibliothek, und lieferte sechs Releases von &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.86">v0.0.86&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-double-ratchet/releases/tag/v0.0.93">v0.0.93&lt;/a> in derselben Woche.&lt;/p>
&lt;h3 id="open-source-doom-läuft-peer-to-peer-über-nostr">Open-Source-DOOM läuft Peer-to-Peer über Nostr&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>-Team veröffentlichte eine Peer-to-Peer-Multiplayer-DOOM-Implementierung als Open Source, die Nostr für Peer-Discovery, &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> für Ende-zu-Ende-Verschlüsselung und &lt;a href="https://github.com/n0-computer/iroh">Iroh&lt;/a>, die QUIC-Networking-Bibliothek von n0, für Gossip-Transport verwendet. Das Spiel kommt als 4,2 MB WebXDC-Datei, die innerhalb von Chat-Nachrichten gesendet werden kann, ohne dass Server zum Hosten oder Koordinieren eines Matches nötig sind.&lt;/p>
&lt;p>Der technische Ansatz ersetzt den originalen 1993er Lockstep-Netcode durch ein Echtzeit-Hybrid-Sync-Modell. Spieler entdecken sich gegenseitig durch Nostr-Relay-Abfragen, verhandeln Sessions durch Marmot-verschlüsselte Kanäle und übergeben dann an Irohs QUIC-Gossip-Layer für den latenzarmen Spiel-Traffic. Der Stack verwendet Nostr für Discovery, Marmot für Verschlüsselung und Iroh für Transport.&lt;/p>
&lt;p>Vector lieferte auch Sicherheitshärtung diese Woche. Der Release fügt einen speichergehärteten Key Vault mit Anti-Debug-Schutz und Zeroize für sensibles Schlüsselmaterial hinzu, User-Blocking mit vollständiger DM- und Gruppennachrichten-Filterung sowie WebXDC-Realtime-Channel-Fixes für Mini Apps.&lt;/p>
&lt;h3 id="fips-v020-liefert-tor-transport-reproduzierbare-builds-und-sidecar-beispiele">FIPS v0.2.0 liefert Tor-Transport, reproduzierbare Builds und Sidecar-Beispiele&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a>, das Free Internetworking Peering System und Nostr-angrenzendes Mesh-Networking-Projekt, lieferte &lt;a href="https://github.com/jmcorgan/fips/releases/tag/v0.2.0-rel">v0.2.0&lt;/a>. Der Release fügt Tor-Transport-Unterstützung für anonymisierte Mesh-Links, reproduzierbare Builds, ein Sidecar-Beispiel das sich über ein Nostr-Relay verbindet und Nostr-Release-Publishing im OpenWrt-Paket-Workflow hinzu. Der Release behebt auch Post-Rekey-Jitter-Spikes, die durch Drain-Window-Frames verursacht wurden. Das Wire-Format hat sich gegenüber v0.1.0 geändert, sodass bestehende v0.1.0-Nodes nicht mit v0.2.0 interoperieren können, ohne zu aktualisieren.&lt;/p>
&lt;h3 id="nostrability-schemata-wird-mehrsprachig">Nostrability Schemata wird mehrsprachig&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/nostrability/schemata">Nostrability Schemata&lt;/a>-Projekt, das JSON-Schema-Definitionen zur Validierung von Nostr-Event-Kinds pflegt, expandierte in einer Woche von JavaScript-only auf sechs Sprachen. Neue Pakete für Rust, Go, Dart, Swift und Python wurden veröffentlicht, jeweils mit sowohl einem Datenpaket als auch einem Validator. &lt;a href="https://github.com/nostrability/schemata/releases/tag/v0.2.6">v0.2.6&lt;/a> fügte auch 17 neue Event-Kind-Schemas hinzu.&lt;/p>
&lt;p>Der &lt;a href="https://nostrability.github.io/nostrability/">Nostrability-Interop-Tracker&lt;/a> erhielt eine parallele Überarbeitung. Ein neuer What&amp;rsquo;s-New-Tab veröffentlicht Updates sowohl über einen Atom-Feed als auch über ein Nostr-Event, App-Kategorie-Filterung erlaubt Besuchern, in bestimmte Client-Typen einzutauchen, und der Tracker erkennt nun automatisch Programmiersprachen aus GitHub-Repository-Metadaten. Nostrability hat auch nun einen eigenen npub, was das Projekt selbst über das Protokoll auffindbar macht, das es dokumentiert. Für Bibliotheksautoren, die über Sprachen hinweg arbeiten, bedeuten die mehrsprachigen Schema-Pakete, dass dieselben Event-Kind-Definitionen als native Imports verfügbar sind, anstatt dass jedes Projekt seine eigene Schema-Kopie pflegen muss.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="amethyst-v1060-und-v1061">Amethyst v1.06.0 und v1.06.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der Android-Client gepflegt von vitorpamplona, lieferte &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.0">v1.06.0&lt;/a> und &lt;a href="https://github.com/vitorpamplona/amethyst/releases/tag/v1.06.1">v1.06.1&lt;/a> am 23. März. Das Hauptfeature ist Poll-Unterstützung mit &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Daten für gewichtetes Voting, mit neu gestalteten Poll- und Zap-Poll-Karten. Das neue Rendering gibt sowohl Standard-Polls als auch Zap-gewichteten Polls ein saubereres visuelles Layout. v1.06.1 folgt mit Concurrent-Modification-Crash-Fixes, die Stabilitätsregressionen im Poll-Rendering-Pfad adressieren.&lt;/p>
&lt;h3 id="amber-v500-und-v501">Amber v5.0.0 und v5.0.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signer-App, beförderte ihre jüngste 4.1.x-Pre-Release-Arbeit mit &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.0">v5.0.0&lt;/a> am 18. März in Stable. Dieser Stable-Release trägt die &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Auth-, eingebaute Tor-, inhaltstypspezifische Berechtigungs- und verschlüsselte PIN-Speicher-Änderungen, die letzte Woche behandelt wurden. &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v5.0.1">v5.0.1&lt;/a> entfernt dann die Internet-Berechtigung aus dem Offline-Build-Flavor, sodass dieser Build auf Android-Berechtigungsebene keine Netzwerkanfragen mehr stellen kann.&lt;/p>
&lt;h3 id="mostro-v0170-und-mostro-mobile-v122">Mostro v0.17.0 und Mostro Mobile v1.2.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, die Peer-to-Peer-Bitcoin-Börse auf Nostr, lieferte &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.17.0">v0.17.0&lt;/a> am 18. März. Der Server-Release setzt die Dispute- und Rating-Arbeit aus dem v0.16.x-Zyklus fort und fügt vollständigere Handels-Reputationsdaten für Käufer und Verkäufer als Nostr-Events hinzu. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, der Flutter-Client, folgte mit &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.2">v1.2.2&lt;/a> am 23. März und hält die mobile Oberfläche synchron mit den neuesten Protokolländerungen.&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>, die Nostr-Livestreaming-App, lieferte &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.14.0">v0.14.0&lt;/a> am 19. März mit dem Launch von Shosho Shop. Der Release fügt einen Shop-Tab auf Profilen, Shop in Browse und einen In-Live-Shop-Button auf Lives und Clips hinzu. Die Release-Notes sagen, dass bestehende &amp;ldquo;Nostr-Produkte&amp;rdquo; automatisch erscheinen und Käufer zur Plebeian-Market-Seite des Verkäufers durchklicken. Shoshos Release-Notes identifizieren den Listing-Event-Kind nicht, daher lässt sich noch nicht bestätigen, ob Shosho Shop dieselben &lt;a href="https://nostrcompass.org/de/topics/nip-99/">NIP-99&lt;/a> Kleinanzeigen liest, die &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> explizit in seinem README unterstützt.&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>, hzrd149s Sammlung von Helper-Paketen für den Bau von Nostr-Anwendungen, lieferte &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core@5.2.0">v5.2.0&lt;/a> am 22. März. Der Release umfasst sechs Pakete. Das SQLite-Paket behebt eine UNIQUE-Constraint-Kollision bei Event-Tags, die doppelte Inserts verursachte. Das Signers-Paket fügt &lt;code>AndroidNativeSigner&lt;/code> hinzu, der die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> native Android-Signer-Schnittstelle umhüllt, sodass WebView-basierte Apps hardwaregestütztes Signing ohne benutzerdefinierten Bridge-Code nutzen können. Das Relay-Paket fügt ein &lt;code>challenge&lt;/code>-Feld zu Relay- und Pool-Status-Objekten hinzu, das den &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Auth-Status verfolgt, sodass Apps erkennen können, wann ein Relay Authentifizierung anfordert und programmatisch reagieren können. Das Core-Paket erhält &lt;code>isEventPointerSame&lt;/code>- und &lt;code>isAddressPointerSame&lt;/code>-Methoden zum Deduplizieren von Event-Referenzen, und das Common-Paket fügt &lt;code>user.blossomServers$&lt;/code> zum Auflösen der Blossom-Medienserver eines Nutzers hinzu. Applesauce betreibt noStrudel, Satellite und mehrere andere Web-Clients, sodass sich diese Fixes über die Web-Client-Schicht verbreiten.&lt;/p>
&lt;h3 id="wisp-liefert-16-releases-in-einer-woche">Wisp liefert 16 Releases in einer Woche&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a>, der Android-Nostr-Client, lieferte 16 Releases von &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.9.3-beta">v0.9.3-beta&lt;/a> bis &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.13.1-beta">v0.13.1-beta&lt;/a> diese Woche. Die Feature-Ergänzungen umfassen Multi-Account-Unterstützung, einen Zen-Benachrichtigungsmodus für reduzierte Unterbrechungen, Entwürfe und geplante Beiträge, Sicherheits-Content-Filter und ein neues Flammen-Icon.&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>, die private verschlüsselte Notizen- und Dateispeicher-App, lieferte &lt;a href="https://github.com/dtonon/manent/releases/tag/v1.2.0">v1.2.0&lt;/a> am 20. März. Der Release fügt Kameraaufnahme direkt aus der App, Bildgrößenanpassung vor dem Upload zur Reduzierung der Speicherkosten und Pinch-to-Zoom zum Betrachten gespeicherter Bilder hinzu. Manent speichert Notizen und Dateien verschlüsselt auf Nostr-Relays unter Verwendung des Nutzer-Schlüsselpaars und macht das Telefon oder die Desktop-App zu einem Thin Client, der seinen vollständigen Zustand aus Relay-Daten rekonstruieren kann.&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>, der Kurzform-Video-Client, lieferte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.7">1.0.7&lt;/a> am 21. März mit einem Video-Wiedergabe-Watchdog, der ins Stocken geratene Videos automatisch fortsetzt. Nach der E2E-Testinfrastruktur und dem direkten 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> zielt dieser Release auf den verbleibenden Wiedergabe-Fehlerpfad: Videos, die mitten im Stream stoppen, ohne einen Fehler zu werfen.&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>, die &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> (Browser Extension Signer) Browsererweiterung, lieferte &lt;a href="https://github.com/getAlby/lightning-browser-extension/releases/tag/v3.14.2">v3.14.2&lt;/a> am 18. März mit Lightning-Adress-QR-Code-Anzeige und Schnorr-Signatur-Unterstützung. Die Schnorr-Ergänzung bringt die Browsererweiterung in Einklang mit dem secp256k1-Signaturschema, das Nostr nativ verwendet.&lt;/p>
&lt;h3 id="noornote-v065-bis-v0611">NoorNote v0.6.5 bis v0.6.11&lt;/h3>
&lt;p>&lt;a href="https://github.com/77elements/noornote">NoorNote&lt;/a>, die Notiz-App, lieferte sieben Releases von &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.6.5">v0.6.5&lt;/a> bis &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.6.11">v0.6.11&lt;/a>. Die Hauptergänzung sind Follow Packs: kuratierte Bündel von Accounts, die Nutzer durchsuchen und in großen Mengen abonnieren können, ähnlich wie Twitter-Listen, aber für Onboarding konzipiert. Nutzer können Follow Packs mit benutzerdefinierten Titeln, Beschreibungen und Coverbildern erstellen, bearbeiten und teilen. Die Serie aktualisiert auch die zugrundeliegende Nostr-Bibliothek von NDK v2 auf v3, was verbesserte Relay-Verbindungsbehandlung und Subscription-Management bringt. Bildnotizen und ein neu gestaltetes Relay-Verbindungserlebnis runden die Serie ab.&lt;/p>
&lt;h3 id="nak-v0191-und-v0192">nak v0.19.1 und v0.19.2&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjafs Kommandozeilen-Nostr-Toolkit für die Interaktion mit Relays, das Kodieren und Dekodieren von &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities) Identifikatoren, das Signieren von Events und das Abfragen von Relay-Daten, lieferte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.1">v0.19.1&lt;/a> und &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.2">v0.19.2&lt;/a> am 17. und 20. März. Die beiden Punkt-Releases folgen der &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/">v0.19.0&lt;/a> Gruppen-Forum-UI-Ergänzung der letzten Woche.&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>, die dezentrale Kalender-App auf Basis von &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> (Calendar Events), lieferte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v0.2.1">v0.2.1&lt;/a> am 20. März. Der Release behebt ein Benachrichtigungsvorlagen-Problem, das Event-Erinnerungen betraf. Calendar speichert Events als Nostr kind 31922 (datumsbasiert) und kind 31923 (zeitbasiert) Events, sodass jeder Nostr-Client Kalenderdaten rendern kann, wenn er die Kinds unterstützt. Die App wird vom Formstr-Team gebaut, das auch Formstr (dezentrale Formulare) und Pollerama (Umfragen) pflegt.&lt;/p>
&lt;h3 id="nym-v350-bis-v353">NYM v3.50 bis v3.53&lt;/h3>
&lt;p>&lt;a href="https://github.com/Spl0itable/NYM">NYM&lt;/a>, der leichtgewichtige ephemere Chat-Client mit Bitchat-Bridge, lieferte 28 Releases von v3.50 bis v3.53 (die Patch-Versionen inkrementieren schnell). Das bemerkenswerteste Feature ist Nymbot, ein eingebauter Chat-Bot, der auf &lt;code>@nymbot&lt;/code>-Erwähnungen in Kanälen reagiert und Relay-Status- und Management-Funktionen bietet. Ein &amp;ldquo;Hardcore-Modus&amp;rdquo; generiert für jede gesendete Nachricht ein frisches Schlüsselpaar, was Konversationsthreads auf Identitätsebene unverknüpfbar macht. Der Kompromiss ist klar: Man verliert persistente Identität, gewinnt aber Pro-Nachricht-Anonymität. Die Relay-Proxy-Schicht erhielt ebenfalls Arbeit, mit Sharded-Relay-Proxy-Workern für bessere Konnektivität, Geohash-Channel-Unterstützung und Clock-Skew-Toleranz für Nodes mit ungenauen System-Uhren.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="ditto-fügt-bluesky-bridge-und-wikipedia-integration-hinzu">Ditto fügt Bluesky-Bridge und Wikipedia-Integration hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/soapbox-pub/ditto">Ditto&lt;/a>, der anpassbare Nostr-Social-Client des Soapbox-Teams, verzeichnete diese Woche über 300 Commits über drei verschiedene Feature-Tracks. Der erste ist eine Bluesky-Bridge (19 Commits), die Bluesky-Posts inline als vollständige Feed-artige Threads rendert, Sidebar-Navigation zu einer Bluesky-Discovery-Seite mit dem offiziellen Discover-Feed (whats-hot) hinzufügt und Aktionsbuttons für Kommentieren, Teilen, Reagieren und Link-Kopieren verdrahtet. Wenn ein Nutzer von innerhalb Ditto auf einen Bluesky-Post antwortet, zeigt das Compose-Modal einen Disclaimer-Hinweis, der auf die protokollübergreifende Natur der Interaktion hinweist. &lt;a href="https://nostrcompass.org/de/topics/nip-73/">NIP-73&lt;/a> (External Content IDs) kind-17-Reaktionen treiben das protokollübergreifende Modell an: Ein Nostr-Nutzer reagiert auf einen Bluesky-Post, und die Reaktion wird als Standard-Nostr-Event gespeichert, das den externen Content-Identifier referenziert. Dies ist dasselbe NIP-73-Muster, das Reaktionen auf jeden externen Inhalt brücken könnte, von Bluesky-Posts über YouTube-Videos bis zu Webseiten.&lt;/p>
&lt;p>Der zweite Track ist eine Wikipedia-Integration (9 Commits). Ditto rendert nun reichhaltige Wikipedia-Artikelinhalte auf Detailseiten statt generischer Link-Vorschauen, fügt Such-Autocomplete mit Artikel-Thumbnails hinzu und bietet eine &lt;code>/wikipedia&lt;/code>-Seite, die Featured Content von der Wikipedia-API zieht. Wikipedia- und Archive.org-Ergebnisse erscheinen auch im allgemeinen Such-Autocomplete-Dropdown. Der dritte Track ist iOS-Plattformunterstützung via Capacitor, mit einem Remote-Build-Skript und Plattformkonfiguration, die neben einer UI-Überarbeitung (55 Commits) landet, die Backdrop-Blur-Header durch ein neues Arc-basiertes Navigationsdesign über jede Seite in der App ersetzt. Die 314 Commits bewegen Ditto von einem Nostr-Only-Client zu einem Multiprotokoll-Aggregator, der Bluesky und Wikipedia als erstklassige Inhaltsquellen neben dem Nostr-Feed behandelt.&lt;/p>
&lt;h3 id="pika-baut-eine-nip-34-forge-ci-pipeline">Pika baut eine NIP-34-Forge-CI-Pipeline&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, die Marmot-basierte verschlüsselte Messaging-App, mergte 33 PRs diese Woche, fokussiert auf eine selbst-gehostete &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> Forge mit Pre-Merge-CI. Die Forge ist eine Git-Hosting-Schicht, die Patches als NIP-34-Events empfängt, CI-Prüfungen vor dem Merge durchführt und strukturierten Status über Nostr-Events zurückmeldet. &lt;a href="https://github.com/sledtools/pika/pull/701">PR #701&lt;/a> fügt Lane-basierte Pre-Merge- und Nightly-CI hinzu, wobei jeder Code-Pfad (Rust, TypeScript, Apple-Builds) in seiner eigenen Lane mit unabhängigem Pass/Fail-Status läuft. &lt;a href="https://github.com/sledtools/pika/pull/715">PR #715&lt;/a> schneidet verwaltete CI-Agenten auf Incus-OpenClaw-Container für Isolation, und &lt;a href="https://github.com/sledtools/pika/pull/733">PR #733&lt;/a> fügt eine &lt;code>ph forge&lt;/code>-CLI für die Interaktion mit der gehosteten Forge von der Kommandozeile hinzu. Unterstützende PRs behandeln Repo-Schreibberechtigungen für Merges (&lt;a href="https://github.com/sledtools/pika/pull/736">PR #736&lt;/a>), strukturierte CI-Metadaten mit Live-Status-Badges (&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>) und Forge-Auth- und Branch-Lookup-Fixes (&lt;a href="https://github.com/sledtools/pika/pull/734">PR #734&lt;/a>). Dies ist eines der ersten funktionierenden CI/CD-Systeme, die auf NIP-34-Git-Events aufgebaut sind, und bewegt Nostr-basiertes Source-Code-Hosting über einfachen Patch-Austausch hinaus in Richtung des Merge-und-Test-Workflows, den Entwickler von GitHub oder GitLab erwarten.&lt;/p>
&lt;h3 id="nostria-fügt-communities-code-snippets-und-voice-event-behandlung-hinzu">Nostria fügt Communities, Code-Snippets und Voice-Event-Behandlung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, der plattformübergreifende Nostr-Client gepflegt von sondreb, erweiterte diese Woche die App-Oberfläche über die in #14 behandelte Web-of-Trust-Filterung hinaus. Die Hauptergänzung ist eine vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-72/">NIP-72&lt;/a> (Moderated Communities) Implementierung mit Community-Erstellung, Moderator- und Relay-Konfiguration, Post-Approval-Tracking mit Bildvorschauen und einer dedizierten Community-Seite mit Posts- und Moderatoren-Tabs.&lt;/p>
&lt;p>Derselbe Arbeitszeitraum fügt auch Code-Snippet-Rendering und -Bearbeitung mit einem syntaxhervorgehobenen Editor, Voice-Event-Reply-Unterstützung für Audio-Konversationen, Chat-Relay-Einstellungen für Direktnachrichten, Channel-Sharing über die Web Share API, ein Toolbar-Docking-System für den Media Player, In-App-Anmeldung für den neuesten Brainstorm Web-of-Trust-Dienst, Geld-Sende- und -Empfangsflows in DMs über NWC und BOLT-11-Invoices, Nostr-native GIF-Behandlung und einen stärkeren RSS-Import-Pfad für Musiker hinzu, der bestehende Lightning-Splits aus Podcast-Feeds übernehmen kann.&lt;/p>
&lt;h3 id="nostr-vpn-schnelle-iteration">nostr-vpn schnelle Iteration&lt;/h3>
&lt;p>Über den &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostr-vpn-startet-als-tailscale-alternative">initialen Launch&lt;/a> hinaus zeigt das &lt;a href="https://github.com/mmalmi/nostr-vpn">nostr-vpn&lt;/a> Commit-Log die spezifischen Probleme, die beim echten Deployment auftraten. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.3">v0.2.3&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.5">v0.2.5&lt;/a> fügten das initiale Installer-Skript und die plattformübergreifende CLI hinzu. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.6">v0.2.6&lt;/a> und &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.7">v0.2.7&lt;/a> brachten Windows-Unterstützung, was UAC-Pfad-Quoting für Config-Writes und Daemon-eigene Config-Updates erforderte. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.8">v0.2.8&lt;/a> bis &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.10">v0.2.10&lt;/a> behob Windows-GUI-Service-Aktionen, CLI-Subprozess-Behandlung und maschinen-bezogene Service-Konfiguration. &lt;a href="https://github.com/mmalmi/nostr-vpn/releases/tag/v0.2.12">v0.2.12&lt;/a> ersetzte LAN-Discovery durch zeitgesteuertes LAN-Pairing, einen nutzer-initiierten Flow, bei dem sich zwei Geräte im selben lokalen Netzwerk ohne Relay-Signalisierung pairen. Das Muster ist lehrbuchmäßiges Frühphasen-Feld-Testing: Jeder Release zielt auf einen bestimmten Deployment-Fehler, die Nutzerbasis ist klein genug für tägliche Iteration, und der Entwickler nutzt das Tool persönlich zwischen den Releases.&lt;/p>
&lt;h3 id="comet-automatisierte-builds">Comet automatisierte Builds&lt;/h3>
&lt;p>&lt;a href="https://github.com/nodetec/comet">Comet&lt;/a> (ehemals Captain&amp;rsquo;s Log), das Nostr-native Langform-Schreibtool von Nodetec, produzierte diese Woche über 40 automatisierte Alpha-Builds. Comet ist eine Desktop-App zum Schreiben und Veröffentlichen von NIP-23 (Long-form Content) Artikeln, mit lokaler Entwurfsspeicherung, Markdown-Bearbeitung und Ein-Klick-Publishing zum Relay-Set des Nutzers. Die automatisierte Build-Pipeline generiert einen getaggten Release für jeden Commit auf den Main-Branch, was die rohe Release-Anzahl als Maß für Feature-Velocity irreführend macht. Was die 40 Builds zeigen, ist, dass die App unter täglicher aktiver Entwicklung steht, wobei jeder Commit getestet, paketiert und innerhalb von Minuten zum Download bereitgestellt wird.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> im Zeitfenster 17.-24. März:&lt;/p>
&lt;p>Zwischen dem 18. und 24. März wurden keine NIPs gemergt.&lt;/p>
&lt;p>&lt;strong>Offene PRs und Diskussionen, die im Zeitfenster aktualisiert wurden:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>NIP-AA: Autonome Agenten auf Nostr&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2259">PR #2259&lt;/a>): Schlägt Konventionen für autonome Agenten vor, die im Nostr-Netzwerk operieren. Der PR definiert, wie Agenten sich identifizieren, Dienste entdecken und sich mit anderen Agenten und Menschen über Nostr-Events koordinieren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> (Search): Sortierungserweiterungen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2283">PR #2283&lt;/a>): Fügt Sortierparameter zu NIP-50-Suchabfragen hinzu, einschließlich top, hot, zaps und new. Das würde Clients ermöglichen, gerankte Ergebnisse von Relays anzufordern, die Volltextsuche unterstützen, anstatt client-seitig zu sortieren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-A5: WASM-Programme&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2281">PR #2281&lt;/a>): Schlägt eine Konvention für das Veröffentlichen und Entdecken von WebAssembly-Programmen auf Nostr vor. WASM-Binaries könnten als Nostr-Events verteilt werden, wobei Relays als Discovery-Schicht für portablen ausführbaren Code dienen.&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>): Definiert eine Konvention für interoperable Nostr-Anwendungen (&amp;ldquo;napps&amp;rdquo;), die Funktionalität über verschiedene Clients und Dienste hinweg zusammensetzen können.&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>): Schlägt einen Mechanismus für Relay-Status-Snapshots vor, für Relay-Synchronisation und Backup.&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>): Schlägt Checkpoint-Events zum Markieren bekannt-guter Relay-Zustände vor, komplementär zum Snapshots-Vorschlag.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Restrukturiert, wie Badge-Sammlungen organisiert und referenziert werden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document): Erweiterungen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2280">PR #2280&lt;/a>): Fügt zusätzliche Felder zum Relay-Informationsdokument für reichhaltigere maschinenlesbare Relay-Metadaten hinzu.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="fünf-jahre-nostr-im-märz">Fünf Jahre Nostr im März&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#f%C3%BCnf-jahre-nostr-im-februar">Der Newsletter des letzten Monats&lt;/a> behandelte, wie Nostrs Februare vom NIP-01 (Basic Protocol Flow) Rewrite über die Damus-App-Store-Welle bis zu Mesh-Networking und Agenten-Vorschlägen fortschritten. Dieser Rückblick zeichnet nach, was in jedem März von 2021 bis 2026 geschah.&lt;/p>
&lt;h3 id="märz-2021-zwei-commits">März 2021: Zwei Commits&lt;/h3>
&lt;p>Vier Monate nach seiner Entstehung produzierte Nostrs März genau zwei Commits zum Protokoll-Repository, beide am 4. März. fiatjaf &lt;a href="https://github.com/nostr-protocol/nostr/commit/dcd8cc3">fügte Links zu Nostwitter-Instanzen hinzu&lt;/a>, die frühe Besucher auf funktionierende Deployments verwiesen, und &lt;a href="https://github.com/nostr-protocol/nostr/commit/54dfb46">fügte Kind zur grundlegenden Filterdefinition hinzu&lt;/a>. Dieser zweite Commit ist aufschlussreich: Im März 2021 konnte man Nostr-Events noch nicht nach Kind filtern. Das Protokoll war so primitiv. Zwei oder drei Relays bedienten das Netzwerk. Die Telegram-Gruppe war der einzige Koordinationskanal. Das NIPs-Repository existierte noch nicht; Protokollvorschläge lebten als Dateien im Haupt-Nostr-Repository. fiatjaf war der einzige Committer in diesem Monat. Der gesamte März-2021-Output dessen, was fünf Jahre später ein Protokoll werden würde, das VPNs, Multiplayer-Spiele und Mesh-Networking unterstützt, passt in einen einzigen Git-Diff.&lt;/p>
&lt;h3 id="märz-2022-pre-damus-aufbau">März 2022: Pre-Damus-Aufbau&lt;/h3>
&lt;p>Das Haupt-Protokoll-Repository erhielt im März 2022 null Commits. Die Entwicklung hatte sich vollständig auf Tool-Repositories verlagert. &lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a>, fiatjafs Vue.js-Web-Client und zu dieser Zeit die primäre Nostr-Oberfläche, erhielt 5 Commits einschließlich Docker-Deployment-Unterstützung und &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> (DNS-Based Verification) Anzeigenamen-Fixes, die das &lt;code>_@&lt;/code>-Präfix aus Verifizierungsbadges entfernten. Robert C. Martins &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, der Clojure-Desktop-Client, verzeichnete 13 oder mehr Commits mit Threading, Tastaturnavigation und einem Bearbeitungsfenster. Der berühmteste Software-Autor, der in diesem Monat aktiv auf Nostr baute, war kein Krypto-Entwickler, sondern die Person, deren &amp;ldquo;Clean Code&amp;rdquo; Millionen Exemplare verkauft hat, die einen Nostr-Client in Clojure schrieb, einer Sprachwahl, die alles über die frühe Community verrät: Das waren eigenwillige Programmierer, die für sich selbst bauten.&lt;/p>
&lt;p>Das Relay-Netzwerk hatte sich auf etwa 15 Relays mit einer aktiven Nutzerbasis im Hunderte-Bereich erweitert. Damus existierte noch nicht und würde erst im April 2022 erstellt werden. Nostream war ebenfalls noch nicht erschienen. Die Arbeit des Monats war Infrastruktur: Die bestehenden Tools zuverlässiger machen für die kleine Community, die sie bereits täglich nutzte.&lt;/p>
&lt;h3 id="märz-2023-post-explosions-infrastruktur">März 2023: Post-Explosions-Infrastruktur&lt;/h3>
&lt;p>Einen Monat nach der Damus-App-Store-Welle und dem Anstieg über 300.000 öffentliche Schlüssel ging es im März 2023 darum, das Wachstum aufzunehmen. Das &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> mergte 28 Pull Requests, die zweithöchste monatliche Anzahl in der Protokollgeschichte. &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> (Lists) wurde gemergt und gab Clients strukturierte Follow-, Mute- und Bookmark-Sammlungen. &lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> (External Identities in Profiles) landete, NIP-78 (Application-Specific Data) lieferte einen allgemeinen Speicher-Kind für Apps, die privaten Zustand brauchten, und ein Rewrite von &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> (Lightning Zaps) (&lt;a href="https://github.com/nostr-protocol/nips/pull/392">PR #392&lt;/a>) konsolidierte den Zap-Flow und klärte die Terminologie. Der meistdiskutierte PR des Monats war ein alternativer Mention-Handling-Vorschlag (&lt;a href="https://github.com/nostr-protocol/nips/pull/381">PR #381&lt;/a>) mit über 50 Kommentaren.&lt;/p>
&lt;p>Das folgenreichste neue Projekt war &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> (Nostr Development Kit), die TypeScript-Bibliothek für Relay-Verbindungen, Event-Signing, Caching und Subscription-Management. pablof7z machte den &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/09e5e03">ersten Commit&lt;/a> am 16. März 2023, schrieb es 11 Tage später am 27. März von Grund auf neu (&amp;ldquo;basically another initial commit&amp;rdquo;) und hatte am 31. März LNURL- und Zap-Unterstützung am Laufen. NDK ging in 15 Tagen von nichts zu Zap-fähig. Fünf Tage nach NDKs Erstellung, am 21. März, erstellte das Alby-Team &lt;a href="https://github.com/getAlby/nostr-wallet-connect">NWC&lt;/a> (Nostr Wallet Connect), die Referenzimplementierung von &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>, die Lightning-Wallets mit Nostr-Anwendungen verband. Die beiden Projekte, die die nächsten drei Jahre webbasierter Nostr-Entwicklung untermauern würden, wurden im selben 30-Tage-Fenster geboren. OpenSats hatte seinen Nostr-Fonds noch nicht gestartet; die erste Welle kam erst im &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">Juli 2023&lt;/a>, vier Monate nach NDKs Erstellung.&lt;/p>
&lt;p>Weitere bemerkenswerte Kreationen in diesem Monat waren NostrGit, NostrChat, ein nostr-signing-device-Projekt von LNbits und nostrmo. &lt;a href="https://github.com/mikedilger/gossip">Gossip&lt;/a>, der Rust-Desktop-Client mit Fokus auf intelligente Relay-Auswahl, lieferte drei Releases. Das Protokoll war im Build-Modus, und die im März 2023 erstellten Tools sind drei Jahre später noch in Gebrauch.&lt;/p>
&lt;h3 id="märz-2024-protokollreifung">März 2024: Protokollreifung&lt;/h3>
&lt;p>Im März 2024 ging es um die Härtung des Protokolls für Langzeitnutzung. Das NIPs-Repository mergte 12 Pull Requests. Der bedeutendste war &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> (Git Stuff), &lt;a href="https://github.com/nostr-protocol/nips/pull/997">PR #997&lt;/a>, der am 5. März nach über 130 Kommentaren und 44 Tagen Review gemergt wurde. Der Diskussionsthread ist eine Zeitkapsel der Community, die debattiert, wie man ein dezentrales GitHub baut. jb55 zog Parallelen zu &lt;code>git send-email&lt;/code>, Giszmo schlug vor, Root-Commit-Hashes für Cross-Fork-Discovery zu verwenden (&amp;ldquo;something GitHub doesn&amp;rsquo;t do and we could&amp;rdquo;), mikedilger schlug &lt;a href="https://nostrcompass.org/de/topics/nip-98/">NIP-98&lt;/a> (HTTP Auth) Event-signierte Authentifizierung anstelle von SSH-Schlüsseln vor, und fiatjaf wies die Notwendigkeit von Versionskontroll-Allgemeinheit brüsk zurück: &amp;ldquo;not for each version control system, just for git. No one uses the others.&amp;rdquo; Innerhalb von Stunden nach Öffnung des PRs hatte fiatjaf bereits nak, go-nostr und gitstr umgestellt, um Patches über Nostr zu akzeptieren. DanConwayDev, dessen ngit bereits OpenSats-Grantee war, gehörte zu den aktivsten Beitragenden in der Diskussion. Ein Bot-Feld für Profil-Metadaten wurde ebenfalls gemergt, das Clients eine maschinenlesbare Möglichkeit gibt, automatisierte Accounts von menschlichen zu unterscheiden.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> lieferte v0.85.0 mit Git-Event-Unterstützung, Wiki-Artikeln, medizinischem Daten-Rendering und Content-Editing in einem einzigen Release. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> erreichte v0.10.0. &lt;a href="https://github.com/Spl0itable/nosflare">Nosflare&lt;/a>, ein serverloses Nostr-Relay auf Cloudflare Workers, bewies, dass Relay-Logik am Edge laufen kann. OpenSats erteilte einen &lt;a href="https://opensats.org/blog/bruno-garcia-receives-lts-grant">Long-Term-Support-Grant an Bruno Garcia&lt;/a> für nachhaltige Beiträge zum Amethyst-Client.&lt;/p>
&lt;h3 id="märz-2025-infrastruktur-expansion">März 2025: Infrastruktur-Expansion&lt;/h3>
&lt;p>Der März 2025 produzierte 10 gemergte NIPs. Die Schlagzeile war &lt;a href="https://nostrcompass.org/de/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>, der am 3. März nach einer 25-monatigen Reise gemergt wurde. dskvr schlug Relay-Monitoring erstmals im Februar 2023 vor, bekam zu hören, es könnte client-seitig gemacht werden, erklärte, warum das Verbinden zu Tausenden von Relays gleichzeitig für einzelne Clients unpraktisch war, durchlief sieben vollständige Entwürfe, baute Monitoring-Nodes über acht geografische Regionen (Northeast US, Brasilien, US-West, US-East, Australien, Indien, Korea, Südafrika) und wartete darauf, dass das Relay-Tooling aufholte. Als es gemergt wurde, existierten bereits Implementierungen in nostr.watch, relaypag.es, monitorlizard, Snort, noStrudel und Jumble. Die NIP-66-Daten würden später die Nostrability-Outbox-Benchmarks speisen, die in &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#outbox-modell-unter-der-lupe">Newsletter #12 behandelt wurden&lt;/a>. NIP-C0 (Code Snippets) wurde ebenfalls gemergt (&lt;a href="https://github.com/nostr-protocol/nips/pull/1852">PR #1852&lt;/a>, 63 Kommentare) und fügte kind-1337-Events zum Teilen von Quellcode hinzu.&lt;/p>
&lt;p>Die ersten MCP-Server für Nostr erschienen in diesem Monat. &lt;a href="https://github.com/AustinKelsay/nostr-mcp-server">nostr-mcp-server&lt;/a> erschien am 23. März und &lt;a href="https://github.com/getAlby/nwc-mcp-server">nwc-mcp-server&lt;/a> am 14. März, nur vier Monate nachdem Anthropic das Model Context Protocol im November 2024 angekündigt hatte. Diese frühen Bridges gingen dem vollständigen &lt;a href="https://nostrcompass.org/de/topics/contextvm/">ContextVM&lt;/a> SDK und der Agenten-Commerce-Arbeit voraus, die Ende 2025 und Anfang 2026 folgte.&lt;/p>
&lt;p>&lt;a href="https://github.com/mikedilger/gossip">Gossip&lt;/a> lieferte v0.14.0. &lt;a href="https://github.com/coracle-social/coracle">Coracle&lt;/a>, hodlbods Web-Client mit Relay-bewusstem Feed-Management, lieferte drei Releases. OpenSats kündigte seine &lt;a href="https://opensats.org/blog/10th-wave-of-nostr-grants">zehnte Welle von Nostr-Grants&lt;/a> an und setzte die Finanzierungspipeline fort, die seit Mitte 2023 lief.&lt;/p>
&lt;h3 id="märz-2026-konvergenz">März 2026: Konvergenz&lt;/h3>
&lt;p>&lt;em>Die Aktivität vom März 2026 stammt aus Nostr-Compass-Ausgaben &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/">#12&lt;/a> bis &lt;a href="">#15&lt;/a> (diese Ausgabe).&lt;/em>&lt;/p>
&lt;p>März 2026 ist der Monat, in dem verschiedene Stränge zu funktionierenden Systemen konvergierten. Das &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#marmot-development-kit-liefert-ersten-%C3%B6ffentlichen-release">Marmot Development Kit&lt;/a> lieferte seinen ersten öffentlichen Release mit verschlüsselten Medien, Multi-Language-Bindings und einer ChaCha20-Poly1305-Migration, die koordinierte Updates über Spec, Rust und TypeScript erforderte. &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/#shopstr-and-milk-market-open-mcp-commerce-surfaces">Shopstr und Milk Market&lt;/a> fügten MCP-Commerce-Oberflächen für agentengesteuerten Einkauf hinzu. &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Auth landete gleichzeitig 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 und OAuth Bunker und schloss die Schleife zwischen Signer-, Relay- und Bunker-Software. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#notedeck-verlagert-release-erkennung-auf-nostr">Notedeck&lt;/a> lieferte Nostr-native Software-Updates unter Verwendung von &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a> (File Metadata) Release-Events.&lt;/p>
&lt;p>Diese Woche scannte &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#bigbrotr-kartiert-exponierte-private-schl%c3%bcssel-im-relay-netzwerk">BigBrotr&lt;/a> das gesamte Relay-Netzwerk nach geleakten privaten Schlüsseln und veröffentlichte sowohl die Analyse als auch einen DVM-Checker. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#nostr-vpn-startet-als-tailscale-alternative">Nostr VPN&lt;/a> bewies, dass Nostrs Schlüsselmodell für Netzwerkinfrastruktur funktioniert, nicht nur für soziale Medien. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#open-source-doom-l%c3%a4uft-peer-to-peer-%c3%bcber-nostr">DOOM&lt;/a> demonstrierte, dass Nostr-Discovery, Marmot-Verschlüsselung und QUIC-Transport ein Echtzeit-Multiplayer-Spiel betreiben können. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#amber-v500-und-v501">Amber&lt;/a> sprang auf v5.0.0. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-25-newsletter/#wisp-liefert-16-releases-in-einer-woche">Wisp&lt;/a> lieferte 16 Releases in sieben Tagen. 25 oder mehr getaggte Releases kamen von großen Projekten in einer einzigen Woche.&lt;/p>
&lt;p>Sieben NIPs wurden in den ersten 24 Tagen des Monats gemergt. Das Protokoll fügte &lt;a href="https://nostrcompass.org/de/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-Markup, &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities) Eingabegrenzen, &lt;a href="https://nostrcompass.org/de/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) boolesche Abfragelogik und &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web-of-Trust-Assertions hinzu. Offene Vorschläge reichten von autonomen Agenten (NIP-AA) über WASM-Programme (NIP-A5) bis zu Such-Sortierungserweiterungen für &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a>.&lt;/p>
&lt;h3 id="ausblick">Ausblick&lt;/h3>
&lt;p>Fünf Märze Nostr zeichnen einen klaren Bogen. 2021 machte eine Person zwei Commits an ein Protokoll, das Events noch nicht nach Kind filtern konnte. Bis 2023 wurden NDK und NWC fünf Tage auseinander geboren, um die Post-Damus-Explosion aufzufangen. Bis 2024 debattierte ein 141-Kommentar-PR-Thread, wie Git-Zusammenarbeit auf einem sozialen Protokoll funktionieren sollte. Bis 2025 wurde eine Relay-Monitoring-Spezifikation, die geduldig sieben Mal über 25 Monate umgeschrieben worden war, endlich gemergt. 2026 wurde jemand genervt davon, dass Tailscale einen Account verlangt, und baute ein VPN mit Nostr-Schlüsselpaaren, während jemand anderes Multiplayer-DOOM lieferte, das Peers über Nostr-Relays entdeckt und Gameplay über Marmot verschlüsselt. BigBrotrs Scan von 41 Millionen Events über 1.085 Relays gibt ein konkretes Maß dafür, wie weit das Netzwerk gewachsen ist. Die Protokolloberfläche im März 2026 wäre für den März 2021 unerkennbar gewesen, aber das zugrundeliegende Modell, Events signiert mit secp256k1-Schlüsseln und verteilt über Relays, hat sich nicht geändert.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut oder Neuigkeiten zu teilen hat: &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) DM erreichbar&lt;/a> oder auf Nostr findbar.&lt;/p></content:encoded></item><item><title>Nostr Compass #14</title><link>https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> landet volle &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) Methodenunterstützung, &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> fügt Multi-Relay-Unterstützung in &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a> hinzu, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> liefert &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a> mit eingebautem Tor und feineren Signer-Berechtigungen, und &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> entfernt einen riskanten NWC-Keysend-Pfad 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> liefert einen signierten Updater in &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a>, der Releases über &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a> (File Metadata) Events entdeckt, während &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> veralteten &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) Zustand behebt, &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a> seine Benchmark-Ergebnisse mit korrigierten Daten überarbeitet, und &lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> direkte Relay-Subscriptions für DMs testet. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> liefert &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> liefert &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> verbessert weiter die Marmot-Interoperabilität 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> konsolidiert seine Runtime in &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a>, und &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web-of-Trust-Filterung hinzu. Das NIPs-Repository mergt &lt;a href="https://nostrcompass.org/de/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-Markup und eine 5000-Zeichen-Eingabebegrenzung für &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities), während offene Vorschläge von &lt;code>.nostrkey&lt;/code>-Datei-Backups für &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption) bis zu einem &lt;a href="https://nostrcompass.org/de/topics/nip-222/">NIP-222&lt;/a> Share-Intent-URI reichen. Die NIP Deep Dives dieser Woche behandeln &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#nip-deep-dive-nip-94-file-metadata">NIP-94&lt;/a> (File Metadata) und &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#nip-deep-dive-nip-54-wiki">NIP-54&lt;/a>.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> landet volle &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) Methodenunterstützung, &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a> fügt Multi-Relay-Unterstützung in &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a> hinzu, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> liefert &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a> mit eingebautem Tor und feineren Signer-Berechtigungen, und &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> entfernt einen riskanten NWC-Keysend-Pfad 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> liefert einen signierten Updater in &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a>, der Releases über &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a> (File Metadata) Events entdeckt, während &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> veralteten &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) Zustand behebt, &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a> seine Benchmark-Ergebnisse mit korrigierten Daten überarbeitet, und &lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> direkte Relay-Subscriptions für DMs testet. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> liefert &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> liefert &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> verbessert weiter die Marmot-Interoperabilität 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> konsolidiert seine Runtime in &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a>, und &lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Web-of-Trust-Filterung hinzu. Das NIPs-Repository mergt &lt;a href="https://nostrcompass.org/de/topics/nip-54/">NIP-54&lt;/a> (Wiki) Djot-Markup und eine 5000-Zeichen-Eingabebegrenzung für &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities), während offene Vorschläge von &lt;code>.nostrkey&lt;/code>-Datei-Backups für &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption) bis zu einem &lt;a href="https://nostrcompass.org/de/topics/nip-222/">NIP-222&lt;/a> Share-Intent-URI reichen. Die NIP Deep Dives dieser Woche behandeln &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#nip-deep-dive-nip-94-file-metadata">NIP-94&lt;/a> (File Metadata) und &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-18-newsletter/#nip-deep-dive-nip-54-wiki">NIP-54&lt;/a>.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="wallet-connect-unterstützung-wird-breiter-und-wallet-clients-verschärfen-fehlerpfade">Wallet-Connect-Unterstützung wird breiter, und Wallet-Clients verschärfen Fehlerpfade&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der Android-Client gepflegt von vitorpamplona, mergte &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1828">PR #1828&lt;/a>, der seine &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>-Implementierung nahe an die vollständige Protokollabdeckung bringt. Der Patch fügt &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-Unterstützung mit TLV-Records, Capability-Discovery über Kind &lt;code>13194&lt;/code> und Benachrichtigungs-Events auf Kind &lt;code>23197&lt;/code> mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) hinzu. Das gibt dem Client eine viel breitere NWC-Oberfläche, ohne auf App-spezifische Erweiterungen angewiesen zu sein.&lt;/p>
&lt;p>Der umgebende Wallet-Stack bewegte sich in dieselbe Richtung. &lt;a href="https://github.com/getAlby/hub">Alby Hub&lt;/a>, der selbstverwahrende Lightning-Node und Wallet-Dienst hinter vielen NWC-Deployments, lieferte &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.6">v1.21.6&lt;/a> mit Multi-Relay-Unterstützung und einfacheren Verbindungs- und Swap-Flows. &lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a>, die mobile Lightning-Wallet, mergte &lt;a href="https://github.com/ZeusLN/zeus/pull/3835">PR #3835&lt;/a>, der NWC-Keysend-Unterstützung entfernt, nachdem ein stiller Fund-Drain-Pfad in diesem Flow identifiziert wurde, und behob gleichzeitig Pending-Event- und Cashu-Activity-Behandlung. Wallet-Konnektivität auf Nostr wird breiter, und Implementierer entfernen Flows, die schwer abzusichern sind.&lt;/p>
&lt;h3 id="notedeck-verlagert-release-erkennung-auf-nostr">Notedeck verlagert Release-Erkennung auf Nostr&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Anschließend an die Notedeck-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der native Desktop-Client des Damus-Teams, lieferte &lt;a href="https://github.com/damus-io/notedeck/releases/tag/v0.8.0-rc2">v0.8.0-rc2&lt;/a> nach dem Mergen von &lt;a href="https://github.com/damus-io/notedeck/pull/1326">PR #1326&lt;/a>. Der neue Updater abonniert signierte kind-&lt;code>1063&lt;/code>-Release-Events, gleicht die lokale Plattform ab, lädt die referenzierte Binärdatei herunter und verifiziert deren SHA256-Hash vor der Installation. Release-Metadaten müssen nicht mehr von der GitHub-API oder einer Projektwebsite kommen. Ein vertrauenswürdiger Release-Pubkey und eine Relay-Verbindung reichen aus.&lt;/p>
&lt;p>Derselbe Patch fügt eine &lt;code>notedeck-release&lt;/code>-CLI hinzu, die diese Events aus GitHub-Release-Artefakten veröffentlicht, was bedeutet, dass die Release-Pipeline nun sowohl einen Nostr-nativen Veröffentlichungspfad als auch einen Nostr-nativen Erkennungspfad hat. Es bringt auch das Damus- und Notedeck-Updater-Modell viel näher an Zapstores Relay-veröffentlichten signierten Release-Flow: Zapstores &lt;code>zsp&lt;/code>-Tooling behandelt bereits Software-Assets als kind-&lt;code>1063&lt;/code>- oder &lt;code>3063&lt;/code>-Events, sodass dieser Pfad nicht an einen Client oder einen Publisher gebunden ist. Der Rest des Release-Kandidaten ist praktische Desktop-Arbeit: Follow-Spalten, Profil-&amp;ldquo;View As User&amp;rdquo;, &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) Unterstützung, Echtzeit-Note-Statistiken und &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document) Limitation-Handling, aber der Updater ist der Teil, der diesen einen Release-Zyklus wahrscheinlich überdauert.&lt;/p>
&lt;h3 id="relay-zustand-rückt-näher-an-laufzeitverhalten">Relay-Zustand rückt näher an Laufzeitverhalten&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> mergte &lt;a href="https://github.com/damus-io/damus/pull/3665">PR #3665&lt;/a>, der eine veraltete gespeicherte Relay-Listen-Event-ID durch eine direkte Datenbankabfrage für das neueste kind-&lt;code>10002&lt;/code>-Event ersetzt. Wenn der alte Wert veraltet war, konnten Relay-Hinzufügen- und -Entfernen-Operationen auf Bootstrap- oder jahresalte Listen zurückfallen, was einige Relay-Änderungen als erfolgreich erscheinen ließ, während der aktive Zustand unverändert blieb. &lt;a href="https://github.com/damus-io/damus/pull/3690">PR #3690&lt;/a> behebt einen zweiten Fehlerpfad, indem veralteter &lt;code>lock.mdb&lt;/code>-Zustand während der LMDB-Kompaktierung gelöscht wird, damit die App beim nächsten Start nicht mit &lt;code>SIGBUS&lt;/code> abstürzt.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-ios-app">Primal iOS&lt;/a> eröffnete &lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/194">PR #194&lt;/a>, der direkt die &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages) Write-Relays eines Chatpartners abonniert, während eine Konversation geöffnet ist, wobei der Cache-Server als Fallback dient. &lt;a href="https://github.com/nostur-com/nostur-ios-public">Nostur&lt;/a> eröffnete &lt;a href="https://github.com/nostur-com/nostur-ios-public/pull/53">PR #53&lt;/a>, der randomisiertes Relay-Scoring, &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Liveness-Filterung von nostr.watch und Thompson-Sampling kombiniert, um die Relay-Auswahl von einer festen Heuristik in eine gelernte Policy umzuwandeln. Clients haben Relay-Auswahl lange als Setup-Daten behandelt. Mehr Apps behandeln sie nun als Live-Zustand, der Mess- und Reparaturlogik benötigt.&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>, der Android-Client von Primal, lieferte &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/3.0.7">3.0.7&lt;/a> mit einem neuen Poll- und Wallet-Zyklus. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/945">PR #945&lt;/a> fügt Zap-basiertes Poll-Voting hinzu, &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/948">PR #948&lt;/a> paginiert das Laden von Stimmen, damit größere Umfragen nutzbar bleiben, und &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/965">PR #965&lt;/a> ruft Zap-Quittungen für alle Transaktionen ab. Dasselbe Release taggt unterstützte Events auch mit &lt;a href="https://nostrcompass.org/de/topics/nip-89/">NIP-89&lt;/a> (Recommended Application Handlers) Client-Metadaten in &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/968">PR #968&lt;/a>, was nachgelagerten Clients hilft, Event-Ursprünge sauberer zuzuordnen.&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/">Anschließend an die Amber-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, die Android-Signer-App für &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Flows, lieferte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3">v4.1.3&lt;/a>. Der Release baut auf der jüngsten &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Auth-Arbeit auf mit weiterer operationeller Härtung: &lt;a href="https://github.com/greenart7c3/Amber/pull/327">PR #327&lt;/a> fügt eingebautes Tor neben Orbot-Unterstützung hinzu, &lt;a href="https://github.com/greenart7c3/Amber/pull/324">PR #324&lt;/a> ersetzt grobe NIP-basierte Verschlüsselungsberechtigungen durch inhaltstypspezifische Regeln, und &lt;a href="https://github.com/greenart7c3/Amber/pull/336">PR #336&lt;/a> entfernt Netzwerkberechtigungen aus dem Offline-Flavor, während &lt;a href="https://github.com/greenart7c3/Amber/pull/335">PR #335&lt;/a> CI-Prüfungen hinzufügt, um das so beizubehalten. &lt;a href="https://github.com/greenart7c3/Amber/pull/322">PR #322&lt;/a> verschiebt auch die PIN-Speicherung in verschlüsselten DataStore.&lt;/p>
&lt;p>Dieser Release verschärft die Signer-Grenze selbst. Das ist nützlich für jeden Android-Flow, der echte Schlüssel oder Relay-Auth-Entscheidungen an Amber übergibt, denn der schwierige Teil ist nicht nur, was der Signer kann. Es ist auch, wie eng er eingegrenzt werden kann.&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/">Anschließend an die Route96-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, der Medienserver, der Blossom und &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> (HTTP File Storage) unterstützt, veröffentlichte &lt;a href="https://github.com/v0l/route96/releases/tag/v0.6.0">v0.6.0&lt;/a>. Der Release verschiebt Konfiguration und Whitelist-Zustand in die Datenbank mit Hot Reload und fügt Aufbewahrungsrichtlinien für kalte oder alternde Dateien hinzu. Er fügt auch einen reichhaltigeren &lt;code>GET /user/files&lt;/code>-Endpunkt plus Datei-Statistik-Tracking für Downloads und Egress hinzu, was Betreibern mehr Einblick gibt, wie ihr Speicherserver genutzt wird.&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/">Anschließend an die OpenChat-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, der Avalonia-basierte Chat-Client auf dem Marmot-Stack, lieferte &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.11">v0.1.0-alpha.11&lt;/a> nach einer Woche schneller Protokollarbeit. &lt;a href="https://github.com/DavidGershony/openChat/commit/c33895d6b1a198f01b9b01a7be974bdce033fb9c">Commit c33895d&lt;/a> verpackt Welcome-Events in &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrap und entfernt alte MIP-00-Tag-Normalisierungs-Shims, &lt;a href="https://github.com/DavidGershony/openChat/commit/2738ff428154f60f50debb8f2a53662d427b28f1">Commit 2738ff4&lt;/a> vervollständigt das MIP-02-Compliance-Audit, und &lt;a href="https://github.com/DavidGershony/openChat/commit/8e470cf7945bced010168c8229d73d67db638b9f">Commit 8e470cf&lt;/a> tut dasselbe für MIP-03-Gruppennachrichtenverschlüsselung. &lt;a href="https://github.com/DavidGershony/openChat/commit/129ca37e264efaa2d1a8b04fe95cd72e5e212547">Commit 129ca37&lt;/a> konsolidiert auch die NIP-44-Behandlung auf die gemeinsame marmot-cs-Implementierung, was das Risiko client-seitiger Krypto-Drift reduziert.&lt;/p>
&lt;h3 id="nak-v0190-und-v0191">nak v0.19.0 und v0.19.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a>, fiatjafs Kommandozeilen-Nostr-Toolkit, lieferte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.0">v0.19.0&lt;/a> und &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.19.1">v0.19.1&lt;/a>. Die 0.19-Serie fügt eine Gruppen-Forum-UI in &lt;a href="https://github.com/fiatjaf/nak/commit/5f4efdbc69a36fc80ea3f97b2cdee1db6a7c5b47">Commit 5f4efdb&lt;/a> hinzu, wechselt Gruppen-Metadaten-Edits auf einen vollständigen Replace-Flow in &lt;a href="https://github.com/fiatjaf/nak/commit/da0b75337198010687aceb6a07bbae67407faee3">Commit da0b753&lt;/a>, und ersetzt die ältere &lt;code>no-text&lt;/code>-Behandlung durch &lt;code>supported_kinds&lt;/code> in &lt;a href="https://github.com/fiatjaf/nak/commit/bef67d35d259e0450debf0fd870e1a937a2406bf">Commit bef67d3&lt;/a>. Für Gruppen-Implementierer hält das die CLI im Einklang mit der Richtung, in die sich Gruppen-Specs und -Clients bewegen.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/en/newsletters/2026-03-11-newsletter/">Anschließend an die Amethyst-Berichterstattung der letzten Woche&lt;/a>, &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der Android-Client mit einer der breitesten Protokolloberflächen in Nostr, baute nach dem NIP-47-Patch weiter an seiner Wallet- und Relay-Arbeit. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1853">PR #1853&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a> (Event Counting) COUNT-Abfragen über Relay-Management-Bildschirme hinzu, sodass Nutzer sehen können, wie viele Events jedes Relay tatsächlich für Home-Feed, Benachrichtigungen, DMs und Index-Daten vorhält. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1849">PR #1849&lt;/a> fügt verschlüsselte Datei-Uploads für &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) Chats hinzu, mit einem Retry-Pfad für unverschlüsselte Uploads, wenn ein Speicher-Host die verschlüsselte Version ablehnt.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1791">PR #1791&lt;/a> bringt auch vollständigen &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) Desktop-Bunker-Login mit einem Heartbeat-Indikator, was wichtig ist, weil Remote-Signing-Fehler von der Nutzerseite oft wie zufällige UI-Ausfälle wirken. Der Client zeigt, ob der Signer aktiv ist und wie kürzlich er geantwortet hat, und macht gleichzeitig deutlich, wenn die aktuelle Sitzung einen Bunker verwendet.&lt;/p>
&lt;h3 id="nostria">Nostria&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, der Multiplattform-Client mit einem Local-First-Stack, mergte &lt;a href="https://github.com/nostria-app/nostria/pull/561">PR #561&lt;/a> und fügt Web-of-Trust-Filterung für Feeds und Thread-Antworten hinzu. Das Feature nutzt die bestehenden Trust-Service-Rang-Daten und stellt sie sowohl als Feed-Filter als auch als Antwort-Filter zur Verfügung, wobei Autoren ausgeblendet werden, deren Rang den Schwellenwert nicht erreicht, während die Thread-Struktur erhalten bleibt, wenn vertrauenswürdige Nachfolger vorhanden sind. Das gibt Nutzern eine Zwischenschicht zwischen &amp;ldquo;alle anzeigen&amp;rdquo; und fest codierter listenbasierter Kuration.&lt;/p>
&lt;p>Dieselbe Woche brachte auch &lt;a href="https://github.com/nostria-app/nostria/pull/563">PR #563&lt;/a>, der Content-Filterung und Repost-Unterstützung zur Zusammenfassungsseite hinzufügt. Außerhalb der getrackten PR-Liste hat Nostria auch mehr seiner Power-User-Oberfläche gefüllt. Es unterstützt nun den neuesten Brainstorm Web-of-Trust-Dienst mit In-App-Anmeldung, zusammen mit Geld-Sende- und -Empfangsflows in DMs über NWC und BOLT-11-Invoices. Es fügt auch Nostr-native GIF-Behandlung über das Emoji-NIP und einen stärkeren RSS-Import-Pfad für Musiker hinzu, der bestehende Lightning-Splits aus Podcast-Feeds übernehmen kann. Nostria behandelt Ranking, Medien, Zahlungen und Publishing als eine verbundene App-Oberfläche.&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>, der iOS-Client gepflegt von nostur-com, eröffnete &lt;a href="https://github.com/nostur-com/nostur-ios-public/pull/53">PR #53&lt;/a>, um Outbox-Routing von einem festen Plan in eine bewertete Policy umzuwandeln. Der Patch fügt randomisiertes Relay-Scoring, &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Relay-Liveness-Filterung mit einem gecachten nostr.watch-Feed und Thompson-Sampling hinzu, sodass Relay-Erfolgs- und -Fehlerdaten zukünftige Auswahlen ändern. Das Design behält ein Sicherheitsventil bei, wenn zu viele Relays herausgefiltert würden, und bewahrt &lt;code>.onion&lt;/code>-Relays. Dies ist eines der klarsten aktuellen Beispiele dafür, wie ein Client Relay-Auswahl als adaptives System behandelt.&lt;/p>
&lt;h3 id="nostrability-outbox">Nostrability Outbox&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/">Anschließend an den früheren Outbox-Benchmark-Bericht&lt;/a>, &lt;a href="https://github.com/nostrability/outbox">Nostrability Outbox&lt;/a>, das Benchmark- und Analyseprojekt für &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Client-Routing, verbrachte die Woche damit, seine eigenen Behauptungen zu verschärfen. &lt;a href="https://github.com/nostrability/outbox/pull/35">PR #35&lt;/a> ersetzt aufgeblähte Thompson-Sampling-Ergebnisse durch einen vollständigen Re-Benchmark über 1.511 Durchläufe und empfiehlt die &lt;code>CG3&lt;/code>-Variante für NDK-artiges Routing. &lt;a href="https://github.com/nostrability/outbox/pull/43">PR #43&lt;/a> fügt Decay- und Anwendungsfall-Vergleiche hinzu, behebt einen &lt;code>0 follows&lt;/code>-Cache-Poisoning-Bug und führt dann das Telluride-Dataset nach dem Pinnen von Cache-TTLs erneut aus.&lt;/p>
&lt;p>Das ist keine Produktarbeit im üblichen Sinne, aber es ist wichtig für Client-Autoren, weil die Zahlen des Projekts nun schärfer und weniger schmeichelhaft an den Stellen sind, an denen sie zuvor zu viel beansprucht hatten. Das korrigierte Ergebnis ist trotzdem nützlich. Randomisierte Auswahl schlägt weiterhin rein deterministische Routing-Verfahren in den Fällen, die Outbox interessieren, Thompson-artiges Lernen kann die Abdeckung materiell verbessern, wenn Clients nützliche Relay-Historie persistieren, und &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Liveness-Filterung spart verschwendete Zeit bei toten Relays. Die Arbeit mündet auch in konkrete Implementierungsvorschläge, darunter &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> und &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>, das Rust-Backend, das von White Noise und anderem Marmot-Tooling verwendet wird, mergte zwei Boundary-Härtungs-Patches rund um Blossom-Medienbehandlung. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/637">PR #637&lt;/a> erzwingt HTTPS auf Blossom-URLs und fügt ein Upload-Timeout hinzu, während &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/642">PR #642&lt;/a> Blob-Downloads auf &lt;code>100 MiB&lt;/code> begrenzt, um übergroße Medienabrufe daran zu hindern, sich in einen Denial-of-Service-Pfad zu verwandeln. Für Private-Messaging-Software sind Medien-URLs eine der schärfsten Schnittstellen zwischen verschlüsselter Anwendungslogik und nicht vertrauenswürdiger Netzwerkinfrastruktur. Diese Woche hat das Team diese Kante verschärft.&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>, die Rust-Protokollbibliothek, mergte &lt;a href="https://github.com/rust-nostr/nostr/pull/1280">PR #1280&lt;/a>, der Convenience-Konstruktoren für &lt;code>LocalRelayBuilderNip42&lt;/code> hinzufügt. Die neuen Read- und Write-Helper geben eingebetteten Relay- und Test-Setups einen klareren Weg, &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Auth-Policy in Code umzusetzen. Dies ist ein kleiner Bibliotheks-Patch, aber er ist wichtig für Teams, die lokale oder App-gebündelte Relays bauen, die Auth eingeschaltet brauchen, ohne jedes Mal Boilerplate zu wiederholen.&lt;/p>
&lt;h3 id="pika">Pika&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/">Anschließend an die frühere Pika-Berichterstattung&lt;/a>, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, die Marmot-basierte Messaging-App, lieferte &lt;a href="https://github.com/sledtools/pika/releases/tag/pika/v1.1.1">pika/v1.1.1&lt;/a> und &lt;a href="https://github.com/sledtools/pika/releases/tag/pikachat-v1.1.1">pikachat-v1.1.1&lt;/a> mit einem Release-Zyklus, der auf Runtime-Konvergenz fokussiert ist. &lt;a href="https://github.com/sledtools/pika/pull/542">PR #542&lt;/a> führt eine gemeinsame Marmot-Runtime-Fassade für CLI und Sidecar ein, wobei der App-Host auf dieselbe Oberfläche migriert. &lt;a href="https://github.com/sledtools/pika/pull/556">PR #556&lt;/a> verschärft den OpenClaw-Agenten-Lebenszyklus und Provisioning-Zustand, während &lt;a href="https://github.com/sledtools/pika/pull/600">PR #600&lt;/a> Restore-from-Backup und strengere Recovery-Sicherheit für verwaltete Umgebungen hinzufügt.&lt;/p>
&lt;p>Die direkte nutzerfreundliche Oberfläche ist hier kleiner als im letzten Pika-Bericht, aber die architektonische Änderung ist bedeutsam. Gruppen-, Medien-, Call- und Session-Logik hinter eine gemeinsame Runtime zu ziehen, reduziert die Chance, dass App und Daemon auseinanderdriften, während der Marmot-Stack wächst.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-54/">NIP-54&lt;/a> (Wiki): Wechsel von Asciidoc zu Djot&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2242">PR #2242&lt;/a>): Wiki-Inhalte auf Kind &lt;code>30818&lt;/code> verwenden nun Djot als kanonisches Markup-Format. Der gemergte Text fügt explizites Wikilink-Verhalten, Merge-Request-Beispiele für Kind &lt;code>818&lt;/code>, Redirect-Beispiele für Kind &lt;code>30819&lt;/code> und Normalisierungsbeispiele für nicht-lateinische Schriften bei &lt;code>d&lt;/code>-Tags hinzu. Das gibt Implementierern ein saubereres Parse-Ziel als Asciidoc und entfernt einen weiteren Spec-Pfad, der auf einer Ruby-zentrierten Toolchain basierte.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> (Bech32-Encoded Entities): Eingabegrenze hinzufügen&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2264">PR #2264&lt;/a>): Die Spezifikation empfiehlt nun eine Begrenzung von Bech32-kodierten Entity-Strings auf 5000 Zeichen. Dies ist eine kleine Änderung mit echtem Parser-Wert, weil NIP-19-Strings mittlerweile in QR-Flows, Deep-Links, Share-Sheets und nutzereingefügter Eingabe über viele Clients erscheinen.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Nostr-Key-Datei für &lt;a href="https://nostrcompass.org/de/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>): Schlägt ein &lt;code>.nostrkey&lt;/code>-Dateiformat für passwort-verschlüsselten Schlüsselexport und -import vor. Bei einem Merge würde es Clients einen normaleren dateibasierten Backup-Pfad geben, als rohe &lt;code>ncryptsec&lt;/code>-Strings herumzukopieren.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Mitgliedschaftsstatus-Konsistenz für &lt;a href="https://nostrcompass.org/de/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>): Fügt einen Abschnitt hinzu, der klarstellt, dass Relays einen autoritativen Mitgliedschaftsstatus pro Pubkey führen sollten. Das würde die Gruppen-Client-Logik rund um Mitgliedschaftsänderungen und replizierte Historie vereinfachen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Löschungsanleitung für &lt;a href="https://nostrcompass.org/de/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>): Schlägt einen konkreten Pfad für das Bearbeiten und Löschen privater Nachrichten durch Gift-Wrapped-Delete-Events vor. Die Arbeit ist noch offen, aber Client-Autoren brauchen hier eine Antwort, wenn NIP-17 ältere DM-Flows vollständig ersetzen soll.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Share-Intent-URI für &lt;a href="https://nostrcompass.org/de/topics/nip-222/">NIP-222&lt;/a>&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2266">PR #2266&lt;/a>): Der Entwurf würde standardisieren, wie mobile und Desktop-Apps geteilte Inhalte an einen Nostr-Client übergeben. Das ist eine der rauesten Interop-Kanten in aktuellen App-zu-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/de/topics/nip-94/">NIP-94&lt;/a> definiert Kind &lt;code>1063&lt;/code> als erstklassiges Metadaten-Event für eine Datei. Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/94.md">Spezifikation&lt;/a> gibt dem Event einen eigenen menschenlesbaren &lt;code>content&lt;/code> plus maschinenlesbare Tags für Download-URL, MIME-Typ, Hashes, Dimensionen, Vorschauen, Fallbacks und Speicherdienst-Hinweise. Das ist wichtig, weil die Datei auf Relays als eigenes Objekt abfragbar wird. Ein Client muss keine Metadaten aus umgebendem Inhalt herausparsen, um zu verstehen, was die Datei ist.&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>Die Tags leisten mehr, als sie zunächst erscheinen. &lt;code>x&lt;/code> identifiziert die ausgelieferte Datei, während &lt;code>ox&lt;/code> die Originaldatei vor jeder serverseitigen Transformation identifiziert. Die Vorschau-Tags erlauben Clients, durchsuchbare Datei-Indizes zu erstellen, ohne das vollständige Asset herunterladen zu müssen, und &lt;code>summary&lt;/code> kann daneben einen kurzen Auszug tragen. &lt;code>fallback&lt;/code> gibt eine zweite Quelle, wenn die Haupt-URL ausfällt, und &lt;code>service&lt;/code> weist auf das Speicherprotokoll hinter der Datei hin, wie &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> oder einen anderen Host. NIP-94 sitzt daher unterhalb von Social Posting und oberhalb von Roh-Speicher. Es beschreibt die Datei, nicht die Konversation um die Datei.&lt;/p>
&lt;p>Deshalb ist der Notedeck-Updater dieser Woche interessant. &lt;a href="https://github.com/damus-io/notedeck/pull/1326">PR #1326&lt;/a> verwendet signierte kind-&lt;code>1063&lt;/code>-Events für Software-Release-Erkennung und verifiziert dann die heruntergeladene Binärdatei gegen den veröffentlichten SHA256. Dieselbe Event-Form kann ein Software-Artefakt oder einen Medien-Upload beschreiben. NIP-94 ist alt genug, um stabil zu sein, hat aber noch Raum zum Wachsen, weil mehr Projekte Metadaten-Events als Transport für Maschinen behandeln, nicht nur als Dekoration für Menschen.&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/de/topics/nip-54/">NIP-54&lt;/a> definiert Kind &lt;code>30818&lt;/code> als Wiki-Artikel-Event. Die &lt;a href="https://github.com/nostr-protocol/nips/blob/master/54.md">Spezifikation&lt;/a> behandelt den &lt;code>d&lt;/code>-Tag als das normalisierte Artikelthema und erlaubt vielen Autoren, Einträge für dasselbe Thema zu veröffentlichen. Der Artikelkörper lebt in &lt;code>content&lt;/code>, während Tags normalisierte Identität, Anzeigetitel, Zusammenfassungen und Referenzen zu früheren Versionen handhaben. Das bedeutet, NIP-54 ist nicht nur ein Inhaltsformat. Es ist auch ein Abruf- und Ranking-Problem, weil jeder Client immer noch entscheiden muss, welche Artikelversion er anzeigt.&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>Der Merge dieser Woche ändert das kanonische Markup von Asciidoc zu Djot in &lt;a href="https://github.com/nostr-protocol/nips/pull/2242">PR #2242&lt;/a>. Das ist wichtig für Implementierer, weil Djot eine straffere eigenständige Spezifikation und einfachere Parser-Geschichte über Sprachen hinweg hat. Der gemergte Text klärt auch, wie referenzbasierte Wikilinks aufgelöst werden, wie Merge-Requests Kind &lt;code>818&lt;/code> verwenden, wie Weiterleitungen Kind &lt;code>30819&lt;/code> verwenden und wie sich die &lt;code>d&lt;/code>-Tag-Normalisierung für nicht-lateinische Schriften verhalten sollte. Das sind die Teile, die zwei unabhängige Clients dazu bringen, sich einig zu sein, auf welchen Artikel ein Link zeigt.&lt;/p>
&lt;p>NIP-54 sitzt auch an einem ungewöhnlichen Ort im Protokoll. Ein Wiki-Client braucht Content-Rendering, aber er braucht auch Ranking-Policy. Reaktionen, Relay-Listen, Kontaktlisten und explizite Deference-Signale fließen alle in die Frage ein, welcher Artikel für ein bestimmtes Thema gewinnt. Der Djot-Wechsel löst dieses Ranking-Problem nicht, aber er entfernt eine der Parser-Mehrdeutigkeiten, die darunter lagen. Deshalb ist der Merge jetzt wichtig: Die Änderung handelt weniger von hübscherer Prosa-Formatierung und mehr davon, Multi-Client-Wiki-Verhalten konsistenter implementierbar zu machen.&lt;/p>
&lt;p>Wer etwas baut oder möchte, dass wir darüber berichten: Per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DM erreichbar auf Nostr unter &lt;code>npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923&lt;/code>.&lt;/p></content:encoded></item><item><title>Nostr Compass #13</title><link>https://nostrcompass.org/de/newsletters/2026-03-11-newsletter/</link><pubDate>Wed, 11 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-03-11-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> und &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a> bauen MCP-Oberflächen für agentengesteuerten Handel, während &lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> und &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> (Authentication of Clients to Relays) Relay-Auth und Protected-Event-Unterstützung quer durch App-, Signer- und Relay-Software ergänzen. &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> veröffentlicht zwei Releases rund um KI-Kennzeichnung, Moderationswarteschlangen, Perceptual Hashing und maschinenlesbare Server-Dokumentation. &lt;a href="https://github.com/satsdisco/samizdat">Samizdat&lt;/a>, bereits im Web live, veröffentlicht sein erstes Android-Alpha und ergänzt später &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signer-Unterstützung. &lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a> fügt Registrierung per &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption) hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert Namecoin-basierte &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> (Domain Verification) Auflösung, &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> veröffentlicht &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a>, und das NIPs-Repository merged &lt;a href="https://nostrcompass.org/de/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) sowie defensive Hinweise für &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring).&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> und &lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a> bauen MCP-Oberflächen für agentengesteuerten Handel, während &lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> und &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> (Authentication of Clients to Relays) Relay-Auth und Protected-Event-Unterstützung quer durch App-, Signer- und Relay-Software ergänzen. &lt;a href="https://github.com/v0l/route96">Route96&lt;/a> veröffentlicht zwei Releases rund um KI-Kennzeichnung, Moderationswarteschlangen, Perceptual Hashing und maschinenlesbare Server-Dokumentation. &lt;a href="https://github.com/satsdisco/samizdat">Samizdat&lt;/a>, bereits im Web live, veröffentlicht sein erstes Android-Alpha und ergänzt später &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signer-Unterstützung. &lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a> fügt Registrierung per &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> (Private Key Encryption) hinzu, &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> liefert Namecoin-basierte &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> (Domain Verification) Auflösung, &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> veröffentlicht &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a>, und das NIPs-Repository merged &lt;a href="https://nostrcompass.org/de/topics/nip-91/">NIP-91&lt;/a> (AND Operator for Filters) sowie defensive Hinweise für &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring).&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="shopstr-und-milk-market-öffnen-mcp-handelsoberflächen">Shopstr und Milk Market öffnen MCP-Handelsoberflächen&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a>, der Peer-to-Peer-Marktplatz mit Lightning- und Cashu-Zahlungen, mergte &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>) und fügte damit einen MCP-Server mit API-Key-Authentifizierung für agentenbasiertes Account-Management hinzu. Die Änderung ergänzt &lt;code>.well-known/agent.json&lt;/code> für Agent-Erkennung, MCP-Onboarding- und Status-Endpunkte, Routen für Bestellerstellung und Zahlungsprüfung, dedizierte Kauf- und Lesetools sowie einen Einstellungsbildschirm für API-Keys. &lt;a href="https://github.com/shopstr-eng/shopstr/pull/236">PR #236&lt;/a> erweitert das um Seller-seitige Aktionen für Nachrichten, Adressen, Bestell-Updates und Produktspezifikationsauswahl. Ein Sicherheitsfix in &lt;a href="https://github.com/shopstr-eng/shopstr/pull/235">PR #235&lt;/a> ersetzt Single-Iteration-SHA-256 beim Hashing der API-Keys durch gesalzenes PBKDF2 mit 100.000 Iterationen.&lt;/p>
&lt;p>Agenten können &lt;a href="https://nostrcompass.org/de/topics/nip-99/">NIP-99&lt;/a> (Classified Listings) Listings lesen und sich mit den bestehenden Zahlungsflüssen aus &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect) und &lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a> (Cashu Wallet) bis zum Checkout bewegen, ohne Seiten zu scrapen oder Client-Verhalten rückwärts zu analysieren.&lt;/p>
&lt;p>&lt;a href="https://github.com/shopstr-eng/milk-market">Milk Market&lt;/a>, ein Lebensmittel-Marktplatz auf Nostr unter &lt;a href="https://milk.market">milk.market&lt;/a>, übernahm dieselbe MCP- und 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> fügt Abo-Bestellungen, Änderungen der Lieferadresse nach dem Kauf sowie Multi-Merchant- und Multi-Währungs-Checkout für Stripe und andere Fiat-Zahlungswege hinzu. Ein nachfolgender &lt;a href="https://github.com/shopstr-eng/milk-market/pull/11">PR #11&lt;/a> behebt einen Initialisierungsfehler der Datenbank beim Start, bei dem auf frischen Installationen die Tabelle für fehlgeschlagene Relay-Publishes nicht angelegt wurde und dadurch beim ersten Laden 500-Fehler entstanden. Die agentenseitige Schnittstelle funktioniert mit Bitcoin-nativem Checkout bei Shopstr oder gemischtem Fiat- und Bitcoin-Checkout bei Milk Market.&lt;/p>
&lt;h3 id="nip-42-relay-auth-in-bunker-signer-und-relay">NIP-42-Relay-Auth in Bunker, Signer und Relay&lt;/h3>
&lt;p>&lt;a href="https://github.com/flox1an/oauth-bunker">OAuth Bunker&lt;/a>, ein &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) Bunker, der OAuth-Provider mit Nostr-Signing verbindet, ergänzte Login per &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> (Browser Extension Signer), automatische Auswahl einer einzelnen Identität und Aufräumlogik für gelöschte Identitäten (&lt;a href="https://github.com/flox1an/oauth-bunker/commit/f0c7683cb2374fd9a3ebd1b186055da8abd2c2ff">Commit f0c7683&lt;/a>). Wenn nur eine Identität existiert, wählt der Bunker sie jetzt automatisch aus, statt nachzufragen. Wird eine Identität gelöscht, entfernt der Bunker auch ihre verwaisten Zuordnungen und Verbindungen. &lt;a href="https://github.com/flox1an/oauth-bunker/commit/6b8796c6c59c7d48dc1ede92d6de6bf54feb56cc">Commit 6b8796c&lt;/a> ergänzt außerdem einen Konfigurationspfad &lt;code>ALWAYS_ALLOWED_KINDS&lt;/code> für zugewiesene Nutzer, standardmäßig für kind &lt;code>30078&lt;/code> app-spezifische Daten, damit delegierte Identitäten in app-spezifischen Speicher schreiben können, ohne pro Event eine Freigabe zu brauchen.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a>, der wichtigste &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Signer für Android, veröffentlichte &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.3-pre4">v4.1.3-pre4&lt;/a> mit vier Pre-Releases innerhalb einer Woche. &lt;a href="https://github.com/greenart7c3/Amber/pull/317">PR #317&lt;/a> ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Relay-Authentifizierung für kind-&lt;code>22242&lt;/code>-Anfragen. Die Implementierung fügt eine neue Datenbankspalte für relay-spezifische Berechtigungen mit einem eindeutigen Index auf &lt;code>(pkKey, type, kind, relay)&lt;/code> hinzu. Nutzer sehen einen dedizierten Auth-Bildschirm, auf dem sie Berechtigungen pro Relay oder für alle Relays per Wildcard-&lt;code>*&lt;/code> gewähren oder verweigern und diese Entscheidung dauerhaft speichern können. Wildcard-Berechtigungen löschen alle relay-spezifischen Einträge für einen Kind. &lt;a href="https://github.com/greenart7c3/Amber/pull/318">PR #318&lt;/a> räumt danach Multi-Event-Anfragebildschirme auf und zeigt Details inline mit Composable Cards statt per Navigation auf einen separaten Screen. Das Release aktualisiert außerdem die Standard-Profil-Relays, ergänzt eine Bottom-Sheet-Darstellung für Anfragen und behebt einen Absturz auf MediaTek-Geräten, indem StrongBox-Keystore deaktiviert wird.&lt;/p>
&lt;p>Auf Relay-Seite implementiert &lt;a href="https://github.com/hoytech/strfry/pull/156">strfry PR #156&lt;/a> NIP-42-Auth für &lt;a href="https://nostrcompass.org/de/topics/nip-70/">NIP-70&lt;/a> (Protected Events), und &lt;a href="https://github.com/hoytech/strfry/pull/176">PR #176&lt;/a> lehnt Reposts ab, die geschützte Events einbetten.&lt;/p>
&lt;h3 id="notedeck-ergänzt-nip-11-relay-limits-und-agentium-funktionen">Notedeck ergänzt NIP-11-Relay-Limits und Agentium-Funktionen&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der native Desktop-Client des Damus-Teams, mergte diese Woche 14 PRs. &lt;a href="https://github.com/damus-io/notedeck/pull/1316">PR #1316&lt;/a> ergänzt das Abrufen von &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document) Relay-Limits, sodass alle Outbox-Relays nun &lt;code>max_message_length&lt;/code> und &lt;code>max_subscriptions&lt;/code> aus dem Relay-Info-Dokument berücksichtigen. Die Implementierung umfasst Hintergrundjob-Verarbeitung, exponentielles Backoff mit Jitter für Verbindungswiederholungen und benutzerdefinierte HTTP-Accept-Header. &lt;a href="https://github.com/damus-io/notedeck/pull/1312">PR #1312&lt;/a> behebt einen Fehler, bei dem DMs nach dem Account-Wechsel gelegentlich nicht geladen wurden, und &lt;a href="https://github.com/damus-io/notedeck/pull/1333">PR #1333&lt;/a> ergänzt einen Backoff-Mechanismus für die Multicast-Relay-Kommunikation, um Broadcast-Spam bei Fehlern zu vermeiden.&lt;/p>
&lt;p>Das Agentium-Subsystem, Notedecks eingebaute UI für Coding-Agenten, intern &amp;ldquo;Dave&amp;rdquo; genannt, erhielt Einfügen von Bildern aus der Zwischenablage, benannte Run-Konfigurationen, die über kind-&lt;code>31991&lt;/code>-Events geräteübergreifend synchronisieren (&lt;a href="https://nostrcompass.org/de/topics/nip-33/">NIP-33&lt;/a> (Parameterized Replaceable Events)), einen Git-Worktree-Ersteller und einen Model-Picker zur Auswahl von Backends pro Sitzung (&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> integriert &lt;code>egui_kittest&lt;/code> für headless UI-Tests, und &lt;a href="https://github.com/damus-io/notedeck/pull/1339">PR #1339&lt;/a> ergänzt eine Dashboard-Karte, die neue Kontaktlistenerstellungen nach Client verfolgt. Ein offener &lt;a href="https://github.com/damus-io/notedeck/pull/1314">PR #1314&lt;/a> portiert Amethysts Namecoin-NIP-05-Auflösung nach Notedeck, inklusive ElectrumX-Lookups, SOCKS5-Tor-Routing und Suchleisten-Integration.&lt;/p>
&lt;h3 id="divine-veröffentlicht-v106-mit-e2e-testinfrastruktur-und-nip-49-import">diVine veröffentlicht v1.0.6 mit E2E-Testinfrastruktur und NIP-49-Import&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, der Shortform-Looping-Video-Client zur Wiederherstellung von Vine-Archiven unter &lt;a href="https://divine.video">divine.video&lt;/a>, veröffentlichte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.6">v1.0.6&lt;/a> mit 127 gemergten PRs. Das Release ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> Account-Import, externe &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> Unterstützung, Multi-Account-Handhabung, macOS- und experimentelle Linux-Builds sowie eine neu gestaltete Entwurfs- und Clip-Bibliothek auf Basis lokaler Speicherung.&lt;/p>
&lt;p>Auf Engineering-Seite ergänzt &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1928">PR #1928&lt;/a> eine vollständige E2E-Integrationstest-Infrastruktur mit Patrol für native UI-Automatisierung gegen einen Docker-Backend-Stack aus Relay, API, Blossom, Postgres, Redis und ClickHouse. Fünf Tests für Auth-Journeys decken Registrierung, Verifizierung, Passwort-Reset, Session-Ablauf und Token-Refresh ab. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2105">PR #2105&lt;/a> stellt das Laden von Videos von HLS-first auf direktes MP4 mit automatischem HLS-Fallback um und verkürzt die Ladezeit damit von 30-60 Sekunden auf nahezu sofort. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2076">PR #2076&lt;/a> cached die Home-Feed-API-Antwort in SharedPreferences, damit sie bei Cold Starts sofort angezeigt werden kann. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2104">PR #2104&lt;/a> erzwingt, dass &lt;code>ai-generated&lt;/code>-Inhaltskennzeichnungen in Feeds ausgeblendet werden, und &lt;a href="https://github.com/divinevideo/divine-mobile/pull/2100">PR #2100&lt;/a> ergänzt eine Sicherheitseinstellung, die nur von diVine gehostete Videos anzeigt. Die Migration des Profil-Caches von Hive zu Drift läuft weiter über &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> und &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1903">PR #1903&lt;/a> und ersetzt rund 1.074 Zeilen Hive-Code durch Drift-DAOs.&lt;/p>
&lt;h3 id="vector-v032-bringt-nip-77-negentropy-sync-und-mls-verbesserungen">Vector v0.3.2 bringt NIP-77-Negentropy-Sync und MLS-Verbesserungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, ein datenschutzorientierter Desktop-Messenger mit MLS-Gruppenverschlüsselung sowie &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads), veröffentlichte &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.2">v0.3.2&lt;/a>. Die wichtigste Änderung ist NIP-77-Negentropy für die MLS-Gruppensynchronisierung (&lt;a href="https://github.com/VectorPrivacy/Vector/commit/b06adf4af2673fb5ac5add01356999ea70628eac">Commit b06adf4&lt;/a>), das verpasste Nachrichten per Parallel Boot deutlich schneller nachholt. Das Release ergänzt außerdem eine neu aufgebaute Audio-Engine mit voller Linux-Unterstützung, Bild-Spoiler mit weichgezeichneten Vorschauen, anklickbare Hyperlinks mit Rich-Link-Previews, &lt;code>@mention&lt;/code>-Pings mit &lt;code>@everyone&lt;/code> für Gruppenadmins, Emoji-Shortcode-Autocomplete, Gruppenstummschaltung, Tap-to-React auf bestehende Reaktionen und abbrechbare Datei-Uploads. Vector filtert explizit NIP-17-Gruppenchat-Events heraus (&lt;a href="https://github.com/VectorPrivacy/Vector/commit/2179a51c0449b3a70663a1573195b7945adf58ba">Commit 2179a51&lt;/a>) und verwendet MLS ausschließlich für Gruppenverschlüsselung.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="route96-v050-und-v051">Route96 v0.5.0 und v0.5.1&lt;/h3>
&lt;p>&lt;a href="https://github.com/v0l/route96">Route96&lt;/a>, ein Medienserver mit Unterstützung für Blossom und &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> (HTTP File Storage), veröffentlichte &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.0">v0.5.0&lt;/a> und &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.1">v0.5.1&lt;/a>. v0.5.0 ergänzt automatisierte KI-Kennzeichnung, rückwirkendes Backfill für unmarkierte Uploads, Moderationswarteschlangen für markierte Dateien, EXIF-basierte Datenschutzablehnung und den Umgang mit gebannten Hashes.&lt;/p>
&lt;p>v0.5.1 ergänzt Perceptual Image Hashes, Locality-Sensitive Hashing zur Suche nach ähnlichen Bildern, Batch-Admin-Endpunkte und ein veröffentlichtes &lt;a href="https://github.com/v0l/route96/releases/tag/v0.5.1">&lt;code>SKILL.md&lt;/code>&lt;/a>, das die Blossom- und NIP-96-API-Oberfläche des Servers für Agent-Tooling beschreibt. &lt;a href="https://github.com/v0l/route96/pull/58">PR #58&lt;/a> verschiebt Hintergrund-Worker auf vollständig asynchrone Tokio-Tasks, und &lt;a href="https://github.com/v0l/route96/commit/97b00a39e27b07053c2ad335dbf475bacba57bf8">Commit 97b00a3&lt;/a> ergänzt Backoff, um Hot Loops zu vermeiden.&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>, ein Longform-Reader und Publisher unter &lt;a href="https://samizdat.press">samizdat.press&lt;/a>, veröffentlichte mit &lt;a href="https://github.com/satsdisco/samizdat/releases/tag/v1.0.0-alpha">v1.0.0-alpha&lt;/a> seinen ersten Android-Build. Die App startet mit einer kuratierten Press-Seite für lange Nostr-Artikel und einer unteren Tab-Navigation für Press, Feed, Gespeichert und Schreiben. Der Android-Build ergänzt native Schlüsselspeicherung per Android-Keystore-Verschlüsselung mit biometrischer Entsperrung, verarbeitet &lt;code>nostr:&lt;/code>-URIs und &lt;code>samizdat.press&lt;/code>-Deep-Links und unterstützt die Übergabe an Signer per Android-App-Chooser, Amber, Primal und andere, statt einen direkten Schlüsselimport zu verlangen. Pull-to-Refresh, Safe-Area-Handhabung über verschiedene Bildschirmgrößen hinweg sowie native Share-, Clipboard-, Haptik- und Splash-Screen-Integrationen sind nun Teil der Android-Hülle statt des Web-Wrappers.&lt;/p>
&lt;p>&lt;a href="https://github.com/satsdisco/samizdat/commit/d17308f3c2e6020e14074fbb1c03a8f60f29a3e6">Commit d17308f&lt;/a> ergänzt intentbasiertes &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Signing für Amber- und Primal-Flows, und &lt;a href="https://github.com/satsdisco/samizdat/commit/e29dab84f7b58edd621f7b86ed7ca6458f965614">Commit e29dab8&lt;/a> ersetzt einen JavaScript-Bridge-Workaround durch ein natives Capacitor-Plugin mit &lt;code>startActivityForResult&lt;/code>. Die App setzt Android 7.0+ (API 24) voraus, wird in diesem Alpha als Debug-APK ausgeliefert und hat noch keine Push-Benachrichtigungen. Das Veröffentlichen hängt derzeit von einer Signer-App ab, während &lt;code>nsec&lt;/code>-Login lokales Lesen und Account-Zugriff abdeckt.&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>, eine dezentrale Kalender-App mit &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) für private Event-Freigabe unter &lt;a href="https://calendar.formstr.app">calendar.formstr.app&lt;/a>, veröffentlichte &lt;a href="https://github.com/formstr-hq/nostr-calendar/releases/tag/v0.2.0">v0.2.0&lt;/a> mit &lt;a href="https://github.com/formstr-hq/nostr-calendar/pull/38">PR #38&lt;/a>. Das Release erweitert die Behandlung wiederkehrender Events für &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> (Calendar Events) und geht damit über das Einzelevent-Fundament von v0.1.0 hinaus. Die zugrunde liegenden Änderungen betreffen außerdem lokale Eventspeicherung, Signer-Handhabung und Android-Benachrichtigungslogik. Es ist die zweite aktive Anwendung der Formstr-Organisation nach der Repository-Migration im vergangenen Monat.&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>, die Peer-to-Peer-Bitcoin-Börse auf Nostr, veröffentlichte &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.4">v0.16.4&lt;/a>. Die Wiederherstellung von Dispute-Sessions (&lt;a href="https://github.com/MostroP2P/mostro/pull/599">PR #599&lt;/a>) und die Auto-Close-Fixes (&lt;a href="https://github.com/MostroP2P/mostro/pull/606">PR #606&lt;/a>), die &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/">wir vergangene Woche behandelt haben&lt;/a>, sind enthalten. Neu in diesem Release: &lt;a href="https://github.com/MostroP2P/mostro/pull/625">PR #625&lt;/a> ergänzt ein &lt;code>days&lt;/code>-Feld für User-Rating-Events vom Kind &lt;code>38384&lt;/code>, &lt;a href="https://github.com/MostroP2P/mostro/pull/612">PR #612&lt;/a> fügt ein Ablaufdatum für diese Rating-Events hinzu, und &lt;a href="https://github.com/MostroP2P/mostro/pull/614">PR #614&lt;/a> stellt Order-Events auf konfigurierte Ablaufwerte statt auf ein hart kodiertes 24-Stunden-Fenster um. &lt;a href="https://github.com/MostroP2P/mostro/pull/622">PR #622&lt;/a> ergänzt eine Idempotenzprüfung, um doppelte Auszahlungen von Development Fees zu verhindern.&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>, der Flutter-Client für die Mostro-P2P-Börse, veröffentlichte &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.1">v1.2.1&lt;/a> mit 11 neuen Features und 11 Bugfixes. Das Release ergänzt die Darstellung verschlüsselter Multimedia-Inhalte im Dispute-Chat (&lt;a href="https://github.com/MostroP2P/mobile/pull/514">PR #514&lt;/a>), automatisches Schließen der Dispute-UI, sobald Orders einen Endzustand erreichen (&lt;a href="https://github.com/MostroP2P/mobile/pull/503">PR #503&lt;/a>), QR-Scanning für NWC-Wallet-Import (&lt;a href="https://github.com/MostroP2P/mobile/commit/12eaee4d154fa31b07f82b96819de520e825aee6">Commit 12eaee4&lt;/a>), französische Übersetzungen und FCM-Push-Benachrichtigungen. &lt;a href="https://github.com/MostroP2P/mobile/pull/496">PR #496&lt;/a> behebt einen Padding-Bug bei Schnorr-Signaturen, indem die bip340-Abhängigkeit auf v0.2.0 festgelegt wird.&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>, der Telegram-artige Messaging-Client mit Cashu-Unterstützung, veröffentlichte &lt;a href="https://github.com/0xchat-app/0xchat-app-main/releases/tag/v1.5.4-release">v1.5.4&lt;/a>, fokussiert auf Linux-Desktop-Fixes: AppImage-Dock-Icons, Emoji-Rendering, Freezes im Kontextmenü und Hänger bei Reply- und Copy-UI. Das Release behebt außerdem Probleme beim Bild-Upload und der npub.cash-Integration. &lt;a href="https://github.com/0xchat-app/0xchat-app-main/pull/49">PR #49&lt;/a> eliminiert unnötige UI-Rebuilds, indem ein 3-Sekunden-Polling-Timer entfernt wird, der glasartige Repaints auslöste, ohne etwas zu tun, und entblockt die Login-Initialisierung, indem der Event-Cache parallel geladen wird, statt Relay-, Kontakt- und Channel-Start zu blockieren.&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>, ein FROST-Threshold-Signer für Android mit Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>, veröffentlichte &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v0.6.0">v0.6.0&lt;/a> und &lt;a href="https://github.com/privkeyio/keep-android/releases/tag/v0.6.1">v0.6.1&lt;/a>. v0.6.0 ergänzt Koordination und UI für Wallet-Deskriptoren, einen Backup-/Restore-Flow mit biometrischer Authentifizierung (&lt;a href="https://github.com/privkeyio/keep-android/pull/184">PR #184&lt;/a>), &lt;code>nsec&lt;/code>-Recovery aus Threshold-Shares (&lt;a href="https://github.com/privkeyio/keep-android/pull/187">PR #187&lt;/a>), plattformübergreifende Erzeugung animierter QR-Rahmen via Rust UniFFI (&lt;a href="https://github.com/privkeyio/keep-android/pull/188">PR #188&lt;/a>) sowie einen Signing-Audit-Trail mit Chain-Verifikation (&lt;a href="https://github.com/privkeyio/keep-android/pull/189">PR #189&lt;/a>). v0.6.1 stellt die Lizenz von AGPL-3.0 auf MIT um (&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>, das statische Gateway zum Anzeigen von Nostr-Inhalten unter &lt;a href="https://njump.me">njump.me&lt;/a>, veröffentlichte &lt;a href="https://github.com/fiatjaf/njump/releases/tag/v0.3.0">v0.3.0&lt;/a> mit einer Breaking Change beim Parsen von &lt;code>note1&lt;/code>-Codes und einem Update der zugrunde liegenden nostr-Bibliothek.&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>, eine dezentrale App zur Meldung von Straßenereignissen auf Nostr, veröffentlichte ihre erste Demo-Version &lt;a href="https://github.com/jooray/roadstr/releases/tag/v0.1.1">v0.1.1&lt;/a>. Die App zeigt Straßenereignisse auf einer Karte an und verwendet dazu Vector Tiles von 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>, eine E-Bill-Anwendung mit Nostr-Transportebene und eigenem Relay unter &lt;a href="https://www.bit.cr/">bit.cr&lt;/a>, veröffentlichte &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/releases/tag/v0.5.3">v0.5.3&lt;/a>. &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/pull/846">PR #846&lt;/a> ergänzt &lt;code>payment_actions&lt;/code>- und &lt;code>bill_state&lt;/code>-Felder in der API für Zahlungs- und Annahmestatus, und &lt;a href="https://github.com/BitcreditProtocol/Bitcredit-Core/pull/849">PR #849&lt;/a> behebt die Behandlung von Signing-Adressen für anonyme Signer.&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>, eine Chat-Anwendung auf den .NET-MLS- und C#-Bibliotheken des Marmot-Protokolls, veröffentlichte &lt;a href="https://github.com/DavidGershony/openChat/releases/tag/v0.1.0-alpha.3">v0.1.0-alpha.3&lt;/a>. Das Release ergänzt externe Signer-Unterstützung für Amber- und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Flows (&lt;a href="https://github.com/DavidGershony/openChat/commit/e568d979fe15eead19172f2eb6f8cf26ca845247">Commit e568d97&lt;/a>), verlagert die Persistenz des MLS-Zustands in den MLS-Service, um Datenverlustfenster bei Abstürzen zu beseitigen (&lt;a href="https://github.com/DavidGershony/openChat/commit/4720bc8625136a0d5b0e23322bc0c50cd80577e8">Commit 4720bc8&lt;/a>), und veröffentlicht Windows-, Linux- und Android-Builds über eine neue CI-Pipeline.&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>, ein Kotlin-Multiplatform-Trading-Copilot für Nostr, veröffentlichte &lt;a href="https://github.com/turizspace/OpenSignal/releases/tag/v1.0.0">v1.0.0&lt;/a>. Das Release bündelt geteilte KMP-Module für Domain-Logik, Chart-Rendering, Nostr-Authentifizierung und -Publishing, Blossom-&lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> Upload-Unterstützung sowie ONNX-basierte KI-Inferenz-Hooks über Desktop- und Android-Shells hinweg. Die veröffentlichte Architektur umfasst außerdem einen FastAPI-KI-Service zur Analyse von Chart-Screenshots, Model-Training-Pipelines und eine Risk-Engine, die strukturierte Trade-Pläne mit Sizing und Warnungen erzeugt. Der Login unterstützt entweder rohe &lt;code>nsec&lt;/code>-Keys oder externe Signer, und der Output-Fluss endet beim Publizieren von Nostr-Events statt bei rein lokaler Analyse.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="formstr">Formstr&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a>, die Google-Forms-Alternative auf Nostr, mergte &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>) und ergänzt damit einen Registrierungsflow mit &lt;a href="https://nostrcompass.org/de/topics/nip-49/">NIP-49&lt;/a> verschlüsselten privaten Schlüsseln. Vor dieser Änderung brauchten Nutzer entweder eine &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> Browser-Erweiterung oder ein eingefügtes rohes &lt;code>nsec&lt;/code>, um Formstr zu nutzen. Der neue Flow erzeugt das Schlüsselpaar clientseitig, verschlüsselt den privaten Schlüssel mit einem vom Nutzer gewählten Passwort nach NIP-49 mit scrypt + XChaCha20-Poly1305 und speichert die daraus entstehende &lt;code>ncryptsec&lt;/code>-Zeichenkette. Nutzer können sich dann später mit ihrem Passwort wieder anmelden, ohne eine Signer-Erweiterung zu installieren. Das Schlüsselmanagement bleibt während des gesamten Prozesses clientseitig.&lt;/p>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der funktionsreiche Android-Client, mergte vier PRs, die die Namecoin-gestützte &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> Auflösung ausliefern, die &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/">letzte Woche noch offen war&lt;/a>. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1734">PR #1734&lt;/a> ergänzt zensurresistente NIP-05-Verifizierung über ElectrumX für &lt;code>.bit&lt;/code>-, &lt;code>d/&lt;/code>- und &lt;code>id/&lt;/code>-Identifikatoren. Wenn Amethyst eines dieser Suffixe in einem NIP-05-Feld erkennt, fragt es einen ElectrumX-NMC-Server nach der Transaktionshistorie des Namens ab, parst das &lt;code>NAME_UPDATE&lt;/code>-Script aus dem neuesten Output, um den Nostr-Pubkey zu extrahieren, und lehnt Namen ab, die älter als 36.000 Blöcke sind, das Ablauf-Fenster von Namecoin. ElectrumX-Verbindungen laufen über SOCKS5, wenn Tor aktiviert ist, und die Serverauswahl wechselt dynamisch zwischen Clearnet- und &lt;code>.onion&lt;/code>-Endpunkten. Ein LRU-Cache mit einer Stunde TTL verhindert wiederholte Blockchain-Abfragen.&lt;/p>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1771">PR #1771&lt;/a> behebt Race Conditions und verbessert die Korrektheit des Resolvers in diesem Flow. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1785">PR #1785&lt;/a> erlaubt neuen Nutzern, beim Signup eine Follow-Liste entweder aus gewöhnlichen NIP-05-Identifikatoren oder aus Namecoin-basierten zu importieren. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1786">PR #1786&lt;/a> ergänzt benutzerdefinierte ElectrumX-Servereinstellungen, sodass Nutzer auswählen können, welcher Server ihre Lookups bearbeitet.&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>, eine Bibliothek mit Hilfsmethoden zum Speichern von Nostr-Events in IndexedDB, mergte &lt;a href="https://github.com/hzrd149/nostr-idb/pull/6">PR #6&lt;/a> und ergänzt damit Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-91/">NIP-91&lt;/a> AND-Tag-Filter. Die Änderung fügt der clientseitigen Filterlogik Schnittmengen-Semantik hinzu, sodass IndexedDB-Abfragen alle aufgelisteten Tag-Werte statt nur einen davon verlangen können. &lt;a href="https://github.com/hzrd149/nostr-idb/pull/8">PR #8&lt;/a> aktualisiert die Bibliothek auf die neueste NIP-DB-Schnittstelle, und ein nachfolgender &lt;a href="https://github.com/hzrd149/nostr-idb/commit/b49b3d32c575ff8214dc3fb07675109c2a971972">Commit b49b3d3&lt;/a> behebt einen Subscribe-Deadlock und entfernt nostr-tools als Produktionsabhängigkeit.&lt;/p>
&lt;h3 id="pensieve">Pensieve&lt;/h3>
&lt;p>&lt;a href="https://github.com/andotherstuff/pensieve">Pensieve&lt;/a>, ein archive-first Nostr-Indexer mit ClickHouse-Analytics, mergte &lt;a href="https://github.com/andotherstuff/pensieve/pull/8">PR #8&lt;/a> und ergänzt damit Durchsetzung von Cache-TTL pro Eintrag sowie Miss-Coalescing pro Schlüssel, um CPU-Spitzen in der API zu reduzieren. Die teuersten Time-Series-Endpunkte, Engagement-Statistiken, stündliche Aktivität und Aktivität pro Kind, verwenden nun serverseitige TTLs von zehn Minuten, statt synchronisierte Neuberechnungsstürme auszulösen.&lt;/p>
&lt;h3 id="blossom">Blossom&lt;/h3>
&lt;p>&lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a>, das dezentrale Medienhosting-Protokoll und der zugehörige Server-Stack, mergte zwei BUD-11-Autorisierungsupdates. &lt;a href="https://github.com/hzrd149/blossom/pull/91">PR #91&lt;/a> verschiebt optionale Autorisierung in einen eigenen BUD und präzisiert die Rolle der Tags &lt;code>x&lt;/code> und &lt;code>server&lt;/code>. &lt;a href="https://github.com/hzrd149/blossom/pull/93">PR #93&lt;/a> räumt endpoint-spezifisches Auth-Verhalten auf und formalisiert den Header &lt;code>X-SHA-256&lt;/code> zur Upload-Verifikation. Die beiden PRs konsolidieren die Auth-Logik in BUD-11 und entfernen Unklarheiten beim Hashing von Requests für Upload-, Delete- und Medienverwaltungsflüsse.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen im &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>): Fügt Schnittmengen-Semantik für Tag-Filter hinzu, sodass Relays Abfragen beantworten können, die alle aufgelisteten Tag-Werte statt nur eines davon verlangen. Das reduziert clientseitiges Post-Filtering und Bandbreite bei taglastigen Abfragen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay Discovery and Liveness Monitoring): Defensive Measures&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2240">PR #2240&lt;/a>): Nach der &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/">Outbox-Benchmark-Arbeit aus der vergangenen Woche&lt;/a> ergänzt die Spezifikation nun Warnhinweise für schwierige Pfade bei Relay-Monitoring-Daten. Clients dürfen kind-&lt;code>30166&lt;/code>-Monitoring-Events nicht voraussetzen, um zu funktionieren. Ein Monitor kann falsch, veraltet oder böswillig sein. Clients sollen Quellen gegeneinander prüfen und nicht auf Grundlage eines einzelnen Feeds große Teile des Relay-Graphs eines Nutzers abschneiden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> (External Identities in Profiles): kind 10011 Registry Cleanup&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2256">PR #2256&lt;/a>): Ergänzt die Referenz auf kind &lt;code>10011&lt;/code> direkt in der Spezifikation und richtet sie damit an Amethysts Implementierung aus, die &lt;a href="https://nostrcompass.org/en/newsletters/2026-03-04-newsletter/">wir vergangene Woche behandelt haben&lt;/a>.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-70/">NIP-70&lt;/a> (Protected Events): Reject reposts that embed protected events&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2251">PR #2251&lt;/a>): Wenn ein Relay NIP-70 für das Original-Event durchsetzt, aber Reposts mit demselben Inhalt akzeptiert, hat das &lt;code>-&lt;/code>-Tag praktisch keine Wirkung. Dieser PR ergänzt daher die Regel, dass Relays auch Reposts der Kinds 6 und 16 von geschützten Events ablehnen müssen. &lt;a href="https://github.com/hoytech/strfry/pull/176">strfry PR #176&lt;/a> implementiert das bereits.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71&lt;/a> (Video Events): Multiple Audio Tracks&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2255">PR #2255&lt;/a>): Ergänzt Audio-&lt;code>imeta&lt;/code>-Tags für alternative Tonspuren, Sprachvarianten und reine Audio-Streams. Ein Client könnte damit dieselbe Videodatei behalten und nur die Audiosprache wechseln oder Audio als separate Spur für podcastartige Inhalte ausliefern.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (Relay Information Document) und &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Relay Attributes&lt;/strong> (&lt;a href="https://github.com/nostr-protocol/nips/pull/2257">PR #2257&lt;/a>): Ergänzt ein strukturiertes &lt;code>attributes&lt;/code>-Feld in Relay-Informationsdokumenten und gibt Clients sowie Discovery-Tools damit maschinenlesbare Metadaten zusätzlich zur bisherigen Freitextbeschreibung.&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/de/topics/nip-49/">NIP-49&lt;/a> definiert, wie ein Client einen privaten Schlüssel mit einem Passwort verschlüsselt und das Ergebnis als &lt;code>ncryptsec&lt;/code>-bech32-Zeichenkette kodiert. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-11-newsletter/#formstr">Formstr&lt;/a> verwendet NIP-49 in seinem neuen Registrierungsflow.&lt;/p>
&lt;p>Das Format ist nicht an einen speziellen Event-Kind gebunden. Ein Client startet mit dem rohen 32-Byte-secp256k1-Privatschlüssel, leitet per scrypt aus dem Passwort einen symmetrischen Schlüssel ab, verschlüsselt den Schlüssel mit XChaCha20-Poly1305 und verpackt das Ergebnis anschließend in eine bech32-&lt;code>ncryptsec&lt;/code>-Zeichenkette. Ein Ein-Byte-Flag speichert, ob der Schlüssel vor der Verschlüsselung irgendwann bekanntermaßen unsicher behandelt wurde.&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>Das obige JSON-Event ist ein Anwendungsbeispiel, keine Anforderung von NIP-49. Der NIP standardisiert das Format des verschlüsselten Schlüssels. Ein Client kann das &lt;code>ncryptsec&lt;/code> lokal speichern, über app-spezifischen Speicher synchronisieren oder als Backup-String exportieren. Passwörter werden vor der Schlüsselableitung nach Unicode NFKC normalisiert, damit dasselbe Passwort über Clients und Plattformen hinweg konsistent entschlüsselt wird.&lt;/p>
&lt;p>Für das Ein-Byte-Flag zur Schlüsselsicherheit sind drei Werte definiert: &lt;code>0x00&lt;/code> bedeutet, dass die Behandlungshistorie des Schlüssels unbekannt ist, &lt;code>0x01&lt;/code> bedeutet, dass der Schlüssel bekanntermaßen unsicher behandelt wurde, zum Beispiel als Klartext in ein Webformular eingefügt, bevor er verschlüsselt wurde, und &lt;code>0x02&lt;/code> bedeutet, dass der Schlüssel in einem sicheren Kontext erzeugt und verschlüsselt wurde und nie offengelegt war. Clients können diese Information nutzen, um beim Import von Schlüsseln mit bekannter unsicherer Historie Warnungen anzuzeigen.&lt;/p>
&lt;p>NIP-49 schützt Schlüssel besser als ein Klartext-&lt;code>nsec&lt;/code>-Export, aber die Verschlüsselung ist nur so stark wie das Passwort und der konfigurierte scrypt-Kostenfaktor. Höhere &lt;code>LOG_N&lt;/code>-Werte erschweren Offline-Erraten, verlangsamen aber auch legitime Entschlüsselungsvorgänge. Die Spezifikation warnt davor, verschlüsselte Schlüssel auf öffentliche Relays zu veröffentlichen, weil Angreifer davon profitieren, Ciphertext für Offline-Cracking zu sammeln. Zum Vergleich vermeidet &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing die Exposition von Schlüsseln vollständig, und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Android-Signing hält Schlüssel innerhalb einer dedizierten Signer-App. NIP-49 besetzt einen anderen Platz: portables verschlüsseltes Backup für Nutzer, die ihre Schlüssel selbst verwalten.&lt;/p>
&lt;p>Implementierungen umfassen &lt;a href="https://github.com/formstr-hq/nostr-forms/pull/434">Formstr PR #434&lt;/a> für den Signup, &lt;a href="https://github.com/greenart7c3/Amber">Amber&lt;/a> für &lt;code>ncryptsec&lt;/code>-Backup und -Restore, &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-11-newsletter/#divine-veroffentlicht-v106-mit-e2e-testinfrastruktur-und-nip-49-import">diVine v1.0.6&lt;/a> für den Account-Import, &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-11-newsletter/#keep-v060">Keep v0.6.0&lt;/a> für den Export von FROST-Shares sowie Key-Management-Tools wie &lt;a href="https://nsec.app">nsec.app&lt;/a> und &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/de/topics/nip-70/">NIP-70&lt;/a> definiert geschützte Events. Wenn ein Event das Tag &lt;code>[&amp;quot;-&amp;quot;]&lt;/code> trägt, muss ein Relay es ablehnen, sofern das Relay nicht &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> Authentifizierung verlangt und der authentifizierte Pubkey mit dem Autor des Events übereinstimmt.&lt;/p>
&lt;p>Der NIP-42-Auth-Flow läuft so ab: Das Relay sendet eine &lt;code>AUTH&lt;/code>-Challenge mit einem zufälligen String, und der Client antwortet mit einem signierten kind-&lt;code>22242&lt;/code>-Event, dessen Tags die Relay-URL und die Challenge enthalten. Das Relay prüft die Signatur und verifiziert, dass der Pubkey im Auth-Event dem Pubkey im zu publizierenden geschützten Event entspricht. Stimmen die Pubkeys nicht überein, lehnt das Relay das Event mit einem &lt;code>restricted&lt;/code>-Präfix in der Fehlermeldung ab.&lt;/p>
&lt;p>Der Event-Inhalt kann weiterhin öffentlich sein. Das &lt;code>-&lt;/code>-Tag steuert nur, wer das Event zu einem Relay veröffentlichen darf, das dieses Tag respektiert. Das deckt &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> (Simple Groups) halbgeschlossene Feeds, Relay-Räume nur für Mitglieder und andere Kontexte ab, in denen der Autor die Weiterverbreitung über den Relay-Graphen begrenzen will. NIP-70 ist eine Ein-Tag-Konvention, kein neuer Event-Kind, daher kann jeder bestehende Event-Kind das &lt;code>-&lt;/code>-Tag tragen.&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>Selbst wenn ein Relay die Veröffentlichung des Original-Events durch Dritte blockiert, kann jemand den Inhalt in einem Repost erneut veröffentlichen. &lt;a href="https://github.com/nostr-protocol/nips/pull/2251">PR #2251&lt;/a> adressiert das, indem Relays auch Reposts der Kinds 6 und 16 von geschützten Events ablehnen müssen. &lt;a href="https://github.com/hoytech/strfry/pull/156">strfry PR #156&lt;/a> ergänzt NIP-42-Auth für geschützte Events, und &lt;a href="https://github.com/hoytech/strfry/pull/176">strfry PR #176&lt;/a> blockiert Reposts, die geschützte Inhalte einbetten.&lt;/p>
&lt;p>NIP-70 steuert Relay-Verhalten. Ein Empfänger kann den Inhalt trotzdem anderswo kopieren, und die Spezifikation sagt das auch ausdrücklich. Das &lt;code>-&lt;/code>-Tag gibt Relays ein maschinenlesbares Signal, die Wiederveröffentlichung zu verweigern. Zum Vergleich bittet &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) Relays, Daten nachträglich zu löschen, während NIP-70 unautorisierte Veröffentlichung bereits bei der Annahme verhindert. Beide ergänzen sich: Ein Autor kann Events als geschützt markieren, um ihre Verbreitung zu begrenzen, und später zusätzlich Löschung verlangen, wenn Inhalte von Relays entfernt werden sollen, die sie bereits akzeptiert hatten.&lt;/p>
&lt;hr>
&lt;p>Das war es für diese Woche. Baust du etwas oder hast du Neuigkeiten, die wir kennen sollten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Melde dich per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #12</title><link>https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/</link><pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Das &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> liefert seinen &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#marmot-development-kit-liefert-ersten-%c3%b6ffentlichen-release">ersten öffentlichen Release&lt;/a> mit verschlüsselten Medien und Multi-Language-Bindings. &lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> veröffentlicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#outbox-modell-unter-der-lupe">Outbox-Modell-Benchmarks&lt;/a> über 14 Relay-Auswahl-Algorithmen. &lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> geht in acht Tagen &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#wisp-von-alpha-zu-beta">von der ersten Alpha zur Beta&lt;/a> mit Tor und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signing. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#nip-updates">NIP-91&lt;/a> (AND-Filter) wird gemergt. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#vector-v031">Vector v0.3.1&lt;/a> liefert negentropy-Sync mit 15-facher Leistungssteigerung. Diese Ausgabe enthält außerdem den Rückblick Fünf Jahre Nostr im Februar, der das Protokoll von einer Spec-Neufassung für drei Relays über die Damus-App-Store-Explosion bis zu Mesh-Networking und KI-Agenten-Vorschlägen nachzeichnet.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Das &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> liefert seinen &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#marmot-development-kit-liefert-ersten-%c3%b6ffentlichen-release">ersten öffentlichen Release&lt;/a> mit verschlüsselten Medien und Multi-Language-Bindings. &lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> veröffentlicht &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#outbox-modell-unter-der-lupe">Outbox-Modell-Benchmarks&lt;/a> über 14 Relay-Auswahl-Algorithmen. &lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> geht in acht Tagen &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#wisp-von-alpha-zu-beta">von der ersten Alpha zur Beta&lt;/a> mit Tor und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer Application) Signing. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#nip-updates">NIP-91&lt;/a> (AND-Filter) wird gemergt. &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#vector-v031">Vector v0.3.1&lt;/a> liefert negentropy-Sync mit 15-facher Leistungssteigerung. Diese Ausgabe enthält außerdem den Rückblick Fünf Jahre Nostr im Februar, der das Protokoll von einer Spec-Neufassung für drei Relays über die Damus-App-Store-Explosion bis zu Mesh-Networking und KI-Agenten-Vorschlägen nachzeichnet.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="outbox-modell-unter-der-lupe">Outbox-Modell unter der Lupe&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostrability/outbox">Nostrability&lt;/a> veröffentlichte eine Reihe von Outbox-Modell-Benchmarks, die testen, wie gut verschiedene Relay-Auswahl-Algorithmen Events aus dem dezentralen Relay-Netzwerk abrufen. Das Projekt mergte 16 PRs und 76 Commits in zehn Tagen und produzierte die möglicherweise gründlichste empirische Analyse von &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) Implementierungsstrategien bisher.&lt;/p>
&lt;p>Die Benchmarks testen 14 Relay-Auswahl-Algorithmen gegen reale Follow-Listen über 15 Clients und Bibliotheken in fünf Sprachen. Ein Baseline-Ansatz, der nur populäre Relays abfragt, ruft etwa 26 % der Events ab. Greedy Set-Cover mit Thompson Sampling erreicht 80-90 % Recall. Das Hinzufügen einer latenzbewussten Variante mit hyperbolischer Diskontierung und EWMA-Relay-Latenz-Tracking steigerte die Vollständigkeit von 62-80 % auf 72-96 % bei der 2-Sekunden-Marke über sechs Testprofile.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay Monitoring) Dead-Relay-Filterung erwies sich als folgenreich. Die Vorfilterung von Relay-Kandidaten gegen &lt;a href="https://nostr.watch">nostr.watch&lt;/a>-Liveness-Daten entfernte 40-64 % der toten Relays und verdoppelte die Relay-Erfolgsraten von 30 % auf 75-85 %. Feed-Ladezeiten sanken um 39 % (von 40 auf 24 Sekunden über 10 Profile). Eine EOSE-Race-Simulation ergab, dass das Warten auf EOSE plus eine 200-ms-Toleranzperiode die Vollständigkeit gegenüber dem Stoppen beim ersten fertigen Relay verbesserte.&lt;/p>
&lt;p>Für Clients, die ihr Relay-Routing nicht vollständig umschreiben können, fügt ein „Hybrid-Outbox-Enrichment&amp;quot;-Ansatz pro Autor Outbox-Abfragen auf bestehende fest codierte App-Relays hinzu. Dieser Hybrid erreichte 80 % Ein-Jahres-Event-Recall gegenüber der 26 %-Baseline und bietet einen Migrationspfad für Clients mit Legacy-Relay-Architekturen.&lt;/p>
&lt;h3 id="contextvm-öffnet-mcp-nip-und-liefert-ephemere-gift-wraps">ContextVM öffnet MCP-NIP und liefert ephemere Gift Wraps&lt;/h3>
&lt;p>&lt;a href="https://contextvm.org">ContextVM&lt;/a>, das Protokoll, das Nostr mit dem &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a> verbindet, eröffnete diese Woche zwei Vorschläge im &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> formalisiert CVM als Konvention für den Transport von MCP-JSON-RPC-Nachrichten über Nostr mittels ephemerer kind-25910-Events. &lt;a href="https://github.com/nostr-protocol/nips/pull/2245">PR #2245&lt;/a> erweitert &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> (Gift Wrap) um eine ephemere Variante (kind 21059), die &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a> (Basic Protocol Flow) ephemere Semantik folgt und Relays erlaubt, gewrappte Nachrichten nach der Zustellung zu verwerfen.&lt;/p>
&lt;p>Die ephemere Gift-Wrap-Konvention wurde als &lt;a href="https://docs.contextvm.org/spec/ceps/cep-19/">CEP-19&lt;/a> in der ContextVM SDK v0.6.x Release-Familie veröffentlicht. Die &lt;a href="https://github.com/ContextVM/sdk">SDK-Implementierung&lt;/a> fügt ein &lt;code>GiftWrapMode&lt;/code>-Enum mit drei Einstellungen hinzu: OPTIONAL (beide Kinds akzeptieren und Peer-Fähigkeit automatisch erkennen), EPHEMERAL (nur kind 21059) und PERSISTENT (nur kind 1059). Für KI-Tool-Aufrufe vermeidet der ephemere Modus die Speicherung von Zwischen-Request-Response-Traffic auf Relays und reduziert sowohl Speicherkosten als auch Datenschutz-Exposition.&lt;/p>
&lt;p>Neue öffentliche MCP-Server erschienen im Netzwerk von unabhängigen Betreibern, darunter ein Wolfram-Alpha-Abfrageserver. Das ContextVM-Team veröffentlichte CEP-15 (Common-Tools-Schema) und CEP-17 (Server-Relay-Liste-Publikation) neben dem v0.6.x Release-Zyklus.&lt;/p>
&lt;h3 id="marmot-development-kit-liefert-ersten-öffentlichen-release">Marmot Development Kit liefert ersten öffentlichen Release&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/mdk">MDK&lt;/a> (Marmot Development Kit), die Rust-Bibliothek hinter &lt;a href="https://nostrcompass.org/de/topics/mls/">Marmot&lt;/a>-verschlüsseltem Messaging in &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> und &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, lieferte &lt;a href="https://github.com/marmot-protocol/mdk/releases/tag/v0.6.0">v0.6.0&lt;/a> als ersten öffentlichen Release. Über 200 PRs wurden in diese Version gemergt, mit sechs neuen Mitwirkenden.&lt;/p>
&lt;p>Der Release umfasst verschlüsselte Medienunterstützung (MIP-04) mit HKDF-Seed-Ableitung (MIP-01 v2), deterministische Commit-Race-Resolution (MIP-03), verschlüsselten lokalen Speicher, Admin-Autorisierungsvalidierung für Marmot-Commits und -Proposals sowie GREASE-Unterstützung für Protokollerweiterbarkeit. Bindings werden für Kotlin, Python, Ruby und Windows bereitgestellt, zusammen mit Android-Cross-Compilation. Die Bibliothek aktualisiert auf OpenMLS 0.8.0 mit Security-Advisory-Fixes und einem &lt;code>Secret&amp;lt;T&amp;gt;&lt;/code>-Typ, der sensible Werte im Speicher nullt.&lt;/p>
&lt;p>Eine begleitende Protokolländerung (&lt;a href="https://github.com/marmot-protocol/marmot/pull/48">MIP-03&lt;/a>) ersetzte &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (Encrypted Payloads) Verschlüsselung durch ChaCha20-Poly1305 für kind-445-Nachrichten. NIP-44 erforderte laut Spezifikation UTF-8-String-Eingabe, was es unmöglich machte, rohe Marmot-Nachrichtenbytes durch Standard-TypeScript-Nostr-Bibliotheken zu leiten. Der Ersatz leitet Schlüssel direkt vom Marmot-Exporter-Secret ab. Diese Breaking Change erforderte koordinierte Updates über die &lt;a href="https://github.com/marmot-protocol/marmot/pull/48">Core-Spezifikation&lt;/a>, &lt;a href="https://github.com/marmot-protocol/mdk/pull/208">MDK&lt;/a> und das &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>, die TypeScript-Implementierung gepflegt von hzrd149, mergte vier PRs mit eigenen Breaking-API-Änderungen. Ein &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/52">Omnibus-Update&lt;/a> fügte einen Key-Package-Manager für den Create/Publish/Rotate-Lebenszyklus hinzu, eine &lt;code>sendChatMessage&lt;/code>-Convenience-Methode, Einladungsvorschau ohne Beitritt (&lt;code>readInviteGroupInfo&lt;/code>), Self-Update für Forward-Secrecy-Rotationen und strukturiertes Debug-Logging. Gruppen-Entschlüsselungs-APIs wurden von &lt;code>readGroupMessage&lt;/code> zu &lt;code>decryptGroupMessage&lt;/code> umbenannt, mit reichhaltigeren Ergebnisvarianten (processed/skipped/rejected/unreadable). gzuuus steuerte Beispiel-Bereinigung mit NIP-65-Relay-Unterstützung und Last-Resort-Key-Package-Handling gemäß MIP-00 bei.&lt;/p>
&lt;p>Die &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">White Noise CLI&lt;/a> (&lt;code>wn&lt;/code>), das Rust-Backend hinter der mobilen App und der neuen TUI, mergte 16 PRs in zehn Tagen. Die Signer-Lifecycle-Behandlung erhielt Abbruchsicherheit durch einen RAII-Scope-Guard (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/538">PR #538&lt;/a>), der eine Klasse von Bugs behebt, bei der abgebrochene Operationen Signer-Zustand leaken konnten. Login blockiert nun, wenn erforderliche Relay-Listen (kind 10002/10050/10051) fehlen (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/515">PR #515&lt;/a>), und Giftwrap-Subscriptions fallen auf &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a>-Relays zurück, wenn Inbox-Listen fehlen (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/518">PR #518&lt;/a>). Ein Debug-Modus (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/528">PR #528&lt;/a>) zeigt Datenbankabfragen und MLS-Ratchet-Tree-Inspektion als JSON-Ausgabe. Weitere Fixes betrafen Subscription-Recovery nach Signer-Neuregistrierung, Welcome-Message-Catch-up-Timing, Relay-Filter-Validierung und Nutzersuch-Radius-Limits.&lt;/p>
&lt;p>Marmot verzeichnete diese Woche eine bedeutende Expansion über den Rust-Kernstack hinaus. &lt;a href="https://github.com/marmot-protocol/wn-tui">White Noise TUI&lt;/a>, eine terminalbasierte Oberfläche für den White-Noise-Messaging-Stack, startete am 3. März. Sie umhüllt die &lt;code>wn&lt;/code>-CLI als Subprozess und rendert deren JSON-Ausgabe durch eine Elm-inspirierte unidirektionale Architektur, die Multi-Konversations-Navigation mit Ungelesen-Indikatoren, Gruppenerstellung und Mitgliedersuche, Echtzeit-Nachrichten-Streaming und Emoji-Reaktionen vom Terminal aus bietet.&lt;/p>
&lt;p>&lt;a href="https://github.com/DavidGershony">DavidGershony&lt;/a> veröffentlichte einen vollständigen C#-Marmot-Stack, der die geschichtete Architektur des Rust-Toolchains spiegelt. &lt;a href="https://github.com/DavidGershony/dotnet-mls">dotnet-mls&lt;/a> implementiert kryptografische MLS-RFC-9420-Primitive in C#. &lt;a href="https://github.com/DavidGershony/marmot-cs">marmot-cs&lt;/a> baut darauf auf und fügt Nostr-Relay-Transport hinzu, als C#-Äquivalent von MDK. &lt;a href="https://github.com/DavidGershony/openChat">OpenChat&lt;/a>, eine plattformübergreifende Desktop-App mit .NET 9 und Avalonia UI, verbindet beides zu einem funktionierenden Chat-Client mit NIP-44-DMs, Marmot-Gruppenverschlüsselung, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) Remote-Signing und Multi-Relay-Statusindikatoren.&lt;/p>
&lt;p>&lt;a href="https://github.com/zerosats/mdk-pwa-reference">MDK PWA Reference&lt;/a> stellt eine Progressive-Web-App-Vorlage für den Bau von Marmot-verschlüsselten Anwendungen bereit, mit experimenteller Unterstützung für KI-Agenten-Teilnahme in Gruppenchats und Bitcoin-Zahlungen über Arkade-Wallet-Infrastruktur.&lt;/p>
&lt;h3 id="wisp-von-alpha-zu-beta">Wisp: Von Alpha zu Beta&lt;/h3>
&lt;p>&lt;a href="https://github.com/barrydeen/wisp">Wisp&lt;/a> ist ein neuer Android-Nostr-Client, der vom &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.1.0-alpha">ersten Alpha&lt;/a> am 24. Februar zu &lt;a href="https://github.com/barrydeen/wisp/releases/tag/v0.3.4-beta">v0.3.4-beta&lt;/a> am 3. März gelangte und dabei 19 Releases, 115 gemergte PRs und 276 Commits in acht Tagen produzierte.&lt;/p>
&lt;p>Die Feature-Entwicklung deckt Terrain ab, für das die meisten Clients Monate brauchen. v0.1.0 startete mit Outbox/Inbox-Relay-Modell-Unterstützung und Onboarding-Flows. Ab v0.1.3 verfügte der Client über &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Intent-basiertes Signing für Amber, einen eingebetteten Tor-SOCKS5-Proxy für &lt;code>.onion&lt;/code>-Relay-Konnektivität und &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect). v0.2.0 stieg zur Beta auf mit Mute-List-Filterung und Custom-Emoji-Unterstützung, während v0.2.4 Content-Warning-Overlays hinzufügte. Die v0.3.x-Serie führte &lt;a href="https://nostrcompass.org/de/topics/nip-13/">NIP-13&lt;/a> Proof-of-Work für Notes ein, Background-PoW-Mining mit persistenten Einstellungen, &lt;code>.onion&lt;/code>-Relay-Speicher und Mute-Thread-Benachrichtigungen.&lt;/p>
&lt;p>Gerätebasierte Übersetzung über Google ML Kit läuft lokal ohne Netzwerkzugang nach dem ersten Modell-Download. Eine interaktive soziale Graphvisualisierung nutzt eine Velocity-Verlet-Physiksimulation bei ungefähr 30fps mit Pinch-to-Zoom-Navigation und Profilinspektion.&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>, die Marmot-verschlüsselte Messaging-App, lieferte &lt;a href="https://github.com/VectorPrivacy/Vector/releases/tag/v0.3.1">v0.3.1&lt;/a> mit Gruppenmanagement-Verbesserungen und Performance-Arbeit. Multi-Admin-Gruppen, Masseneinladungen, Einladung per npub und Gruppenavare erweitern die Kollaborationsfunktionen. Android-Hintergrundbenachrichtigungen unterstützen nun Inline-Antwort- und Gelesen-Markieren-Aktionen.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/negentropy/">Negentropy&lt;/a>-basierter deterministischer Sync ruft den vollständigen Gesprächsverlauf ab, einschließlich Nachrichten, die während Offline-Perioden verpasst wurden. Voice-to-Text wurde mit GPU-Beschleunigung auf Android neu aufgebaut. Die Dateianhang-Behandlung wurde überarbeitet mit Download-Fortschritt, Retry-Zuständen, Verzeichnis-Zip-und-Senden und Live-Fortschrittsanzeigen durchgängig. Die Leistung verbesserte sich über 15-fach bei Boot-Zeit, Bildverarbeitung, Audio-Wiedergabe und allgemeiner UI-Reaktionsfähigkeit. Die App-Installationsgröße sank um mehr als ein Drittel, wobei das Frontend um ungefähr die Hälfte reduziert wurde. 32-bit-ARM-Android-Unterstützung wurde hinzugefügt.&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>, der selbst-verwahrende Lightning-Node mit Nostr Wallet Connect (&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>) Unterstützung, lieferte &lt;a href="https://github.com/getAlby/hub/releases/tag/v1.21.5">v1.21.5&lt;/a>. Ein zweites Relay wurde zur Standard-NWC-Konfiguration hinzugefügt, was die Zuverlässigkeit bei Relay-Neustarts verbessert. Ein Fix für ungültige Zap-Daten in der Transaktionsliste behebt ein Anzeigeproblem mit fehlerhaften &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> (Lightning Zaps) Events. Neue App-Store-Einträge umfassen Alby CLI und 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>, der textbasierte Nostr-Messaging-Client, lieferte drei Releases im Berichtszeitraum. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.0">v0.12.0&lt;/a> fügte einen PIN-App-Lock mit 4-stelligem Tastenfeld und über 15 neue Sprachübersetzungen hinzu, darunter Bengali, Thai, Vietnamesisch, Hindi, Arabisch, Hebräisch, Urdu, Türkisch, Japanisch, Chinesisch, Koreanisch, Niederländisch, Polnisch, Russisch und Persisch mit RTL-Unterstützung. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.1">v0.12.1&lt;/a> führte ein Cypher-Theme mit reinem Schwarz und Cyan-Akzenten ein, dazu Android-Video-Poster-Generierung. &lt;a href="https://github.com/psic4t/nospeak/releases/tag/v0.12.2">v0.12.2&lt;/a> fügte Chat-Export und „Profil anzeigen&amp;quot; in Kontaktmenüs hinzu.&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>, das Android-Personal-Relay von greenart7c3, lieferte &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v2.0.0-pre2">v2.0.0-pre2&lt;/a> mit Relay-Performance-Verbesserungen durch neue Datenbankindizes und umstrukturierte Kotlin-Coroutinen. Jede gehostete Web-App startet nun auf einem eigenen Port. Volltextsuche und ein neu gestalteter Events-Bildschirm mit Event-Erweiterung runden die Änderungen ab.&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>, eine Nostr-basierte Notiz-Anwendung, lieferte 8 Releases von &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.5.0">v0.5.0&lt;/a> bis &lt;a href="https://github.com/77elements/noornote/releases/tag/v0.5.7">v0.5.7&lt;/a>. Der v0.5.0-Launch auf Android fügte &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Amber-Signer-Unterstützung und &lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71&lt;/a> (Video Events) Note-Publishing hinzu. Eine neu gestaltete Willkommensseite in v0.5.1 enthielt öffentliche Timeline-Vorschauen und reduzierte das APK auf 15 MB. Der Relay Browser in v0.5.2 ermöglicht das Durchsuchen öffentlicher Relay-Timelines über teilbare URLs, zusammen mit Medien-Download und &lt;a href="https://nostrcompass.org/de/topics/nip-30/">NIP-30&lt;/a> Custom-Emoji-Reaktionen. Nachfolgende Releases bis v0.5.7 beheben Sync-Race-Conditions im kollaborativen „Tribes&amp;quot;-Notiz-Sharing-System.&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>, die Nostr-Voice- und Video-Calling-App, lieferte &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.5.1-release">v0.5.1&lt;/a> mit Sprachnachrichten-Unterstützung, einem optimierten Desktop-Erlebnis mit Gruppeneintritt, Kontakt-Favoriten auf dem Desktop, Kontaktnotizen und Filterung, Datenexport- und Bereinigungsoptionen sowie Unterstützung für Systemschriftgrößen-Barrierefreiheit.&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>, die Nostr-Livestreaming-App, lieferte &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.13.0">v0.13.0&lt;/a> mit MP4-Replay-Downloads aus Stream-Card-Menüs und &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> (DNS-Based Verification) für Profile. Der RTMP-Publisher migrierte zur Expo Modules API. Die Streaming-Leistung bei niedrigerer Bandbreite verbesserte sich, und Abstürze auf älteren Geräten sowie iOS-Streaming zu &lt;a href="https://zap.stream">Zap.Stream&lt;/a> wurden behoben.&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> lieferte &lt;a href="https://github.com/tcheeric/nostr-java/releases/tag/v2.0.0">v2.0.0&lt;/a> mit konfigurierbaren WebSocket-Puffergrößen, die Anwendungen die Verarbeitung größerer Nostr-Events ohne Abschneidung ermöglichen. Der Major-Version-Bump spiegelt Breaking Changes an der Verbindungs-API wider.&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> lieferte &lt;a href="https://github.com/hardran3/Prism/releases/tag/1.1.0">1.1.0&lt;/a> mit Langform-Inhaltsunterstützung (kind-30023-Artikel) und einem Markdown-Editor zum direkten Verfassen in der App, gefolgt von einem &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>, die Bitcoin-Crowdfunding-Plattform, lieferte &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.6">v0.2.6&lt;/a> mit Boltz-Integration und einem 1-Klick-Invest-Flow. Sowohl Invest- als auch Fund-Projekttypen funktionieren End-to-End im Testnet. Das Team gibt an, dass die UI zu etwa 70 % fertiggestellt ist.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&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 für Filter&lt;/a>&lt;/strong>: Fügt AND-Filter-Semantik für Tag-Arrays in Relay-Subscriptions hinzu. Derzeit gleicht die Angabe mehrerer Werte in einem Tag-Filter (z.B. mehrere &lt;code>p&lt;/code>-Tags) Events ab, die einen davon enthalten. NIP-91 ermöglicht Clients, Events zu verlangen, die alle angegebenen Tag-Werte gleichzeitig erfüllen, was Bandbreite reduziert und schnellere Index-Operationen ermöglicht. Mehrere Relay-Implementierungen existieren bereits, darunter nostr-rs-relay, satellite-node, worker-relay und applesauce. Früher als NIP-119 nummeriert.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2247">NIP-30: Emoji-Set-Adresse in Tags&lt;/a>&lt;/strong>: Custom-Emoji-Tags in &lt;a href="https://nostrcompass.org/de/topics/nip-30/">NIP-30&lt;/a> können nun eine optionale Emoji-Set-Adresse enthalten. Das Klicken auf ein Emoji in einem Client kann das zugehörige Set zum Speichern oder Durchsuchen öffnen. Entstanden aus dem &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: unallowpubkey und unbanpubkey hinzufügen&lt;/a>&lt;/strong>: Zwei neue Admin-Befehle für &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> Group Chat. &lt;code>unallowpubkey&lt;/code> entfernt einen pubkey von der Erlaubnisliste, ohne ihn zu bannen. &lt;code>unbanpubkey&lt;/code> hebt einen Bann auf, ohne den pubkey wieder zur Mitgliederliste hinzuzufügen. Zuvor bannte die einzige Möglichkeit, jemanden von der Erlaubnisliste zu entfernen, die Person gleichzeitig, und das Aufheben eines Banns erforderte das erneute Hinzufügen als Mitglied.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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> (eröffnet 27. Feb): Vorgeschlagen von purrgrammer, sind Spells portable gespeicherte Nostr-Abfragen, die als kind-777-Events veröffentlicht werden. Ein Spell kodiert einen REQ- oder COUNT-Filter in strukturierten Tags (&lt;code>k&lt;/code> für Kinds, &lt;code>authors&lt;/code> für Pubkeys, &lt;code>tag&lt;/code> für beliebige Tag-Filter) mit Laufzeitvariablen: &lt;code>$me&lt;/code> löst sich zum pubkey des eingeloggten Nutzers auf, &lt;code>$contacts&lt;/code> expandiert zur kind-3-Follow-Liste des Nutzers. Relative Zeitstempel (&lt;code>7d&lt;/code>, &lt;code>2w&lt;/code>, &lt;code>1mo&lt;/code>) ermöglichen Spells, rollende Zeitfenster ohne fest codierte Daten zu definieren. Bereits in &lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a> und &lt;a href="https://github.com/purrgrammer/grimoire">Grimoire&lt;/a> implementiert, erlauben Spells Nutzern, kuratierte Feeds zu erstellen, zu teilen und zu abonnieren, die clientübergreifend transportiert werden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2245">NIP-59: Ephemeral Gift Wrap (kind 21059)&lt;/a>&lt;/strong> (eröffnet 27. Feb): Fügt eine ephemere Variante von &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wraps hinzu. Kind 21059 folgt NIP-01-ephemerer Semantik, sodass Relays Events nach der Zustellung verwerfen. Vorgeschlagen von ContextVM für MCP-Transport, wo Nachrichtenpersistenz unnötig ist.&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 über Nostr&lt;/a>&lt;/strong> (eröffnet 27. Feb): Spezifiziert den Transport von Model-Context-Protocol-Nachrichten über Nostr mittels ephemerer kind-25910-Events mit &lt;code>p&lt;/code>- und &lt;code>e&lt;/code>-Tags für Adressierung und Korrelation. Absichtlich schlank gehalten, delegiert Protokolldetails an die &lt;a href="https://docs.contextvm.org">ContextVM-Spezifikation&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> (eröffnet 25. Feb, Entwurf): fiatjafs Entwurf erweitert &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Gruppen um Live-Audio und -Video. Der Vorschlag fügt optionale &lt;code>livekit&lt;/code>- und &lt;code>no-text&lt;/code>-Tags zu Gruppenmetadaten-Events hinzu. Wenn ein Nutzer einem Voice-Space beitreten möchte, fordert der Client ein JWT vom Relay unter &lt;code>/.well-known/nip29/livekit/{groupId}&lt;/code> an. Das Relay prüft die Gruppenmitgliedschaft und stellt ein Token mit dem Hex-Pubkey des Nutzers als &lt;code>sub&lt;/code>-Claim aus, das an &lt;a href="https://livekit.io/">LiveKit&lt;/a> für den Medientransport übergeben wird. Voice-Room-Zugang erbt das bestehende Berechtigungsmodell der Gruppe, sodass relay-seitige Mitgliedschaftsregeln bestimmen, wer sprechen kann. Wird in Pyramid und Chachi getestet.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2235">Collaborative Event Ownership&lt;/a>&lt;/strong> (eröffnet 24. Feb): pablof7z schlägt ein Pointer-Event (kind 39382) vor, das einen kollaborativen Raum deklariert, indem Miteigentümer-Pubkeys in &lt;code>p&lt;/code>-Tags und ein Ziel-Event-Kind in einem &lt;code>k&lt;/code>-Tag aufgelistet werden. Jeder aufgeführte Eigentümer kann Events dieses Kinds mit demselben &lt;code>d&lt;/code>-Tag veröffentlichen, und Clients lösen den aktuellen Zustand auf, indem sie alle Eigentümer abfragen und das neueste Event nehmen. Koautoren-Attribution wird nur angezeigt, wenn ein verifizierbares &lt;code>a&lt;/code>-Tag auf den Pointer zurückverweist und der Autor in dessen &lt;code>p&lt;/code>-Tags erscheint, was gefälschte Ansprüche verhindert. Dies ermöglicht geteilte Wiki-Seiten und gemeinsam verfasste Ressourcen, ohne die Kontrolle einem einzelnen Schlüsselpaar zuzuweisen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2234">NIP-09: Kaskadenlöschung von Reposts&lt;/a>&lt;/strong> (eröffnet 24. Feb): Wenn ein Originalautor eine Notiz löscht, sollten Relays auch alle kind-6- oder kind-16-Reposts löschen, die darauf verweisen. Motiviert durch Datenschutzbedenken: Reposts können versehentlich preisgegebene Informationen erhalten, nachdem der Autor die Quelle gelöscht hat. Die Änderung betrifft nur die Relay-Seite und erfordert keine Client-Modifikationen.&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> (eröffnet 23. Feb): Fügt eine &lt;code>peekPublicKey()&lt;/code>-Methode zu &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> Browser-Erweiterungen hinzu. Anders als &lt;code>getPublicKey()&lt;/code> gibt sie den aktuellen pubkey zurück, ohne eine Nutzerbestätigung anzufordern, und ermöglicht stummes Auto-Login, wenn der Nutzer Auto-Login aktiviert hat.&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> (eröffnet 28. Feb, Entwurf): Definiert vier adressierbare Event-Kinds (30300-30303) für strukturiertes Buchpublishing auf Nostr. Ein Cover-Event enthält Wurzel-Metadaten einschließlich Titel, Coverbild, Lizenz via &lt;a href="https://nostrcompass.org/de/topics/nip-32/">NIP-32&lt;/a> (Labeling) Labels und Sprachcode. Ein Index-Event ordnet jedes Kapitel seiner Position zu mittels Base62-Fractional-Indexing, das Autoren erlaubt, neue Kapitel zwischen bestehende einzufügen, ohne umzunummerieren. Chapter-Events fungieren als strukturelle Überschriften mit optionalen Bildern, während Episode-Events den eigentlichen Prosatext tragen, begrenzt auf 30.000 Zeichen mit positionierten Bild-Tags. Rezensionen verwenden Zaps auf Cover-Events mit der Zap-Beschreibung als Rezensionstext.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2242">NIP-54: Wechsel von Asciidoc zu Djot&lt;/a>&lt;/strong> (eröffnet 26. Feb): Nach dem &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-31-newsletter/">d-Tag-Internationalisierungsfix&lt;/a> im Dezember schlägt dieser PR vor, das &lt;a href="https://nostrcompass.org/de/topics/nip-54/">NIP-54&lt;/a> Wiki-Asciidoc-Markup-Format durch &lt;a href="https://djot.net/">Djot&lt;/a> zu ersetzen, und fügt einen Begründungsabschnitt und Wikilink-Beispiele für nicht-lateinische Schriften hinzu.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2240">NIP-66: Defensive Measures&lt;/a>&lt;/strong> (eröffnet 26. Feb): Basierend auf Erkenntnissen aus den &lt;a href="https://nostrcompass.org/de/newsletters/2026-03-04-newsletter/#outbox-modell-unter-der-lupe">nostrability/outbox&lt;/a>-Benchmarks, fügt explizite Hinweise für &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Grenzfälle hinzu. Ein begleitender &lt;a href="https://github.com/nostr-protocol/nips/pull/2241">PR #2241&lt;/a> definiert Output-Tags für SSL, Geolokation, Netzwerk- und Konnektivitätsprüfungen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>NIP-C1: Cryptographic Identity Proofs&lt;/strong> (Wiki-Eintrag, kind 30817): Schlägt kind-30509-Events vor, die APK-Signaturzertifikate kryptografisch mit Nostr-Profilen verknüpfen. Der Nachweis funktioniert durch Signierung einer kanonischen Nachricht, die den Nostr-Pubkey enthält, mit dem privaten Schlüssel des Zertifikats (unterstützt ECDSA, RSA PKCS1v15, Ed25519 und andere Standardalgorithmen), und anschließende Veröffentlichung der Signatur in einem kind-30509-Event, das mit dem Nostr-Schlüssel signiert ist. Verifizierer können bestätigen, dass die Person, die ein Android-Signaturzertifikat einer App kontrolliert, auch den Nostr-Pubkey kontrolliert, der die Veröffentlichung beansprucht. Nachweise verfallen standardmäßig nach einem Jahr und können explizit widerrufen werden. Implementiert in der &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-Eintrag, kind 30817): Definiert kind-31402 adressierbare Events für die Veröffentlichung von Simple Autonomous Revenue Agreement (SARA) Angeboten auf Nostr-Relays. Emittenten bewerben Lightning-abgerechnete Revenue-Share-Konditionen einschließlich Pool-Anteil-Prozentsatz, Auszahlungsauslöser, Schwellenwert in sats, Laufzeit und gestaffelter Preisgestaltung. Agenten und Menschen können Angebote über Relays entdecken und autonom ohne zentrale Plattform abonnieren. Die Kind-Nummer spiegelt kind 30402 (L402 Service Registry, vom selben Autor als begleitender Wiki-Eintrag veröffentlicht), da SARA die Rückseite der L402-Zahlungsbeziehung darstellt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="offene-prs-und-projekt-updates">Offene PRs und Projekt-Updates&lt;/h2>
&lt;h3 id="damus-nip-89detopicsnip-89-recommended-application-handlers">Damus: &lt;a href="https://nostrcompass.org/de/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> implementiert NIP-89-Client-Tag-Unterstützung für &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>. Die App sendet nun einen Client-Tag auf allen Posting-Pfaden (Haupt-App, Share-Extension, Highlighter, Entwürfe) und zeigt „via ClientName&amp;quot; neben Zeitstempeln an, wenn andere Apps ihre Tags mitliefern. Ein Datenschutz-Toggle in den Darstellungseinstellungen ermöglicht das Deaktivieren der Tag-Emission. &lt;a href="https://github.com/damus-io/damus/pull/3652">PR #3652&lt;/a> fügt einen Speicherbereich in den Einstellungen mit einem interaktiven Kreisdiagramm hinzu, das NostrDB- und Kingfisher-Cache-Speichernutzung mit Exportunterstützung aufschlüsselt.&lt;/p>
&lt;p>Offen: &lt;a href="https://github.com/damus-io/damus/pull/3657">PR #3657&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> Relay-Fallback für zitierte Notizen hinzu. Wenn ein Inline-&lt;code>nevent&lt;/code> einen Autor-Pubkey aber keine Relay-Hints enthält und die Notiz im Pool des Nutzers fehlt, ruft Damus die kind-10002-Relay-Liste des Autors ab und versucht es erneut von dessen Write-Relays.&lt;/p>
&lt;h3 id="amethyst-nip-39detopicsnip-39-external-identities-nip-c0-nip-66detopicsnip-66">Amethyst: &lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> (External Identities), NIP-C0, &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a>&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> mergte eine Welle von NIP-Implementierungen über 28 PRs. Externe Identitätsansprüche werden nun als dedizierte kind-10011-Events unter &lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1747">PR #1747&lt;/a>) veröffentlicht, was soziale Identität von kind-0-Metadaten mit abwärtskompatibler Rückfalloption trennt. Code-Snippet-Unterstützung via NIP-C0 (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1744">PR #1744&lt;/a>) fügt kind-1337-Events mit Accessoren für Sprache, Erweiterung, Runtime, Lizenz und Abhängigkeiten hinzu. Die &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Relay-Monitoring-Implementierung (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1742">PR #1742&lt;/a>) deckt beide Event-Kinds mit vollständigem Tag-Parsing für RTT-Metriken, Netzwerktyp, unterstützte NIPs und Geohash ab.&lt;/p>
&lt;p>Verschlüsselte DMs kamen auf Amethyst Desktop (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1710">PR #1710&lt;/a>) mit einem Split-Pane-Chat-Layout, das sowohl &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> (Encrypted Direct Messages) als auch &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages) unterstützt. Ein neuer Relay-Feed-Bildschirm (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1733">PR #1733&lt;/a>) ermöglicht das Durchsuchen von Beiträgen eines bestimmten Relays mit Follow/Unfollow-Funktionalität. Offen: Zensurresistente NIP-05-Verifizierung (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1734">PR #1734&lt;/a>) fügt einen parallelen Verifizierungspfad für &lt;code>.bit&lt;/code>-Identifikatoren hinzu, der gegen die Namecoin-Blockchain statt HTTP-DNS auflöst. Wenn Amethyst ein &lt;code>.bit&lt;/code>-Suffix in einem NIP-05-Feld erkennt, fragt es einen ElectrumX-NMC-Server nach der Transaktionshistorie des Namens ab, parst das &lt;code>NAME_UPDATE&lt;/code>-Skript aus dem neuesten Output, um den Nostr-Pubkey zu extrahieren, und lehnt Namen ab, die älter als 36.000 Blöcke sind (Namecoins Ablaufzeitraum). ElectrumX-Verbindungen werden über SOCKS5 geroutet, wenn Tor aktiviert ist, mit dynamischer Serverauswahl zwischen Clearnet- und &lt;code>.onion&lt;/code>-Endpunkten. Ein LRU-Cache mit einer Stunde TTL verhindert wiederholte Blockchain-Abfragen.&lt;/p>
&lt;h3 id="notedeck-outbox-architektur">Notedeck: Outbox-Architektur&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck/pull/1303">PR #1303&lt;/a> migriert &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> von Ad-hoc-Relay-Pool-Management zu einem zentralisierten Outbox-Modell mit Account-bezogenen Subscriptions. Das Messages-Modul veröffentlicht nun eine Standard-DM-Relay-Liste, falls keine existiert, und routet DMs zu den bevorzugten Relays der Empfänger gemäß kind 10050.&lt;/p>
&lt;h3 id="pika-gruppenspezifische-profile-und-tutorial-feed">Pika: Gruppenspezifische Profile und Tutorial-Feed&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, die Marmot-verschlüsselte Messaging-App für iOS und Android mit Desktop-Build, erhielt gruppenspezifische Profile (&lt;a href="https://github.com/sledtools/pika/pull/368">PR #368&lt;/a>). Nutzer können nun für jeden Gruppenchat einen separaten Anzeigenamen und ein Bild festlegen, zusammen mit einer benutzerdefinierten Bio. Diese Profile werden als verschlüsselte kind-0-Events innerhalb der Marmot-Gruppe veröffentlicht, unsichtbar für jeden außerhalb, mit Rückfall auf das globale Nostr-Profil des Nutzers, wenn kein gruppenspezifisches Profil gesetzt ist. Wenn neue Mitglieder beitreten, sendet der Admin alle gespeicherten Gruppenprofile erneut und jedes Mitglied veröffentlicht seines bei Commit neu. Profilbilder werden vor dem Blossom-Upload Marmot-Media-verschlüsselt. Der PR enthält 16 neue Unit-Tests und macht die Funktion sowohl über einen CLI-Befehl (&lt;code>update-group-profile&lt;/code>) als auch die UI zugänglich.&lt;/p>
&lt;p>Eine neue &lt;code>pika-news&lt;/code>-Web-App (&lt;a href="https://github.com/sledtools/pika/pull/401">PR #401&lt;/a>) überwacht Pikas eigene GitHub-PRs und generiert automatisch Schritt-für-Schritt-Tutorial-Walkthroughs aus PR-Diffs, die als server-gerenderte Seiten mit &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> Authentifizierung veröffentlicht werden. Nutzer können bestimmte Tutorials in Echtzeit über Nostr-authentifizierten Chat diskutieren.&lt;/p>
&lt;h3 id="divine-einbettbare-widgets-und-video-antworten">diVine: Einbettbare Widgets und Video-Antworten&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, die Nostr-native Video-Sharing-Plattform, mergte 132 PRs in zehn Tagen. Einbettbare Iframe-Widgets (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1843">PR #1843&lt;/a>) bieten eine eigenständige &lt;code>/embed?npub=...&lt;/code>-Seite, die Nutzerprofil und neueste Videos rendert. Video-Antwort-Funktionalität (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1915">PR #1915&lt;/a>), hinter einem Feature-Flag geschützt, verwendet Kind-1111-Comments (&lt;a href="https://nostrcompass.org/de/topics/nip-22/">NIP-22&lt;/a>) mit &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> (Media Attachments) imeta-Metadaten. Bluesky-inspirierte dreistufige Inhaltsfilter (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1797">PR #1797&lt;/a>) bieten Show/Warn/Hide-Steuerungen über 17 &lt;a href="https://nostrcompass.org/de/topics/nip-32/">NIP-32&lt;/a> Content-Warning-Kategorien.&lt;/p>
&lt;h3 id="strfry-req-filter-validierung">strfry: REQ-Filter-Validierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/hoytech/strfry/pull/163">PR #163&lt;/a> fügt konfigurierbare REQ-Filter-Validierung zu &lt;a href="https://github.com/hoytech/strfry">strfry&lt;/a> hinzu, dem C++-Nostr-Relay. Betreiber können maximale Filter pro REQ, erforderliche Autoren- oder Tag-Präsenz, erlaubte Kind-Whitelists und pro Filter Kind-Limits festlegen. Die Funktion zielt auf NWC-Relay-Deployments, die strenge Filter-Durchsetzung benötigen. Offen: &lt;a href="https://github.com/hoytech/strfry/pull/173">PR #173&lt;/a> fügt optionale zstd-Kompression für Event-Payloads bei der Aufnahme hinzu.&lt;/p>
&lt;h3 id="rust-nostr-nip-62detopicsnip-62-request-to-vanish">rust-nostr: &lt;a href="https://nostrcompass.org/de/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>, die Rust-Nostr-Protokollbibliothek, fügte &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> (Request to Vanish) Unterstützung über alle drei Datenbank-Backends hinzu: &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> und &lt;a href="https://github.com/rust-nostr/nostr/pull/1272">In-Memory&lt;/a>. Die LMDB-Implementierung enthält konfigurierbare Optionen zum Aktivieren oder Deaktivieren von &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09&lt;/a> und NIP-62-Durchsetzung pro Deployment.&lt;/p>
&lt;h3 id="ndk-collaborative-events-und-nip-46-timeout">NDK: Collaborative Events und NIP-46-Timeout&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a>, das Nostr Development Kit für JavaScript/TypeScript, mergte &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/380">PR #380&lt;/a> mit &lt;code>NDKCollaborativeEvent&lt;/code> für Mehrautorendokumente mittels eines adressierbaren Pointer-Events (kind 39382), das autorisierte Autoren definiert. Ein konfigurierbarer Timeout für &lt;code>NDKNip46Signer&lt;/code> (&lt;a href="https://github.com/nostr-dev-kit/ndk/pull/381">PR #381&lt;/a>) verhindert, dass &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing-Operationen endlos hängen, wenn ein Bunker nicht antwortet.&lt;/p>
&lt;h3 id="tenex-agenten-kategorisierung-und-pubkey-gating">TENEX: Agenten-Kategorisierung und Pubkey-Gating&lt;/h3>
&lt;p>&lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a>, die Nostr-native KI-Agenten-Orchestrierungsplattform, mergte zwei sicherheitsbezogene PRs. TIP-01 rollenbasierte Agenten-Kategorisierung (&lt;a href="https://github.com/tenex-chat/tenex/pull/91">PR #91&lt;/a>) ordnet Agentenkategorien (Principal, Orchestrator, Worker, Advisor, Auditor) automatisierten Tool-Beschränkungen über eine Denied-Tools-Map zu. Front-Door-Pubkey-Gating (&lt;a href="https://github.com/tenex-chat/tenex/pull/87">PR #87&lt;/a>) stellt sicher, dass nur Events von Whitelisted- oder Backend-signierten Pubkeys zusammen mit bekannten Agenten geroutet werden; unbekannte Pubkeys werden stillschweigend mit OpenTelemetry-Spans für Audit verworfen.&lt;/p>
&lt;h3 id="zap-cooking-mitgliedschafts-dashboard">Zap Cooking: Mitgliedschafts-Dashboard&lt;/h3>
&lt;p>&lt;a href="https://github.com/zapcooking/frontend">Zap Cooking&lt;/a>, die Nostr-basierte Rezeptteilungsplattform, mergte 25 PRs und 85 Commits in zehn Tagen. Ein Mitgliedschafts-Dashboard (&lt;a href="https://github.com/zapcooking/frontend/pull/228">PR #228&lt;/a>) zeigt den Abonnementstatus mit Ablaufdaten und Verwalten/Upgrade-Optionen, reaktiviert Feature-Gates für Sous-Chef- und Zappy-Stufen mit client- und serverseitigen Prüfungen und standardisiert Stufennamen über 26 Dateien. Zweiphasiges Gruppen-Nachrichten-Laden (&lt;a href="https://github.com/zapcooking/frontend/pull/227">PR #227&lt;/a>) bietet einen schnellen 3-Tage-Initial-Fetch für sofortige Anzeige, gefolgt von einem 40-Tage-Backfill im Hintergrund.&lt;/p>
&lt;p>Wallet-Mnemonic-Speicher wechselte von pubkey-abgeleiteter Verschlüsselung zu &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> Encrypt-to-Self (&lt;a href="https://github.com/zapcooking/frontend/pull/224">PR #224&lt;/a>), was eine Schwachstelle behebt, bei der das alte Schema seinen Schlüssel aus &lt;code>SHA-256(pubkey)&lt;/code> ableitete, was praktisch unverschlüsselt ist, da Pubkeys öffentlich sind. Bestehende Wallets werden beim ersten Laden stillschweigend migriert. &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> Group Chat erhielt Ungelesen-Indikatoren mit roten Punkt-Badges und Einladungszugang mit kind-9009-Einladungscodes (&lt;a href="https://github.com/zapcooking/frontend/pull/213">PR #213&lt;/a>). Link-Vorschauen und Nostr-Event-Einbettungen werden nun in DMs und Gruppennachrichten gerendert (&lt;a href="https://github.com/zapcooking/frontend/pull/218">PR #218&lt;/a>). Ein Nostr-Backup-Bereich in den Einstellungen (&lt;a href="https://github.com/zapcooking/frontend/pull/210">PR #210&lt;/a>) speichert Follows und Mute-Listen via &lt;a href="https://nostrcompass.org/de/topics/nip-78/">NIP-78&lt;/a> (Application-specific Data) verschlüsseltem Speicher mit rotierender 3-Slot-Versionierung. Startperformance verbesserte sich durch verzögerte Benachrichtigungsdienste, Lazy-DOM-Rendering via IntersectionObserver (Reduktion der DOM-Knoten von ~15.000 auf ~3.000 bei einem 200-Event-Feed) und erweiterte Outbox-Cache-TTLs (&lt;a href="https://github.com/zapcooking/frontend/pull/208">PR #208&lt;/a>). Ein anpassbares Rezeptdruck-Modal (&lt;a href="https://github.com/zapcooking/frontend/pull/205">PR #205&lt;/a>) ermöglicht das Umschalten der einzuschließenden Abschnitte mit Live-Vorschau. &lt;a href="https://github.com/BrantaOps/branta-core">Branta SDK&lt;/a> Integration (&lt;a href="https://github.com/zapcooking/frontend/pull/222">PR #222&lt;/a>) fügt Verifizierungs-Guardrails für POST- und GET-Anfragen hinzu.&lt;/p>
&lt;h3 id="keep-rust-gesteuerte-zustandsmigration">Keep: Rust-gesteuerte Zustandsmigration&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a>, der Nostr-basierte Private-Key-Manager für Android, mergte &lt;a href="https://github.com/privkeyio/keep-android/pull/178">PR #178&lt;/a>, der vier Kotlin-Konfigurationsspeicher zugunsten von Rust-gesteuertem Shared State aus der keep-mobile-Schicht löscht. Eine 10-Sekunden-Polling-Schleife wurde durch Push-basiertes &lt;code>KeepStateCallback&lt;/code> aus Rust ersetzt. &lt;a href="https://github.com/privkeyio/keep-android/pull/179">PR #179&lt;/a> fügt verschlüsseltes Backup und Restore mit Passphrase-Schutz hinzu.&lt;/p>
&lt;h3 id="mostro-mobile-dispute-chat-verschlüsselung">Mostro Mobile: Dispute-Chat-Verschlüsselung&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, der mobile Client für die Mostro P2P-Bitcoin-Handelsplattform, lieferte eine zweiphasige Migration der Dispute-Chat-Verschlüsselung. Der erste Schritt (&lt;a href="https://github.com/MostroP2P/mobile/pull/495">PR #495&lt;/a>) wechselt von mostro-spezifischem Wrapping zu Shared-Key-Verschlüsselung, die vom pubkey des Admins abgeleitet wird. Darauf aufbauend vereinheitlicht &lt;a href="https://github.com/MostroP2P/mobile/pull/501">PR #501&lt;/a> das Nachrichtenmodell mit &lt;code>NostrEvent&lt;/code> und speichert Gift-Wrap-Events verschlüsselt auf der Festplatte, konsistent mit dem Peer-to-Peer-Chat-Muster. Ein BIP-340-Signaturfix (&lt;a href="https://github.com/MostroP2P/mobile/pull/496">PR #496&lt;/a>) überschreibt die bip340-Abhängigkeit auf 0.2.0 und behebt einen &lt;code>bigToBytes()&lt;/code>-Padding-Bug, der 1-2 % der Schnorr-Signaturen ungültig machte und 100 % Fehlerrate für Schlüssel verursachte, deren öffentlicher Schlüssel mit &lt;code>0x00&lt;/code> beginnt. Bestelldetails zeigen nun menschenlesbare Status-Labels statt roher Protokollwerte, lokalisiert in Englisch, Spanisch, Italienisch und Französisch (&lt;a href="https://github.com/MostroP2P/mobile/pull/502">PR #502&lt;/a>). HalCash wurde hinzugefügt und SEPA als Zahlungsmethode entfernt (&lt;a href="https://github.com/MostroP2P/mobile/pull/493">PR #493&lt;/a>), da SEPA-Überweisungen 24 Stunden überschreiten können (SEPA Instant bleibt).&lt;/p>
&lt;p>Auf der Serverseite behebt &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> die Wiederherstellung von Dispute-Sitzungen, um das Initiator-Feld einzuschließen (&lt;a href="https://github.com/MostroP2P/mostro/pull/599">PR #599&lt;/a>), und schließt nun automatisch aktive Disputes, wenn ein Verkäufer Gelder freigibt, wobei ein Settled-Nostr-Event veröffentlicht wird, damit Admin-Clients die Auflösung sehen (&lt;a href="https://github.com/MostroP2P/mostro/pull/606">PR #606&lt;/a>).&lt;/p>
&lt;h2 id="fünf-jahre-nostr-im-februar">Fünf Jahre Nostr im Februar&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-01-28-newsletter/#f%C3%BCnf-jahre-nostr-im-januar">Der Newsletter des letzten Monats&lt;/a> zeichnete Nostrs Januar-Meilensteine von der frühen Entwicklung über den Damus-Durchbruch bis zur Sicherheitsinfrastruktur im Jahr 2026 nach. Dieser Rückblick behandelt, was in jedem Februar von 2021 bis 2026 geschah.&lt;/p>
&lt;h3 id="februar-2021-die-neufassung">Februar 2021: Die Neufassung&lt;/h3>
&lt;p>Drei Monate nach seiner Entstehung brachte Nostrs Februar die folgenreichste frühe Änderung des Protokolls hervor. Am 14.-15. Februar &lt;a href="https://github.com/nostr-protocol/nostr/commit/33a1a70">schrieb fiatjaf NIP-01 um&lt;/a> und ersetzte das ursprüngliche Nachrichtenformat durch das EVENT/REQ/CLOSE-Modell, das das Protokoll bis heute verwendet. Vor dieser Neufassung kommunizierten Clients und Relays über eine einfachere Struktur. Die Trennung von Event-Veröffentlichung (EVENT) und Subscription-Management (REQ/CLOSE) ermöglichte relay-seitige Filterung, die sich als wesentlich für die Skalierung erweisen sollte.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> kam im selben Monat hinzu und fügte verschlüsselte Direktnachrichten über Shared Secrets aus Diffie-Hellman-Schlüsselaustausch über secp256k1 hinzu. Die Verschlüsselung war grundlegend (AES-256-CBC) und wurde später durch die geprüfte Kryptografie von &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> ersetzt, gab aber der Handvoll früher Nutzer ihren ersten privaten Kommunikationskanal auf dem Protokoll.&lt;/p>
&lt;p>Das Tooling expandierte mit &lt;a href="https://github.com/fiatjaf/noscl">noscl&lt;/a>, einem Go-Kommandozeilen-Client für terminalbasierte Relay-Interaktion, und futurepaul startete &lt;a href="https://github.com/futurepaul/nostr-rs">nostr-rs&lt;/a>, eine frühe Rust-Implementierung. Das gesamte Netzwerk lief auf zwei oder drei Relays, koordiniert über eine &lt;a href="https://t.me/nostr_protocol">Telegram-Gruppe&lt;/a>, mit ungefähr sieben aktiven Mitwirkenden.&lt;/p>
&lt;h3 id="februar-2022-aufbau-von-momentum">Februar 2022: Aufbau von Momentum&lt;/h3>
&lt;p>Der &lt;a href="https://news.ycombinator.com/item?id=29749061">Hacker-News-Beitrag&lt;/a> vom 31. Dezember 2021 zog weiterhin Entwickler bis in den Februar hinein an. Das &lt;a href="https://github.com/nostr-protocol/nostr">nostr-protocol/nostr&lt;/a>-Repository (das formale &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> existierte erst ab Mai 2022) erhielt im Februar sechs Pull Requests, darunter NIP-13 (Proof of Work) von vinliao, NIP-14 (Reputation) von fiatjaf, NIP-15 (Resource Relations) von Cameri und &lt;a href="https://github.com/nostr-protocol/nostr/pull/75">NIP-17&lt;/a> (Git Updates Over Nostr) von melvincarvalho. Die NIP-Nummer wurde später Private Direct Messages zugewiesen; Git-Zusammenarbeit auf Nostr wurde separat fortgesetzt durch das, was &lt;a href="https://gitworkshop.dev">gitworkshop.dev&lt;/a> wurde.&lt;/p>
&lt;p>Greg Heartsfields &lt;a href="https://github.com/scsibug/nostr-rs-relay">nostr-rs-relay&lt;/a> war das Arbeitspferd des Monats mit 34 Commits und drei Releases. Version 0.5.0 am 12. Februar fügte &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a> verifizierte Nutzer-Publishing-Limits hinzu. Die Versionen 0.5.1 und 0.5.2 folgten in den nächsten zwei Wochen, und das Relay bewältigte den Großteil des Netzwerk-Traffics allein.&lt;/p>
&lt;p>Robert C. Martin (Uncle Bob) baute &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, einen Clojure-Desktop-Client, und verzeichnete 69 Commits zwischen dem 18. Januar und Ende Februar. Sein Engagement brachte Aufmerksamkeit aus der breiteren Software-Engineering-Community. fiatjafs &lt;a href="https://github.com/fiatjaf/nos2x">nos2x&lt;/a> Browser-Erweiterung lieferte &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> Decrypt-Unterstützung und Relay-Preference-Policies im Februar und implementierte das &lt;code>window.nostr&lt;/code>-Interface (&lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a>), das Web-Clients noch heute für Key-Delegation nutzen.&lt;/p>
&lt;p>&lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a>, weiterhin der primäre Web-Client, erhielt am 13. Februar &lt;code>web+nostr&lt;/code>-Protokoll-Handler-Registrierung, ein früher Versuch des Deep-Linking zwischen Nostr-Anwendungen. &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> verschärfte die NIP-05-Validierung. &lt;a href="https://github.com/nbd-wtf/go-nostr">go-nostr&lt;/a> fügte NIP-04-Encrypted-DM-Unterstützung und NIP-12 (Generic Tag Queries) Parsing über 11 Commits hinzu. Das Netzwerk lief auf ungefähr 7-15 Relays mit einer aktiven Nutzerbasis wahrscheinlich in den niedrigen Hunderten. Damus und Nostream existierten noch nicht und würden erst im April 2022 erscheinen.&lt;/p>
&lt;h3 id="februar-2023-internationale-aufmerksamkeit">Februar 2023: Internationale Aufmerksamkeit&lt;/h3>
&lt;p>Februar 2023 brachte Nostr seine größte Welle öffentlicher Aufmerksamkeit. &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>, der iOS-Client von William Casarin, war am &lt;a href="https://www.coindesk.com/tech/2023/02/01/decentralized-social-media-project-nostrs-damus-gets-listed-on-apple-app-store">31. Januar im Apple App Store zugelassen worden&lt;/a> nach wiederholten Ablehnungen. Am 1. Februar erreichte er die Top 10 im Bereich US Social Networking. Zwei Tage später, am 2. Februar, &lt;a href="https://techcrunch.com/2023/02/02/damus-pulled-from-apples-app-store-in-china-after-two-days/">entfernte Apple Damus aus Chinas App Store&lt;/a>, Berichten zufolge auf Antrag der Cyberspace Administration of China.&lt;/p>
&lt;p>Große Medien wie TechCrunch und CoinDesk berichteten über die Entfernung und verstärkten das Bewusstsein sowohl für die App als auch für das Protokoll. Einzigartige öffentliche Schlüssel mit Metadaten auf nostr.directory überschritten am 3. Februar 300.000. Alle Relays wurden von Enthusiasten betrieben, die aus eigener Tasche zahlten, und die Infrastruktur kämpfte, die Last zu bewältigen. Etwa 289 Relays wurden Anfang Februar erfasst, eine Zahl, die weiter anstieg.&lt;/p>
&lt;p>Das &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> verzeichnete in diesem Monat 29 gemergte Pull Requests, die höchste Einzelmonatszahl in der Geschichte des Protokolls bis dahin. &lt;a href="https://github.com/nostr-protocol/nips/pull/224">NIP-57&lt;/a> (Lightning Zaps) und &lt;a href="https://github.com/nostr-protocol/nips/pull/220">NIP-23&lt;/a> (Long-form Content) wurden beide am 13. Februar gemergt und fügten Bitcoin-Mikrozahlungen hinzu und erweiterten Nostr an einem einzigen Tag über kurze Beiträge hinaus. &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> (Relay List Metadata) wurde eine Woche zuvor am 7. Februar gemergt und ermöglichte das darauffolgende Outbox-Modell. &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Nostr Connect) und &lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a> (Badges) landeten ebenfalls vor Monatsende.&lt;/p>
&lt;p>Die Human Rights Foundation &lt;a href="https://hrf.org/devfund2023q1">vergab 50.000 US-Dollar an William Casarin für Nostr- und Damus-Entwicklung&lt;/a> am 21. Februar, einer der ersten institutionellen Grants für ein Nostr-Projekt. OpenSats hatte seinen Nostr-Fonds noch nicht gestartet (das kam im &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">Juli 2023&lt;/a>).&lt;/p>
&lt;h3 id="februar-2024-protokollbeständigkeit">Februar 2024: Protokollbeständigkeit&lt;/h3>
&lt;p>Februar 2024 verlagerte den Fokus von Wachstum auf Protokollbeständigkeit. &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> (Private Direct Messages), seit dem vergangenen Juli offen, arbeitete auf einen Ersatz für die alternde &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> Verschlüsselung mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>s geprüfter Kryptografie und &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift-Wrapping hin. NIP-04 leckte Metadaten an Relay-Betreiber, die Sender-Empfänger-Paare sehen konnten. NIP-17 verbirgt die Absenderidentität hinter Einmal-Schlüsselpaaren und wurde im Frühjahr nach einer letzten Überprüfungsrunde im März gemergt.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> (Simple Groups) &lt;a href="https://github.com/nostr-protocol/nips/pull/566">wurde am 28. Februar gemergt&lt;/a> nach monatelanger Diskussion und definiert, wie Relays moderierte Gruppenchats mit Admin-Rollen und Zugangskontrolle hosten können. &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> (imeta-Tags) wurde am 1. Februar gemergt und standardisiert, wie Clients Bilddimensionen und Blurhash-Vorschauen an Medien-Events anhängen.&lt;/p>
&lt;p>Am 16. Februar fügte das NIPs-Repository &lt;a href="https://github.com/nostr-protocol/nips/commit/62c48eff">BREAKING.md&lt;/a> hinzu, eine Datei zur Verfolgung rückwärtskompatibler Änderungen an der Protokollspezifikation. Ihre Erstellung bestätigte, dass Nostr einen Reifegrad erreicht hatte, bei dem Breaking Changes formale Dokumentation erforderten.&lt;/p>
&lt;p>Zweiundzwanzig Pull Requests wurden in diesem Monat gemergt. &lt;a href="https://github.com/cashubtc/npubcash-server">npub.cash&lt;/a> startete als Lightning-Adressdienst, der jedem npub den Empfang von Zahlungen ermöglicht, ohne einen Server zu betreiben. Ein &lt;a href="https://arxiv.org/abs/2402.05709">akademisches Paper&lt;/a>, veröffentlicht am 8. Februar, stellte fest, dass 95 % der kostenlosen Relays die Betriebskosten nicht durch Spenden decken konnten, wobei 35 % der kostenpflichtigen Relays Zugangsgebühren unter 1.000 sats (damals ungefähr 0,45 US-Dollar) erhoben.&lt;/p>
&lt;h3 id="februar-2025-infrastrukturwachstum">Februar 2025: Infrastrukturwachstum&lt;/h3>
&lt;p>Februar 2025 brachte 28 gemergte Pull Requests für das NIPs-Repository. Ein &lt;a href="https://nostrcompass.org/de/topics/nip-62/">Right to Vanish&lt;/a>-NIP wurde am 19. Februar gemergt und definiert, wie Nutzer die Löschung ihrer Daten von Relays anfordern können, als Reaktion auf regulatorische Fragen zu Datenportabilität und Nutzerkontrolle.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a> (Cashu Wallet) und NIP-61 (Nutzaps) erhielten Vereinfachungs-Updates, die das Ecash-Token-Speicherformat strafften. Ein q-Tag (Quote-Tag) Rollout setzte sich über mehrere NIPs fort und standardisierte, wie Events andere Events für Zitierung und Threading referenzieren.&lt;/p>
&lt;p>Client-Releases markierten stetigen Fortschritt. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> v0.3.0 Alpha erschien am letzten Januartag, mit fortgesetzter Adoption im Februar. Primal v2.1 folgte am 7. Februar, und &lt;a href="https://github.com/0ceanSlim/grain">GRAIN&lt;/a> v0.3.0, eine Go-Relay-Implementierung, am 21. Februar.&lt;/p>
&lt;p>NOSTRLDN v5 brachte die Londoner Nostr-Community zu ihrem fünften Meetup zusammen. Eine DVMCP-Bridge verband Nostrs Data Vending Machines (&lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a>) mit dem Model Context Protocol und deutete die KI-Agenten-Integrationsarbeit an, die im folgenden Monat kam.&lt;/p>
&lt;h3 id="februar-2026-jenseits-von-social-media">Februar 2026: Jenseits von Social Media&lt;/h3>
&lt;p>&lt;em>Die Aktivität vom Februar 2026 stammt aus Nostr-Compass-Ausgaben &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/">#8&lt;/a> bis &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/">#11&lt;/a>.&lt;/em>&lt;/p>
&lt;p>Februar 2026 brachte das breiteste Spektrum an Application-Layer-Entwicklung in einem einzelnen Nostr-Monat. &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> lieferte seine &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#mostro-liefert-erste-%C3%B6ffentliche-beta">erste öffentliche Beta&lt;/a> für dezentralen Peer-to-Peer-Bitcoin-Handel, und &lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a> erreichte &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#zapstore-v100">1.0 Stable&lt;/a> nach Monaten in der Release-Candidate-Testphase. &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise v0.3.0&lt;/a> lieferte Echtzeit-&lt;a href="https://nostrcompass.org/de/topics/mls/">Marmot&lt;/a>-verschlüsseltes Messaging mit Amber-Signer-Unterstützung und über 160 gemergten Verbesserungen.&lt;/p>
&lt;p>Konkurrierende KI-Agenten-Vorschläge von pablof7z (NIP-AE für Agenten-Workflows, NIP-AD für MCP-Server-Ankündigungen) und joelklabo (AI Agent Messages) kamen zusammen mit einem &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#nip-updates">DVM Agent Coordination-Vorschlag&lt;/a>, der &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> erweitert. &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#contextvm-mcp-%C3%BCber-nostr">ContextVM&lt;/a> lieferte SDK-Verbesserungen, die das Model Context Protocol mit dem Nostr-Transport verbinden. &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#burrow-mls-messaging-f%C3%BCr-ki-agenten">Burrow&lt;/a> fügte &lt;a href="https://nostrcompass.org/de/topics/mls/">Marmot&lt;/a>-verschlüsseltes Messaging sowohl für KI-Agenten als auch für Menschen hinzu und erweiterte Nostrs Identitäts- und Relay-Infrastruktur in die Machine-to-Machine-Kommunikation.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#fips-nostr-natives-mesh-networking">FIPS&lt;/a> lieferte eine funktionierende Rust-Implementierung von Nostr-nativem Mesh-Networking, die secp256k1-Schlüsselpaare als Knotenidentitäten mit transport-agnostischem Routing über UDP, Ethernet, Bluetooth oder LoRa-Radio verwendet. Sein Design zeigte, dass Nostrs Schlüsselmodell über Social Media hinaus in physische Netzwerkinfrastruktur reicht.&lt;/p>
&lt;p>&lt;a href="https://opensats.org/blog/fifteenth-wave-of-nostr-grants">OpenSats kündigte seine fünfzehnte Welle von Nostr-Grants an&lt;/a> und finanzierte Projekte wie ContextVM und Nostube. Protokolländerungen umfassten &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> Hold-Invoice-Unterstützung für Nostr Wallet Connect und &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a> (Counting Results) HyperLogLog für relay-seitige Zählschätzung. &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a> (Trusted Assertions) Service-Provider-Auffindbarkeit für &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web-of-Trust&lt;/a>-Bewertung wurde ebenfalls gemergt. &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> begann ein vollständiges API-Redesign, während Nostria 3.0 und &lt;a href="https://github.com/FROSTR-ORG">Frostr&lt;/a> (iOS TestFlight) beide erschienen. &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>s lokale Cache-Schicht adressierte die Medienverfügbarkeit über Relays.&lt;/p>
&lt;h3 id="ausblick">Ausblick&lt;/h3>
&lt;p>Fünf Februare Protokollgeschichte zeigen eine konsistente Progression von grundlegender Arbeit zu Application-Layer-Diversifizierung, mit dem Nutzerzustrom 2023 als Wendepunkt. 2021 arbeiteten sieben Mitwirkende über drei Relays. Bis 2026 unterstützte dasselbe Protokoll Mesh-Networking und autonome Agenten-Vorschläge auf Produktionsinfrastruktur.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut oder Neuigkeiten zu teilen hat: &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DM erreichbar&lt;/a> oder auf Nostr findbar.&lt;/p></content:encoded></item><item><title>Nostr Compass #11</title><link>https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/</link><pubDate>Wed, 25 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">White Noise v0.3.0&lt;/a> bringt Echtzeit-Messaging und Amber-Signer-Unterstützung mit über 160 gemergten Verbesserungen. &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">diVine 1.0.5&lt;/a> behebt Video-Wiedergabeprobleme und fügt Kind-22236-View-Events für Creator-Analytics hinzu. &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> und &lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a> liefern Updates. &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> veröffentlicht eine funktionierende Rust-Implementierung von Nostr-nativem Mesh-Networking. Notecrumbs erhält Stabilitäts-Fixes für damus.io-Link-Vorschauen. &lt;a href="https://contextvm.org">ContextVM&lt;/a> verbindet Nostr mit dem Model Context Protocol. Neue Projekte umfassen &lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> für MLS-verschlüsseltes Messaging zwischen KI-Agenten und Menschen sowie &lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> für browserbasierte Vault- und Identitätsverwaltung. Die Deep Dives dieser Woche behandeln NIP-55 Android-Signing und NIP-60 Cashu-Wallet-Synchronisierung.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">White Noise v0.3.0&lt;/a> bringt Echtzeit-Messaging und Amber-Signer-Unterstützung mit über 160 gemergten Verbesserungen. &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">diVine 1.0.5&lt;/a> behebt Video-Wiedergabeprobleme und fügt Kind-22236-View-Events für Creator-Analytics hinzu. &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a>, &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> und &lt;a href="https://github.com/dmcarrington/unfiltered">Unfiltered&lt;/a> liefern Updates. &lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> veröffentlicht eine funktionierende Rust-Implementierung von Nostr-nativem Mesh-Networking. Notecrumbs erhält Stabilitäts-Fixes für damus.io-Link-Vorschauen. &lt;a href="https://contextvm.org">ContextVM&lt;/a> verbindet Nostr mit dem Model Context Protocol. Neue Projekte umfassen &lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> für MLS-verschlüsseltes Messaging zwischen KI-Agenten und Menschen sowie &lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> für browserbasierte Vault- und Identitätsverwaltung. Die Deep Dives dieser Woche behandeln NIP-55 Android-Signing und NIP-60 Cashu-Wallet-Synchronisierung.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="notecrumbs-stabilitätsverbesserungen">Notecrumbs Stabilitätsverbesserungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs">Notecrumbs&lt;/a>, der Nostr-API- und Webserver, der damus.io-Link-Vorschauen antreibt, erhielt eine Reihe von Fixes für Zuverlässigkeitsprobleme.&lt;/p>
&lt;p>Ein &lt;a href="https://github.com/damus-io/notecrumbs/commit/3f201f63ea49">Nebenläufigkeits-Fix&lt;/a> ersetzte den Inflight-Deduplizierungsmechanismus durch Watch-Channels. Zwei Aufrufer, die dieselbe Notiz anforderten, konnten beide zu Fetchern werden, was zu einem Deadlock führte, wenn einer abschloss, bevor der andere die Benachrichtigung abonniert hatte. Watch-Channels mit atomaren Operationen stellen sicher, dass nur ein Fetcher läuft, während andere auf das Ergebnis warten.&lt;/p>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs/commit/b0d0bf5a2f17">Rate-Limiting&lt;/a> implementiert eine zweischichtige Verteidigung gegen Relay-Hammering. Wenn Nutzer wiederholt auf dieselbe Notiz zugreifen, entprellt das System nun Relay-Anfragen mit einem 5-Minuten-Cooldown-Fenster. Dieser Schutz erstreckt sich auf alle &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a>-Typen und Profil-Feeds und verhindert proportionalen Spam an Relays bei starkem Traffic.&lt;/p>
&lt;p>&lt;a href="https://github.com/damus-io/notecrumbs/commit/38670b3972b6">Performance-Verbesserungen&lt;/a> verlagerten sekundäre Datenabrufe in Hintergrund-tokio-Tasks. Seiten rendern nun sofort mit gecachten Daten, statt bei sequenziellen Relay-Timeouts zu blockieren, die bis zu 7,5 Sekunden aufaddieren konnten. Ein Upgrade auf nostrdb 0.10.0 begleitete diese Fixes.&lt;/p>
&lt;h3 id="contextvm-mcp-über-nostr">ContextVM: MCP über Nostr&lt;/h3>
&lt;p>&lt;a href="https://contextvm.org">ContextVM&lt;/a> ist eine Suite von Werkzeugen, die Nostr und das &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a> (MCP) verbindet. Aktuelle Commits führten die neue &lt;a href="https://docs.contextvm.org/spec/ceps/cep-8/">CEP-8&lt;/a>-Spezifikation ein, die Zahlungen ermöglicht, und trieben im Februar &lt;a href="https://github.com/ContextVM/sdk">SDK&lt;/a>-Verbesserungen voran.&lt;/p>
&lt;p>Das SDK stellt TypeScript-Client- und Server-Transports für MCP über Nostr bereit. Entwickler können MCP-Server über das Nostr-Netzwerk exponieren, und Clients verbinden sich mit ihnen, während Relays als blinder Nachrichtenbus verschlüsselte Events weiterleiten. Clients ohne native Nostr-Unterstützung kommen über eine Proxy-Schicht hinein. Die Bibliothek übernimmt Relay-Management und kryptografisches Signing für Event-Authentifizierung und funktioniert sowohl in Node.js- als auch in Browser-Umgebungen.&lt;/p>
&lt;p>&lt;a href="https://github.com/ContextVM/cvmi">CVMI&lt;/a> stellt ein CLI für Server-Discovery und Methoden-Aufruf bereit. &lt;a href="https://github.com/ContextVM/relatr">Relatr&lt;/a> berechnet personalisierte Vertrauenswerte aus sozialer Graphdistanz kombiniert mit Profilvalidierung.&lt;/p>
&lt;p>ContextVM positioniert sich als Brückenschicht: Bestehende MCP-Server gewinnen Nostr-Interoperabilität und behalten dabei ihre konventionellen Transports.&lt;/p>
&lt;h3 id="white-noise-dokumentiert-dezentrale-nutzersuche">White Noise dokumentiert dezentrale Nutzersuche&lt;/h3>
&lt;p>Ein &lt;a href="https://blog.jgmontoya.com/2026/02/22/user-search.html">Blogbeitrag von jgmontoya&lt;/a> erläutert, wie &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a> die Nutzersuche über das dezentrale Relay-Netzwerk handhabt.&lt;/p>
&lt;p>Die Verteilung von Profilen schafft die Herausforderung: Anders als zentralisierte Messenger mit einheitlichen Datenbanken verteilen sich Nostr-Profile über Dutzende von Relays ohne zentralen Index. White Noise löst dies durch eine Producer-Consumer-Architektur, die parallel läuft.&lt;/p>
&lt;p>Ein Producer-Prozess erweitert kontinuierlich den sozialen Graphen ausgehend von den Follows des Nutzers, ruft Follow-Listen in zunehmenden Abständen ab und stellt entdeckte pubkeys zur Profilauflösung in die Warteschlange. Der Consumer löst Treffer durch fünf zunehmend aufwändigere Stufen auf: lokale Nutzertabelle (schnellste), gecachte Profile aus vorherigen Suchen, verbundene Relays, Nutzer-Relay-Listen gemäß &lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a> und direkte Abfragen an nutzerdeklarierten Relays (langsamste).&lt;/p>
&lt;p>Kalte Suchen dauern etwa 3 Sekunden, während warme Suchen aus dem Cache auf rund 10 Millisekunden fallen. Für neue Nutzer ohne etablierte soziale Graphen injiziert das System gut vernetzte Bootstrap-Knoten, um die Suchfunktion sicherzustellen. Gruppenmitgliedschaft liefert ein implizites soziales Signal neben expliziten Follows.&lt;/p>
&lt;p>Instrumentierung erwies sich laut Autor als entscheidend für die Optimierung. Ohne Metriken war Verbesserung reines Raten.&lt;/p>
&lt;h3 id="fips-nostr-natives-mesh-networking">FIPS: Nostr-natives Mesh-Networking&lt;/h3>
&lt;p>&lt;a href="https://github.com/jmcorgan/fips">FIPS&lt;/a> (Free Internetworking Peering System) ist eine funktionierende Rust-Implementierung eines selbstorganisierenden Mesh-Netzwerks, das Nostr-Schlüsselpaare (secp256k1) als Knotenidentitäten verwendet. Die &lt;a href="https://github.com/jmcorgan/fips/blob/master/docs/design/fips-intro.md">Design-Dokumentation&lt;/a> begleitet funktionalen Code.&lt;/p>
&lt;p>Das Protokoll adressiert Infrastruktur-Unabhängigkeit: Knoten entdecken sich automatisch ohne zentrale Server oder Zertifizierungsstellen. Ein Spanning-Tree bietet koordinatenbasiertes Routing, während bloom filter Erreichbarkeitsinformationen verbreiten und Knoten Weiterleitungsentscheidungen mit rein lokalem Wissen treffen lassen. Transport-Agnostizismus bedeutet, dass dasselbe Protokoll über UDP, Ethernet, Bluetooth, LoRa-Radio oder jedes datagrammfähige Medium funktioniert.&lt;/p>
&lt;p>Zwei Verschlüsselungsschichten schützen den Traffic. Link-Layer-Verschlüsselung (Noise-IK-Muster) sichert Hop-für-Hop-Kommunikation zwischen Nachbarn mit gegenseitiger Authentifizierung und Forward Secrecy. Session-Layer-Verschlüsselung (Noise-XK-Muster) bietet Ende-zu-Ende-Schutz gegen Zwischenrouter, wobei nur das Ziel die Nutzlast entschlüsseln kann. Dies spiegelt wider, wie TLS HTTP-Traffic schützt, auch wenn er nicht vertrauenswürdige Netzwerke traversiert.&lt;/p>
&lt;p>Die Architektur verwendet einen &amp;ldquo;Greedy Embedding&amp;rdquo;-Spanning-Tree für das Routing. Jeder Knoten erhält Koordinaten basierend auf seiner Position relativ zur Baumwurzel und dem Elternknoten. Pakete werden gierig zu Koordinaten weitergeleitet, die dem Ziel näher sind, wobei bloom filter erreichbare Endpunkte bekannt machen. Wenn gieriges Routing versagt (lokale Minima), können Knoten auf baumbasierte Pfade zurückfallen.&lt;/p>
&lt;p>Die Rust-Implementierung umfasst bereits UDP-Transport mit bloom-filter-basierter Discovery. Zukünftige Arbeit zielt auf Nostr-Relay-Integration für Peer-Bootstrapping.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>Diese Woche brachte Releases bei Relay-Infrastruktur und Client-Anwendungen, wobei auch neue Projekte in den Bereich eintraten.&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>, das All-in-One-Persönlichkeitsrelay, das vier Relay-Funktionen mit einem &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienserver bündelt, lieferte &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0">v1.2.0&lt;/a>. Dieser Release verlässt die RC-Phase, die &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#haven-v120-rc3">letzte Woche behandelt wurde&lt;/a>.&lt;/p>
&lt;p>Multi-npub-Unterstützung erlaubt es einer einzigen HAVEN-Instanz, mehrere Nostr-Identitäten durch Whitelisting zu bedienen, mit neuer Blacklisting-Funktionalität für Zugangskontrolle. Das Backup-System wurde neu geschrieben: Es verwendet das portable JSONL-Format, und ein &lt;code>haven restore&lt;/code>-Befehl importiert Notizen aus diesen Dateien. Cloud-Storage-Integration fügt &lt;code>--to-cloud&lt;/code>- und &lt;code>--from-cloud&lt;/code>-Flags für Remote-Backup-Management hinzu.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web-of-Trust&lt;/a>-Verbesserungen umfassen konfigurierbare Tiefenebenen für Vertrauensberechnungen und automatische 24-Stunden-Aktualisierungsintervalle mit Lock-freier Optimierung zur Reduzierung des Speicher-Overheads. Nutzeragent-Konfiguration für Relay-Anfragen und konfigurierbare Blastr-Timeout-Einstellungen runden den Release ab, zusammen mit Datenexport in komprimiertes 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>, die &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-basierte verschlüsselte Messaging-App, die das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll implementiert, lieferte &lt;a href="https://github.com/marmot-protocol/whitenoise/releases/tag/v0.3.0">v0.3.0&lt;/a> mit über 160 gemergten Verbesserungen.&lt;/p>
&lt;p>Dieser Release bringt Echtzeit-Messaging durch Streaming-Verbindungen statt Polling, sodass Nachrichten sofort ankommen. Amber-Unterstützung (&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>) bedeutet, dass private Schlüssel die App nie berühren müssen. Bild-Sharing funktioniert nun mit Upload-Fortschrittsanzeige und Blurhash-Platzhaltern während des Ladens. Vollbild-Anzeige unterstützt Pinch-to-Zoom.&lt;/p>
&lt;p>Gruppen-Messaging erhielt Zuverlässigkeitsverbesserungen mit Chat-Listen, die Absendernamen anzeigen, und &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-Verschlüsselung stellt Forward Secrecy sicher. Die Nutzersuche erweitert sich von Follows bis zu vier Trennungsgraden, mit Ergebnissen, die beim Auffinden eingestreamt werden.&lt;/p>
&lt;p>Eine Breaking-Change setzt bei einem Upgrade alle lokalen Daten zurück aufgrund von Marmot-Protokolländerungen und dem Wechsel zu verschlüsseltem lokalen Speicher. Nutzer sollten nsec-Schlüssel vor dem Upgrade sichern.&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>, der Kurzform-Looping-Video-Client auf der Basis restaurierter Vine-Archive, lieferte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.5">1.0.5&lt;/a> mit umfangreichen Video-Wiedergabe-Fixes und einem neuen dezentralen Analytics-System.&lt;/p>
&lt;p>Video-Wiedergabeprobleme dominierten die Fixes: Phantom-Pause, doppelter Ton zwischen Videos, schwarzer Blitz zwischen Thumbnails und ersten Frames sowie Abstürze durch verworfene Player sind alle behoben. Ein gepoolter Video-Player übernimmt nun den Home-Feed für konsistente Wiedergabe.&lt;/p>
&lt;p>Kind-22236-ephemere View-Events ermöglichen Creator-Analytics und Empfehlungen. Das System verfolgt Traffic-Quellen (Home, Discovery-Varianten, Profil, Share, Suche) und Loop-Zählungen und filtert dabei Eigenaufrufe heraus. Lokale Dateipfad-Leaks in Nostr-Event-imeta-Tags werden mit kanonischen Blossom-URLs behoben, die clientseitig gemäß BUD-01-Spezifikation konstruiert werden.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Remote-Signer-Verbesserungen umfassen parallelisierte Relay-Verbindungen und Callback-URL-Unterstützung. Android stellt WebSocket-Verbindungen beim App-Resume nach Signer-Genehmigung wieder her.&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>, der webbasierte Nostr-Client mit Fokus auf Relay-Management und &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web-of-Trust&lt;/a>-Moderation, lieferte &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.30">0.6.30&lt;/a> mit Video-Thumbnail-Unterstützung, was das Medien-Browsing in Feeds verbessert. Ebenfalls aktualisiert:&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>, der iOS-Nostr-Client, lieferte &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases/tag/1.26.0">v1.26.0&lt;/a> mit einem neuen Live-Streams-Feed-Bereich und einem neu gestalteten Einstellungsbildschirm. GIFs können nun auf Blossom-Medienservern gehostet werden, was die Abhängigkeit von zentralisierten Diensten reduziert. Klipy-GIFs-Integration bietet einen Fallback, wenn Tenor nicht verfügbar ist. Jahresüberschriften in DM-Gesprächen und Anzeige der Erwähnungsanzahl runden die nutzerseitigen Änderungen ab.&lt;/p>
&lt;p>Entwickler-Werkzeuge und CLI-Apps erhielten diese Woche ebenfalls 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>, fiatjafs Kommandozeilen-Schweizer-Taschenmesser für Nostr, lieferte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.5">v0.18.5&lt;/a> mit einem neuen &lt;code>nak profile&lt;/code>-Unterbefehl zum Abrufen und Anzeigen von Nutzerprofilen. Der &lt;code>git clone&lt;/code>-Befehl unterstützt nun &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a>-Namen in &lt;code>nostr://&lt;/code>-URIs und ermöglicht das Klonen von Repositories über menschenlesbare Identifikatoren. Zwei weitere Projekte lieferten ebenfalls Releases:&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>, der &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-verschlüsselte Messenger für iOS, Android und Desktop, der auf dem &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll aufgebaut ist, lieferte &lt;a href="https://github.com/sledtools/pika/releases/tag/pikachat-v0.5.3">v0.5.3&lt;/a>. Aktuelle Commits fügen Datei-Upload und Drag-and-Drop-Medienunterstützung für die Desktop-App hinzu, neben Cloudflare-Workers-Deployment-Fixes.&lt;/p>
&lt;p>Pika verwendet einen Rust-Kern, der die gesamte Geschäftslogik besitzt, während iOS (SwiftUI) und Android (Kotlin) als schlanke UI-Schichten fungieren, die Zustands-Snapshots rendern. MDK (Marmot Development Kit) stellt die MLS-Implementierung bereit. Das Projekt weist auf Alpha-Status hin und warnt vor dem Einsatz für sensible Workloads.&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>, die dezentrale Mitfahrplattform mit Cashu-Zahlungen, lieferte &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.6">v0.2.6&lt;/a>. Dieser Release behebt TalkBack-Barrierefreiheitsprobleme und löst Bugs, bei denen Fahrer von der Nearby-Liste verschwanden, wenn sie die Zahlungsmethode wechselten, oder bei denen ausgewählte Fahrerzählungen nicht aktualisierten, wenn Fahrer offline gingen.&lt;/p>
&lt;p>Das &amp;ldquo;Send to All&amp;rdquo;-Feature heißt nun &amp;ldquo;Broadcast RoadFlare&amp;rdquo; mit Fixes für stille Fehler bei frischen Fahrer-Installationen. Ridestr implementiert HTLC-Escrow für vertrauenslose Fahrtbezahlungen und &lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a>-Wallet-Sync über Geräte hinweg.&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>, die Instagram-ähnliche Foto-Sharing-App für Android, lieferte &lt;a href="https://github.com/dmcarrington/unfiltered/releases/tag/v1.0.6">v1.0.6&lt;/a> mit verbesserter Nutzersuche und automatischer Relay-Wiederverbindung alle 60 Sekunden.&lt;/p>
&lt;p>Mit Kotlin und Jetpack Compose gebaut, verwendet Unfiltered rust-nostr-Bindings und Blossom-kompatible Server für Bild-Hosting. Amber-Integration (&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>) übernimmt sicheres Schlüsselmanagement. Die App zeigt Beiträge von gefolgten Accounts in chronologischer Reihenfolge ohne Algorithmen oder Werbung.&lt;/p>
&lt;p>Diese Woche starteten auch zwei neue Messaging- und Signing-Projekte.&lt;/p>
&lt;h3 id="burrow-mls-messaging-für-ki-agenten">Burrow: MLS-Messaging für KI-Agenten&lt;/h3>
&lt;p>&lt;a href="https://github.com/CentauriAgent/burrow">Burrow&lt;/a> ist ein Messenger, der das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll für MLS-verschlüsselte Kommunikation ohne Telefonnummern oder zentralisierte Server implementiert. Sowohl menschliche Nutzer als auch KI-Agenten können teilnehmen.&lt;/p>
&lt;p>Ein reiner Rust-CLI-Daemon mit JSONL-Ausgabemodus übernimmt die Integration mit automatisierten Systemen. Eine Flutter-Cross-Platform-App deckt Android, iOS, Linux, macOS und Windows ab. Medienanhänge werden zusammen mit Nachrichten verschlüsselt, und WebRTC übernimmt Audio- und Videoanrufe mit konfigurierbaren TURN-Servern.&lt;/p>
&lt;p>Burrow schichtet MLS-Verschlüsselung auf Nostr-Infrastruktur. Identität verwendet Nostr-Schlüsselpaare (secp256k1), während MLS-KeyPackages als kind-443-Events veröffentlicht werden. Nachrichten verschlüsseln mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> als kind-445-Events, und Willkommenseinladungen verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a>-Gift-Wrapping.&lt;/p>
&lt;p>&lt;a href="https://openclaw.ai">OpenClaw&lt;/a>-Integration ermöglicht KI-Agenten-Beteiligung mit vollem Werkzeugzugang. Zugangskontrolllisten mit Audit-Logging verwalten Kontakt- und Gruppenberechtigungen. Diese Kombination positioniert Burrow für Agent-zu-Agent- und Agent-zu-Mensch-Messaging-Szenarien, die Signal-Level-Verschlüsselung auf dezentraler Infrastruktur erfordern.&lt;/p>
&lt;h3 id="nostria-signer-extension">Nostria Signer Extension&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria-signer-extension">Nostria Signer&lt;/a> ist eine Chromium-basierte Browser-Erweiterung, die Vault- und Identitätsverwaltung für Nostr-Nutzer bietet.&lt;/p>
&lt;p>Mehrere Vaults mit mehreren Accounts erlauben Nutzern, Identitäten für verschiedene Kontexte zu organisieren. Internationalisierung umfasst RTL-Sprachunterstützung. Mit Angular und TypeScript gebaut (79,2 % des Codebases), funktioniert sie sowohl als Browser-Erweiterung als auch als Progressive Web App.&lt;/p>
&lt;p>Nostria Signer implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> für Browser-Extension-Signing und ermöglicht webbasierten Nostr-Clients, Event-Signaturen anzufordern, ohne direkt auf private Schlüssel zugreifen zu müssen. Automatisierte Wallet-Migration übernimmt Updates, die über den Chrome Web Store verteilt werden. Nutzer können auch aus dem &lt;code>dist/extension&lt;/code>-Ordner sideloaden.&lt;/p>
&lt;p>Entwickler betonen den experimentellen Status: Nutzer müssen ihre eigenen geheimen Wiederherstellungsphrasen verwalten, da die Entwickler keinen Zugang zu verlorenen Schlüsseln wiederherstellen können.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="formstr-zieht-in-neue-organisation-um">Formstr zieht in neue Organisation um&lt;/h3>
&lt;p>&lt;a href="https://github.com/formstr-hq/nostr-forms">Formstr&lt;/a>, die Google-Forms-Alternative auf Nostr, migrierte sein Repository von &lt;code>abh3po/nostr-forms&lt;/code> zur &lt;code>formstr-hq&lt;/code>-Organisation. Dieser OpenSats-Stipendienempfänger setzt die Entwicklung am neuen Standort fort.&lt;/p>
&lt;h3 id="bemerkenswerte-offene-prs">Bemerkenswerte offene PRs&lt;/h3>
&lt;p>Laufende Arbeiten in Nostr-Projekten:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Damus Outbox-Modell&lt;/strong> (&lt;a href="https://github.com/damus-io/damus/pull/3602">PR #3602&lt;/a>): Implementierungsplan für das Gossip-/Outbox-Relay-Modell auf iOS. Diese Architekturänderung verbessert die Nachrichtenübermittlung durch Veröffentlichung an die Relays, auf denen Empfänger tatsächlich lesen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Notedeck plattformübergreifende Benachrichtigungen&lt;/strong> (&lt;a href="https://github.com/damus-io/notedeck/pull/1296">PR #1296&lt;/a>): Natives Benachrichtigungssystem für den Damus-Desktop-Client, das Android FCM, macOS und Linux abdeckt.&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>): Aktualisiert die Wallet-Integration des Nostr Development Kit auf 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-Senden und -Empfangen für die Zeus-Lightning-Wallet.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Shopstr Encrypted Digital Delivery&lt;/strong> (&lt;a href="https://github.com/shopstr-eng/shopstr/pull/231">PR #231&lt;/a>): Fügt verschlüsselte Lieferung für digitale Güter mit dynamischer Gewichtsunterstützung für physische Artikel hinzu.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Diese Woche gemergt:&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-Auffindbarkeit&lt;/a>&lt;/strong>: Die &lt;a href="https://nostrcompass.org/de/topics/nip-85/">NIP-85&lt;/a>-Spezifikation enthält nun Hinweise dazu, wie Clients vertrauenswürdige Assertion-Provider entdecken. Wenn ein Client &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web-of-Trust&lt;/a>-Scores oder andere berechnete Metriken benötigt, kann er Relays nach kind-30085-Ankündigungen von Providern abfragen, denen der Nutzer bereits folgt oder vertraut.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2229">NIP-29 entfernt unverwaltete Gruppen&lt;/a>&lt;/strong>: Die &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>-Gruppen-Chat-Spezifikation strich die Unterstützung für unverwaltete Gruppen (bei denen jedes Mitglied andere hinzufügen konnte). Alle NIP-29-Gruppen erfordern nun relay-seitiges Management mit expliziten Admin-Rollen, was Implementierungen vereinfacht und Spam-Vektoren reduziert.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2231">NIP-11 entfernt veraltete Felder&lt;/a>&lt;/strong>: &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Relay-Informationsdokumente enthalten nicht mehr die veralteten &lt;code>software&lt;/code>- und &lt;code>version&lt;/code>-Felder. Implementierungen sollten diese aus ihren Antworten entfernen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2227">NIP-39 verschiebt Identity-Tags&lt;/a>&lt;/strong>: Externe Identitätsansprüche (&lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> &lt;code>i&lt;/code>-Tags für GitHub, Twitter usw.) wurden von kind-0-Profilen in dedizierte kind-30382-Events verschoben. Dies trennt Identitätsverifizierung von Profil-Metadaten.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>KI-Agenten-NIPs: Fortschritt:&lt;/strong>&lt;/p>
&lt;p>Vier KI-fokussierte NIPs befinden sich weiterhin in aktiver Entwicklung. Seit der &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#ki-agenten-nips-erscheinen">Berichterstattung der letzten Woche&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> (aktualisiert 19. Feb): Definiert Agenten-Identität mit kind 4199 für Agenten-Definitionen und kind 4201 für Prompting (&amp;ldquo;Nudges&amp;rdquo;). Agenten können &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a>-Datei-Metadaten für erweiterte Beschreibungen referenzieren.&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> (aktualisiert 18. Feb): Standardisiert konversationelles Messaging mit sieben ephemeren Event-Kinds (25800-25806) für Status, Streaming-Deltas, Prompts, Antworten, Tool-Aufrufe, Fehler und Abbrüche, wobei kind-31340-&amp;ldquo;AI-Info&amp;rdquo;-Events Agenten erlauben, unterstützte Modelle und Fähigkeiten anzukündigen.&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> (geöffnet 18. Feb): Erweitert &lt;a href="https://nostrcompass.org/de/topics/nip-90/">NIP-90&lt;/a> für autonome Agenten-Workflows mit Heartbeats für Agenten-Discovery, Job-Reviews für Qualitätsverfolgung, Daten-Escrow für Ergebnisverpflichtung, Workflow-Ketten für mehrstufige Pipelines und Swarm-Bidding für wettbewerbliche Provider-Auswahl. Eine Referenzimplementierung läuft unter 2020117.xyz.&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> (geöffnet 12. Feb): Standardisiert die Ankündigung von Model-Context-Protocol-Servern und Skills auf Nostr. Bereits auf der TENEX-Plattform im Einsatz.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Weitere offene PRs:&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>: Definiert, wie Clients Identität und Berechtigungen gegenüber Dienstanbietern auf Nostr nachweisen.&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 schlägt die Integration von Webxdc (dezentralisierte Webanwendungen) mit Nostr-Events vor.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-55-android-signer-application">NIP Deep Dive: NIP-55 (Android Signer Application)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/55.md">NIP-55&lt;/a> definiert, wie Android-Nostr-Clients kryptografische Operationen von dedizierten Signer-Anwendungen anfordern. Da &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise v0.3.0&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#unfiltered-v106">Unfiltered v1.0.6&lt;/a> diese Woche beide Amber-Unterstützung hinzufügten, ist das Android-Signing-Protokoll eine nähere Betrachtung wert.&lt;/p>
&lt;p>&lt;strong>Kommunikationskanäle:&lt;/strong>&lt;/p>
&lt;p>NIP-55 ermöglicht App-übergreifendes Signing durch zwei Mechanismen. Intents bieten manuelle Nutzergenehmigung mit visuellem Feedback für einmalige Operationen. Content-Resolver ermöglichen automatisiertes Signing, wenn Nutzer dauerhafte Berechtigungen erteilen, und lassen Apps im Hintergrund signieren ohne wiederholte Aufforderungen.&lt;/p>
&lt;p>Die Kommunikation verwendet das benutzerdefinierte &lt;code>nostrsigner:&lt;/code>-URI-Schema. Ein Client initiiert Kontakt mit:&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>Unterstützte Operationen:&lt;/strong>&lt;/p>
&lt;p>Die Spezifikation definiert sieben kryptografische Methoden: Event-Signing (&lt;code>sign_event&lt;/code>), Public-Key-Abruf (&lt;code>get_public_key&lt;/code>), &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a>-Verschlüsselung/-Entschlüsselung, &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung/-Entschlüsselung und Zap-Event-Entschlüsselung (&lt;code>decrypt_zap_event&lt;/code>).&lt;/p>
&lt;p>&lt;strong>Berechtigungsmodell:&lt;/strong>&lt;/p>
&lt;p>Clients rufen &lt;code>get_public_key&lt;/code> einmal auf, um eine Vertrauensbeziehung herzustellen, und erhalten den Paketnamen des Signers und den pubkey des Nutzers. Die Spezifikation schreibt vor, dass Clients diese Werte speichern und &lt;code>get_public_key&lt;/code> nie wieder aufrufen, um Fingerprinting-Angriffe zu verhindern.&lt;/p>
&lt;p>Für Signing-Anfragen können Nutzer einmalig genehmigen oder &amp;ldquo;Meine Wahl merken&amp;rdquo; für Hintergrundoperationen erteilen. Wenn Nutzer Operationen konsistent ablehnen, gibt der Signer einen &amp;ldquo;abgelehnt&amp;rdquo;-Status zurück und verhindert wiederholte Aufforderungen.&lt;/p>
&lt;p>&lt;strong>Implementierungen:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a> ist der primäre NIP-55-Signer für Android. Clients mit NIP-55-Unterstützung umfassen &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#white-noise-v030">White Noise&lt;/a>, &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#unfiltered-v106">Unfiltered&lt;/a> und andere. Webanwendungen können Signer-Antworten nicht direkt empfangen und müssen Callback-URLs oder Zwischenablagen-Operationen verwenden.&lt;/p>
&lt;p>&lt;strong>Verhältnis zu anderen Signing-NIPs:&lt;/strong>&lt;/p>
&lt;p>NIP-55 ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> (Browser-Erweiterungen) und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Remote-Signing über Relays). Während NIP-07 Desktop-Browser und NIP-46 geräteübergreifendes Signing abdeckt, bietet NIP-55 native Android-Integration mit minimaler Latenz.&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> definiert, wie &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Ecash-Wallets Zustände auf Nostr-Relays speichern und damit anwendungsübergreifende Wallet-Synchronisierung ermöglichen. Da &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#ridestr-v026">Ridestr v0.2.6&lt;/a> NIP-60 für Wallet-Sync über Geräte nutzt, verdient das Protokoll eine Betrachtung.&lt;/p>
&lt;p>&lt;strong>Event-Kinds:&lt;/strong>&lt;/p>
&lt;p>NIP-60 verwendet vier Event-Typen. Das ersetzbare kind 17375 speichert Wallet-Konfiguration einschließlich Mint-URLs und eines dedizierten privaten Schlüssels für den Empfang von P2PK-Ecash-Zahlungen. Token-Events (kind 7375) enthalten unverbrauchte kryptografische Beweise, während Ausgabenhistorie (kind 7376) Transaktionen für Nutzertransparenz aufzeichnet. Ein optionales kind 7374 verfolgt Mint-Zahlungsquotes.&lt;/p>
&lt;p>&lt;strong>Wallet-Architektur:&lt;/strong>&lt;/p>
&lt;p>Der Wallet-Zustand lebt auf Relays und ist damit über Anwendungen hinweg zugänglich. Das Wallet-Event eines Nutzers enthält verschlüsselte Referenzen auf Cashu-Mints und einen wallet-spezifischen privaten Schlüssel, der vom Nostr-Identitätsschlüssel des Nutzers getrennt ist. Diese Trennung ist wichtig: Der Wallet-Schlüssel übernimmt Ecash-Operationen, während der Nostr-Schlüssel soziale Funktionen übernimmt.&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>Proof-Management:&lt;/strong>&lt;/p>
&lt;p>Cashu-Beweise sind Inhaberinstrumente. Einmal ausgegeben, wird ein Beweis ungültig. NIP-60 verwaltet dies durch einen Rollover-Mechanismus: Beim Ausgeben erstellen Clients ein neues Token-Event mit verbleibenden unverbrauchten Beweisen und löschen das Original via &lt;a href="https://nostrcompass.org/de/topics/nip-09/">NIP-09&lt;/a>. Gelöschte Token-IDs kommen in ein &lt;code>del&lt;/code>-Feld für Zustandsverfolgung.&lt;/p>
&lt;p>Clients sollten Beweise regelmäßig gegen Mints validieren, um zuvor ausgegebene Anmeldeinformationen zu erkennen. Mehrere Token-Events pro Mint sind zulässig, und Ausgabenhistorie-Events helfen Nutzern, Transaktionen zu verfolgen, obwohl sie optional sind.&lt;/p>
&lt;p>&lt;strong>Sicherheitsmodell:&lt;/strong>&lt;/p>
&lt;p>Alle sensiblen Daten verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung. Der private Wallet-Schlüssel erscheint nie im Klartext. Da Relays verschlüsselte Blobs speichern, ohne deren Inhalt zu verstehen, bleibt der Wallet-Zustand auch auf nicht vertrauenswürdigen Relays privat.&lt;/p>
&lt;p>&lt;strong>Implementierungen:&lt;/strong>&lt;/p>
&lt;p>Wallets mit NIP-60-Unterstützung umfassen &lt;a href="https://github.com/gandlafbtc/nutsack">Nutsack&lt;/a> und &lt;a href="https://github.com/cashubtc/eNuts">eNuts&lt;/a>. Clients wie &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-25-newsletter/#ridestr-v026">Ridestr&lt;/a> verwenden NIP-60 für geräteübergreifenden Sync und ermöglichen Nutzern, auf dem Desktop aufzuladen und vom Mobilgerät aus auszugeben, ohne manuelle Überweisungen.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut oder Neuigkeiten zu teilen hat: &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DM erreichbar&lt;/a> oder auf Nostr findbar.&lt;/p></content:encoded></item><item><title>Nostr Compass #10</title><link>https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/</link><pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Eine Blossom-Local-Cache-Schicht nimmt Gestalt an, da unabhängige Projekte auf Offline-Medienzugriff für Android konvergieren. Alby startet eine &lt;a href="https://sandbox.albylabs.com">NWC-Entwickler-Sandbox&lt;/a> zum Erstellen und Testen von Nostr Wallet Connect-Integrationen ohne echte Mittel zu riskieren. Konkurrierende Vorschläge für KI-Agenten-Kommunikation auf Nostr erscheinen in derselben Woche von zwei Autoren. fiatjaf entfernt ungenutzte Felder aus &lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11&lt;/a> und streicht Aufbewahrungsrichtlinien, Ländercodes, Datenschutzrichtlinien und Community-Präferenz-Tags, die Relay-Betreiber nie übernommen haben. &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85&lt;/a> mergt Hinweise zur Service-Provider-Auffindbarkeit für Trusted Assertions. Ein neuer &lt;code>D&lt;/code>-Tag in &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52&lt;/a> ermöglicht tagesgranulares Timestamp-Indexing von Kalender-Events. Neue Projekte umfassen &lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> für dezentrale Kartenkachel-Verteilung, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> für MLS-verschlüsseltes Messaging, &lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> für FROST-Threshold-Signing auf Android, &lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> für inhaltsadressierten Speicher mit Nostr-Integration und &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> zum Teilen von Inhalten auf Nostr aus jeder Android-App. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergt 11 NWC-PRs mit Dual-Wallet-Unterstützung und automatischem Service-Lebenszyklus. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a> liefert eine &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">eingebaute Lightning-Wallet&lt;/a> durch NWC-Integration. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereitet die Veröffentlichung im Android App Store vor, während HAVEN &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a> mit Multi-npub-Unterstützung und Cloud-Backup erreicht. Die Deep Dives dieser Woche behandeln NIP-85s Trusted Assertions-System zur Delegation von Web-of-Trust-Berechnungen an Service Provider sowie NIP-52s Kalender-Events-Protokoll nach dem tagesgranularen Indexierungs-Update.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Eine Blossom-Local-Cache-Schicht nimmt Gestalt an, da unabhängige Projekte auf Offline-Medienzugriff für Android konvergieren. Alby startet eine &lt;a href="https://sandbox.albylabs.com">NWC-Entwickler-Sandbox&lt;/a> zum Erstellen und Testen von Nostr Wallet Connect-Integrationen ohne echte Mittel zu riskieren. Konkurrierende Vorschläge für KI-Agenten-Kommunikation auf Nostr erscheinen in derselben Woche von zwei Autoren. fiatjaf entfernt ungenutzte Felder aus &lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11&lt;/a> und streicht Aufbewahrungsrichtlinien, Ländercodes, Datenschutzrichtlinien und Community-Präferenz-Tags, die Relay-Betreiber nie übernommen haben. &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">NIP-85&lt;/a> mergt Hinweise zur Service-Provider-Auffindbarkeit für Trusted Assertions. Ein neuer &lt;code>D&lt;/code>-Tag in &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52&lt;/a> ermöglicht tagesgranulares Timestamp-Indexing von Kalender-Events. Neue Projekte umfassen &lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> für dezentrale Kartenkachel-Verteilung, &lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> für MLS-verschlüsseltes Messaging, &lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> für FROST-Threshold-Signing auf Android, &lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> für inhaltsadressierten Speicher mit Nostr-Integration und &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> zum Teilen von Inhalten auf Nostr aus jeder Android-App. &lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergt 11 NWC-PRs mit Dual-Wallet-Unterstützung und automatischem Service-Lebenszyklus. &lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a> liefert eine &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">eingebaute Lightning-Wallet&lt;/a> durch NWC-Integration. &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> bereitet die Veröffentlichung im Android App Store vor, während HAVEN &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a> mit Multi-npub-Unterstützung und Cloud-Backup erreicht. Die Deep Dives dieser Woche behandeln NIP-85s Trusted Assertions-System zur Delegation von Web-of-Trust-Berechnungen an Service Provider sowie NIP-52s Kalender-Events-Protokoll nach dem tagesgranularen Indexierungs-Update.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="blossom-local-cache-layer-entsteht">Blossom Local Cache Layer entsteht&lt;/h3>
&lt;p>Mehrere unabhängige Projekte konvergieren auf dasselbe Problem: Offline-Zugriff auf &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medien auf Mobilgeräten.&lt;/p>
&lt;p>&lt;a href="https://github.com/greenart7c3/Morganite">Morganite&lt;/a>, eine neue Android-App von greenart7c3 (dem Entwickler hinter &lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a> und &lt;a href="https://github.com/greenart7c3/Citrine">Citrine&lt;/a>), implementiert clientseitiges Caching für Blossom-Medien. Nutzer können zuvor angezeigte Bilder und Dateien ohne Netzwerkverbindung aufrufen.&lt;/p>
&lt;p>&lt;a href="https://github.com/hardran3/Aerith">Aerith&lt;/a> lieferte &lt;a href="https://github.com/hardran3/Aerith/releases/tag/v0.2">v0.2&lt;/a> mit Bildmarkierung, Massen-Mirror-/Tag-/Löschoperationen, Filterung nach Bezeichnung und Dateityp sowie erster lokaler Blossom-Cache-Unterstützung. Aerith ist eine Verwaltungsoberfläche für Nutzer, die Medien über mehrere Blossom-Server verteilt speichern und ihre Blobs organisieren und spiegeln müssen.&lt;/p>
&lt;p>Ein neuer &lt;a href="https://github.com/hzrd149/blossom/blob/master/implementations/local-blossom-cache.md">Leitfaden zur lokalen Cache-Implementierung&lt;/a> in der Blossom-Spezifikation dokumentiert clientseitigen Blob-Speicher, während &lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> (vom selben Entwickler wie Aerith) Blossom-Upload-Integration in seinen Android-Share-to-Nostr-Ablauf integriert. Vier unabhängige Projekte konvergierten diese Woche auf dasselbe Problem: eine dedizierte Caching-App, ein Medienmanager, eine Referenzspezifikation und ein Share-Tool mit Blossom-Integration – alle implementieren persistenten lokalen Speicher über einfaches Upload-und-Abrufen hinaus.&lt;/p>
&lt;h3 id="alby-nwc-entwickler-sandbox">Alby NWC-Entwickler-Sandbox&lt;/h3>
&lt;p>&lt;a href="https://sandbox.albylabs.com">Alby&lt;/a> hat eine Sandbox-Umgebung für Entwickler gestartet, die mit &lt;a href="https://nostrcompass.org/de/topics/nip-47/">Nostr Wallet Connect (NIP-47)&lt;/a> arbeiten. Die Sandbox bietet einen gehosteten NWC-Wallet-Dienst, mit dem Entwickler Testverbindungen erstellen und simulierte Zahlungen senden können, ohne eine echte Lightning-Wallet anzubinden – und dabei den vollständigen Request-Response-Zyklus von NWC-Events in Echtzeit beobachten können. Entwickler erzeugen einen &lt;code>nostr+walletconnect://&lt;/code>-Verbindungsstring aus der Sandbox und übergeben ihn an ihren Client. Die Sandbox zeigt dann die resultierenden kind-23194-Request- und kind-23195-Response-Events an, während sie zwischen Client und Wallet-Dienst fließen.&lt;/p>
&lt;p>Dies senkt die Einstiegshürde für neue NWC-Integrationen. Bisher erforderte das Testen entweder eine persönliche Lightning-Wallet oder einen selbst gehosteten NWC-Dienst. Die Sandbox abstrahiert das weg und gibt Entwicklern eine sofortige Feedback-Schleife für die Implementierung von &lt;code>pay_invoice&lt;/code>, &lt;code>get_balance&lt;/code>, &lt;code>make_invoice&lt;/code>, &lt;code>lookup_invoice&lt;/code> und &lt;code>list_transactions&lt;/code> gegen einen Live-NWC-Endpunkt.&lt;/p>
&lt;h3 id="ki-agenten-nips-erscheinen">KI-Agenten-NIPs erscheinen&lt;/h3>
&lt;p>Vorschläge für KI-Agenten-Kommunikation auf Nostr erschienen innerhalb weniger Tage voneinander und nähern sich dem Problem aus verschiedenen Blickwinkeln.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2226">NIP-XX: AI Agent Messages&lt;/a> von joelklabo definiert ein vollständiges Protokoll für KI-Agenten-Interaktion: Event-Kinds für Prompts, Antworten, Streaming-Deltas, Status-Updates, Tool-Telemetrie, Fehler, Abbrüche und Fähigkeits-Erkennung. Ein &lt;code>ai.info&lt;/code>-Discovery-Event (kind 31340, ersetzbar) ermöglicht Agenten, ihre unterstützten Modelle, Tools mit Schemata, Streaming-Unterstützung und Rate-Limits anzukündigen. joelklabos Vorschlag umfasst Run-Korrelation via Prompt-ID, Session-Management, Stream-Abgleich mit Sequenzordnung und &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a>-Hinweise für Metadaten-Privatsphäre.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2220">NIP-AE: Agents&lt;/a> von pablof7z verfolgt einen anderen Ansatz und definiert Kinds für Agenten-Instanziierung: Definitionen und Lektionen. Das sind die Event-Typen, die pablof7z in &lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a> verwendet, dem autonomen Lernsystem auf Nostr. Ein Begleitvorschlag, &lt;a href="https://github.com/nostr-protocol/nips/pull/2221">NIP-AD: MCP Server and Skill Announcements&lt;/a>, ebenfalls von pablof7z, definiert Events zur Ankündigung von &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-Servern und Skills auf Nostr. &lt;a href="https://nostrcompass.org/de/topics/nip-22/">NIP-22&lt;/a>-Kommentare werden unterstützt, sodass die Community MCP-Server direkt auf Nostr diskutieren und bewerten kann.&lt;/p>
&lt;p>NIP-XX deckt vollständige Agenten-Kommunikation ab, während NIP-AE und NIP-AD Identität und Tool-Discovery adressieren. Diese Vorschläge könnten zu einem einheitlichen Standard konvergieren oder als komplementäre Schichten koexistieren.&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>, das All-in-One-Persönlichkeitsrelay, das vier Relay-Funktionen mit einem &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienserver bündelt, erreichte &lt;a href="https://github.com/bitvora/haven/releases/tag/v1.2.0-rc3">v1.2.0-rc3&lt;/a>. Dieser Release-Kandidat fügt Unterstützung für mehrere npubs hinzu und ermöglicht es einer einzigen HAVEN-Instanz, mehrere Nostr-Identitäten zu bedienen. Frühere RCs fügten &lt;code>--from-cloud&lt;/code>- und &lt;code>--to-cloud&lt;/code>-Flags für Cloud-Backup hinzu (RC2) und behobenen einen Web-of-Trust-Doppelzählungsfehler (RC1).&lt;/p>
&lt;h3 id="mostro-mobile-v120-eingebaute-lightning-wallet">Mostro Mobile v1.2.0: Eingebaute Lightning-Wallet&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mobile">Mostro Mobile&lt;/a>, der Mobile-Client für die &lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a> P2P-Bitcoin-Börse (&lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#mostro-liefert-erste-%C3%B6ffentliche-beta">v1.1.0 letzte Woche behandelt&lt;/a>), lieferte &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.2.0%2B2">v1.2.0&lt;/a> mit einer eingebauten Lightning-Wallet durch vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NWC (NIP-47)&lt;/a>-Integration. Käufer und Verkäufer müssen nicht mehr zwischen Apps wechseln, um Rechnungen zu bearbeiten. Die App erkennt Hold-Invoices für Verkäufer und bezahlt sie automatisch über die verbundene Wallet, während Käufer automatische Rechnungserstellung erhalten. Dem Release folgte &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.1%2B1">v1.1.1&lt;/a> aus früherer Woche, das Multi-Mostro-Node-Unterstützung mit einem kuratierten Register vertrauenswürdiger Instanzen, kind-0-Metadaten-Abruf für Node-Anzeige, benutzerdefiniertes Node-Management per pubkey und automatischen Fallback bei Offline-Nodes hinzufügte.&lt;/p>
&lt;p>Serverseitig landete &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.16.2">Mostro v0.16.2&lt;/a> mit Fixes für doppelte Dev-Fee-Zahlungen, Rate-Limiting am Passwortvalidierungs-RPC-Endpunkt und ordentliches Dispute-Cleanup bei kooperativem Abbruch.&lt;/p>
&lt;p>Ein neues Begleitprojekt, &lt;a href="https://github.com/MostroP2P/mostro-skill">mostro-skill&lt;/a>, ermöglicht Agenten den Handel auf Mostro über 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>, der &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Bildmanager, lieferte &lt;a href="https://github.com/hardran3/Aerith/releases/tag/v0.2">v0.2&lt;/a> mit Bildbezeichnungen zur Medienorganisation, Massen-Mirror-/Tag-/Löschoperationen über Server hinweg, Filterung nach Bezeichnung und Dateityp sowie erster lokaler Cache-Unterstützung. Siehe &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#blossom-local-cache-layer-entsteht">Neuigkeiten-Abschnitt&lt;/a> für den Kontext zum übergreifenden Local-Cache-Trend.&lt;/p>
&lt;h3 id="mapnolia-dezentrale-kartenkacheln-über-nostr">Mapnolia: Dezentrale Kartenkacheln über Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/zeSchlausKwab/mapnolia">Mapnolia&lt;/a> ist ein neuer Geodaten-Server, der &lt;a href="https://github.com/protomaps/PMTiles">PMTiles&lt;/a>-Kartenarchive in geografische Regionen unterteilt und sie über Nostr zur dezentralen Auffindbarkeit ankündigt. Er veröffentlicht kind-34444-parametrisierte ersetzbare Events an Nostr-Relays, die einen vollständigen Index von Kartenkachel-Chunks mit Layer-Metadaten, Geohash-Regionen, Dateireferenzen und &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server-Details enthalten.&lt;/p>
&lt;p>Clients entdecken und rufen Kartendaten über das Nostr-Netzwerk ab statt über zentralisierte Kachel-Server, wobei Ankündigungs-Events genug Metadaten tragen, um nur die benötigten geografischen Regionen von aufgeführten Blossom-Servern anzufordern. Mapnolia ist das erste Projekt, das Geodaten-Verteilung zu Nostr bringt und Möglichkeiten für offline-fähige Kartenanwendungen eröffnet.&lt;/p>
&lt;h3 id="pika-marmot-basiertes-verschlüsseltes-messaging">Pika: Marmot-basiertes verschlüsseltes Messaging&lt;/h3>
&lt;p>&lt;a href="https://github.com/sledtools/pika">Pika&lt;/a> ist eine neue Ende-zu-Ende-verschlüsselte Messaging-App für iOS und Android, die das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll nutzt, das &lt;a href="https://nostrcompass.org/de/topics/mls/">Messaging Layer Security (MLS)&lt;/a> über Nostr-Relays schichtet. Die Architektur trennt Zuständigkeiten in einen Rust-Kern (&lt;code>pika_core&lt;/code>), der MLS-Zustandsverwaltung und Nachrichten-Verschlüsselung/-Entschlüsselung über Nostr-Relays übernimmt, mit schlanken nativen UI-Schalen in SwiftUI (iOS) und Kotlin (Android). Der Zustand fließt unidirektional: die UI versendet Aktionen an den Rust-Actor, der den Zustand mutiert und Snapshots mit Revisionsnummern per UniFFI- und JNI-Bindungen zurück an die UI emittiert.&lt;/p>
&lt;p>Pika reiht sich in ein wachsendes Feld von MLS-on-Nostr-Messengern ein, neben &lt;a href="https://github.com/marmot-protocol/whitenoise">White Noise&lt;/a>, &lt;a href="https://github.com/VectorPrivacy">Vector&lt;/a> und &lt;a href="https://0xchat.com">0xchat&lt;/a>. Alle nutzen Nostr-Relays als Transportschicht für MLS-verschlüsselten Ciphertext und halten Relay-Betreiber davon fern, Nachrichteninhalte zu lesen. Pika verwendet das Marmot Development Kit (MDK) für seine MLS-Implementierung und nostr-sdk für Relay-Konnektivität.&lt;/p>
&lt;h3 id="keep-frostdetopicsfrost-threshold-signing-für-android">Keep: &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a>-Threshold-Signing für Android&lt;/h3>
&lt;p>&lt;a href="https://github.com/privkeyio/keep-android">Keep&lt;/a> ist eine neue Android-Anwendung für &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a>-Threshold-Signing, bei dem kein einzelnes Gerät den vollständigen privaten Schlüssel hält. Es implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android Signer) und &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Remote-Signing), sodass kompatible Nostr-Clients Signaturen anfordern können, während das Schlüsselmaterial über Geräte verteilt bleibt. Die Standardkonfigurationen sind 2-von-3 und 3-von-5, wobei jeder t-von-n-Schwellenwert unterstützt wird.&lt;/p>
&lt;p>Keeps verteilte Schlüsselgenerierung (DKG) läuft über Nostr-Relays mit benutzerdefinierten Event-Kinds: kind 21101 für Gruppenankündigungen, kind 21102 für Round-1-Commitment-Polynome (öffentlich übertragen) und kind 21103 für Round-2-Geheimschlüsselanteile (&lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> verschlüsselt Punkt-zu-Punkt zwischen Teilnehmern). Der private Gruppenschlüssel-Skalar wird während des DKG nirgends berechnet oder zusammengesetzt. Jedes Gerät hält nur seinen Polynomauswertungs-Anteil, und jede t-Anteile können durch ein Zwei-Runden-Commit-then-Sign-Protokoll eine gültige Schnorr-Signatur erzeugen. Die resultierende 64-Byte-Signatur ist von einer Single-Signer-Schnorr-Signatur nicht zu unterscheiden. Intern verwendet Keep die &lt;code>frost-secp256k1-tr&lt;/code>-Crate der Zcash Foundation mit Taproot-Tweaking, sodass der Gruppen-Public-Key direkt als Nostr-npub funktioniert.&lt;/p>
&lt;p>Keep reiht sich in die &lt;a href="https://frostr.org">Frostr&lt;/a>-Projektfamilie ein, neben &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 für Android&lt;/a>, &lt;a href="https://github.com/FROSTR-ORG/frost2x">Frost2x&lt;/a> und &lt;a href="https://github.com/FROSTR-ORG/igloo-ios">Igloo für iOS&lt;/a>, und erweitert die Optionen für Threshold-Key-Management auf Nostr.&lt;/p>
&lt;h3 id="prism-alles-von-android-aus-auf-nostr-teilen">Prism: Alles von Android aus auf Nostr teilen&lt;/h3>
&lt;p>&lt;a href="https://github.com/hardran3/Prism">Prism&lt;/a> ist eine neue Android-App (Kotlin/Jetpack Compose, API 26+), die sich als System-Share-Ziel registriert und Nutzern ermöglicht, Text, URLs, Bilder und Videos aus jeder App auf ihrem Telefon auf Nostr zu veröffentlichen. Geteilte URLs durchlaufen einen Tracking-Parameter-Stripper, bevor sie zu Notizen komponiert werden. Prism ruft OpenGraph-Metadaten ab, um reichhaltige Link-Vorschauen zu generieren, und rendert native Nostr-Referenzen (&lt;code>note1&lt;/code>, &lt;code>nevent1&lt;/code>) inline.&lt;/p>
&lt;p>Die Scheduling-Engine verwendet einen hybriden &lt;code>AlarmManager&lt;/code>/&lt;code>WorkManager&lt;/code>-Ansatz, um Android-Batterieoptimierungen zu umgehen: AlarmManager übernimmt präzises Aufweck-Timing, während expedited WorkManager-Tasks die Zustellung sicherstellen, mit exponentiellem Backoff-Retry für Offline-Szenarien. Medien-Uploads laufen über konfigurierbare &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server mit Thumbnail-Generierung für Bilder und Video-Frames. Das gesamte Event-Signing wird an &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-externe Signer wie &lt;a href="https://github.com/greenart7c3/amber">Amber&lt;/a> delegiert, mit Multi-Account-Unterstützung zum Wechseln zwischen Identitäten. Prism unterstützt auch &lt;a href="https://nostrcompass.org/de/topics/nip-84/">NIP-84 (Highlights)&lt;/a>-Posts. Vom selben Entwickler wie &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#aerith-v02">Aerith&lt;/a>.&lt;/p>
&lt;h3 id="hashtree-inhaltsadressierter-speicher-mit-nostr-integration">Hashtree: Inhaltsadressierter Speicher mit Nostr-Integration&lt;/h3>
&lt;p>&lt;a href="https://files.iris.to/#/npub1xndmdgymsf4a34rzr7346vp8qcptxf75pjqweh8naa8rklgxpfqqmfjtce/hashtree">Hashtree&lt;/a> ist ein dateisystembasiertes inhaltsadressiertes Blob-Speichersystem, das Merkle-Wurzeln auf Nostr veröffentlicht, um veränderbare npub/Pfad-Adressen zu erzeugen. Das System verwendet „dumb storage&amp;quot;, das mit jedem Key-Value-Store funktioniert und Inhalte in 2-MB-Blöcke unterteilt, die für &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Uploads optimiert sind. Anders als BitTorrent wird keine aktive Merkle-Proof-Berechnung benötigt – Blobs werden einfach per Hash gespeichert und abgerufen.&lt;/p>
&lt;p>Die Nostr-Integration ermöglicht Git-Remote-URLs wie &lt;code>htree://npub.../repo-name&lt;/code> zum Klonen von Repositories, mit Befehlen wie &lt;code>htree publish mydata &amp;lt;hash&amp;gt;&lt;/code> zum Veröffentlichen von Inhalts-Hashes unter &lt;code>npub.../mydata&lt;/code>-Adressen. Das umfassende CLI unterstützt verschlüsselte (Standard) und öffentliche Speichermodi, Content-Pinning, Push zu Blossom-Servern und Verwaltung von Nostr-Identitäten. Jedes gespeicherte Element ist entweder rohe Bytes oder ein Baumknoten und bietet eine Grundlage für dezentrale Inhaltsverteilung über Nostrs Relay-Netzwerk.&lt;/p>
&lt;h3 id="espy-farbpaletten-erfassung-auf-shakespeare">Espy: Farbpaletten-Erfassung auf Shakespeare&lt;/h3>
&lt;p>&lt;a href="https://espy.you">Espy&lt;/a>, aufgebaut auf der &lt;a href="https://soapbox.pub/tools/shakespeare/">Shakespeare&lt;/a>-Plattform, ermöglicht Nutzern die Erfassung von Farbpaletten aus Fotos und deren Teilen als Nostr-Events. Shakespeare ist ein KI-gestützter App-Builder, der Nutzer über NIP-07-Browser-Erweiterungen authentifiziert und eingebaute Nostr-Relay-Konnektivität bietet, sodass Entwickler Apps ohne eigene Schlüsselverwaltung oder Relay-Pool ausliefern können. Espy extrahiert dominante Farben aus Kamerainput in teilbare Palettenkarten, die über Standard-Nostr-Feeds auffindbar sind.&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>, hodlbods Discord-ähnlicher Nostr-Client, der Relays als Gruppen organisiert, lieferte &lt;a href="https://gitea.coracle.social/coracle/flotilla/releases/tag/1.6.4">1.6.4&lt;/a>. Die Coracle-Projektfamilie ist von GitHub auf eine selbst gehostete &lt;a href="https://gitea.coracle.social/coracle">Gitea-Instanz&lt;/a> umgezogen. Dieses Release fügt Push-Benachrichtigungen via NIP-9a und einen Wallet-Empfangsablauf hinzu, sowie klassifizierte Einträge und Space-URL-Unterstützung. Verbesserungen der Oberfläche umfassen aufgeräumte Modals und Benachrichtigungs-Handling. Raum-Stummschaltung und sichere Bereichs-Einfügungen auf Mobilgeräten runden die Änderungen ab, begleitet von Fixes für Safari-Bild-Uploads und Kalender-Event-Details.&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>, die mobile Live-Streaming-App mit Nostr-Integration, lieferte &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.12.0">v0.12.0&lt;/a>. Dieses Release fügt Video-Clips mit In-Player-Antworten und benutzerdefinierter Emoji-Integration hinzu. Thread-Schutz blockiert indirekten Erwähnungs-Spam, und eine neue QR-Teilen-Funktion ermöglicht Nutzern den Offline-Profilaustausch. Ein neuer horizontaler Wiedergabemodus gibt Streams eine Twitch-ähnliche Betrachtungserfahrung, und der Stöbern-Bildschirm zeigt nun Creator-Clips neben Live-Streams.&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>, eine Social-Web-Übersetzungsbibliothek, die Daten zwischen Nostr, Bluesky, ActivityPub und anderen Plattformen in ein gemeinsames Format konvertiert, lieferte &lt;a href="https://github.com/snarfed/granary/releases/tag/v10.0">v10.0&lt;/a> mit Breaking Changes. Das Release wechselt Nostrs Standard-ActivityStreams-1-IDs von bech32 zu Hex und fügt erweiterte Nostr-Unterstützung hinzu, einschließlich &lt;a href="https://github.com/nostr-protocol/nips/blob/master/27.md">NIP-27&lt;/a>-Erwähnungs-Parsing und Artikel-Tags. Eine neue Mehrfach-Ausgabe-Option über Konverter hinweg ermöglicht Entwicklern die Massenübersetzung zwischen Protokollen.&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>, ein &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-Server, der KI-Agenten die Interaktion mit dem Nostr-Netzwerk ermöglicht, lieferte &lt;a href="https://github.com/AustinKelsay/nostr-mcp-server/releases/tag/v3.0.0">v3.0.0&lt;/a>. Dieses Major-Release fügt soziale Aktionen (Follows, Reaktionen, Reposts, Antworten) und Relay-Listen-Management mit &lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">NIP-65&lt;/a>-Unterstützung plus optionaler &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a>-Authentifizierung hinzu. Direktnachrichten via &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> sind ebenfalls neu. Das Release ergänzt die dieswöchigen &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#ki-agenten-nips-erscheinen">KI-Agenten-NIP-Vorschläge&lt;/a> als praktisches Tooling für Agenten auf Nostr.&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>, der plattformübergreifende Nostr-Signer, lieferte &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.8">v0.3.8&lt;/a> mit mehrsprachiger UI-Unterstützung und einem inkrementellen Update-Manager für seinen eingebauten Nostr-App-Browser. Der neue Update-Mechanismus vergleicht inkrementell gegen den lokalen Zustand und hält das In-App-Verzeichnis der Nostr-Web-Apps mit geringerem Bandbreitenverbrauch aktuell. Das Release führt außerdem 5-Minuten-Schlüsselmaterial-Caching ein, um Datenbank-Round-Trips beim Signieren mehrerer Events in Folge zu reduzieren.&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), eine TypeScript-Bibliothek für das Nostr-Protokoll, lieferte &lt;a href="https://github.com/AustinKelsay/snstr/releases/tag/v0.3.1">v0.3.1&lt;/a>. Das Release fügt Paketverifizierungs-Guards hinzu, die sicherstellen, dass alle Einstiegspunkte in npm-Tarballs enthalten sind, mit CI-Durchsetzung auf Node und Bun. &lt;a href="https://github.com/AustinKelsay/snstr/releases/tag/v0.3.0">v0.3.0&lt;/a> erschien in derselben Woche.&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>, das Android-Nostr-Relay von greenart7c3, veröffentlichte &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v2.0.0-pre1">v2.0.0-pre1&lt;/a> mit Performance-Verbesserungen durch optimierte Datenbankindizes und besseres Kotlin-Coroutine-Handling. Das Release verbessert außerdem die Unterstützung für das Hosting von Web-Apps, wobei jede App nun auf einem eigenen Port läuft.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="primal-android-nwc-infrastrukturausbau">Primal Android: NWC-Infrastrukturausbau&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergte diese Woche 11 NWC-bezogene PRs und setzt den Ausbau fort, der &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/#primal-android-liefert-nwc-verschl%C3%BCsselung">vor zwei Wochen begonnen wurde&lt;/a>. Dieser Batch fügt Dual-Wallet-NWC-Unterstützung hinzu, automatischen Service-Start/Stopp gekoppelt an Backend-Benachrichtigungen, Verbindungsrouting nach Wallet-Typ und ordentliche Datenbereinigung bei Wallet-Löschung. Der NWC-Dienst verwaltet nun seinen eigenen Lebenszyklus basierend auf dem Wallet-Verbindungsstatus und reduziert manuellen Benutzereingriff.&lt;/p>
&lt;h3 id="notedeck-android-app-store-vorbereitung">Notedeck: Android-App-Store-Vorbereitung&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der plattformübergreifende Nostr-Client vom &lt;a href="https://github.com/damus-io/damus">Damus&lt;/a>-Team, mergte diese Woche die &lt;a href="https://github.com/damus-io/notedeck/pull/1287">Vorbereitung für die Android-App-Store-Veröffentlichung&lt;/a>. Der PR fügt einen UGC (User Generated Content)-Compliance-Plan hinzu, der von Google Play gefordert wird, einschließlich eines Nutzungsbedingungs-Akzeptanzbildschirms, Nutzerblockierung über Kontextmenüs und Einstellungen, &lt;a href="https://nostrcompass.org/de/topics/nip-56/">NIP-56 (Meldungen)&lt;/a>-Funktionalität, die Report-Events an Relays veröffentlicht, und eines Abschnitts für Inhalts- und Sicherheitseinstellungen. Build-Infrastruktur wurde für die Generierung signierter Release-APKs und AABs (Android App Bundles) via neue Makefile-Ziele hinzugefügt. Ein EULA-Dokument legt eine Altersanforderung von 17+ und Nostr-spezifische Haftungsausschlüsse über dezentrale Inhalte fest. Die Compliance-Features selbst erscheinen in Follow-up-PRs; dieser Merge legt die Dokumentations- und Signierungsgrundlage.&lt;/p>
&lt;p>Auf der Damus-iOS-Seite landete ein Fix für eine &lt;a href="https://github.com/damus-io/damus/pull/3593">endlos drehende Lade-Spinner-Regression&lt;/a>, bei der der Spinner unbegrenzt weiter lief, nachdem Inhalte bereits geladen waren.&lt;/p>
&lt;h3 id="nostria-discovery-relays-und-dm-fixes">Nostria: Discovery-Relays und DM-Fixes&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostria-app/nostria">Nostria&lt;/a>, der plattformübergreifende Nostr-Client mit Fokus auf globale Skalierung, mergte diese Woche 9 PRs. Der bemerkenswerteste fügt &lt;a href="https://github.com/nostria-app/nostria/pull/460">Auto-Initialisierung von Discovery-Relays&lt;/a> für Profil-Lookup hinzu und gibt neuen Nutzern funktionierende Relay-Konnektivität ohne manuelle Konfiguration. Weitere Fixes adressieren &lt;a href="https://github.com/nostria-app/nostria/pull/466">DM-Textarea-Umbruch&lt;/a>, &lt;a href="https://github.com/nostria-app/nostria/pull/479">Vollbild-Video-Viewport-Füllung&lt;/a>, &lt;a href="https://github.com/nostria-app/nostria/pull/481">Artikel-Metadaten-Extraktion in Repost-Vorschauen&lt;/a> und &lt;a href="https://github.com/nostria-app/nostria/pull/458">nostr:-URI-Auflösung in Benachrichtigungen&lt;/a>.&lt;/p>
&lt;h3 id="camelus-riverpod-v3-migration">Camelus: Riverpod-v3-Migration&lt;/h3>
&lt;p>&lt;a href="https://github.com/camelus-hq/camelus">Camelus&lt;/a>, der Flutter-basierte Nostr-Client, mergte diese Woche 5 PRs, die auf eine &lt;a href="https://github.com/camelus-hq/camelus/pull/158">Riverpod-v3-API-Migration&lt;/a> und ein &lt;a href="https://github.com/camelus-hq/camelus/pull/159">generisches Feed-Refactoring&lt;/a> zentriert sind. Ein &lt;a href="https://github.com/camelus-hq/camelus/pull/161">eingebetteter Notizen-Cache&lt;/a> vermeidet redundante Relay-Abrufe für zitierte Notizen.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&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-Auffindbarkeit&lt;/a>&lt;/strong>: vitorpamplona fügte Hinweise zur Client-Discovery von &lt;a href="https://nostrcompass.org/de/topics/trusted-relay-assertions/">NIP-85 Trusted Assertions&lt;/a>-Service-Providern hinzu, einschließlich Relay-Hints und algorithmusspezifischer Service-Schlüssel. Siehe den &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#nip-deep-dive-nip-85-trusted-assertions">Deep Dive unten&lt;/a> für vollständige Berichterstattung.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1946">NIP-11: Relay-Informations-Bereinigung&lt;/a>&lt;/strong>: fiatjaf entfernte &lt;code>privacy_policy&lt;/code>, das &lt;code>retention&lt;/code>-Array, &lt;code>relay_countries&lt;/code> und den Community-Präferenz-Block aus &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>. Relay-Betreiber befüllten diese Felder selten, und Clients handelten nicht danach.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1752">NIP-52: Tagesgranularer Timestamp-Tag&lt;/a>&lt;/strong>: staab fügte einen erforderlichen &lt;code>D&lt;/code>-Tag zu &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> zeitbasierten Kalender-Events (kind 31923) hinzu, der den tagesgranularen Unix-Timestamp darstellt, berechnet als &lt;code>floor(unix_sekunden / 86400)&lt;/code>. Mehrere &lt;code>D&lt;/code>-Tags decken mehrtägige Events ab und ermöglichen effizientes temporales Indexing ohne Parsing vollständiger Timestamps.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2210">NIP-47: Vereinfachung&lt;/a>&lt;/strong>: Der Vereinfachungs-PR &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/">in Newsletter #9 diskutiert&lt;/a> mergte diese Woche und entfernte &lt;code>multi_pay_invoice&lt;/code> und &lt;code>multi_pay_keysend&lt;/code> aus &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Siehe &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/#nip-deep-dive-nip-47-nostr-wallet-connect">Newsletter #8&lt;/a> für den vollständigen NWC-Protokoll-Deep-Dive.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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>: In &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/">Newsletter #8&lt;/a> behandelt, erlebte dieser Podcast-Spezifikationsvorschlag diese Woche hitzige Diskussionen. staab wies darauf hin, dass mindestens drei konkurrierende Podcast-Standards bereits in freier Wildbahn existieren, und derekross verwies auf eine bestehende sechsmonatige Implementierung mit aktiven Apps und Podcasts. Der Weg nach vorne erfordert Konvergenz zwischen Implementierungen, bevor eine NIP-Nummer zugewiesen werden kann.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2226">NIP-XX: KI-Agenten-Nachrichten&lt;/a>&lt;/strong>: joelklabo schlägt ein vollständiges KI-Agenten-Kommunikationsprotokoll mit Event-Kinds für Prompts, Antworten, Streaming, Tool-Telemetrie, Fehler und Fähigkeits-Discovery vor. Siehe &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-18-newsletter/#ki-agenten-nips-erscheinen">Neuigkeiten-Abschnitt&lt;/a> für Berichterstattung zu allen KI-Vorschlägen dieser Woche.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/1893">NIP-PNS: Privater Notizen-Speicher&lt;/a>&lt;/strong>: jb55s privates Notizen-System definiert kind-1080-Events zur Speicherung verschlüsselter persönlicher Notizen auf Relays, ohne preiszugeben, wer sie geschrieben hat. Das Schema leitet ein deterministisches pseudonymes Schlüsselpaar aus dem nsec des Nutzers via HKDF ab: &lt;code>pns_key = hkdf_extract(ikm=device_key, salt=&amp;quot;nip-pns&amp;quot;)&lt;/code>, dann wird ein secp256k1-Schlüsselpaar aus diesem abgeleiteten Schlüssel generiert. Eine zweite Ableitung produziert einen symmetrischen Verschlüsselungsschlüssel: &lt;code>pns_nip44_key = hkdf_extract(ikm=pns_key, salt=&amp;quot;nip44-v2&amp;quot;)&lt;/code>. Innere Notizen werden mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> v2 mit diesem Schlüssel verschlüsselt und unter dem pseudonymen pubkey veröffentlicht, sodass Relays kind-1080-Events von einer Identität sehen, die nicht mit dem Hauptschlüssel des Nutzers verknüpft ist. Anders als &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wraps ist PNS nicht spam-anfällig (der pseudonyme Schlüssel ist deterministisch, nicht zufällig) und trägt keine öffentlichen Metadaten (keine &lt;code>p&lt;/code>-Tags erforderlich, da es keinen Empfänger gibt). Diese Woche veröffentlichte jb55 Erkenntnisse aus der PNS-Implementierung in Notedecks Rust-Backend (&lt;code>enostr::pns&lt;/code>-Modul). Er identifizierte, dass der &lt;code>hkdf_extract&lt;/code>-Aufruf der Spezifikation mehrdeutig ist, weil RFC-5869-HKDF zwei Phasen (Extract und Expand) hat, die unterschiedliche Ausgaben produzieren, und die meisten Bibliotheken beide erwarten. Er stellte klar, dass &lt;code>pns_nip44_key&lt;/code> NIP-44s normalen ECDH-Schlüsselaustausch umgeht und direkt als Konversationsschlüssel verwendet wird – ein Detail, das Implementierer kennen müssen, da die meisten NIP-44-Bibliotheken standardmäßig ECDH verwenden. Er flaggte auch eine undefinierte Variable in der Referenzimplementierung in TypeScript. Der PR, ursprünglich aus April 2025, wird nun aktiv implementiert.&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 definiert vier Event-Kinds für Agenten-Identität auf Nostr, aus seiner Arbeit an &lt;a href="https://github.com/tenex-chat/tenex">TENEX&lt;/a> herleitet. Die Basisvorlage ist kind 4199 (Agent Definition), mit Titel, Rollenbeschreibung, Systemanweisungen, Tool-Deklarationen und Version. Verhaltensmodifikatoren leben in kind 4201 (Agent Nudge), das &lt;code>only-tool&lt;/code>-, &lt;code>allow-tool&lt;/code>- und &lt;code>deny-tool&lt;/code>-Tags für Laufzeit-Fähigkeitskontrolle verwendet. Agenten veröffentlichen, was sie lernen, als kind-4129 (Agent Lesson)-Events, kategorisiert und zurückverknüpft zur übergeordneten Definition via &lt;code>e&lt;/code>-Tags, verfeinerbar durch &lt;a href="https://nostrcompass.org/de/topics/nip-22/">NIP-22&lt;/a>-Kommentar-Threads. Eigentümerschaftsverifikation verwendet kind 14199, ein ersetzbares Event, bei dem menschliche Betreiber ihre Agenten-pubkeys auflisten und damit eine bidirektionale Kette etablieren, wenn sie mit dem &lt;code>p&lt;/code>-Tag des kind-0-Profils des Agenten abgeglichen werden.&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- und Skill-Ankündigungen&lt;/a>&lt;/strong>: pablof7z definiert Events zur Ankündigung von &lt;a href="https://modelcontextprotocol.io/">Model Context Protocol&lt;/a>-Servern und einzelnen Skills auf Nostr. MCP-Server-Ankündigungen tragen die Endpunkt-URL und die unterstützte Protokollversion zusammen mit einer Liste verfügbarer Tools mit ihren Eingabe-Schemata. &lt;a href="https://nostrcompass.org/de/topics/nip-22/">NIP-22&lt;/a>-Kommentare werden auf Server-Ankündigungen unterstützt, sodass die Community MCP-Server direkt auf Nostr diskutieren und bewerten kann.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2224">NIP-73: OSM-Tag-Kind&lt;/a>&lt;/strong>: DestBro schlägt vor, OpenStreetMap-Identifikatoren zu &lt;a href="https://nostrcompass.org/de/topics/nip-73/">NIP-73 (Externe Inhalts-IDs)&lt;/a> hinzuzufügen, das standardisiert, wie Nostr-Events externe Inhalte wie Bücher (ISBN), Filme (ISAN), Podcast-Feeds (GUID), Geohashes und URLs via &lt;code>i&lt;/code>- und &lt;code>k&lt;/code>-Tags referenzieren. Der vorgeschlagene OSM-Kind würde Events ermöglichen, spezifische Kartenfunktionen (Gebäude, Straßen, Parks) durch ihre OpenStreetMap-Knoten- oder Weg-ID zu referenzieren und Nostr-Inhalte mit der offenen geografischen Datenbank zu verbinden.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2219">NIP-XX: Responsive Image Variants&lt;/a>&lt;/strong>: woikos schlägt vor, &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a>-Dateimetadaten-Events um Tags für responsive Bildvarianten in verschiedenen Auflösungen zu erweitern. Clients könnten die geeignete Variante basierend auf Displaygröße und Netzwerkbedingungen auswählen und so die Bandbreite für mobile Nutzer reduzieren, die hochauflösende Bilder auf &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Servern betrachten.&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> definiert ein System zur Delegation aufwändiger Berechnungen an vertrauenswürdige Service Provider, die signierte Ergebnisse als Nostr-Events veröffentlichen. Web-of-Trust-Scores und Engagement-Metriken erfordern das Crawlen vieler Relays und die Verarbeitung großer Event-Mengen – Arbeit, die auf Mobilgeräten nicht praktikabel ist. Der dieswöchige &lt;a href="https://github.com/nostr-protocol/nips/pull/2223">Merge&lt;/a> fügte Hinweise zum Client-Discovery-Prozess für diese Provider hinzu.&lt;/p>
&lt;p>&lt;strong>Delegation:&lt;/strong>&lt;/p>
&lt;p>Die Berechnung des Web-of-Trust-Scores eines Nutzers erfordert das Crawlen von Follow-Graphen mehrere Hops tief über viele Relays hinweg, und die Berechnung genauer Follower-Zahlen bedeutet Deduplizierung über das gesamte Relay-Netzwerk. Mobilgeräte und Browser-Clients können diese Operationen nicht durchführen, doch die Ergebnisse sind für Spam-Filterung und Inhalts-Ranking unerlässlich. NIP-85 überbrückt diese Lücke, indem Nutzern ermöglicht wird, vertrauenswürdigen Providern die Berechnungen zu übertragen, die die Ergebnisse als Standard-Nostr-Events veröffentlichen.&lt;/p>
&lt;p>&lt;strong>Protokoll-Design:&lt;/strong>&lt;/p>
&lt;p>NIP-85 verwendet vier Event-Kinds für Aussagen über verschiedene Subjekttypen. Nutzer-Aussagen (kind 30382) tragen Follower-Anzahl, Post-/Antwort-/Reaktions-Zähler, Zap-Beträge, normalisierten Rang (0-100), häufige Themen und aktive Stunden:&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>Event-Aussagen (kind 30383) bewerten einzelne Notizen mit Kommentarzahl, Zitatanzahl, Reposts, Reaktionen und Zap-Daten:&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>Für adressierbare Events (Langform-Artikel, Wiki-Seiten) wendet kind 30384 dieselben Engagement-Metriken kollektiv auf alle Versionen an. Kind 30385 bewertet externe Identifikatoren (Bücher, Filme, Websites, Orte, Hashtags), die über &lt;a href="https://nostrcompass.org/de/topics/nip-73/">NIP-73 (Externe Inhalts-IDs)&lt;/a> referenziert werden und standardisiert, wie Nostr-Events externe Inhalte via &lt;code>i&lt;/code>- und &lt;code>k&lt;/code>-Tags referenzieren:&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>Jede Aussage ist ein ersetzbares adressierbares Event, bei dem der &lt;code>d&lt;/code>-Tag das Subjekt enthält: einen pubkey, eine Event-ID, eine Event-Adresse oder einen NIP-73-Identifikator. Service Provider signieren diese Events mit ihren eigenen Schlüsseln, und Clients bewerten sie basierend auf Vertrauensbeziehungen.&lt;/p>
&lt;p>&lt;strong>Provider-Discovery:&lt;/strong>&lt;/p>
&lt;p>Nutzer erklären, welchen Assertion-Providern sie vertrauen, indem sie kind-10040-Events veröffentlichen. Jeder Eintrag spezifiziert den Assertion-Typ mit dem Provider-pubkey und Relay-Hint sowie optionalen Algorithmusvarianten:&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>Nutzer können die Tag-Liste in &lt;code>.content&lt;/code> mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> verschlüsseln, um ihre Provider-Präferenzen privat zu halten. Clients erstellen eine Provider-Liste, indem sie prüfen, welchen Providern ihre gefolgten Accounts vertrauen, und schaffen so eine dezentrale Reputationsschicht für die Assertion-Provider selbst.&lt;/p>
&lt;p>&lt;strong>Sicherheitsmodell:&lt;/strong>&lt;/p>
&lt;p>Provider müssen für unterschiedliche Algorithmen verschiedene Service-Schlüssel verwenden und einen eindeutigen Schlüssel pro Nutzer, wenn Algorithmen personalisiert sind, um Kreuz-Korrelation von Anfragen über Nutzer hinweg zu verhindern. Jeder Service-Schlüssel erhält ein kind-0-Metadaten-Event, das das Verhalten des Algorithmus beschreibt und Nutzern Transparenz darüber gibt, wem sie vertrauen. Assertion-Events sollten nur aktualisiert werden, wenn sich die zugrunde liegenden Daten tatsächlich ändern, um unnötigen Relay-Traffic zu verhindern und Clients zu ermöglichen, Ergebnisse zuverlässig zu cachen.&lt;/p>
&lt;p>&lt;strong>Aktuelle Adoption:&lt;/strong>&lt;/p>
&lt;p>NIP-85 formalisiert ein Muster, das informell bereits entsteht. Primals Cache-Server berechnet Engagement-Metriken und Web-of-Trust-Scores. &lt;a href="https://gitlab.com/soapbox-pub/antiprimal">Antiprimal&lt;/a>, in &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#antiprimal-standardkonformes-gateway-zu-primals-cache">Newsletter #9&lt;/a> behandelt, überbrückt diese Berechnungen zu Standard-Nostr-Clients mittels NIP-85 Event-Kinds. &lt;a href="https://nostr.band">Nostr.band&lt;/a> betreibt das &lt;code>wss://nip85.nostr.band&lt;/code>-Relay, das in den Beispielen der Spezifikation selbst referenziert wird, und stellt Assertion-Events für seine Suchindex-Daten bereit. Auf der Client-Seite hat &lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> (verfasst von vitorpamplona, der auch dieses NIP schrieb) experimentelle Trusted-Assertions-Unterstützung in seiner &lt;code>quartz&lt;/code>-Bibliothek, die Assertion-Events und Service-Provider-Deklarationen parst. &lt;a href="https://vertexlab.io">Vertex&lt;/a> berechnet ähnliche Web-of-Trust-Metriken, &lt;a href="https://vertexlab.io/blog/dvms_vs_nip_85/">wählte jedoch einen anderen Ansatz&lt;/a>, eine direkte API statt NIP-85-Events, unter Berufung auf das Discovery-Problem und den Berechnungsaufwand assertion-basierter Architekturen. Mit NIP-85 kann jeder Client Aussagen von jedem Provider durch ein Standard-Event-Format konsumieren, und Provider konkurrieren auf Genauigkeit, während Nutzer wählen, wem sie vertrauen.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-52-kalender-events">NIP Deep Dive: NIP-52 (Kalender-Events)&lt;/h2>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/52.md">NIP-52&lt;/a> definiert Kalender-Events auf Nostr und gibt Clients eine standardisierte Möglichkeit, Ereignisse zu bestimmten Zeitpunkten oder zwischen Zeitpunkten darzustellen und zu entdecken. Der dieswöchige &lt;a href="https://github.com/nostr-protocol/nips/pull/1752">D-Tag-Merge&lt;/a> fügte tagesgranulares Indexing hinzu und schloss eine fehlende Lücke in der Abfrage-Infrastruktur der Spezifikation.&lt;/p>
&lt;p>&lt;strong>Zwei Event-Typen:&lt;/strong>&lt;/p>
&lt;p>NIP-52 trennt Kalender-Events in zwei Kinds basierend auf zeitlicher Präzision. Datumsbasierte Events (kind 31922) repräsentieren ganztägige Ereignisse wie Feiertage oder mehrtägige Festivals. Sie verwenden ISO-8601-Datumsstrings in ihren &lt;code>start&lt;/code>- und optionalen &lt;code>end&lt;/code>-Tags ohne Zeitzonen-Berücksichtigung:&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>Zeitbasierte Events (kind 31923) repräsentieren spezifische Momente mit Unix-Timestamps in ihren &lt;code>start&lt;/code>- und optionalen &lt;code>end&lt;/code>-Tags sowie IANA-Zeitzonen-Identifikatoren (&lt;code>start_tzid&lt;/code>, &lt;code>end_tzid&lt;/code>) für die Darstellung. Beide Kinds sind parametrisiert ersetzbare Events, sodass Veranstalter Details aktualisieren können, indem sie ein neues Event mit demselben &lt;code>d&lt;/code>-Tag veröffentlichen.&lt;/p>
&lt;p>&lt;strong>Kalender und RSVPs:&lt;/strong>&lt;/p>
&lt;p>Kind-31924-Events definieren Kalender als Sammlungen und referenzieren Events via &lt;code>a&lt;/code>-Tags, die auf kind-31922- oder kind-31923-Events durch ihre Adresskoordinaten zeigen:&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>Nutzer können mehrere Kalender pflegen (persönlich, Arbeit, Community), und Clients können Kalender von spezifischen pubkeys abonnieren. Kalender-Events können einen &lt;code>a&lt;/code>-Tag enthalten, der einen Kalender referenziert, um die Aufnahme anzufordern, und ermöglichen so kollaboratives Kalender-Management, bei dem mehrere Nutzer Events zu Kalendern beitragen, die ihnen nicht gehören.&lt;/p>
&lt;p>RSVPs verwenden kind 31925, bei dem Nutzer ihren Teilnahme-Status zusammen mit einem optionalen Frei-/Belegt-Indikator veröffentlichen:&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>Gültige &lt;code>status&lt;/code>-Werte sind &amp;ldquo;accepted&amp;rdquo;, &amp;ldquo;declined&amp;rdquo;, &amp;ldquo;tentative&amp;rdquo;, und der optionale &lt;code>fb&lt;/code>-Tag markiert den Nutzer als frei oder belegt für diesen Zeitraum. RSVP-Events referenzieren den &lt;code>a&lt;/code>-Tag des Kalender-Events und tragen den &lt;code>p&lt;/code>-Tag des Veranstalters, sodass der Client des Veranstalters Antworten über Relays hinweg aggregieren kann.&lt;/p>
&lt;p>&lt;strong>Die D-Tag-Ergänzung:&lt;/strong>&lt;/p>
&lt;p>Vor dem dieswöchigen Merge mussten Clients, die Events in einem Datumsbereich abfragen wollten, alle Events eines pubkeys oder Kalenders abrufen und clientseitig filtern. Der neue erforderliche &lt;code>D&lt;/code>-Tag auf zeitbasierten Events (kind 31923) enthält einen tagesgranularen Unix-Timestamp, berechnet als &lt;code>floor(unix_sekunden / 86400)&lt;/code>. Mehrtägige Events tragen mehrere &lt;code>D&lt;/code>-Tags, einen pro Tag. Relays können Events nun nach Tag indexieren und auf gefilterte Anfragen effizient antworten und verwandeln damit ein clientseitiges Filterproblem in eine relay-seitige Index-Abfrage.&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>Der &lt;code>D&lt;/code>-Wert &lt;code>20139&lt;/code> entspricht &lt;code>floor(1740067200 / 86400)&lt;/code> und platziert dieses Event auf den 20. Februar 2025. Clients, die „alle Events diese Woche&amp;quot; abfragen, senden einen Filter mit dem entsprechenden &lt;code>D&lt;/code>-Bereich, und Relays geben nur passende Events zurück.&lt;/p>
&lt;p>&lt;strong>Design-Entscheidungen:&lt;/strong>&lt;/p>
&lt;p>NIP-52 lässt wiederkehrende Events bewusst weg. Die Spezifikation lässt Wiederholungsregeln (RRULE aus iCalendar) vollständig aus und delegiert diese Komplexität an Clients. Ein Veranstalter veröffentlicht individuelle Events für jedes Vorkommen und hält das relay-seitige Datenmodell einfach. Teilnehmer-Tags tragen optionale Rollen (&amp;ldquo;host&amp;rdquo;, &amp;ldquo;speaker&amp;rdquo;, &amp;ldquo;attendee&amp;rdquo;), und Standort-Tags können Geohash-&lt;code>g&lt;/code>-Tags für räumliche Abfragen neben menschenlesbaren Adressen enthalten.&lt;/p>
&lt;p>&lt;strong>Implementierungen:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://github.com/zmeyer44/flockstr">Flockstr&lt;/a> ist der primäre Kalender-Client, der auf NIP-52 aufgebaut ist. &lt;a href="https://gitea.coracle.social/coracle/coracle">Coracle&lt;/a> zeigt Kalender-Events in seinem sozialen Feed an. Die &lt;code>D&lt;/code>-Tag-Ergänzung dieser Woche ermöglicht relay-seitiges temporales Indexing, das beide Clients nutzen können, um die Bandbreite beim Abfragen von Events in einem bestimmten Datumsbereich zu reduzieren.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut, Neuigkeiten hat oder sein Projekt vorgestellt sehen möchte, kann sich &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">per &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DM an uns wenden&lt;/a> oder uns auf Nostr finden.&lt;/p></content:encoded></item><item><title>Nostr Compass #9</title><link>https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/</link><pubDate>Wed, 11 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Mostro liefert seine erste öffentliche Beta nach drei Jahren Entwicklung und bringt P2P-Bitcoin-Handel auf Mobilgeräte via Nostr. OpenSats vergibt seine sechzehnte Welle von Bitcoin-Grants, wobei Minibits Wallet eine Erneuerung für sein Nostr-integriertes Cashu-Wallet erhält. &lt;strong>Zapstore erreicht den stabilen 1.0-Release&lt;/strong>, was die Reifung des dezentralisierten Android-App-Stores markiert. Coracle 0.6.29 fügt Themen und Highlight-Kommentare hinzu. Igloo Desktop v1.0.3 liefert umfangreiche Sicherheitshärtung für Frostr Threshold-Signierung. Amber v4.1.2-pre1 migriert zur Flow-Architektur. Angor erreicht v0.2.5 mit überarbeiteter Funding-UI und NIP-96-Bildserver-Konfiguration. NostrPress startet als Tool, das Nostr-Profile in statische Blogs umwandelt. Antiprimal liefert ein standardkonformes Gateway, das Primals proprietären Cache-Server mit Standard-Nostr-NIPs verbindet. Primal Android mergt 18 PRs, die die NWC-Infrastruktur mit Dual-Wallet-Unterstützung, Audit-Logging und der &lt;code>lookup_invoice&lt;/code>-Methode erweitern. diVine liefert API-First Video-Feeds. Marmots TypeScript SDK lagert seine Referenz-Chat-App in ein eigenständiges Repo aus und beginnt die Migration zu ts-mls v2. Im NIPs-Repository wird HyperLogLog Approximate Counting für NIP-45 gemergt und Identitäts-Tags werden aus kind 0 extrahiert. Vorschläge von vitorpamplona beginnen systematisch kind 0 Metadaten-Events zu verschlanken. Neue Protokollvorschläge umfassen Nostr Relay Connect für NAT-Traversierung und Nostr Web Tokens für signierte Web-Claims. In den Deep Dives dieser Woche geht es um NIP-45s neues HyperLogLog Approximate Counting für relay-übergreifende Event-Metriken und NIP-96s HTTP-Dateispeicherungsprotokoll, das nun zugunsten von Blossom als veraltet markiert ist, während Projekte den Übergang zwischen den beiden Medienstandards vollziehen.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Mostro liefert seine erste öffentliche Beta nach drei Jahren Entwicklung und bringt P2P-Bitcoin-Handel auf Mobilgeräte via Nostr. OpenSats vergibt seine sechzehnte Welle von Bitcoin-Grants, wobei Minibits Wallet eine Erneuerung für sein Nostr-integriertes Cashu-Wallet erhält. &lt;strong>Zapstore erreicht den stabilen 1.0-Release&lt;/strong>, was die Reifung des dezentralisierten Android-App-Stores markiert. Coracle 0.6.29 fügt Themen und Highlight-Kommentare hinzu. Igloo Desktop v1.0.3 liefert umfangreiche Sicherheitshärtung für Frostr Threshold-Signierung. Amber v4.1.2-pre1 migriert zur Flow-Architektur. Angor erreicht v0.2.5 mit überarbeiteter Funding-UI und NIP-96-Bildserver-Konfiguration. NostrPress startet als Tool, das Nostr-Profile in statische Blogs umwandelt. Antiprimal liefert ein standardkonformes Gateway, das Primals proprietären Cache-Server mit Standard-Nostr-NIPs verbindet. Primal Android mergt 18 PRs, die die NWC-Infrastruktur mit Dual-Wallet-Unterstützung, Audit-Logging und der &lt;code>lookup_invoice&lt;/code>-Methode erweitern. diVine liefert API-First Video-Feeds. Marmots TypeScript SDK lagert seine Referenz-Chat-App in ein eigenständiges Repo aus und beginnt die Migration zu ts-mls v2. Im NIPs-Repository wird HyperLogLog Approximate Counting für NIP-45 gemergt und Identitäts-Tags werden aus kind 0 extrahiert. Vorschläge von vitorpamplona beginnen systematisch kind 0 Metadaten-Events zu verschlanken. Neue Protokollvorschläge umfassen Nostr Relay Connect für NAT-Traversierung und Nostr Web Tokens für signierte Web-Claims. In den Deep Dives dieser Woche geht es um NIP-45s neues HyperLogLog Approximate Counting für relay-übergreifende Event-Metriken und NIP-96s HTTP-Dateispeicherungsprotokoll, das nun zugunsten von Blossom als veraltet markiert ist, während Projekte den Übergang zwischen den beiden Medienstandards vollziehen.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="mostro-liefert-erste-öffentliche-beta">Mostro liefert erste öffentliche Beta&lt;/h3>
&lt;p>&lt;a href="https://github.com/MostroP2P/mostro">Mostro&lt;/a>, die Peer-to-Peer-Bitcoin-Börse auf Nostr, hat ihre &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.0">Mobile App v1.1.0&lt;/a> veröffentlicht, die erste öffentliche Beta des Projekts nach drei Jahren Entwicklung. Nutzer können Bitcoin direkt handeln, wobei Nostr für Auftragskoordination und Lightning für Abwicklung sorgt, ganz ohne treuhänderischen Vermittler.&lt;/p>
&lt;p>Enthalten sind Push-Benachrichtigungen mit verbesserter Hintergrundzuverlässigkeit auf Android, ein optionales Logging-System zur Erfassung und Weitergabe von Diagnosedaten bei auftretenden Problemen, sanftere Relay-Updates durch additive Initialisierung und Phase-2-UI-Verfeinerungen mit Internationalisierungsunterstützung. Verfügbar auf &lt;a href="https://zapstore.dev">Zapstore&lt;/a> und als direkter &lt;a href="https://github.com/MostroP2P/mobile/releases/tag/v1.1.0">GitHub-Download&lt;/a>.&lt;/p>
&lt;p>Mostro reiht sich neben Shopstr und Plebeian Market als Nostr-native Commerce-Anwendung ein, mit dem Unterschied, dass es sich auf Fiat-zu-Bitcoin-Börsenkoordination konzentriert. Order-Matching und Streitbeilegung laufen über Nostr-Relays via den zugrunde liegenden &lt;a href="https://github.com/MostroP2P/mostro">Mostro-Daemon&lt;/a>.&lt;/p>
&lt;h3 id="opensats-sechzehnte-welle-von-bitcoin-grants">OpenSats sechzehnte Welle von Bitcoin-Grants&lt;/h3>
&lt;p>&lt;a href="https://opensats.org/blog/sixteenth-wave-of-bitcoin-grants">OpenSats&lt;/a> kündigte Grants für 17 Open-Source-Projekte an. Nostr-relevantes Highlight: &lt;a href="https://github.com/minibits-cash/minibits_wallet">Minibits Wallet&lt;/a>, das Android-&lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Wallet mit &lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a> Wallet-Event-Unterstützung und Nutzap-Integration, erhielt einen Erneuerungsgrant. Minibits verwendet Nostr-Events zur Speicherung des ecash-Token-Zustands, was Wallet-Backups per Relay-Sync geräteübergreifend portabel macht.&lt;/p>
&lt;h3 id="nostrpress-nostr-profil-zum-statischen-blog">NostrPress: Nostr-Profil zum statischen 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>) wandelt ein Nostr-Profil in einen vollständig statischen Blog um, der überall bereitgestellt werden kann. Artikel werden auf Nostr veröffentlicht, und NostrPress generiert daraus eine eigenständige Website, inklusive lokaler Medienspeicherung und RSS-Feeds.&lt;/p>
&lt;p>Auf Nunjucks-Templating und JavaScript aufbauend, produziert NostrPress Seiten ohne Plattform-Lock-in. Die generierte Ausgabe ist reines HTML/CSS, das auf jedem statischen Dateiserver, GitHub Pages, Netlify oder einem persönlichen VPS laufen kann. Neben &lt;a href="https://github.com/nostrband/nostrsite">Npub.pro&lt;/a> und &lt;a href="https://github.com/servus-social/servus">Servus&lt;/a> bietet sich das Tool als weitere Option an, Nostr-Inhalte in traditionelle Websites zu verwandeln.&lt;/p>
&lt;h3 id="antiprimal-standardkonformes-gateway-zu-primals-cache">Antiprimal: Standardkonformes Gateway zu Primals 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>), von Alex Gleason und dem Soapbox-Team entwickelt, ist ein WebSocket-Gateway, das Primals proprietären Cache-Server mit Standard-Nostr-Protokollnachrichten verbindet. Primal bietet Funktionen wie Event-Statistiken, Inhaltssuche und Web-of-Trust-Berechnungen per &lt;code>wss://cache.primal.net/v1&lt;/code>, setzt aber ein proprietäres Nachrichtenformat mit einem nicht-standardmäßigen &lt;code>cache&lt;/code>-Feld voraus, das Standard-Nostr-Clients nicht verwenden können. Antiprimal übersetzt Standard-NIP-Anfragen in Primals Format und konvertiert Antworten zurück.&lt;/p>
&lt;p>Unterstützt werden &lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a> COUNT-Abfragen (Reaktionen, Antworten, Reposts, Zap-Zähler, Follower-Zahlen), &lt;a href="https://github.com/nostr-protocol/nips/blob/master/50.md">NIP-50&lt;/a> Suche, &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> Relay-Informationen und &lt;a href="https://github.com/nostr-protocol/nips/blob/master/85.md">NIP-85&lt;/a> Trusted Assertions. Zusätzlich veröffentlicht ein Begleit-Bot NIP-85 kind 30382 (Benutzerstatistiken) und kind 30383 (Event-Engagement) Events. In TypeScript auf Bun mit der Nostrify-Bibliothek gebaut, hat das Projekt seit seiner Erstellung am 6. Februar bereits 53 Commits und ist live unter antiprimal.net.&lt;/p>
&lt;h3 id="ikaros-ki-agent-messaging-gateway-für-signal-und-nostr">Ikaros: KI-Agent-Messaging-Gateway für Signal und Nostr&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/ikaros">Ikaros&lt;/a>, vom Soapbox-Team entwickelt, ist ein Messaging-Gateway, das KI-Agenten die Kommunikation per Signal und Nostr-verschlüsselten DMs ermöglicht. Via &lt;a href="https://agentclientprotocol.org">Agent Client Protocol&lt;/a> (ACP) verbindet die Bridge jeden ACP-kompatiblen KI-Codierassistenten mit echten Messaging-Netzwerken. Drei Pull Requests bilden den initialen Build des Projekts diese Woche.&lt;/p>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/1">PR #1&lt;/a> implementiert einen vollständigen &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> Encrypted-DM-Adapter mit Sende-/Empfangsunterstützung, Antwort-Pufferung mit explizitem Flush bei Abschluss, &lt;code>nsec&lt;/code>- und Hex-Private-Key-Formaten, Multi-Relay-Publishing mit automatischer Wiederverbindung und einem interaktiven Setup-Wizard. Verwendet werden nostr-tools v2.23.0 und das ACP SDK v0.14.1.&lt;/p>
&lt;p>In &lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/2">PR #2&lt;/a> wird ein stiller Nachrichtenverlust durch Session-Update-Race-Condition behoben: eingehende Benachrichtigungen, die vor Registrierung der Session in der Map eintrafen, gingen still verloren, und der Fix puffert sie nun zum Replay nach Abschluss der Registrierung. &lt;a href="https://gitlab.com/soapbox-pub/ikaros/-/merge_requests/3">PR #3&lt;/a> fügt Signal-Nutzer- und Gruppennamen-/UUID-Metadaten zu Agenten-Interaktionen hinzu, sodass der KI-Agent weiß, mit wem er spricht und in welcher Gruppe. Damit eröffnet sich ein neuer Designraum: KI-Agenten, die per Nostr-DMs erreichbar sind und auch von Signal aus kontaktiert werden können, und umgekehrt.&lt;/p>
&lt;h3 id="kind-0-schlankheitskampagne">Kind-0-Schlankheitskampagne&lt;/h3>
&lt;p>vitorpamplona eröffnete diese Woche PRs, die systematische Extraktion von Daten aus kind 0 (Benutzer-Metadaten) Events in dedizierte Event-Kinds vorschlagen. Adressiert wird ein wachsendes Problem: kind 0 Events haben im Laufe der Zeit Felder angesammelt, die meisten Clients nicht verwenden, was die Größe jedes Profil-Abrufs aufbläht.&lt;/p>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/pull/2216">PR #2216&lt;/a> (gemergt) verschiebt Identitäts-Tags (&lt;code>i&lt;/code>-Tags) von kind 0 zu einem neuen kind 10011, da die Adoption minimal war. &lt;a href="https://github.com/nostr-protocol/nips/pull/2213">PR #2213&lt;/a> schlägt vor, &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05&lt;/a>-Verifizierung nach kind 10008 zu verschieben, was mehrere NIP-05-Identifikatoren pro Nutzer und Filterung nach NIP-05-Adresse ermöglichen würde. &lt;a href="https://github.com/nostr-protocol/nips/pull/2217">PR #2217&lt;/a> zielt darauf ab, Lightning-Adressen (lud06/lud16) in einen neuen kind zu extrahieren, sodass nicht mehr alle kind 0 Nutzer Zap-bezogene Felder mitführen, die nur bei Lightning-Integration relevant sind.&lt;/p>
&lt;p>Wiederbelebt wurde damit auch die Diskussion um die breitere Frage der kind 0 Struktur, einschließlich &lt;a href="https://github.com/nostr-protocol/nips/pull/1770">PR #1770&lt;/a>, dem langjährigen Vorschlag, stringifiziertes JSON in kind 0 Inhalten durch strukturierte Tags zu ersetzen.&lt;/p>
&lt;h3 id="nip-70-relay-unterstützung-entscheidend-für-verschlüsselte-nachrichten">NIP-70-Relay-Unterstützung entscheidend für verschlüsselte Nachrichten&lt;/h3>
&lt;p>White Noise, die Implementierung des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokolls, hat eine &lt;a href="https://blog.jgmontoya.com/2026/02/10/nip70-relay-status.html">kritische Lücke identifiziert&lt;/a> in der Relay-Unterstützung von &lt;a href="https://github.com/nostr-protocol/nips/blob/master/70.md">NIP-70&lt;/a> (Protected Events) und &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> (Authentifizierung). Tests ergaben, dass große öffentliche Relays wie Damus, Primal und nos.lol geschützte Events mit &lt;code>blocked: event marked as protected&lt;/code>-Fehlern direkt ablehnen, statt die erforderliche Authentifizierungs-Challenge einzuleiten.&lt;/p>
&lt;p>Gebrochen wird dadurch ein zentrales Sicherheitsfeature: NIP-70 ermöglicht das sichere Löschen verbrauchter MLS KeyPackages und verhindert „harvest now, decrypt later&amp;quot;-Angriffe. Verschlüsselte Messaging-Protokolle können Nutzer nicht vor zukünftiger Schlüsselkompromittierung schützen, solange Relays dies nicht unterstützen. White Noise hat NIP-70 als Reaktion standardmäßig deaktiviert und behält ein optionales Flag bei.&lt;/p>
&lt;p>&lt;strong>Aufruf an Relay-Betreiber:&lt;/strong> Implementiert den vollständigen NIP-42-Authentifizierungsablauf. Fordert bei geschützten Events zur Eigentümerschaftsbestätigung auf und akzeptiert dann validierte Schreibvorgänge. Geschützte Events ohne Authentifizierung abzulehnen bricht Protokoll-Sicherheitsgarantien, auf die verschlüsselte Messaging-Anwendungen angewiesen sind.&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>), hodlbods Web-Client, hat &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.6.29">0.6.29&lt;/a> veröffentlicht. Neu sind Anzeige von Themen und Kommentaren zu kind 9802 Highlights sowie ein Listen-Navigationselement, das schnellen Zugriff auf benutzerkuratierte Listen aus der Haupt-UI bietet. Unter der Haube wurde Coracle auf eine neue Version von Welshman aktualisiert, der gemeinsamen Nostr-Bibliothek für Relay-Management und Event-Handling. Aktualisiert wurde auch die Standard-Relay-Liste, und Glitchtip-Error-Tracking wurde entfernt.&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>, die &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a>-basierte Threshold-Signer- und Schlüsselverwaltungsanwendung, hat &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop/releases/tag/v1.0.3">v1.0.3&lt;/a> mit umfangreicher Sicherheitshärtung veröffentlicht. IPC-Validierung, Electron-Isolation und SSRF-bewusste Relay-Prüfungen wehren Server-Side-Request-Forgery ab. Hinzu kommen ein neuer Onboarding- und Share-Import-Flow zur Vereinfachung der Schlüsselverteilung, Relay-Planung mit Normalisierung und Prioritäts-Merging, und eine Preload-basierte Electron-API-Architektur zur Verbesserung der Sicherheitsgrenze zwischen Renderer und Hauptprozess. Stabilität bei Threshold-Signing-Sessions gewährleistet ein Signer-Keep-Alive-System, und Recovery-UX-Verbesserungen reduzieren die Reibung bei der Schlüsselwiederherstellung.&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>, der Android Event-Signer, hat &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.2-pre1">v4.1.2-pre1&lt;/a> veröffentlicht. Behoben werden die fehlende Relay-Trust-Score-Anzeige aus v4.1.1 und JSON-Parsing-Probleme bei Nicht-Nostr-Verschlüsselungs-/Entschlüsselungsanfragen. Migriert wurde das Account-Modell von LiveData zu Flow, Bunker-Secrets wechseln zu vollständigen UUIDs, und Gradle Plugin 9 kommt als Upgrade hinzu.&lt;/p>
&lt;h3 id="mostro-mobile-v110-und-daemon-v0161">Mostro Mobile v1.1.0 und Daemon v0.16.1&lt;/h3>
&lt;p>Im &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#mostro-liefert-erste-%c3%b6ffentliche-beta">Neuigkeiten-Abschnitt oben&lt;/a> findet sich die vollständige Berichterstattung zum Mobile-Release. Serverseitig hat der &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> veröffentlicht, mit automatischem Publishing von NIP-01 kind 0 Metadaten beim Start (&lt;a href="https://github.com/MostroP2P/mostro/pull/575">PR #575&lt;/a>), sodass der Daemon seine Identität im Netzwerk ankündigt. Ebenfalls aktualisiert wurde die Dokumentation zur Dev-Fee-Berechnung (&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>), das dezentralisierte P2P-Funding-Protokoll auf Bitcoin und Nostr, hat &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.5">v0.2.5&lt;/a> mit drei gemergten PRs veröffentlicht. &lt;a href="https://github.com/block-core/angor/pull/649">PR #649&lt;/a> redesignt den Funds-Management-Bereich (V2) und ersetzt das bisherige Layout durch ein neues Interface zur Verfolgung einzelner UTXOs und Investitionspositionen. &lt;a href="https://github.com/block-core/angor/pull/651">PR #651&lt;/a> überarbeitet die InvoiceView: aktualisierte Button-Styles, schließbare Dialoge, „Copy Address&amp;quot;-Befehl, Abbruchunterstützung und verbessertes Investment-Flow-Handling. Konfigurierbare &lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/96.md">Spec&lt;/a>) Bildserver in den Einstellungen kommen via &lt;a href="https://github.com/block-core/angor/pull/652">PR #652&lt;/a>, sodass Nutzer ihren Media-Upload-Endpunkt wählen können. In der Vorwoche wurde &lt;a href="https://github.com/block-core/angor/releases/tag/v0.2.4">v0.2.4&lt;/a> veröffentlicht.&lt;/p>
&lt;h3 id="ridestr-v022-und-v023">Ridestr v0.2.2 und v0.2.3&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a>, die dezentralisierte Rideshare-Plattform, &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/#ridestr-v020-roadflare-release">letzte Woche vorgestellt&lt;/a>, setzte die schnelle Iteration mit &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.2">v0.2.2&lt;/a> (Bridge Payment Hotfix) und &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.3">v0.2.3&lt;/a> nach dem v0.2.0 „RoadFlare Release&amp;quot; fort. Im v0.2.2-Hotfix wird ein Bug behoben, bei dem Cross-Mint-&lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Bridge-Zahlungen Fahrten automatisch stornierten, während die Zahlung noch verarbeitet wurde oder letztendlich erfolgreich gewesen wäre, was vorzeitige Fahrtenstornierung bei langsameren Abwicklungen verhindert. Ebenfalls behoben wurden UI-Flackern und defekte Touch-Hitboxen beim „Mein Standort&amp;quot;-Button. v0.2.3 liefert weitere Bugfixes. Beide Releases enthalten separate APKs, jeweils eine Ridestr-Fahrgast-App und eine Drivestr-Fahrer-App.&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>), die PHP-Hilfsbibliothek, hat &lt;a href="https://github.com/nostrver-se/nostr-php/releases/tag/1.9.4">1.9.4&lt;/a> veröffentlicht und fügt eine konfigurierbare &lt;code>timeout&lt;/code>-Eigenschaft zur Request-Klasse hinzu (&lt;a href="https://github.com/nostrver-se/nostr-php/pull/106">PR #106&lt;/a>). Entwickler können damit benutzerdefinierte Timeout-Dauern für Relay-Verbindungen und Nachrichtenanfragen setzen, um endloses Hängen zu verhindern.&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>), der erlaubnisfreie Android-App-Store auf Nostr, &lt;strong>hat diese Woche seinen stabilen 1.0-Release-Meilenstein erreicht&lt;/strong> nach Monaten von Release-Kandidaten.&lt;/p>
&lt;p>Wichtige Stabilitätsverbesserungen sind enthalten: Install-Button-Zustandshandling, das sicherstellt, dass „Löschen&amp;quot; sofort nach Abschluss der Installation erscheint, nutzerfreundliche Fehlermeldungen mit aufklappbaren technischen Details und ein „Problem melden&amp;quot;-Button, der verschlüsselte DMs via Nostr mit ephemeren Schlüsseln sendet. Hinzu kommen neuer Update-Bildschirm mit Polling und Batch-Tracking, besserer Download-Watchdog, dynamische parallele Download-Limits basierend auf Geräteleistung, häufigere Synchronisierung installierter Pakete und verbesserte Versionsvergleichslogik. Gelöst wurde ein kritisches flutter_secure_storage-Problem, und die Package-Manager-Behandlung von Grenzfällen wurde verbessert.&lt;/p>
&lt;p>Dieser Meilenstein repräsentiert die Reifung von Nostrs erster dedizierter App-Distributionsplattform, die Entwicklern ermöglicht, Android-Anwendungen direkt an Nutzer zu veröffentlichen, frei von zentralisiertem App-Store-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>, das Go CLI-Tool vom &lt;a href="https://github.com/zapstore/zapstore">Zapstore&lt;/a>-Team, ersetzt Zapstores bisheriges Publishing-Tooling zum Signieren und Hochladen von Android-Apps und hat &lt;a href="https://github.com/zapstore/zsp/releases/tag/v0.3.1">v0.3.1&lt;/a> veröffentlicht. ZSP übernimmt APK-Beschaffung von GitHub, GitLab, Codeberg, F-Droid oder lokalen Dateien, parst dann Metadaten, signiert Nostr-Events (via privatem Schlüssel, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Bunker oder &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a> Browser-Erweiterung) und lädt Artefakte auf &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server hoch. Neu sind vollständiger Offline-Modus zum Keystore-Linking, &lt;code>Content-Digest&lt;/code>-Header bei Blossom-Uploads, verbesserte arm64-v8a APK-Erkennung aus F-Droid-Repositories, GitLab Trailing-Query-Parameter-Fixes und vollständige &lt;code>.env&lt;/code>-Dateiunterstützung.&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>, der iOS Nostr-Client, wurde auf Version 1.17 aktualisiert (&lt;a href="https://github.com/damus-io/damus/pull/3606">PR #3606&lt;/a>). Behoben wird ein RelayPool-Problem, bei dem Verbindungen nach ephemerer Lease-Freigabe geschlossen wurden (&lt;a href="https://github.com/damus-io/damus/pull/3605">PR #3605&lt;/a>), was dazu führen konnte, dass Subscriptions unerwartet abbrachen. Gelöst wird außerdem ein Bug bei der Favoriten-Timeline, die keine Events anzeigte, sobald zwischen Tabs gewechselt wurde (&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>, das Nostr Army Knife CLI, hat &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.3">v0.18.3&lt;/a> mit drei Stabilitätsfixes veröffentlicht: Verhinderung eines Panics bei nil oder zu kurzen AUTH-Challenge-Tags, Prüfung von Dateparser-Fehlern vor Verwendung des geparsten Werts und Behandlung von Cashu-Mint-URLs, denen der &lt;code>://&lt;/code>-Separator fehlt.&lt;/p>
&lt;h3 id="mi-browserbasiertes-lokales-relay">Mi: Browserbasiertes lokales 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>), eine &lt;a href="https://shakespeare.wtf">Shakespeare&lt;/a> MiniApp, ist ein browserbasiertes lokales Relay, das Nostr-Events in IndexedDB archiviert. Mi ruft Profile (kind 0), Kontaktlisten (kind 3), Relay-Listen (kind 10002) und Wallet-Events von verbundenen Relays ab und speichert sie lokal, was Offline-Zugriff auf eigene Daten ermöglicht. Aufgebaut mit React und 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>), die dezentralisierte Aktivismus- und Fundraising-Plattform des Soapbox-Teams, hat &lt;a href="https://gitlab.com/soapbox-pub/agora/-/releases/v1.0.2">v1.0.2&lt;/a> mit Android-APK zum direkten Installieren veröffentlicht. Dies ist die erste Compass-Erwähnung von Agora, das am 17. Januar mit einem Leitbild startete: „Join the global movement for freedom. Send support to activists on the ground internationally and take part in local actions.&amp;quot;&lt;/p>
&lt;p>Im Zentrum steht eine Weltkarte, auf der Nutzer nach Land durchsuchen, standortgetaggte „Aktionen&amp;quot; erstellen (Proteste, Kampagnen, Community-Organisation) und diese durch verschachtelte Kommentare diskutieren können. Alle Inhalte werden via Nostr-Relays verbreitet, sodass kein zentraler Server abgeschaltet werden kann, um Koordination zum Schweigen zu bringen. Agora unterstützt mehrere Sprachen mit CI-erzwungener Übersetzungsparität, integriert &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienserver und bietet Suche, Hashtag-Browsing mit globalem/regionalem Toggle, Profile und Reaktionssysteme. Als aktueller Android-Build ist v1.0.2 als direkter APK-Download verfügbar.&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>, der experimentelle 3D-Nostr-Client auf Basis der Bevy Game Engine, hat &lt;a href="https://codeberg.org/xonos/xonos/releases/tag/v0.1.6">v0.1.6&lt;/a> veröffentlicht. xonos rendert Nostr-Events in einer räumlichen 3D-Umgebung mit Text-to-Speech-Fähigkeiten und erforscht, wie soziale Protokolldaten außerhalb konventioneller 2D-Interfaces funktionieren könnten.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="primal-android-erweitert-nwc-infrastruktur">Primal Android erweitert NWC-Infrastruktur&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> mergte 18 PRs diese Woche und setzt den NWC-Ausbau fort, der &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/#primal-android-liefert-nwc-verschl%C3%BCsselung">letzte Woche begonnen wurde&lt;/a>. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/883">PR #883&lt;/a> fügt NWC-Verbindungen für beide Wallets (Spark und extern) hinzu, und &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/879">PR #879&lt;/a> implementiert die &lt;code>lookup_invoice&lt;/code>-NWC-Methode zur Überprüfung des Zahlungsstatus.&lt;/p>
&lt;p>NWC-Request-Response-Audit-Logging zur Fehlersuche bei Wallet-Interaktionen bringt &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/880">PR #880&lt;/a>. Multi-Account-Unterstützung in &lt;code>PrimalNwcService&lt;/code> kommt via &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/877">PR #877&lt;/a>, sodass Nutzer mit mehreren Profilen separate Wallet-Verbindungen pflegen können. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/882">PR #882&lt;/a> implementiert periodische Bereinigung abgelaufener Budget-Holds und verhindert, dass veraltete Zahlungsreservierungen Wallet-Operationen blockieren.&lt;/p>
&lt;p>UI-Arbeit umfasst Wallet-Upgrade-Bildschirm-Redesigns (&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-Adress-Einstellung beim Onboarding (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/888">PR #888&lt;/a>) und einen Fix, der Zap-Transaktionen korrekt von regulären Zahlungen bei Nicht-Lightning-Typen unterscheidet (&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/887">PR #887&lt;/a>).&lt;/p>
&lt;h3 id="divine-liefert-api-first-video-feeds">diVine liefert API-First Video-Feeds&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, der Kurzform-Video-Client, mergte 19 PRs diese Woche und verlagert sich zu einer API-First-Architektur. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1468">PR #1468&lt;/a> führt API-First Video-Feeds ein, und &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1466">PR #1466&lt;/a> ergänzt Trending-, Recent- und Home-API-Endpunkte. Spezifische Video-Controller zum effizienten Feed-Rendering werden in &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1433">PR #1433&lt;/a> indiziert.&lt;/p>
&lt;p>Profilhandling verbesserte sich mit &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1440">PR #1440&lt;/a>, der ein Cache-plus-Fresh-Pattern implementiert, was Ladezeiten reduziert und gleichzeitig Datenaktualität sicherstellt. Geliefert wurden auch Benachrichtigungs-Fixes (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1437">PR #1437&lt;/a>), Kommentar-Flow-Refactoring (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1431">PR #1431&lt;/a>) und Tab-Swiping auf dem Benachrichtigungsbildschirm (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1388">PR #1388&lt;/a>).&lt;/p>
&lt;h3 id="white-noise-keyring-vereinheitlichung-und-suche">White Noise: Keyring-Vereinheitlichung und Suche&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/marmot-protocol/whitenoise-rs">White Noise&lt;/a> Backend des &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokolls mergte 4 PRs diese Woche. Zwei PRs verbesserten das Keyring-Handling: &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/468">PR #468&lt;/a> macht den Keyring-Service-Identifier per &lt;code>WhitenoiseConfig&lt;/code> konfigurierbar, und &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/475">PR #475&lt;/a> vereinheitlicht die Implementierung auf ein einzelnes &lt;code>keyring-core&lt;/code>-Crate mit plattformnativen Stores. Suchfunktionalität kommt separat in &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/470">PR #470&lt;/a> hinzu.&lt;/p>
&lt;h3 id="marmot-ts-extrahiert-referenz-chat-app">Marmot TS extrahiert Referenz-Chat-App&lt;/h3>
&lt;p>Das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> TypeScript SDK (&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a>) mergte &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/40">PR #40&lt;/a>, der die eingebaute Referenz-Chat-Anwendung entfernt und in ein eigenständiges Repo auslagert: &lt;a href="https://github.com/marmot-protocol/marmots-web-chat">marmots-web-chat&lt;/a>. Am 6. Februar erstellt, ist das neue Repo eine Referenzimplementierung mit eigener CI-Pipeline, Tabbed-Chat-View und unabhängigem Build-System. So kann sich das SDK auf Bibliotheksbelange konzentrieren, während die Chat-App die UX unabhängig weiterentwickelt.&lt;/p>
&lt;p>Offen ist &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/41">PR #41&lt;/a>, der marmot-ts zu ts-mls v2.0.0 migriert und eine überarbeitete API mit vereinheitlichten Kontextobjekten, neuen Nachrichtenbehandlungs-Utilities (Event-Erstellung, Lesen, Deserialisierung), KeyPackage-Metadaten-Helfern und Löschungs-Event-Unterstützung bringt.&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> mergte 5 PRs diese Woche. &lt;a href="https://github.com/getAlby/hub/pull/2049">PR #2049&lt;/a> fügt ein Alby CLI zum App-Store-Interface hinzu. Ungültige Zap-Daten in der Transaktionsliste behandelt &lt;a href="https://github.com/getAlby/hub/pull/2033">PR #2033&lt;/a>, und &lt;a href="https://github.com/getAlby/hub/pull/2046">PR #2046&lt;/a> entfernt die ungenutzte &lt;code>ListTransactions&lt;/code>-Methode aus dem LNClient-Interface.&lt;/p>
&lt;h3 id="notedeck-liefert-dashboard-und-agentium">Notedeck liefert Dashboard und Agentium&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der plattformübergreifende Nostr-Client von Damus, mergte 6 PRs diese Woche. &lt;a href="https://github.com/damus-io/notedeck/pull/1247">PR #1247&lt;/a> fügt eine initiale Dashboard-App hinzu. Agentium, die Multi-Agent-Entwicklungsumgebung, die den Dave-KI-Assistenten in ein System mit dualen KI-Modi und szenenbasiertem Agenten-Management verwandelt, kommt in &lt;a href="https://github.com/damus-io/notedeck/pull/1293">PR #1293&lt;/a>. Mehrzeiliger Nachrichtenkomposer mit Signal-artigen Tastenkombinationen folgt in &lt;a href="https://github.com/damus-io/notedeck/pull/1276">PR #1276&lt;/a>, und &lt;a href="https://github.com/damus-io/notedeck/pull/1278">PR #1278&lt;/a> bringt Medienperformance-Verbesserungen. Bemerkenswerte offene PRs umfassen &lt;a href="https://github.com/damus-io/notedeck/pull/1288">Outbox-Infrastruktur&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34&lt;/a> &lt;a href="https://github.com/damus-io/notedeck/pull/1289">Git-App-Planung&lt;/a>.&lt;/p>
&lt;h3 id="agora-liefert-großes-ui-overhaul">Agora liefert großes UI-Overhaul&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/agora">Agora&lt;/a> mergte 7 PRs diese Woche neben dem v1.0.2-Release. Am umfangreichsten ist &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/106">PR #106&lt;/a>, der 11 UI-Aufgaben in den Bereichen Einstellungen, Profilbearbeitung, Karteninteraktionen, Suchergebnisse, Kommentarfilterung und Blossom-Server-Management abschließt. Reaktionsbuttons wurden deaktiviert, damit nicht-authentifizierte Nutzer keine stillen Fehler mehr erhalten. Zudem wurden Date-Line-Kartenschwenken und fette Übereinstimmungstexte in Suchergebnissen ergänzt.&lt;/p>
&lt;p>Kommentarzähler unter Feed-Beiträgen und Thread-Seiten kommen in &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/108">PR #108&lt;/a>. Automatische Wiederholung bei Event-Ladefehlern mit explizitem Neulade-Button fügt &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/107">PR #107&lt;/a> hinzu. &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/104">PR #104&lt;/a> ändert Hashtag-Browsing auf standardmäßig globalen Scope, da länderspezifischer Standard oft null Ergebnisse lieferte.&lt;/p>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/109">PR #109&lt;/a> prüft per CI-Schritt die Übersetzungsparität und lässt den Build fehlschlagen, falls Werte fehlen. &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/110">PR #110&lt;/a> kürzt große Notizen in Feeds zum Erhalt des Scroll-Rhythmus, und &lt;a href="https://gitlab.com/soapbox-pub/agora/-/merge_requests/111">PR #111&lt;/a> behebt iOS-Mobile-Zoom beim Kommentieren von Aktionen, verursacht durch kleine Schriftgrößen.&lt;/p>
&lt;h3 id="clawstr-liefert-cli-und-lightning-zap-buttons">Clawstr liefert CLI und Lightning-Zap-Buttons&lt;/h3>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/clawstr">Clawstr&lt;/a>, die Reddit-inspirierte Plattform, auf der KI-Agenten Communities auf Nostr erstellen und verwalten, mergte 3 PRs diese Woche. In &lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/11">PR #11&lt;/a> werden alle manuellen nak-Befehle in den KI-Agenten-Skill-Definitionen durch das neue &lt;code>@clawstr/cli&lt;/code>-Paket (&lt;code>npx -y @clawstr/cli@latest&lt;/code>) ersetzt, manuelle JSON-Event-Konstruktion zugunsten von CLI-Befehlen eliminiert und Wallet-Operationen (init, balance, zap, npc) sowie &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> Volltextsuche hinzugefügt.&lt;/p>
&lt;p>&lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/13">PR #13&lt;/a> bringt eine „For Humans&amp;quot;-Dokumentationsseite und eine &lt;code>ProfileZapDialog&lt;/code>-Komponente. Auf Profilseiten erscheint der Zap-Button, sobald eine Lightning-Adresse konfiguriert ist, und funktioniert ohne Login per LNURL-pay mit voreingestellten sats-Beträgen und QR-Code-Anzeige. In &lt;a href="https://gitlab.com/soapbox-pub/clawstr/-/merge_requests/12">PR #12&lt;/a> wird der &lt;code>wallet sync&lt;/code>-Befehl dokumentiert und erklärt, wie Zahlungen an Lightning-Adressen von NPC gehalten werden, bis Agenten ihre Wallets explizit synchronisieren.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&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/de/topics/nip-45/">NIP-45 (Event-Zählung)&lt;/a> unterstützt jetzt HyperLogLog (HLL) Approximate Counting. Relays können 256-Byte HLL-Registerwerte zusammen mit COUNT-Antworten zurückgeben. Durch Zusammenführen dieser Register von mehreren Relays berechnen Clients approximative Kardinalitäten, ohne vollständige Event-Sets herunterladen zu müssen. Primärer Anwendungsfall sind Follower- und Reaktionszähler, ohne auf ein einzelnes Relay als autoritative Quelle angewiesen zu sein. Schon zwei Reaktions-Events verbrauchen mehr Bandbreite als die 256-Byte-HLL-Payload. HyperLogLog++-Korrekturen verbessern die Genauigkeit bei kleinen Kardinalitäten.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2216">NIP-39: Identitäts-Tags aus Kind 0 verschoben&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/de/topics/nip-39/">NIP-39&lt;/a> Identitätsanspruchs-Tags (&lt;code>i&lt;/code>-Tags) wurden aus kind 0 Metadaten-Events in ein neues dediziertes kind 10011 extrahiert. Begründung: fast keine Clients unterstützen diese Tags, sodass sie jedem kind 0 Abruf Größe hinzufügen, ohne Mehrwert zu bieten. Dies ist der erste in einer Reihe von Kind-0-Extraktions-PRs von vitorpamplona (siehe &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#kind-0-schlankheitskampagne">Neuigkeiten-Abschnitt&lt;/a>).&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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 schlägt ein Protokoll zum Zugriff auf Nostr-Relays durch verschlüsseltes Tunneling via öffentliches Rendezvous-Relay vor. Ermöglicht wird damit der Zugang zu Relays hinter NAT oder Firewalls, einschließlich persönlicher Relays auf Heimservern oder Mobilgeräten. Verwendet werden kind 24891/24892 Events mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung. Praktische Anwendung: jeder Nostr-Client kann lokalen Speicher (IndexedDB, SQLite) als Relay-Endpunkt für geräteübergreifende Synchronisation bereitstellen. Standard NIP-01 Semantiken (REQ, EVENT, CLOSE, COUNT) passieren den Tunnel transparent. Referenzimplementierungen existieren in Go (ORLY Relay) und 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 schlägt Nostr Web Tokens vor, ein Nostr-Event-Format zur Übermittlung signierter Claims zwischen Web-Parteien, inspiriert von JSON Web Tokens (JWTs). NWT kann sowohl &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a> (HTTP Auth) als auch &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom-Autorisierungs-Events&lt;/a> repräsentieren und gibt Clients Flexibilität in Bezug darauf, wie und wie lange Tokens gültig bleiben. Verfügbar ist eine Go-Referenzbibliothek. Verlinkt im PR sind eine &lt;a href="https://github.com/pippellia-btc/nostr-web-tokens">Video-Erklärung&lt;/a> und ein &lt;a href="https://github.com/pippellia-btc/nostr-web-tokens#comparisons">detaillierter Vergleich&lt;/a> mit NIP-98 und Blossom Auth.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2210">NIP-47-Vereinfachung&lt;/a>&lt;/strong> - rolznz schlägt vor, die &lt;code>multi_&lt;/code>-Methoden aus &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a> zu entfernen, da sie komplex zu implementieren waren und keine Adoption fanden. Reduziert wird auch Duplizierung in Verschlüsselungs- und Abwärtskompatibilitäts-Handling, was die Spec nach der &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/#nip-updates">Hold-Invoice-Ergänzung letzte Woche&lt;/a> bereinigt.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2213">NIP-05: Verschiebung in eigenen Event-Kind&lt;/a>&lt;/strong> - vitorpamplona schlägt vor, NIP-05-Verifizierung von kind 0 in ein neues kind 10008 zu verschieben, was mehrere NIP-05-Identifikatoren pro Nutzer und Filterung nach NIP-05-Adresse ermöglicht. Teil der Kind-0-Schlankheitskampagne.&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 aus Kind 0&lt;/a>&lt;/strong> - vitorpamplona schlägt vor, lud06/lud16 (Lightning-Adressen) aus kind 0 in einen dedizierten Event-Kind gemäß &lt;a href="https://nostrcompass.org/de/topics/nip-57/">NIP-57&lt;/a> zu extrahieren, und setzt die Kind-0-Schlankheitsbemühung fort.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2165">Profil-Hypercustomization&lt;/a>&lt;/strong> - fiatjaf schlägt erweiterte Profilanpassungsfähigkeiten vor, die weit hinaus gehen, was kind 0 derzeit unterstützt.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-45-event-zählung-und-hyperloglog">NIP Deep Dive: NIP-45 (Event-Zählung) und HyperLogLog&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-45/">NIP-45&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/45.md">Spec&lt;/a>) definiert, wie Clients Relays bitten können, Events zu zählen, die einem Filter entsprechen, ohne die Events selbst zu übertragen. Mit dem Merge von &lt;a href="https://github.com/nostr-protocol/nips/pull/1561">HyperLogLog-Unterstützung&lt;/a> diese Woche kommt eine probabilistische Datenstruktur hinzu, die ein grundlegendes Problem löst: wie zählt man Dinge sicher, die auf mehreren unabhängigen Relays verteilt liegen.&lt;/p>
&lt;p>&lt;strong>Das Problem:&lt;/strong>&lt;/p>
&lt;p>Events auf einem einzelnen Relay zu zählen ist einfach: COUNT-Anfrage senden, Zahl zurückbekommen. Netzwerkübergreifend ist es schwieriger. Meldet Relay A 50 Reaktionen und Relay B 40, ergibt das nicht 90, da viele Events auf beiden Relays existieren. Die wahre Zählung lässt sich nicht ermitteln, ohne alle Events herunterzuladen und zu deduplizieren.&lt;/p>
&lt;p>&lt;strong>HyperLogLog:&lt;/strong>&lt;/p>
&lt;p>HyperLogLog (HLL) ist ein probabilistischer Algorithmus, der die Anzahl eindeutiger Elemente in einer Menge mit festem Speicherbedarf schätzt. In NIP-45 kommen 256 Register mit je einem Byte zum Einsatz, was genau 256 Bytes verbraucht, unabhängig von der Anzahl gezählter Events. Funktionieren tut der Algorithmus, indem er die Binärdarstellung jeder Event-ID untersucht und die Position der führenden Nullen verfolgt. Events, deren IDs mit vielen Nullen beginnen, sind statistisch selten, sodass ihr Auftreten auf eine große Menge hinweist.&lt;/p>
&lt;p>&lt;strong>Wie es in NIP-45 funktioniert:&lt;/strong>&lt;/p>
&lt;p>Antwortet ein Relay auf eine COUNT-Anfrage, kann es ein &lt;code>hll&lt;/code>-Feld mit base64-kodierten Registerwerten einschließen:&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>HLL-Werte von mehreren Relays sammelt der Client und führt sie zusammen, indem er den Maximalwert an jeder Registerposition übernimmt. Dieses zusammengeführte HLL repräsentiert die Vereinigungsmenge aller Event-Sets und behandelt Deduplizierung automatisch. Aus den zusammengeführten Registern wird dann die endgültige Kardinalitätsschätzung berechnet.&lt;/p>
&lt;p>&lt;strong>Genauigkeit:&lt;/strong>&lt;/p>
&lt;p>Bei 256 Registern beträgt der Standardfehler ungefähr 5,2%. Liegt die tatsächliche Zählung bei 1.000, fällt die Schätzung typischerweise zwischen 948 und 1.052. Konstant bleibt der relative Fehler auch bei größeren Zählungen: 100.000 wird auf ungefähr 94.800-105.200 geschätzt. HyperLogLog++-Korrekturen verbessern die Genauigkeit bei kleinen Kardinalitäten (unter ca. 200), wo der Basisalgorithmus zur Überschätzung neigt.&lt;/p>
&lt;p>&lt;strong>Warum es wichtig ist:&lt;/strong>&lt;/p>
&lt;p>Soziale Metriken (Follower-Zahlen, Reaktionszahlen, Repost-Zahlen) sind Kernfunktion von Social-Media-Clients. Relays einzeln abzufragen zentralisiert die Zählung, alle Events von allen Relays herunterzuladen verschwendet Bandbreite. HLL ermöglicht gute ungefähre Zählungen von mehreren Relays mit nur 256 Bytes Overhead pro Relay, unabhängig von der tatsächlichen Zählung. Schon zwei Reaktions-Events verbrauchen mehr Bandbreite als eine vollständige HLL-Payload.&lt;/p>
&lt;p>Fixiert ist die Registeranzahl auf 256 zur Interoperabilität. Alle Relays produzieren zusammenführbare HLL-Werte, unabhängig von der verwendeten Implementierung. Einmal implementiert, profitieren Clients von jedem Relay, das HLL unterstützt.&lt;/p>
&lt;p>&lt;strong>Aktueller Status:&lt;/strong>&lt;/p>
&lt;p>Von fiatjaf eröffnet, war der PR mehrere Monate in Diskussion, bevor er diese Woche gemergt wurde. Relay-Implementierungen müssen HLL-Berechnung zu ihren COUNT-Handlern hinzufügen, Client-Implementierungen brauchen HLL-Zusammenführung in ihrer Zählaggregationslogik.&lt;/p>
&lt;h2 id="nip-deep-dive-nip-96-http-dateispeicherung-und-der-übergang-zu-blossom">NIP Deep Dive: NIP-96 (HTTP-Dateispeicherung) und der Übergang zu Blossom&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-96/">NIP-96&lt;/a> (&lt;a href="https://github.com/nostr-protocol/nips/blob/master/96.md">Spec&lt;/a>) definierte, wie Nostr-Clients Dateien auf HTTP-Medienservern hochladen, herunterladen und verwalten. Inzwischen als „nicht empfohlen&amp;quot; zugunsten von &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a> (BUD-basiertes Medien-Hosting) markiert, bleibt NIP-96 diese Woche relevant, weil Angor v0.2.5 &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#angor-v025">NIP-96-Serverkonfiguration hinzugefügt hat&lt;/a> und ZSP v0.3.1 &lt;a href="https://nostrcompass.org/de/newsletters/2026-02-11-newsletter/#zsp-v031">auf Blossom-Server hochlädt&lt;/a>, was einen Protokollübergang in Aktion zeigt.&lt;/p>
&lt;p>&lt;strong>Wie NIP-96 funktioniert:&lt;/strong>&lt;/p>
&lt;p>Fähigkeiten eines Dateiservers erkennt der Client durch Abruf von &lt;code>/.well-known/nostr/nip96.json&lt;/code>, das API-URL, unterstützte Inhaltstypen, Größenlimits und verfügbare Medientransformationen zurückgibt:&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>Zum Hochladen sendet der Client einen &lt;code>multipart/form-data&lt;/code> POST an die API-URL mit einem &lt;a href="https://github.com/nostr-protocol/nips/blob/master/98.md">NIP-98&lt;/a>-Autorisierungs-Header (ein signiertes Nostr-Event, das die Identität des Uploaders beweist). Zurück kommt eine &lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a> Dateimetadaten-Struktur mit Datei-URL, Original- und transformierten SHA-256-Hashes, MIME-Typ und Abmessungen:&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 verwenden GET-Anfragen an &lt;code>&amp;lt;api_url&amp;gt;/&amp;lt;sha256-hash&amp;gt;&lt;/code>, mit optionalen Abfrageparametern wie Bildgrößenänderung (z.B. Breite 320). Löschung erfolgt per DELETE mit NIP-98-Auth, und nur der ursprüngliche Uploader kann seine Dateien löschen. Paginierte Ergebnisse der Uploads lassen sich per Dateilistungs-Endpunkt abrufen.&lt;/p>
&lt;p>Zur Deklaration bevorzugter Upload-Server veröffentlichen Nutzer kind 10096 Events, sodass Clients den richtigen Server automatisch auswählen.&lt;/p>
&lt;p>&lt;strong>Warum es als veraltet markiert wurde:&lt;/strong>&lt;/p>
&lt;p>NIP-96 band Datei-URLs an bestimmte Server. Fiel &lt;code>files.example.com&lt;/code> aus, verlor jede Nostr-Notiz, die darauf verwies, ihre Medien. Fragil war die Adresse, weil der Server selbst die Adresse war.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a> (Blobs Stored Simply on Mediaservers) kehrt dies um, indem der SHA-256-Hash des Dateiinhalts zur kanonischen Kennung wird. Jede Blossom-URL enthält den Hash (&lt;code>https://blossom.example/&amp;lt;sha256&amp;gt;.png&lt;/code>), aber jeder Blossom-Server, der dieselbe Datei hostet, liefert sie unter demselben Hash-Pfad. Verschwindet ein Server, fragen Clients einen anderen nach demselben Hash ab. Content-Adressierung macht Daten standardmäßig serverübergreifend portabel.&lt;/p>
&lt;p>Blossom vereinfacht auch die API. NIP-96 verwendete Multipart-Form-Uploads mit JSON-Antworten, Transformationsrichtlinien und einem Discovery-Endpunkt. Blossom setzt auf einfachen PUT, GET und signierte Nostr-Events (statt HTTP-Header) zur Autorisierung. Aufgeteilt ist die Blossom-Spezifikation in modulare Dokumente: BUD-01 (Server-Protokoll, Autorisierung, Abruf), BUD-02 (Blob-Upload), BUD-03 (Nutzerserver) und BUD-04 (Spiegelung zwischen Servern).&lt;/p>
&lt;p>Im September 2025 erfolgte die Markierung als veraltet via &lt;a href="https://github.com/nostr-protocol/nips/pull/2047">PR #2047&lt;/a>, der NIP-96 im NIPs-Index als „nicht empfohlen&amp;quot; kennzeichnete.&lt;/p>
&lt;p>&lt;strong>Der Übergang in der Praxis:&lt;/strong>&lt;/p>
&lt;p>Server wie nostr.build und void.cat unterstützten NIP-96 und haben Blossom-Endpunkte hinzugefügt oder dorthin migriert. In unterschiedlichen Stadien befinden sich die Clients: Angors v0.2.5-Release diese Woche fügte NIP-96-Serverkonfiguration hinzu, während ZSPs v0.3.1-Release Artefakte ausschließlich auf Blossom-Server mit &lt;code>Content-Digest&lt;/code>-Headern hochlädt. Amethyst und Primal unterstützen Blossom-Uploads. Fortbestehen wird die Koexistenz wahrscheinlich, bis die verbleibenden NIP-96-Implementierungen ihre Migration abschließen.&lt;/p>
&lt;p>&lt;strong>Was übernommen wird:&lt;/strong>&lt;/p>
&lt;p>Kind 10096 Server-Präferenz-Events bleiben nützlich. NIP-94-Dateimetadaten (kind 1063 Events) beschreiben Dateieigenschaften weiterhin unabhängig vom verwendeten Upload-Protokoll. Zur Grundlage von Blossoms Content-Adressierung wurde das SHA-256-Hashing, das NIP-96 nutzte. NIP-96s Design informierte, was Blossom vereinfacht hat: Medien-Hosting in einem dezentralisierten Netzwerk erfordert inhaltsadressierten Speicher, um der Zensurresistenz der Relay-Schicht zu entsprechen.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Wer etwas baut, Neuigkeiten hat oder sein Projekt vorgestellt sehen möchte, kann sich &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">per NIP-17 DM an uns wenden&lt;/a> oder uns auf Nostr finden.&lt;/p></content:encoded></item><item><title>Nostr Compass #8</title><link>https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-02-04-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> rust-nostr liefert ein großes API-Redesign mit 21 PRs, die die SDK-Architektur überarbeiten. Nostria 3.0 startet mit Dual-Pane-Navigation, Listenverwaltung und einer kompletten UI-Überarbeitung. Vector fügt SIMD-Beschleunigung hinzu und erreicht 65x-184x Geschwindigkeitssteigerungen sowie liefert &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokollunterstützung für verschlüsselte Gruppennachrichten. Frostr bringt Threshold-Signierung zu iOS via TestFlight. Damus implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19 (Bech32 Kodierte Entitäten)&lt;/a> Relay-Hinweise für Cross-Relay-Inhaltsentdeckung. Primal Android fügt NWC-Verschlüsselung und Wallet-Transaktionsexporte hinzu. nostr-tools und NDK erhalten Zuverlässigkeitsverbesserungen. NIP-82 (Software-Anwendungen) erweitert sich auf 98% der Geräteplattformen. Das NIPs-Repository merged Hold-Invoice-Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Neue Protokollvorschläge umfassen NIP-74 für Podcasting, NIP-DB für Browser-Event-Datenbanken und eine TRUSTed-Filters-Suite für dezentralisierte Inhaltskuration. Neue Projekte umfassen Instagram to Nostr v2 für Content-Migration, Pod21 startet einen dezentralisierten 3D-Druck-Marktplatz, Clawstr führt KI-Agenten-verwaltete Communities ein, und Shosho und NosCall erweitern Live-Streaming- und Videoanruf-Fähigkeiten.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> rust-nostr liefert ein großes API-Redesign mit 21 PRs, die die SDK-Architektur überarbeiten. Nostria 3.0 startet mit Dual-Pane-Navigation, Listenverwaltung und einer kompletten UI-Überarbeitung. Vector fügt SIMD-Beschleunigung hinzu und erreicht 65x-184x Geschwindigkeitssteigerungen sowie liefert &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokollunterstützung für verschlüsselte Gruppennachrichten. Frostr bringt Threshold-Signierung zu iOS via TestFlight. Damus implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19 (Bech32 Kodierte Entitäten)&lt;/a> Relay-Hinweise für Cross-Relay-Inhaltsentdeckung. Primal Android fügt NWC-Verschlüsselung und Wallet-Transaktionsexporte hinzu. nostr-tools und NDK erhalten Zuverlässigkeitsverbesserungen. NIP-82 (Software-Anwendungen) erweitert sich auf 98% der Geräteplattformen. Das NIPs-Repository merged Hold-Invoice-Unterstützung für &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a>. Neue Protokollvorschläge umfassen NIP-74 für Podcasting, NIP-DB für Browser-Event-Datenbanken und eine TRUSTed-Filters-Suite für dezentralisierte Inhaltskuration. Neue Projekte umfassen Instagram to Nostr v2 für Content-Migration, Pod21 startet einen dezentralisierten 3D-Druck-Marktplatz, Clawstr führt KI-Agenten-verwaltete Communities ein, und Shosho und NosCall erweitern Live-Streaming- und Videoanruf-Fähigkeiten.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="rust-nostr-liefert-großes-api-redesign">rust-nostr liefert großes API-Redesign&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> SDK durchlief diese Woche eine signifikante Architekturüberarbeitung mit 21 gemergten PRs, die Breaking Changes in der gesamten Bibliothek einführen. Das Redesign betrifft Kern-APIs, auf die sich die meisten Rust-Entwickler verlassen.&lt;/p>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1245">PR #1245&lt;/a> redesignt Notification-APIs, während &lt;a href="https://github.com/rust-nostr/nostr/pull/1244">PR #1244&lt;/a> &lt;code>RelayNotification::Shutdown&lt;/code> durch &lt;code>RelayStatus::Shutdown&lt;/code> für sauberere Zustandshandhabung ersetzt. Die Signer-APIs sind jetzt via &lt;a href="https://github.com/rust-nostr/nostr/pull/1243">PR #1243&lt;/a> an andere SDK-Muster angeglichen. Client- und Relay-Methoden erhielten Cleanup in &lt;a href="https://github.com/rust-nostr/nostr/pull/1242">PR #1242&lt;/a>, und Client-Optionen verwenden jetzt ein Builder-Pattern (&lt;a href="https://github.com/rust-nostr/nostr/pull/1241">PR #1241&lt;/a>).&lt;/p>
&lt;p>Message-Sending-APIs wurden in &lt;a href="https://github.com/rust-nostr/nostr/pull/1240">PR #1240&lt;/a> redesignt, REQ-Unsubscription in &lt;a href="https://github.com/rust-nostr/nostr/pull/1239">PR #1239&lt;/a> und Relay-Entfernung in &lt;a href="https://github.com/rust-nostr/nostr/pull/1229">PR #1229&lt;/a>. Ein &lt;a href="https://github.com/rust-nostr/nostr/pull/1246">offener PR #1246&lt;/a> fügt Unterstützung für blockierende APIs hinzu, um das Redesign abzurunden.&lt;/p>
&lt;p>Die Änderungen bringen Konsistenz in das SDK, werden aber Migrationsaufwand von bestehenden Projekten erfordern. Entwickler, die auf rust-nostr aufbauen, sollten den Changelog sorgfältig prüfen, bevor sie upgraden.&lt;/p>
&lt;h3 id="instagram-to-nostr-v2-ermöglicht-content-migration">Instagram to Nostr v2 ermöglicht Content-Migration&lt;/h3>
&lt;p>Ein neues Tool ermöglicht es Kreativen, ihre bestehenden Inhalte von zentralisierten Plattformen zu Nostr zu migrieren. &lt;a href="https://github.com/primalpaul1/instagram-to-nostr-v2">Instagram to Nostr v2&lt;/a> unterstützt den Import von Instagram, TikTok, Twitter und Substack, ohne Zugang zu den privaten Schlüsseln des Benutzers zu benötigen.&lt;/p>
&lt;p>Das Tool adressiert eine häufige Onboarding-Barriere: Benutzer, die zögern, auf einer neuen Plattform von vorne anzufangen, können jetzt ihre Inhaltshistorie bewahren. Es unterstützt auch das Verschenken von Nostr-Konten an neue Benutzer oder das Vorschlagen von Inhalten an bestehende Konten, was es nützlich macht, anderen beim Übergang zum Protokoll zu helfen.&lt;/p>
&lt;h3 id="pod21-dezentralisiertes-3d-druck-netzwerk">Pod21: Dezentralisiertes 3D-Druck-Netzwerk&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>) verbindet 3D-Drucker-Betreiber mit Käufern unter Verwendung von Nostr für Marktplatz-Koordination. Die Plattform enthält einen &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17 (Private Direktnachrichten)&lt;/a>-kompatiblen DM-Bot, der Marktplatz-Interaktionen handhabt und es Käufern ermöglicht, Drucke anzufordern und mit Herstellern durch verschlüsselte Direktnachrichten zu verhandeln.&lt;/p>
&lt;p>Hersteller listen ihre Druckkapazität und Fähigkeiten; Käufer durchsuchen Listings und initiieren Bestellungen über den Bot. Die Architektur folgt einem ähnlichen Muster wie andere Nostr-Commerce-Anwendungen: Relay-basierte Entdeckung, verschlüsselte Nachrichten für Bestellkoordination und Lightning für Abwicklung. Pod21 reiht sich neben Ridestr und Shopstr als Nostr-Anwendung ein, die reale Transaktionen durch das Protokoll koordiniert.&lt;/p>
&lt;h3 id="clawstr-ki-agenten-sozialnetzwerk">Clawstr: KI-Agenten-Sozialnetzwerk&lt;/h3>
&lt;p>&lt;a href="https://github.com/clawstr/clawstr">Clawstr&lt;/a> startet als Reddit-inspirierte Plattform, auf der KI-Agenten Communities auf Nostr erstellen und verwalten. Die Plattform ermöglicht es autonomen Agenten, thematische Communities zu etablieren, Inhalte zu kuratieren und mit Benutzern zu interagieren. Communities funktionieren wie Subreddits, aber mit KI-Moderatoren und Kuratoren, die Diskussionen leiten. Die Architektur nutzt Nostrs offenes Protokoll für Agent-zu-Agent- und Agent-zu-Mensch-Interaktionen und etabliert ein neues Modell für Community-Bildung in dezentralisierten sozialen Medien.&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> lieferte &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.0">v0.2.0&lt;/a>, genannt der &amp;ldquo;RoadFlare Release&amp;rdquo;, der persönliche Rideshare-Netzwerke einführt. Die Funktion lässt Fahrgäste Lieblingsfahrer zu einem vertrauenswürdigen Netzwerk hinzufügen. Fahrer genehmigen Follower und teilen verschlüsselte Standorte, sodass Fahrgäste sehen können, wann vertrauenswürdige Fahrer online und in der Nähe sind. Fahrtanfragen gehen direkt an bekannte Fahrer.&lt;/p>
&lt;p>Die Zahlungszuverlässigkeit verbesserte sich mit automatischer Escrow-Wiederherstellung, besserer Wallet-Synchronisierung über Geräte hinweg und schnellerer Zahlungsverarbeitung durch progressives Polling. &lt;a href="https://github.com/variablefate/ridestr/pull/37">PR #37&lt;/a> fügt die Phase 5-6 Infrastruktur hinzu, die diese Features unterstützt. &lt;a href="https://github.com/variablefate/ridestr/releases/tag/v0.2.1">v0.2.1&lt;/a> folgte mit Hotfixes für Zahlungsdialog-Bugs und den &amp;ldquo;Zu Favoriten hinzufügen&amp;rdquo;-Flow nach der Fahrt.&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>, sondrebs plattformübergreifender Client für globale Skalierung, lieferte Version 3.0 mit einer kompletten UI-Überarbeitung, neuem Logo und Hunderten von Fixes. Das Release repräsentiert einen intensiven sechswöchigen Entwicklungszyklus.&lt;/p>
&lt;p>Dual-Pane-Navigation ist die größte UX-Änderung, die es Desktop-Benutzern ermöglicht, Kontextwechsel beim Navigieren zwischen Listen, Details und Threads zu reduzieren. Ein neuer Home-Bereich bietet einen Überblick über alle verfügbaren Funktionen, und alle Bildschirme teilen eine vereinheitlichte Toolbar, Layout und Funktionalität.&lt;/p>
&lt;p>Listenverwaltung ist das bedeutendste Feature-Update, das durch die gesamte Anwendung integriert ist. Benutzer können Profillisten verwalten und Inhalte in jeder Funktion filtern: Streams, Musik oder Feeds. Genervt von Spam in Threads? Filtern nach Favoriten, um nur deren Antworten zu sehen. Quick Zaps fügt Ein-Tap-Zapping mit konfigurierbaren Werten hinzu. Copy/Screenshot generiert Zwischenablage-Screenshots zum Teilen von Events überall. Stummgeschaltete Wörter filtert jetzt nach Profilfeldern (name, display_name, NIP-05), was es Benutzern ermöglicht, alle gebridgten Profile mit einem einzelnen gebannten Wort zu blockieren. Einstellungen wurden durchsuchbar für schnellere Konfigurationsänderungen.&lt;/p>
&lt;p>Das Release fügt BOLT11- und BOLT12-Zahlungsanforderungs-Rendering, Textgröße- und Schriftauswahl sowie &amp;ldquo;Notiz-an-sich-selbst&amp;rdquo;-Nachrichten im Nachrichten-Bereich mit Rendering von referenzierten Inhalten wie Artikeln und Events hinzu. Der neue Teilen-Dialog ermöglicht schnelles Teilen per E-Mail, Websites oder Direktnachrichten an mehrere Empfänger. Zusätzliche Features umfassen benutzerdefinierte Emoji-Sets, Interessen (Hashtag-Listen als dynamische Feeds), Lesezeichen, öffentliche Relay-Feeds und vollständige Menüanpassung einschließlich welche Option das Nostria-Icon öffnet.&lt;/p>
&lt;p>Verfügbar auf Android, iOS, Windows und im Web unter &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>hzrd149s &lt;a href="https://github.com/hzrd149/applesauce">Applesauce&lt;/a>-Bibliothekssuite veröffentlichte v5.1.0 für alle Pakete. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-signers%405.1.0">applesauce-signers&lt;/a> fügt Unterstützung für &lt;code>switch_relays&lt;/code>- und &lt;code>ping&lt;/code>-Methoden auf Nostr Connect Remote-Signern hinzu, nützlich für die programmatische Verwaltung von Signer-Verbindungen. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-loaders%405.1.0">applesauce-loaders&lt;/a> führt &lt;code>loadAsyncMap&lt;/code> für paralleles asynchrones Laden ein. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-react%405.1.0">applesauce-react&lt;/a> fügt Padding-Argumente zu &lt;code>useAction().run()&lt;/code> hinzu. &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%405.1.0">applesauce-core&lt;/a> aktualisiert Event-zu-Store-Mapping, um Strings direkt ohne &lt;code>onlyEvents&lt;/code> zu handhaben.&lt;/p>
&lt;h3 id="nak-v0183">nak v0.18.3&lt;/h3>
&lt;p>fiatjafs &lt;a href="https://github.com/fiatjaf/nak">nak&lt;/a> (Nostr Army Knife) erreichte &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.18.3">v0.18.3&lt;/a> mit Stabilitätsfixes von mattn. Das Release verhindert Panics, wenn Mint-URLs den &lt;code>://&lt;/code>-Separator nicht haben, validiert Dateparser-Fehler vor Verwendung von Datumswerten und handhabt Grenzfälle beim AUTH-Challenge-Tag-Parsing. Diese defensiven Fixes machen die CLI robuster beim Verarbeiten fehlerhafter Eingaben.&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>, der plattformübergreifende Desktop-Signer, lieferte &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.7">v0.3.7&lt;/a> mit Nostr App Browser-Unterstützung mit &lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07 (Browser-Erweiterungs-Interface)&lt;/a>-Signierung. Das Release zeichnet &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04 (Verschlüsselte Direktnachrichten)&lt;/a>- und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44 (Versionierte Verschlüsselung)&lt;/a>-Verschlüsselungs-Events auf, was es Benutzern ermöglicht zu verfolgen, welche Anwendungen Verschlüsselungsoperationen anfordern. Das Browser-Segment filtert jetzt nach Plattform, um nur Web-Apps anzuzeigen.&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>, die offline-fähige Messaging-App mit Nostr und Bluetooth-Mesh, veröffentlichte &lt;a href="https://github.com/permissionlesstech/bitchat/releases/tag/v1.5.1">v1.5.1&lt;/a> mit iOS-Sicherheitshärtung. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/1012">PR #1012&lt;/a> validiert Nostr-Event-Signaturen vor der Verarbeitung, lehnt ungültige Giftwraps und eingebettete Pakete ab, begrenzt übergroße Payloads und blockiert gefälschte BLE-Announce-Sender-IDs. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/998">PR #998&lt;/a> behebt iOS BLE-Mesh-Authentifizierung durch Bindung von Sender-IDs an Verbindungs-UUIDs, was Identitätsfälschung im Mesh-Netzwerk verhindert. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/972">PR #972&lt;/a> fügt Benachrichtigungs-Ratenbegrenzung hinzu, um Peer-Discovery-Fluten zu verhindern, wenn mehrere Mesh-Geräte in der Nähe sind.&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> veröffentlichte &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.39.2%2B6495">v1.39.2&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect-Unterstützung via &lt;a href="https://github.com/keychat-io/keychat-app/pull/148">PR #148&lt;/a>. Benutzer können jetzt externe Lightning-Wallets für Zahlungen innerhalb der Messaging-App verbinden. Das Release fügt auch macOS-Desktop-Benachrichtigungen hinzu.&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>, der plattformübergreifende Flutter-Client, lieferte &lt;a href="https://github.com/haorendashu/nostrmo/releases/tag/3.5.0">v3.5.0&lt;/a> mit Überarbeitung seines Feed-Systems. Das Update ersetzt feste Feeds durch anpassbare Alternativen: General Feed, Mentioned Feed und Relay Feed, jeweils konfigurierbar durch neue Bearbeitungsseiten. Das Release implementiert Outbox-Modell-Unterstützung für besseres Event-Routing und erweitert lokale Relay-Funktionalität mit konfigurierbaren Größenlimits und Subscription-Unterstützung.&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>, die Live-Streaming-App für Nostr, veröffentlichte &lt;a href="https://github.com/r0d8lsh0p/shosho-releases/releases/tag/v0.11.1">v0.11.1&lt;/a> mit Aufnahme- und VOD-Fähigkeiten. Das Update fügt Raum-Präsenzindikatoren hinzu, die zeigen, wer Streams schaut, Thread-Chat-Konversationen für bessere Diskussionsorganisation und Nostr Connect-Unterstützung auf iOS via &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>. Streamer können jetzt ihre Übertragungen für späteres Ansehen speichern, während sie Echtzeit-Chat-Interaktionen mit ihrem Publikum aufrechterhalten.&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>, die Audio- und Videoanruf-App für Nostr, lieferte &lt;a href="https://github.com/sanah9/noscall/releases/tag/v0.5.0-release">v0.5.0&lt;/a> mit Kontaktgruppen zur Organisation von Anrufen nach Kategorie, Relay-Management für Verbindungsoptimierung und konfigurierbaren ICE-Server-Einstellungen für verbesserte NAT-Traversierung. Das Release fügt auch Dark-Mode-Unterstützung hinzu. NosCall verwendet Nostr für Anrufsignalisierung und -koordination und ermöglicht Peer-to-Peer-Anrufe ohne zentralisierte Server.&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>, rabbles Kurzform-Loop-Video-Client, veröffentlichte &lt;a href="https://github.com/divinevideo/divine-mobile/releases/tag/1.0.4">1.0.4&lt;/a> als Android-Pre-Release-Alpha vor seiner Zapstore-Einreichung. Das Release konzentriert sich auf das Testen von Nostr-Schlüsselverwaltung, einschließlich nsec-Import, &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46 (Nostr Connect)&lt;/a> Remote-Signierung mit nsecBunker und Amber sowie nostrconnect://-URL-Handling. Das Team bittet um Feedback zu Relay-Kompatibilität und Video-Interoperabilität mit anderen Clients. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1265">PR #1265&lt;/a> behebt iOS-Dateipfad-Handling, das dazu führte, dass Videoclips nach App-Updates unbrauchbar wurden, indem relative Pfade statt absoluter Container-Pfade gespeichert werden. &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1251">PR #1251&lt;/a> behebt Navigationsprobleme beim Anzeigen von Profilen aus Kommentaren.&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> lieferte &lt;a href="https://github.com/ZeusLN/zeus/releases/tag/v0.12.2">v0.12.2&lt;/a> als stabiles Release und konsolidiert die &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-28-newsletter/#zeus-v0122-beta---nwc-korrekturen">NWC-Fixes aus vorherigen Ausgaben&lt;/a>.&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>) startete &lt;a href="https://github.com/FROSTR-ORG/igloo-ios">Igloo für iOS&lt;/a> auf &lt;a href="https://testflight.apple.com/join/72hjQe3J">TestFlight&lt;/a> und erweitert Threshold-Signierung auf Apple-Geräte. Frostr verwendet FROST (Flexible Round-Optimized Schnorr Threshold)-Signaturen, um nsec-Schlüssel in Shares aufzuteilen, die über Geräte verteilt werden, was k-von-n-Signierung mit Fehlertoleranz ermöglicht. Benutzer, die im &amp;ldquo;Demo-Modus&amp;rdquo; beitreten, nehmen an einem Live-2-von-2-Threshold-Signatur-Experiment teil, das die Echtzeit-Koordinationsfähigkeiten des Protokolls demonstriert. Das iOS-Release schließt sich &lt;a href="https://github.com/FROSTR-ORG/igloo-android">Igloo für Android&lt;/a> (v0.1.2) an, das im Dezember mit &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55 (Android Signer)&lt;/a>-Unterstützung für App-übergreifende Signierungsanfragen geliefert wurde. Beide mobilen Clients ergänzen &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop">Igloo Desktop&lt;/a> und die &lt;a href="https://github.com/FROSTR-ORG/frost2x">Frost2x&lt;/a>-Browser-Erweiterung.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="damus-implementiert-nip-19-relay-hinweise">Damus implementiert NIP-19 Relay-Hinweise&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus">Damus&lt;/a> mergte &lt;a href="https://github.com/damus-io/damus/pull/3477">PR #3477&lt;/a> und implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> Relay-Hinweis-Verarbeitung für Event-Abruf. Die Funktion ermöglicht das Anzeigen von Notizen auf Relays, die nicht im konfigurierten Pool des Benutzers sind, indem Hinweise aus &lt;a href="https://nostrcompass.org/de/topics/nip-10/">NIP-10 (Antwort-Threads)&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-18/">NIP-18 (Reposts)&lt;/a> und NIP-19-Referenzen extrahiert werden. Die Implementierung verwendet ephemere Relay-Verbindungen mit referenzgezähltem Cleanup, was permanente Relay-Pool-Erweiterung vermeidet.&lt;/p>
&lt;p>Zusätzliche Fixes umfassen Lightning-Invoice-Parsing (&lt;a href="https://github.com/damus-io/damus/pull/3566">PR #3566&lt;/a>), Wallet-View-Loading (&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>) und Profil-Preloading zur Reduzierung von visuellem &amp;ldquo;Popping&amp;rdquo; (&lt;a href="https://github.com/damus-io/damus/pull/3550">PR #3550&lt;/a>). Ein &lt;a href="https://github.com/damus-io/damus/pull/3590">Entwurfs-PR #3590&lt;/a> zeigt &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-Private-DM-Unterstützung in Arbeit.&lt;/p>
&lt;h3 id="primal-android-liefert-nwc-verschlüsselung">Primal Android liefert NWC-Verschlüsselung&lt;/h3>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app">Primal Android&lt;/a> hatte eine sehr aktive Woche mit 18 gemergten PRs, fokussiert auf Wallet-Infrastruktur. Die App integriert jetzt mit Spark, Lightspars selbstverwahrendes Lightning-Protokoll. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/874">PR #874&lt;/a> fügt NWC-Verschlüsselungsunterstützung hinzu, während &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/872">PR #872&lt;/a> NWC-Info-Events sendet, wenn Verbindungen hergestellt werden.&lt;/p>
&lt;p>&lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/870">PR #870&lt;/a> ermöglicht CSV-Export für Wallet-Transaktionen, nützlich für Buchhaltung und Steuerzwecke. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/716">PR #716&lt;/a> fügt einen lokalen Account-Switcher im Note-Editor hinzu. Mehrere Wallet-Restore-Fixes (&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>) adressieren Grenzfälle für Benutzer mit Nicht-Spark-Wallet-Konfigurationen.&lt;/p>
&lt;h3 id="marmot-typescript-sdk-fügt-nachrichtenverlauf-hinzu">Marmot TypeScript SDK fügt Nachrichtenverlauf hinzu&lt;/h3>
&lt;p>Die TypeScript-Implementierung des &lt;a href="https://github.com/marmot-protocol/marmot">Marmot&lt;/a>-Protokolls entwickelt sich weiter. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/38">PR #38&lt;/a> von hzrd149 implementiert Nachrichtenverlaufs-Persistenz mit Paginierung für die Referenz-Chat-Anwendung, während &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/39">PR #39&lt;/a> die Bibliotheks-Ergonomie verbessert.&lt;/p>
&lt;p>Auf der Rust-Seite implementiert &lt;a href="https://github.com/marmot-protocol/mdk/pull/161">PR #161&lt;/a> wiederholbares Zustandshandling zur Bewahrung des Nachrichtenkontexts bei Fehlern, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/164">PR #164&lt;/a> wechselt zu std::sync::Mutex, um tokio-Panics mit SQLite zu vermeiden. Das whitenoise-rs-Backend fügt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/418">Amber-Integration&lt;/a> (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/418">PR #418&lt;/a>) hinzu, &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/467">Upgrades auf MDK und nostr-sdk 0.44&lt;/a> (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/467">PR #467&lt;/a>) und führt Echtzeit-Benachrichtigungs-Streaming via &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/460">PR #460&lt;/a> mit NewMessage- und GroupInvite-Event-Typen ein.&lt;/p>
&lt;h3 id="haven-fügt-periodische-wot-aktualisierung-hinzu">HAVEN fügt periodische WoT-Aktualisierung hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/bitvora/haven">HAVEN&lt;/a>, das persönliche Relay, mergte &lt;a href="https://github.com/bitvora/haven/pull/108">PR #108&lt;/a> mit periodischer &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web of Trust&lt;/a>-Aktualisierung. Die Funktion stellt sicher, dass Vertrauensbewertungen aktuell bleiben, während sich die sozialen Graphen der Benutzer entwickeln, was die Spam-Filtergenauigkeit im Laufe der Zeit verbessert.&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>, die Kern-JavaScript-Bibliothek, erhielt diese Woche mehrere Verbesserungen. Commits umfassen einen &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/c2423f7f31853d97fef2e3d649204cec328e81d5">Fix für Hashtag-Parsing nach Zeilenumbrüchen&lt;/a> in &lt;a href="https://nostrcompass.org/de/topics/nip-27/">NIP-27 (Textnotiz-Referenzen)&lt;/a>-Erwähnungen, &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/ab802c8dbe35d29feb732ba54e82a346c21c32e2">automatisches Pruning von kaputten Relay-Objekten mit Idle-Tracking&lt;/a> für Verbindungs-Cleanup, &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/be9b91318fea6a0cb154b8734a15b50a4c1e7638">Message-Queue-Entfernung&lt;/a> für Single-Threaded-Leistungsoptimierung und &lt;a href="https://github.com/nbd-wtf/nostr-tools/commit/05b1fba5113182ac0aa3c72d1f511cd956a7c139">Source-File-Exports&lt;/a> für bessere 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> lieferte &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/26abea24726ed844fdd091744ac9f768f1a530a0">beta.71&lt;/a> mit einem &lt;a href="https://github.com/nostr-dev-kit/ndk/commit/33e759508bc656dc45d3d77c741edf581af323f3">Fix für Reconnection nach Geräte-Sleep/Wake-Zyklen und Stale-Connection-Handling&lt;/a>, der Zuverlässigkeitsprobleme für mobile Anwendungen adressiert.&lt;/p>
&lt;h3 id="notedeck">Notedeck&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a>, der Desktop-Client des Damus-Teams, hat einen &lt;a href="https://github.com/damus-io/notedeck/pull/1279">offenen PR #1279&lt;/a>, der einen &lt;a href="https://nostrcompass.org/de/topics/nip-34/">NIP-34 (Git-Zusammenarbeit)&lt;/a>-Viewer hinzufügt. Dies würde das Durchsuchen von Git-Repositories, Patches und Issues ermöglichen, die auf Nostr-Relays veröffentlicht wurden, direkt innerhalb des Clients, was Notedeck zu einem potenziellen Frontend für ngit-basierte Workflows macht.&lt;/p>
&lt;h3 id="njump">njump&lt;/h3>
&lt;p>&lt;a href="https://github.com/fiatjaf/njump">njump&lt;/a>, das Nostr-Web-Gateway, fügte Unterstützung für zwei &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51 (Listen)&lt;/a>-Event-Typen via &lt;a href="https://github.com/fiatjaf/njump/pull/152">PR #152&lt;/a> hinzu. Das Gateway rendert jetzt kind:30000 Follow Sets, die kategorisierte Gruppierungen von Benutzern sind, die Clients in verschiedenen Kontexten anzeigen können, und kind:39089 Starter Packs, die kuratierte Profilsammlungen sind, die für Teilen und Gruppen-Following konzipiert sind. Diese Ergänzungen lassen njump community-kuratierte Listen anzeigen, wenn Benutzer nevent-Links teilen.&lt;/p>
&lt;h3 id="amethyst">Amethyst&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a>, der Android-Client, behob einen Bug, der das Teilen von Videos aus der Player-Ansicht verhinderte (&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1695">PR #1695&lt;/a>). Die &amp;ldquo;Video teilen&amp;rdquo;-Option erschien nicht, weil der Content-Parameter nicht an die Control-Buttons-Komponente übergeben wurde. Benutzer können jetzt Nostr-Video-Inhalte direkt aus dem Player an andere Apps teilen. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1693">PR #1693&lt;/a> behebt Jackson-JSON-Deserialisierungs-Crashes, die beim Parsen bestimmter fehlerhafter Events auftraten.&lt;/p>
&lt;h3 id="jumble">Jumble&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a>, der Web-Client fokussiert auf Relay-Feed-Browsing, fügte Audio-Datei-Uploads via Zwischenablage in &lt;a href="https://github.com/CodyTseng/jumble/pull/743">PR #743&lt;/a> hinzu. Benutzer können jetzt Audio-Dateien direkt in den Post-Editor einfügen, der sie zu konfigurierten Medienservern hochlädt und die URL in der Notiz einbettet. Die Funktion spiegelt bestehende Bild-Einfüge-Funktionalität wider.&lt;/p>
&lt;h3 id="flotilla">Flotilla&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/flotilla">Flotilla&lt;/a>, hodlbods &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29 (Relay-basierte Gruppen)&lt;/a>-Communities-Client, lieferte Benachrichtigungen via &lt;a href="https://github.com/coracle-social/flotilla/pull/270">PR #270&lt;/a>. Das Update refaktoriert das Alert-System von Anchor-basiertem Polling zu lokalen Pull-Benachrichtigungen für Web und Push-Benachrichtigungen für Mobile. Die Architektur implementiert den vorgeschlagenen NIP-9a-Standard (siehe &lt;a href="https://github.com/nostr-protocol/nips/pull/2194">PR #2194&lt;/a> unten), bei dem Benutzer Webhook-Callbacks bei Relays registrieren und verschlüsselte Event-Payloads erhalten, wenn Filter matchen.&lt;/p>
&lt;h3 id="formstr">Formstr&lt;/h3>
&lt;p>&lt;a href="https://github.com/abh3po/nostr-forms">Formstr&lt;/a>, die Nostr-native Formular-Anwendung, fügte Formular-Import und verschlüsselte Formular-Unterstützung in &lt;a href="https://github.com/abh3po/nostr-forms/pull/422">PR #422&lt;/a> hinzu. Benutzer können jetzt bestehende Formulare über einen Antwort-Link oder aus anderen Formstr-Instanzen importieren. Die Verschlüsselungsfunktion erlaubt Formularerstellern, Antworten einzuschränken, sodass nur bestimmte Empfänger Einsendungen lesen können, nützlich für Umfragen, die sensible Informationen sammeln.&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>), aufgebaut auf &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a>, fügte &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-DM-Teilen für Umfragen via &lt;a href="https://github.com/abh3po/nostr-polls/pull/141">PR #141&lt;/a> und &lt;a href="https://github.com/abh3po/nostr-polls/pull/142">PR #142&lt;/a> hinzu. Benutzer können jetzt Umfragen direkt an Kontakte durch verschlüsselte Direktnachrichten teilen.&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>, die JSON-Verifizierungsschema-Sammlung für Nostr-Events, fügte &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a>-Abdeckung via &lt;a href="https://github.com/nostrability/schemata/pull/59">PR #59&lt;/a> hinzu. Das Update enthält Schemata für kind 13 (seal) und kind 1059 (gift wrap) Events, die die bestehende &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-Schema-Abdeckung ergänzen.&lt;/p>
&lt;h3 id="vector">Vector&lt;/h3>
&lt;p>&lt;a href="https://github.com/VectorPrivacy/Vector">Vector&lt;/a>, der datenschutzfokussierte Desktop-Messenger mit &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>, &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> für Zero-Metadata-Verschlüsselung, mergte &lt;a href="https://github.com/VectorPrivacy/Vector/pull/39">PR #39&lt;/a> mit SIMD-beschleunigten Leistungsoptimierungen. Hex-Encoding läuft 65x schneller, Bildvorschau-Generierung bis zu 38x schneller und Nachrichtensuchen 184x schneller durch Binary-Search-Indexierung. Der PR fügt ARM64 NEON Intrinsics für Apple Silicon und x86_64 AVX2/SSE2 mit Runtime-Erkennung für Windows und Linux hinzu. Der Speicherverbrauch sank mit Message-Structs, die von 472 auf 128 Bytes reduziert wurden, und npub-Speicherung um 99,6% durch Interning gekürzt.&lt;/p>
&lt;p>Vector v0.3.0 (Dezember 2025) integrierte &lt;a href="https://github.com/marmot-protocol/mdk">MDK (Marmot Development Kit)&lt;/a> für MLS-Protokoll-basierte Gruppennachrichten und brachte Ende-zu-Ende-verschlüsselte Gruppen mit Forward Secrecy zum Client. MIP-04-Dateifreigabe handhabt jetzt imeta-Anhänge für MLS-Gruppen, konzipiert für Interoperabilität mit &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-28-newsletter/#marmot-protocol-updates">White Noise&lt;/a>. Das Release führte auch eine Mini-Apps-Plattform mit WebXDC-basierten P2P-Multiplayer-Spielen ein, einen dezentralisierten App-Store namens The Nexus, PIVX-Wallet-Integration für In-App-Zahlungen, Nachrichtenbearbeitung mit vollständiger Verlaufsverfolgung und 4x Speicherreduktion während Bild-Uploads.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &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-Unterstützung&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47 (Nostr Wallet Connect)&lt;/a> unterstützt jetzt Hold-Invoices und ermöglicht fortgeschrittene Zahlungsworkflows, bei denen Empfänger Zahlungen explizit abwickeln oder stornieren müssen. Der PR fügt drei neue RPC-Methoden hinzu: &lt;code>make_hold_invoice&lt;/code> erstellt eine Hold-Invoice unter Verwendung eines vorgenerierten Preimage und Payment-Hash, &lt;code>settle_hold_invoice&lt;/code> beansprucht Zahlung durch Bereitstellung des originalen Preimage, und &lt;code>cancel_hold_invoice&lt;/code> lehnt Zahlung unter Verwendung seines Payment-Hash ab. Eine neue &lt;code>hold_invoice_accepted&lt;/code>-Benachrichtigung feuert, wenn ein Zahler Zahlung sperrt. Dies ermöglicht Anwendungsfälle wie Pay-to-Unlock-Inhalte, Marktplatz-Escrow-Systeme und Payment-Gating. Implementierungen sind bereits in Arbeit 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> und &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: Kleinschreibungsanforderung&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/de/topics/nip-05/">NIP-05 (Domain-Verifizierung)&lt;/a> erfordert jetzt explizit Kleinschreibung für sowohl Hex-Public-Keys als auch lokale Namen in der &lt;code>nostr.json&lt;/code>-Datei. Dies war implizit in der Spezifikation, aber nicht angegeben, was Interoperabilitätsprobleme verursachte, wenn einige Implementierungen gemischte Groß-/Kleinschreibung verwendeten, während andere auf Kleinschreibung normalisierten. Clients, die NIP-05-Identifikatoren validieren, sollten jetzt alle &lt;code>nostr.json&lt;/code>-Antworten ablehnen, die Großbuchstaben in Schlüsseln oder Namen enthalten.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2205">NIP-73: Ländercodes&lt;/a>&lt;/strong> - &lt;a href="https://nostrcompass.org/de/topics/nip-73/">NIP-73 (Geotags)&lt;/a> unterstützt jetzt ISO 3166-Ländercodes als Alternative zu Geohashes. Events können &lt;code>[&amp;quot;g&amp;quot;, &amp;quot;US&amp;quot;, &amp;quot;countryCode&amp;quot;]&lt;/code>-Tags enthalten, um Standort auf Länderebene anzuzeigen, ohne präzise Koordinaten zu erfordern. Dies ermöglicht länderbasierte Inhaltsfilterung und -entdeckung für Anwendungen, bei denen exakter Standort unnötig oder unerwünscht ist. Der PR fügte auch ein fehlendes Geohash-Beispiel zur Spec-Dokumentation hinzu.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&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-Anwendungen&lt;/a>&lt;/strong> - franzap kündigte ein großes Update dieser Entwurfsspezifikation an, die definiert, wie Software-Anwendungen über Nostr mit kind 30063 Release-Events verteilt werden. Das Update deckt jetzt ungefähr 98% der Geräteplattformen global ab, einschließlich macOS, Linux, Windows, FreeBSD, WASM-Umgebungen, VS Code-Erweiterungen, Chrome-Erweiterungen und Web Bundles/PWAs. Das Team fokussiert sich als nächstes auf Android-, PWA- und iOS-Unterstützung und lädt Entwickler ein, sich auf diesen gemeinsamen Standard zu einigen. Zapstore plant, in den kommenden Wochen auf das neue Format zu migrieren.&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> - Definiert adressierbare Events für Podcast-Shows (kind 30074) und Episoden (kind 30075). Shows enthalten Metadaten wie Titel, Beschreibung, Kategorien und Cover-Bilder. Episoden referenzieren ihre Eltern-Show und enthalten Enclosure-URLs, Dauern und Kapitelmarker. Die Spec integriert sich mit Podcasting 2.0-Metadaten-Standards und enthält Value-Tags für V4V (Value-for-Value)-Monetarisierung via Lightning. Plattformen wie &lt;a href="https://transmit.fm">transmit.fm&lt;/a>, eine Nostr-native Podcast-Publishing-Plattform, können direkt zu Relays mit diesem Format publizieren, was Podcastern ermöglicht, Inhalte ohne Intermediäre zu verteilen.&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> - Schlägt einen Mechanismus vor, um Notizen nur für eine benutzerdefinierte Freundesliste sichtbar zu veröffentlichen, unter Verwendung eines gemeinsamen symmetrischen Schlüssels namens ViewKey. Der Autor verschlüsselt Notizen (kind 2044) mit dem ViewKey mittels NIP-44. Der ViewKey selbst wird jedem Freund einmalig über &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59 (Gift Wrap)&lt;/a> zugestellt. Freunde, die den ViewKey besitzen, können die Notizen entschlüsseln und lesen; alle anderen sehen nur Chiffretext. Wenn der Autor einen Freund entfernt, wird der ViewKey rotiert: Ein neuer Schlüssel wird generiert und über Gift Wrap an alle verbleibenden Freunde neu verteilt, sodass der entfernte Freund den Zugriff auf zukünftige Beiträge verliert. Dieser Ansatz trennt Inhaltsverschlüsselung (symmetrisch, effizient) von Schlüsselverteilung (asymmetrisch, pro Freund) und hält das Protokoll leichtgewichtig, während eine häufig angefragte Datenschutzfunktion ermöglicht wird.&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>) - Schlägt ein Standard-&lt;code>window.nostrdb&lt;/code>-Interface für Browser-Erweiterungen vor, die lokalen Nostr-Event-Speicher bereitstellen. Die API enthält Methoden zum Hinzufügen von Events, Abfragen nach ID oder Filter, Zählen von Treffern und Abonnieren von Updates. Web-Anwendungen können dieses Interface verwenden, um aus lokal gecachten Events zu lesen, ohne Relay-Anfragen zu machen, was Bandbreite und Latenz reduziert. hzrd149s &lt;a href="https://github.com/hzrd149/nostr-bucket">nostr-bucket&lt;/a>-Browser-Erweiterung bietet eine Referenzimplementierung und injiziert das Interface in alle Browser-Tabs. Eine begleitende &lt;a href="https://github.com/hzrd149/window.nostrdb.js">Polyfill-Bibliothek&lt;/a> implementiert dieselbe API mit IndexedDB für Umgebungen ohne die Erweiterung.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://nostrhub.io/e/237667820943d1c8bbe7ab7732623ae51b337f177776ece439d4a8be84708eb7">TRUSTed Filters&lt;/a>&lt;/strong> - Eine Suite von fünf verwandten Vorschlägen für dezentralisierte Inhaltskuration, aufbauend auf vitorpamplonas merged &lt;a href="https://github.com/nostr-protocol/nips/pull/1534">Trusted Assertions PR #1534&lt;/a>. Die Kernspezifikation führt kind 17570 Events zum Deklarieren von Trust-Provider-Präferenzen ein, was Benutzern ermöglicht zu spezifizieren, welchen Diensten sie für Event-Filterung und -Ranking vertrauen. Trust-Provider veröffentlichen Assertions (kind 37571), Statistiken (kind 37572) und Rankings (kind 37573), die Clients abonnieren können. Das System verwendet eine Plugin-Architektur mit W/w-Tags zur Spezifizierung von Filter-Typen und -Transformationen. Dies ermöglicht rechenintensive Operationen wie Spam-Erkennung, Reputationsbewertung und Inhalts-Ranking auf dedizierter Infrastruktur laufen zu lassen, während Benutzer Kontrolle darüber behalten, welchen Providern sie vertrauen. Die Suite enthält separate Specs für Filter-Presets, Benutzer-Rankings, vertrauenswürdige Events und Plugin-Definitionen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/nostr-protocol/nips/pull/2194">NIP-9a: Push-Benachrichtigungen&lt;/a>&lt;/strong> - hodlbod schlägt einen Standard für Relay-basierte Push-Benachrichtigungen mit kind 30390 Registrierungs-Events vor. Benutzer erstellen eine Registrierung, die Filter für Events enthält, die sie empfangen möchten, und eine Webhook-Callback-URL. Die Registrierung wird an den pubkey des Relays verschlüsselt (aus seinem NIP-11 &lt;code>self&lt;/code>-Feld). Wenn passende Events auftreten, POSTen Relays zum Callback mit der Event-ID (Klartext zur Deduplizierung) und dem Event selbst (NIP-44-verschlüsselt an den Benutzer). Diese Architektur lässt Relays Benachrichtigungen pushen, während Event-Inhalte vor intermediären Push-Servern geschützt werden. Flotillas &lt;a href="https://github.com/coracle-social/flotilla/pull/270">PR #270&lt;/a> implementiert diesen Standard.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>&lt;a href="https://github.com/SigmaEnterprise/Catallax">Catallax&lt;/a>&lt;/strong> - Schlägt ein dezentralisiertes Vertragsarbeitsprotokoll mit Escrow unter Verwendung von kind 33400 Events vor. Das System definiert drei Rollen: Schlichter kündigen Verfügbarkeit und Bedingungen an, Auftraggeber erstellen finanzierte Aufgaben mit gesperrtem Bitcoin, und freie Agenten erledigen Arbeit, um Zahlung zu beanspruchen. Schlichter lösen bei Bedarf Streitigkeiten. Das Protokoll ermöglicht vertrauenslose Freelance-Arbeitskoordination, bei der Mittel gesperrt sind, bis Lieferungen akzeptiert oder Schlichtung abgeschlossen sind.&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/de/topics/nip-47/">NIP-47&lt;/a> definiert Nostr Wallet Connect (NWC), ein Protokoll für Remote-Lightning-Wallet-Steuerung unter Verwendung von Nostr als Kommunikationsschicht. Mit der Hold-Invoice-Unterstützungs-Ergänzung dieser Woche deckt NWC jetzt das volle Spektrum von Lightning-Operationen ab.&lt;/p>
&lt;p>Das Protokoll funktioniert durch einen einfachen Austausch. Eine Wallet-Anwendung veröffentlicht ein &amp;ldquo;Wallet-Info&amp;rdquo;-Event (kind 13194), das ihre Fähigkeiten beschreibt. Client-Anwendungen senden verschlüsselte Anfragen (kind 23194), die das Wallet bitten, Operationen wie das Bezahlen von Invoices, Erstellen von Invoices oder Prüfen von Salden durchzuführen. Das Wallet antwortet mit verschlüsselten Ergebnissen (kind 23195).&lt;/p>
&lt;p>NWC verwendet &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung zwischen Client und Wallet mit einem dedizierten Schlüsselpaar für Wallet-Operationen, das von der Hauptidentität des Benutzers getrennt bleibt. Diese Trennung bedeutet, dass das Kompromittieren einer NWC-Verbindung die Nostr-Identität des Benutzers nicht offenlegt.&lt;/p>
&lt;p>&lt;strong>Unterstützte Methoden:&lt;/strong>&lt;/p>
&lt;p>Die Spec definiert Methoden für Kern-Lightning-Operationen: &lt;code>pay_invoice&lt;/code> sendet Zahlungen, &lt;code>make_invoice&lt;/code> generiert Invoices zum Empfangen, &lt;code>lookup_invoice&lt;/code> prüft Zahlungsstatus, &lt;code>get_balance&lt;/code> gibt das Wallet-Guthaben zurück, und &lt;code>list_transactions&lt;/code> liefert Zahlungshistorie. Das neu gemergte &lt;code>pay_keysend&lt;/code> ermöglicht Zahlungen ohne Invoices, und &lt;code>hold_invoice&lt;/code> unterstützt bedingte Zahlungen.&lt;/p>
&lt;p>&lt;strong>Beispiel-Events:&lt;/strong>&lt;/p>
&lt;p>Der Wallet-Dienst veröffentlicht ein Info-Event (kind 13194), das seine Fähigkeiten bewirbt:&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>Ein Client sendet eine verschlüsselte Anfrage (kind 23194), um eine Invoice zu bezahlen:&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>Der Wallet-Dienst antwortet (kind 23195) mit dem Zahlungsergebnis:&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>Der &lt;code>e&lt;/code>-Tag in der Antwort referenziert die ursprüngliche Anfrage, was Clients ermöglicht, Antworten ihren Anfragen zuzuordnen.&lt;/p>
&lt;p>&lt;strong>Hold Invoices:&lt;/strong>&lt;/p>
&lt;p>Der &lt;a href="https://github.com/nostr-protocol/nips/pull/1913">PR #1913&lt;/a> dieser Woche fügte Hold-Invoice-Unterstützung hinzu und ermöglicht Escrow-artige Zahlungen. Im Gegensatz zu Standard-Invoices, bei denen der Empfänger Zahlung sofort durch Freigabe des Preimage beansprucht, lassen Hold-Invoices den Empfänger diese Entscheidung aufschieben. Wenn ein Zahler an eine Hold-Invoice sendet, sperren sich Mittel entlang der Zahlungsroute. Der Empfänger wählt dann entweder abwickeln (Preimage freigeben und Mittel beanspruchen) oder stornieren (Zahlung ablehnen, Mittel an den Zahler zurückgeben). Wenn keine Aktion erfolgt, läuft die Zahlung ab und Mittel kehren automatisch zurück. Der PR fügt drei NWC-Methoden hinzu: &lt;code>make_hold_invoice&lt;/code>, &lt;code>settle_hold_invoice&lt;/code> und &lt;code>cancel_hold_invoice&lt;/code>, plus eine &lt;code>hold_invoice_accepted&lt;/code>-Benachrichtigung. Dieser Mechanismus treibt Anwendungen wie Ridestrs Rideshare-Escrow und Marktplatz-Streitbeilegung an.&lt;/p>
&lt;p>&lt;strong>Aktuelle Implementierungen:&lt;/strong>&lt;/p>
&lt;p>Große Wallets unterstützen NWC: Zeus, Alby und Primal (ab dem &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/874">PR #874&lt;/a> dieser Woche) implementieren alle Wallet-seitige Unterstützung. Auf der Client-Seite können Damus, Amethyst und die meisten großen Nostr-Clients sich mit NWC-Wallets für Zapping und Zahlungen verbinden.&lt;/p>
&lt;p>Das Protokoll ermöglicht eine Trennung der Zuständigkeiten: Benutzer können ihr Wallet auf einem Gerät betreiben, während sie von einem anderen mit Nostr interagieren, wobei Nostr-Relays als Kommunikationskanal dienen. Diese Architektur bedeutet, dass mobile Clients Mittel nicht direkt halten müssen, was die Sicherheit verbessert, indem Wallet-Infrastruktur von sozialen Clients getrennt bleibt.&lt;/p>
&lt;p>&lt;strong>Sicherheitsüberlegungen:&lt;/strong>&lt;/p>
&lt;p>NWC-Verbindungen sollten als sensitiv behandelt werden. Während die Verschlüsselung Nachrichteninhalte schützt, müssen Wallet-pubkey und Verbindungsgeheimnis geschützt werden. Anwendungen sollten Benutzern ermöglichen, Verbindungen zu widerrufen und Ausgabelimits zu setzen. Das Protokoll unterstützt Fähigkeitsbeschränkungen, sodass Wallets limitieren können, welche Operationen eine bestimmte Verbindung durchführen kann.&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/de/topics/nip-59/">NIP-59&lt;/a> definiert ein Protokoll zum Einkapseln beliebiger Nostr-Events in mehrere Verschlüsselungsschichten, das die Identität des Absenders vor Relays und Beobachtern verbirgt. Die Vorschläge dieser Woche für Friends-Only Notes (NIP-FR) und Push-Benachrichtigungen (NIP-9a) verlassen sich beide auf Gift Wrapping, was es zu einem grundlegenden Datenschutz-Primitiv macht, das es wert ist, verstanden zu werden.&lt;/p>
&lt;p>&lt;strong>Die drei Schichten:&lt;/strong>&lt;/p>
&lt;p>Gift Wrapping verwendet drei verschachtelte Strukturen:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Rumor&lt;/strong> (unsigniertes Event): Der ursprüngliche Inhalt als Nostr-Event ohne Signatur. Der Rumor kann nicht direkt an Relays gesendet werden, weil Relays unsignierte Events ablehnen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Seal&lt;/strong> (kind 13): Der Rumor wird mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> verschlüsselt und in ein kind 13 Event platziert. Der Seal IST vom tatsächlichen Schlüssel des Autors signiert. Dies ist der kryptographische Beweis der Autorschaft.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Gift Wrap&lt;/strong> (kind 1059): Der Seal wird verschlüsselt und in ein kind 1059 Event platziert, das von einem zufälligen, einmaligen Schlüsselpaar signiert ist. Der Gift Wrap enthält einen &lt;code>p&lt;/code>-Tag für das Routing zum Empfänger.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Ein häufiges Missverständnis: Abstreitbarkeit&lt;/strong>&lt;/p>
&lt;p>Die Spec erwähnt, dass unsignierte Rumors &amp;ldquo;Abstreitbarkeit&amp;rdquo; bieten, aber das ist irreführend. Die Seal-Schicht IST vom echten Autor signiert. Wenn der Empfänger den Gift Wrap und dann den Seal entschlüsselt, hat er kryptographischen Beweis, wer die Nachricht gesendet hat. Der Empfänger könnte sogar einen Zero-Knowledge-Proof konstruieren, der die Identität des Absenders offenlegt, ohne seinen eigenen privaten Schlüssel preiszugeben.&lt;/p>
&lt;p>Was Gift Wrap tatsächlich bietet, ist &lt;strong>Absender-Privatsphäre vor Beobachtern&lt;/strong>: Relays und Dritte können nicht bestimmen, wer die Nachricht gesendet hat, weil sie nur den Gift Wrap sehen, der von einem zufälligen Schlüssel signiert ist. Aber der Empfänger weiß es immer und kann es beweisen.&lt;/p>
&lt;p>&lt;strong>Beispiel-Events:&lt;/strong>&lt;/p>
&lt;p>Hier ist die vollständige Drei-Schichten-Struktur aus der Spec (Senden von &amp;ldquo;Gehst du heute Abend zur Party?&amp;rdquo;):&lt;/p>
&lt;p>Der Rumor (unsigniert, kann nicht an Relays veröffentlicht werden):&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>Der Seal (kind 13, vom echten Autor signiert, enthält verschlüsselten 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>Der Gift Wrap (kind 1059, von zufälligem ephemerem Schlüssel signiert, enthält verschlüsselten 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>Beachten: der &lt;code>pubkey&lt;/code> des Seals ist der echte Autor (&lt;code>611df01...&lt;/code>), während der &lt;code>pubkey&lt;/code> des Gift Wraps ein zufälliger Einmal-Schlüssel ist (&lt;code>18b1a75...&lt;/code>). Relays sehen nur den Gift Wrap, sodass sie die Nachricht nicht dem echten Autor zuordnen können.&lt;/p>
&lt;p>&lt;strong>Was jede Schicht schützt:&lt;/strong>&lt;/p>
&lt;p>Der Rumor ist unsigniert und kann nicht direkt an Relays veröffentlicht werden. Der Seal ist vom echten Autor signiert und beweist Autorschaft gegenüber dem Empfänger. Der Gift Wrap ist von einem zufälligen Einmal-Schlüssel signiert und verbirgt den echten Autor vor Relays und Beobachtern. Nur der Empfänger kann durch beide Schichten entschlüsseln, um zum ursprünglichen Inhalt zu gelangen und die Signatur des Autors auf dem Seal zu verifizieren.&lt;/p>
&lt;p>&lt;strong>Aktuelle Anwendungen:&lt;/strong>&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17 (Private Direktnachrichten)&lt;/a> verwendet Gift Wrap für verschlüsselte DMs und ersetzt das ältere NIP-04-Schema. Das vorgeschlagene NIP-FR (nur für Freunde sichtbare Notizen) verwendet Gift Wrapping zur Verteilung von ViewKeys an Freunde, die dann damit verschlüsselte Notizen entschlüsseln. NIP-9a (Push-Benachrichtigungen) verschlüsselt Benachrichtigungs-Payloads unter Verwendung von Gift-Wrap-Prinzipien.&lt;/p>
&lt;p>&lt;strong>Metadaten-Schutz:&lt;/strong>&lt;/p>
&lt;p>Zeitstempel sollten randomisiert werden, um Timing-Analysen zu vereiteln. Relays sollten AUTH anfordern, bevor sie kind 1059 Events ausliefern, und sie nur an den markierten Empfänger liefern. Beim Senden an mehrere Empfänger separate Gift Wraps für jeden erstellen.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir über dein Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns per NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #7</title><link>https://nostrcompass.org/de/newsletters/2026-01-28-newsletter/</link><pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-01-28-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Ridestr bringt dezentralisierte Mitfahrgelegenheiten zu Nostr mit &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Zahlungen und verschlüsselter Standortfreigabe. Pomade führt E-Mail-basierte Wiederherstellung für Multisig-Unterzeichner ein. Damus liefert &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a> für zuverlässige DM-Synchronisierung. Amethysts Desktop-App fügt Suche, Lesezeichen und Zaps hinzu. Amber v4.1.1 zeigt Relay-Vertrauensbewertungen an. Marmot merged MIP-03 und entwickelt eine TypeScript-Referenz-Chat-App. diVine fügt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> QR-Authentifizierung und Erwähnungs-Unterstützung hinzu. Neue NIP-Vorschläge befassen sich mit Community-Management, sequenzbasierter Synchronisierung und verschlüsselter Dateispeicherung. Wir werfen auch einen Blick zurück auf fünf Jahre Nostr-Januare und verfolgen die Entwicklung des Protokolls von einer Handvoll früher Anwender im Jahr 2021 über den explosiven App Store-Start von Damus im Jahr 2023 bis zum ausgereiften Client-Ökosystem von 2025.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Ridestr bringt dezentralisierte Mitfahrgelegenheiten zu Nostr mit &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Zahlungen und verschlüsselter Standortfreigabe. Pomade führt E-Mail-basierte Wiederherstellung für Multisig-Unterzeichner ein. Damus liefert &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a> für zuverlässige DM-Synchronisierung. Amethysts Desktop-App fügt Suche, Lesezeichen und Zaps hinzu. Amber v4.1.1 zeigt Relay-Vertrauensbewertungen an. Marmot merged MIP-03 und entwickelt eine TypeScript-Referenz-Chat-App. diVine fügt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> QR-Authentifizierung und Erwähnungs-Unterstützung hinzu. Neue NIP-Vorschläge befassen sich mit Community-Management, sequenzbasierter Synchronisierung und verschlüsselter Dateispeicherung. Wir werfen auch einen Blick zurück auf fünf Jahre Nostr-Januare und verfolgen die Entwicklung des Protokolls von einer Handvoll früher Anwender im Jahr 2021 über den explosiven App Store-Start von Damus im Jahr 2023 bis zum ausgereiften Client-Ökosystem von 2025.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="ridestr-bringt-dezentralisiertes-ridesharing-zu-nostr">Ridestr bringt dezentralisiertes Ridesharing zu Nostr&lt;/h3>
&lt;p>&lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a> entwickelt eine Peer-to-Peer-Mitfahranwendung, die vollständig auf Nostr aufgebaut ist und direkte Fahrer-Fahrgast-Transaktionen mit Bitcoin- und &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Zahlungen ermöglicht. Das Protokoll verwendet benutzerdefinierte Event-Arten (30173, 3173-3175, 30180/30181) zur Koordinierung von Fahrten und wahrt dabei die Privatsphäre durch progressive Standortfreigabe und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung.&lt;/p>
&lt;p>Das System funktioniert durch einen sorgfältig choreografierten Ablauf: Fahrer übertragen ihre Verfügbarkeit mit geohash-codierten Standorten (~5km Präzision) über kind 30173 Events, Fahrgäste fordern Fahrten mit Preisschätzungen über kind 3173 an, und Zahlungen werden mittels HTLC-Treuhand-Tokens vor Fahrtbeginn gesichert. Die Standortprivatsphäre wird durch progressive Freigabe gewahrt, bei der Abholdetails erst bei Ankunft des Fahrers und Zielorte erst nach PIN-Verifizierung geteilt werden. Die gesamte Kommunikation zwischen den Parteien verwendet &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung für Privatsphäre.&lt;/p>
&lt;p>Ridestr implementiert Zahlungssicherheit durch HTLC-Treuhand mit P2PK-Signaturen. Wenn ein Fahrgast das Angebot eines Fahrers annimmt, sperrt er &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Tokens mit einem Zahlungs-Hash, den nur der Fahrer nach Abschluss der Fahrt einlösen kann. Das Protokoll arbeitet derzeit mit Single-Mint-Architektur, die erfordert, dass Fahrgäste und Fahrer denselben &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Mint verwenden. Die Kotlin-basierte Android-Implementierung des Projekts übernimmt die Proof-Verifizierung und Wiederherstellung veralteter Proofs durch NUT-07 Zustandsprüfungen.&lt;/p>
&lt;p>Ridestr nimmt Herausforderungen an, die die meisten Nostr-Anwendungen vermeiden: Echtzeit-Standortkoordination, Zahlungs-Treuhand mit Streitbeilegung und Reputationssysteme für Interaktionen in der physischen Welt. Das Projekt befindet sich in der Beta-Phase und demonstriert, dass Nostrs Event-Modell Peer-to-Peer-Dienstleistungsmarktplätze unterstützen kann, nicht nur Content-Sharing.&lt;/p>
&lt;h3 id="pomade-startet-alpha-wiederherstellungssystem-für-multisig-unterzeichner">Pomade startet Alpha-Wiederherstellungssystem für Multisig-Unterzeichner&lt;/h3>
&lt;p>&lt;a href="https://github.com/coracle-social/pomade">Pomade&lt;/a>, entwickelt von hodlbod, baut auf dem bestehenden &lt;a href="https://github.com/FROSTR-ORG">FROSTR&lt;/a>-Ökosystem auf, um einen wiederherstellungsorientierten Schwellenwert-Signierdienst bereitzustellen. Unter Verwendung von &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a> (Flexible Round-Optimized Schnorr Threshold) Signaturen über die @frostr/bifrost-Bibliothek fügt Pomade E-Mail-basierte Wiederherstellungsabläufe zur Schwellenwert-Kryptographie hinzu. Das System teilt den geheimen Schlüssel eines Benutzers mit Shamir Secret Sharing auf und verteilt Anteile auf mehrere unabhängige Unterzeichner mit einem konfigurierbaren Schwellenwert (2-von-3, 3-von-5, usw.).&lt;/p>
&lt;p>Das Protokoll arbeitet vollständig über Nostr unter Verwendung einer einzigen Event-Art (28350) mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-verschlüsselten Payloads. Beim Signieren fordert der Client Teil-Signaturen von mindestens &lt;code>threshold&lt;/code> Unterzeichnern an und aggregiert diese dann zu einer gültigen Schnorr-Signatur. Für die Verschlüsselung arbeiten die Unterzeichner zusammen, um gemeinsame Geheimnisse über ECDH abzuleiten, ohne dass eine einzelne Partei den vollständigen Schlüssel erfährt.&lt;/p>
&lt;p>Die Wiederherstellung funktioniert über zwei Authentifizierungsmethoden: passwortbasiert (unter Verwendung von argon2id mit dem pubkey des Unterzeichners als Salt) oder E-Mail-OTP. Um MITM-Angriffe während der OTP-Wiederherstellung zu verhindern, generiert jeder Unterzeichner seinen eigenen Verifizierungscode mit einem vom Client bereitgestellten Präfix, was Benutzer dazu zwingt, sich unabhängig bei jedem Unterzeichner zu authentifizieren. Das Protokoll erfordert Proof-of-Work für Registrierungs-Events (20+ Bits gemäß &lt;a href="https://nostrcompass.org/de/topics/nip-13/">NIP-13&lt;/a>) um Spam zu verhindern.&lt;/p>
&lt;p>Das Vertrauensmodell ist explizit: Wenn &lt;code>threshold&lt;/code> Unterzeichner zusammenarbeiten, können sie den Schlüssel stehlen. E-Mail-Anbietern wird vollständig vertraut, da sie OTPs abfangen können. Benutzer können ihren vollständigen geheimen Schlüssel nicht unabhängig wiederherstellen; dies erfordert die Zusammenarbeit von &lt;code>threshold&lt;/code> Unterzeichnern. Das Protokoll ist für das Onboarding neuer Benutzer konzipiert, die mit Schlüsselverwaltung nicht vertraut sind, mit der ausdrücklichen Empfehlung, dass Benutzer zur Selbstverwahrung wechseln sollten, sobald sie sich sicher fühlen. Pomade warnt vor potenziellem „Schlüsselverlust, Diebstahl, Denial of Service oder Metadaten-Lecks&amp;quot; angesichts seines ungeprüften Alpha-Status.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="damus-liefert-negentropy-für-zuverlässige-dm-synchronisierung">Damus liefert Negentropy für zuverlässige DM-Synchronisierung&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/tree/v1.13">Damus v1.13&lt;/a> liefert die negentropy-Implementierung, &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/#damus-ios-client---open-prs">die wir letzte Woche als offenen PR vorgestellt haben&lt;/a>. &lt;a href="https://github.com/damus-io/damus/pull/3536">PR #3536&lt;/a> fügt grundlegende &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a>-Unterstützung zur Netzwerkschicht hinzu und ermöglicht Set-Reconciliation mit Relays, die das Protokoll unterstützen. Ein begleitender &lt;a href="https://github.com/damus-io/damus/pull/3547">PR #3547&lt;/a> fügt Pull-to-Refresh DM-Synchronisierung hinzu, die negentropy verwendet, um fehlende Nachrichten wiederherzustellen, wenn Standard-REQ-Subscriptions fehlschlagen.&lt;/p>
&lt;p>Die Implementierung folgt einem konservativen Ansatz: Das normale DM-Laden bleibt unverändert, wobei &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a> als Wiederherstellungsmechanismus verfügbar ist, wenn Benutzer manuell aktualisieren. Automatisierte Tests demonstrieren die Korrektur, indem sie eine DM mit einem alten Zeitstempel generieren, die Standard-Abfragen verfehlen würden, und dann die &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a>-Synchronisierung verwenden, um sie erfolgreich abzurufen. Während &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a>-Unterstützung kompatible Relays erfordert, handhabt die Implementierung gemischte Relay-Umgebungen elegant, indem sie das Protokoll dort verwendet, wo es verfügbar ist.&lt;/p>
&lt;h3 id="amber-v411---relay-vertrauensbewertungen">Amber v4.1.1 - Relay-Vertrauensbewertungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.1">Amber v4.1.1&lt;/a> liefert die Anzeige von Relay-Vertrauensbewertungen (&lt;a href="https://github.com/greenart7c3/Amber/pull/289">PR #289&lt;/a>) und implementiert die in der &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/#nip-updates">letztewöchigen Berichterstattung über Trusted Relay Assertions NIP diskutierten&lt;/a> Relay-Bewertungskonzepte. Vertrauensbewertungen erscheinen jetzt auf der Relays-Seite und für NostrConnect-Verbindungsanfragen und helfen Benutzern, die Zuverlässigkeit von Relays einzuschätzen, bevor sie Verbindungen autorisieren. Das Release enthält auch eine neu gestaltete Login/Events/Berechtigungen-Benutzeroberfläche und Unterstützung für die &lt;code>switch_relays&lt;/code>-Methode. Leistungsverbesserungen cachen Keystore-Operationen und beheben Berichte über 20+ Sekunden Ladezeiten auf älteren Geräten.&lt;/p>
&lt;h3 id="nak-v0182---mcp-integration">nak v0.18.2 - MCP-Integration&lt;/h3>
&lt;p>fiatjafs &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> fügt &lt;a href="https://nostrify.dev/mcp">Model Context Protocol&lt;/a>-Unterstützung über &lt;code>nak mcp&lt;/code> hinzu und ermöglicht es KI-Agenten, auf Nostr nach Personen zu suchen, Notizen zu veröffentlichen, Benutzer zu erwähnen und Inhalte mit dem Outbox-Modell zu lesen. Das Release führt auch einen &lt;a href="https://github.com/fiatjaf/nak/blob/master/install.sh">Einzeilen-Installer&lt;/a> (&lt;code>curl -sSL https://raw.githubusercontent.com/fiatjaf/nak/master/install.sh | sh&lt;/code>) ein, der vorgefertigte Binärdateien herunterlädt und die Go-Toolchain-Anforderung für Endbenutzer eliminiert. Der Bunker-Modus unterstützt jetzt Unix-Sockets und &lt;code>switch_relays&lt;/code>.&lt;/p>
&lt;h3 id="zeus-v0122-beta---nwc-korrekturen">Zeus v0.12.2 Beta - NWC-Korrekturen&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus/releases">Zeus v0.12.2-beta1&lt;/a> liefert mehrere NWC-Korrekturen, die Probleme aus der &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/#zeus-lightning-wallet-with-nostr-wallet-connect">letztewöchigen Zeus-Berichterstattung&lt;/a> beheben.&lt;/p>
&lt;h2 id="projekt-updates">Projekt-Updates&lt;/h2>
&lt;h3 id="amethyst-desktop---phase-2a-ausgeliefert">Amethyst Desktop - Phase 2A ausgeliefert&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst">Amethyst&lt;/a> rollte &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1676">Phase 2A seiner Desktop-App&lt;/a> aus und fügte Suche, Lesezeichen, Zaps, Thread-Ansichten und Langform-Inhalte (Reads) zur Desktop-Erfahrung hinzu. Ein begleitender &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1683">PR #1683&lt;/a> fügt transparentes Event-Broadcasting-Feedback hinzu, sodass Benutzer jetzt den Echtzeit-Status pro Relay sehen, während ihre Events über das Netzwerk verbreitet werden, was die Diagnose von Verbindungsproblemen erleichtert.&lt;/p>
&lt;h3 id="notedeck-fortschritt-kalender-app-und-ux-politur">Notedeck-Fortschritt: Kalender-App und UX-Politur&lt;/h3>
&lt;p>Die Desktop-Anwendung &lt;a href="https://github.com/damus-io/notedeck">Notedeck&lt;/a> des Damus-Teams merged das Auto-Hide-Toolbar-Verhalten (&lt;a href="https://github.com/damus-io/notedeck/pull/1268">PR #1268&lt;/a>), das auf die Scroll-Geschwindigkeit reagiert, um mehr Bildschirmfläche in mobilen Ansichten zu bieten. Ein &lt;a href="https://github.com/damus-io/notedeck/pull/1271">Entwurfs-PR #1271&lt;/a> fügt eine vollständige &lt;a href="https://nostrcompass.org/de/topics/nip-52/">NIP-52&lt;/a> Kalender-App mit Monats-/Wochen-/Tages-/Agenda-Ansichten, RSVP-Unterstützung und &lt;a href="https://nostrcompass.org/de/topics/nip-22/">NIP-22&lt;/a>-Kommentaren zu Kalenderereignissen hinzu, derzeit mit Feature-Flag für Tests.&lt;/p>
&lt;h3 id="jumble-fügt-community-modus-hinzu">Jumble fügt Community-Modus hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/CodyTseng/jumble">Jumble&lt;/a>, der relay-fokussierte Web-Client, fügte &lt;a href="https://github.com/CodyTseng/jumble/pull/738">Community-Modus&lt;/a> und Unterstützung für &lt;a href="https://github.com/CodyTseng/jumble/pull/736">Relay-Set-Voreinstellungen über Umgebungsvariablen&lt;/a> hinzu, was die Bereitstellung thematischer Instanzen wie &lt;a href="https://nostr.moe/">nostr.moe&lt;/a> erleichtert.&lt;/p>
&lt;h3 id="shopstr-bestellungs-dashboard">Shopstr Bestellungs-Dashboard&lt;/h3>
&lt;p>&lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> ersetzte sein chat-basiertes Bestellungsmanagement durch ein dediziertes &lt;a href="https://github.com/shopstr-eng/shopstr/pull/219">Bestellungs-Dashboard&lt;/a>. Die neue Oberfläche bietet Händlern eine zentrale Ansicht zur Verfolgung des Bestellstatus, zum Markieren von Nachrichten als gelesen und zur Verwaltung der Erfüllung, ohne durch Chat-Threads scrollen zu müssen. Das Update deprecates IndexedDB-Caching zugunsten von serverseitigen Bestellstatus-APIs und überarbeitet die Art und Weise, wie Bestellungs-DMs für bessere Filterung getaggt werden.&lt;/p>
&lt;h3 id="formstr-fügt-raster-fragen-hinzu">Formstr fügt Raster-Fragen hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/abh3po/nostr-forms">Formstr&lt;/a>, die Nostr-native Formular-App, fügte &lt;a href="https://github.com/abh3po/nostr-forms/pull/419">Raster-Fragen&lt;/a> hinzu und &lt;a href="https://github.com/abh3po/nostr-forms/pull/410">schrieb sein SDK um&lt;/a> mit Embed-Unterstützung. Ein [Fix für nicht-&lt;a href="https://nostrcompass.org/de/topics/nip-07/">NIP-07&lt;/a>-Unterzeichner](&lt;a href="https://github.com/abh3po/nostr-forms/pull/418">https://github.com/abh3po/nostr-forms/pull/418&lt;/a>) behob Probleme für Benutzer mit Bunker- oder lokalen Unterzeichnern, die versuchten, Formulare mit ihrer Identität abzuschicken.&lt;/p>
&lt;h3 id="nostr-tools-aktualisiert-krypto-abhängigkeiten">nostr-tools aktualisiert Krypto-Abhängigkeiten&lt;/h3>
&lt;p>&lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a>, die Kern-JavaScript-Bibliothek, &lt;a href="https://github.com/nbd-wtf/nostr-tools/pull/520">aktualisierte auf @noble/curves v2.0.1&lt;/a>, behob Breaking-API-Änderungen in 27 Dateien und übernahm die neuesten auditierten noble-Bibliotheken. fiatjaf fügte auch &lt;code>switch_relays&lt;/code>-Unterstützung zu &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> hinzu, was es Bunker-Clients ermöglicht, Relay-Verbindungen dynamisch zu ändern.&lt;/p>
&lt;h3 id="zeus-arbeitet-an-nip-87-mint-bewertungen">Zeus arbeitet an NIP-87 Mint-Bewertungen&lt;/h3>
&lt;p>&lt;a href="https://github.com/ZeusLN/zeus">Zeus&lt;/a> hat einen [offenen PR für &lt;a href="https://nostrcompass.org/de/topics/nip-87/">NIP-87&lt;/a> Mint-Bewertungen](&lt;a href="https://github.com/ZeusLN/zeus/pull/3576%29">https://github.com/ZeusLN/zeus/pull/3576)&lt;/a>, der es Benutzern ermöglicht, &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Mints zu entdecken und zu bewerten, gefiltert nach Nostr-Follows. Bewertungen enthalten Sternebewertungen und können anonym oder mit dem nsec eines Benutzers abgegeben werden.&lt;/p>
&lt;h3 id="camelus-liefert-vollständige-dm-unterstützung">Camelus liefert vollständige DM-Unterstützung&lt;/h3>
&lt;p>&lt;a href="https://github.com/camelus-hq/camelus">Camelus&lt;/a>, ein Flutter-basierter Android-Client, der mit Dart NDK für batterieeffiziente mobile Leistung entwickelt wurde, fügte diese Woche umfassende Direktnachrichten mit 20+ Commits hinzu. Das Update umfasst Chat-Kategorien, Nachrichtendaten, optimistische Sende-UI, Notiz-an-sich-selbst-Funktionalität und ordnungsgemäße DM-Relay-Handhabung.&lt;/p>
&lt;h3 id="marmot-protokoll-updates">Marmot-Protokoll-Updates&lt;/h3>
&lt;p>Die deterministische Commit-Auflösung MIP-03, &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/#marmot-protocol-white-noise-encrypted-group-chat-library">die wir letzte Woche als offenen PR vorgestellt haben&lt;/a>, wurde jetzt gemerged. &lt;a href="https://github.com/marmot-protocol/mdk/pull/152">MDK PR #152&lt;/a> stellt sicher, dass alle &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-basierten Gruppenchats auf denselben Zustand konvergieren, wenn mehrere gültige Commits für dieselbe Epoche ankommen.&lt;/p>
&lt;p>Ein begleitender &lt;a href="https://github.com/marmot-protocol/marmot/pull/28">Spec PR #28&lt;/a> fügt Anforderungen für den init_key-Lebenszyklus hinzu, die Lücken aus Implementierungsaudits adressieren: Privates Schlüsselmaterial aus Welcome-Nachrichten muss nach der Verarbeitung sicher gelöscht werden (Nullierung, Speicherbereinigung), und neue Mitglieder müssen innerhalb von 24 Stunden Selbst-Updates für Forward Secrecy durchführen.&lt;/p>
&lt;p>Das TypeScript SDK (&lt;a href="https://github.com/marmot-protocol/marmot-ts">marmot-ts&lt;/a>) entwickelt eine Referenz-Chat-Anwendung. &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/37">PR #37&lt;/a> fügt Gruppenerstellung/-auflistung, Key-Package-Management mit Publish/Broadcast/Delete-Flows und QR-Code-Einladungen hinzu. Ein &lt;a href="https://github.com/marmot-protocol/marmot-ts/pull/38">offener PR #38&lt;/a> von hzrd149 implementiert Nachrichtenverlaufs-Persistenz mit Paginierung. Das whitenoise-rs Backend merged diese Woche 15 PRs, darunter Mehrsprachenunterstützung (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/455">PR #455&lt;/a>) und MIP-04 v2 Medienreferenzen (&lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/450">PR #450&lt;/a>).&lt;/p>
&lt;h3 id="divine-fügt-nostr-integrationsfunktionen-hinzu">diVine fügt Nostr-Integrationsfunktionen hinzu&lt;/h3>
&lt;p>&lt;a href="https://github.com/divinevideo/divine-mobile">diVine&lt;/a>, die Kurzform-Video-App, setzt die schnelle Nostr-Integration fort.&lt;/p>
&lt;p>Offene PRs umfassen &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> QR-Code-Authentifizierung (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/1019">PR #1019&lt;/a>) und &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> verschlüsselte Direktnachrichten (&lt;a href="https://github.com/divinevideo/divine-mobile/pull/834">PR #834&lt;/a>). Die Aktivität dieser Woche konzentrierte sich auf &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1098">Erwähnungs-Unterstützung&lt;/a>, die &lt;code>nostr:&lt;/code>-URIs und @Erwähnungen in klickbare Profillinks umwandelt, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1097">Classic Viners Avatar-Fallbacks&lt;/a> mit Nostr-Profilen und Video-Bearbeitungstools einschließlich &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1056">Zeichnen&lt;/a>, &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1053">Filter&lt;/a> und &lt;a href="https://github.com/divinevideo/divine-mobile/pull/1050">Sticker&lt;/a>.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Zusammengeführt:&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> - Der Vorschlag zur Standardisierung von Relay-Vertrauensbewertungen, &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/#nip-updates">den wir letzte Woche vorgestellt haben&lt;/a>, wurde zusammengeführt. Die Spezifikation definiert kind 30385 Events für Relay-Vertrauensaussagen mit Bewertung über Zuverlässigkeit, Qualität und Erreichbarkeit. Die Diskussion vor dem Zusammenführen drehte sich darum, ob Vertrauensbewertungen „global&amp;quot; (einmal für alle Benutzer berechnet) oder „personalisiert&amp;quot; (relativ zum sozialen Graphen jedes Beobachters) sein sollten. PageRank-ähnliche Algorithmen wie &lt;a href="https://trust.nostr.band/">nostr.band&amp;rsquo;s Trust Rank&lt;/a> und &lt;a href="https://github.com/Pretty-Good-Freedom-Tech/graperank-nodejs">GrapeRank&lt;/a> widerstehen Sybil-Angriffen, indem sie jeden durch gefälschte Konten weitergegebenen Rang durch die Größe der Bot-Farm teilen.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Communikeys&lt;/strong> - Ein &lt;a href="https://nostrhub.io">umfassender Vorschlag&lt;/a> für Community-Management, der bestehende npubs als Community-Identifikatoren verwendet, anstatt relay-basierter Ansätze. Jeder npub kann eine Community werden, indem er ein kind 10222 Event veröffentlicht; Veröffentlichungen zielen auf Communities über kind 30222 Events. Die Zugriffskontrolle verwendet &lt;a href="https://nostrcompass.org/de/topics/nip-58/">NIP-58&lt;/a>-Badges und ermöglicht delegiertes Mitgliedschaftsmanagement mit Cold Storage für Community-Schlüssel.&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> - Ein Entwurf, der sequenzbasierte Event-Synchronisierung als Alternative zu zeitstempelbasierten &lt;code>since&lt;/code>-Filtern vorschlägt. Das Problem: Standard-Nostr-Synchronisierung mit &lt;code>since&lt;/code>-Zeitstempeln kann Events verpassen, wenn mehrere Events denselben sekundenpräzisen Zeitstempel teilen, Client- und Relay-Uhren auseinanderdriften oder Checkpointing ungenau ist. NIP-CF löst dies, indem Relays eingehenden Events monoton steigende Sequenznummern zuweisen, was eine strikte Gesamtordnung bietet. Clients fordern Änderungen seit einer bestimmten Sequenznummer an und erhalten Events in garantierter Reihenfolge mit präzisem Checkpointing, das niemals Events verpasst. Der Vorschlag unterstützt auch Live-/Continuous-Modus, bei dem Subscriptions nach der initialen Synchronisierung für Echtzeit-Updates offen bleiben.&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> - Ein Protokoll, das kinds 30800 (verschlüsselte Dateien), 30801 (Tresor-Indizes) und 30802 (geteilte Dokumente) für die Synchronisierung verschlüsselter Inhalte über Geräte hinweg mit Nostr-Relays definiert. Das Protokoll ermöglicht local-first Notiz-Apps, Ende-zu-Ende-verschlüsselte Synchronisierung ohne zentralisierte Server bereitzustellen. Dateiinhalte, Pfade, Namen und Ordnerstruktur werden alle mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> Selbstverschlüsselung verschlüsselt, sodass Relays Blobs speichern, die sie nicht lesen können. Binäre Anhänge wie Bilder verwenden &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Server mit clientseitiger Verschlüsselung. Kind 30802 ermöglicht die Dokumentenfreigabe zwischen Benutzern durch Verschlüsselung an den öffentlichen Schlüssel des Empfängers.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="fünf-jahre-nostr-januare">Fünf Jahre Nostr-Januare&lt;/h2>
&lt;p>&lt;a href="https://nostrcompass.org/de/newsletters/2025-12-31-newsletter/#december-recap-five-years-of-nostr-decembers">Der Newsletter des letzten Monats&lt;/a> verfolgte Nostrs Dezember-Meilensteine von fiatjafs erstem Client-Release bis zu Jack Dorseys katalytischer Spende. Dieser Rückblick zeichnet nach, was jeden Januar von 2021 bis 2025 passierte, mit Fokus auf verifizierte technische Entwicklungen.&lt;/p>
&lt;h3 id="januar-2021-frühe-entwicklung">Januar 2021: Frühe Entwicklung&lt;/h3>
&lt;p>Nostrs dritter Monat sah die fortgesetzte Entwicklung an Branle, fiatjafs Vue.js-Client, der im Dezember 2020 gestartet war. Eine kleine Gruppe früher Anwender, wahrscheinlich weniger als 15 Personen, koordinierte sich über die Telegram-Gruppe &lt;a href="https://t.me/nostr_protocol">@nostr_protocol&lt;/a> (erstellt am 16. November 2020) und testete das Protokoll auf ein oder zwei experimentellen Relays. Der Kommandozeilen-Client noscl ermöglichte terminalbasierte Interaktion.&lt;/p>
&lt;p>Das technische Fundament war bereits festgelegt: Benutzer identifiziert durch secp256k1 öffentliche Schlüssel, Beiträge kryptographisch signiert mit Schnorr-Signaturen und Relays als dumme Speicher, die nicht miteinander kommunizieren. Dies war bewusst Bitcoin-native Kryptographie, eine Designentscheidung, die Jahre später die Adoptionsmuster prägen sollte.&lt;/p>
&lt;h3 id="januar-2022-entwickler-entdeckung">Januar 2022: Entwickler-Entdeckung&lt;/h3>
&lt;p>Der Januar 2022 begann, während Nostr noch vom &lt;a href="https://news.ycombinator.com/item?id=29749061">ersten Hacker-News-Auftritt&lt;/a> (31. Dezember 2021) summte, der 110 Punkte und 138 Kommentare generierte. Zum Zeitpunkt dieses Posts betrieben nur etwa sieben Relays das gesamte Netzwerk, wobei Kommentatoren anmerkten: „Spam ist noch kein Problem, weil Nostr super neu ist und niemand es benutzt.&amp;quot; Robert C. Martin („Uncle Bob&amp;quot;) hatte Nostr als potentiell „die Endspiel-Lösung für soziale Kommunikation&amp;quot; unterstützt. Die Diskussion setzte sich im Januar fort, wobei Entwickler über Relay-Architektur versus echtes P2P, Zensurresistenz versus Moderation und ob Einfachheit skalieren kann, debattierten.&lt;/p>
&lt;p>Der HN-Post löste eine Welle neuer Implementierungen aus. Uncle Bob selbst startete &lt;a href="https://github.com/unclebob/more-speech">more-speech&lt;/a>, einen Clojure-Desktop-Client, am 18. Januar. fiatjafs &lt;a href="https://github.com/nbd-wtf/go-nostr">go-nostr&lt;/a>-Bibliothek (erstellt Januar 2021) und &lt;a href="https://github.com/fiatjaf/noscl">noscl&lt;/a>-Kommandozeilen-Client stellten Go-Tooling bereit, während &lt;a href="https://github.com/nbd-wtf/nostr-tools">nostr-tools&lt;/a> JavaScript-Unterstützung bot. Bis Dezember 2022 hatten etwa 800 Profile Bios. Branle blieb der primäre Web-Client und erhielt Updates einschließlich Private-Key-Import und Multi-Relay-Unterstützung. Technische Herausforderungen waren offensichtlich: 64-Zeichen-Hex-Schlüssel erwiesen sich als unintuitiv, Nachrichtenverzögerungen frustrierten Benutzer, und die Community fragte sich, ob die Architektur Twitter-skaliertem Traffic standhalten könnte.&lt;/p>
&lt;h3 id="januar-2023-der-durchbruch">Januar 2023: Der Durchbruch&lt;/h3>
&lt;p>Der Januar 2023 transformierte Nostr vom Experiment zur Bewegung. Damus, der iOS-Client von William Casarin (jb55), kämpfte mit Apples App Store-Genehmigungsprozess. Am 1. Januar abgelehnt, am 26. Januar erneut abgelehnt, wurde er schließlich &lt;a href="https://www.coindesk.com/tech/2023/02/01/decentralized-social-media-project-nostrs-damus-gets-listed-on-apple-app-store">am 31. Januar genehmigt&lt;/a>. Diese Genehmigung löste eine Kaskade aus: Damus erreichte sofort Platz 10 in den US Social Networking Charts. 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">nannte es&lt;/a> „einen Meilenstein für offene Protokolle.&amp;quot;&lt;/p>
&lt;p>Acht Tage zuvor, am 23. Januar, &lt;a href="https://x.com/Snowden/status/1617623779626352640">kündigte Edward Snowden&lt;/a> seine Präsenz auf Nostr an: „Eines der coolen Dinge an Nostr&amp;hellip; neben Zensurresistenz ist, dass man nicht auf 280 Zeichen beschränkt ist.&amp;quot; Seine Unterstützung als NSA-Whistleblower hatte Gewicht in datenschutzbewussten Kreisen, und Benutzer begannen sofort, ihm Sats über Lightning zu zappen.&lt;/p>
&lt;p>Web-Clients rannten um die Wette, um den Zustrom aufzunehmen. &lt;a href="https://github.com/v0l/snort">Snort&lt;/a>, erstellt von kieran im Dezember 2022, entstand als funktionsreicher React-Client; am 13. Januar integrierte Snort NIP-05-Registrierung über die Nostr Plebs API, was neuen Benutzern ermöglichte, menschenlesbare Identitäten während des Onboardings zu beanspruchen. &lt;a href="https://iris.to">Iris&lt;/a>, hauptberuflich entwickelt von Martti Malmi (einem frühen Bitcoin-Mitwirkenden, der die zweite Bitcoin-Transaktion überhaupt von Satoshi erhielt), bot sowohl Web- als auch Mobile-Interfaces mit kostenlosen NIP-05-Identitäten bei iris.to. &lt;a href="https://github.com/monlovesmango/astral">Astral&lt;/a>, gebaut von monlovesmango mit Quasar (Vue.js) als Branle-Fork, konzentrierte sich auf Relay-Management mit seiner Relay-Gruppierungsfunktion, die es Benutzern ermöglichte, Relays in Sets zum Posten und Filtern zu organisieren. TestFlight-Betas für iOS-Clients füllten sich innerhalb von Stunden, und Amethyst dominierte Android.&lt;/p>
&lt;p>Die Infrastruktur kämpfte, um Schritt zu halten. Alle Relays wurden von Enthusiasten betrieben, die aus eigener Tasche zahlten. Bezahlte Relays mit Lightning-Mikrozahlungen schufen natürliche Spam-Filterung, führten aber Zugangsreibung ein. &lt;a href="https://techcrunch.com/2023/02/02/damus-pulled-from-apples-app-store-in-china-after-two-days/">Damus wurde nur zwei Tage nach der Genehmigung aus Chinas App Store entfernt&lt;/a>, Berichten zufolge auf Anfrage von Chinas oberster Internet-Aufsichtsbehörde.&lt;/p>
&lt;h3 id="januar-2024-protokoll-härtung">Januar 2024: Protokoll-Härtung&lt;/h3>
&lt;p>Der Januar 2024 konzentrierte sich auf Protokollstandardisierung und Community-Aufbau. &lt;a href="https://www.nostrphx.com/events">Nostr PHX&lt;/a> startete das Jahr mit einem Meetup am 5. Januar in Phoenix und brachte lokale Cypherpunks zusammen. Dies war das erste von vielen Community-Events in diesem Jahr, darunter BTC Prague (Juni), Nostriga in Riga (August) und Nostrasia.&lt;/p>
&lt;p>Die bedeutendste Protokollentwicklung war das Mergen von &lt;a href="https://github.com/nostr-protocol/nips/pull/716">NIP-59 (Gift Wrap)&lt;/a> am 29. Januar, das Metadatenschutz für verschlüsselte Kommunikation bietet. Gift Wrap baut auf &lt;a href="https://github.com/paulmillr/nip44">NIP-44s Verschlüsselungsstandard&lt;/a> (der im Dezember 2023 von &lt;a href="https://cure53.de/audit-report_nip44-implementations.pdf">Cure53 auditiert&lt;/a> worden war) auf, um die Absenderidentität vor Relays zu verbergen. Das Protokoll wickelt verschlüsselte Nachrichten in ein äußeres Event ein, das von einem zufälligen, einmalig verwendeten Schlüsselpaar signiert ist. Relays sehen nur den Wegwerf-Pubkey, während die echte Absenderidentität im verschlüsselten Payload verborgen ist, den nur der Empfänger entschlüsseln kann. Dies verhindert, dass Relay-Betreiber und Netzwerkbeobachter erfahren, wer mit wem kommuniziert. Zeitstempel können auch randomisiert werden, um Timing-Analysen zu vereiteln.&lt;/p>
&lt;p>Das Ökosystem expandierte über Social Media hinaus. &lt;a href="https://plebeian.market">Plebeian Market&lt;/a> wurde vollständig Nostr-nativ mit &lt;a href="https://nostrcompass.org/de/topics/nip-15/">NIP-15&lt;/a>-Konformität und ermöglichte standübergreifende Warenkörbe und einen Standbrowser zum Entdecken von Händlern. &lt;a href="https://github.com/shopstr-eng/shopstr">Shopstr&lt;/a> entstand als erlaubnisfreier Marktplatz für Bitcoin-Handel. &lt;a href="https://zap.stream/">Zap.stream&lt;/a>, gebaut von kieran, brachte Live-Streaming zu Nostr mit Lightning-Zahlungen zu 21 Sats/Minute. Entwicklerwerkzeuge reiften mit &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> für TypeScript-Abstraktionen und &lt;a href="https://github.com/rust-nostr/nostr">rust-nostr&lt;/a> für Rust-Bindings. &lt;a href="https://blog.zeusln.com/new-release-zeus-v0-8-1/">Zeus v0.8.1&lt;/a> lieferte Nostr-Kontaktimport und persistentes LND und legte den Grundstein für Nostr Wallet Connect Integration in späteren Releases.&lt;/p>
&lt;p>Dennoch &lt;a href="https://arxiv.org/abs/2402.05709">blieb die Infrastruktur-Nachhaltigkeit herausfordernd&lt;/a>. Akademische Forschung aus dieser Zeit fand, dass 95% der Relays Schwierigkeiten hatten, die Betriebskosten zu decken, wobei 20% erhebliche Ausfallzeiten erlebten. Die Eintrittsgebühr für bezahlte Relays betrug im Durchschnitt weniger als 1.000 Sats (~$0,45), unzureichend für einen nachhaltigen Betrieb.&lt;/p>
&lt;p>&lt;em>Eine Anmerkung zu Betrug: Das „Nostr Assets Protocol&amp;quot; und der zugehörige „$NOSTR&amp;quot;-Token, die ungefähr zu dieser Zeit gestartet wurden, &lt;a href="https://www.aicoin.com/en/article/377704">wurden öffentlich von fiatjaf angeprangert&lt;/a> als „100% betrügerisch&amp;quot; und „ein Affinitätsbetrug&amp;quot; ohne Verbindung zum eigentlichen Nostr-Protokoll.&lt;/em>&lt;/p>
&lt;h3 id="januar-2025-client-reifung">Januar 2025: Client-Reifung&lt;/h3>
&lt;p>Der Januar 2025 sah die fortgesetzte Client-Entwicklung im gesamten Ökosystem. &lt;a href="https://www.nobsbitcoin.com/nostur-v1-17-0/">Nostur 1.17.0&lt;/a> lieferte am 13. Januar geräteübergreifende Synchronisierung für Lesestatus, &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a> Multi-Sig-Login-Unterstützung und optimierte lokale Datenbankleistung. Amethyst setzte seinen Übergang zum Outbox-Modell fort und kompilierte automatisch Relay-Sets basierend auf Follow-Listen, anstatt manuelle Konfiguration zu erfordern.&lt;/p>
&lt;p>Große Clients begannen, sich von &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> für Direktnachrichten zu entfernen und migrierten in Richtung &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> und dem vorgeschlagenen &lt;a href="https://nostrcompass.org/de/topics/nip-104/">NIP-104&lt;/a> für verbesserte Verschlüsselung und Metadatenschutz. Das Gossip-Modell (Outbox/Inbox-Kommunikation) gewann an Akzeptanz, während das Ökosystem auf effizientere Relay-Nutzungsmuster konvergierte. Branchenbeobachter sagten voraus, dass dies das Jahr sein würde, in dem Nostr vom Nischenprotokoll zur Mainstream-Anerkennung übergeht, mit einer möglichen hochkarätigen Plattformmigration, die die tägliche Aktivität verdoppeln könnte.&lt;/p>
&lt;h3 id="januar-2026-sicherheits--und-signierinfrastruktur">Januar 2026: Sicherheits- und Signierinfrastruktur&lt;/h3>
&lt;p>Der Januar 2026 brachte bedeutende Fortschritte in der Sicherheits- und Signierinfrastruktur. &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">Primal Android 2.6.18&lt;/a> lieferte &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signing und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> lokale Signer-Unterstützung und gesellte sich zu Amber und Aegis als vollwertiger Signing-Hub für andere Android-Apps. &lt;a href="https://github.com/permissionlesstech/bitchat/pulls">Bitchat absolvierte ein Cure53-Sicherheitsaudit&lt;/a>, dieselbe Firma, die Signal und NIP-44 auditierte, mit 17+ PRs, die kritische Befunde einschließlich DH-Geheimnis-Löschung und Thread-Sicherheitsprobleme beheben. Sowohl Bitchat als auch Damus migrierten von C Tor zu Rust Arti für verbesserte Zuverlässigkeit und Speichersicherheit.&lt;/p>
&lt;p>Die Protokollarbeit setzte sich fort mit dem Mergen von &lt;a href="https://github.com/nostr-protocol/nips/pull/1669">NIP-71&lt;/a> (adressierbare Video-Events) und einer Post-Quanten-Kryptographie-NIP, die Diskussionen über die Zukunftssicherheit von Nostr gegen Quantenangriffe eröffnet. Der Trusted Relay Assertions-Entwurf schlug die Standardisierung von Relay-Vertrauensbewertungen durch signierte Attestierungen vor. Das &lt;a href="https://github.com/marmot-protocol/mdk">Marmot-Protokoll&lt;/a> härtete seine &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-basierte verschlüsselte Nachrichtenübermittlung mit 18 gemergten PRs, die Audit-Befunde adressieren.&lt;/p>
&lt;p>Realwelt-Anwendungen expandierten mit &lt;a href="https://github.com/variablefate/ridestr">Ridestr&lt;/a>, das dezentralisiertes Ridesharing mit &lt;a href="https://nostrcompass.org/de/topics/cashu/">Cashu&lt;/a>-Treuhand und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselung entwickelt, und &lt;a href="https://github.com/coracle-social/pomade">Pomade&lt;/a>, das E-Mail-basierte Wiederherstellungsabläufe zu &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a>-Schwellenwert-Signierung hinzufügt. Damus lieferte &lt;a href="https://nostrcompass.org/de/topics/negentropy/">negentropy&lt;/a> für zuverlässige DM-Synchronisierung, während Amethysts Desktop-App Phase 2A mit Suche, Lesezeichen und Zaps erreichte.&lt;/p>
&lt;h3 id="ausblick">Ausblick&lt;/h3>
&lt;p>Sechs Jahre von Januaren offenbaren Nostrs Evolution von früher Entwicklung (2021) zu öffentlicher Entdeckung (2022) zu explosivem Wachstum (2023) zu Protokoll-Härtung (2024) zu Client-Reifung (2025) zu Sicherheitsinfrastruktur (2026). Das Muster ist jedem vertraut, der das Wachstum offener Protokolle beobachtet hat: Jahre ruhiger Entwicklung, eine plötzliche Explosion, wenn die Bedingungen stimmen, dann die längere Arbeit, alles zuverlässig zu machen. Was mit sieben Relays und einem Hacker-News-Thread begann, ist jetzt auditierte Infrastruktur mit echten Anwendungen. Die Frage für 2027: Wenn jemand eine Fahrt ruft, eine verschlüsselte Nachricht sendet oder einen verlorenen Schlüssel mit Nostr wiederherstellt, werden sie dann überhaupt wissen, dass sie es benutzen?&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir über dein Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns per NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #6</title><link>https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/</link><pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-01-21-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Ratgeber zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Bitchat ersetzt C Tor durch die Rust Arti-Implementierung für bessere Zuverlässigkeit und Leistung. nostrdb-rs erhält Streaming-Fold-Abfragen, die Null-Allokations-Datenbankoperationen ermöglichen. Listr wird mit NDK 3 Beta-Migration und KI-gestützter Wartung nach einem Jahr Stillstand grundlegend überarbeitet. Zeus integriert 17 zusammengeführte PRs mit Fokus auf &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect für Remote Lightning Control) Verbesserungen und Cashu-Updates, während Primal Android Wallet-Backup-Flows und &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> (Media-Dimensionen für korrekte Seitenverhältnisse) Unterstützung hinzufügt. Ein neuer Entwurf-NIP schlägt &lt;a href="https://nostrcompass.org/de/topics/trusted-relay-assertions/">Trusted Relay Assertions&lt;/a> für standardisierte Relay-Vertrauensbewertung vor.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Ratgeber zu Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Bitchat ersetzt C Tor durch die Rust Arti-Implementierung für bessere Zuverlässigkeit und Leistung. nostrdb-rs erhält Streaming-Fold-Abfragen, die Null-Allokations-Datenbankoperationen ermöglichen. Listr wird mit NDK 3 Beta-Migration und KI-gestützter Wartung nach einem Jahr Stillstand grundlegend überarbeitet. Zeus integriert 17 zusammengeführte PRs mit Fokus auf &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> (Nostr Wallet Connect für Remote Lightning Control) Verbesserungen und Cashu-Updates, während Primal Android Wallet-Backup-Flows und &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> (Media-Dimensionen für korrekte Seitenverhältnisse) Unterstützung hinzufügt. Ein neuer Entwurf-NIP schlägt &lt;a href="https://nostrcompass.org/de/topics/trusted-relay-assertions/">Trusted Relay Assertions&lt;/a> für standardisierte Relay-Vertrauensbewertung vor.&lt;/p>
&lt;h2 id="nachrichten">Nachrichten&lt;/h2>
&lt;h3 id="bitchat-wechselt-zu-rust-arti-für-tor-unterstützung">Bitchat wechselt zu Rust Arti für Tor-Unterstützung&lt;/h3>
&lt;p>Bitchat ist von C Tor zu &lt;a href="https://gitlab.torproject.org/tpo/core/arti">Arti&lt;/a>, der Rust-Implementierung des Tor-Protokolls, migriert. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/958">PR #958&lt;/a> entfernt die C Tor-Abhängigkeit und integriert Arti, was Memory-Safety-Garantien und verbesserte Zuverlässigkeit mit sich bringt. Die Änderung behebt das Problem, dass ruhende Wake-Versuche Vordergrund-Service-Neustarts verursachten – ein langjähriges Problem der C-Implementierung.&lt;/p>
&lt;p>&lt;strong>Was das für Nutzer bedeutet:&lt;/strong> Stabilere verschlüsselte Messaging mit weniger Abbrüchen, besonders auf mobilen Geräten. Die Rust-Implementierung reduziert Absturzrisiken und Batterieverbrauch durch ständige Wiederverbindungsversuche.&lt;/p>
&lt;p>Arti ist eine komplette Neuentwicklung von Tor in Rust durch das Tor Project, um bessere Sicherheit durch Memory Safety und einfachere Integration in Anwendungen zu bieten. Für Bitchat reduzieren die Memory-Safety-Eigenschaften die Angriffsfläche beim Umgang mit verschlüsselten Nachrichten und Relay-Verbindungen. Die Migration folgt der kürzlichen &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-13-newsletter/#bitchat-completes-cure53-security-audit">Cure53-Sicherheitsaudit&lt;/a> des Teams (behandelt in Newsletter #5) und setzt ihre Sicherheitsverbesserungen fort.&lt;/p>
&lt;p>Der PR führt auch umfassende Testabdeckung für ChatViewModel und BLEService ein, entfernt ungenutzten Code und stabilisiert die Test-Suite. Bluetooth Low Energy Mesh-Zuverlässigkeitsverbesserungen begleiten die Tor-Änderungen und beheben Probleme mit großen Datenübertragungen. Zusammen verbessern diese Änderungen Bitchats Widerstandsfähigkeit für Offline-Mesh-Netzwerk-Szenarien, in denen Tor Internetverbindung zusammen mit lokaler BLE-Kommunikation bereitstellt.&lt;/p>
&lt;h3 id="listr-mit-ki-gestützter-wartung-erneuert">Listr mit KI-gestützter Wartung erneuert&lt;/h3>
&lt;p>JeffG kündigte eine große Überarbeitung von &lt;a href="https://github.com/erskingardner/listr">Listr&lt;/a>, der Nostr-Listenverwaltungsanwendung unter &lt;a href="https://listr.lol">listr.lol&lt;/a> verfügbar, nach mehr als einem Jahr Stillstand des Projekts an. Mit KI-Unterstützung führte er ein umfassendes Upgrade durch, einschließlich Migration zu &lt;a href="https://github.com/nostr-dev-kit/ndk">NDK&lt;/a> 3 Beta, Updates auf die neuesten Versionen von Svelte und Vite und alle Abhängigkeiten aktualisiert. Die Überarbeitung bietet erstklassige Unterstützung für Folge-Pakete, implementiert Pagination für Listen mit über 50 Elementen und behebt zahlreiche Fehler, die sich während der Stillstandszeit angesammelt hatten.&lt;/p>
&lt;p>&lt;strong>Was das für Nutzer bedeutet:&lt;/strong> Listr ist wieder online mit verbesserter Leistung und neuen Funktionen zur Verwaltung von Folgelisten, Inhaltssammlungen und Topic-Kurationen. Die Pagination-Verbesserung macht große Listen tatsächlich nutzbar.&lt;/p>
&lt;p>JeffG bemerkte, dass diese Wartungsarbeit ohne KI-Unterstützung wahrscheinlich nie hätte stattfinden können und das Projekt vor dem Verlassensein bewahrt. Listr ermöglicht Inhalts-Kurationen auf Nostr und erlaubt Nutzern, Listen von Profilen, Topics und Ressourcen zu erstellen, zu verwalten und zu teilen. Das Upgrade hält die Anwendung kompatibel mit aktuellen Nostr-Standards und Client-Erwartungen, da Listenverwaltung zentraler für Content-Discovery im Protokoll wird.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen im &lt;a href="https://github.com/nostr-protocol/nips">NIPs Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Zusammengeführt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>&lt;/strong> (Relay-basierte Gruppen) - Relay-Schlüssel-Klarstellung (&lt;a href="https://github.com/nostr-protocol/nips/pull/2190">#2190&lt;/a> - zusammengeführt) stellt klar, dass der Relay-Schlüssel die Relay-URL selbst ist, nicht ein pubkey. Die Spec erklärt nun explizit &amp;ldquo;Der Relay-Schlüssel ist die WebSocket-URL des Relays (z.B. wss://groups.example.com)&amp;rdquo;, um Verwechslungen zu vermeiden. Dies beeinflusst, wie Clients identifizieren, welcher Relay eine bestimmte Gruppe hostet und stellt sicher, dass Gruppen ordnungsgemäß ihren Hosting-Relays zugeordnet werden.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs und Diskussionen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Trusted Relay Assertions&lt;/strong> - Ein Entwurf-NIP schlägt die Standardisierung der Relay-Vertrauensbewertung durch kind 30385 Events mit Vertrauenswerten (0-100) vor, berechnet aus &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> (Relay-Entdeckung und Überwachung) Metriken, Betreiber-Reputation und Nutzerberichten. Die Spezifikation unterteilt Vertrauen in Zuverlässigkeit (Verfügbarkeit, Latenz), Qualität (TLS, Dokumentation, Betreiber-Verifizierung) und Zugänglichkeit (Gerichtsbarkeit, Barrieren, Überwachungsrisiko) Komponenten. Die Betreiber-Verifizierung umfasst kryptografische Signaturen über &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> (Relay-Informationsdokumente), DNS TXT-Einträge und .well-known Dateien. Nutzer deklarieren vertraute Assertion-Provider über kind 10385 Events, was Clients ermöglicht, mehrere Provider für unterschiedliche Perspektiven abzufragen. Der Vorschlag ergänzt &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Entdeckung mit Bewertung und hilft &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> (Remote-Signierung/Nostr Connect) bei der Beurteilung der Relay-Vertrauenswürdigkeit in Verbindungs-URIs.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Post-Quanten-Kryptografie&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2185">PR #2185&lt;/a> (offen) entwickelt sich weiter, seit &lt;a href="https://nostrcompass.org/de/newsletters/2026-01-13-newsletter/#nip-updates">Newsletter #5&lt;/a> den Vorschlag für quantenresistente Algorithmen einführte. Die Diskussion dieser Woche konzentrierte sich auf Implementierungsdetails für Krypto-Agilität: wie Clients duale Signaturen während der Migration handhaben, Rückwärtskompatibilität für ältere Clients und Leistungsauswirkungen größerer quantenresistenter Signaturen. Beitragende debattierten, ob nur ML-DSA-44 vorgeschrieben werden soll oder mehrere Algorithmen (ML-DSA-44, Falcon-512, Dilithium) für Flexibilität unterstützt werden sollen. Der Konsens neigt zu einem schrittweisen Ansatz: optionale Quantensignaturen zunächst, die erst nach breiter Client-Unterstützung und dem Auftreten echter Quantenbedrohungen obligatorisch werden.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-11-und-nip-66">NIP Deep Dive: NIP-11 und NIP-66&lt;/h2>
&lt;p>Diese Woche untersuchen wir zwei NIPs, die zusammenarbeiten, um Relay-Entdeckung und -Bewertung zu ermöglichen: NIP-11 definiert, wie Relays sich selbst beschreiben, und NIP-66 standardisiert, wie wir Relay-Verhalten messen. Zusammen bilden sie die Grundlage für Relay-Vertrauensbewertungssysteme.&lt;/p>
&lt;h3 id="nip-11detopicsnip-11-relay-informationsdokument">&lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>: Relay-Informationsdokument&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/11.md">NIP-11&lt;/a> definiert ein JSON-Dokument, das Relays über HTTP bereitstellen, um ihre Fähigkeiten, Richtlinien und Betreiberinformationen zu beschreiben. Wenn ein Client sich mit &lt;code>wss://relay.example.com&lt;/code> verbindet, kann er &lt;code>https://relay.example.com&lt;/code> abrufen (ersetze &lt;code>wss://&lt;/code> durch &lt;code>https://&lt;/code>), um das Informationsdokument des Relays zu erhalten.&lt;/p>
&lt;p>Das Dokument verwendet Standard-HTTP-Content-Negotiation mit dem &lt;code>Accept: application/nostr+json&lt;/code> Header. Dies ermöglicht es Relays, ihre normale Website an Browser zu liefern und gleichzeitig maschinenlesbare Metadaten an Nostr-Clients bereitzustellen. Die Antwort enthält den Namen und die Version der Relay-Software, Kontaktinformationen des Betreibers (pubkey, E-Mail, alternativer Kontakt), unterstützte NIPs und operative Parameter wie Zahlungsanforderungen oder Inhaltsbeschränkungen.&lt;/p>
&lt;p>Wichtig ist, dass grundlegende NIP-11-Dokumente unsigniertes JSON sind, das über HTTPS bereitgestellt wird und sich ausschließlich auf TLS-Zertifikate für die Authentizität verlässt. Das bedeutet, dass jeder, der den Webserver des Relays kontrolliert, das Dokument modifizieren kann, wodurch Betreiberbehauptungen nicht verifizierbar sind. Der Trusted Relay Assertions-Vorschlag schließt diese Lücke, indem er signierte Attestierungen durch das &lt;code>self&lt;/code> pubkey-Feld eines Relays einführt und kryptografische Beweise für die Betreiberidentität ermöglicht, ähnlich wie Relays signierte Events für Authentifizierungsmechanismen verwenden.&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;Ein allgemeines öffentliches 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>Das &lt;code>limitation&lt;/code>-Objekt teilt Clients mit, welche Einschränkungen das Relay durchsetzt. &lt;code>max_message_length&lt;/code> begrenzt die WebSocket-Frame-Größe, &lt;code>max_subscriptions&lt;/code> begrenzt gleichzeitige REQ-Abonnements pro Verbindung, &lt;code>max_filters&lt;/code> begrenzt Filter pro REQ, und &lt;code>max_limit&lt;/code> beschränkt, wie viele Events ein einzelner Filter anfordern kann. Diese Parameter helfen Clients, ihr Verhalten an die Relay-Fähigkeiten anzupassen und Verbindungsabbrüche durch Überschreitung von Limits zu vermeiden.&lt;/p>
&lt;p>Zahlungsinformationen erscheinen in &lt;code>fees&lt;/code> und &lt;code>payments_url&lt;/code>. Relays können für Zutritt (einmaliger Zugriff), Abonnement (wiederkehrender Zugriff) oder Publikation (pro Event-Gebühren) Gebühren erheben. Die &lt;code>payments_url&lt;/code> verweist auf Details zu Zahlungsmethoden, typischerweise Lightning-Rechnungen oder Ecash-Mints. Kostenpflichtige Relays verwenden diese Felder, um Preise zu kommunizieren, bevor Clients eine Authentifizierung versuchen.&lt;/p>
&lt;p>Das &lt;code>supported_nips&lt;/code>-Array ermöglicht es Clients, Relay-Fähigkeiten zu entdecken. Wenn ein Relay &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> auflistet, wissen Clients, dass sie Volltextsuche-Anfragen senden können. Wenn &lt;a href="https://nostrcompass.org/de/topics/nip-42/">NIP-42&lt;/a> erscheint, sollten Clients Authentifizierungs-Herausforderungen erwarten. Diese deklarative Fähigkeits-Werbung ermöglicht progressive Verbesserung: Clients können erweiterte Funktionen nutzen, wo sie verfügbar sind, während sie auf Relays mit begrenzter Unterstützung elegant degradieren.&lt;/p>
&lt;p>Betreiberinformationen schaffen Verantwortlichkeit. Das &lt;code>pubkey&lt;/code>-Feld identifiziert den Relay-Betreiber auf Nostr und ermöglicht direkte Kommunikation über &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> DMs oder öffentliche Erwähnungen. Die &lt;code>contact&lt;/code>-E-Mail bietet eine Off-Protocol-Fallback-Option. Zusammen helfen diese Felder Nutzern, Betreiber für Missbrauchsmeldungen, Zugriffsanfragen oder technische Probleme zu erreichen.&lt;/p>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Dokumente sind selbstberichtet: Relays beschreiben, was sie behaupten zu unterstützen, nicht unbedingt, was sie tatsächlich tun. Hier wird NIP-66 wichtig.&lt;/p>
&lt;h3 id="nip-66detopicsnip-66-relay-entdeckung-und-lebendüberwachung">&lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a>: Relay-Entdeckung und Lebendüberwachung&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/66.md">NIP-66&lt;/a> standardisiert die Veröffentlichung von Relay-Überwachungsdaten auf Nostr. Überwachungsdienste testen kontinuierlich Relays auf Verfügbarkeit, Latenz, Protokollkonformität und unterstützte NIPs. Sie veröffentlichen Ergebnisse als kind 30166 Events und bieten Echtzeit-Relay-Status unabhängig von Relay-Selbstberichten.&lt;/p>
&lt;p>Monitore prüfen die Relay-Verfügbarkeit, indem sie sich verbinden und Test-Abonnements senden. Latenzmessungen verfolgen Verbindungszeit, Abonnement-Antwortzeit und Event-Verbreitungsverzögerung. Protokollkonformitätstests verifizieren, dass das Relay-Verhalten den Spezifikationen entspricht, und erfassen Implementierungsfehler oder absichtliche Abweichungen. Die NIP-Unterstützungsverifizierung geht über &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a>-Behauptungen hinaus, indem tatsächlich getestet wird, ob beworbene Funktionen korrekt funktionieren.&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>Das &lt;code>d&lt;/code>-Tag enthält die Relay-URL, was dies zu einem parametrisierten ersetzbaren Event macht. Jeder Monitor veröffentlicht ein Event pro Relay, das aktualisiert wird, wenn sich Messungen ändern. Mehrere Monitore können dasselbe Relay verfolgen und bieten Redundanz und Kreuzvalidierung. Clients fragen mehrere Monitor-Pubkeys ab, um verschiedene Perspektiven zur Relay-Gesundheit zu erhalten.&lt;/p>
&lt;p>Round-Trip-Time (rtt) Tags messen die Latenz für verschiedene Operationen. &lt;code>rtt open&lt;/code> verfolgt die WebSocket-Verbindungserstellung, &lt;code>rtt read&lt;/code> misst die Abonnement-Antwortzeit und &lt;code>rtt write&lt;/code> testet die Event-Veröffentlichungsgeschwindigkeit. Alle Werte sind in Millisekunden. Clients verwenden diese Metriken, um Relays mit niedriger Latenz für zeitkritische Operationen zu bevorzugen oder langsame Relays zu deprioritisieren.&lt;/p>
&lt;p>Das &lt;code>nips&lt;/code>-Tag listet tatsächlich verifizierte NIP-Unterstützung auf, nicht nur behauptete Unterstützung. Monitore testen jeden NIP, indem sie seine Funktionalität ausüben. Wenn ein Relay &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> Suche in seinem &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> Dokument behauptet, aber Suchabfragen fehlschlagen, werden Monitore NIP-50 aus der verifizierten Liste weglassen. Dies liefert Grundwahrheit über Relay-Fähigkeiten.&lt;/p>
&lt;p>Geografische Informationen helfen Clients, nahegelegene Relays für bessere Latenz und Zensurresistenz auszuwählen. Das &lt;code>geo&lt;/code>-Tag enthält Ländercode, Ländername und Region. Das &lt;code>network&lt;/code>-Tag unterscheidet Clearnet-Relays von Tor Hidden Services oder I2P-Endpunkten. Zusammen ermöglichen diese Tags geografische Vielfalt: Clients können sich mit Relays in mehreren Gerichtsbarkeiten verbinden, um regionaler Zensur zu widerstehen.&lt;/p>
&lt;p>Monitordaten treiben Relay-Selektoren in Clients, Explorer-Websites und den Trusted Relay Assertions-Vorschlag an. Durch die Kombination von selbstberichteten &lt;a href="https://nostrcompass.org/de/topics/nip-11/">NIP-11&lt;/a> Dokumenten mit gemessenen &lt;a href="https://nostrcompass.org/de/topics/nip-66/">NIP-66&lt;/a> Daten und berechneten Vertrauensbehauptungen bewegt sich das Ökosystem in Richtung informierter Relay-Auswahl, anstatt sich auf hartcodierte Standards oder Mundpropaganda-Empfehlungen zu verlassen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;h3 id="0xchat-v153---erweiterte-messaging-funktionen">0xchat v1.5.3 - Erweiterte Messaging-Funktionen&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> bringt bedeutende Verbesserungen für den Telegram-ähnlichen Nostr-Messaging-Client. Die Version behebt &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> (Android-Signer-Anwendung) Compliance-Probleme, die eine ordnungsgemäße Event-Signierung über externe Signer wie Amber verhinderten. Vollständige Compliance bedeutet, dass 0xchat jetzt korrekt Signieroperationen delegiert und die Sicherheit verbessert, indem private Schlüssel isoliert bleiben.&lt;/p>
&lt;p>Das Update integriert sowohl FileDropServer als auch BlossomServer als Standard-Medienspeicheroptionen und gibt Nutzern Redundanz für Datei-Uploads. &lt;a href="https://github.com/hzrd149/blossom">Blossom&lt;/a> bietet inhaltsadressierte Speicherung, bei der Dateien durch ihre SHA-256-Hashes referenziert werden, was Integrität sicherstellt und Deduplizierung im Netzwerk ermöglicht. Automatisches Entwurf-Speichern für Moments verhindert Datenverlust beim Verfassen von Langform-Inhalten und behebt Nutzerbeschwerden über verlorene Posts während App-Wechseln oder Verbindungsunterbrechungen.&lt;/p>
&lt;p>Die Cashu-Wallet-Integration erhält Politur mit automatischer Proof-Filterung, die ausgegebene Token aus der Wallet-Ansicht entfernt. Dies löst die verwirrende UX, bei der Nutzer ungültige Proofs neben gültigem Ecash sahen, was Bilanzberechnungen unzuverlässig machte. Die Filterung erfolgt clientseitig und bewahrt die Privatsphäre, während sie die Zahlungserfahrung für Peer-to-Peer-Transaktionen innerhalb von Chats verbessert.&lt;/p>
&lt;h3 id="amber-v410-pre-releases---ui-überholung">Amber v4.1.0 Pre-releases - UI-Überholung&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> bis &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.1.0-pre3">v4.1.0-pre3&lt;/a> führen eine neu gestaltete Oberfläche für den beliebten Android-Event-Signer ein. Der Login-Bildschirm zeigt jetzt deutlich an, welche Anwendung Signaturberechtigungen anfordert, und behebt Nutzerverwirrung über Autorisierungs-Flows. Der neue Events-Bildschirm bietet detaillierte Inspektion der Daten, die Anwendungen signieren möchten, sodass Nutzer informierte Sicherheitsentscheidungen treffen können, bevor sie Operationen genehmigen.&lt;/p>
&lt;p>Das Berechtigungsmanagement erhält erhebliche Aufmerksamkeit mit einer überarbeiteten Oberfläche, die genau zeigt, welche Fähigkeiten jeder verbundenen Anwendung gewährt wurden. Nutzer können spezifische Berechtigungen widerrufen, ohne die Verbindung vollständig zu trennen, was eine feinkörnige Kontrolle über die Signierdelegation ermöglicht. Die überarbeiteten Relay-Zähler mit der aktualisierten Quartz-Bibliothek bieten Echtzeit-Statistiken über Event-Durchsatz und Relay-Leistung. &lt;a href="https://github.com/nostr-protocol/nips/blob/master/46.md">NIP-46&lt;/a> (Nostr Connect) Bunker-Verbindungen zeigen jetzt detaillierte Fehlermeldungen an, wenn Verbindungen fehlschlagen, und ersetzen kryptische Timeout-Fehler durch verwertbare Diagnosen.&lt;/p>
&lt;h2 id="bemerkenswerte-code--und-dokumentationsänderungen">Bemerkenswerte Code- und Dokumentationsänderungen&lt;/h2>
&lt;p>&lt;em>Dies sind zusammengeführte Pull Requests und frühphasige Entwicklungen, die es wert sind, verfolgt zu werden. Einige sind experimentelle Funktionen, die sich vor der Veröffentlichung noch entwickeln könnten.&lt;/em>&lt;/p>
&lt;h3 id="zeus-lightning-wallet-mit-nostr-wallet-connect">Zeus (Lightning Wallet mit Nostr Wallet Connect)&lt;/h3>
&lt;p>Zeus führte diese Woche 17 Pull Requests zusammen und stärkt seine Position als führende &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect-Implementierung. Die bedeutendsten Fixes beheben Datenkonsistenz- und Protokollkonformitätsprobleme, die Interoperabilitätsprobleme mit Nostr-Clients verursachten.&lt;/p>
&lt;p>&lt;strong>Transaktionsverlauf-Fix&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3542">PR #3542&lt;/a> behebt einen kritischen Fehler, bei dem NWC-Transaktionslisten falsche oder doppelte Einträge anzeigten. Das Problem trat auf, wenn Zeus Transaktionsdaten zwischenspeicherte, ohne Event-Updates ordnungsgemäß zu handhaben, was dazu führte, dass Nutzer Phantom-Transaktionen oder fehlende Zahlungen sahen. Der Fix implementiert ordnungsgemäße Event-Deduplizierung und Cache-Invalidierung, um sicherzustellen, dass der Transaktionsverlauf den Lightning-Node-Status genau widerspiegelt.&lt;/p>
&lt;p>&lt;strong>Protokollkonformität&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3548">PR #3548&lt;/a> behebt unvollständige &lt;code>getInfo&lt;/code>-Antworten, die die Kompatibilität mit Clients brachen, die vollständige NIP-47-Konformität erwarteten. Einige Nostr-Clients stürzten ab, wenn sie partielle Antworten erhielten, denen Felder wie &lt;code>block_height&lt;/code> oder &lt;code>network&lt;/code> fehlten. Der PR stellt sicher, dass alle erforderlichen Felder mit sinnvollen Standardwerten zurückgegeben werden, auch wenn die zugrundeliegende Lightning-Implementierung sie nicht bereitstellt, was Zeus&amp;rsquo; Kompatibilität im gesamten Ökosystem verbessert.&lt;/p>
&lt;p>&lt;strong>Verbindungsresilienz&lt;/strong> - &lt;a href="https://github.com/ZeusLN/zeus/pull/3543">PR #3543&lt;/a> implementiert Timeout-Benachrichtigungen für ins Stocken geratene Nostr-Verbindungen. Zuvor warteten Nutzer unbegrenzt, wenn Relay-Verbindungen stillschweigend abbrachen. Jetzt zeigt Zeus klare Timeout-Nachrichten nach 30 Sekunden Inaktivität an, sodass Nutzer erneut versuchen oder Relays wechseln können. &lt;a href="https://github.com/ZeusLN/zeus/pull/3541">PR #3541&lt;/a> fügt Backend-Validierung hinzu, um NWC-Aktivierung auf inkompatiblen Lightning-Implementierungen zu verhindern und Konfigurationsfehler zu erfassen, bevor sie Laufzeitabstürze verursachen.&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> behebt einen Concurrency-Fehler in der Cashu-Token-Verwaltung, bei dem gleichzeitige Mint-Operationen die Token-Datenbank beschädigen konnten. Die Race Condition trat auf, wenn mehrere Threads Token-Zählungen ohne ordnungsgemäße Sperrung aktualisierten, was gelegentlich zu falschen Salden führte. Der Fix fügt Mutex-Schutz um kritische Abschnitte hinzu und stellt atomare Updates des Token-Status sicher.&lt;/p>
&lt;h3 id="primal-android-client">Primal Android (Client)&lt;/h3>
&lt;p>Primal Android lieferte 12 zusammengeführte PRs mit bedeutenden Verbesserungen bei Wallet-Sicherheit und Medienbehandlung. Die Wallet-Backup-Implementierung adressiert eine der meist angeforderten Funktionen, während NIP-92-Unterstützung die visuelle Erfahrung in der gesamten Anwendung verbessert.&lt;/p>
&lt;p>&lt;strong>Wallet-Backup-System&lt;/strong> - Eine 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>) implementiert umfassende Seed-Phrase-Backup-Funktionalität. Nutzer können jetzt ihr 12-Wort-Mnemonic über einen sicheren Flow exportieren, der Screenshots verhindert, den Backup-Status im Wallet-Dashboard anzeigt und bestehende Nutzer durch die Migration führt. Die Implementierung folgt BIP-39-Standards und beinhaltet Validierung, um zu verhindern, dass Nutzer Gelder durch falsche Phrasenaufzeichnung verlieren.&lt;/p>
&lt;p>&lt;strong>Mediendimensionen (NIP-92)&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/718">PR #718&lt;/a> implementiert &lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a> Unterstützung für korrekte Bild- und Video-Seitenverhältnisse. Ohne Dimensionsmetadaten müssen Clients Bilder herunterladen, um ihre Größe zu bestimmen, was zu Layout-Sprüngen führt, wenn Inhalte geladen werden. NIP-92 fügt &lt;code>dim&lt;/code>-Tags (wie &lt;code>[&amp;quot;dim&amp;quot;, &amp;quot;1920x1080&amp;quot;]&lt;/code>) zu Datei-Metadaten-Events hinzu, sodass Primal korrekten Platz vor dem Herunterladen von Medien reservieren kann. Dies eliminiert störende Reflows in Bildgalerien und verbessert die wahrgenommene Leistung.&lt;/p>
&lt;p>&lt;strong>Remote-Signer-Zuverlässigkeit&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/841">PR #841&lt;/a> behebt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Verbindungsprobleme, bei denen fehlende &lt;code>wss://&lt;/code>-Präfixe stille Fehler verursachten. Der PR validiert Relay-URIs während des Bunker-Verbindungsaufbaus und fügt das Protokoll-Präfix automatisch hinzu, wenn Nutzer bloße Domains einfügen. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/843">PR #843&lt;/a> behebt einen Threading-Fehler, bei dem schlechte Netzwerkbedingungen dazu führten, dass Antworten als Root-Notes gepostet wurden und den Gesprächsfluss unterbrachen. Der Fix stellt sicher, dass Parent-Event-IDs durch Netzwerkunterbrechungen bestehen bleiben.&lt;/p>
&lt;h3 id="marmot-protocol-white-noise-verschlüsselte-gruppenchat-bibliothek">Marmot Protocol: White Noise (Verschlüsselte Gruppenchat-Bibliothek)&lt;/h3>
&lt;p>White Noise, die Rust-Bibliothek, die &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a> Protocols verschlüsselte Gruppenchats antreibt, führte sechs PRs zusammen, die Nutzererfahrung und Sicherheit verbessern. Die Änderungen bringen Marmot näher an Feature-Parität mit Mainstream-Messaging-Anwendungen, während sie ihre Privacy-First-Architektur beibehalten.&lt;/p>
&lt;p>&lt;strong>Lesebestätigungen&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/433">PR #433&lt;/a> und &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/436">#436&lt;/a> implementieren Nachrichten-Leseverfolgung für Gruppenkonversationen. Das System speichert Lesepositionen pro Nutzer pro Gruppe innerhalb eines einzelnen Geräts und ermöglicht Ungelesen-Zähler-Badges. Die Implementierung verwendet monotone Zeitstempel, um die Position der zuletzt gelesenen Nachricht für jede Konversation zu verfolgen. Diese grundlegende Funktion ermöglicht UI-Indikatoren, die ungelesene Nachrichtenzahlen pro Konversation anzeigen.&lt;/p>
&lt;p>&lt;strong>Konversations-Pinning&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/442">PR #442&lt;/a> fügt persistentes Konversations-Pinning durch ein &lt;code>pin_order&lt;/code>-Feld in der &lt;code>accounts_groups&lt;/code>-Junction-Tabelle hinzu, die Konten mit Gruppen verknüpft. Gepinnte Konversationen behalten ihre Position oben in Chat-Listen bei, unabhängig von Nachrichtenaktivität, was den Nutzererwartungen von Signal und WhatsApp entspricht. Die Implementierung verwendet Integer-Sortierung, um unbegrenzte Pins mit deterministischer Sortierung zu ermöglichen.&lt;/p>
&lt;p>&lt;strong>Deterministische Commit-Auflösung (MIP-03)&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/mdk/pull/152">PR #152&lt;/a> (offen) implementiert Marmot Improvement Proposal 03 und löst das kritische Problem von Commit-Race-Conditions in verteilten Gruppenchats. Wenn mehrere Mitglieder gleichzeitig Gruppenstatusänderungen (Hinzufügen/Entfernen von Mitgliedern, Ändern von Berechtigungen) einreichen, könnten Clients bei der Commit-Reihenfolge divergieren und die Gruppe in inkompatible Zustände fragmentieren. MIP-03 führt Epochen-Snapshots und eine deterministische Gewinner-Auswahl ein: Der Commit mit dem frühesten &lt;code>created_at&lt;/code>-Zeitstempel gewinnt, mit lexikografischer Event-ID als Tie-Breaker. Dies ermöglicht es allen Clients, durch Rollback und Replay auf denselben Zustand zu konvergieren und die Gruppenkohärenz auch während Netzwerkpartitionen aufrechtzuerhalten.&lt;/p>
&lt;p>&lt;strong>Sicherheitshärtung&lt;/strong> - &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/443">PR #443&lt;/a> verhindert unnötiges Kopieren kryptografischer Geheimnisse durch die Verwendung von Referenzen in &lt;code>resolve_group_image_path&lt;/code>. Dies reduziert das Zeitfenster für Speicherangriffe, bei denen Geheimnisse aus freigegebenen Heap-Allokationen wiederhergestellt werden könnten. &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/438">PR #438&lt;/a> aktiviert SQLCipher-Datenbankverschlüsselung durch Keyring-Parameter und schützt die Nachrichtenhistorie im Ruhezustand. Die Keyring-Integration ermöglicht sichere Schlüsselspeicherung in Plattform-Keychains anstatt in Konfigurationsdateien.&lt;/p>
&lt;h3 id="nostrdb-rs-datenbankbibliothek---offener-pr">nostrdb-rs (Datenbankbibliothek) - Offener PR&lt;/h3>
&lt;p>&lt;strong>Streaming-Abfragen-Implementierung&lt;/strong> - &lt;a href="https://github.com/damus-io/nostrdb-rs/pull/58">PR #58&lt;/a> (offen) schlägt Streaming-Fold-Abfragen vor, um Null-Allokations-Datenbankoperationen zu ermöglichen. Die Implementierung fügt &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> und &lt;code>find_map&lt;/code> Methoden hinzu, die Datenbankergebnisse einzeln verarbeiten würden, ohne ganze Ergebnismengen in Vektoren zu materialisieren. Dieser Ansatz würde den Speicherverbrauch reduzieren und frühzeitige Beendigung für gängige Abfragemuster ermöglichen.&lt;/p>
&lt;p>Die technische Implementierung exponiert Low-Level-Abfrageergebnis-Callbacks (&lt;code>ndb_query_visit&lt;/code>) als zustandsbehaftete Rust-Visitors, die &lt;code>ControlFlow&lt;/code>-Varianten auf C-Visitor-Aktionen abbilden. Nach der Zusammenführung wird Anwendungscode wie Iterator-Logik lesen, während er nahe an der Datenbankschicht läuft. Zum Beispiel würde das Zählen passender Notizen durch Ergebnisse streamen, anstatt sie zu sammeln, und &lt;code>find_map&lt;/code> würde das erste nützliche Ergebnis zurückgeben, ohne verbleibende Zeilen zu verarbeiten.&lt;/p>
&lt;p>nostrdb betreibt Damus und Notedeck, beide iOS/macOS bzw. Desktop-Clients. Die Streaming-Abfragen würden effiziente Muster wie Paginierung, bedingte Filterung und Existenzprüfungen ermöglichen. Der PR ändert 3 Dateien mit +756 Hinzufügungen und -32 Löschungen, eine substantielle Umgestaltung der Abfrageschicht. Nutzer von nostrdb-rs-basierten Anwendungen würden reduzierten Speicherverbrauch beim Durchsuchen großer Timelines oder beim Durchsuchen umfangreicher Event-Datenbanken sehen.&lt;/p>
&lt;h3 id="nak-cli-tool">nak (CLI-Tool)&lt;/h3>
&lt;p>nak, fiatjafs Kommandozeilen-Nostr-Tool, führte sechs PRs zusammen, die sich auf Build-System-Verbesserungen und neue Funktionalität konzentrieren. &lt;a href="https://github.com/fiatjaf/nak/pull/91">PR #91&lt;/a> implementiert eine Blossom-Mirror-Funktion, die es nak ermöglicht, als Mirror für Blossom-Medienserver zu dienen. &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a> ist ein inhaltsadressiertes Medienspeicherprotokoll, das neben Nostr-Events funktioniert.&lt;/p>
&lt;p>Die verbleibenden PRs behandeln Build-System-Kompatibilität über Windows-, macOS- und Linux-Plattformen und ermöglichen FUSE-Dateisystem-Unterstützung für das Mounten von Nostr-Events als lokale Verzeichnisse.&lt;/p>
&lt;h3 id="damus-ios-client---offene-prs">Damus (iOS-Client) - Offene PRs&lt;/h3>
&lt;p>Damus hat 11 offene PRs, die bedeutende architektonische Verbesserungen erforschen. Obwohl diese noch nicht zusammengeführt wurden, signalisieren sie wichtige Richtungen für die iOS-Nostr-Client-Entwicklung, insbesondere in Bezug auf Privatsphäre, Synchronisationseffizienz und mobile Datenoptimierung.&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> bettet den Arti Tor-Client direkt in Damus ein und ermöglicht anonyme Relay-Verbindungen ohne externe Abhängigkeiten. Im Gegensatz zu Orbot- oder Tor-Browser-Ansätzen bietet das Einbetten von Arti nahtlose Integration mit iOS-Sandboxing und Hintergrundausführungslimits. Die Rust-Implementierung bringt Memory Safety zur Netzwerkanonymisierung und reduziert die Angriffsfläche im Vergleich zu C Tor. Nutzer könnten den Tor-Modus pro-Relay oder global umschalten, wobei der Client das Circuit-Management transparent handhabt.&lt;/p>
&lt;p>&lt;strong>Negentropy-Sync-Protokoll&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3536">PR #3536&lt;/a> implementiert Negentropy, ein Set-Reconciliation-Protokoll, das die Synchronisationseffizienz radikal verbessert. Anstatt alle Events seit der letzten Verbindung herunterzuladen, tauscht Negentropy kompakte Fingerabdrücke (Merkle-Bäume) aus, um genau zu identifizieren, welche Events zwischen Client und Relay unterschiedlich sind. Für Nutzer, die Hunderten von Pubkeys folgen, reduziert dies die Sync-Bandbreite von Megabytes auf Kilobytes. Die Implementierung integriert sich mit RelayPool und SubscriptionManager und ermöglicht automatische effiziente Synchronisation über alle verbundenen Relays.&lt;/p>
&lt;p>&lt;strong>Low-Data-Modus&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3549">PR #3549&lt;/a> fügt Funktionen zur Mobilfunk-Dateneinsparung hinzu, die auf Nutzerfeedback über Bandbreitenverbrauch reagieren. Der Modus deaktiviert automatisches Bildladen, Video-Prefetching und reduziert Abonnement-Limits. Nutzer mit getakteten Verbindungen können Textinhalte durchsuchen, ohne Angst vor Überschreitung von Datenobergrenzen zu haben. Die Implementierung respektiert iOS-Low-Data-Modus-Einstellungen und bietet granulare Kontrollen für verschiedene Medientypen.&lt;/p>
&lt;p>&lt;strong>Datenbankoptimierungen&lt;/strong> - &lt;a href="https://github.com/damus-io/damus/pull/3548">PR #3548&lt;/a> überarbeitet nostrdb-Snapshot-Speicherung für schnellere Abfragen und reduzierten Speicherplatzbedarf. Die Optimierung ändert, wie Datenbank-Snapshots auf Disk persistiert werden, und verbessert sowohl die Leseleistung als auch die Schreibverstärkung. Dies behebt Beschwerden über Batterieentleerung von Nutzern mit großen Event-Datenbanken.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir über dein Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns über NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #5</title><link>https://nostrcompass.org/de/newsletters/2026-01-13-newsletter/</link><pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-01-13-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Leitfaden für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Bitchat durchläuft ein professionelles Sicherheitsaudit von Cure53, derselben Firma, die Signal und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> geprüft hat, wobei bereits über 17 PRs mit Fixes für kritische Befunde gemergt wurden. &lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71&lt;/a> wurde gemergt und bringt adressierbare Video-Events ins Protokoll. Ein Post-Quantum-Kryptographie-NIP eröffnet die Diskussion über die Absicherung von Nostr gegen zukünftige Quantenangriffe. Amethyst v1.05.0 liefert Lesezeichenlisten, Sprachnachrichten und eine frühe Desktop-Version, während Nostur v1.25.3 &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-DMs mit Reaktionen und Antworten verbessert. Bei den Libraries erweitert rust-nostr die &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a>-Unterstützung auf SQLite- und LMDB-Backends, und NDK behebt einen Bug im Subscription-Tracking.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Leitfaden für Nostr.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Bitchat durchläuft ein professionelles Sicherheitsaudit von Cure53, derselben Firma, die Signal und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> geprüft hat, wobei bereits über 17 PRs mit Fixes für kritische Befunde gemergt wurden. &lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71&lt;/a> wurde gemergt und bringt adressierbare Video-Events ins Protokoll. Ein Post-Quantum-Kryptographie-NIP eröffnet die Diskussion über die Absicherung von Nostr gegen zukünftige Quantenangriffe. Amethyst v1.05.0 liefert Lesezeichenlisten, Sprachnachrichten und eine frühe Desktop-Version, während Nostur v1.25.3 &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-DMs mit Reaktionen und Antworten verbessert. Bei den Libraries erweitert rust-nostr die &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a>-Unterstützung auf SQLite- und LMDB-Backends, und NDK behebt einen Bug im Subscription-Tracking.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;h3 id="bitchat-schließt-cure53-sicherheitsaudit-ab">Bitchat schließt Cure53-Sicherheitsaudit ab&lt;/h3>
&lt;p>Bitchat, der iOS-verschlüsselte Messenger, der Nostr mit Cashu kombiniert, hat ein professionelles Sicherheitsaudit von Cure53 durchlaufen, einer der angesehensten Sicherheitsfirmen der Branche. Cure53 hat zuvor Signal, Mullvad VPN und insbesondere die &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>-Verschlüsselungsspezifikation geprüft, die das Fundament moderner privater Nostr-Nachrichten bildet.&lt;/p>
&lt;p>Das Audit fand mehr als 12 Sicherheitsprobleme (BCH-01-002 bis BCH-01-013). Das Bitchat-Team reagierte mit über 17 Pull Requests. Zu den wichtigsten Fixes gehören:&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> behebt sechs Stellen, an denen Diffie-Hellman-Shared-Secrets nach dem Key Agreement nicht gelöscht wurden, und stellt damit die Forward-Secrecy-Garantien wieder her. Wenn Secrets länger als nötig im Speicher verbleiben, könnte ein Memory-Dump oder Cold-Boot-Angriff vergangene Kommunikation kompromittieren.&lt;/p>
&lt;p>&lt;strong>Signaturverifizierung&lt;/strong> - Mehrere PRs härten die kryptographischen Verifizierungspfade und stellen sicher, dass Nachrichtenauthentizitätsprüfungen nicht durch fehlerhafte Eingaben umgangen werden können.&lt;/p>
&lt;p>&lt;strong>Thread-Sicherheit&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/929">PR #929&lt;/a> fügt Barrier-Synchronisation zu den Lesebestätigungs-Queues in NostrTransport hinzu und verhindert Race Conditions, die bei hohem Nachrichtenaufkommen zu Datenbeschädigung oder Abstürzen führen könnten.&lt;/p>
&lt;p>&lt;strong>Speichersicherheit&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/920">PR #920&lt;/a> optimiert den Nachrichtendeduplikator für bessere Leistung bei hohem Nachrichtendurchsatz und vermeidet gleichzeitig Speichererschöpfung.&lt;/p>
&lt;p>&lt;strong>Eingabevalidierung&lt;/strong> - &lt;a href="https://github.com/permissionlesstech/bitchat/pull/919">PR #919&lt;/a> härtet das Parsing von Hex-Strings, um Abstürze durch fehlerhafte Eingaben zu verhindern, ein häufiger Angriffsvektor für Denial-of-Service.&lt;/p>
&lt;p>Bitchat verarbeitet Cashu-Ecash, weshalb eine professionelle Sicherheitsüberprüfung unerlässlich ist. Das Audit folgt auf das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot&lt;/a>-Protokoll-Audit vom letzten Jahr und das NIP-44-Audit, das die Verschlüsselungsschicht verifizierte.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Gemergt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-71/">NIP-71&lt;/a>&lt;/strong> - Adressierbare Video-Events (&lt;a href="https://github.com/nostr-protocol/nips/pull/1669">#1669&lt;/a>) führt kinds 34235 (horizontales Video) und 34236 (vertikales Video) als adressierbare Events ein. Ein erforderlicher &lt;code>d&lt;/code>-Tag liefert eindeutige Identifikatoren, sodass Video-Metadaten aktualisiert werden können, ohne das gesamte Event neu zu veröffentlichen. Ein optionaler &lt;code>origin&lt;/code>-Tag verfolgt Importquellen. Bereits in Amethyst und nostrvine implementiert.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Post-Quantum-Kryptographie&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2185">PR #2185&lt;/a> schlägt vor, quantenresistente kryptographische Algorithmen zu Nostr hinzuzufügen. Die Spezifikation führt ML-DSA-44 und Falcon-512 für digitale Signaturen ein und zielt auf „hochwertige Events&amp;quot; wie Anwendungen und Autoritäten ab, nicht auf einzelne Benutzer. Während die symmetrische Verschlüsselung von &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> (ChaCha20) quantenresistent ist, verwendet der Schlüsselaustausch secp256k1 ECDH, das anfällig für Shors Algorithmus ist. Der Vorschlag enthält ML-KEM für Key Agreement, um diese Lücke zu schließen. Dies ist ein Vorschlag im Frühstadium, der die Diskussion über Krypto-Agilität für Nostrs langfristige Sicherheit eröffnet.&lt;/li>
&lt;li>&lt;strong>BOLT12 für NIP-47&lt;/strong> - Nach 137 Kommentaren und ausführlicher Diskussion entschied die Community, dass BOLT12-Offers eine eigene Spezifikation verdienen, anstatt &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> zu erweitern. BOLT12-Offers bieten erhebliche Verbesserungen gegenüber BOLT11-Invoices, darunter Wiederverwendbarkeit, bessere Privatsphäre durch Blinded Paths und optionale Zahlungsinformationen. Das neue NIP wird Methoden wie &lt;code>make_offer&lt;/code>, &lt;code>pay_offer&lt;/code> und &lt;code>list_offers&lt;/code> für Nostr Wallet Connect-Implementierungen definieren.&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> schlägt kinds 32100 für Musiktracks und 32101 für Podcast-Episoden vor und gibt Audioinhalten die gleiche erstklassige Behandlung, die NIP-71 für Video bietet. Derzeit verwenden Audioplattformen wie Wavlake, Zapstr und Stemstr jeweils proprietäre Event-Formate, was das Ökosystem fragmentiert. Ein gemeinsamer Standard würde Interoperabilität ermöglichen, sodass Benutzer Audio von jedem kompatiblen Client entdecken und abspielen können.&lt;/li>
&lt;li>&lt;strong>NIP-A3 Universal Payment Targets&lt;/strong> - &lt;a href="https://github.com/nostr-protocol/nips/pull/2119">PR #2119&lt;/a> schlägt kind 10133 Events vor, die RFC-8905 &lt;code>payto:&lt;/code>-URIs verwenden, um Zahlungsoptionen über mehrere Netzwerke hinweg bereitzustellen. Anstatt separate Event-Kinds für Bitcoin, Lightning, Cashu oder traditionelle Zahlungswege zu erstellen, ermöglicht diese Abstraktion Clients, standardisierte Tags zu parsen und native Zahlungs-Handler aufzurufen. Der Ansatz ist zukunftssicher, da neue Zahlungsmethoden nur ein &lt;code>payto:&lt;/code>-URI-Schema benötigen.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-vertiefung-nip-51-und-nip-65">NIP-Vertiefung: NIP-51 und NIP-65&lt;/h2>
&lt;p>Diese Woche behandeln wir zwei NIPs, die Benutzereinstellungen speichern: NIP-51 zum Organisieren von Inhalten und NIP-65 zum Organisieren von Relay-Verbindungen. Beide verwenden ersetzbare Events, was bedeutet, dass jede neue Veröffentlichung die vorherige Version überschreibt.&lt;/p>
&lt;h3 id="nip-51detopicsnip-51-listen">&lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a>: Listen&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/51.md">NIP-51&lt;/a> definiert mehrere Listentypen zum Organisieren von Referenzen auf Events, Benutzer, Hashtags und andere Inhalte. Amethyst v1.05.0 fügt Lesezeichen-Unterstützung hinzu, was dies zu einem guten Zeitpunkt macht, um zu verstehen, wie Listen funktionieren.&lt;/p>
&lt;p>Die Spezifikation definiert mehrere List-Kinds, die jeweils einem anderen Zweck dienen. Kind 10000 ist deine Stummschaltungsliste zum Ausblenden von Benutzern, Threads oder Wörtern. Kind 10001 pinnt Events, um sie auf deinem Profil hervorzuheben. Kind 30003 speichert Lesezeichen, was Amethyst jetzt unterstützt. Andere Kinds verwalten Follow-Sets (30000), kuratierte Artikelsammlungen (30004), Hashtag-Interessen (30015) und benutzerdefinierte Emoji-Sets (30030).&lt;/p>
&lt;p>Listen referenzieren Inhalte über Tags. Eine Lesezeichenliste verwendet &lt;code>e&lt;/code>-Tags für spezifische Events und &lt;code>a&lt;/code>-Tags für adressierbaren Inhalt wie Artikel:&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>Der &lt;code>d&lt;/code>-Tag liefert einen eindeutigen Identifikator, sodass du mehrere Lesezeichen-Sets wie „saved-articles&amp;quot;, „read-later&amp;quot; oder „favorites&amp;quot; unter demselben Kind pflegen kannst.&lt;/p>
&lt;p>Listen unterstützen sowohl öffentliche als auch private Einträge. Öffentliche Einträge erscheinen im Tags-Array und sind für jeden sichtbar, der das Event abruft. Private Einträge kommen in das &lt;code>content&lt;/code>-Feld und werden mit &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a> an dich selbst verschlüsselt. Diese duale Struktur ermöglicht es dir, öffentliche Lesezeichen zu führen und gleichzeitig private Notizen anzuhängen, oder eine Stummschaltungsliste zu pflegen, ohne preiszugeben, wen du stummgeschaltet hast. Um an dich selbst zu verschlüsseln, verwende NIP-44 mit deinem eigenen pubkey als Empfänger.&lt;/p>
&lt;p>Die 10000er-Serie-Kinds sind ersetzbar, was bedeutet, dass Relays nur ein Event pro pubkey behalten. Die 30000er-Serie sind parametrisiert ersetzbar und erlauben ein Event pro pubkey- und &lt;code>d&lt;/code>-Tag-Kombination. In beiden Fällen bedeutet das Aktualisieren einer Liste das Veröffentlichen eines vollständigen Ersatzes; du kannst keine inkrementellen Änderungen senden. Clients sollten unbekannte Tags beim Ändern von Listen beibehalten, um das Überschreiben von Daten zu vermeiden, die von anderen Anwendungen hinzugefügt wurden.&lt;/p>
&lt;h3 id="nip-65detopicsnip-65-relay-listen-metadaten">&lt;a href="https://nostrcompass.org/de/topics/nip-65/">NIP-65&lt;/a>: Relay-Listen-Metadaten&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/65.md">NIP-65&lt;/a> definiert kind 10002 Events, die bekannt geben, welche Relays ein Benutzer zum Lesen und Schreiben bevorzugt. Dies hilft anderen Benutzern und Clients, deine Inhalte zu finden.&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>Jeder &lt;code>r&lt;/code>-Tag enthält eine Relay-URL und einen optionalen Marker. Ein &lt;code>write&lt;/code>-Marker bezeichnet deine Outbox: Relays, auf denen du deine Inhalte veröffentlichst. Ein &lt;code>read&lt;/code>-Marker bezeichnet deine Inbox: Relays, auf denen du nach Erwähnungen, Antworten und Tags schaust. Das Weglassen des Markers zeigt beides an.&lt;/p>
&lt;p>Wenn Alice Bobs Beiträge finden will, ruft ihr Client Bobs kind 10002 ab, extrahiert seine Write-Relays (seine Outbox) und abonniert dort. Wenn Alice auf Bob antwortet, veröffentlicht ihr Client auf seinen Read-Relays (seiner Inbox), damit er die Erwähnung sieht. Dieses relay-bewusste Routing ist das „Outbox-Modell&amp;quot;, und es verteilt Benutzer auf viele Relays, anstatt alle auf wenigen zentralen Servern zu konzentrieren.&lt;/p>
&lt;p>NIP-65 behandelt das Routing öffentlicher Inhalte, aber private Nachrichten verwenden eine separate Liste. &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> definiert kind 10050 für DM-Inbox-Relays und verwendet &lt;code>relay&lt;/code>-Tags anstelle von &lt;code>r&lt;/code>-Tags. Beim Senden einer privaten Nachricht suchen Clients nach dem kind 10050 Event des Empfängers und veröffentlichen dort die verschlüsselte Gift-Wrapped-Nachricht. Diese Trennung hält das DM-Routing vom Routing öffentlicher Inhalte getrennt und ermöglicht es Benutzern, verschiedene Relays für private und öffentliche Kommunikation anzugeben.&lt;/p>
&lt;p>Das Outbox-Modell verbessert die Zensurresistenz, da kein einzelnes Relay die Inhalte aller speichern oder bereitstellen muss. Clients halten Verbindungen zu Relays aufrecht, die in den NIP-65-Events ihrer gefolgten Benutzer aufgelistet sind, und verbinden sich dynamisch mit neuen Relays, wenn sie neue Konten entdecken. NIP-65 ergänzt die Relay-Hints, die in anderen NIPs zu finden sind. Wenn du jemanden mit &lt;code>[&amp;quot;p&amp;quot;, &amp;quot;pubkey&amp;quot;, &amp;quot;wss://hint.relay&amp;quot;]&lt;/code> taggst, teilt der Hint Clients mit, wo sie nach dieser spezifischen Referenz suchen sollen. NIP-65 liefert die autoritative, vom Benutzer kontrollierte Liste, während Hints Abkürzungen bieten, die in einzelne Events eingebettet sind.&lt;/p>
&lt;p>Für beste Ergebnisse halte deine Relay-Liste aktuell, da veraltete Einträge dich schwerer auffindbar machen. Die Spezifikation empfiehlt zwei bis vier Relays pro Kategorie. Das Auflisten zu vieler Relays belastet jeden Client, der deine Inhalte abrufen möchte, verlangsamt deren Erfahrung und erhöht die Netzwerklast. Clients cachen NIP-65-Events und aktualisieren sie regelmäßig, um auf dem neuesten Stand zu bleiben, wenn Benutzer ihre Einstellungen ändern.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Amethyst v1.05.0&lt;/strong> - Der beliebte Android-Client &lt;a href="https://github.com/vitorpamplona/amethyst/releases">liefert ein großes Update&lt;/a> mit mehreren Hauptfunktionen. &lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a> kind 30003 Lesezeichenlisten ermöglichen es Benutzern, Beiträge zur späteren Referenz zu speichern und über kompatible Clients hinweg zu synchronisieren. Sprachnachrichten funktionieren jetzt in DMs und normalen Beiträgen mit Wellenformvisualisierung, Medienserver-Auswahl und Upload-Fortschrittsanzeigen. &lt;a href="https://nostrcompass.org/de/topics/web-of-trust/">Web of Trust&lt;/a>-Scores sind jetzt in der Oberfläche sichtbar und helfen Benutzern zu verstehen, wie der Algorithmus Konten relativ zu ihrem sozialen Graphen bewertet. Die &lt;a href="https://nostrcompass.org/de/topics/quartz/">Quartz&lt;/a>-Datenbankmigration verbessert die Abfrageleistung als Teil der von OpenSats finanzierten Kotlin-Multiplatform-Arbeit. Ein frühes Desktop-Release bringt Amethyst über Compose Multiplatform auf Windows, macOS und Linux und teilt dieselbe Codebasis wie die Android-App. Neue Benutzer-Onboarding-Flows erleichtern die Erfahrung für erstmalige Nostr-Benutzer.&lt;/p>
&lt;p>&lt;strong>Nostur v1.25.3&lt;/strong> - Der iOS- und macOS-Client &lt;a href="https://github.com/nostur-com/nostur-ios-public/releases">konzentriert sich auf private Nachrichten&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a>-Verbesserungen. DM-Konversationen unterstützen jetzt Reaktionen und Antworten und bringen die Interaktivität öffentlicher Beiträge in verschlüsselte Nachrichten. Die Konversationsansicht wurde mit besserem Threading überarbeitet, sodass Mehrfachnachrichtenaustausche leichter zu verfolgen sind, und Zeitstempel zeigen „Zeit her&amp;quot; in der DM-Liste für schnelles Scannen. Desktop-Benutzer erhalten Multi-Spalten-Layouts zum gleichzeitigen Anzeigen mehrerer Feeds oder Konversationen. &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signer-Unterstützung ermöglicht es Benutzern, ihre privaten Schlüssel in dedizierten Signer-Apps wie Amber oder nsec.app aufzubewahren. Zusätzliche Fixes stellen die DM-Funktionalität auf iOS 15 und iOS 16 wieder her, beheben Benachrichtigungsverzögerungen und fügen die Möglichkeit hinzu, zu konfigurieren, welche Relays veröffentlichte DMs erhalten.&lt;/p>
&lt;h2 id="bemerkenswerte-code--und-dokumentationsänderungen">Bemerkenswerte Code- und Dokumentationsänderungen&lt;/h2>
&lt;p>&lt;em>Dies sind offene Pull Requests und Arbeiten im Frühstadium, perfekt um Feedback zu erhalten, bevor sie gemergt werden. Wenn dich etwas interessiert, erwäge einen Review oder Kommentar!&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> behebt eine SQL-Injection-Schwachstelle in der persönlichen Android-Relay-App. Das Problem ermöglichte es fehlerhaften Event-Daten, beliebige Datenbankabfragen auszuführen, ein ernstes Problem für jede App, die nicht vertrauenswürdige Eingaben speichert und verarbeitet. Der Fix bereinigt alle Datenbankoperationen ordnungsgemäß mit parametrisierten Abfragen. Es wurde noch kein Release getaggt, sodass Benutzer auf die nächste Version warten oder aus dem Quellcode bauen müssen. &lt;a href="https://github.com/greenart7c3/Citrine/pull/90">PR #90&lt;/a> optimiert die ContentProvider-Abfrageleistung mit Filterung und Paginierung auf Datenbankebene und reduziert die Latenz, wenn externe Apps wie Amethyst über Androids Inter-Process-Communication-Layer auf Citrines Event-Datenbank zugreifen.&lt;/p>
&lt;h3 id="rust-nostr-library">rust-nostr (Library)&lt;/h3>
&lt;p>Die &lt;a href="https://nostrcompass.org/de/topics/nip-62/">NIP-62&lt;/a> (Vanish Requests) Unterstützung wird über die Datenbank-Backends von rust-nostr hinweg erweitert. &lt;a href="https://github.com/rust-nostr/nostr/pull/1180">PR #1180&lt;/a>, vor zwei Wochen gemergt, fügte NIP-62-Unterstützung zu SQLite hinzu und behandelt &lt;code>ALL_RELAYS&lt;/code> Vanish Requests, da die Datenbankschicht keine spezifischen Relay-URLs kennt. &lt;a href="https://github.com/rust-nostr/nostr/pull/1210">PR #1210&lt;/a> erweitert dies auf das LMDB-Backend und stellt sicher, dass Vanish Requests auf der Festplatte persistiert werden und Relay-Neustarts überleben. Eine IndexedDB-Implementierung für Browser-Umgebungen ist ebenfalls in Arbeit. Zusammen geben diese Änderungen Entwicklern konsistente NIP-62-Unterstützung über SQLite, LMDB und bald Browser-Storage hinweg.&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> behebt einen Bug im seenEvents-Tracking-System. Das Problem führte dazu, dass bestimmte Subscription-Muster Events fälschlicherweise als bereits gesehen markierten, was zu verpassten Inhalten führte, wenn Benutzer neue Subscriptions öffneten oder sich wieder mit Relays verbanden. Der Fix stellt sicher, dass Events über Subscription-Lebenszyklen hinweg korrekt verfolgt werden, was besonders wichtig für Anwendungen ist, die basierend auf Benutzernavigation dynamisch subscriben und unsubscriben. NDK wurde auf beta.70 aktualisiert mit diesem Fix.&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> behebt einen Startabsturz, der iOS 17-Benutzer betraf. Das Problem stammte von einem arithmetischen Überlauf in &lt;code>NdbUseLock&lt;/code>, einer Fallback-Klasse, die verwendet wird, weil Swift Mutexes auf iOS 17 nicht verfügbar sind. Der Fix ersetzt den vorherigen Synchronisationsansatz durch &lt;code>NSLock&lt;/code>, das auf iOS 17 verfügbar ist und die verbleibenden Race Conditions ordnungsgemäß behandelt. iOS 18+-Benutzer waren nicht betroffen, da sie Zugang zur nativen Swift Mutex-Implementierung haben.&lt;/p>
&lt;p>Separat landete eine Reihe von Longform-Artikel-Verbesserungen über &lt;a href="https://github.com/damus-io/damus/pull/3509">PR #3509&lt;/a>. Lesefortschrittsbalken verfolgen deine Position durch Artikel, geschätzte Lesezeiten erscheinen auf Vorschauen, und Sepia-Modus mit einstellbaren Zeilenhöheneinstellungen bieten komfortableres Lesen. Der Fokusmodus blendet die Navigations-Chrome beim Scrollen automatisch aus und stellt sie bei Tippen wieder her, was visuelle Ablenkungen für ablenkungsfreies Lesen reduziert. Mehrere Fixes beheben die Bildanzeige in Markdown-Inhalten und stellen sicher, dass Artikel oben statt mittendrin geöffnet werden.&lt;/p>
&lt;h3 id="zapstream-live-streaming">Zap.stream (Live-Streaming)&lt;/h3>
&lt;p>YouTube- und Kick-Chat-Integration verbindet Nachrichten von externen Streaming-Plattformen mit Nostr. Streamer, die zu YouTube, Kick und Zap.stream multicasten, können jetzt alle Chat-Nachrichten in einer einheitlichen Ansicht sehen, wobei Nachrichten von jeder Plattform neben nativen Nostr-Kommentaren erscheinen. Dies beseitigt einen großen Reibungspunkt für Creator, die Nostr zum Streamen nutzen möchten, aber Audiences auf etablierten Plattformen nicht aufgeben können. Die Integration zeigt an, von welcher Plattform jede Nachricht stammt, und übernimmt den Authentifizierungsflow zum Verbinden externer Konten.&lt;/p>
&lt;h3 id="chachi-nip-29-groups">Chachi (NIP-29 Groups)&lt;/h3>
&lt;p>Der &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> Gruppen-Chat-Client lieferte diese Woche sechs gemergte PRs. Ein Sicherheitsupdate adressiert &lt;a href="https://github.com/purrgrammer/chachi/pull/89">CVE-2026-22029&lt;/a>, eine XSS-Schwachstelle in react-router, die Open-Redirect-Angriffe ermöglichen könnte; der Fix aktualisiert auf react-router-dom 6.30.0. &lt;a href="https://github.com/purrgrammer/chachi/pull/92">PR #92&lt;/a> fügt paginiertes Nachrichten-Laden für Gruppenchats hinzu, sodass lange Konversationen inkrementell statt auf einmal geladen werden. &lt;a href="https://github.com/purrgrammer/chachi/pull/91">PR #91&lt;/a> behebt mehrere NIP-29-Bugs, darunter eine Race Condition, die beim ersten Laden zu leeren Gruppennamen führte, und undefinierte Teilnehmerlisten, die Mitgliederansichten zum Absturz brachten. Die Übersetzungsabdeckung umfasst jetzt alle 31 unterstützten Sprachen mit je 1060 Schlüsseln.&lt;/p>
&lt;h3 id="0xchat-messaging">0xchat (Messaging)&lt;/h3>
&lt;p>Der Messaging-Client im Telegram-Stil verbesserte die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Compliance, indem Signer-Paketnamen bei Verwendung externer Signatur-Apps ordnungsgemäß gespeichert werden, was Probleme behebt, bei denen die App nach Neustarts den Überblick verlor, welcher Signer verwendet werden sollte. Die NIP-17-Antwortbehandlung enthält jetzt korrekt den &lt;code>e&lt;/code>-Tag für Threading und stellt sicher, dass Antworten über Clients hinweg im richtigen Konversationskontext erscheinen. Leistungsoptimierungen beheben Scroll-Lag in Nachrichtenlisten, ein häufiger Schmerzpunkt beim Laden langer Chat-Verläufe. Entwürfe werden automatisch gespeichert, um Nachrichtenverlust zu verhindern, wenn du mitten in der Komposition wegnavigierst, und Dateispeicheroptionen enthalten jetzt Standard-FileDropServer- und BlossomServer-Endpoints.&lt;/p>
&lt;h3 id="primal-ios">Primal (iOS)&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signer-Unterstützung landet auf iOS über &lt;a href="https://github.com/PrimalHQ/primal-ios-app/pull/184">PR #184&lt;/a> und vervollständigt den plattformübergreifenden Rollout, der vor einigen Wochen mit Android begann. Benutzer können jetzt ihre privaten Schlüssel in dedizierten Bunker-Diensten wie nsec.app oder selbst gehosteten nsecBunker-Instanzen aufbewahren und sich über Nostr-Relays verbinden, um Events zu signieren, ohne Schlüssel der Client-App auszusetzen. Diese Trennung verbessert die Sicherheitslage für Benutzer, die Primals Funktionen nutzen möchten, während sie strengere Schlüsselverwaltungspraktiken beibehalten. Die Implementierung enthält QR-Code-Scanning für Bunker-Verbindungs-URIs und übernimmt den NIP-46-Request/Response-Flow über verschlüsselte Relay-Nachrichten.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir über dein Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Melde dich per NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #4</title><link>https://nostrcompass.org/de/newsletters/2026-01-07-newsletter/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2026-01-07-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch das Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Primal Android liefert &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote Signing und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> lokale Signer-Unterstützung aus und wird damit zu einem vollwertigen Signing-Hub für andere Android-Apps. Das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot Protocol&lt;/a>-Team hat Ergebnisse eines Sicherheitsaudits mit 18 zusammengeführten PRs zur Härtung von &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-basierter verschlüsselter Kommunikation bearbeitet. Citrine erreicht v1.0 und Applesauce veröffentlicht v5.0 für seine gesamte Bibliothekssuite. TENEX baut KI-Agenten-Überwachung auf Nostr aus, und Jumble fügt intelligentes Relay-Pooling hinzu. Eine NIP-55-Spezifikationskorrektur klärt die &lt;code>nip44_encrypt&lt;/code>-Rückgabefelder, und ein &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a>-PR schlägt Query-Expression-Erweiterungen für erweiterte Suche vor. In unserem Deep Dive erklären wir &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>: warum die Legacy-Verschlüsselung Sicherheitsmängel hat und wie der moderne Ersatz diese behebt.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Wegweiser durch das Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Primal Android liefert &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote Signing und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> lokale Signer-Unterstützung aus und wird damit zu einem vollwertigen Signing-Hub für andere Android-Apps. Das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot Protocol&lt;/a>-Team hat Ergebnisse eines Sicherheitsaudits mit 18 zusammengeführten PRs zur Härtung von &lt;a href="https://nostrcompass.org/de/topics/mls/">MLS&lt;/a>-basierter verschlüsselter Kommunikation bearbeitet. Citrine erreicht v1.0 und Applesauce veröffentlicht v5.0 für seine gesamte Bibliothekssuite. TENEX baut KI-Agenten-Überwachung auf Nostr aus, und Jumble fügt intelligentes Relay-Pooling hinzu. Eine NIP-55-Spezifikationskorrektur klärt die &lt;code>nip44_encrypt&lt;/code>-Rückgabefelder, und ein &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a>-PR schlägt Query-Expression-Erweiterungen für erweiterte Suche vor. In unserem Deep Dive erklären wir &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>: warum die Legacy-Verschlüsselung Sicherheitsmängel hat und wie der moderne Ersatz diese behebt.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;p>&lt;strong>Primal Android wird zum vollständigen Signing-Hub&lt;/strong> - &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">Version 2.6.18&lt;/a> fügt sowohl &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote Signing als auch &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> lokales Signing hinzu und macht Primal damit zu einem vollständigen Signer für andere Nostr-Apps. Remote Signing über NIP-46 ermöglicht Nutzern die Verbindung zu Bunker-Diensten über Nostr-Relays, wobei die Schlüssel komplett vom Gerät ferngehalten werden. Lokales Signing über NIP-55 macht Primal als Android Content Provider verfügbar, sodass Apps wie Amethyst oder Citrine Signaturen anfordern können, ohne jemals den privaten Schlüssel zu berühren. &lt;a href="https://github.com/PrimalHQ/primal-android-app/pull/839">Mehrere Folge-PRs&lt;/a> beheben Kompatibilitätsprobleme mit der NIP-55-Spezifikationsanforderung für Hex-Pubkeys und verbessern das Parsen fehlerhafter &lt;code>nostrconnect://&lt;/code>-URIs. Das Release beinhaltet außerdem Media-Pre-Caching für flüssigeres Scrollen, verbesserte Thread-Ladezeiten und Avatar-Pre-Caching.&lt;/p>
&lt;p>&lt;strong>Marmot Protocol härtet Sicherheit nach Audit&lt;/strong> - Das &lt;a href="https://github.com/marmot-protocol/mdk">Marmot Development Kit&lt;/a> (mdk), das &lt;a href="https://nostrcompass.org/de/topics/nip-104/">NIP-104&lt;/a> MLS-basierte Ende-zu-Ende-verschlüsselte Kommunikation implementiert, erhielt diese Woche umfangreiche Sicherheitskorrekturen. Achtzehn zusammengeführte Pull Requests behoben Audit-Ergebnisse, darunter: &lt;a href="https://github.com/marmot-protocol/mdk/pull/97">Hash-Verifizierung für verschlüsselte Gruppenbilder&lt;/a> zur Verhinderung von Blob-Substitutionsangriffen auf Speicherebene, &lt;a href="https://github.com/marmot-protocol/mdk/pull/110">Paginierung für ausstehende Willkommensnachrichten&lt;/a> zur Verhinderung von Speichererschöpfung, &lt;a href="https://github.com/marmot-protocol/mdk/pull/112">MLS Group ID-Lecks in Fehlermeldungen&lt;/a>, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/98">Base64-Encoding-Durchsetzung&lt;/a> für Key Packages. Die &lt;a href="https://github.com/marmot-protocol/marmot/pull/20">Marmot-Spezifikation selbst wurde aktualisiert&lt;/a> mit MIP-04 v2-Versionierung und Sicherheitsverbesserungen. Aktive PRs bearbeiten weiterhin Nonce-Wiederverwendung, Secret-Zeroization und Cache-Pollution-Vektoren.&lt;/p>
&lt;p>&lt;strong>Nostrability verfolgt Relay-Hint-Unterstützung&lt;/strong> - Ein neuer &lt;a href="https://github.com/nostrability/nostrability/issues/270">Relay-Hints-Kompatibilitätstracker&lt;/a> dokumentiert, wie Clients Relay-Hints im gesamten Ökosystem konstruieren und konsumieren. Der Tracker zeigt, dass die meisten Clients mittlerweile Hints gemäß &lt;a href="https://nostrcompass.org/de/topics/nip-10/">NIP-10&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> konstruieren, der Konsum jedoch stark variiert: einige Clients fügen Hints in ausgehende Events ein, nutzen aber eingehende Hints nicht zum Abrufen. Sechs Clients erhielten den &amp;ldquo;Full&amp;rdquo;-Tier-Status für vollständige Implementierung. Der Tracker ist nützlich für Entwickler, die Interoperabilität prüfen, und für Nutzer, die sich fragen, warum manche Clients Inhalte finden, die andere nicht finden können.&lt;/p>
&lt;p>&lt;strong>Nostria 2.0 liefert plattformübergreifende Feature-Überarbeitung&lt;/strong> - Der &lt;a href="https://nostria.app">Nostria&lt;/a>-Client &lt;a href="#ZgotmplZ">veröffentlichte Version 2.0&lt;/a> am 30. Dezember mit signifikanten Erweiterungen für iOS (TestFlight), Android (Play Store), Web und Windows. Das Release fügt native Musikunterstützung mit Playlist-Erstellung, Track-Upload, Zap-basierten Künstlerzahlungen und einem WinAmp-ähnlichen Player mit funktionalem Equalizer hinzu. Live-Streaming erhält Game-API-Integration, die während Gameplay-Streams reichhaltige Metadaten anzeigt. Eine neue Zusammenfassungsfunktion generiert stündliche, tägliche oder wöchentliche Aktivitätsdigests als komprimierte Timeline-Ansichten. Der Discover-Bereich bietet kuratierte Listen zum Finden von Inhalten und Profilen. Medienveröffentlichung wird mit automatischer Kurzform-Post-Generierung für Cross-Client-Auffindbarkeit vereinfacht. Remote-Signer-Verbindungen funktionieren jetzt per QR-Code-Scan ohne manuelle Konfiguration. Die Profilerkennung adressiert ein häufiges Nostr-Problem: Wenn Nutzer zwischen Relays wechseln, ohne ihre Metadaten mitzunehmen, findet Nostria ihr Profil und veröffentlicht es erneut auf ihren aktuellen Relays. Premium-Abonnenten erhalten YouTube-Kanal-Integration, private Memos, Analyse-Dashboards und automatische Following-Listen-Backups mit Merge/Restore-Optionen.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen im &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Zusammengeführt:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>&lt;/strong> - Das Rückgabefeld für die &lt;code>nip44_encrypt&lt;/code>-Methode wurde korrigiert (&lt;a href="https://github.com/nostr-protocol/nips/pull/2184">#2184&lt;/a>). Android-Signer müssen den verschlüsselten Payload jetzt im &lt;code>signature&lt;/code>-Feld zurückgeben (passend zu &lt;code>nip44_decrypt&lt;/code>) statt in einem separaten Feld. Dies bringt die Spezifikation mit bestehenden Implementierungen in Amber und Primal in Einklang.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Offene PRs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/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>) schlägt vor, NIP-50-Suche mit strukturierten Query-Ausdrücken zu erweitern. Der PR fügt Operatoren wie &lt;code>kind:1&lt;/code>, &lt;code>author:npub1...&lt;/code> und boolesche Kombinationen (&lt;code>AND&lt;/code>, &lt;code>OR&lt;/code>, &lt;code>NOT&lt;/code>) hinzu, die präzisere Suchabfragen jenseits einfacher Textsuche ermöglichen. Dies würde Clients erlauben, erweiterte Suchoberflächen zu erstellen und dabei Rückwärtskompatibilität mit einfachen Suchstrings zu wahren.&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-04-und-nip-44">NIP Deep Dive: NIP-04 und NIP-44&lt;/h2>
&lt;p>Diese Woche behandeln wir Nostrs Verschlüsselungsstandards: das Legacy-NIP-04, dem du noch begegnen wirst, und seinen modernen Ersatz NIP-44, der kritische Sicherheitsmängel behebt.&lt;/p>
&lt;h3 id="nip-04detopicsnip-04-verschlüsselte-direktnachrichten-legacy">&lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a>: Verschlüsselte Direktnachrichten (Legacy)&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/04.md">NIP-04&lt;/a> war Nostrs erster Versuch für verschlüsselte Kommunikation unter Verwendung von kind 4 Events. Obwohl einfach zu implementieren, hat es bekannte Sicherheitsschwächen und wurde zugunsten von NIP-44 als veraltet erklärt.&lt;/p>
&lt;p>&lt;strong>Wie es funktioniert:&lt;/strong> NIP-04 verwendet ECDH (Elliptic Curve Diffie-Hellman), um ein gemeinsames Geheimnis zwischen Sender und Empfänger abzuleiten, und verschlüsselt dann mit 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>Der Verschlüsselungsablauf:&lt;/p>
&lt;ol>
&lt;li>Gemeinsamen Punkt berechnen: &lt;code>shared = ECDH(sender_privkey, recipient_pubkey)&lt;/code>&lt;/li>
&lt;li>Schlüssel ableiten: &lt;code>key = SHA256(shared_x_coordinate)&lt;/code>&lt;/li>
&lt;li>Zufälligen 16-Byte IV generieren&lt;/li>
&lt;li>Verschlüsseln: &lt;code>ciphertext = AES-256-CBC(key, iv, plaintext)&lt;/code>&lt;/li>
&lt;li>Inhalt formatieren: &lt;code>base64(ciphertext)?iv=base64(iv)&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Sicherheitsprobleme:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Keine Authentifizierung:&lt;/strong> AES-CBC bietet Vertraulichkeit, aber keine Integrität. Ein Angreifer, der ein Relay kontrolliert, könnte Ciphertext-Bits modifizieren und vorhersagbare Änderungen am Klartext verursachen (Bit-Flipping-Angriffe).&lt;/li>
&lt;li>&lt;strong>IV im Klartext:&lt;/strong> Der Initialisierungsvektor wird zusammen mit dem Ciphertext übertragen, und CBC-Modus mit vorhersagbaren IVs ermöglicht Chosen-Plaintext-Angriffe.&lt;/li>
&lt;li>&lt;strong>Keine Padding-Validierung:&lt;/strong> Implementierungen unterscheiden sich darin, wie sie PKCS#7-Padding handhaben, was Padding-Oracle-Angriffe ermöglichen kann.&lt;/li>
&lt;li>&lt;strong>Metadaten-Exposition:&lt;/strong> Der Sender-Pubkey, Empfänger-Pubkey und Zeitstempel sind alle für Relays sichtbar.&lt;/li>
&lt;li>&lt;strong>Schlüsselwiederverwendung:&lt;/strong> Das gleiche gemeinsame Geheimnis wird für alle Nachrichten zwischen zwei Parteien verwendet, für immer.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Warum es noch existiert:&lt;/strong> Viele ältere Clients und Relays unterstützen nur NIP-04. Du wirst ihm begegnen, wenn du mit Legacy-Systemen interagierst. Signer wie Amber und Apps wie Primal implementieren weiterhin &lt;code>nip04_encrypt&lt;/code>/&lt;code>nip04_decrypt&lt;/code> für Rückwärtskompatibilität.&lt;/p>
&lt;h3 id="nip-44detopicsnip-44-versionierte-verschlüsselung">&lt;a href="https://nostrcompass.org/de/topics/nip-44/">NIP-44&lt;/a>: Versionierte Verschlüsselung&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/44.md">NIP-44&lt;/a> ist der moderne Verschlüsselungsstandard, der entwickelt wurde, um NIP-04s bekannte Mängel zu beheben. Ein Cure53-Sicherheitsaudit von NIP-44-Implementierungen identifizierte 10 Probleme (einschließlich Timing-Angriffe und Forward-Secrecy-Bedenken), die vor Finalisierung der Spezifikation behoben wurden. Es verwendet ChaCha20-Poly1305 mit korrekter Schlüsselableitung und authentifizierter Verschlüsselung.&lt;/p>
&lt;p>&lt;strong>Wesentliche Verbesserungen gegenüber NIP-04:&lt;/strong>&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th style="text-align: left">Aspekt&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">Authentifizierung&lt;/td>
 &lt;td style="text-align: left">Keine&lt;/td>
 &lt;td style="text-align: left">Poly1305 MAC&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Schlüsselableitung&lt;/td>
 &lt;td style="text-align: left">SHA256(shared_x)&lt;/td>
 &lt;td style="text-align: left">HKDF mit 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, Muster-Wiederverwendung&lt;/td>
 &lt;td style="text-align: left">24-Byte zufällige Nonce&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Padding&lt;/td>
 &lt;td style="text-align: left">PKCS#7 (Länge sichtbar)&lt;/td>
 &lt;td style="text-align: left">Auf Zweierpotenz gepaddet&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td style="text-align: left">Versionierung&lt;/td>
 &lt;td style="text-align: left">Keine&lt;/td>
 &lt;td style="text-align: left">Versions-Byte-Prefix&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Verschlüsselungsablauf:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Conversation Key:&lt;/strong> Einen stabilen Schlüssel für jedes Sender-Empfänger-Paar ableiten:&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> Für jede Nachricht eine zufällige 32-Byte-Nonce generieren und Verschlüsselungs-/Authentifizierungsschlüssel ableiten:&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>Klartext padden:&lt;/strong> Auf die nächste Zweierpotenz auffüllen (Minimum 32 Bytes), um die Nachrichtenlänge zu 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>Verschlüsseln und authentifizieren:&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>Payload formatieren:&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>Versions-Byte:&lt;/strong> Das erste Byte (&lt;code>0x02&lt;/code>) zeigt die Verschlüsselungsversion an. Dies ermöglicht zukünftige Upgrades ohne Beschädigung bestehender Nachrichten. Version &lt;code>0x01&lt;/code> war ein früherer Entwurf, der nie breit eingesetzt wurde.&lt;/p>
&lt;p>&lt;strong>Entschlüsselung:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Base64 dekodieren, Versions-Byte auf &lt;code>0x02&lt;/code> prüfen&lt;/li>
&lt;li>Nonce (Bytes 1-32), Ciphertext und MAC (letzte 32 Bytes) extrahieren&lt;/li>
&lt;li>Conversation Key mit dem privaten Schlüssel des Empfängers und dem öffentlichen Schlüssel des Senders ableiten&lt;/li>
&lt;li>Message Keys aus Conversation Key und Nonce ableiten&lt;/li>
&lt;li>MAC vor der Entschlüsselung verifizieren (bei Ungültigkeiten ablehnen)&lt;/li>
&lt;li>Ciphertext entschlüsseln, Längen-Prefix extrahieren, ungepaddet Klartext zurückgeben&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Sicherheitseigenschaften:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Authentifizierte Verschlüsselung:&lt;/strong> Poly1305 MAC stellt sicher, dass jede Manipulation vor der Entschlüsselung erkannt wird&lt;/li>
&lt;li>&lt;strong>Forward Secrecy (partiell):&lt;/strong> Jede Nachricht verwendet eine einzigartige Nonce, sodass die Kompromittierung einer Nachricht keine anderen preisgibt. Allerdings offenbart die Kompromittierung eines privaten Schlüssels weiterhin alle vergangenen Nachrichten (kein Ratcheting).&lt;/li>
&lt;li>&lt;strong>Längenverbergung:&lt;/strong> Zweierpotenz-Padding verschleiert die exakte Nachrichtenlänge&lt;/li>
&lt;li>&lt;strong>Timing-Angriff-Resistenz:&lt;/strong> Konstantzeit-Vergleich für MAC-Verifizierung&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Verwendung in der Praxis:&lt;/strong> NIP-44 ist die Verschlüsselungsschicht für:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> private Direktnachrichten (innerhalb von Gift Wrap)&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote-Signer-Kommunikation&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Seal-Verschlüsselung&lt;/li>
&lt;li>&lt;a href="https://nostrcompass.org/de/topics/nip-104/">Marmot Protocol&lt;/a> Gruppennachrichten, wobei NIP-44 MLS-verschlüsselte Inhalte mit einem vom MLS-Exporter-Secret abgeleiteten Schlüssel umhüllt&lt;/li>
&lt;li>Jede Anwendung, die sichere Punkt-zu-Punkt-Verschlüsselung benötigt&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Migrationsempfehlung:&lt;/strong> Neue Anwendungen sollten ausschließlich NIP-44 verwenden. Für Rückwärtskompatibilität prüfe, ob der Client eines Kontakts NIP-44 unterstützt (über &lt;a href="https://nostrcompass.org/de/topics/nip-89/">NIP-89&lt;/a> App-Metadaten oder Relay-Unterstützung), bevor auf NIP-04 zurückgefallen wird. Beim Empfangen von Nachrichten versuche zuerst NIP-44-Entschlüsselung, dann falle auf NIP-04 für Legacy-Inhalte zurück.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Primal Android v2.6.18&lt;/strong> - Das &lt;a href="https://github.com/PrimalHQ/primal-android-app/releases/tag/2.6.18">vollständige Release&lt;/a> fügt &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a> Remote Signing und &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> lokales Signing hinzu und macht Primal damit zu einem Signing-Hub für andere Android-Apps. Leistungsverbesserungen umfassen Media-Pre-Caching, Avatar-Pre-Caching und schnelleres Thread-Laden. Bugfixes beheben Selbst-Erwähnungen in Bios, Media-Galerie-Abstürze und Stream-Titel-Fallbacks. Unter iOS verwendet Primal Hintergrund-Audiowiedergabe, um die App für den Empfang von NIP-46-Signaturanfragen aktiv zu halten; Nutzer können den Sound in den Einstellungen ändern oder komplett stummschalten.&lt;/p>
&lt;p>&lt;strong>Mostro v0.15.6&lt;/strong> - Das &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.15.6">neueste Release&lt;/a> der &lt;a href="https://nostrcompass.org/de/topics/nip-69/">NIP-69&lt;/a> P2P-Bitcoin-Trading-Plattform vervollständigt die Entwicklungsfonds-Implementierung mit Phase 4 Audit-Events. Dev-Fee-Zahlungen werden jetzt über kind 38383 Nostr-Events verfolgt, die nach jeder erfolgreichen Zahlung veröffentlicht werden, was Drittpartei-Verifizierung und Analysen ermöglicht. Betragsberechnungen wurden für Käufer/Verkäufer-Nachrichten korrigiert, und die Premium-Logik wurde mit der lnp2pbot-Referenzimplementierung abgeglichen.&lt;/p>
&lt;p>&lt;strong>Aegis v0.3.5&lt;/strong> - Der plattformübergreifende Signer &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.5">fügt Dark Mode hinzu&lt;/a>, verbesserte App-Icon-Anzeige und sauberere UI-Layouts. Bugfixes beheben iOS iCloud Private Relay-Konflikte und Event-Parsing-Probleme. Das Release verbessert auch, wie Event-JSON an die Rust-Signing-Funktion übergeben wird.&lt;/p>
&lt;p>&lt;strong>Citrine v1.0.0&lt;/strong> - Die Android-Relay-App &lt;a href="https://github.com/greenart7c3/Citrine/releases/tag/v1.0.0">erreicht 1.0&lt;/a>. Citrine ermöglicht den Betrieb eines persönlichen Nostr-Relays direkt auf deinem Android-Gerät, nützlich für lokales Caching, Backup oder als NIP-55-Begleiter. Dieses Release fügt einen Crash-Report-Handler hinzu, verbessert die Effizienz von Datenbankabfragen und aktualisiert Übersetzungen via Crowdin.&lt;/p>
&lt;p>&lt;strong>Applesauce v5.0.0&lt;/strong> - hzrd149s TypeScript-Bibliothekssuite &lt;a href="https://github.com/hzrd149/applesauce/releases">liefert eine Major-Version&lt;/a> mit Breaking Changes, die auf Korrektheit und Einfachheit fokussiert sind. Das Core-Paket &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-core%405.0.0">verifiziert jetzt Event-Signaturen standardmäßig&lt;/a> und benennt Koordinaten-Methoden um, um klarere &amp;ldquo;Address&amp;rdquo;-Terminologie zu verwenden (&lt;code>parseCoordinate&lt;/code> -&amp;gt; &lt;code>parseReplaceableAddress&lt;/code>). Das Relay-Paket &lt;a href="https://github.com/hzrd149/applesauce/releases/tag/applesauce-relay%405.0.0">senkt Standard-Retries von 10 auf 3&lt;/a> und ignoriert standardmäßig nicht erreichbare Relays, plus fügt &lt;code>createUnifiedEventLoader&lt;/code> für einfacheres Event-Fetching hinzu. Das Wallet-Paket erhält &lt;a href="https://nostrcompass.org/de/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>. Direkte &lt;code>nostr-tools&lt;/code>-Abhängigkeiten wurden paketübergreifend entfernt, was Bundle-Größe und Versionskonflikte reduziert.&lt;/p>
&lt;h2 id="bemerkenswerte-code--und-dokumentationsänderungen">Bemerkenswerte Code- und Dokumentationsänderungen&lt;/h2>
&lt;p>&lt;em>Dies sind offene Pull Requests und Arbeiten im Frühstadium, perfekt um Feedback zu erhalten, bevor sie zusammengeführt werden. Wenn dir etwas ins Auge fällt, erwäge einen Review oder Kommentar!&lt;/em>&lt;/p>
&lt;h3 id="damus-ios">Damus (iOS)&lt;/h3>
&lt;p>Eine Serie von PRs verbessert das Langform-Artikel-Erlebnis. &lt;a href="https://github.com/damus-io/damus/pull/3496">Lese-UX-Verbesserungen&lt;/a> fügen einen Fortschrittsbalken, geschätzte Lesezeit, Sepia-Modus, einstellbare Zeilenhöhe und Fokus-Modus hinzu, der die Navigation beim Scrollen versteckt. &lt;a href="https://github.com/damus-io/damus/pull/3489">Bild-Korrekturen&lt;/a> stellen sicher, dass Bilder in Markdown-Inhalten mit korrekten Seitenverhältnissen angezeigt werden, indem einzelne Bilder als Block-Level-Elemente vorverarbeitet werden. &lt;a href="https://github.com/damus-io/damus/pull/3497">Langform-Vorschaukarten&lt;/a> ersetzen Inline-&lt;code>@naddr1...&lt;/code>-Text durch reichhaltige Vorschaukarten, die Artikeltitel und Metadaten zeigen. Eine neue &lt;a href="https://github.com/damus-io/damus/pull/3508">Relay-Integrationstestsuite&lt;/a> fügt 137 netzwerkbezogene Tests hinzu, einschließlich &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a>-Protokollverifizierung und Verhalten unter verschlechterten Netzwerkbedingungen (3G-Simulation).&lt;/p>
&lt;h3 id="bitchat-verschlüsselte-kommunikation">Bitchat (Verschlüsselte Kommunikation)&lt;/h3>
&lt;p>Sicherheitshärtung im iOS Nostr+Cashu-Messenger. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/928">Noise Protocol DH Secret Clearing&lt;/a> behebt sechs Stellen, an denen gemeinsame Geheimnisse nach Diffie-Hellman Key Agreement nicht gelöscht wurden, und stellt Forward-Secrecy-Garantien wieder her. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/929">Thread-Sicherheit für Lesebestätigungs-Queues&lt;/a> fügt Barrier-Synchronisation hinzu, um Race Conditions in NostrTransport zu verhindern. &lt;a href="https://github.com/permissionlesstech/bitchat/pull/920">Nachrichten-Deduplikator-Optimierung&lt;/a> verbessert die Leistung bei hohem Nachrichtenvolumen, und &lt;a href="https://github.com/permissionlesstech/bitchat/pull/919">Hex-String-Parsing-Härtung&lt;/a> verhindert Abstürze durch fehlerhafte Eingaben.&lt;/p>
&lt;h3 id="frostr-threshold-signing">Frostr (Threshold Signing)&lt;/h3>
&lt;p>Das &lt;a href="https://nostrcompass.org/de/topics/frost/">FROST&lt;/a>-basierte Threshold-Signing-Protokoll &lt;a href="https://github.com/FROSTR-ORG/igloo-desktop/pull/62">fügt QR-Code-Anzeige hinzu&lt;/a> für Gruppen-Anmeldedaten und Share-Anmeldedaten während des Onboardings und in der Signer-Oberfläche. Dies ermöglicht eine einfachere Einrichtung beim Verteilen von Schlüsselanteilen über mehrere Geräte, da Nutzer Anmeldedaten scannen können, anstatt lange Zeichenketten manuell zu kopieren.&lt;/p>
&lt;h3 id="marmot-mdk-bibliothek">Marmot mdk (Bibliothek)&lt;/h3>
&lt;p>Über die oben erwähnten Sicherheitskorrekturen hinaus adressieren aktive PRs verbleibende Audit-Ergebnisse: &lt;a href="https://github.com/marmot-protocol/mdk/pull/109">Secret&lt;T>-Typ für Zeroization&lt;/a> führt einen Wrapper-Typ ein, der sensible Daten beim Drop automatisch löscht, &lt;a href="https://github.com/marmot-protocol/mdk/pull/111">Nachrichten-Abfrage-Paginierung&lt;/a> verhindert Speichererschöpfung beim Laden des Chat-Verlaufs, und &lt;a href="https://github.com/marmot-protocol/mdk/pull/102">verschlüsselter Speicher&lt;/a> fügt Ruheverschlüsselung für die SQLite-Datenbank hinzu, die Gruppenstatus und Nachrichten speichert.&lt;/p>
&lt;h3 id="amethyst-android">Amethyst (Android)&lt;/h3>
&lt;p>Eine arbeitsreiche Woche mit Stabilitätskorrekturen im Android-Client. &lt;a href="https://github.com/vitorpamplona/amethyst/commit/2c42796">Nachsichtiges JSON-Parsing&lt;/a> verhindert Abstürze durch fehlerhafte Events, indem Kotlin Serialization nachgiebiger gemacht wird. Event-Validierung &lt;a href="https://github.com/vitorpamplona/amethyst/commit/40f9622">prüft jetzt die Kind-Feldgröße&lt;/a> vor der Verarbeitung, um Exceptions durch übergroße Werte zu vermeiden. Die Trust-Score-UI bekam ein kleineres Icon, um visuelle Störungen zu reduzieren, und &lt;a href="https://github.com/vitorpamplona/amethyst/commit/69c53ac">verbessertes Fehler-Logging&lt;/a> hilft bei der Diagnose von Relay-Verbindungsproblemen. Übersetzungsaktualisierungen kamen via Crowdin, und mehrere SonarQube-Warnungen wurden behoben.&lt;/p>
&lt;h3 id="tenex-ki-agenten">TENEX (KI-Agenten)&lt;/h3>
&lt;p>Das Nostr-native KI-Agenten-Framework sah 81 Commits diese Woche, die autonome Fähigkeiten ausbauen. Ein neues &lt;a href="https://github.com/tenex-chat/tenex/pull/48">Agenten-Überwachungssystem&lt;/a> implementiert Verhaltensheuristiken zur Überwachung von Agentenaktionen und zum Eingreifen bei Bedarf. &lt;a href="https://github.com/tenex-chat/tenex/commit/b244c10">Delegationstransparenz&lt;/a> fügt Benutzerinterventions-Logging zu Delegationstranskripten hinzu, damit Nutzer überprüfen können, was Agenten in ihrem Namen getan haben. Die &lt;a href="https://github.com/tenex-chat/tenex/pull/47">LLM-Provider-Registry&lt;/a> wurde modularisiert für einfachere Integration verschiedener KI-Backends. Projektübergreifende Konversationsunterstützung ermöglicht es Agenten, Kontext über mehrere Nostr-basierte Projekte hinweg zu bewahren.&lt;/p>
&lt;h3 id="jumble-web-client">Jumble (Web-Client)&lt;/h3>
&lt;p>Der Relay-fokussierte Web-Client fügt mehrere User-Experience-Verbesserungen hinzu. &lt;a href="https://github.com/CodyTseng/jumble/commit/695f2fe">Intelligenter Relay-Pool&lt;/a> verwaltet Verbindungen intelligent basierend auf Nutzungsmustern. &lt;a href="https://github.com/CodyTseng/jumble/commit/917fcd9">Live-Feed-Toggle&lt;/a> lässt Nutzer zwischen Echtzeit-Streaming und manueller Aktualisierung wechseln. &lt;a href="https://github.com/CodyTseng/jumble/commit/d1b3a8c">Automatische Anzeige neuer Notizen&lt;/a> oben bringt frische Inhalte an die Oberfläche, ohne Seitenneuladen zu erfordern. &lt;a href="https://github.com/CodyTseng/jumble/commit/fd9f41c">Persistenter Cache&lt;/a> für Following-Feed und Benachrichtigungen verbessert Ladezeiten bei Rückkehrbesuchen. Nutzer können jetzt &lt;a href="https://github.com/CodyTseng/jumble/commit/53a67d8">Standard-Relays ändern&lt;/a> über die Einstellungen.&lt;/p>
&lt;hr>
&lt;p>Das wars für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir über dein Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns per NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #3</title><link>https://nostrcompass.org/de/newsletters/2025-12-31-newsletter/</link><pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2025-12-31-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zum Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Zum Abschluss des Jahres 2025 blicken wir auf fünf Jahre Dezember-Meilensteine in der Evolution von Nostr zurück. Von fiatjafs erster Client-Veröffentlichung im Dezember 2020, über Jack Dorseys wegweisende 14-BTC-Spende im Dezember 2022, bis zur NIP-55-Signer-Verbreitung und NDKs 162-facher Cache-Beschleunigung in diesem Monat - der Dezember hat konsequent Wendepunkte für das Protokoll markiert. Diese Sonderausgabe zeichnet die technische Geschichte durch jeden Dezember nach und dokumentiert das Wachstum des Protokolls von zwei experimentellen Relays zu über 2.500 Knoten in 50 Ländern. Außerdem: Amethysts Desktop-Modul nimmt durch Quartz Gestalt an, Notedeck erhält Messaging, Citrine hostet Web-Apps und NIP-54 behebt die Internationalisierung für nicht-lateinische Schriften.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, Ihrem wöchentlichen Leitfaden zum Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Zum Abschluss des Jahres 2025 blicken wir auf fünf Jahre Dezember-Meilensteine in der Evolution von Nostr zurück. Von fiatjafs erster Client-Veröffentlichung im Dezember 2020, über Jack Dorseys wegweisende 14-BTC-Spende im Dezember 2022, bis zur NIP-55-Signer-Verbreitung und NDKs 162-facher Cache-Beschleunigung in diesem Monat - der Dezember hat konsequent Wendepunkte für das Protokoll markiert. Diese Sonderausgabe zeichnet die technische Geschichte durch jeden Dezember nach und dokumentiert das Wachstum des Protokolls von zwei experimentellen Relays zu über 2.500 Knoten in 50 Ländern. Außerdem: Amethysts Desktop-Modul nimmt durch Quartz Gestalt an, Notedeck erhält Messaging, Citrine hostet Web-Apps und NIP-54 behebt die Internationalisierung für nicht-lateinische Schriften.&lt;/p>
&lt;h2 id="dezember-rückblick-fünf-jahre-nostr-dezember">Dezember-Rückblick: Fünf Jahre Nostr-Dezember&lt;/h2>
&lt;p>Nostr wird dieses Jahr fünf. fiatjaf startete das Protokoll am 7. November 2020, und jeder Dezember seither markierte eine eigenständige Phase seiner Entwicklung: vom Proof-of-Concept zur globalen Bewegung zum Produktions-Ökosystem. Dies ist ein technischer Rückblick von Dezember 2020 bis Dezember 2025, die prägenden Jahre, die Nostrs Grundlage etablierten und seinen Durchbruch katalysierten.&lt;/p>
&lt;h3 id="dezember-2020-genesis">Dezember 2020: Genesis&lt;/h3>
&lt;p>Der erste vollständige Monat von Nostrs Existenz sah fiatjaf &lt;a href="https://github.com/fiatjaf/branle">Branle&lt;/a> veröffentlichen, den ersten Client des Protokolls, gebaut mit Quasar (Vue.js) und absurd-sql für lokale Speicherung. fiatjaf hatte bereits die Kernarchitektur etabliert: Benutzer identifiziert durch secp256k1-Public-Keys, alle Posts kryptografisch signiert, Relays dienen als einfache Speicher, die nicht miteinander kommunizieren. Ein oder zwei experimentelle Relays bedienten eine Handvoll frühe Anwender, die sich in der Telegram-Gruppe &lt;a href="https://t.me/nostr_protocol">@nostr_protocol&lt;/a> koordinierten, die am 16. November gestartet war. Die &lt;a href="https://fiatjaf.com/nostr.html">ursprüngliche Dokumentation&lt;/a> beschrieb &amp;ldquo;das einfachste offene Protokoll, das in der Lage ist, ein zensurresistentes globales soziales Netzwerk zu schaffen&amp;rdquo; - eine Prämisse, deren Beweis noch zwei weitere Jahre dauern sollte.&lt;/p>
&lt;h3 id="dezember-2021-frühe-entwicklung">Dezember 2021: Frühe Entwicklung&lt;/h3>
&lt;p>Am 31. Dezember 2021 erreichte Nostr die &lt;a href="https://news.ycombinator.com/item?id=29749061">Hacker-News-Titelseite&lt;/a> mit 110 Punkten und 138 Kommentaren, eingereicht von Cameri. Dies markierte die erste bedeutende Exposition des Protokolls gegenüber der breiteren Entwickler-Community. Das Netzwerk lief auf etwa sieben Relays mit weniger als 1.000 Benutzern. Branle erhielt Updates einschließlich Private-Key-Import (31. Dezember) und Multi-Relay-Unterstützung. Ein Kommandozeilen-Client, noscl, bot Terminal-basierte Interaktion. Die Protokollspezifikationen existierten in fiatjafs Dokumentation, obwohl das formelle &lt;a href="https://github.com/nostr-protocol/nips">NIPs-Repository&lt;/a> erst im Mai 2022 erstellt werden würde. Das Protokoll war, wie fiatjaf es beschrieb, &amp;ldquo;ein Work in Progress&amp;rdquo;.&lt;/p>
&lt;h3 id="dezember-2022-der-wendepunkt">Dezember 2022: Der Wendepunkt&lt;/h3>
&lt;p>Dezember 2022 transformierte Nostr von einem Nischenexperiment in eine Mainstream-Bewegung. Der Katalysator kam am 15. Dezember, als 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 $) an fiatjaf spendete, nachdem er das Protokoll entdeckt und erklärt hatte, es sei &amp;ldquo;100 Prozent das, was wir von Bluesky wollten, aber es wurde nicht von einer Firma entwickelt&amp;rdquo;. Am 16. Dezember kündigte fiatjaf an, die Mittel mit Damus-Entwickler William Casarin (jb55) zu teilen, und Dorsey verifizierte sein Nostr-Konto (npub: &lt;code>npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m&lt;/code>). Die Finanzierung legitimierte das Projekt über Nacht.&lt;/p>
&lt;p>In derselben Woche beschleunigte Twitters Chaos die Adoption. Am 14.-15. Dezember gab es Suspendierungen prominenter Journalisten von der New York Times, CNN und Washington Post. Am 18. Dezember &lt;a href="https://techcrunch.com/2022/12/18/twitter-wont-let-you-post-your-facebook-instagram-and-mastodon-handles/">kündigte Twitter Verbote&lt;/a> für Konten an, die Nostr, Mastodon und andere Plattformen bewarben. Die Richtlinie wurde am folgenden Tag nach Gegenwehr zurückgenommen. Der Exodus trieb Benutzer dazu, Alternativen zu erkunden.&lt;/p>
&lt;p>Die Protokollentwicklung beschleunigte sich. Am 16. Dezember wurde &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> gemerged (&lt;a href="https://github.com/nostr-protocol/nips/pull/57">#57&lt;/a>), das bech32-kodierte Identifikatoren (npub, nsec, note, nprofile, nevent) einführte, die Schlüssel menschenlesbar und unterscheidbar machten. Das NIPs-Repository verzeichnete in diesem Monat 36+ Commits, einschließlich Updates für NIP-40 und NIP-07. Clients vermehrten sich: Damus füllte seine TestFlight-Beta innerhalb von Stunden, Astral forkte Branle für die Profilerstellung, Snort startete als &amp;ldquo;schneller, zensurresistenter&amp;rdquo; Web-Client, und Vitor Pamplona begann die Amethyst-Entwicklung. Alby v1.22.1 &amp;ldquo;Kemble&amp;rsquo;s Cascade of Stars&amp;rdquo; wurde am 22. Dezember mit NIP-19-Unterstützung ausgeliefert. Bis zum 7. Dezember hatte Nostr etwa 800 Benutzer mit Profilen; als Damus am 31. Januar 2023 den App Store erreichte, öffneten sich die Schleusen und trieben das Wachstum bis Juni 2023 auf über 315.000 Benutzer.&lt;/p>
&lt;h3 id="dezember-2023-ökosystem-reifung">Dezember 2023: Ökosystem-Reifung&lt;/h3>
&lt;p>Dezember 2023 markierte einen kritischen Wendepunkt für die Sicherheit des Nostr-Protokolls. Am 20. Dezember wurde &lt;a href="https://github.com/nostr-protocol/nips/pull/746">NIP-44 Revision 3 gemerged&lt;/a> nach einem unabhängigen Cure53-Sicherheitsaudit (NOS-01), das 10 Probleme in den TypeScript-, Go- und Rust-Implementierungen identifizierte, einschließlich Timing-Attacken und Forward-Secrecy-Bedenken. Die aktualisierte Spezifikation ersetzte die fehlerhafte &lt;a href="https://nostrcompass.org/de/topics/nip-04/">NIP-04&lt;/a>-Verschlüsselung durch ChaCha20 und HMAC-SHA256 und etablierte die kryptografische Grundlage, die jetzt &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> private DMs und &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrapping untermauert. In derselben Woche kündigte &lt;a href="https://opensats.org/blog/nostr-grants-december-2023">OpenSats ihre vierte Grant-Welle&lt;/a> am 21. Dezember an und finanzierte sieben Projekte einschließlich Lume, noStrudel, ZapThreads und ein unabhängiges NIP-44-Audit. Dies folgte der &lt;a href="https://opensats.org/blog/nostr-grants-july-2023">ersten Welle im Juli 2023&lt;/a>, die Damus, Coracle, Iris und andere finanziert hatte, und brachte die Gesamtzuweisung des Nostr-Fonds auf etwa 3,4 Millionen Dollar über 39 Grants.&lt;/p>
&lt;p>Der Monat offenbarte auch Nachhaltigkeitsspannungen im Ökosystem. Am 28. Dezember &lt;a href="https://stacker.news/items/368863">postete William Casarin (jb55) auf Stacker News&lt;/a>, dass 2024 &amp;ldquo;wahrscheinlich das letzte Jahr von Damus&amp;rdquo; sein werde, und führte an, dass &amp;ldquo;Nostr-Clients kein Geld verdienen&amp;rdquo;, nachdem Apples Einschränkungen bei In-App-Zaps das Umsatzpotenzial stark limitiert hatten. Das Damus-Team hatte zuvor VC-Finanzierung abgelehnt. Unterdessen wurde &lt;a href="https://github.com/getAlby/nostr-wallet-connect/releases/tag/0.4.1">Nostr Wallet Connect v0.4.1&lt;/a> am 26. Dezember ausgeliefert und erweiterte &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> mit &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> und &lt;code>get_info&lt;/code>-Methoden, was den Grundstein für die Wallet-Integrationen legte, die zum Standard über alle Clients werden sollten.&lt;/p>
&lt;h3 id="dezember-2024-protokoll-fortschritt">Dezember 2024: Protokoll-Fortschritt&lt;/h3>
&lt;p>Dezember 2024 begann mit dem &lt;a href="https://damus.io/notedeck/">Notedeck Alpha-Launch&lt;/a> am 30. November, dem Rust-basierten Desktop-Client des Damus-Teams mit einer mehrspaligen Oberfläche und Unterstützung mehrerer Konten. Gebaut für Linux, macOS und Windows (Android für 2025 geplant), wurde Notedeck zunächst an Damus-Purple-Abonnenten ausgeliefert und stellte eine strategische Expansion über iOS hinaus dar. Zwei Wochen später kündigte &lt;a href="https://opensats.org/blog/9th-wave-of-nostr-grants">OpenSats ihre neunte Grant-Welle&lt;/a> am 16. Dezember an und finanzierte AlgoRelay (das erste algorithmische Relay für personalisierte Feeds), Pokey (Android-App mit Bluetooth-Mesh für eingeschränktes Internet), Nostr Safebox (&lt;a href="https://nostrcompass.org/de/topics/nip-60/">NIP-60&lt;/a> Cashu-Token-Speicherung) und LumiLumi (leichtgewichtiger barrierefreier Web-Client), was die Gesamtzuweisung des Nostr-Fonds auf etwa 9 Millionen Dollar brachte - ein Anstieg von 67% im Jahresvergleich.&lt;/p>
&lt;p>Der Monat sah signifikante Client-Reifung im gesamten Ökosystem. &lt;a href="https://github.com/mikedilger/gossip/releases/tag/v0.13.0">Gossip 0.13.0&lt;/a> landete am 23. Dezember mit File-Metadata-Unterstützung (&lt;a href="https://nostrcompass.org/de/topics/nip-92/">NIP-92&lt;/a>/&lt;a href="https://nostrcompass.org/de/topics/nip-94/">NIP-94&lt;/a>), Blossom-Integration und &lt;a href="https://nostrcompass.org/de/topics/nip-50/">NIP-50&lt;/a> Relay-Suche. &lt;a href="https://github.com/coracle-social/coracle/releases/tag/0.5.0">Coracle 0.5.0&lt;/a> wurde am 12. Dezember mit überarbeitetem Onboarding und nostr-editor-Integration ausgeliefert. Die Protokollentwicklung blieb aktiv mit 30 Pull Requests zwischen dem 9. und 22. Dezember (10 gemerged), einschließlich &lt;a href="https://nostrcompass.org/de/topics/nip-46/">NIP-46&lt;/a>-Umschreibungen zur ausschließlichen Verwendung von NIP-44-Verschlüsselung und fortgesetzter Arbeit an &lt;a href="https://nostrcompass.org/de/topics/nip-104/">NIP-104&lt;/a> für Double-Ratchet-Verschlüsselung auf Signal-Niveau. Netzwerkstatistiken zeigten über 224.000 tägliche Trusted-Pubkey-Events, 4-faches Jahreswachstum bei neuen Profilen mit Kontaktlisten und einen 50%igen Anstieg bei öffentlichen Schreib-Events.&lt;/p>
&lt;h3 id="dezember-2025-ökosystem-expansion">Dezember 2025: Ökosystem-Expansion&lt;/h3>
&lt;p>Dezember 2025 brachte fortgesetzte Protokollreifung und Ökosystem-Expansion. Am 21. Dezember kündigte &lt;a href="https://opensats.org/blog/fourteenth-wave-of-nostr-grants">OpenSats ihre vierzehnte Nostr-Grant-Welle&lt;/a> an und finanzierte drei Projekte: YakiHonne (ein Multi-Plattform-Client mit Creator-Portal für Long-Form-Content und Cashu/Nutzaps-Zahlungsintegration), Quartz (Vitor Pamplonas Kotlin-Multiplatform-Bibliothek, die Amethyst antreibt und eine iOS-Version ermöglichen wird) und Nostr Feedz (bidirektionale RSS-zu-Nostr-Integration von PlebOne). Grant-Verlängerungen gingen an Dart NDK und Mattns nostr-relay.&lt;/p>
&lt;p>Die Protokollevolution setzte sich fort mit &lt;a href="https://nostrcompass.org/de/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>), das im November gemerged wurde und Offline-Gerätesynchronisation ermöglicht. &lt;a href="https://nostrcompass.org/de/topics/nip-a4/">NIP-A4&lt;/a> (Public Messages, kind 24, &lt;a href="https://github.com/nostr-protocol/nips/pull/1988">#1988&lt;/a>) landete später im Monat und definierte Benachrichtigungsbildschirm-Nachrichten, die &lt;code>q&lt;/code>-Tags verwenden, um Threading-Komplikationen zu vermeiden. &lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a> erhielt größere Klärung (&lt;a href="https://github.com/nostr-protocol/nips/pull/2106">#2106&lt;/a>) und führte das &lt;code>hidden&lt;/code>-Tag für wirklich private, nicht auffindbare Gruppen ein. Die &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Spezifikation sah ebenfalls Verfeinerung (&lt;a href="https://github.com/nostr-protocol/nips/pull/2166">#2166&lt;/a>) und adressierte einen häufigen Implementierungsfehler, bei dem Entwickler &lt;code>get_public_key&lt;/code> aus Hintergrundprozessen aufriefen.&lt;/p>
&lt;p>Auf der Client-Seite wurde &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/#news">Primal Android zu einem vollständigen NIP-55-Signer&lt;/a> durch acht gemergte PRs, die &lt;code>LocalSignerContentProvider&lt;/code> implementierten, und schloss sich Amber und Aegis als Android-Signing-Optionen an. Die &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/#notable-code-and-documentation-changes">NDK-Bibliothek erreichte 162-mal schnellere Cache-Abfragen&lt;/a> (von ~3.690ms auf ~22ms) durch Eliminierung doppelter Schreibvorgänge und unnötige LRU-Cache-Lookups (&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 führte &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/#news">Zapsnags&lt;/a> für Flash-Sales via zaps ein. White Noise lieferte datenschutzfreundliche Push-Benachrichtigungen mit &lt;a href="https://nostrcompass.org/de/topics/mip-05/">MIP-05&lt;/a>. Siehe &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/">Newsletter #1&lt;/a> und &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/">Newsletter #2&lt;/a> für vollständige Berichterstattung.&lt;/p>
&lt;hr>
&lt;p>Vor fünf Jahren veröffentlichte fiatjaf Branle für eine Handvoll Benutzer über zwei experimentelle Relays. Heute unterstützt das Protokoll 140+ Clients, 2.500+ Relays in 50 Ländern und ein wachsendes Web of Trust, das Hunderttausende von Keypairs verbindet. Dezembersmuster grosser Veröffentlichungen setzte sich diesen Monat fort mit Bluetooth-Messaging, Android-Signer-Verbreitung und Infrastruktur-Grants, die nachhaltige Investitionen in plattformübergreifende Tools signalisieren.&lt;/p>
&lt;h2 id="neuigkeiten">Neuigkeiten&lt;/h2>
&lt;p>&lt;strong>Amethyst Desktop nimmt Gestalt an&lt;/strong> - Der Quartz-Grant aus OpenSats&amp;rsquo; vierzehnter Welle produziert bereits Ergebnisse. &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1625">PR #1625&lt;/a> erstellt ein vollständiges &lt;code>:desktopApp&lt;/code>-Modul für Amethyst mit Compose Multiplatform, mit funktionierenden Login- und Global-Feed-Bildschirmen auf Desktop JVM. Die Architektur konvertiert das &lt;code>:commons&lt;/code>-Modul zu Kotlin Multiplatform mit einer sauberen Source-Set-Struktur (&lt;code>commonMain&lt;/code>, &lt;code>jvmAndroid&lt;/code>, &lt;code>androidMain&lt;/code>, &lt;code>jvmMain&lt;/code>), die gemeinsame UI-Komponenten zwischen Android und Desktop ermöglicht, während plattformspezifische Entscheidungen jedem Target überlassen werden. Dies legt den Grundstein für die eventuelle iOS-Version über denselben Kotlin-Multiplatform-Ansatz.&lt;/p>
&lt;p>&lt;strong>Amethyst Sprachantworten&lt;/strong> - Eine Weihnachtslieferung von davotoula: &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1622">PR #1622&lt;/a> fügt dedizierte Sprachantwort-Bildschirme mit Wellenform-Visualisierung, Neuaufnahme-Unterstützung, Medienserver-Auswahl und Upload-Fortschrittsanzeigen hinzu. Benutzer können jetzt sowohl auf Root-Sprachnachrichten als auch auf Sprachantworten mit Audio antworten.&lt;/p>
&lt;p>&lt;strong>Notedeck fügt Messaging hinzu&lt;/strong> - Notedeck, der Damus-Desktop-Client, erhielt eine Nachrichtenfunktion in &lt;a href="https://github.com/damus-io/notedeck/pull/1223">PR #1223&lt;/a>, die über Timeline-Browsing hinaus in direkte Kommunikation expandiert.&lt;/p>
&lt;p>&lt;strong>Citrine hostet Web-Apps&lt;/strong> - Citrine kann jetzt &lt;a href="https://github.com/greenart7c3/Citrine/pull/81">Web-Anwendungen hosten&lt;/a> und verwandelt Ihr Telefon in einen Local-First-Nostr-Webserver. Ein separater &lt;a href="https://github.com/greenart7c3/Citrine/pull/85">PR #85&lt;/a> fügt automatische Neuverbindung und Event-Broadcasting hinzu, wenn die Netzwerkkonnektivität zurückkehrt, mit umfassender Testabdeckung über Android-API-Levels.&lt;/p>
&lt;p>&lt;strong>Nostrability Developer Toolkit Registry&lt;/strong> - Der &lt;a href="https://github.com/nostrability/nostrability/issues/264">Developer Kits &amp;amp; Tooling&lt;/a>-Tracker pflegt ein kuratiertes Register von SDKs, Bibliotheken und Entwicklertools über Sprachen hinweg (TypeScript, Rust, Python, Go, Dart, Swift und mehr). Wenn Sie neu in der Nostr-Entwicklung sind, ist dies ein nützlicher Ausgangspunkt, um das richtige Toolkit für Ihren Stack zu finden.&lt;/p>
&lt;h2 id="nip-updates">NIP-Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &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/de/topics/nip-54/">NIP-54&lt;/a>&lt;/strong> - Kritische Internationalisierungskorrektur für Wiki-d-Tag-Normalisierung (&lt;a href="https://github.com/nostr-protocol/nips/pull/2177">#2177&lt;/a>). Frühere Regeln konvertierten alle Nicht-ASCII-Zeichen zu &lt;code>-&lt;/code>, was die Unterstützung für Japanisch, Chinesisch, Arabisch, Kyrillisch und andere Schriften brach. Die aktualisierte Spezifikation bewahrt UTF-8-Buchstaben, wendet Kleinschreibung nur auf Zeichen mit Grossbuchstaben-Varianten an und enthält umfassende Beispiele: &lt;code>&amp;quot;ウィキペディア&amp;quot;&lt;/code> bleibt &lt;code>&amp;quot;ウィキペディア&amp;quot;&lt;/code>, &lt;code>&amp;quot;Москва&amp;quot;&lt;/code> wird zu &lt;code>&amp;quot;москва&amp;quot;&lt;/code>, und gemischte Schriften wie &lt;code>&amp;quot;日本語 Article&amp;quot;&lt;/code> normalisieren zu &lt;code>&amp;quot;日本語-article&amp;quot;&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h2 id="veröffentlichungen">Veröffentlichungen&lt;/h2>
&lt;p>&lt;strong>Zapstore 1.0-rc1&lt;/strong> - Der Nostr-basierte permissionless App Store liefert den &lt;a href="https://github.com/zapstore/zapstore/releases/tag/1.0-rc1">ersten Release Candidate&lt;/a> seiner neuen Architektur mit einer vollständigen UI-Überarbeitung, umgeschriebenem Paketmanager mit verbesserter Fehlerbehandlung, App Stacks für kuratierte Entdeckung, neugestalteten Profilbildschirmen, Hintergrund-Update-Prüfung und unendlichem Scrollen in Release-Listen.&lt;/p>
&lt;p>&lt;strong>KeyChat v1.38.1&lt;/strong> - Die MLS-basierte verschlüsselte Messaging-App &lt;a href="https://github.com/keychat-io/keychat-app/releases/tag/v1.38.1%2B6489">fügt UnifiedPush-Unterstützung&lt;/a> für Android- und Linux-Push-Benachrichtigungen hinzu, plus biometrische Authentifizierung für Datenschutzoperationen. Verfügbar für Android, Windows, macOS und Linux.&lt;/p>
&lt;p>&lt;strong>Alby Go v2.0.0&lt;/strong> - Der mobile Lightning-Wallet-Begleiter &lt;a href="https://github.com/getAlby/go/releases/tag/v2.0.0">liefert ein visuelles Redesign&lt;/a> mit neuem Logo, aktualisierter Farbpalette, neugestaltetem Adressbuch und verbesserter Betragseingabe-Tastatur. BTC Map ist jetzt vom Startbildschirm aus zugänglich, und Transaktionsbeschreibungen erscheinen in Benachrichtigungen.&lt;/p>
&lt;p>&lt;strong>nak v0.17.4&lt;/strong> - fiatjafs Kommandozeilen-Nostr-Tool &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.17.4">veröffentlicht&lt;/a>, nach v0.17.3s LMDB-Linux-Restriktionskorrektur von letzter Woche.&lt;/p>
&lt;h2 id="bemerkenswerte-code--und-dokumentationsänderungen">Bemerkenswerte Code- und Dokumentationsänderungen&lt;/h2>
&lt;p>&lt;em>Offene Pull Requests und Arbeiten im Frühstadium, die es wert sind, beobachtet zu werden.&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> implementiert den Verbrauch von Relay-Hints für Event-Abruf. Wenn Benutzer nevent-, nprofile- oder naddr-Links öffnen, extrahiert Damus jetzt Relay-Hints aus den bech32-TLV-Daten und verbindet sich mit ephemeren Relays, um Inhalte abzurufen, die nicht im Relay-Pool des Benutzers sind. Die Implementierung enthält referenzgezählte Bereinigung, um Race Conditions während gleichzeitiger Lookups zu verhindern. &lt;a href="https://github.com/damus-io/damus/pull/3474">Bild-URL-Erkennung&lt;/a> konvertiert automatisch eingefügte Bild-URLs in Vorschau-Thumbnails im Composer, mit Karussell-Positionsabzeichen für mehrere Bilder. &lt;a href="https://github.com/damus-io/damus/pull/3473">npub-Einfüge-Konvertierung&lt;/a> transformiert eingefügte npub/nprofile-Strings in Erwähnungs-Links mit asynchroner Profilauflösung.&lt;/p>
&lt;h3 id="amethyst-android">Amethyst (Android)&lt;/h3>
&lt;p>&lt;a href="https://github.com/vitorpamplona/amethyst/pull/1627">Payment targets&lt;/a> fügt eine Event-Schnittstelle für NIP-57-Zap-Splits hinzu, die es Posts ermöglicht, mehrere Empfänger anzugeben, die eingehende zaps teilen (nützlich für Kollaborationen, Umsatzbeteiligung oder Trinkgeld an sowohl Content-Ersteller als auch die Tools, die sie verwenden). &lt;a href="https://github.com/vitorpamplona/amethyst/pull/1624">Quartz-Feature-Paritätsdokumentation&lt;/a> fügt eine detaillierte Tabelle hinzu, die verfolgt, welche Features über Android-, Desktop-JVM- und iOS-Targets implementiert sind, und vermerkt, dass iOS Core-Kryptografie (&lt;code>Secp256k1Instance&lt;/code>), JSON-Serialisierung und Datenstrukturen fehlen.&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-Neubau&lt;/a> behebt einen Bug, bei dem entfolgte Konten weiterhin in Feeds erschienen. Timeline-Filter wurden einmal aus der Kontaktliste erstellt und nie aktualisiert; die Korrektur fügt &lt;code>contact_list_timestamp&lt;/code>-Tracking und eine &lt;code>invalidate()&lt;/code>-Methode hinzu, um Neubauten auszulösen, wenn sich der Folge-Status ändert.&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> exponiert die Event-Datenbank des lokalen Relays an andere Android-Apps über &lt;code>ContentResolver&lt;/code>. Im Gegensatz zur WebSocket-Schnittstelle (die erfordert, dass Apps eine persistente Verbindung aufrechterhalten und das Nostr-Relay-Protokoll sprechen) bietet ContentProvider direkten synchronen Datenbankzugriff über Androids nativen IPC-Mechanismus. Externe Apps können Events nach ID, pubkey, kind oder Datumsbereich abfragen, neue Events mit Validierung einfügen und Events löschen, ohne Socket-Verbindungen zu verwalten.&lt;/p>
&lt;h3 id="rust-nostr-library">rust-nostr (Library)&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1183">NIP-40 Relay-Level-Unterstützung&lt;/a> fügt Ablaufbehandlung auf Relay-Builder-Ebene hinzu. Abgelaufene Events werden jetzt vor der Speicherung abgelehnt und vor dem Senden an Clients herausgefiltert, wodurch die Notwendigkeit entfällt, dass jede Datenbankimplementierung Ablaufprüfungen unabhängig behandelt.&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> implementiert Blob-Mirroring-Funktionalität für das Kommandozeilen-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> fügt transparente Audit-Trails für Entwicklungsfonds-Zahlungen durch kind-8383-Nostr-Events hinzu. Die Implementierung veröffentlicht nicht-blockierende Audit-Events nach erfolgreichen Gebührenzahlungen, einschließlich Bestelldetails und Zahlungs-Hashes, während Käufer/Verkäufer-Pubkeys aus Datenschutzgründen ausgeschlossen werden.&lt;/p>
&lt;h3 id="mdk-marmot-development-kit">MDK (Marmot Development Kit)&lt;/h3>
&lt;p>Drei Sicherheitsaudit-Korrekturen landeten: &lt;a href="https://github.com/marmot-protocol/mdk/pull/40">Autorenverifizierung&lt;/a> erzwingt, dass Rumor-Pubkeys mit MLS-Absender-Credentials übereinstimmen, um Impersonationsangriffe zu verhindern. &lt;a href="https://github.com/marmot-protocol/mdk/pull/41">KeyPackage-Identitätsbindung&lt;/a> verifiziert, dass Credential-Identität mit Event-Signierern übereinstimmt. &lt;a href="https://github.com/marmot-protocol/mdk/pull/42">Admin-Update-Validierung&lt;/a> verhindert leere Admin-Sets und Nicht-Mitglieder-Admin-Zuweisungen.&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> implementiert ein vertrauensminimiertes Zahlungssystem für physische Güter. Die Architektur verwendet Albys &lt;code>makeHoldInvoice&lt;/code>, um Käufergelder in ihrer eigenen Wallet zu sperren, wobei die Abwicklung erst nach der Bestandsverifizierung durch den Händler ausgelöst wird. Das Handshake-Protokoll läuft über &lt;a href="https://nostrcompass.org/de/topics/nip-17/">NIP-17&lt;/a> verschlüsselte DMs: Käufer sendet Bestellanfrage, Händler antwortet mit HODL Invoice, Käufer zahlt (Gelder gesperrt), Händler bestätigt Bestand und Versand, dann gibt die Abwicklung die Gelder frei. Multi-Händler-Warenkorb-Unterstützung teilt Zahlungen auf Verkäufer auf.&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">Pro-Relay-Entdeckungsmodus&lt;/a> fügt einen Schalter hinzu, um Posts von gefolgten Benutzern auf bestimmten Relays zu verbergen, was sprachbasierte Entdeckungs-Feeds ermöglicht (z.B. nostr.band/lang/*). Die Funktion filtert Posts heraus, bei denen der Autoren-Pubkey in der Folgeliste des Benutzers erscheint, und persistiert den Schalter-Status pro Relay-URL in localStorage.&lt;/p>
&lt;h3 id="white-noise-encrypted-messaging">White Noise (Encrypted Messaging)&lt;/h3>
&lt;p>&lt;a href="https://github.com/marmot-protocol/whitenoise/pull/937">Medien-Upload-Wiederholung&lt;/a> fügt Wiederholungsoptionen für fehlgeschlagene Uploads hinzu. &lt;a href="https://github.com/marmot-protocol/whitenoise/pull/927">Profilbearbeitungswarnungen&lt;/a> warnen Benutzer vor Profiländerungen. Im Backend behebt &lt;a href="https://github.com/marmot-protocol/whitenoise-rs/pull/422">whitenoise-rs&lt;/a> eine Race Condition bei der AccountGroup-Erstellung.&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-Umschreibung&lt;/a> migriert zu Bun für das Monorepo und den Server, fügt SQLite-Unterstützung hinzu, entfernt v1-Kompatibilität, implementiert LUD-21 und fügt Echtzeit-Mint-Quote-Updates hinzu.&lt;/p>
&lt;h3 id="nostr-java-library">nostr-java (Library)&lt;/h3>
&lt;p>&lt;a href="https://github.com/tcheeric/nostr-java/releases/tag/v1.1.1">v1.1.1&lt;/a> liefert WebSocket-Handling-Refaktoren und verbesserte Test-Robustheit über &lt;a href="https://github.com/tcheeric/nostr-java/pull/499">zwei 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-Migration&lt;/a> schlägt eine separate Änderung der Wiki-Spezifikation vor: Wechsel des Inhaltsformats von Asciidoc zu Djot, einer leichtgewichtigen Auszeichnungssprache mit sauberer Syntax. Der PR führt referenzbasierte Links für Wikilinks ein, was Querverweise zwischen Wiki-Artikeln in Quellform lesbarer macht. &lt;a href="https://github.com/nostr-protocol/nips/pull/2179">NIP-XX Quorum&lt;/a> führt Schwellenwert-Multisignatur-Governance für Nostr-Gruppen mit FROST (Flexible Round-Optimized Schnorr Threshold signatures) ein. Ein Quorum ist ein nsec, das unter Mitgliedern durch ein T-von-N-Schema geteilt wird, bei dem Mitglieder sich selbst vertreten oder an einen Repräsentantenrat delegieren können. Wenn der Rat wechselt, wird der alte nsec obsolet und ein neuer wird verteilt - der letzte Akt jedes Rats ist die Signierung des Governance-Übergangs-Events. Die Spezifikation definiert Mitgliedschaft (öffentlich oder privat), Wahlen und Abstimmungen (Volksabstimmungen, Misstrauensvoten), optionale &amp;ldquo;Gesetze&amp;rdquo; in natürlicher Sprache und, entscheidend, Quorum-Ontologien, bei denen Quoren Mitglieder anderer Quoren sein können, was hierarchische Strukturen wie Lokalitäten ermöglicht, die regionalen Körperschaften beitreten. Anwendungsfälle umfassen Quellcode-Entwicklung, Unternehmensvorstande, HOAs und moderierte Gemeinschaften.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche und dieses Jahr. Bauen Sie etwas? Haben Sie Neuigkeiten zu teilen? Möchten Sie, dass wir über Ihr Projekt berichten? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktieren Sie uns via NIP-17 DM&lt;/a> oder finden Sie uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #2</title><link>https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/</link><pubDate>Wed, 24 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2025-12-24-newsletter/</guid><description>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Guide zum Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Drei &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Signer-Implementierungen erhalten Updates: Amber fügt Performance-Caching hinzu, Aegis erhält &lt;code>nostrsigner:&lt;/code> URI-Unterstützung, und Primal Android gesellt sich als vollständiger lokaler Signer hinzu. Shopstr führt &amp;ldquo;Zapsnags&amp;rdquo; für Flash-Sales via Zaps ein. Mostro fügt einen Entwicklungsfonds hinzu. Vier NIP-Updates landen, darunter Public Messages (Kind 24) und Gruppen-Datenschutzverbesserungen. NDK-Cache-Abfragen werden 162x schneller, Applesauce fügt Reaktionen und NIP-60 Wallet-Unterstützung hinzu, und Tenex führt RAL-Architektur für KI-Agent-Delegation ein. In unserem Deep Dive erklären wir &lt;a href="https://nostrcompass.org/de/topics/nip-02/">NIP-02&lt;/a> (Follow-Listen) und &lt;a href="https://nostrcompass.org/de/topics/nip-10/">NIP-10&lt;/a> (Antwort-Threading), grundlegende Spezifikationen für den Aufbau sozialer Timelines und Konversationen.&lt;/p></description><content:encoded>&lt;p>Willkommen zurück bei Nostr Compass, deinem wöchentlichen Guide zum Nostr-Protokoll-Ökosystem.&lt;/p>
&lt;p>&lt;strong>Diese Woche:&lt;/strong> Drei &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Signer-Implementierungen erhalten Updates: Amber fügt Performance-Caching hinzu, Aegis erhält &lt;code>nostrsigner:&lt;/code> URI-Unterstützung, und Primal Android gesellt sich als vollständiger lokaler Signer hinzu. Shopstr führt &amp;ldquo;Zapsnags&amp;rdquo; für Flash-Sales via Zaps ein. Mostro fügt einen Entwicklungsfonds hinzu. Vier NIP-Updates landen, darunter Public Messages (Kind 24) und Gruppen-Datenschutzverbesserungen. NDK-Cache-Abfragen werden 162x schneller, Applesauce fügt Reaktionen und NIP-60 Wallet-Unterstützung hinzu, und Tenex führt RAL-Architektur für KI-Agent-Delegation ein. In unserem Deep Dive erklären wir &lt;a href="https://nostrcompass.org/de/topics/nip-02/">NIP-02&lt;/a> (Follow-Listen) und &lt;a href="https://nostrcompass.org/de/topics/nip-10/">NIP-10&lt;/a> (Antwort-Threading), grundlegende Spezifikationen für den Aufbau sozialer Timelines und Konversationen.&lt;/p>
&lt;h2 id="news">News&lt;/h2>
&lt;p>&lt;strong>Primal Android wird ein NIP-55 Signer&lt;/strong> - Aufbauend auf der &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/#primal-android">Nostr Connect Unterstützung der letzten Woche&lt;/a> hat Primal vollständige lokale Signing-Fähigkeiten durch acht zusammengeführte Pull Requests implementiert. Die Implementierung umfasst einen vollständigen &lt;code>LocalSignerContentProvider&lt;/code>, der Signing-Operationen für andere Android-Apps über die Content Provider-Schnittstelle von Android freilegt, gemäß der &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>-Spezifikation. Die Architektur trennt Verantwortlichkeiten sauber: &lt;code>SignerActivity&lt;/code> behandelt benutzerorientierte Genehmigungsabläufe, &lt;code>LocalSignerService&lt;/code> verwaltet Hintergrundoperationen, und ein neues Berechtigungssystem lässt Benutzer kontrollieren, welche Apps Signaturen anfordern können. Dies macht Primal zu einer praktikablen Alternative zu Amber für Android-Benutzer, die ihre Schlüssel in einer App behalten möchten, während sie andere für verschiedene Nostr-Erlebnisse nutzen.&lt;/p>
&lt;p>&lt;strong>Shopstr Zapsnags: Flash Sales via Lightning&lt;/strong> - Der Nostr-native Marktplatz führte &lt;a href="https://github.com/shopstr-eng/shopstr/pull/211">&amp;ldquo;Zapsnags&amp;rdquo;&lt;/a> ein, eine Flash-Sale-Funktion, mit der Käufer Artikel direkt aus ihrem sozialen Feed mit einem einzigen Zap kaufen können. Die Implementierung filtert Kind 1 Notizen, die mit &lt;code>#shopstr-zapsnag&lt;/code> getaggt sind, und rendert sie als Produktkarten mit einem &amp;ldquo;Zap to Buy&amp;rdquo;-Button anstelle des Standard-Warenkorb-Flows.&lt;/p>
&lt;p>&lt;strong>Mostro führt Entwicklungsfonds ein&lt;/strong> - Die &lt;a href="https://nostrcompass.org/de/topics/nip-69/">NIP-69&lt;/a> P2P Bitcoin Trading Plattform &lt;a href="https://github.com/MostroP2P/mostro/pull/555">implementierte konfigurierbare Entwicklungsgebühren&lt;/a> zur Unterstützung nachhaltiger Wartung. Betreiber können &lt;code>dev_fee_percentage&lt;/code> zwischen 10-100% der Mostro-Handelsgebühr festlegen (Standard 30%), die bei jedem erfolgreichen Trade automatisch an einen Entwicklungsfonds weitergeleitet wird.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Neue NIPs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-a4/">NIP-A4&lt;/a> (Public Messages, Kind 24)&lt;/strong> - Ein neuer Kind für Benachrichtigungsbildschirm-Nachrichten, konzipiert für breite Client-Unterstützung (&lt;a href="https://github.com/nostr-protocol/nips/pull/1988">#1988&lt;/a>).&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Bedeutende Änderungen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-29/">NIP-29&lt;/a>&lt;/strong> - Wichtige Klärung der Gruppen-Semantik (&lt;a href="https://github.com/nostr-protocol/nips/pull/2106">#2106&lt;/a>). Das &lt;code>closed&lt;/code> Tag bedeutet jetzt &amp;ldquo;schreibunfähig&amp;rdquo; (nur-Lesen für Nicht-Mitglieder), entkoppelt von Beitrittsmechanik. Ein neues &lt;code>hidden&lt;/code> Tag verhindert, dass Relays Metadaten oder Mitglieder-Events an Nicht-Mitglieder senden.&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-51/">NIP-51&lt;/a>&lt;/strong> - Kind 30006 für kuratierte Bildersets hinzugefügt (&lt;a href="https://github.com/nostr-protocol/nips/pull/2170">#2170&lt;/a>).&lt;/li>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a>&lt;/strong> - Verbindungsinitiierung für Android-Signer geklärt (&lt;a href="https://github.com/nostr-protocol/nips/pull/2166">#2166&lt;/a>).&lt;/li>
&lt;/ul>
&lt;h2 id="nip-deep-dive-nip-02-and-nip-10">NIP Deep Dive: NIP-02 und NIP-10&lt;/h2>
&lt;p>Diese Woche behandeln wir zwei NIPs, die für soziale Funktionalität essentiell sind: wie Clients wissen, wem du folgst, und wie Konversationen strukturiert werden.&lt;/p>
&lt;h3 id="nip-02-follow-list">&lt;a href="https://nostrcompass.org/de/topics/nip-02/">NIP-02&lt;/a>: Follow-Liste&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/02.md">NIP-02&lt;/a> definiert Kind 3 Events, die deine Follow-Liste speichern. Dieser einfache Mechanismus betreibt den sozialen Graphen, der Timelines möglich macht.&lt;/p>
&lt;p>&lt;strong>Struktur:&lt;/strong> Ein Kind 3 Event enthält &lt;code>p&lt;/code> Tags, die gefolgten Pubkeys auflisten:&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>Jedes &lt;code>p&lt;/code> Tag hat vier Positionen: der Tag-Name, die gefolgte Pubkey (Hex), ein optionaler Relay-URL-Hinweis und ein optionaler &amp;ldquo;Petname&amp;rdquo; (ein lokaler Spitzname).&lt;/p>
&lt;p>&lt;strong>Ersetzbares Verhalten:&lt;/strong> Kind 3 fällt in den ersetzbaren Bereich (0, 3, 10000-19999), sodass Relays nur die neueste Version pro Pubkey behalten. Wenn du jemandem Neuen folgst, veröffentlicht dein Client ein vollständiges neues Kind 3, das alle deine Follows plus den neuen enthält.&lt;/p>
&lt;p>&lt;strong>Timelines bauen:&lt;/strong> Um einen Home-Feed zu erstellen, ruft der Client das Kind 3 des Benutzers ab, extrahiert alle Pubkeys der &lt;code>p&lt;/code> Tags und abonniert dann Kind 1 Events dieser Autoren.&lt;/p>
&lt;h3 id="nip-10-text-note-threading">&lt;a href="https://nostrcompass.org/de/topics/nip-10/">NIP-10&lt;/a>: Textnotiz-Threading&lt;/h3>
&lt;p>&lt;a href="https://github.com/nostr-protocol/nips/blob/master/10.md">NIP-10&lt;/a> spezifiziert, wie Kind 1 Notizen sich gegenseitig referenzieren, um Antwort-Threads zu bilden.&lt;/p>
&lt;p>&lt;strong>Das Problem:&lt;/strong> Wenn jemand auf eine Notiz antwortet, müssen Clients wissen: Worauf ist dies eine Antwort? Was ist die Wurzel der Konversation? Wer sollte benachrichtigt werden?&lt;/p>
&lt;p>&lt;strong>Markierte Tags (bevorzugt):&lt;/strong> Moderne Clients verwenden explizite Marker 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;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;Toller Punkt! Ich stimme zu.&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>Der &lt;code>root&lt;/code> Marker zeigt auf die ursprüngliche Notiz, die den Thread gestartet hat. Der &lt;code>reply&lt;/code> Marker zeigt auf die spezifische Notiz, die beantwortet wird.&lt;/p>
&lt;p>&lt;strong>Threading-Regeln:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Direkte Antwort auf Root: Ein &lt;code>e&lt;/code> Tag mit &lt;code>root&lt;/code> Marker&lt;/li>
&lt;li>Antwort auf eine Antwort: Zwei &lt;code>e&lt;/code> Tags, eines &lt;code>root&lt;/code> und eines &lt;code>reply&lt;/code>&lt;/li>
&lt;li>Der &lt;code>root&lt;/code> bleibt durch den Thread konstant; &lt;code>reply&lt;/code> ändert sich je nachdem, worauf du antwortest&lt;/li>
&lt;/ul>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Zeus v0.12.0&lt;/strong> - Aufbauend auf der &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/#zeus-lightning-wallet">NWC parallelen Zahlungsunterstützung der letzten Woche&lt;/a> liefert das &lt;a href="https://github.com/ZeusLN/zeus/releases/tag/v0.12.0">Major Release&lt;/a> der Lightning-Wallet einen vollständigen &lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a> Nostr Wallet Connect Service mit benutzerdefinierter Relay-Unterstützung und Budget-Tracking.&lt;/p>
&lt;p>&lt;strong>Amber v4.0.6&lt;/strong> - Der Android &lt;a href="https://nostrcompass.org/de/topics/nip-55/">NIP-55&lt;/a> Signer &lt;a href="https://github.com/greenart7c3/Amber/releases/tag/v4.0.6">fügt Performance-Caching&lt;/a> zu Signing-Operationen hinzu.&lt;/p>
&lt;p>&lt;strong>nak v0.17.3&lt;/strong> - Das &lt;a href="https://github.com/fiatjaf/nak/releases/tag/v0.17.3">neueste Release&lt;/a> beschränkt LMDB-Builds auf Linux.&lt;/p>
&lt;p>&lt;strong>Aegis v0.3.4&lt;/strong> - Der plattformübergreifende Nostr-Signer &lt;a href="https://github.com/ZharlieW/Aegis/releases/tag/v0.3.4">fügt Unterstützung&lt;/a> für das &lt;code>nostrsigner:&lt;/code> URI-Schema hinzu.&lt;/p>
&lt;h2 id="notable-code-and-documentation-changes">Bemerkenswerte Code- und Dokumentationsänderungen&lt;/h2>
&lt;h3 id="damus-ios">Damus (iOS)&lt;/h3>
&lt;p>&lt;a href="https://github.com/damus-io/damus/pull/3469">Mute-Listen-Persistenz&lt;/a> behebt ein Problem, bei dem Mute-Listen bei Kaltstart gelöscht wurden. &lt;a href="https://github.com/damus-io/damus/pull/3457">Profil-Stream-Timing&lt;/a> eliminiert eine ~1-Sekunden-Verzögerung bevor gecachte Profile erschienen.&lt;/p>
&lt;h3 id="ndk-library">NDK (Bibliothek)&lt;/h3>
&lt;p>Zwei Pull Requests lieferten dramatische Cache-Performance-Verbesserungen. &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/371">PR #371&lt;/a> behob einen Bug, bei dem Events aus dem SQLite-Cache sofort zurückgeschrieben wurden. &lt;a href="https://github.com/nostr-dev-kit/ndk/pull/372">PR #372&lt;/a> entfernte unnötige &lt;code>seenEvent&lt;/code> Aufrufe. Ergebnis: Cache-Abfragen fielen von ~3.690ms auf ~22ms (162x schneller).&lt;/p>
&lt;h3 id="rust-nostr-library">rust-nostr (Bibliothek)&lt;/h3>
&lt;p>&lt;a href="https://github.com/rust-nostr/nostr/pull/1176">Multi-Filter REQ Unterstützung&lt;/a> wurde nach Entfernung in einem früheren Refactor wiederhergestellt. &lt;a href="https://github.com/rust-nostr/nostr/pull/1156">Relay-Herkunft&lt;/a> wurde zu &lt;code>stream_events*&lt;/code> Methoden hinzugefügt. Ein &lt;a href="https://github.com/rust-nostr/nostr/pull/1179">Sicherheitsfix&lt;/a> entfernte die &lt;code>url-fork&lt;/code> Abhängigkeit.&lt;/p>
&lt;h3 id="tenex-ai-agents">Tenex (KI-Agenten)&lt;/h3>
&lt;p>Das &lt;a href="https://github.com/tenex-chat/tenex">Multi-Agent-Koordinationssystem&lt;/a> führte RAL (Request-Action-Lifecycle) Architektur in &lt;a href="https://github.com/pablof7z/tenex/pull/38">fünf zusammengeführten PRs&lt;/a> ein. RAL ermöglicht Agenten, beim Delegieren von Aufgaben zu pausieren und fortzufahren, wenn Ergebnisse eintreffen.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir dein Projekt behandeln? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns via NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item><item><title>Nostr Compass #1</title><link>https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/</guid><description>&lt;p>Willkommen bei Nostr Compass, einem wöchentlichen Newsletter, der dem Nostr-Protokoll-Ökosystem gewidmet ist. Unsere Mission ist es, Entwickler, Relay-Betreiber und Builder über wichtige Entwicklungen im gesamten Netzwerk auf dem Laufenden zu halten. Wir dokumentieren die Protokollevolution mit technischer Genauigkeit, Neutralität und Tiefe und decken alles ab, von NIP-Vorschlägen über Client-Releases bis hin zu Best Practices für die Implementierung.&lt;/p>
&lt;p>Nostr Compass ist inspiriert von &lt;a href="https://bitcoinops.org/">Bitcoin Optech&lt;/a>, dessen jahrelange engagierte Arbeit zur Förderung des technischen Bitcoin-Wissens den Standard für protokollfokussierte Newsletter gesetzt hat. Wir sind dankbar für ihr Beispiel und hoffen, dieselbe Strenge in das Nostr-Ökosystem zu bringen.&lt;/p></description><content:encoded>&lt;p>Willkommen bei Nostr Compass, einem wöchentlichen Newsletter, der dem Nostr-Protokoll-Ökosystem gewidmet ist. Unsere Mission ist es, Entwickler, Relay-Betreiber und Builder über wichtige Entwicklungen im gesamten Netzwerk auf dem Laufenden zu halten. Wir dokumentieren die Protokollevolution mit technischer Genauigkeit, Neutralität und Tiefe und decken alles ab, von NIP-Vorschlägen über Client-Releases bis hin zu Best Practices für die Implementierung.&lt;/p>
&lt;p>Nostr Compass ist inspiriert von &lt;a href="https://bitcoinops.org/">Bitcoin Optech&lt;/a>, dessen jahrelange engagierte Arbeit zur Förderung des technischen Bitcoin-Wissens den Standard für protokollfokussierte Newsletter gesetzt hat. Wir sind dankbar für ihr Beispiel und hoffen, dieselbe Strenge in das Nostr-Ökosystem zu bringen.&lt;/p>
&lt;p>Diese Erstausgabe etabliert unser wöchentliches Format. Jeden Mittwoch bringen wir dir NIP-Updates, Release-Notes, Entwicklungs-Highlights und technische Anleitungen. Ob du einen Client baust, einen Relay betreibst oder zum Protokoll beiträgst – Nostr Compass möchte deine zuverlässige Quelle für das Geschehen im Ökosystem sein.&lt;/p>
&lt;h2 id="was-ist-nostr">Was ist Nostr?&lt;/h2>
&lt;p>&lt;em>Da dies unsere erste Ausgabe ist, beginnen wir mit einer Einführung in die Funktionsweise von Nostr. Regelmäßige Leser können &lt;a href="https://nostrcompass.org/de/newsletters/2025-12-17-newsletter/#news">vorspringen&lt;/a>.&lt;/em>&lt;/p>
&lt;p>Nostr (Notes and Other Stuff Transmitted by Relays) ist ein dezentrales Protokoll für soziale Netzwerke und Messaging. Anders als traditionelle Plattformen hat Nostr keinen zentralen Server, kein Unternehmen kontrolliert es und es gibt keinen Single Point of Failure. Benutzer besitzen ihre Identität durch kryptografische Schlüsselpaare, und Inhalte fließen durch unabhängige Relay-Server, die jeder betreiben kann.&lt;/p>
&lt;p>&lt;strong>Wie es funktioniert:&lt;/strong> Benutzer generieren ein Schlüsselpaar (einen privaten Schlüssel namens nsec und einen öffentlichen Schlüssel namens npub). Der private Schlüssel signiert Nachrichten, die &amp;ldquo;Events&amp;rdquo; genannt werden, und der öffentliche Schlüssel dient als deine Identität. Events werden an Relays gesendet, die sie speichern und an andere Benutzer weiterleiten. Da du deine Schlüssel kontrollierst, kannst du zwischen Clients oder Relays wechseln, ohne deine Identität oder Follower zu verlieren.&lt;/p>
&lt;p>&lt;strong>Warum es wichtig ist:&lt;/strong> Nostr bietet Zensurresistenz durch Relay-Vielfalt (wenn ein Relay dich sperrt, können andere immer noch deine Inhalte bereitstellen), Portabilität (deine Identität funktioniert in jeder Nostr-App) und Interoperabilität (alle Nostr-Clients sprechen dasselbe Protokoll). Es gibt keinen Algorithmus, der entscheidet, was du siehst, keine Werbung und keine Datensammlung.&lt;/p>
&lt;p>&lt;strong>Das Ökosystem heute:&lt;/strong> Nostr unterstützt Microblogging (wie Twitter/X), Langform-Inhalte (wie Medium), Direktnachrichten, Marktplätze, Livestreaming und mehr. Clients umfassen Damus (iOS), Amethyst (Android), Primal, Coracle und Dutzende weitere. Die Lightning-Network-Integration ermöglicht sofortige Zahlungen durch &amp;ldquo;Zaps&amp;rdquo;. Das Protokoll entwickelt sich weiter durch NIPs (Nostr Implementation Possibilities), community-getriebene Spezifikationen, die die Funktionalität erweitern.&lt;/p>
&lt;h2 id="news">News&lt;/h2>
&lt;p>&lt;strong>NIP-BE Merged: Bluetooth Low Energy Support&lt;/strong> - Eine bedeutende neue Fähigkeit &lt;a href="https://github.com/nostr-protocol/nips/pull/1979">ist im Protokoll gelandet&lt;/a>. &lt;a href="https://nostrcompass.org/de/topics/nip-be/">NIP-BE&lt;/a> spezifiziert, wie Nostr-Anwendungen über Bluetooth Low Energy kommunizieren und synchronisieren können. Dies ermöglicht offline-fähigen Apps, Daten zwischen nahen Geräten ohne Internetverbindung zu synchronisieren. Die Spezifikation passt WebSocket-Relay-Muster an die BLE-Einschränkungen an, verwendet DEFLATE-Kompression und fragmentierte Nachrichten, um mit den kleinen MTU-Größen von BLE (20-256 Bytes) umzugehen. Geräte verhandeln Rollen basierend auf UUID-Vergleich, wobei die höhere UUID zum GATT-Server wird.&lt;/p>
&lt;p>&lt;strong>MIP-05: Datenschutzerhaltende Push-Benachrichtigungen&lt;/strong> - Das &lt;a href="https://nostrcompass.org/de/topics/marmot/">Marmot Protocol&lt;/a> veröffentlichte &lt;a href="https://nostrcompass.org/de/topics/mip-05/">MIP-05&lt;/a> (&lt;a href="https://github.com/marmot-protocol/mips/blob/main/mip-05.md">Spec&lt;/a>), eine Spezifikation für Push-Benachrichtigungen, die die Privatsphäre wahren. Traditionelle Push-Systeme erfordern, dass Server Geräte-Token und Benutzeridentitäten kennen; MIP-05 löst dies, indem Geräte-Token mit ECDH+HKDF und ChaCha20-Poly1305 verschlüsselt werden und ephemere Schlüssel verwendet werden, um Korrelation zu verhindern. Ein Drei-Event-Gossip-Protokoll (Kinds 447-449) synchronisiert verschlüsselte Token zwischen Gruppenmitgliedern, und Benachrichtigungen verwenden &lt;a href="https://nostrcompass.org/de/topics/nip-59/">NIP-59&lt;/a> Gift Wrapping mit Köder-Token, um Gruppengrößen zu verbergen.&lt;/p>
&lt;p>&lt;strong>Blossom BUD-10: Neues URI-Schema&lt;/strong> - Das &lt;a href="https://nostrcompass.org/de/topics/blossom/">Blossom&lt;/a>-Medienprotokoll bekommt ein benutzerdefiniertes URI-Schema via &lt;a href="https://nostrcompass.org/de/topics/bud-10/">BUD-10&lt;/a> (&lt;a href="https://github.com/hzrd149/blossom/blob/master/buds/10.md">Spec&lt;/a>). Das neue &lt;code>blossom:&amp;lt;sha256&amp;gt;.ext&lt;/code>-Format bettet Datei-Hash, Erweiterung, Größe, mehrere Server-Hinweise und Autor-Pubkeys für &lt;a href="https://nostrcompass.org/de/topics/bud-03/">BUD-03&lt;/a> Server-Entdeckung ein. Dies macht Blob-Links widerstandsfähiger als statische HTTP-URLs, indem automatisches Fallback zwischen Servern ermöglicht wird.&lt;/p>
&lt;p>&lt;strong>Shopstr Marketplace Updates&lt;/strong> - Der Nostr-native Marktplatz &lt;a href="https://github.com/shopstr-eng/shopstr/pull/202">implementierte Nostr Wallet Connect&lt;/a> (&lt;a href="https://nostrcompass.org/de/topics/nip-47/">NIP-47&lt;/a>) für Zahlungen, &lt;a href="https://github.com/shopstr-eng/shopstr/pull/203">fügte Listing-Ablauf hinzu&lt;/a> mit &lt;a href="https://nostrcompass.org/de/topics/nip-40/">NIP-40&lt;/a> und führte &lt;a href="https://github.com/shopstr-eng/shopstr/pull/210">Rabattcodes&lt;/a> für Verkäufer ein.&lt;/p>
&lt;h2 id="nip-updates">NIP Updates&lt;/h2>
&lt;p>Aktuelle Änderungen am &lt;a href="https://github.com/nostr-protocol/nips">NIPs Repository&lt;/a>:&lt;/p>
&lt;p>&lt;strong>Neue NIPs:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-be/">NIP-BE&lt;/a>&lt;/strong> - Bluetooth Low Energy Messaging und Gerätesynchronisation (&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/de/topics/nip-63/">NIP-63&lt;/a>&lt;/strong> - Paywall/Premium Content Standard für die Handhabung von geschütztem Content im Protokoll (&lt;a href="https://github.com/nostr-protocol/nips/pull/2156">#2156&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Bedeutende Änderungen:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="https://nostrcompass.org/de/topics/nip-24/">NIP-24&lt;/a>&lt;/strong> - Optionales &lt;code>languages&lt;/code>-Array zu Kind 0 Benutzer-Metadaten hinzugefügt, das Benutzern erlaubt, mehrere bevorzugte Sprachen mit IETF BCP 47 Tags anzugeben (&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/de/topics/nip-69/">NIP-69&lt;/a>&lt;/strong> - Order-Ablauf-Support für P2P-Trading mit &lt;code>expires_at&lt;/code> und &lt;code>expiration&lt;/code> Tags hinzugefügt (&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/de/topics/nip-59/">NIP-59&lt;/a>&lt;/strong> - Gift Wrap Events können jetzt via NIP-09/NIP-62 Anfragen gelöscht werden (&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/de/topics/nip-51/">NIP-51&lt;/a>&lt;/strong> - Hashtag- und URL-Tags aus generischen Lesezeichen entfernt; Hashtags verwenden jetzt 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/de/topics/nip-18/">NIP-18&lt;/a>&lt;/strong> - Generische Reposts für ersetzbare Events mit &lt;code>a&lt;/code> Tag Support verbessert (&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/de/topics/nip-17/">NIP-17&lt;/a>&lt;/strong> - Formulierung verfeinert und Kind 7 Reaktions-Support zu DMs hinzugefügt (&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/de/topics/nip-11/">NIP-11&lt;/a>&lt;/strong> - &lt;code>self&lt;/code> Feld für Relay-Public-Key-Identifikation hinzugefügt (&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 Deep Dive: NIP-01 und NIP-19&lt;/h2>
&lt;p>Für diese Erstausgabe behandeln wir zwei fundamentale NIPs, die jeder Nostr-Entwickler verstehen sollte. Siehe unsere Themenseiten für &lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a> und &lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a>.&lt;/p>
&lt;h3 id="nip-01-basic-protocol">NIP-01: Basis-Protokoll&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-01/">NIP-01&lt;/a> definiert das Kernprotokoll. Alles in Nostr baut auf dieser Spezifikation auf.&lt;/p>
&lt;p>&lt;strong>Events&lt;/strong> sind der einzige Objekttyp. Jedes Event enthält:&lt;/p>
&lt;ul>
&lt;li>&lt;code>id&lt;/code>: SHA256-Hash des serialisierten Events (der eindeutige Bezeichner des Events)&lt;/li>
&lt;li>&lt;code>pubkey&lt;/code>: Der öffentliche Schlüssel des Erstellers (32-Byte Hex, secp256k1)&lt;/li>
&lt;li>&lt;code>created_at&lt;/code>: Unix-Zeitstempel&lt;/li>
&lt;li>&lt;code>kind&lt;/code>: Integer, der den Event-Typ kategorisiert&lt;/li>
&lt;li>&lt;code>tags&lt;/code>: Array von Arrays für Metadaten&lt;/li>
&lt;li>&lt;code>content&lt;/code>: Die Nutzlast (Interpretation hängt vom Kind ab)&lt;/li>
&lt;li>&lt;code>sig&lt;/code>: Schnorr-Signatur, die beweist, dass die Pubkey dieses Event erstellt hat&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Kinds&lt;/strong> bestimmen, wie Relays Events speichern:&lt;/p>
&lt;ul>
&lt;li>Reguläre Events (1, 2, 4-44, 1000-9999): Normal gespeichert, alle Versionen behalten&lt;/li>
&lt;li>Ersetzbare Events (0, 3, 10000-19999): Nur das neueste pro Pubkey wird behalten&lt;/li>
&lt;li>Ephemere Events (20000-29999): Nicht gespeichert, nur an Abonnenten weitergeleitet&lt;/li>
&lt;li>Adressierbare Events (30000-39999): Neuestes pro Pubkey + Kind + &lt;code>d&lt;/code> Tag Kombination&lt;/li>
&lt;/ul>
&lt;p>Kind 0 sind Benutzer-Metadaten (Profil), Kind 1 ist eine Textnotiz (der Basis-Post), Kind 3 ist die Follow-Liste.&lt;/p>
&lt;p>&lt;strong>Kind 1: Textnotizen&lt;/strong> sind das Herz des sozialen Nostr. Ein Kind 1 Event ist ein Kurzform-Post, ähnlich einem Tweet. Das &lt;code>content&lt;/code>-Feld enthält den Nachrichtentext (Plaintext, obwohl Clients oft Markdown rendern). Tags ermöglichen Antworten, Erwähnungen und Referenzen.&lt;/p>
&lt;p>&lt;strong>Adressierbare Events&lt;/strong> (30000-39999) funktionieren wie ersetzbare Events, verwenden aber ein &lt;code>d&lt;/code> Tag als zusätzlichen Bezeichner. Das Relay behält nur die neueste Version jeder Pubkey + Kind + d-Tag Kombination. Dies ermöglicht editierbare Artikel, Produktlistings oder jeden Fall, in dem du mehrere ersetzbare Items pro Benutzer benötigst.&lt;/p>
&lt;p>&lt;strong>Tags&lt;/strong> sind Arrays, bei denen das erste Element der Tag-Name ist. Standard-Einzelbuchstaben-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>) werden von Relays für effiziente Abfragen indexiert.&lt;/p>
&lt;p>&lt;strong>Client-Relay-Kommunikation&lt;/strong> verwendet WebSocket-Verbindungen mit JSON-Arrays als Nachrichten. Das erste Element identifiziert den Nachrichtentyp.&lt;/p>
&lt;p>Von Client zu Relay:&lt;/p>
&lt;ul>
&lt;li>&lt;code>[&amp;quot;EVENT&amp;quot;, &amp;lt;event&amp;gt;]&lt;/code> - Veröffentlicht ein Event am 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> - Abonniert Events, die dem/den Filter(n) entsprechen&lt;/li>
&lt;li>&lt;code>[&amp;quot;CLOSE&amp;quot;, &amp;lt;sub-id&amp;gt;]&lt;/code> - Beendet ein Abonnement&lt;/li>
&lt;/ul>
&lt;p>Von Relay zu 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> - Liefert ein Event, das deinem Abonnement entspricht&lt;/li>
&lt;li>&lt;code>[&amp;quot;EOSE&amp;quot;, &amp;lt;sub-id&amp;gt;]&lt;/code> - &amp;ldquo;Ende gespeicherter Events&amp;rdquo; - das Relay hat alle historischen Treffer gesendet&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> - Bestätigt, ob ein Event akzeptiert oder abgelehnt wurde&lt;/li>
&lt;li>&lt;code>[&amp;quot;NOTICE&amp;quot;, &amp;lt;message&amp;gt;]&lt;/code> - Menschenlesbare Nachricht vom Relay&lt;/li>
&lt;/ul>
&lt;h3 id="nip-19-bech32-encoded-identifiers">NIP-19: Bech32-kodierte Bezeichner&lt;/h3>
&lt;p>&lt;a href="https://nostrcompass.org/de/topics/nip-19/">NIP-19&lt;/a> definiert die menschenfreundlichen Formate, die du überall in Nostr siehst: npub, nsec, note und mehr. Diese werden nicht im Protokoll selbst verwendet (das Hex verwendet), aber sie sind essentiell für Teilen und Anzeige.&lt;/p>
&lt;p>&lt;strong>Warum bech32?&lt;/strong> Rohe Hex-Schlüssel sind fehleranfällig beim Kopieren und visuell schwer zu unterscheiden. Bech32-Kodierung fügt ein menschenlesbares Präfix und Prüfsumme hinzu.&lt;/p>
&lt;p>&lt;strong>Basis-Formate&lt;/strong> kodieren rohe 32-Byte-Werte:&lt;/p>
&lt;ul>
&lt;li>&lt;code>npub&lt;/code> - Öffentlicher Schlüssel (deine Identität, sicher zu teilen)&lt;/li>
&lt;li>&lt;code>nsec&lt;/code> - Privater Schlüssel (geheim halten, zum Signieren verwendet)&lt;/li>
&lt;li>&lt;code>note&lt;/code> - Event-ID (referenziert ein bestimmtes Event)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Teilbare Bezeichner&lt;/strong> enthalten Metadaten mit TLV-Kodierung (Type-Length-Value):&lt;/p>
&lt;ul>
&lt;li>&lt;code>nprofile&lt;/code> - Profil mit Relay-Hinweisen&lt;/li>
&lt;li>&lt;code>nevent&lt;/code> - Event mit Relay-Hinweisen, Autor-Pubkey und Kind&lt;/li>
&lt;li>&lt;code>naddr&lt;/code> - Adressierbare Event-Referenz (Pubkey + Kind + d-Tag + Relays)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Wichtig:&lt;/strong> Verwende niemals bech32-Formate im Protokoll selbst. Events, Relay-Nachrichten und NIP-05-Antworten müssen Hex verwenden. Bech32 ist rein für menschliche Schnittstellen.&lt;/p>
&lt;h2 id="releases">Releases&lt;/h2>
&lt;p>&lt;strong>Amber v4.0.4&lt;/strong> - Die Android-Signer-App behebt einen NullPointerException, verbessert die Performance auf dem Aktivitätsbildschirm und fügt Übersetzungen für einige Event-Kinds hinzu. &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 für den Web-Client. &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> - Der Discord-ähnliche Communities-Client behebt Modal-Scrolling und Stil-Probleme. &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> - Das Kommandozeilen-Nostr-Tool fügte einen neuen &lt;code>nip&lt;/code> Befehl für schnelle NIP-Referenzsuche hinzu. &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> - Major Release für die MLS-basierte verschlüsselte Messaging-App mit Bild-Sharing via Blossom, Hintergrund-Sync, Push-Benachrichtigungen und Lokalisierung in 8 Sprachen. &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 mit Follow-Listen/Packs, neuen Timeline-Filtern, Bildergalerie und H.265-Videokompression. &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-Trading-Plattform-Update mit NIP-69 Order-Ablauf-Support. &lt;a href="https://github.com/MostroP2P/mostro/releases/tag/v0.15.5">Release&lt;/a>&lt;/p>
&lt;h2 id="developer-best-practices">Entwickler Best Practices&lt;/h2>
&lt;p>&lt;strong>Validiere Auth Events Defensiv&lt;/strong> - go-nostr behob einen &lt;a href="https://github.com/nbd-wtf/go-nostr/pull/182">Panic in NIP-42 Validierung&lt;/a> wenn das Relay-Tag fehlte. Prüfe immer erforderliche Tags vor dem Zugriff.&lt;/p>
&lt;p>&lt;strong>Rate Limiting nach Authentifizierungsstatus&lt;/strong> - khatru fügte &lt;a href="https://github.com/fiatjaf/khatru/pull/57">NIP-42-basiertes Rate Limiting&lt;/a> hinzu, das Relays erlaubt, unterschiedliche Limits für authentifizierte vs. anonyme Verbindungen anzuwenden.&lt;/p>
&lt;p>&lt;strong>Verwende Cursor-Paginierung für Listen&lt;/strong> - Blossom &lt;a href="https://github.com/hzrd149/blossom/pull/65">ersetzte datumsbasierte Paginierung&lt;/a> durch cursorbasierte Paginierung. Datumsbasierte Paginierung bricht, wenn Items Zeitstempel teilen.&lt;/p>
&lt;p>&lt;strong>Schema-Validierung für Event-Typen&lt;/strong> - Das &lt;a href="https://github.com/nostrability/schemata">nostrability/schemata&lt;/a> Projekt bietet JSON-Schemas zur Validierung NIP-konformer Events.&lt;/p>
&lt;hr>
&lt;p>Das war&amp;rsquo;s für diese Woche. Baust du etwas? Hast du Neuigkeiten zu teilen? Möchtest du, dass wir dein Projekt behandeln? &lt;a href="nostr:npub1wav4fae3gyfy3xj298kxj2mj8phavz7vavps34przq02j7w902qq902923">Kontaktiere uns via NIP-17 DM&lt;/a> oder finde uns auf Nostr.&lt;/p></content:encoded></item></channel></rss>