upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorKieran <kieran@harkin.me>2024-10-15 11:15:54 +0100
committerGitHub <noreply@github.com>2024-10-15 11:15:54 +0100
commit1e2f19863ca56754daa2466881eb22087a71b17d (patch)
tree4f7be759dce290fea1d3ae10c403260b466ee16c /README.md
parent53afaaece61f02e92b5ef9c3e9c32945c7ebf522 (diff)
parente381b577c997b849fa544eea7dc9f08b360b4a33 (diff)
Merge branch 'master' into nip71-imeta
Diffstat (limited to 'README.md')
-rw-r--r--README.md268
1 files changed, 147 insertions, 121 deletions
diff --git a/README.md b/README.md
index f0af4f0..e03cb3b 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
30- [NIP-06: Basic key derivation from mnemonic seed phrase](06.md) 30- [NIP-06: Basic key derivation from mnemonic seed phrase](06.md)
31- [NIP-07: `window.nostr` capability for web browsers](07.md) 31- [NIP-07: `window.nostr` capability for web browsers](07.md)
32- [NIP-08: Handling Mentions](08.md) --- **unrecommended**: deprecated in favor of [NIP-27](27.md) 32- [NIP-08: Handling Mentions](08.md) --- **unrecommended**: deprecated in favor of [NIP-27](27.md)
33- [NIP-09: Event Deletion](09.md) 33- [NIP-09: Event Deletion Request](09.md)
34- [NIP-10: Conventions for clients' use of `e` and `p` tags in text events](10.md) 34- [NIP-10: Conventions for clients' use of `e` and `p` tags in text events](10.md)
35- [NIP-11: Relay Information Document](11.md) 35- [NIP-11: Relay Information Document](11.md)
36- [NIP-13: Proof of Work](13.md) 36- [NIP-13: Proof of Work](13.md)
@@ -68,13 +68,17 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
68- [NIP-52: Calendar Events](52.md) 68- [NIP-52: Calendar Events](52.md)
69- [NIP-53: Live Activities](53.md) 69- [NIP-53: Live Activities](53.md)
70- [NIP-54: Wiki](54.md) 70- [NIP-54: Wiki](54.md)
71- [NIP-55: Android Signer Application](55.md)
71- [NIP-56: Reporting](56.md) 72- [NIP-56: Reporting](56.md)
72- [NIP-57: Lightning Zaps](57.md) 73- [NIP-57: Lightning Zaps](57.md)
73- [NIP-58: Badges](58.md) 74- [NIP-58: Badges](58.md)
74- [NIP-59: Gift Wrap](59.md) 75- [NIP-59: Gift Wrap](59.md)
76- [NIP-64: Chess (PGN)](64.md)
75- [NIP-65: Relay List Metadata](65.md) 77- [NIP-65: Relay List Metadata](65.md)
78- [NIP-70: Protected Events](70.md)
76- [NIP-71: Video Events](71.md) 79- [NIP-71: Video Events](71.md)
77- [NIP-72: Moderated Communities](72.md) 80- [NIP-72: Moderated Communities](72.md)
81- [NIP-73: External Content IDs](73.md)
78- [NIP-75: Zap Goals](75.md) 82- [NIP-75: Zap Goals](75.md)
79- [NIP-78: Application-specific data](78.md) 83- [NIP-78: Application-specific data](78.md)
80- [NIP-84: Highlights](84.md) 84- [NIP-84: Highlights](84.md)
@@ -87,117 +91,137 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
87- [NIP-99: Classified Listings](99.md) 91- [NIP-99: Classified Listings](99.md)
88 92
89## Event Kinds 93## Event Kinds
90| kind | description | NIP | 94
91| ------------- | -------------------------- | ------------------------ | 95| kind | description | NIP |
92| `0` | Metadata | [01](01.md) | 96| ------------- | ------------------------------- | -------------------------------------- |
93| `1` | Short Text Note | [01](01.md) | 97| `0` | User Metadata | [01](01.md) |
94| `2` | Recommend Relay | 01 (deprecated) | 98| `1` | Short Text Note | [01](01.md) |
95| `3` | Follows | [02](02.md) | 99| `2` | Recommend Relay | 01 (deprecated) |
96| `4` | Encrypted Direct Messages | [04](04.md) | 100| `3` | Follows | [02](02.md) |
97| `5` | Event Deletion | [09](09.md) | 101| `4` | Encrypted Direct Messages | [04](04.md) |
98| `6` | Repost | [18](18.md) | 102| `5` | Event Deletion Request | [09](09.md) |
99| `7` | Reaction | [25](25.md) | 103| `6` | Repost | [18](18.md) |
100| `8` | Badge Award | [58](58.md) | 104| `7` | Reaction | [25](25.md) |
101| `9` | Group Chat Message | [29](29.md) | 105| `8` | Badge Award | [58](58.md) |
102| `10` | Group Chat Threaded Reply | [29](29.md) | 106| `9` | Group Chat Message | [29](29.md) |
103| `11` | Group Thread | [29](29.md) | 107| `10` | Group Chat Threaded Reply | [29](29.md) |
104| `12` | Group Thread Reply | [29](29.md) | 108| `11` | Group Thread | [29](29.md) |
105| `13` | Seal | [59](59.md) | 109| `12` | Group Thread Reply | [29](29.md) |
106| `14` | Direct Message | [17](17.md) | 110| `13` | Seal | [59](59.md) |
107| `16` | Generic Repost | [18](18.md) | 111| `14` | Direct Message | [17](17.md) |
108| `40` | Channel Creation | [28](28.md) | 112| `16` | Generic Repost | [18](18.md) |
109| `41` | Channel Metadata | [28](28.md) | 113| `17` | Reaction to a website | [25](25.md) |
110| `42` | Channel Message | [28](28.md) | 114| `40` | Channel Creation | [28](28.md) |
111| `43` | Channel Hide Message | [28](28.md) | 115| `41` | Channel Metadata | [28](28.md) |
112| `44` | Channel Mute User | [28](28.md) | 116| `42` | Channel Message | [28](28.md) |
113| `818` | Merge Requests | [54](54.md) | 117| `43` | Channel Hide Message | [28](28.md) |
114| `1021` | Bid | [15](15.md) | 118| `44` | Channel Mute User | [28](28.md) |
115| `1022` | Bid confirmation | [15](15.md) | 119| `64` | Chess (PGN) | [64](64.md) |
116| `1040` | OpenTimestamps | [03](03.md) | 120| `818` | Merge Requests | [54](54.md) |
117| `1059` | Gift Wrap | [59](59.md) | 121| `1021` | Bid | [15](15.md) |
118| `1063` | File Metadata | [94](94.md) | 122| `1022` | Bid confirmation | [15](15.md) |
119| `1311` | Live Chat Message | [53](53.md) | 123| `1040` | OpenTimestamps | [03](03.md) |
120| `1617` | Patches | [34](34.md) | 124| `1059` | Gift Wrap | [59](59.md) |
121| `1621` | Issues | [34](34.md) | 125| `1063` | File Metadata | [94](94.md) |
122| `1622` | Replies | [34](34.md) | 126| `1311` | Live Chat Message | [53](53.md) |
123| `1630`-`1633` | Status | [34](34.md) | 127| `1617` | Patches | [34](34.md) |
124| `1971` | Problem Tracker | [nostrocket][nostrocket] | 128| `1621` | Issues | [34](34.md) |
125| `1984` | Reporting | [56](56.md) | 129| `1622` | Replies | [34](34.md) |
126| `1985` | Label | [32](32.md) | 130| `1630`-`1633` | Status | [34](34.md) |
127| `2003` | Torrent | [35](35.md) | 131| `1971` | Problem Tracker | [nostrocket][nostrocket] |
128| `2004` | Torrent Comment | [35](35.md) | 132| `1984` | Reporting | [56](56.md) |
129| `2022` | Coinjoin Pool | [joinstr][joinstr] | 133| `1985` | Label | [32](32.md) |
130| `4550` | Community Post Approval | [72](72.md) | 134| `1986` | Relay reviews | |
131| `5000`-`5999` | Job Request | [90](90.md) | 135| `1987` | AI Embeddings / Vector lists | [NKBIP-02] |
132| `6000`-`6999` | Job Result | [90](90.md) | 136| `2003` | Torrent | [35](35.md) |
133| `7000` | Job Feedback | [90](90.md) | 137| `2004` | Torrent Comment | [35](35.md) |
134| `9000`-`9030` | Group Control Events | [29](29.md) | 138| `2022` | Coinjoin Pool | [joinstr][joinstr] |
135| `9041` | Zap Goal | [75](75.md) | 139| `4550` | Community Post Approval | [72](72.md) |
136| `9734` | Zap Request | [57](57.md) | 140| `5000`-`5999` | Job Request | [90](90.md) |
137| `9735` | Zap | [57](57.md) | 141| `6000`-`6999` | Job Result | [90](90.md) |
138| `9802` | Highlights | [84](84.md) | 142| `7000` | Job Feedback | [90](90.md) |
139| `10000` | Mute list | [51](51.md) | 143| `9000`-`9030` | Group Control Events | [29](29.md) |
140| `10001` | Pin list | [51](51.md) | 144| `9041` | Zap Goal | [75](75.md) |
141| `10002` | Relay List Metadata | [65](65.md) | 145| `9467` | Tidal login | [Tidal-nostr] |
142| `10003` | Bookmark list | [51](51.md) | 146| `9734` | Zap Request | [57](57.md) |
143| `10004` | Communities list | [51](51.md) | 147| `9735` | Zap | [57](57.md) |
144| `10005` | Public chats list | [51](51.md) | 148| `9802` | Highlights | [84](84.md) |
145| `10006` | Blocked relays list | [51](51.md) | 149| `10000` | Mute list | [51](51.md) |
146| `10007` | Search relays list | [51](51.md) | 150| `10001` | Pin list | [51](51.md) |
147| `10009` | User groups | [51](51.md), [29](29.md) | 151| `10002` | Relay List Metadata | [65](65.md) |
148| `10015` | Interests list | [51](51.md) | 152| `10003` | Bookmark list | [51](51.md) |
149| `10030` | User emoji list | [51](51.md) | 153| `10004` | Communities list | [51](51.md) |
150| `10050` | Relay list to receive DMs | [17](17.md) | 154| `10005` | Public chats list | [51](51.md) |
151| `10096` | File storage server list | [96](96.md) | 155| `10006` | Blocked relays list | [51](51.md) |
152| `13194` | Wallet Info | [47](47.md) | 156| `10007` | Search relays list | [51](51.md) |
153| `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] | 157| `10009` | User groups | [51](51.md), [29](29.md) |
154| `22242` | Client Authentication | [42](42.md) | 158| `10015` | Interests list | [51](51.md) |
155| `23194` | Wallet Request | [47](47.md) | 159| `10030` | User emoji list | [51](51.md) |
156| `23195` | Wallet Response | [47](47.md) | 160| `10050` | Relay list to receive DMs | [51](51.md), [17](17.md) |
157| `24133` | Nostr Connect | [46](46.md) | 161| `10063` | User server list | [Blossom][blossom] |
158| `27235` | HTTP Auth | [98](98.md) | 162| `10096` | File storage server list | [96](96.md) |
159| `30000` | Follow sets | [51](51.md) | 163| `13194` | Wallet Info | [47](47.md) |
160| `30001` | Generic lists | [51](51.md) | 164| `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] |
161| `30002` | Relay sets | [51](51.md) | 165| `22242` | Client Authentication | [42](42.md) |
162| `30003` | Bookmark sets | [51](51.md) | 166| `23194` | Wallet Request | [47](47.md) |
163| `30004` | Curation sets | [51](51.md) | 167| `23195` | Wallet Response | [47](47.md) |
164| `30005` | Video sets | [51](51.md) | 168| `24133` | Nostr Connect | [46](46.md) |
165| `30008` | Profile Badges | [58](58.md) | 169| `24242` | Blobs stored on mediaservers | [Blossom][blossom] |
166| `30009` | Badge Definition | [58](58.md) | 170| `27235` | HTTP Auth | [98](98.md) |
167| `30015` | Interest sets | [51](51.md) | 171| `30000` | Follow sets | [51](51.md) |
168| `30017` | Create or update a stall | [15](15.md) | 172| `30001` | Generic lists | [51](51.md) |
169| `30018` | Create or update a product | [15](15.md) | 173| `30002` | Relay sets | [51](51.md) |
170| `30019` | Marketplace UI/UX | [15](15.md) | 174| `30003` | Bookmark sets | [51](51.md) |
171| `30020` | Product sold as an auction | [15](15.md) | 175| `30004` | Curation sets | [51](51.md) |
172| `30023` | Long-form Content | [23](23.md) | 176| `30005` | Video sets | [51](51.md) |
173| `30024` | Draft Long-form Content | [23](23.md) | 177| `30007` | Kind mute sets | [51](51.md) |
174| `30030` | Emoji sets | [51](51.md) | 178| `30008` | Profile Badges | [58](58.md) |
175| `30063` | Release artifact sets | [51](51.md) | 179| `30009` | Badge Definition | [58](58.md) |
176| `30078` | Application-specific Data | [78](78.md) | 180| `30015` | Interest sets | [51](51.md) |
177| `30311` | Live Event | [53](53.md) | 181| `30017` | Create or update a stall | [15](15.md) |
178| `30315` | User Statuses | [38](38.md) | 182| `30018` | Create or update a product | [15](15.md) |
179| `30402` | Classified Listing | [99](99.md) | 183| `30019` | Marketplace UI/UX | [15](15.md) |
180| `30403` | Draft Classified Listing | [99](99.md) | 184| `30020` | Product sold as an auction | [15](15.md) |
181| `30617` | Repository announcements | [34](34.md) | 185| `30023` | Long-form Content | [23](23.md) |
182| `30818` | Wiki article | [54](54.md) | 186| `30024` | Draft Long-form Content | [23](23.md) |
183| `30819` | Redirects | [54](54.md) | 187| `30030` | Emoji sets | [51](51.md) |
184| `31890` | Feed | [NUD: Custom Feeds](https://wikifreedia.xyz/cip-01/97c70a44366a6535c1) | 188| `30040` | Modular Article Header | [NKBIP-01] |
185| `31922` | Date-Based Calendar Event | [52](52.md) | 189| `30041` | Modular Article Content | [NKBIP-01] |
186| `31923` | Time-Based Calendar Event | [52](52.md) | 190| `30063` | Release artifact sets | [51](51.md) |
187| `31924` | Calendar | [52](52.md) | 191| `30078` | Application-specific Data | [78](78.md) |
188| `31925` | Calendar Event RSVP | [52](52.md) | 192| `30311` | Live Event | [53](53.md) |
189| `31989` | Handler recommendation | [89](89.md) | 193| `30315` | User Statuses | [38](38.md) |
190| `31990` | Handler information | [89](89.md) | 194| `30388` | Slide Set | [Corny Chat][cornychat-slideset] |
191| `34235` | Video Event | [71](71.md) | 195| `30402` | Classified Listing | [99](99.md) |
192| `34236` | Short-form Portrait Video Event | [71](71.md) | 196| `30403` | Draft Classified Listing | [99](99.md) |
193| `34237` | Video View Event | [71](71.md) | 197| `30617` | Repository announcements | [34](34.md) |
194| `34550` | Community Definition | [72](72.md) | 198| `30618` | Repository state announcements | [34](34.md) |
195| `39000-9` | Group metadata events | [29](29.md) | 199| `30818` | Wiki article | [54](54.md) |
196 200| `30819` | Redirects | [54](54.md) |
197[NUD: Custom Feeds]: https://wikifreedia.xyz/cip-01/97c70a44366a6535c1 201| `31388` | Link Set | [Corny Chat][cornychat-linkset] |
202| `31890` | Feed | [NUD: Custom Feeds][NUD: Custom Feeds] |
203| `31922` | Date-Based Calendar Event | [52](52.md) |
204| `31923` | Time-Based Calendar Event | [52](52.md) |
205| `31924` | Calendar | [52](52.md) |
206| `31925` | Calendar Event RSVP | [52](52.md) |
207| `31989` | Handler recommendation | [89](89.md) |
208| `31990` | Handler information | [89](89.md) |
209| `34235` | Video Event | [71](71.md) |
210| `34236` | Short-form Portrait Video Event | [71](71.md) |
211| `34237` | Video View Event | [71](71.md) |
212| `34550` | Community Definition | [72](72.md) |
213| `39000-9` | Group metadata events | [29](29.md) |
214
215[NUD: Custom Feeds]: https://wikifreedia.xyz/cip-01/
198[nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md 216[nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md
199[lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md 217[lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md
218[cornychat-slideset]: https://cornychat.com/datatypes#kind30388slideset
219[cornychat-linkset]: https://cornychat.com/datatypes#kind31388linkset
200[joinstr]: https://gitlab.com/1440000bytes/joinstr/-/blob/main/NIP.md 220[joinstr]: https://gitlab.com/1440000bytes/joinstr/-/blob/main/NIP.md
221[NKBIP-01]: https://wikistr.com/nkbip-01
222[NKBIP-02]: https://wikistr.com/nkbip-02
223[blossom]: https://github.com/hzrd149/blossom
224[Tidal-nostr]: https://wikistr.com/tidal-nostr
201 225
202## Message types 226## Message types
203 227
@@ -223,8 +247,6 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
223| `AUTH` | used to send authentication challenges | [42](42.md) | 247| `AUTH` | used to send authentication challenges | [42](42.md) |
224| `COUNT` | used to send requested event counts to clients | [45](45.md) | 248| `COUNT` | used to send requested event counts to clients | [45](45.md) |
225 249
226Please update these lists when proposing NIPs introducing new event kinds.
227
228## Standardized Tags 250## Standardized Tags
229 251
230| name | value | other parameters | NIP | 252| name | value | other parameters | NIP |
@@ -233,16 +255,18 @@ Please update these lists when proposing NIPs introducing new event kinds.
233| `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) | 255| `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) |
234| `a` | coordinates to an event | relay URL | [01](01.md) | 256| `a` | coordinates to an event | relay URL | [01](01.md) |
235| `d` | identifier | -- | [01](01.md) | 257| `d` | identifier | -- | [01](01.md) |
258| `-` | -- | -- | [70](70.md) |
236| `g` | geohash | -- | [52](52.md) | 259| `g` | geohash | -- | [52](52.md) |
237| `i` | identity | proof | [39](39.md) | 260| `h` | group id | -- | [29](29.md) |
261| `i` | external identity | proof, url hint | [39](39.md), [73](73.md) |
238| `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) | 262| `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) |
239| `l` | label, label namespace | annotations | [32](32.md) | 263| `l` | label, label namespace | -- | [32](32.md) |
240| `L` | label namespace | -- | [32](32.md) | 264| `L` | label namespace | -- | [32](32.md) |
241| `m` | MIME type | -- | [94](94.md) | 265| `m` | MIME type | -- | [94](94.md) |
242| `q` | event id (hex) | relay URL | [18](18.md) | 266| `q` | event id (hex) | relay URL, pubkey (hex) | [18](18.md) |
243| `r` | a reference (URL, etc) | petname | | 267| `r` | a reference (URL, etc) | -- | [24](24.md), [25](25.md) |
244| `r` | relay url | marker | [65](65.md) | 268| `r` | relay url | marker | [65](65.md) |
245| `t` | hashtag | -- | | 269| `t` | hashtag | -- | [24](24.md), [34](34.md) |
246| `alt` | summary | -- | [31](31.md) | 270| `alt` | summary | -- | [31](31.md) |
247| `amount` | millisatoshis, stringified | -- | [57](57.md) | 271| `amount` | millisatoshis, stringified | -- | [57](57.md) |
248| `bolt11` | `bolt11` invoice | -- | [57](57.md) | 272| `bolt11` | `bolt11` invoice | -- | [57](57.md) |
@@ -256,11 +280,11 @@ Please update these lists when proposing NIPs introducing new event kinds.
256| `encrypted` | -- | -- | [90](90.md) | 280| `encrypted` | -- | -- | [90](90.md) |
257| `expiration` | unix timestamp (string) | -- | [40](40.md) | 281| `expiration` | unix timestamp (string) | -- | [40](40.md) |
258| `goal` | event id (hex) | relay URL | [75](75.md) | 282| `goal` | event id (hex) | relay URL | [75](75.md) |
259| `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | 283| `image` | image URL | dimensions in pixels | [23](23.md), [52](52.md), [58](58.md) |
260| `imeta` | inline metadata | -- | [92](92.md) | 284| `imeta` | inline metadata | -- | [92](92.md) |
261| `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | 285| `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) |
262| `location` | location string | -- | [52](52.md), [99](99.md) | 286| `location` | location string | -- | [52](52.md), [99](99.md) |
263| `name` | name | -- | [34](34.md), [58](58.md) | 287| `name` | name | -- | [34](34.md), [58](58.md), [72](72.md) |
264| `nonce` | random | difficulty | [13](13.md) | 288| `nonce` | random | difficulty | [13](13.md) |
265| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | 289| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) |
266| `price` | price | currency, frequency | [99](99.md) | 290| `price` | price | currency, frequency | [99](99.md) |
@@ -269,16 +293,18 @@ Please update these lists when proposing NIPs introducing new event kinds.
269| `relay` | relay url | -- | [42](42.md), [17](17.md) | 293| `relay` | relay url | -- | [42](42.md), [17](17.md) |
270| `relays` | relay list | -- | [57](57.md) | 294| `relays` | relay list | -- | [57](57.md) |
271| `server` | file storage server url | -- | [96](96.md) | 295| `server` | file storage server url | -- | [96](96.md) |
272| `subject` | subject | -- | [14](14.md), [17](17.md) | 296| `subject` | subject | -- | [14](14.md), [17](17.md), [34](34.md) |
273| `summary` | article summary | -- | [23](23.md) | 297| `summary` | summary | -- | [23](23.md), [52](52.md) |
274| `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | 298| `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) |
275| `title` | article title | -- | [23](23.md) | 299| `title` | article title | -- | [23](23.md) |
276| `web` | webpage URL | -- | [34](34.md) | 300| `web` | webpage URL | -- | [34](34.md) |
277| `zap` | pubkey (hex), relay URL | weight | [57](57.md) | 301| `zap` | pubkey (hex), relay URL | weight | [57](57.md) |
278 302
303Please update these lists when proposing new NIPs.
304
279## Criteria for acceptance of NIPs 305## Criteria for acceptance of NIPs
280 306
2811. They should be implemented in at least two clients and one relay -- when applicable. 3071. They should be fully implemented in at least two clients and one relay -- when applicable.
2822. They should make sense. 3082. They should make sense.
2833. 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. 3093. 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.
2844. There should be no more than one way of doing the same thing. 3104. There should be no more than one way of doing the same thing.