Nostr Compass #20
Welkom terug bij Nostr Compass, je wekelijkse gids voor Nostr.
Deze week: GitWorkshop maakt van git-over-Nostr een vollediger codereview-oppervlak met een merge-knop voor PRs in de browser, Stars en repository following, een bandbreedte-efficiënte git explorer, kind 1111 inline reviewopmerkingen en versleutelde multi-device notificatiestatus. Routstrd lanceert een lokale daemon die model providers ontdekt via Nostr kind 38421 announcements en ze betaalt met Cashu. Getagde releases zijn onder meer ngit v2.4.2, Wisp v1.0.0, grain v0.5.2 en v0.5.3, Mostro Core v0.10.0 en Mostro Mobile v1.2.5, marmot-ts v0.5.0, CruxCoach v0.1.3, Meiso v1.3.0, NoorNote, Nostria, Nostr Calendar, nos2x-fox, applesauce, nostr-double-ratchet en meer. Onuitgebrachte wijzigingen behandelen Amethyst Nests, nostream NIP-65 en NWC, FIPS Nostr-gebaseerde udp:nat bootstrap, strfry observability, Sprout owner attestations en Zap Cooking recipe packs. Nieuw gevolgde projecten zijn onder meer Nostrord, Clave, Treasures, smesh, Surveil en andere. De maandelijkse terugblik behandelt Nostr Aprils van 2021 tot 2026.
Belangrijkste verhalen
GitWorkshop levert in-browser PR merge, repository following en een bandbreedte-efficiënte git explorer
GitWorkshop, Dan Conway’s webgebaseerde collaboratielaag voor NIP-34 git-over-Nostr, bracht deze week een grote release uit die de workflow veel dichter bij bij wat ontwikkelaars van GitHub of GitLab verwachten brengt, terwijl opmerkingen, repository-lijsten en notificaties binnen ondertekende Nostr events blijven.
De belangrijkste toevoeging is een langverwachte merge-knop voor PRs in de browser voor repositories die GRASP relays gebruiken. De release voegt ook Stars en repository following toe, gebouwd op reacties en NIP-51 lijsten, met vastgepinde repositorysets die worden gepubliceerd als kind 10617 events die via geordende a tags naar kind 30617 repo announcements verwijzen. Profielpagina’s kunnen nu een draagbare lijst met repositories tonen.
Een bandbreedte-efficiënte git explorer vervangt de vorige shallow clone in de browser. De nieuwe explorer leunt op het onderliggende git client/server-protocol waarop GRASP bouwt, zodat het grote repositories kan verwerken zonder de browser te dwingen een volledige pack op te halen. Zoeken bestrijkt nu gebruikersnamen en repository-metadata, aangedreven door NIP-50 en een ngit-indexer relay-implementatie die repository announcements over het netwerk ontdekt en synchroniseert. Een repository-aanmaakworkflow in de browser maakt het ontdekkings- en onboardingpad compleet.
Reviewtooling is opnieuw opgebouwd rond een Files Changed-tabblad, een per-patch diff viewer en een reeks experimentele nieuwe primitieven. Inline codereview-opmerkingen gebruiken kind 1111, gebouwd op NIP-22: elke opmerking verwijst naar een bestandspad (f tag), een commit SHA (c tag) en een geselecteerd regelbereik (line tag) zodat een client de opmerking op de juiste positie in een diff kan renderen. Een tweede laag van experimentele primitieven wordt gemachtigd door auteur en repo-beheerders en gebruikt NIP-32 labels: hernoem een Issue- of PR-onderwerp na indiening, voeg hashtags toe na indiening, pin een versie-beheerde CoverNote bovenaan een PR of Issue voor een bewerkbare samenvatting en markeer inline codediscussie-subthreads als opgelost. Verdict events en suggestion blokken blijven in draft en zijn nog niet uitgebracht.
Notificatiestatus tussen apparaten wordt ook gesynchroniseerd via Nostr, maar met een privacy-vriendelijke draai. GitWorkshop genereert een dedicated notificatie-keypair, versleutelt die nsec en slaat deze op binnen een kind 30078 event. De notificatie-nsec ondertekent vervolgens de daadwerkelijke notification state events. De indirectie voorkomt dat de hoofdsigner van de gebruiker wordt gespamd met frequente encrypt- en decrypt-verzoeken voor elke lees- of archiveringsactie, en het voorkomt dat externe waarnemers gemakkelijk zien wanneer een gebruiker zijn notification state aanraakt. Een gebruiker kan lees- en archiveringstatus tussen apparaten synchroniseren; relays zien alleen versleutelde blobs.
Routstrd lanceert een lokale router voor inference over Nostr
Routstrd is een nieuwe TypeScript-daemon die lokale tools een OpenAI-compatibel endpoint geeft en elk verzoek routeert naar een concurrerende Routstr provider. De daemon ontdekt providers via Nostr kind 38421 announcements gedefinieerd in Routstr’s RIP-02 specificatie. Het scoort providers vervolgens op prijs, vertrouwen en recente prestaties onder RIP-06 en stuurt elk verzoek naar de huidige beste optie.
Betaling loopt via een lokale Cashu-wallet beheerd door cocod en gefinancierd met Lightning. Dat geeft de client een sats-genoteerd afwikkelingspad terwijl provider discovery publiek en permissieloos blijft via Nostr relays. Als een provider tijdens een sessie faalt, kan Routstrd terugvallen op de volgende node in de rangschikking. Het installatiepad is bun install -g routstrd, gevolgd door routstrd onboard voor wallet- en relay-setup.
De bredere Routstr org onderhoudt de daemon, de Python node software (routstr-core), een chat UI en protocolspecificaties. Voor gebruikers wordt de lokale poort de stabiele interface: bestaande OpenAI-compatibele tools wijzen naar Routstrd, terwijl de daemon provider discovery, routing en betaling afhandelt.
Getagde releases
ngit v2.4.2 lost GRASP relay-detectie op voor PR submissions
ngit bracht v2.4.2 uit met een fix voor repository GRASP server-detectie, waardoor PR-indiening op het gelukkige pad blijft wanneer een voorstel de PR-kind gebruikt. Merk op dat ngit momenteel standaard de Patch-kind gebruikt voor de meeste wijzigingen tenzij ze groot zijn; de maintainer werkt eraan om de standaardwaarde te wijzigen. v2.4.1, eerder deze week uitgebracht, verhielp fatal fouten tijdens clone en fetch wanneer de git-data van een open PR niet beschikbaar was op de opgegeven git-servers van de repository.
Wisp v1.0.0 verlaat de beta
Wisp, een Kotlin en Jetpack Compose Android-client gericht op relay routing, privacy en een kleine native UI, bracht v1.0.0 uit en volgde met v1.0.2. De 1.0.0-mijlpaal bundelt de Normie Mode fiat-denominatietoggle, de For You-feed, NIP-29 relay-gebaseerde groepsconfiguratie en NIP-65 relay-list broadcasting, behandeld in Newsletter #19. v1.0.2 voegt Android 15 16 KB paginagrootte-ondersteuning toe, een QR scan-tab in het drawer sheet, een downloadknop voor inline video-bediening en performancefixes voor de notificatielijst.
grain v0.5.2 lost WebSocket lockup op, v0.5.3 zet polish voort
grain, de Go relay van 0ceanSlim, bracht v0.5.2 uit als kritieke hotfix voor een WebSocket-lockup geïntroduceerd in v0.5.0, en volgde vervolgens met v0.5.3. De lockup zorgde ervoor dat verbindingen bleven hangen onder sommige filter- en WebSocket-paden, dus operators op v0.5.1 of v0.5.0 zouden moeten upgraden. grain volgt alle belangrijke Nostr event-categorieën, biedt NIP-11 relay-informatie, ondersteunt whitelist/blacklist toegangscontrole, per-kind rate limits, een web dashboard en een Go clientbibliotheek toegevoegd in de v0.5.x-lijn.
Mostro Core v0.10.0 en Mostro Mobile v1.2.5 nemen NIP-59 dual-key gift wrap over
Mostro Core v0.10.0 voegt de nieuwe NIP-59 gift-wrap module toe met gescheiden identity- en trade-keys. Eerdere transportcode gebruikte één identiteitssleutel voor zowel trade-identiteit als gift wrapping. v0.10.0 scheidt de stabiele trade-identiteit van de kortstondige wrapping key, zodat elke handel een verse transportsleutel kan gebruiken terwijl de identiteit die nodig is voor het handelsprotocol behouden blijft. Daemon-integratie landt via Mostro PR #718, en mostro-cli PR #165 brengt dezelfde migratie naar de commandoregelclient.
Mostro Mobile v1.2.5 verschijnt naast het protocolwerk. PR #581 laat takers aanbiedingen filteren op leeftijd van de maker’s account, waardoor gebruikers pas aangemaakte maker-accounts in het orderboek kunnen vermijden. PR #580 verhelpt rollabels op geannuleerde bestelgegevens en PR #576 ruimt de knoppen voor coöperatieve annulering op.
marmot-ts v0.5.0 levert adresseerbare KeyPackages
marmot-ts bracht @internet-privacy/marmot-ts@0.5.0 uit, de eerste geplande breaking-change release voor de TypeScript Marmot client. PR #68 voegt ondersteuning voor adresseerbare KeyPackages toe: KeyPackageManager kan nu zowel legacy kind 443 als nieuwe kind 30443 KeyPackage-events verwerken. De release verwijdert KeyPackageStore en de group-state opslagklassen en vervangt ze door generieke key-value stores die worden doorgegeven aan KeyPackageManager en MarmotGroup. Het verplaatst ook invite- en groepsbeheer naar MarmotClient.invites en MarmotClient.groups, dus directe embedders hebben constructor- en opslagwijzigingen nodig voordat ze kunnen upgraden.
CruxCoach v0.1.3 levert versleutelde back-up van klimdata met Nostr en Blossom
CruxCoach is een nieuwe open-source Android-app voor Kilter Board-klimmers. De Kilter Board is een interactieve trainingsmuur waarvan de grepen via Bluetooth oplichten om routes weer te geven. De app werd op 14 april gelanceerd en bereikte op 26 april v0.1.3.
v0.1.3 voegt opt-in versleutelde cloudback-up toe. Een CruxCoach-account van een gebruiker is een Nostr keypair, en de private key fungeert tevens als input voor de lokale back-up-encryptiesleutel. De app versleutelt klimdata on-device en spiegelt de ciphertext naar Blossom-opslagservers (blossom.primal.net en nostr.download). Delete-remote acties roepen het Blossom cleanup pad aan. Naast back-up gebruikt CruxCoach NIP-46 remote signing voor Amber-ondersteuning, NIP-17 privé DMs voor in-app ontwikkelaarscontact, NIP-65 relay lists voor relay discovery en Vitor Pamplona’s Quartz library voor Nostr-plumbing. Gebruikers kunnen het installeren via Zapstore of directe Codeberg APKs.
Meiso v1.3.0 voegt subtaken, Blossom-bijlagen en NIP-89 tagging toe
Meiso is een minimalistische Flutter-taakbeheerder voor Android die taken opslaat als NIP-44 versleutelde kind 30078 application data op Nostr relays. v1.3.0, uitgebracht op 6 april, voegt subtaken toe met parent/child-relaties, taaklinks voor blocks/blocked-by/related-to/duplicate-of, afbeeldingsbijlagen via Blossom en NIP-96 HTTP file upload endpoints, een NIP-89 aanbevolen-applicatie client tag op gepubliceerde events en een Go commandoregel sync-tool. v1.3.0 verhelpt ook cold-start relaygedrag en hergebruik van Amber-client.
NoorNote, Nostria, Nostr Calendar, nos2x-fox en library releases
NoorNote publiceerde v0.8.7, v0.8.8 en v0.8.9. Die releases verhelpen click handling voor afbeeldingen en video’s in geciteerde reposts, voegen lightbox-ondersteuning toe voor long-form artikelafbeeldingen en verhelpen het blanke desktop-startscherm. Nostria bracht v3.1.29, v3.1.30 en v3.1.31 uit, met toevoeging van afbeeldingscompressie in de artikeleditor, een wallet USD-toggle, promotionele-kaart bediening, PDF-ondersteuning en mobiele lay-outverbeteringen.
Nostr Calendar v1.4.1 ontkoppelt calendar event-publicatie van calendar-list beheer en verhelpt tracking van uitnodigingen. nos2x-fox v1.19.0 voegt aangepaste autorisatietijdvensters toe voor Firefox NIP-07 browser-signing grants. nostr-double-ratchet v0.0.97 levert nieuwe binaries. nostr-wot-sdk 0.9.0 mount NostrSessionProvider standaard, en nostr-tools PR #535 voegt multi-relay parsing-ondersteuning toe voor NIP-47 wallet-connect strings.
Aan het einde van de week bracht Amber v6.1.0-pre1 een pre-release uit met een betere layout voor het verbinden van nieuwe apps, signer-dialoog fixes, verbeterde notification permission handling en gerefactorde accountselectie. nostr-vpn v0.3.14 leverde een verse build met macOS Apple Silicon, Linux en Windows artifacts. Bitcredit Core v0.5.7-hotfix-1 en v0.5.8 leverden opeenvolgende fixes voor een orphaned-block validatieprobleem. Surveil v0.1.6 bracht mobiele UI-polish en een vernieuwde About-pagina; het project zelf wordt hieronder geïntroduceerd.
applesauce 6.0.0 verwijdert legacy event factories en voegt Blossom URI parsing toe
applesauce, hzrd149’s TypeScript Nostr toolkit, bracht een 6.0.0 release-trein uit over de monorepo. applesauce-core@6.0.0 verwijdert de legacy EventFactory klasse en oude buildEvent, modifyEvent en createEvent helpers, en duwt aanroepers naar de nieuwere factoryklassen in applesauce-core/factories en applesauce-common. Het voegt ook IP-adres- en localhost-verwerking toe aan link parsing, BUD-10 Blossom URI reguliere expressies en nieuwe observable helpers zoals timeoutWithIgnore, combineLatestBy, combineLatestByIndex en combineLatestByKey.
Releases op pakketniveau vullen de Nostr-specifieke stukken in. applesauce-content@6.0.0 voegt BUD-10 Blossom URI-nodes toe voor tekst en Markdown, waardoor renderers een first-class manier krijgen om Blossom-referenties in content te parsen. applesauce-actions@6.0.0 voegt base factoryklassen toe voor NIP-51 lijsten die relays, gebruikers en items dekken, waardoor lijstconstructie minder ad hoc wordt. applesauce-wallet-connect@6.0.0 exposeert WalletConnect.connectURI, zodat apps direct toegang hebben tot een bestaande NIP-47 wallet-connect URI.
Onuitgebrachte wijzigingen
Amethyst brengt Nests audioruimten vooruit met MoQ interop testing
Amethyst merged deze week verschillende Nests-gerichte PRs, voortbouwend op de Media over QUIC audioruimte-stack van vorige week. PR #2622 voegt een cross-client interop harness toe die de Amethyst MoQ-client afzet tegen de referentie webimplementatie. Het doel is Android/browser wire-level divergentie op te vangen voordat gebruikers erop stuiten. PR #2625 verbetert picture-in-picture speakerfocus en verbindingsstatus, terwijl PR #2620 avatars, mute-status en spraakstatus in het deelnemersgrid verduidelijkt. Later in de week verhelpt PR #2634 IME padding en window insets in de volledig-schermweergave van Nest en voegt PR #2635 presence-gebaseerde freshness filtering toe aan de Nests-feed. Los daarvan verwijdert PR #2627 Amethyst’s aangepaste C secp256k1-implementatie en migreert naar libschnorr256k1.
nostream voegt NIP-65 relay list-ondersteuning en NWC-betalingen toe
nostream merged drie opmerkelijke PRs na de 53-PR relay-sprint van vorige week. Ondersteuning voor NIP-65 relay-list metadata landt in PR #585, zodat de relay kind 10002 relay-list events kan indexeren en serveren. Een Nostr Wallet Connect payments-processor volgt in PR #539 en voegt een pay-to-relay pad toe. Verbindingsopruiming verbetert in PR #438, dat een dood-verbindingsbug sluit waarbij sockets met actieve abonnementen niet werden opgeruimd, waardoor het aantal abonnementen zou wegdrijven op langlopende instances.
FIPS voegt Nostr-gebaseerde udp:nat bootstrap toe
FIPS, het Free Internetworking Peering System eerder behandeld in Newsletter #6 en Newsletter #10, merged PR #53 met Nostr-gebaseerde udp:nat bootstrap. De wijziging laat nodes Nostr-adverts publiceren, versleutelde offer/answer-signalering uitwisselen, publieke adressen ontdekken via STUN, UDP hole punching uitvoeren en de gepuncte socket doorgeven aan de normale FIPS-transportstack. De implementatie bindt signaal-payload-identiteiten aan de daadwerkelijke Nostr-afzender, doet inbox-lookups op geconfigureerde DM- en advert-relays en rolt mislukte overgenomen-traversal handoffs terug zodat verweesde UDP-transporten niet actief blijven. Dit is het Nostr-aankondigings- en NAT-traversal-werk om te volgen in de canonieke repo, jmcorgan/fips.
strfry voegt per-verbinding observability toe
strfry merged PR #214, waarmee per-verbinding observability en verbindings-niveau metrics worden toegevoegd die exporteerbaar zijn via Prometheus. PR #204 normaliseert Prometheus-labels, en PR #215 voegt een Community Integrations sectie toe aan de docs die Namecoin-identiteitsprojecten behandelt die bovenop strfry zijn gebouwd.
Sprout voegt Owner Attestation en multi-workspace-ondersteuning toe
Sprout, Block’s Nostr-client, merged PR #406 waarmee NIP-OA (Owner Attestation) wordt geïmplementeerd. De feature geeft een autonome agent een cryptografisch bewijs dat een specifieke menselijke pubkey zijn acties heeft geautoriseerd. PR #409 voegt multi-workspace-ondersteuning toe aan de desktop-app, PR #411 voegt #channel autocomplete toe aan mobile compose, en PR #410 sluit een race-window dat actieve channel-berichten kon laten wegvallen. PR #413 introduceert NIP-RS voor cross-device read state sync, en vervolg-PR #420 en PR #422 sluiten die read state aan op de mobiele ongelezen badges.
Zap Cooking voegt recipe packs, verwijderverzoeken en bunker login toe
Zap Cooking merged een productieve week aan recipe-publishing werk. NIP-09 verwijderverzoeken voor eigen Recipe Packs van een gebruiker landen in PR #367. Publicatiebetrouwbaarheid verbetert via PR #366, die elk nieuw recept dwingt op de garden relay en een retry-queue toevoegt voor de gedeelde recept-set. Een-klik authored pack publishing landt in PR #365, en PR #331 voegt NIP-46 bunker login-ondersteuning toe.
Whitenoise-rs versleutelt zijn lokale database
whitenoise-rs merged PR #758, waarmee SQLCipher-versleuteling wordt toegevoegd voor de on-disk Whitenoise-database. Dat sluit een langlopend at-rest beveiligingsgat voor de Marmot-daemon stack. PR #775 exposeert groepsvereiste capabilities, PR #772 migreert groepsmedia-operaties naar session-owned MediaOps, en PR #773 extraheert een SharedServices-houder als onderdeel van de session-ops refactor. Aan de mobiele kant schakelt whitenoise PR #577 boot auto-restart in voor de Android foreground-service, waarmee het geval wordt opgelost waarbij de daemon niet terugkwam na een herstart van het apparaat.
Nieuw gevolgd en ontdekt
Nostrord: een NIP-29 client gebouwd met Kotlin Multiplatform en WASM
Nostrord is een nieuwe NIP-29 group-chat client gericht op de Discord-vervanging use case. Groepen leven op Nostr relays met relay-afgedwongen lidmaatschap, rollen, moderatie en toegangscontrole, dus groepsstatus wordt gehost door de geselecteerde NIP-29 relay. De client-ontwikkelaar beheert geen aparte applicatiedatabase voor die groepen. De web-app draait op web.nostrord.com en is gebouwd met Kotlin Multiplatform dat compileert naar WebAssembly, met native Android-, iOS- en desktopbuilds in ontwikkeling. Nostrord is een OpenSats grantontvanger en werkt interop met dezelfde NIP-29 relays die door Flotilla, Chachi en 0xChat worden gebruikt.
Clave brengt NIP-46 remote signing naar iOS via APNs
Clave is een iOS remote signer in beta die Nostr events ondertekent wanneer de app niet open is. De private key blijft in de iPhone Keychain. Wanneer een client een NIP-46 remote-signing verzoek verzendt, levert een server-side proxy een Apple Push Notification, die tot 30 seconden een Notification Service Extension wekt. Die extensie decodeert het verzoek met NIP-44 versleuteling, ondertekent met de Keychain-sleutel en publiceert het antwoord. Device token registratie gebruikt NIP-98 HTTP Auth om token hijacking te voorkomen. Clave ondersteunt bunker:// en nostrconnect:// pairing, per-client vertrouwensniveaus, per-kind overrides, en is getest met Nostur en noStrudel.
Treasures: gedecentraliseerde geocaching op Nostr
Treasures is een geocaching-platform waar caches en vondsten ondertekende Nostr events zijn. Cache-makers publiceren kind 37516 adresseerbare events met GPS-coördinaten. Vinders loggen ontdekking door een QR-code te scannen die aan de fysieke cache is bevestigd; de code codeert de creator pubkey, de cache d tag en een verificatie-private key die als bewijs van het fysieke bezoek wordt gebruikt. NIP-57 zaps kunnen van vinders naar cache-makers stromen, en de live app is beschikbaar op treasures.to.
smesh v0.5.1: self-hosted Nostr relay, client en signer in één stack
smesh is een self-hosted Nostr-stack geschreven in Moxie, een aangepaste taal afgeleid van Go en TinyGo door mleku. De stack levert een native relay-binary met HTTP, WebSocket, AUTH, search en Blossom-ondersteuning; sm3sh, een webclient gecompileerd naar ES modules; en een browser signer-extensie met NIP-07 browser signing plus NIP-04 en NIP-44 versleutelingsondersteuning. Recent werk omvat MLS (RFC 9420) groepsberichten in v0.5.0, negentropy set reconciliation voor relay-sync en een Web of Trust graph engine. De code leeft op mleku’s self-hosted forge op git.smesh.lol, gebouwd met zijn eigen git-web tool. De gerelateerde gitea-nostr-auth repo is een OAuth2/OIDC-brug voor Gitea: gebruikers authenticeren met een NIP-07 browser signer, de brug ontdekt relays via NIP-65 en Gitea ontvangt standaard OIDC identity claims.
Surveil: een Magic: The Gathering deckbuilder op Nostr
Surveil is een Nostr-client voor Magic: The Gathering-spelers waarmee gebruikers kaarten kunnen zoeken, decks kunnen bouwen, papieren kaarten kunnen scannen op Android met on-device ML Kit OCR en decks kunnen delen over het netwerk. Decks worden gepubliceerd als kind 37381 adresseerbare events, en de deck event-specificatie is gedocumenteerd in het NIP.md van het project. De sociale laag is gebouwd uit standaard Nostr-primitieven: NIP-22 (kind 1111) threaded comments scoped naar elk deck, NIP-25 (kind 7) reacties, NIP-78 (kind 30078) profieldata voor speler-homes, kind 3 follow-feeds, en forks die een a tag terug dragen naar het originele deck. v0.1.6 verscheen deze week met mobiele UI-polish, verbeteringen aan de life counter, een vernieuwde About-pagina en een relay pill op de deck hero banner. De web-app draait overal waar statische HTML wordt geserveerd, de Android-build wordt geleverd via Zapstore, en kind 37381 events worden ook native geïndexeerd door Ditto als Magic-decks. De repo staat op GitLab op chad.curtis/surveil.
Kleinere toevoegingen: Fundstr, Nod City, deploy-nsite-to-pages en null–nostr
Fundstr is een creator-fundingplatform op Nostr dat Cashu ecash gebruikt voor eenmalige en terugkerende pledges, met creator tier-definities en Nostr DMs. Nod City is een Bitcoin-service reviewsite waar reviews ondertekende Nostr events zijn en reviewers zaps kunnen ontvangen; geen publieke source repo gevonden. deploy-nsite-to-pages is een GitHub Action die een nsite spiegelt naar GitHub Pages door nsyte download te gebruiken, met ondersteuning voor root kind 15128 en named kind 35128 nsites. null–nostr, ook ontdekt in de NIP-34-data van deze week, is de client behandeld in de recente OpenSats-golf als Nurunuru; het ondersteunt MLS groepsberichten, Amber, NIP-50 search, NIP-70 protected posts, ProofMode badges en Zapstore-distributie.
FIPS is geen nieuw project voor Compass. Het werd behandeld in Newsletter #6 en Newsletter #10. De database wijst nu naar de juiste canonieke repo, jmcorgan/fips, en de NIP-34-ontdekking van deze week bracht ook gerelateerde git-over-Nostr mirrors zoals fips en awesome-fips naar voren.
Protocolwerk
NIP-updates
Recente voorstellen en discussies in de NIPs-repository:
Deze week gemerged:
NIP-34 git repositories: verwijder ongebruikte refs tag-extensie (PR #2325): Verwijdert een
refstag-extensie uit NIP-34 die was gedefinieerd maar ongebruikt bleef. De opruiming vermindert implementatie-onduidelijkheid voor git-over-Nostr tools.NIP-34 git repositories: verwijder onjuiste NIP-09 claim (PR #2326): Verwijdert een onjuiste claim dat NIP-09 deletion events repository-status kunnen resetten. NIP-09 deletion is een client-side event-deletion verzoek, geen repository state machine. De correctie voorkomt dat NIP-34-implementors deletion-hints als gezaghebbend behandelen voor repo-resets.
Open en implementatie-gedreven werk:
GitWorkshop kind
1111inline reviewopmerkingen: De inline code review comment-kind is gedocumenteerd in GitWorkshop’sNIP.mden is nu in actief gebruik, maar is nog niet als formele NIP voorgesteld. Verdict events (kind7321) ensuggestionblokken blijven in draft en zijn nog niet uitgebracht. Implementatiefeedback van GitWorkshop en ngit zal bepalen of de vormen een op zichzelf staande git-review NIP worden of een applicatieconventie blijven bovenop NIP-34.Nostr mail core en Nostrmon: Twee nieuwe custom-NIP drafts circuleerden deze week. Nostr mail core stelt kind
1301voor voor RFC 2822 e-mailinhoud, gewikkeld met NIP-59 voor private levering en gebrugd naar legacy e-mail via NIP-05-opgeloste brug-pubkeys. Nostrmon schetst adresseerbare event-kinds voor regio’s, kaarten, wezens, NPCs, spelersaves en items. Beide blijven custom drafts, geen gemergede NIPs.NIP-67: EOSE Completeness Hint (PR #2317): Het voorstel blijft itereren op het toevoegen van een positieve completeness-marker aan
EOSE, waarmee relays kunnen onderscheiden tussen “opgeslagen events volledig geleverd” en legacyEOSEgevallen waarin de relay geen completeness-claim maakt.
Zes Nostr aprils
April biedt een schone dwarsdoorsnede van Nostr’s ontwikkelingspad: het protocoldocument in 2021, vroeg client-werk in 2022, de post-Damus applicatiegolf in 2023, private messaging en git-over-Nostr werk in 2024, Blossom en relay-list opruiming in 2025, en adoption-gerichte client-grants in 2026.
April 2021: het protocoldocument voor de NIPs-repo
Fiatjaf publiceerde het oorspronkelijke Nostr-artikel, “Notes and Other Stuff Transmitted by Relays”, op 20 november 2020. Die eerste tekst bevatte al de kernvorm die het protocol nog steeds definieert: gebruikers ondertekenen events met sleutels, publiceren ze naar relays en lezen van relays die zij kiezen. Het nostr-protocol/nostr commit log toont geen commits tussen 1 april en 30 april. Activiteit zit aan beide zijden: maart 2021 commits voegden vroege “nostwitter” links en een kind filter toe, terwijl mei 2021 NIP-02 hergebruikte en NIP-authorship toevoegde.
In april 2021 was er geen publieke client-markt, geen zichtbaar relay-netwerk en geen NIPs-repo. Het protocol leefde nog als een klein document en enkele experimenten. Nostr was nog geen sociaal netwerk of ontwikkelplatform geworden. Het was nog steeds een relay/key/event model dat wachtte op zijn eerste aanhoudende contributor-golf.
April 2022: NIPs leefden nog in de hoofdrepo
April 2022 was de laatste maand voordat NIPs uit de hoofd nostr-protocol/nostr repo werden verplaatst. Omdat de splitsing nog niet had plaatsgevonden, had de dedicated nostr-protocol/nips repo geen april pull-request geschiedenis. In de hoofdrepo landden drie april-commits: “Update readme to add nip12” op 8 april door goswami1999, “add kinds list” op 25 april door jb55, en “add js formatting to sample code” op 28 april door steliosrammos.
Client-werk begon ook vorm te krijgen. Damus-commits van april 2022 voegden vroeg chatroom-gedrag, profielverwerking en app-iconen toe, terwijl nostr-tools het JavaScript-bibliotheekpad werd voor vroege clients en experimenten. Aan de protocolkant gaf NIP-12 generic tag queries tag search een gedocumenteerde plaats, verplaatste de kinds list Nostr naar een registrymodel en maakten betere JavaScript-voorbeelden de spec makkelijker om te implementeren voor client- en libraryauteurs. Op 1 mei verplaatste fiatjaf NIPs naar de dedicated repo. April 2022 was de laatste maand van het originele single-repo tijdperk.
April 2023: post-Damus applicatie-expansie
April 2023 kwam drie maanden na de lancering van Damus in de iOS App Store op 31 januari 2023, en nadat Jack Dorsey zijn Nostr publieke sleutel had gepost. Het netwerk had zojuist zijn eerste grote publieke groeigolf verwerkt. Clients zoals Damus, Snort, Iris, Coracle en Amethyst waren actief, terwijl relay-operators leerden wat een grotere sociale graaf deed met bandbreedte-, spam-, search- en moderatie-aannames.
April 2023 had één gemergede NIPs PR: PR #456, gemerged op 17 april, die NIP-19 bech32 entity-links aan NIP-21 URI-verwerking toevoegde. De omringende commits laten de applicatiedruk zien achter het protocolwerk. April 2023 zag werk aan NIP-45 COUNT, event-specifieke zap markers, NIP-15 marketplace, NIP-26 delete delegation-semantiek, NIP-94 file metadata, NIP-47 wallet-connect error handling en NIP-30 custom emoji. De contributorlijst was uitgebreid met fiatjaf, staab, pablof7z, Semisol, CodyTseng, sethforprivacy, mikedilger, AsaiToshiya, alexgleason, martindsq, frbittencourt en arkin0x.
Damus, Snort, Iris, Coracle en Amethyst waren geen demo’s meer rond een spec; ze waren productieclients die te maken hadden met onboarding, feeds, spam, zaps, media en relay-selectie. Het protocolwerk van april 2023 leest als de backlog die deze clients creëerden: zaps, marktplaatsen, file metadata, tellen, emoji en identiteitslinks duwden de spec allemaal voorbij eenvoudige notes en follows.
April 2024: private messaging, git-over-Nostr en maintainer-ondersteuning
April 2024 had twee NIP PR-merges. PR #1167, gemerged op 10 april, verhielp verwarrende terminologie in NIP-46 remote signing, waar clients en signers exacte taal nodig hebben voor gevraagde en geautoriseerde acties. PR #1108, gemerged op 17 april, breidde NIP-34 git repositories uit met status events, verduidelijkingen, optionele maintainers, repo-identifiers en discoverability tags. Die stap maakte git-over-Nostr praktischer voor ngit en later GitWorkshop.
NIP-17, voorheen NIP-24, landde op 24 april als sealed gift-wrapped messages voor private DMs en kleine groepschats. Client- en librarywerk liep ernaast: Amethyst, Primal, Gossip, nostr-tools, NDK en rust-nostr waren allemaal actief in dezelfde periode.
OpenSats kondigde in april 2024 ook long-term support aan voor Nostr-ontwikkelaars: PabloF7z op 9 april, Stuart Bowman op 12 april en hzrd149 op 15 april. Die grants verplaatsten de financiering van geïsoleerde projectgrants naar aanhoudend onderhoud van relays, libraries en client-infrastructuur.
April 2025: dichte NIP-opruiming en Blossom-formalisatie
April 2025 was de dichtste protocolmaand in deze terugblik, met zestien gemergede NIPs PRs. De maand begon met PR #1846, waarmee blockchain-transacties en -adressen aan NIP-73 werden toegevoegd, en PR #1865, waarmee NIP-C0 tags aan de standardized tags table werden toegevoegd. Het ging verder met PR #1801 en PR #1889, beide met verbetering van kind 10002 relay-list republicatie-richtlijnen, en PR #1879, die NIP-65 verkleinde en verduidelijkte.
PR #1822 voegde NIP-B7 toe voor Blossom-interactie en gaf Nostr-clients en Blossom-servers een canonieke coördinatielaag na meer dan een jaar informele praktijk. PR #1051 deprecateerde NIP-26, de delegated event signing spec. NIP-26 was moeilijk veilig te implementeren geweest en werd minder aantrekkelijk naarmate NIP-46 en andere signer-patronen volwassen werden.
De rest van de maand combineerde opruiming met applicatie-expansie: PR #1882 voegde privacy policy- en terms of service-velden toe aan NIP-11, PR #1849 breidde kind 39701 web bookmarks uit onder NIP-B0, PR #1891 voegde die bookmark-kind toe aan de README en PR #1895 voegde NIP-B0 standardized tags toe. OpenSats kondigde zijn Eleventh Wave of Nostr Grants aan op 16 april en financierde Swae, HAMSTR, Vertex, Nostr Double Ratchet en Nostr Game Engine. Primal, Coracle, noStrudel, nostr-tools, NDK en rust-nostr leverden ook door deze periode, zodat de protocolopruiming naast actief client- en librarywerk zat.
April 2026: NIP-34 hardening, badges en adoption-gerichte grants
April 2026, de maand waarin dit nummer wordt afgesloten, had vier gemergede NIPs PRs. De eerste was PR #2276, gemerged op 1 april, die NIP-58 profile badges veranderde in kind 10008 en kind 30008 badge sets toevoegde, waardoor badge-toewijzing en badge-collecties beter samenstelbaar werden. Een tweede git-over-Nostr bruikbaarheidswijziging kwam in PR #2312, gemerged op 10 april, met de toevoeging van nostr:// clone URL-semantiek aan NIP-34. De opruimingen van 25 april, PR #2325 en PR #2326, verwijderden ongebruikte en onjuiste NIP-34-taal.
Gerelateerde commits maken dezelfde oppervlakken scherper. Op 22 april voegde fiatjaf een Blossom-serverlijst toe aan NIP-51 en paste NIP-29 metadata editing aan om overeen te komen met Flotilla’s PUT-stijl gedrag. Op 26 april hernoemde hij NIP-5A voor de duidelijkheid. April 2026 richtte zich op het gemakkelijker maken om reeds gebruikte protocoloppervlakken te implementeren en moeilijker om ze verkeerd te lezen.
OpenSats kondigde zijn Sixteenth Wave of Nostr Grants aan op 8 april, ter ondersteuning van Amethyst Desktop, Nostr Mail, Nostrord, Nurunuru (null–nostr) en een HAMSTR-verlenging: desktopclients, e-mail-achtige messaging, group UX, Japanse onboarding en off-grid connectiviteit.
Bedankt voor het lezen van Nostr Compass #20. Stuur ons een DM op Nostr met tips, correcties of nieuwe projecten om te behandelen.