NIP-33: Parameterized Replaceable Events (Addressable Events)
NIP-33 originally defined parameterized replaceable events, a class of events where only one event per (pubkey, kind, d-tag) tuple is retained by relays. The concept has since been renamed to “addressable events” and folded into NIP-01. The NIP-33 document now redirects to NIP-01 but remains a common reference in codebases and documentation.
How It Works
An addressable event uses a kind in the range 30000-39999. Each event carries a d tag whose value, together with the author’s pubkey and the kind number, forms a unique address. When a relay receives a new event matching an existing (pubkey, kind, d-tag) tuple, it replaces the older event with the newer one (by created_at). This makes addressable events useful for mutable state: profiles, settings, app configurations, classified listings, and similar structures where only the latest version matters.
Clients reference addressable events with a tags in the format <kind>:<pubkey>:<d-tag>, optionally followed by a relay hint.
Common Uses
- Kind
30023long-form articles - Kind
30078app-specific data (used by NIP-78) - Kind
31923calendar events (NIP-52) - Kind
31990handler recommendations (NIP-89) - Kind
30009badge definitions (NIP-58) - Kind
31991agent run configurations (Notedeck Agentium)
Relationship to NIP-01
NIP-33 was merged into NIP-01 as part of a consolidation effort. The NIP-01 spec now defines three event retention categories: regular events (kept as-is), replaceable events (one per (pubkey, kind)), and addressable events (one per (pubkey, kind, d-tag)). NIP-33 remains a valid shorthand for the addressable-event concept.
Primary sources:
- NIP-33 (redirect)
- NIP-01 Specification - Addressable events section
Mentioned in:
See also: