Browse Source

Merge pull request #11 from Semisol/nip16

NIP16: Event Treatment
nip20-web-comments
fiatjaf 2 years ago
committed by GitHub
parent
commit
7536d44e9f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 31
      16.md

31
16.md

@ -0,0 +1,31 @@
NIP-16
======
Event Treatment
---------------
`draft` `optional` `author:Semisol`
Relays may decide to allow replaceable and/or ephemeral events.
Replaceable Events
------------------
A *replaceable event* is defined as an event with a kind `10000 <= n < 20000`.
Upon a replaceable event with a newer timestamp than the currently known latest replaceable event with the same kind, the old event SHOULD be discarded and replaced with the newer event.
Ephemeral Events
----------------
An *ephemeral event* is defined as an event with a kind `20000 <= n < 30000`.
Upon an ephemeral event being received, the relay SHOULD send it to all clients with a matching filter, and MUST NOT store it.
Client Behavior
---------------
Clients SHOULD use the `supported_nips` field to learn if a relay supports generic tag queries. Clients SHOULD NOT send ephemeral events to relays that do not support this NIP; they will most likely be persisted. Clients MAY send replaceable events to relays that may not support this NIP, and clients querying SHOULD be prepared for the relay to send multiple events and should use the latest one.
Suggested Use Cases
-------------------
* States: An application may create a state event that is replaced every time a new state is set (such as statuses)
* Typing indicators: A chat application may use ephemeral events as a typing indicator.
* Messaging: Two pubkeys can message over nostr using ephemeral events.
Loading…
Cancel
Save