Statushinweis: Die aktuelle NIP-31-Spezifikation stuft sich selbst als unrecommended ein, da sie „unnötig aufgebläht“ sei, und ihre Statuszeile lautet draft, unrecommended und optional. Relays speichern bereits Events, die diese Konvention nutzen. Deshalb erklärt diese Seite, wie Clients sie lesen. Sie empfiehlt NIP-31 nicht für neue Protokolle.

NIP-31 definiert einen alt-Tag auf oberster Ebene. Der Tag enthält eine kurze Klartext-Zusammenfassung für benutzerdefinierte Event-Kinds, die nicht als gewöhnliche Textnotizen gelesen werden sollen.

Funktionsweise

Die Autorin oder der Autor eines Events mit benutzerdefiniertem Kind fügt einen alt-Tag mit einer für Menschen lesbaren Beschriftung hinzu. Clients, die auf Kind 1 ausgerichtet sind, müssen nicht jedes Kind abonnieren, das sie nicht kennen. Ihre Nutzer können trotzdem auf ein solches Event stoßen, wenn eine Notiz darauf verweist. Die Beschriftung liefert dann etwas Kontext, obwohl der Client dieses Kind nicht implementiert.

Tag-Fragment, kein vollständiges Event:

["alt", "<short plaintext summary>"]

Eine lesbare Beschriftung betrifft nur die Anzeige. Sie kann keine Stimme abgeben, keine Wallet-Anfrage ausführen und keine andere native Aktion des Kinds durchführen. Für eine umfassendere Interaktion verweist die Spezifikation auf NIP-89: Recommended Application Handlers.

Implementierungen

In der Karte für unbekannte Events von noStrudel bei Commit 7c68acf wird der erste alt-Tag getrimmt und dient als Hauptbeschriftung, optional ergänzt um eine Zeile Using <client>. Ein fehlender oder leerer Wert ergibt Unknown event (kind ...), und bis zu drei Zeilen des Inhalts erscheinen separat. Dieselbe Komponente löst den client-Tag über NIP-89-Handler-Vorlagen auf. Sie zeigt eine Schaltfläche zum Öffnen, wenn eine teilbare Adresse existiert, und Open in <client>, wenn sich ein gültiger Handler-Link auflösen lässt. Die Erklärung und die Weiterleitung an die App sind getrennte Bedienelemente.

Amethysts UnknownEventDigest.kt bei Commit 553f761 bevorzugt Inhalt, den es als Fließtext einstuft, und greift ersatzweise auf alt zurück. Sein Parser trimmt die Werte und nimmt das erste nicht leere alt. Daher kann ein Event, dessen erstes alt leer ist, hier eine andere Beschriftung erhalten als in noStrudel. Beide Beschreibungen geben den Quellcode bei diesen Commits wieder. Keine bestätigt, wie sich eine veröffentlichte Version verhält.

Grenzen

  • alt ist ein Tag, daher decken die in NIP-01 definierte Event-ID und Signatur ihn ab. Eine gültige Signatur zeigt, dass der Autor die Beschriftung veröffentlicht hat. Sie zeigt nicht, dass die Beschriftung zutrifft, sodass eine Zusammenfassung irreführend sein kann.
  • Tags sind öffentlich. Ein alt an einem Event mit verschlüsseltem Inhalt legt seine Zusammenfassung offen und kann verraten, was der Inhalt verbirgt.
  • Beide oben genannten Eigenschaften ergeben sich aus dem Event-Umschlag von NIP-01. Der Text von NIP-31 selbst formuliert sie nicht als Anforderungen.
  • Ein alt-Tag auf oberster Ebene unterscheidet sich vom Bildbeschreibungsfeld alt innerhalb von imeta, und Renderer parsen beide getrennt.

Primärquellen:

Erwähnt in:

Siehe auch: