A mirror for NIPS
Go to file
Doug Hoyte 9cac35db9b Specify replacement behaviour when replaceable events have the same timestamp
- This is so that relays can converge on a deterministic sets of events, no matter the order they were received
- Otherwise, clients or relays that sync their sets of events could continually retransmit events they think are missing on the other side, wasting bandwidth
2023-05-19 00:54:44 -04:00
01.md A few changes to some nips. (#510) 2023-05-09 12:17:15 -03:00
02.md Update 02.md 2023-03-06 16:37:42 -03:00
03.md Several NIP examples (3, 11) weren't quoting the field keys (JSON keys must be quoted) 2023-01-18 09:42:32 -03:00
04.md fix grammar and typos 2023-04-07 11:45:06 -03:00
05.md fix grammar and typos 2023-04-07 11:45:06 -03:00
06.md Use account instead of address_index 2023-04-04 14:11:50 -04:00
07.md Add new signing extension to NIP-07 2023-05-15 15:43:09 -03:00
08.md Update 08.md 2023-04-19 22:32:08 +09:00
09.md NIP-09: Fix some things 2023-04-16 00:25:53 +03:00
10.md relay hint language update (#291) 2023-02-23 16:20:10 -03:00
11.md Restore some lost changes 2023-05-09 12:15:33 -03:00
12.md change NIP-12 so only single-letter tags are indexed. 2022-07-10 15:33:07 -03:00
13.md forgot to update the initial nonce in the explanation 2023-04-24 14:43:15 -05:00
14.md Nip-14 for subject tag 2022-05-24 07:33:11 -05:00
15.md fix: Updating links in NIP-15 to point to intended other NIPs. 2023-05-15 16:01:33 -03:00
16.md Specify replacement behaviour when replaceable events have the same timestamp 2023-05-19 00:54:44 -04:00
18.md Drop event copy 2023-03-29 18:45:12 -03:00
19.md indicate optional kind TLV on nevent (@v0l). 2023-04-09 21:21:59 -03:00
20.md NIP-20: fix a typo 2023-03-02 21:36:15 -03:00
21.md Change NIP-21 URL->URI 2023-05-01 15:16:30 -03:00
22.md fix grammar and typos 2023-04-07 11:45:06 -03:00
23.md Fix a typo in link to NIP-33 2023-03-26 07:14:43 -03:00
25.md fix grammar and typos 2023-04-07 11:45:06 -03:00
26.md NIP-26 allow the delegator to delete the events published by the delegatee 2023-04-13 11:50:55 -03:00
27.md Add links to NIP-21 2023-04-11 00:16:12 -03:00
28.md More explicit 2023-05-13 13:30:42 -03:00
30.md allow underscores in an emoji shortcode 2023-05-17 12:38:16 -03:00
33.md Specify replacement behaviour when replaceable events have the same timestamp 2023-05-19 00:54:44 -04:00
36.md NIP-36 - sensitive content / content-warning (#82) 2022-12-01 20:41:15 -03:00
39.md NIP-39: minor readability changes 2023-03-13 04:43:17 +03:00
40.md fix grammar and typos 2023-04-07 11:45:06 -03:00
42.md Update 42.md 2023-01-11 00:05:15 -03:00
45.md Clarify how NIP 45 works with multiple COUNT filters. (#504) 2023-05-06 15:35:21 -03:00
46.md Update 46.md 2023-03-15 19:40:40 -03:00
47.md nip47: add lud16 parameter to connection string 2023-05-10 12:16:37 -03:00
50.md Fix NIP-50 typo 2023-02-01 07:06:25 -03:00
51.md fix typos 2023-04-14 10:59:07 -03:00
56.md NIP-56: Reporting (#205) 2023-02-07 18:15:38 -03:00
57.md fix description of nostr query param 2023-05-14 13:16:10 +09:00
58.md docs: add nip-58 badge event and profile badges (#229) 2023-02-22 22:11:55 -03:00
65.md More explicit explanation of the meaning of read and write relays 2023-02-19 17:56:30 -03:00
78.md fix grammar and typos 2023-04-07 11:45:06 -03:00
94.md Add dim tag to NIP 94 2023-04-28 13:05:35 -03:00
README.md Add emoji tag to list 2023-05-17 12:37:23 -03:00

NIPs

NIPs stand for Nostr Implementation Possibilities. They exist to document what may be implemented by Nostr-compatible relay and client software.



List

Event Kinds

kind description NIP
0 Metadata 1
1 Short Text Note 1
2 Recommend Relay 1
3 Contacts 2
4 Encrypted Direct Messages 4
5 Event Deletion 9
6 Reposts 18
7 Reaction 25
8 Badge Award 58
40 Channel Creation 28
41 Channel Metadata 28
42 Channel Message 28
43 Channel Hide Message 28
44 Channel Mute User 28
1063 File Metadata 94
1984 Reporting 56
9734 Zap Request 57
9735 Zap 57
10000 Mute List 51
10001 Pin List 51
10002 Relay List Metadata 65
13194 Wallet Info 47
22242 Client Authentication 42
23194 Wallet Request 47
23195 Wallet Response 47
24133 Nostr Connect 46
30000 Categorized People List 51
30001 Categorized Bookmark List 51
30008 Profile Badges 58
30009 Badge Definition 58
30017 Create or update a stall 15
30018 Create or update a product 15
30023 Long-form Content 23
30078 Application-specific Data 78

Event Kind Ranges

range description NIP
1000--9999 Regular Events 16
10000--19999 Replaceable Events 16
20000--29999 Ephemeral Events 16
30000--39999 Parameterized Replaceable Events 33

Message types

Client to Relay

type description NIP
AUTH used to send authentication events 42
CLOSE used to stop previous subscriptions 1
COUNT used to request event counts 45
EVENT used to publish events 1
REQ used to request events and subscribe to new updates 1

Relay to Client

type description NIP
AUTH used to send authentication challenges 42
COUNT used to send requested event counts to clients 45
EOSE used to notify clients all stored events have been sent 1
EVENT used to send events requested to clients 1
NOTICE used to send human-readable messages to clients 1
OK used to notify clients if an EVENT was successful 20

Please update these lists when proposing NIPs introducing new event kinds.

When experimenting with kinds, keep in mind the classification introduced by NIP-16 and NIP-33.

Standardized Tags

name value other parameters NIP
a coordinates to an event relay URL 33, 23
d identifier -- 33
e event id (hex) relay URL, marker 1, 10
g geohash -- 12
i identity proof 39
p pubkey (hex) relay URL 1
r a reference (URL, etc) -- 12
t hashtag -- 12
amount millisats -- 57
bolt11 bolt11 invoice -- 57
challenge challenge string -- 42
content-warning reason -- 36
delegation pubkey, conditions, delegation token -- 26
description badge description -- 58
description invoice description -- 57
emoji shortcode image URL 30
expiration unix timestamp (string) -- 40
image image URL dimensions in pixels 23, 58
lnurl bech32 encoded lnurl -- 57
name badge name -- 58
nonce random -- 13
preimage hash of bolt11 invoice -- 57
published_at unix timestamp (string) -- 23
relay relay url -- 42
relays relay list -- 57
subject subject -- 14
summary article summary -- 23
thumb badge thumbnail dimensions in pixels 58
title article title -- 23
zap profile name type of value 57

Criteria for acceptance of NIPs

  1. They should be implemented in at least two clients and one relay -- when applicable.
  2. They should make sense.
  3. They should be optional and backwards-compatible: care must be taken such that clients and relays that choose to not implement them do not stop working when interacting with the ones that choose to.
  4. There should be no more than one way of doing the same thing.
  5. Other rules will be made up when necessary.

License

All NIPs are public domain.