diff options
| author | Vitor Pamplona <vitor@vitorpamplona.com> | 2024-05-30 15:32:46 -0400 |
|---|---|---|
| committer | Vitor Pamplona <vitor@vitorpamplona.com> | 2024-05-30 15:32:46 -0400 |
| commit | d5b77b6d7348061cd0f16adc35e4d02a3a0b7380 (patch) | |
| tree | f00539ec0e0a8b6bf027ff6a9b93846adafa02b3 /README.md | |
| parent | 48674e563865b1cb7bb3c5c7869d20055446f408 (diff) | |
| parent | 5c796c19fd6330628a0b328bfcf5270cb2bc3aff (diff) | |
Merge remote-tracking branch 'upstream/master' into draft-event
# Conflicts:
# README.md
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 124 |
1 files changed, 72 insertions, 52 deletions
| @@ -25,7 +25,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 25 | - [NIP-01: Basic protocol flow description](01.md) | 25 | - [NIP-01: Basic protocol flow description](01.md) |
| 26 | - [NIP-02: Follow List](02.md) | 26 | - [NIP-02: Follow List](02.md) |
| 27 | - [NIP-03: OpenTimestamps Attestations for Events](03.md) | 27 | - [NIP-03: OpenTimestamps Attestations for Events](03.md) |
| 28 | - [NIP-04: Encrypted Direct Message](04.md) --- **unrecommended**: deprecated in favor of [NIP-44](44.md) | 28 | - [NIP-04: Encrypted Direct Message](04.md) --- **unrecommended**: deprecated in favor of [NIP-17](17.md) |
| 29 | - [NIP-05: Mapping Nostr keys to DNS-based internet identifiers](05.md) | 29 | - [NIP-05: Mapping Nostr keys to DNS-based internet identifiers](05.md) |
| 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) |
| @@ -36,6 +36,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 36 | - [NIP-13: Proof of Work](13.md) | 36 | - [NIP-13: Proof of Work](13.md) |
| 37 | - [NIP-14: Subject tag in text events](14.md) | 37 | - [NIP-14: Subject tag in text events](14.md) |
| 38 | - [NIP-15: Nostr Marketplace (for resilient marketplaces)](15.md) | 38 | - [NIP-15: Nostr Marketplace (for resilient marketplaces)](15.md) |
| 39 | - [NIP-17: Private Direct Messages](17.md) | ||
| 39 | - [NIP-18: Reposts](18.md) | 40 | - [NIP-18: Reposts](18.md) |
| 40 | - [NIP-19: bech32-encoded entities](19.md) | 41 | - [NIP-19: bech32-encoded entities](19.md) |
| 41 | - [NIP-21: `nostr:` URI scheme](21.md) | 42 | - [NIP-21: `nostr:` URI scheme](21.md) |
| @@ -50,6 +51,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 50 | - [NIP-31: Dealing with Unknown Events](31.md) | 51 | - [NIP-31: Dealing with Unknown Events](31.md) |
| 51 | - [NIP-32: Labeling](32.md) | 52 | - [NIP-32: Labeling](32.md) |
| 52 | - [NIP-34: `git` stuff](34.md) | 53 | - [NIP-34: `git` stuff](34.md) |
| 54 | - [NIP-35: Torrents](35.md) | ||
| 53 | - [NIP-36: Sensitive Content](36.md) | 55 | - [NIP-36: Sensitive Content](36.md) |
| 54 | - [NIP-37: Draft Events](37.md) | 56 | - [NIP-37: Draft Events](37.md) |
| 55 | - [NIP-38: User Statuses](38.md) | 57 | - [NIP-38: User Statuses](38.md) |
| @@ -66,11 +68,13 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 66 | - [NIP-51: Lists](51.md) | 68 | - [NIP-51: Lists](51.md) |
| 67 | - [NIP-52: Calendar Events](52.md) | 69 | - [NIP-52: Calendar Events](52.md) |
| 68 | - [NIP-53: Live Activities](53.md) | 70 | - [NIP-53: Live Activities](53.md) |
| 71 | - [NIP-54: Wiki](54.md) | ||
| 69 | - [NIP-56: Reporting](56.md) | 72 | - [NIP-56: Reporting](56.md) |
| 70 | - [NIP-57: Lightning Zaps](57.md) | 73 | - [NIP-57: Lightning Zaps](57.md) |
| 71 | - [NIP-58: Badges](58.md) | 74 | - [NIP-58: Badges](58.md) |
| 72 | - [NIP-59: Gift Wrap](59.md) | 75 | - [NIP-59: Gift Wrap](59.md) |
| 73 | - [NIP-65: Relay List Metadata](65.md) | 76 | - [NIP-65: Relay List Metadata](65.md) |
| 77 | - [NIP-71: Video Events](71.md) | ||
| 74 | - [NIP-72: Moderated Communities](72.md) | 78 | - [NIP-72: Moderated Communities](72.md) |
| 75 | - [NIP-75: Zap Goals](75.md) | 79 | - [NIP-75: Zap Goals](75.md) |
| 76 | - [NIP-78: Application-specific data](78.md) | 80 | - [NIP-78: Application-specific data](78.md) |
| @@ -100,12 +104,14 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 100 | | `11` | Group Thread | [29](29.md) | | 104 | | `11` | Group Thread | [29](29.md) | |
| 101 | | `12` | Group Thread Reply | [29](29.md) | | 105 | | `12` | Group Thread Reply | [29](29.md) | |
| 102 | | `13` | Seal | [59](59.md) | | 106 | | `13` | Seal | [59](59.md) | |
| 107 | | `14` | Direct Message | [17](17.md) | | ||
| 103 | | `16` | Generic Repost | [18](18.md) | | 108 | | `16` | Generic Repost | [18](18.md) | |
| 104 | | `40` | Channel Creation | [28](28.md) | | 109 | | `40` | Channel Creation | [28](28.md) | |
| 105 | | `41` | Channel Metadata | [28](28.md) | | 110 | | `41` | Channel Metadata | [28](28.md) | |
| 106 | | `42` | Channel Message | [28](28.md) | | 111 | | `42` | Channel Message | [28](28.md) | |
| 107 | | `43` | Channel Hide Message | [28](28.md) | | 112 | | `43` | Channel Hide Message | [28](28.md) | |
| 108 | | `44` | Channel Mute User | [28](28.md) | | 113 | | `44` | Channel Mute User | [28](28.md) | |
| 114 | | `818` | Merge Requests | [54](54.md) | | ||
| 109 | | `1021` | Bid | [15](15.md) | | 115 | | `1021` | Bid | [15](15.md) | |
| 110 | | `1022` | Bid confirmation | [15](15.md) | | 116 | | `1022` | Bid confirmation | [15](15.md) | |
| 111 | | `1040` | OpenTimestamps | [03](03.md) | | 117 | | `1040` | OpenTimestamps | [03](03.md) | |
| @@ -115,9 +121,13 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 115 | | `1617` | Patches | [34](34.md) | | 121 | | `1617` | Patches | [34](34.md) | |
| 116 | | `1621` | Issues | [34](34.md) | | 122 | | `1621` | Issues | [34](34.md) | |
| 117 | | `1622` | Replies | [34](34.md) | | 123 | | `1622` | Replies | [34](34.md) | |
| 124 | | `1630`-`1633` | Status | [34](34.md) | | ||
| 118 | | `1971` | Problem Tracker | [nostrocket][nostrocket] | | 125 | | `1971` | Problem Tracker | [nostrocket][nostrocket] | |
| 119 | | `1984` | Reporting | [56](56.md) | | 126 | | `1984` | Reporting | [56](56.md) | |
| 120 | | `1985` | Label | [32](32.md) | | 127 | | `1985` | Label | [32](32.md) | |
| 128 | | `2003` | Torrent | [35](35.md) | | ||
| 129 | | `2004` | Torrent Comment | [35](35.md) | | ||
| 130 | | `2022` | Coinjoin Pool | [joinstr][joinstr] | | ||
| 121 | | `4550` | Community Post Approval | [72](72.md) | | 131 | | `4550` | Community Post Approval | [72](72.md) | |
| 122 | | `5000`-`5999` | Job Request | [90](90.md) | | 132 | | `5000`-`5999` | Job Request | [90](90.md) | |
| 123 | | `6000`-`6999` | Job Result | [90](90.md) | | 133 | | `6000`-`6999` | Job Result | [90](90.md) | |
| @@ -139,6 +149,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 139 | | `10013` | Private Relays | [35](37.md) | | 149 | | `10013` | Private Relays | [35](37.md) | |
| 140 | | `10015` | Interests list | [51](51.md) | | 150 | | `10015` | Interests list | [51](51.md) | |
| 141 | | `10030` | User emoji list | [51](51.md) | | 151 | | `10030` | User emoji list | [51](51.md) | |
| 152 | | `10050` | Relay list to receive DMs | [17](17.md) | | ||
| 142 | | `10096` | File storage server list | [96](96.md) | | 153 | | `10096` | File storage server list | [96](96.md) | |
| 143 | | `13194` | Wallet Info | [47](47.md) | | 154 | | `13194` | Wallet Info | [47](47.md) | |
| 144 | | `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] | | 155 | | `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] | |
| @@ -152,6 +163,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 152 | | `30002` | Relay sets | [51](51.md) | | 163 | | `30002` | Relay sets | [51](51.md) | |
| 153 | | `30003` | Bookmark sets | [51](51.md) | | 164 | | `30003` | Bookmark sets | [51](51.md) | |
| 154 | | `30004` | Curation sets | [51](51.md) | | 165 | | `30004` | Curation sets | [51](51.md) | |
| 166 | | `30005` | Video sets | [51](51.md) | | ||
| 155 | | `30008` | Profile Badges | [58](58.md) | | 167 | | `30008` | Profile Badges | [58](58.md) | |
| 156 | | `30009` | Badge Definition | [58](58.md) | | 168 | | `30009` | Badge Definition | [58](58.md) | |
| 157 | | `30015` | Interest sets | [51](51.md) | | 169 | | `30015` | Interest sets | [51](51.md) | |
| @@ -169,18 +181,26 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 169 | | `30402` | Classified Listing | [99](99.md) | | 181 | | `30402` | Classified Listing | [99](99.md) | |
| 170 | | `30403` | Draft Classified Listing | [99](99.md) | | 182 | | `30403` | Draft Classified Listing | [99](99.md) | |
| 171 | | `30617` | Repository announcements | [34](34.md) | | 183 | | `30617` | Repository announcements | [34](34.md) | |
| 172 | | `31234` | Draft Event | [35](37.md) | | 184 | | `30818` | Wiki article | [54](54.md) | |
| 185 | | `30819` | Redirects | [54](54.md) | | ||
| 186 | | `31890` | Feed | [NUD: Custom Feeds](https://wikifreedia.xyz/cip-01/97c70a44366a6535c1) | | ||
| 187 | | `31234` | Draft Event | [37](37.md) | | ||
| 173 | | `31922` | Date-Based Calendar Event | [52](52.md) | | 188 | | `31922` | Date-Based Calendar Event | [52](52.md) | |
| 174 | | `31923` | Time-Based Calendar Event | [52](52.md) | | 189 | | `31923` | Time-Based Calendar Event | [52](52.md) | |
| 175 | | `31924` | Calendar | [52](52.md) | | 190 | | `31924` | Calendar | [52](52.md) | |
| 176 | | `31925` | Calendar Event RSVP | [52](52.md) | | 191 | | `31925` | Calendar Event RSVP | [52](52.md) | |
| 177 | | `31989` | Handler recommendation | [89](89.md) | | 192 | | `31989` | Handler recommendation | [89](89.md) | |
| 178 | | `31990` | Handler information | [89](89.md) | | 193 | | `31990` | Handler information | [89](89.md) | |
| 179 | | `39000-9` | Group metadata events | [29](29.md) | | 194 | | `34235` | Video Event | [71](71.md) | |
| 195 | | `34236` | Short-form Portrait Video Event | [71](71.md) | | ||
| 196 | | `34237` | Video View Event | [71](71.md) | | ||
| 180 | | `34550` | Community Definition | [72](72.md) | | 197 | | `34550` | Community Definition | [72](72.md) | |
| 198 | | `39000-9` | Group metadata events | [29](29.md) | | ||
| 181 | 199 | ||
| 200 | [NUD: Custom Feeds]: https://wikifreedia.xyz/cip-01/97c70a44366a6535c1 | ||
| 182 | [nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md | 201 | [nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md |
| 183 | [lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md | 202 | [lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md |
| 203 | [joinstr]: https://gitlab.com/1440000bytes/joinstr/-/blob/main/NIP.md | ||
| 184 | 204 | ||
| 185 | ## Message types | 205 | ## Message types |
| 186 | 206 | ||
| @@ -210,58 +230,58 @@ Please update these lists when proposing NIPs introducing new event kinds. | |||
| 210 | 230 | ||
| 211 | ## Standardized Tags | 231 | ## Standardized Tags |
| 212 | 232 | ||
| 213 | | name | value | other parameters | NIP | | 233 | | name | value | other parameters | NIP | |
| 214 | | ----------------- | ------------------------------------ | -------------------- | ------------------------------------- | | 234 | | ----------------- | ------------------------------------ | ------------------------------- | ------------------------------------- | |
| 215 | | `e` | event id (hex) | relay URL, marker | [01](01.md), [10](10.md) | | 235 | | `e` | event id (hex) | relay URL, marker, pubkey (hex) | [01](01.md), [10](10.md) | |
| 216 | | `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) | | 236 | | `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) | |
| 217 | | `a` | coordinates to an event | relay URL | [01](01.md) | | 237 | | `a` | coordinates to an event | relay URL | [01](01.md) | |
| 218 | | `d` | identifier | -- | [01](01.md) | | 238 | | `d` | identifier | -- | [01](01.md) | |
| 219 | | `g` | geohash | -- | [52](52.md) | | 239 | | `g` | geohash | -- | [52](52.md) | |
| 220 | | `i` | identity | proof | [39](39.md) | | 240 | | `i` | identity | proof | [39](39.md) | |
| 221 | | `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) | | 241 | | `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) | |
| 222 | | `l` | label, label namespace | annotations | [32](32.md) | | 242 | | `l` | label, label namespace | annotations | [32](32.md) | |
| 223 | | `L` | label namespace | -- | [32](32.md) | | 243 | | `L` | label namespace | -- | [32](32.md) | |
| 224 | | `m` | MIME type | -- | [94](94.md) | | 244 | | `m` | MIME type | -- | [94](94.md) | |
| 225 | | `q` | event id (hex) | relay URL | [18](18.md) | | 245 | | `q` | event id (hex) | relay URL | [18](18.md) | |
| 226 | | `r` | a reference (URL, etc) | petname | | | 246 | | `r` | a reference (URL, etc) | petname | | |
| 227 | | `r` | relay url | marker | [65](65.md) | | 247 | | `r` | relay url | marker | [65](65.md) | |
| 228 | | `t` | hashtag | -- | | | 248 | | `t` | hashtag | -- | | |
| 229 | | `alt` | summary | -- | [31](31.md) | | 249 | | `alt` | summary | -- | [31](31.md) | |
| 230 | | `amount` | millisatoshis, stringified | -- | [57](57.md) | | 250 | | `amount` | millisatoshis, stringified | -- | [57](57.md) | |
| 231 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | | 251 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | |
| 232 | | `challenge` | challenge string | -- | [42](42.md) | | 252 | | `challenge` | challenge string | -- | [42](42.md) | |
| 233 | | `client` | name, address | relay URL | [89](89.md) | | 253 | | `client` | name, address | relay URL | [89](89.md) | |
| 234 | | `clone` | git clone URL | -- | [34](34.md) | | 254 | | `clone` | git clone URL | -- | [34](34.md) | |
| 235 | | `content-warning` | reason | -- | [36](36.md) | | 255 | | `content-warning` | reason | -- | [36](36.md) | |
| 236 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | | 256 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | |
| 237 | | `description` | description | -- | [34](34.md), [57](57.md), [58](58.md) | | 257 | | `description` | description | -- | [34](34.md), [57](57.md), [58](58.md) | |
| 238 | | `emoji` | shortcode, image URL | -- | [30](30.md) | | 258 | | `emoji` | shortcode, image URL | -- | [30](30.md) | |
| 239 | | `encrypted` | -- | -- | [90](90.md) | | 259 | | `encrypted` | -- | -- | [90](90.md) | |
| 240 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | | 260 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | |
| 241 | | `goal` | event id (hex) | relay URL | [75](75.md) | | 261 | | `goal` | event id (hex) | relay URL | [75](75.md) | |
| 242 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | | 262 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | |
| 243 | | `imeta` | inline metadata | -- | [92](92.md) | | 263 | | `imeta` | inline metadata | -- | [92](92.md) | |
| 244 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | | 264 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | |
| 245 | | `location` | location string | -- | [52](52.md), [99](99.md) | | 265 | | `location` | location string | -- | [52](52.md), [99](99.md) | |
| 246 | | `name` | name | -- | [34](34.md), [58](58.md) | | 266 | | `name` | name | -- | [34](34.md), [58](58.md) | |
| 247 | | `nonce` | random | -- | [13](13.md) | | 267 | | `nonce` | random | difficulty | [13](13.md) | |
| 248 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | | 268 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | |
| 249 | | `price` | price | currency, frequency | [99](99.md) | | 269 | | `price` | price | currency, frequency | [99](99.md) | |
| 250 | | `proxy` | external ID | protocol | [48](48.md) | | 270 | | `proxy` | external ID | protocol | [48](48.md) | |
| 251 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | | 271 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | |
| 252 | | `relay` | relay url | -- | [42](42.md) | | 272 | | `relay` | relay url | -- | [42](42.md), [17](17.md) | |
| 253 | | `relays` | relay list | -- | [57](57.md) | | 273 | | `relays` | relay list | -- | [57](57.md) | |
| 254 | | `server` | file storage server url | -- | [96](96.md) | | 274 | | `server` | file storage server url | -- | [96](96.md) | |
| 255 | | `subject` | subject | -- | [14](14.md) | | 275 | | `subject` | subject | -- | [14](14.md), [17](17.md) | |
| 256 | | `summary` | article summary | -- | [23](23.md) | | 276 | | `summary` | article summary | -- | [23](23.md) | |
| 257 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | | 277 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | |
| 258 | | `title` | article title | -- | [23](23.md) | | 278 | | `title` | article title | -- | [23](23.md) | |
| 259 | | `web` | webpage URL | -- | [34](34.md) | | 279 | | `web` | webpage URL | -- | [34](34.md) | |
| 260 | | `zap` | pubkey (hex), relay URL | weight | [57](57.md) | | 280 | | `zap` | pubkey (hex), relay URL | weight | [57](57.md) | |
| 261 | 281 | ||
| 262 | ## Criteria for acceptance of NIPs | 282 | ## Criteria for acceptance of NIPs |
| 263 | 283 | ||
| 264 | 1. They should be implemented in at least two clients and one relay -- when applicable. | 284 | 1. They should be fully implemented in at least two clients and one relay -- when applicable. |
| 265 | 2. They should make sense. | 285 | 2. They should make sense. |
| 266 | 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. | 286 | 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. |
| 267 | 4. There should be no more than one way of doing the same thing. | 287 | 4. There should be no more than one way of doing the same thing. |