NIP-33: Parameterized Replaceable Events (Addressable Events)
NIP-33 definierte ursprünglich parametrisierte ersetzbare Events, eine Klasse von Events, bei der Relays pro (pubkey, kind, d-tag)-Tupel nur ein Event vorhalten. Das Konzept wurde inzwischen in „Addressable Events" umbenannt und in NIP-01 integriert. Das NIP-33-Dokument leitet nun auf NIP-01 weiter, bleibt aber eine gängige Referenz in Codebases und Dokumentation.
Funktionsweise
Ein Addressable Event verwendet einen Kind im Bereich 30000-39999. Jedes Event trägt einen d-Tag, dessen Wert zusammen mit dem Pubkey des Autors und der Kind-Nummer eine eindeutige Adresse bildet. Wenn ein Relay ein neues Event erhält, das einem bestehenden (pubkey, kind, d-tag)-Tupel entspricht, ersetzt es das ältere Event durch das neuere (nach created_at). Das macht Addressable Events nützlich für veränderlichen Zustand: Profile, Einstellungen, App-Konfigurationen, Kleinanzeigen und ähnliche Strukturen, bei denen nur die neueste Version zählt.
Clients referenzieren Addressable Events mit a-Tags im Format <kind>:<pubkey>:<d-tag>, optional gefolgt von einem Relay-Hint.
Häufige Verwendungen
- Kind
30023Langform-Artikel - Kind
30078App-spezifische Daten (verwendet von NIP-78) - Kind
31923Kalenderevents (NIP-52) - Kind
31990Handler-Empfehlungen (NIP-89) - Kind
30009Badge-Definitionen (NIP-58) - Kind
31991Agent-Run-Konfigurationen (Notedeck Agentium)
Verhältnis zu NIP-01
NIP-33 wurde im Rahmen einer Konsolidierung in NIP-01 integriert. Die NIP-01-Spezifikation definiert nun drei Event-Aufbewahrungskategorien: reguläre Events (unverändert aufbewahrt), ersetzbare Events (eines pro (pubkey, kind)) und adressierbare Events (eines pro (pubkey, kind, d-tag)). NIP-33 bleibt ein gängiges Kürzel für das Addressable-Event-Konzept.
Primärquellen:
- NIP-33 (Weiterleitung)
- NIP-01-Spezifikation - Abschnitt Addressable Events
Erwähnt in:
Siehe auch: