Nostr Compass #24
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 “Mitglieder hinzufügen”-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.
Top-Stories
Amethyst v1.11.0: Kalender, On-Chain-Zap-Splits und Marmot-Antworten
Amethyst, der Nostr-Client für Android, gepflegt von Vitor Pamplona, lieferte v1.11.0 aus. PR #2994 fügt eine NIP-52 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. PR #3018 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. PR #2974 fügt einen paginierten On-Chain-Transaktions-Historien-Screen hinzu, der jeden abgewickelten Zap mit Block-Bestätigungsstatus zeigt.
Gruppen-Messaging erhält Parität mit Eins-zu-eins-Chat: PR #2995 fügt Antwort-Unterstützung für Marmot/MLS-Gruppennachrichten hinzu, sodass Threads innerhalb verschlüsselter Gruppen jetzt mit derselben Parent-Reference-UI wie öffentliche Notes rendern. PR #2984 härtet die NIP-57 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. PR #2968 akzeptiert Fließkomma-Dimensionen in NIP-92 imeta 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.
White Noise v2026.5.22: iOS-Push, Block-UX und Mitglieder hinzufügen
White Noise, der Marmot-Protokoll-Gruppen-Messenger, lieferte v2026.5.22 mit iOS-Push-Benachrichtigungen als Hauptfeature aus. PR #673 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.
PR #676 fügt eine vollständige Block- und Unblock-UX mit Bestätigungs-Flows und Kontaktlisten-Filterung hinzu. PR #679 fügt den lange geforderten “Mitglieder hinzufügen”-Button zum Gruppen-Info-Screen hinzu und schließt eine UX-Lücke, in der Gruppen-Admins auf Share-Links zurückgreifen mussten. PR #688 führt einen dedizierten iOS-Benachrichtigungseinstellungs-Screen ein, und PR #687 verdrahtet Share-per-Long-Press für Medien und Nachrichten.
MDK fügt NIP-40 verschwindende Nachrichten plattformübergreifend hinzu
Das Marmot Development Kit, der geteilte Rust-Core, den White Noise iOS, White Noise Android und jeder zukünftige Marmot-Client verwenden, mergte PR #306, um Validierung für verschwindende Nachrichten und NIP-40 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. PR #307 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.
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.
Mostro v0.17.4: Phase 3 schließt die Slashed-Bond-Schleife
Mostro, das Peer-to-Peer-Bitcoin-Exchange-Protokoll auf Basis von Nostr, lieferte Phase 3 seines Anti-Abuse-Bond-Rollouts in v0.17.4 aus. PR #738 landet den Payout-Flow für geslashte Bonds, nimmt das verfallene Collateral des Verlierers und verteilt es an den Dispute-Gewinner. PR #743 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.
PR #746 lässt den Daemon Disputes finalisieren, denen eine Solver-Zeile fehlt, ein Sonderfall, der zuvor die Auflösung bei Legacy-Disputes ins Stocken brachte. PR #748 toleriert Null-Raten in Yadios /exrates/BTC-Antwort, sodass ein kurzer Yadio-Ausfall Mostros Fiat-Konvertierungs-Pfad nicht mehr bricht. PR #745 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 PR #596.
Applesauce v6.1.0: Lookup-Relays und NIP-34-Git-Casts
Applesauce, das modulare Nostr-Toolkit, das Coracle, noStrudel und Pablo F7z’ Stack antreibt, veröffentlichte v6.1.0 über seine Pakete hinweg. Das Release fügt erstklassige NIP-51 Lookup-Relay-Listen-Unterstützung hinzu: kind 10086 Events lassen einen Benutzer signalisieren “frag diese Relays, wenn du mich finden willst”, und ergänzen NIP-65 Outbox-Listen als Discovery-Primitiv. Anwendungen auf Basis von applesauce-core erhalten ein reaktives User.lookupRelays$ Observable und einen passenden Loader in applesauce-relay.
NIP-34 Git-Cast-Factories kommen in applesauce-factory 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 User.favoriteGitRepos$, User.gitAuthors$ und User.graspServers$ 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 PR #73 stillschweigend fallen ließen.
Notedeck merged NIP-77-Negentropy für Giftwraps und Thread-Backfill
Notedeck, Damus’ nativer Multi-Column-Desktop-Client, mergte am 25. Mai PR #1459, um vollständige NIP-77 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.
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.
Vector v0.4.0: vector-core-Neufassung, Tor, NIP-46, Full-Negentropy-MLS und eine MCP-Agent-Oberfläche
Vector, der auf NIP-17-DMs und Marmot-Gruppen basierende plattformübergreifende, datenschutzorientierte Messenger, lieferte v0.4.0 als bislang größtes Release aus. Die Schlagzeile ist eine grundlegende Engine-Neufassung: Vectors gesamte Logik lebt jetzt in einem einzigen entkoppelten Crate, vector-core, 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.
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 NIP-46 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 NIP-17 DMs als auch in Marmot Gruppen-Chats, wobei Vector den ephemeren Signing-Key als bewusste Spec-Divergenz behält, die die Release Notes explizit hervorheben: “eine Abweichung von den traditionellen NIP-17/Marmot-Specs für verbesserte User-Privacy-Kontrollen.” 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.
MLS-Gruppen-Sync wird jetzt vollständig über NIP-77 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 (:smile:) plus Unicode-Frequenz-Ranking bringen den richtigen Glyph zuerst an die Oberfläche.
Die neuartigste Ergänzung ist vector-agent, 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.
Cordn erscheint als koordinatorvermittelter MLS-Messenger
Cordn (Web-Client unter cordn.net, Repos bei Cordn-msg/cordn und Cordn-msg/cordn-web) ist ein neuer MLS-Messenger, der einen anderen architektonischen Kurs einschlägt als Marmot. Während Marmot 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 ContextVM-Service. Der Koordinator ordnet MLS-Commits und übernimmt die Welcome-Verteilung.
Cordns Argument, formuliert auf seiner /why-Seite, ist, dass MLS, wie es in Produktions-Messengern eingesetzt wird, “nicht koordinationsfrei” ist und dass “schwach geordnete öffentliche Verbreitung” die Konvergenz des Gruppenzustands “viel schwieriger” 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 “Availability-Trust bestehen bleibt” 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 NIP-59 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.
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 MLS 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 ts-mls aufbaut.
deepmarks: NIP-B0-Bookmarks mit kurator-monetarisierter Veröffentlichung
deepmarks-public ist ein Referenz-Client für die vorgeschlagene NIP-B0-Bookmark-Spec (kind 39701), mit einer Drei-Box-Architektur (Kurator, Indexer, Viewer) und einem Tier-System, finanziert durch direkte Kurator-NIP-57-Zaps. Der Client implementiert NIP-B0, NIP-07, NIP-46, NIP-57, NIP-44, NIP-98, NIP-65 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.
Releases
Amber v6.1.0 GA: verschlüsseltes Per-Account-Backup
Amber wechselte diese Woche von v6.1.0-pre3 zu GA v6.1.0. PR #444 liefert verschlüsseltes Backup und Restore für die Anwendungs-Berechtigungs-Datenbank, und PR #446 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.
Citrine: Per-Relay-Subscriptions und Onion-URL-Leak-Prävention
Citrine, das On-Device-Personal-Relay, das mit Amethyst ausgeliefert wird, brachte diesen Zyklus zwei Fixes. PR #157 wechselt von einer einzigen globalen Subscription zu Per-Relay-getaggten Subscriptions, sodass zwei Quell-Relays, die einen kinds: [1] Filter teilen, auf der Aggregator-Seite nicht mehr kollidieren. PR #162 filtert Onion-Relay-URLs, wenn der ausgehende Tor-Proxy deaktiviert ist, und verhindert, dass Onion-Adressen auf den Clearnet-Routing-Pfad lecken.
Angor v0.2.27 und v0.2.28: Relay-Zuverlässigkeit und Boltz-Reconnect
Angor lieferte v0.2.27 und v0.2.28 aus. PR #874 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. PR #876 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.
Nostrord v1.1.0: NIP-57-Zaps und NIP-29-Rollenunterscheidung
Nostrord veröffentlichte v1.1.0 mit NIP-57 Lightning-Zap-Unterstützung für Nachrichten und Profile (PR #98) und einer ordentlichen Unterscheidung im Aktivitäts-Feed zwischen NIP-29 Rollen-Änderungen und Member-Adds (PR #92), die früher identisch gerendert wurden und verschleierten, wer befördert und wer eingeladen worden war.
ぬるぬる v1.5.x: SQLCipher MLS-Keystore und Epoch-Catch-up
ぬるぬる (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. PR #184 führt SQLCipher-Verschlüsselung für den MLS-Keystore in der Rust-Engine-Schicht ein. PR #187 und PR #188 erweitern SQLCipher auf Android bzw. iOS, mit einem Legacy-Plaintext-Purge-Schritt und CI-Guards. PR #189 und PR #191 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 mdk-core, mdk-sqlite-storage und mdk-storage-traits aus marmot-protocol/mdk, sodass die SQLCipher- und Epoch-Catch-up-Arbeit im selben MDK-Runtime landet, das White Noise verwendet.
Bitcredit Core v0.5.10: Nostr-verwurzelter Block-Propagations-Fix
Bitcredit Core veröffentlichte v0.5.10 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.
Unveröffentlichte Änderungen
Jumble öffnete PR #797 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.
Shopstr öffnete PR #492, der einen MCP-Server (Model Context Protocol) initialisiert, mit PR #494, der die unterstützende Infrastruktur baut (Relay-Fetch, Parser, Validation, Errors, Dedup, Audit-Logging) und PR #472, 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.
Keydex, der Shamir-Secret-Sharing-Vault, öffnete eine substantielle Migration in PR #226, die die benutzerdefinierten kinds 1337-1345 in den Bereich 713-721 verschiebt, neben PR #239, der AEAD über Shamir-Shares hinzufügt, und PR #234, 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.
Mill (nostr-mill) ist eine neue Drop-in-Nostr-Signer-UI von OceanSlim (Maintainer des grain Go-Relays), ausgeliefert als Single-Script-Tag Web Component auf npm und jsDelivr. Ein <script>-Tag gibt einer Web-App alle sechs gängigen Signer-Einstiegspunkte hinter einer einheitlichen UI: NIP-07 Browser-Extension, NIP-46 Bunker (URL-Einfügen oder QR-Pairing mit benutzerspezifizierbaren Relays, ungewöhnlich unter In-Page-Bunker-Integrationen), NIP-55 Amber über Android-Intents, verschlüsselter nsec, gespeichert in sessionStorage per AES-256-GCM mit PBKDF2, Read-Only npub 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 (MILL.open, mill:connected / mill:disconnected 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.
moStard, ein Monero-first-Fork von noStrudel von roguehashrate, erreichte diese Woche v1.0.1 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 zapstore.dev/apps/<d-tag>), 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 payto-Einträge für monero-Adressen erhalten erstklassige Buttons in derselben UI neben lightning und bitcoin. 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.
NIP-Updates und Protokoll-Spec-Arbeit
Kalender-NIP-Stack: vier Vorschläge vom Formstr-Team
Ix2 (@geralt-debugs) öffnete am 17. Mai vier koordinierte NIP-PRs, die alle auf die calendar.formstr.app-Implementierung verweisen, die bereits vom selben Autor ausgeliefert wird. PR #2350 schlägt kind 84 als generalisiertes “Participant-Self-Removal”-Event vor: ein getaggter Teilnehmer bei jedem Event kann ein kind 84 veröffentlichen, das über e, a und k Tags auf das Original verweist, um Opt-out zu signalisieren. Relays müssen validieren, dass der Signer von kind 84 in einem p 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.
PR #2351 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 nsec) wird per Gift Wrap an jeden Teilnehmer geliefert. Der Signierer hält nur den öffentlichen d Tag; alles andere lebt in verschlüsseltem content. 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 D-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 d Tag.
PR #2352 baut auf NIP-52E mit einer dezentralen Terminplanungs-Spec auf, die die PR-Beschreibung “eine Drop-in-Alternative zu Calendly/Cal.com ohne zentralen Vermittler” 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 d 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 status Tag auf dem äußeren Wrap, sodass Relays ohne Entschlüsselung filtern können.
Eine Referenzimplementierung ist bereits live unter calendar.formstr.app und als Calendar-Android-App auf Zapstore. PR #2351 schließt PR #2027 zu seinen Gunsten und konsolidiert einen früheren Private-Calendar-Vorschlag, der seit Anfang des Jahres offen war.
Payment Targets und Silent Payments
Zwei weitere NIP-Vorschläge zirkulierten diese Woche in kind:30023 Long-Form-Dokumenten.
Ein Payment-Targets-Vorschlag (NIP-A3 / payto) definiert ein replaceable kind 10133 Event, das einen oder mehrere ["payto", "<type>", "<authority>"] Tags trägt, die auf RFC 8905 payto: 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 #2953 und #3009 liefern die Subscription- und Observation-Oberfläche aus, und PR #3011 verdrahtet die UI für PaymentTargetsEvent.
Zwei konkurrierende Silent-Payments-Vorschläge kamen von verschiedenen Autoren. Die erste Variante leitet BIP-352 Silent-Payment-Scan- und -Spend-Keys aus nsec über öffentliche additive Tweaks ab, sodass jeder Absender eine sp1q...-Adresse aus einem npub ohne Setup konstruieren kann. Die Autorenwarnung ist in der Spec explizit: “bscan und bspend MÜSSEN mit genau derselben Sorgfalt wie nsec behandelt werden”, weil der Scan-Key den nsec offenbart. Eine zweite Variante nimmt den umgekehrten Ansatz und fügt ein sp_address-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 Kommentar auf dem trbouma-Gist, der den Vorschlag verfolgt. Sein zentrales Anliegen ist, dass Variante 1 den Scan-Private-Key aus nsec 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 nsec 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.
Auf der NIP-34 Git-über-Nostr-Seite veröffentlichte hzrd149 2 Patches auf schemata. gitworkshop.dev 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.
Sechs Jahre Nostr-Maies
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’ Notedeck zu Beta aufstieg, und 2026 ist der Monat, der in dieser und den drei vorhergehenden Ausgaben behandelt wird.
Mai 2021
Nostr war sechs Monate alt. Der einzige Nostr-Code lebte in fiatjaf/nostr, 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 widmete fiatjaf NIP-02 um als das Contact-List-NIP. Die Commit-Nachricht lautet: “repurpose NIP-02 and add NIP authorship”, und die explizite Anerkennung geht an PR #16 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 “Senden der Follower-Liste an Relays”, das “nützlich zum Wiederherstellen von Konten und zum Empfehlen von Public Keys zum Folgen” sein würde. fiatjaf verallgemeinerte es in ein einzelnes kind:3 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 “wem folgt diese Person”, “wie nennt sie sie” und “wo liest sie”. Jeder in den nächsten fünf Jahren gebaute Client liest kind:3. Die Konvention, die im selben Commit hinzugefügt wurde, dass jedes NIP seinen Autor benennt, ist der Grund, warum jede Spec heute Bylines hat.
Mai 2022
Der Monat, in dem das NIPs-Repo zu einem Community-Projekt wurde. Am 1. Mai migrierte fiatjaf die Specs von fiatjaf/nostr in ein dediziertes nostr-protocol/nips Repo und fügte am 2. Mai formale Akzeptanzkriterien hinzu. Zwei Tage später öffnete Robert C. Martin (Uncle Bob) PR #1, den ersten externen Pull Request, der Threading-Konventionen für e und p Tags vorschlug. Der PR war ursprünglich als NIP-13 nummeriert, dann zu NIP-10 umbenannt, um Platz für Proof-of-Work zu schaffen. Drei der ersten sechs NIPs sind von Uncle Bob: NIP-10 (Threading-Marker), NIP-14 (der Subject-Tag) und der Commit vom 21. Mai, der kind:1 als das kanonische Short-Text-Note-kind festlegte. Am 5. Mai machte William Casarin seine ersten NIP-Commits: NIP-13 Proof of Work und das kind:2 Recommend-Relay-Event. Am nächsten Tag veröffentlichte fiatjaf NIP-07 window.nostr, zwanzig Zeilen Markdown, die die noch heute genutzte Browser-Extension-Signer-Schnittstelle definierten. Die CORS-Warnung von NIP-05 von David A. Harding und NIP-01s filter.limit landeten in derselben Woche. nostr-tools lieferte seinen ersten browser-importierbaren ESM-Build am 8. Mai aus. Semisol entwarf NIP-15 (End Of Stored Events) und NIP-16 (Event-kind-Ranges) zum Monatsende, die Dokumente, die immer noch die Relay-Sync-Semantik und die Regular-vs-Replaceable-vs-Ephemeral-Klassifikation regeln.
Mai 2023
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 10-Millionen-Dollar-Grant von Jack Dorseys #startsmall, dem Geld, das jede Nostr-Grant-Welle seither trug. NIP-47 (Nostr Wallet Connect) wurde am 2. Mai gemerged und brachte Albys Wallet-Connect-Spec in das Haupt-Protokoll. Zwei Tage später schlug Vitor Pamplona NIP-53 Live Activities vor mit kind:30311 Räumen und kind:1311 Chat-Nachrichten, dem Fundament für jede darauf folgende Nostr-Livestreaming-Oberfläche. Pablo Fernandez öffnete NIP-84 Highlights am 5. Mai und NIP-89 Recommended Application Handlers am 14. Mai. v0l (Kieran Babich, Snort-Autor) schlug NIP-98 HTTP Auth am 8. Mai vor, das Authentifizierungs-Primitiv, auf das sich später sowohl NIP-96 als auch Blossom stützten. Jonathan Staab schlug NIP-32 Labels am 15. Mai vor, und NIP-30 Custom Emoji wurde am selben Tag gemerged. Arthur Franca schlug NIP-96 HTTP File Storage Integration am 21. Mai vor. Zwei Tage später fügte Vitor Zap-Splits zu NIP-57 hinzu, und verbiricha fügte kind:30024 Long-Form-Drafts zu NIP-23 hinzu, die Spec, die zum Fundament moderner Nostr-Long-Form-Authoring-Workflows in Habla, YakiHonne und Highlighter wurde. fiatjaf schlug NIP-29 Simple Groups am 28. Mai vor, die erste relay-verwaltete Gruppen-Spec, die kind:9000 bis kind:9020 Moderations-Events abdeckte. Der Monat schloss mit Paul Miller, der die NIP-44-Konversation 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 10. bis 15. Mai; Snort launchte Zap Pool und L402-paywalled Media; Amethyst 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 Primal-Android-Repo wurde am 16. Mai erstellt; rust-nostr v0.22.0 fügte NIP-47 und NIP-58 hinzu. Am 1. Mai lieferte strfry seine Negentropy-Integration aus, die erste Relay-Implementierung von Doug Hoytes Set-Reconciliation-Protokoll, das später zu NIP-77 werden sollte. Der Monat schloss mit Forbes, das am 30. Mai ein Long-Form-Portrait von fiatjaf veröffentlichte, einer der ersten Mainstream-Presse-Deep-Dives über Nostrs anonymen Gründer.
Mai 2024
Der Konsolidierungszyklus. Weniger auffällige Vorschläge, mehr Ausliefern. NIP-54 Dezentrale Wikis wurde am 2. Mai gemerged mit kind:30818 Artikeln und case-normalisierten d Tags. Drei Tage später wurde NIP-56 erweitert, sodass Missbrauchsberichte digitale Bedrohungen (Malware, Phishing) neben Content-Only-Kategorien flaggen konnten. Am 6. Mai wurden NIP-25 Reaktionen vereinfacht, um den gesamten Reply-Thread nicht mehr als e-Tags einzuschließen. Arthur Franca schlug NIP-22 Comment vor am 12. Mai und führte kind:1111 ein, sodass Antworten auf Nicht-kind:1-Events (Artikel, Dateien, Produkte) eine strukturierte Möglichkeit zum Threading erhalten. Am 19. Mai überholte fiatjaf NIP-46, 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 NIP-71 Video Events mit kind:21 und kind:22 gemerged, und NIP-10 fügte das optionale pubkey-Argument bei e Tags hinzu, sodass Clients Thread-Autoren auflösen können, ohne zuerst das referenzierte Event zu holen. Kieran Walshs NIP-35 Torrents wurde am 22. Mai gemerged, und am 24. Mai referenzierte die NIPs-README erstmals CIP-01 als Off-Repo-Vorschlag, was den Start des “NIPs als eines von mehreren Vorschlags-Venues”-Musters signalisierte. Am 25. Mai entfernte ein Cleanup-PR den aes-256-gcm-Tag aus NIP-71, bevor Downstream-Implementierungen ihn einfroren. NIP-96 fügte list files hinzu und verwarf die Transform-Anforderung am 27. Mai. Am 28. Mai schlug Jonathan Staab vor, die NIP-Akzeptanzhürde anzuheben, sodass mindestens zwei interoperierende Implementierungen erforderlich sind, bevor ein Entwurf aufsteigen kann. Client-Seite: Damus taggte v1.7.2 und v1.8 plus ein v1.9 mit vollem NIP-10 Marker-Handling am 9.–10. Mai, landete NIP-98-Authentifizierung für Push-Benachrichtigungen und lieferte volle NIP-10 Marker-Unterstützung aus. Amethyst machte NIP-17 zum DM-Standard-Modus am 14. Mai, baute NIP-65 Outbox-Model-Relay-Management aus, fügte NIP-96 Server-Auswahl hinzu und lieferte NIP-06 BIP-32/BIP-39 Key-Ableitung aus. Primal Android 0.99.2 am 10. Mai fügte User-Tagging und External-Wallet-NWC hinzu, gefolgt von 0.99.4. Pablo Fernandez landete einen NDK-Optimistic-Update-Cluster über den Zeitraum 24.–31. Mai. Snort fügte NIP-96 Server-Auswahl hinzu, und cashu-ts trennte seine Crypto-Primitive in @cashu/crypto ab.
Mai 2025
Der Monat, in dem NIP-77 (Negentropy Syncing) 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 der README-Eintrag landete am selben Tag. Die Woche davor definierte NIP-23 Long-Form, wie sich HTML-Dokumente durch einen <link> Tag am 24. Mai mit Nostr-Entitäten assoziieren, das kanonische Web-Copy-Primitiv. NIP-25 fügte Reaction-Target-Relay-Hints am 22. Mai hinzu und verwarf die Emoji-zu-Like/Dislike-Empfehlung, womit Emojis als eigenständige semantische Einheiten behandelt wurden. NIP-52 wurde am 14. Mai vereinfacht, 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 Follow Packs (kind 39089 kuratierte Follow-Listen) und Favorite Relays (eine neue replaceable-Liste unter NIP-51) am selben Tag die README. Der Marmot-Protokoll-Bogen hatte noch nicht begonnen: nur das whitenoise-rs Repo existierte (erster Commit am 9. September 2024), und der Mai 2025 war seine Svelte+Tauri-Prototyp-Phase, wobei der Commit vom 14. Mai 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’ Notedeck v0.4.0 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 Flotilla 1.0.0 die Public-Launch-Grenze als NIP-29-basierter Gruppen-Chat-Client, neben Coracle 0.6.12, dem ersten von sechs Coracle-Releases, die bis zu 0.6.17 am 14. Mai liefen. Amber v3.4.0 am 12. Mai wechselte von deprecateten Android Autofill- und ClipboardManager-APIs weg und migrierte von verschlüsselten Shared Preferences zu DataStore. Primal Android 2.2.20 am 20. Mai fügte den Redeem-Code-Flow für Primal Premium und eine überarbeitete Bildgalerie hinzu. nak v0.14.0 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 die Reynolds Foundation 2 Millionen Dollar spendete am 22. Mai.
Mai 2026
Der Monat, der in Newsletter #21, #22, #23 und dieser Ausgabe behandelt wird. Der bestimmende Faden ist MLS-auf-Nostr, das Multi-Client-Produktion erreicht: MDK 0.8.0 lieferte MIP-05 Leaf-Index-Primitive und adressierbare Key Packages aus, gefolgt von PR #306, der NIP-40-Validierung für verschwindende Nachrichten über iOS und Android durch eine geteilte UniFFI-Oberfläche hinzufügt. White Noise v2026.5.22+25 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: Scramble (ein .NET/Avalonia-Desktop- und Android-Client mit Multi-Device-KeyPackage-Slots) und Cordn (eine alternative MLS-Architektur mit einem Per-Group-Koordinator über ContextVM). Angor migrierte sein verschlüsseltes Messaging von NIP-04 zu NIP-44 in PR #860 und schloss den Deprecation-Bogen, der mit Paul Millers NIP-44-Vorschlag im Mai 2023 eröffnet wurde. Das Formstr-Team öffnete die größte koordinierte NIP-Einreichung der jüngeren Erinnerung am 17. Mai, mit PR #2350 für Selbst-Entfernung von Teilnehmern, PR #2351 für private Kalender-Events und Wiederholung (NIP-52E und NIP-52R) und PR #2352 für dezentrale Terminplanung, wobei calendar.formstr.app bereits die Referenzimplementierung ausliefert. Amethyst v1.11.0 renderte NIP-52-Kalender als Timeline-Kategorie und erweiterte On-Chain-Bitcoin-Zaps auf Split-Verteilungen. Ein Jahr nachdem NIP-77 im Mai 2025 gemerged wurde, lieferten drei unabhängige Implementierungen im selben Fenster Negentropy-Adoption aus: Notedeck PR #1459 verdrahtete es in Damus’ Desktop-Client für Giftwrap und Thread-Backfill, Vector v0.4.0 nutzte vollständige Negentropy-MLS-Synchronisation als Teil seiner grundlegenden vector-core-Neufassung neben One-Click-Tor und einer 21-Tool-MCP-Agent-Oberfläche, und Citrine v3.0.0-pre1 fügte es dem Android-nativen Relay neben eingebautem Tor und Multi-Relay-Aggregation hinzu. Mostro v0.17.4 schloss die Anti-Abuse-Bond-Schleife mit Phase-3-Slashed-Bond-Payouts in PR #738 und setzte durch, was das Protokoll zuvor nur androhte. Drei Jahre von “sollen wir NIP-04 ersetzen” zu “sollen wir NIP-44 mit vollem MLS-Gruppenzustand ersetzen”.
Wenn du diskutieren möchtest, DM uns auf Nostr.