NIP-99 definiert adressierbare Kleinanzeigen-Events für Waren, Dienstleistungen, Jobs, Vermietungen und andere Angebote. Es gibt Marktplatz-Apps ein einfacheres Event-Modell als die ältere NIP-15 Marktplatz-Spezifikation, weshalb viele aktuelle Commerce-Clients auf NIP-99 aufbauen.

Funktionsweise

Aktive Angebote verwenden Kind 30402, während Entwürfe oder inaktive Angebote Kind 30403 verwenden. Der Autor-Pubkey ist der Verkäufer oder Angebotsersteller. Das content-Feld trägt die menschenlesbare Beschreibung in Markdown, und die Tags enthalten strukturierte Felder wie Titel, Zusammenfassung, Preis, Standort und Status.

{
  "id": "b3e392b11f5d4f28321cedd09303a748acfd0487aea5a7450b3481c60b6e4f87",
  "pubkey": "a695f6b60119d9521934a691347d9f78e8770b56da16bb255ee286ddf9fda919",
  "created_at": 1741699200,
  "kind": 30402,
  "tags": [
    ["d", "shopstr-handmade-wallet-001"],
    ["title", "Handmade leather wallet"],
    ["summary", "Brown bifold wallet with Bitcoin and Nostr branding"],
    ["published_at", "1741699200"],
    ["location", "Austin, TX"],
    ["price", "75000", "SAT"],
    ["status", "active"],
    ["t", "merch"],
    ["t", "bitcoin"]
  ],
  "content": "Full listing description in Markdown, shipping details, and contact terms.",
  "sig": "4a5c7e8f9012ab34cd56ef7890ab12cd34ef56ab78cd90ef12ab34cd56ef78900112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"
}

Das Event ist adressierbar, sodass ein Verkäufer das Angebot aktualisieren kann, während das gleiche Identitätstupel aus Pubkey, Kind und d-Tag beibehalten wird. Das macht Angebots-Revisionen für Clients sauberer, als für jede Preis- oder Statusänderung eine komplett neue unveränderliche Notiz zu veröffentlichen.

Warum das wichtig ist

Die Stärke von NIP-99 liegt darin, dass es Raum für verschiedene Marktplatz-Designs lässt und gleichzeitig die grundlegende Angebotsstruktur standardisiert. Ein Client kann sich auf lokale Kleinanzeigen konzentrieren, ein anderer auf Abonnements und ein dritter auf globale Produktkataloge. Wenn sie sich alle auf die Event-Struktur einigen, können Verkäufer einmal veröffentlichen und trotzdem eine gewisse client-übergreifende Sichtbarkeit erhalten.

Diese Flexibilität erklärt auch, warum aktuelle Marktplatz-Projekte es bevorzugen. Die Spezifikation ist strukturiert genug für Suche und Anzeige, zwingt aber nicht jede App in einen einzigen Treuhand-, Versand- oder Zahlungsworkflow.

Implementierungshinweise

  • price-Tags können einmalige oder wiederkehrende Zahlungen beschreiben, indem ein optionales Frequenzfeld hinzugefügt wird.
  • t-Tags fungieren als Kategorien oder Suchbegriffe.
  • image-Tags erlauben Clients, Galerieansichten zu rendern, ohne den Markdown-Körper zu parsen.
  • Ein Angebot kann mit e- oder a-Tags auf verwandte Events oder Dokumente verlinken, wenn ein Marktplatz reichhaltigeren Produktkontext benötigt.

Implementierungen

  • Shopstr - Nostr-Marktplatz mit NIP-99-Angeboten und agenten-freundlichen MCP-Endpunkten
  • Milk Market - Lebensmittel-Marktplatz, der auf derselben Angebotsschicht aufbaut, mit gemischten Zahlungsoptionen

Primärquellen:

Erwähnt in:

Siehe auch: