diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 68 |
1 files changed, 56 insertions, 12 deletions
| @@ -15,6 +15,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 15 | - [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips) | 15 | - [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips) |
| 16 | - [Is this repository a centralizing factor?](#is-this-repository-a-centralizing-factor) | 16 | - [Is this repository a centralizing factor?](#is-this-repository-a-centralizing-factor) |
| 17 | - [How this repository works](#how-this-repository-works) | 17 | - [How this repository works](#how-this-repository-works) |
| 18 | - [Breaking Changes](#breaking-changes) | ||
| 18 | - [License](#license) | 19 | - [License](#license) |
| 19 | 20 | ||
| 20 | --- | 21 | --- |
| @@ -24,7 +25,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 24 | - [NIP-01: Basic protocol flow description](01.md) | 25 | - [NIP-01: Basic protocol flow description](01.md) |
| 25 | - [NIP-02: Follow List](02.md) | 26 | - [NIP-02: Follow List](02.md) |
| 26 | - [NIP-03: OpenTimestamps Attestations for Events](03.md) | 27 | - [NIP-03: OpenTimestamps Attestations for Events](03.md) |
| 27 | - [NIP-04: Encrypted Direct Message](04.md) | 28 | - [NIP-04: Encrypted Direct Message](04.md) --- **unrecommended**: deprecated in favor of [NIP-17](17.md) |
| 28 | - [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) |
| 29 | - [NIP-06: Basic key derivation from mnemonic seed phrase](06.md) | 30 | - [NIP-06: Basic key derivation from mnemonic seed phrase](06.md) |
| 30 | - [NIP-07: `window.nostr` capability for web browsers](07.md) | 31 | - [NIP-07: `window.nostr` capability for web browsers](07.md) |
| @@ -35,6 +36,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 35 | - [NIP-13: Proof of Work](13.md) | 36 | - [NIP-13: Proof of Work](13.md) |
| 36 | - [NIP-14: Subject tag in text events](14.md) | 37 | - [NIP-14: Subject tag in text events](14.md) |
| 37 | - [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) | ||
| 38 | - [NIP-18: Reposts](18.md) | 40 | - [NIP-18: Reposts](18.md) |
| 39 | - [NIP-19: bech32-encoded entities](19.md) | 41 | - [NIP-19: bech32-encoded entities](19.md) |
| 40 | - [NIP-21: `nostr:` URI scheme](21.md) | 42 | - [NIP-21: `nostr:` URI scheme](21.md) |
| @@ -44,25 +46,31 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 44 | - [NIP-26: Delegated Event Signing](26.md) | 46 | - [NIP-26: Delegated Event Signing](26.md) |
| 45 | - [NIP-27: Text Note References](27.md) | 47 | - [NIP-27: Text Note References](27.md) |
| 46 | - [NIP-28: Public Chat](28.md) | 48 | - [NIP-28: Public Chat](28.md) |
| 49 | - [NIP-29: Relay-based Groups](29.md) | ||
| 47 | - [NIP-30: Custom Emoji](30.md) | 50 | - [NIP-30: Custom Emoji](30.md) |
| 48 | - [NIP-31: Dealing with Unknown Events](31.md) | 51 | - [NIP-31: Dealing with Unknown Events](31.md) |
| 49 | - [NIP-32: Labeling](32.md) | 52 | - [NIP-32: Labeling](32.md) |
| 53 | - [NIP-34: `git` stuff](34.md) | ||
| 50 | - [NIP-36: Sensitive Content](36.md) | 54 | - [NIP-36: Sensitive Content](36.md) |
| 51 | - [NIP-38: User Statuses](38.md) | 55 | - [NIP-38: User Statuses](38.md) |
| 52 | - [NIP-39: External Identities in Profiles](39.md) | 56 | - [NIP-39: External Identities in Profiles](39.md) |
| 53 | - [NIP-40: Expiration Timestamp](40.md) | 57 | - [NIP-40: Expiration Timestamp](40.md) |
| 54 | - [NIP-42: Authentication of clients to relays](42.md) | 58 | - [NIP-42: Authentication of clients to relays](42.md) |
| 59 | - [NIP-44: Versioned Encryption](44.md) | ||
| 55 | - [NIP-45: Counting results](45.md) | 60 | - [NIP-45: Counting results](45.md) |
| 56 | - [NIP-46: Nostr Connect](46.md) | 61 | - [NIP-46: Nostr Connect](46.md) |
| 57 | - [NIP-47: Wallet Connect](47.md) | 62 | - [NIP-47: Wallet Connect](47.md) |
| 58 | - [NIP-48: Proxy Tags](48.md) | 63 | - [NIP-48: Proxy Tags](48.md) |
| 64 | - [NIP-49: Private Key Encryption](49.md) | ||
| 59 | - [NIP-50: Search Capability](50.md) | 65 | - [NIP-50: Search Capability](50.md) |
| 60 | - [NIP-51: Lists](51.md) | 66 | - [NIP-51: Lists](51.md) |
| 61 | - [NIP-52: Calendar Events](52.md) | 67 | - [NIP-52: Calendar Events](52.md) |
| 62 | - [NIP-53: Live Activities](53.md) | 68 | - [NIP-53: Live Activities](53.md) |
| 69 | - [NIP-54: Wiki](54.md) | ||
| 63 | - [NIP-56: Reporting](56.md) | 70 | - [NIP-56: Reporting](56.md) |
| 64 | - [NIP-57: Lightning Zaps](57.md) | 71 | - [NIP-57: Lightning Zaps](57.md) |
| 65 | - [NIP-58: Badges](58.md) | 72 | - [NIP-58: Badges](58.md) |
| 73 | - [NIP-59: Gift Wrap](59.md) | ||
| 66 | - [NIP-65: Relay List Metadata](65.md) | 74 | - [NIP-65: Relay List Metadata](65.md) |
| 67 | - [NIP-71: Video Events](71.md) | 75 | - [NIP-71: Video Events](71.md) |
| 68 | - [NIP-72: Moderated Communities](72.md) | 76 | - [NIP-72: Moderated Communities](72.md) |
| @@ -71,31 +79,47 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 71 | - [NIP-84: Highlights](84.md) | 79 | - [NIP-84: Highlights](84.md) |
| 72 | - [NIP-89: Recommended Application Handlers](89.md) | 80 | - [NIP-89: Recommended Application Handlers](89.md) |
| 73 | - [NIP-90: Data Vending Machines](90.md) | 81 | - [NIP-90: Data Vending Machines](90.md) |
| 82 | - [NIP-92: Media Attachments](92.md) | ||
| 74 | - [NIP-94: File Metadata](94.md) | 83 | - [NIP-94: File Metadata](94.md) |
| 84 | - [NIP-96: HTTP File Storage Integration](96.md) | ||
| 75 | - [NIP-98: HTTP Auth](98.md) | 85 | - [NIP-98: HTTP Auth](98.md) |
| 76 | - [NIP-99: Classified Listings](99.md) | 86 | - [NIP-99: Classified Listings](99.md) |
| 77 | 87 | ||
| 78 | ## Event Kinds | 88 | ## Event Kinds |
| 79 | | kind | description | NIP | | 89 | | kind | description | NIP | |
| 80 | | ------------- | -------------------------- | ----------- | | 90 | | ------------- | -------------------------- | ------------------------ | |
| 81 | | `0` | Metadata | [1](01.md) | | 91 | | `0` | Metadata | [01](01.md) | |
| 82 | | `1` | Short Text Note | [1](01.md) | | 92 | | `1` | Short Text Note | [01](01.md) | |
| 83 | | `2` | Recommend Relay | | | 93 | | `2` | Recommend Relay | 01 (deprecated) | |
| 84 | | `3` | Follows | [2](02.md) | | 94 | | `3` | Follows | [02](02.md) | |
| 85 | | `4` | Encrypted Direct Messages | [4](04.md) | | 95 | | `4` | Encrypted Direct Messages | [04](04.md) | |
| 86 | | `5` | Event Deletion | [9](09.md) | | 96 | | `5` | Event Deletion | [09](09.md) | |
| 87 | | `6` | Repost | [18](18.md) | | 97 | | `6` | Repost | [18](18.md) | |
| 88 | | `7` | Reaction | [25](25.md) | | 98 | | `7` | Reaction | [25](25.md) | |
| 89 | | `8` | Badge Award | [58](58.md) | | 99 | | `8` | Badge Award | [58](58.md) | |
| 100 | | `9` | Group Chat Message | [29](29.md) | | ||
| 101 | | `10` | Group Chat Threaded Reply | [29](29.md) | | ||
| 102 | | `11` | Group Thread | [29](29.md) | | ||
| 103 | | `12` | Group Thread Reply | [29](29.md) | | ||
| 104 | | `13` | Seal | [59](59.md) | | ||
| 105 | | `14` | Direct Message | [17](17.md) | | ||
| 90 | | `16` | Generic Repost | [18](18.md) | | 106 | | `16` | Generic Repost | [18](18.md) | |
| 91 | | `40` | Channel Creation | [28](28.md) | | 107 | | `40` | Channel Creation | [28](28.md) | |
| 92 | | `41` | Channel Metadata | [28](28.md) | | 108 | | `41` | Channel Metadata | [28](28.md) | |
| 93 | | `42` | Channel Message | [28](28.md) | | 109 | | `42` | Channel Message | [28](28.md) | |
| 94 | | `43` | Channel Hide Message | [28](28.md) | | 110 | | `43` | Channel Hide Message | [28](28.md) | |
| 95 | | `44` | Channel Mute User | [28](28.md) | | 111 | | `44` | Channel Mute User | [28](28.md) | |
| 112 | | `818` | Merge Requests | [54](54.md) | | ||
| 113 | | `1021` | Bid | [15](15.md) | | ||
| 114 | | `1022` | Bid confirmation | [15](15.md) | | ||
| 96 | | `1040` | OpenTimestamps | [03](03.md) | | 115 | | `1040` | OpenTimestamps | [03](03.md) | |
| 116 | | `1059` | Gift Wrap | [59](59.md) | | ||
| 97 | | `1063` | File Metadata | [94](94.md) | | 117 | | `1063` | File Metadata | [94](94.md) | |
| 98 | | `1311` | Live Chat Message | [53](53.md) | | 118 | | `1311` | Live Chat Message | [53](53.md) | |
| 119 | | `1617` | Patches | [34](34.md) | | ||
| 120 | | `1621` | Issues | [34](34.md) | | ||
| 121 | | `1622` | Replies | [34](34.md) | | ||
| 122 | | `1630`-`1633` | Status | [34](34.md) | | ||
| 99 | | `1971` | Problem Tracker | [nostrocket][nostrocket] | | 123 | | `1971` | Problem Tracker | [nostrocket][nostrocket] | |
| 100 | | `1984` | Reporting | [56](56.md) | | 124 | | `1984` | Reporting | [56](56.md) | |
| 101 | | `1985` | Label | [32](32.md) | | 125 | | `1985` | Label | [32](32.md) | |
| @@ -103,6 +127,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 103 | | `5000`-`5999` | Job Request | [90](90.md) | | 127 | | `5000`-`5999` | Job Request | [90](90.md) | |
| 104 | | `6000`-`6999` | Job Result | [90](90.md) | | 128 | | `6000`-`6999` | Job Result | [90](90.md) | |
| 105 | | `7000` | Job Feedback | [90](90.md) | | 129 | | `7000` | Job Feedback | [90](90.md) | |
| 130 | | `9000`-`9030` | Group Control Events | [29](29.md) | | ||
| 106 | | `9041` | Zap Goal | [75](75.md) | | 131 | | `9041` | Zap Goal | [75](75.md) | |
| 107 | | `9734` | Zap Request | [57](57.md) | | 132 | | `9734` | Zap Request | [57](57.md) | |
| 108 | | `9735` | Zap | [57](57.md) | | 133 | | `9735` | Zap | [57](57.md) | |
| @@ -115,8 +140,11 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 115 | | `10005` | Public chats list | [51](51.md) | | 140 | | `10005` | Public chats list | [51](51.md) | |
| 116 | | `10006` | Blocked relays list | [51](51.md) | | 141 | | `10006` | Blocked relays list | [51](51.md) | |
| 117 | | `10007` | Search relays list | [51](51.md) | | 142 | | `10007` | Search relays list | [51](51.md) | |
| 143 | | `10009` | User groups | [51](51.md), [29](29.md) | | ||
| 118 | | `10015` | Interests list | [51](51.md) | | 144 | | `10015` | Interests list | [51](51.md) | |
| 119 | | `10030` | User emoji list | [51](51.md) | | 145 | | `10030` | User emoji list | [51](51.md) | |
| 146 | | `10050` | Relay list to receive DMs | [17](17.md) | | ||
| 147 | | `10096` | File storage server list | [96](96.md) | | ||
| 120 | | `13194` | Wallet Info | [47](47.md) | | 148 | | `13194` | Wallet Info | [47](47.md) | |
| 121 | | `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] | | 149 | | `21000` | Lightning Pub RPC | [Lightning.Pub][lnpub] | |
| 122 | | `22242` | Client Authentication | [42](42.md) | | 150 | | `22242` | Client Authentication | [42](42.md) | |
| @@ -135,14 +163,20 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 135 | | `30015` | Interest sets | [51](51.md) | | 163 | | `30015` | Interest sets | [51](51.md) | |
| 136 | | `30017` | Create or update a stall | [15](15.md) | | 164 | | `30017` | Create or update a stall | [15](15.md) | |
| 137 | | `30018` | Create or update a product | [15](15.md) | | 165 | | `30018` | Create or update a product | [15](15.md) | |
| 166 | | `30019` | Marketplace UI/UX | [15](15.md) | | ||
| 167 | | `30020` | Product sold as an auction | [15](15.md) | | ||
| 138 | | `30023` | Long-form Content | [23](23.md) | | 168 | | `30023` | Long-form Content | [23](23.md) | |
| 139 | | `30024` | Draft Long-form Content | [23](23.md) | | 169 | | `30024` | Draft Long-form Content | [23](23.md) | |
| 140 | | `30030` | Emoji sets | [51](51.md) | | 170 | | `30030` | Emoji sets | [51](51.md) | |
| 171 | | `30063` | Release artifact sets | [51](51.md) | | ||
| 141 | | `30078` | Application-specific Data | [78](78.md) | | 172 | | `30078` | Application-specific Data | [78](78.md) | |
| 142 | | `30311` | Live Event | [53](53.md) | | 173 | | `30311` | Live Event | [53](53.md) | |
| 143 | | `30315` | User Statuses | [38](38.md) | | 174 | | `30315` | User Statuses | [38](38.md) | |
| 144 | | `30402` | Classified Listing | [99](99.md) | | 175 | | `30402` | Classified Listing | [99](99.md) | |
| 145 | | `30403` | Draft Classified Listing | [99](99.md) | | 176 | | `30403` | Draft Classified Listing | [99](99.md) | |
| 177 | | `30617` | Repository announcements | [34](34.md) | | ||
| 178 | | `30818` | Wiki article | [54](54.md) | | ||
| 179 | | `30819` | Redirects | [54](54.md) | | ||
| 146 | | `31922` | Date-Based Calendar Event | [52](52.md) | | 180 | | `31922` | Date-Based Calendar Event | [52](52.md) | |
| 147 | | `31923` | Time-Based Calendar Event | [52](52.md) | | 181 | | `31923` | Time-Based Calendar Event | [52](52.md) | |
| 148 | | `31924` | Calendar | [52](52.md) | | 182 | | `31924` | Calendar | [52](52.md) | |
| @@ -153,6 +187,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 153 | | `34236` | Short-form Portrait Video Event | [71](71.md) | | 187 | | `34236` | Short-form Portrait Video Event | [71](71.md) | |
| 154 | | `34237` | Video View Event | [71](71.md) | | 188 | | `34237` | Video View Event | [71](71.md) | |
| 155 | | `34550` | Community Definition | [72](72.md) | | 189 | | `34550` | Community Definition | [72](72.md) | |
| 190 | | `39000-9` | Group metadata events | [29](29.md) | | ||
| 156 | 191 | ||
| 157 | [nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md | 192 | [nostrocket]: https://github.com/nostrocket/NIPS/blob/main/Problems.md |
| 158 | [lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md | 193 | [lnpub]: https://github.com/shocknet/Lightning.Pub/blob/master/proto/autogenerated/client.md |
| @@ -197,6 +232,7 @@ Please update these lists when proposing NIPs introducing new event kinds. | |||
| 197 | | `l` | label, label namespace | annotations | [32](32.md) | | 232 | | `l` | label, label namespace | annotations | [32](32.md) | |
| 198 | | `L` | label namespace | -- | [32](32.md) | | 233 | | `L` | label namespace | -- | [32](32.md) | |
| 199 | | `m` | MIME type | -- | [94](94.md) | | 234 | | `m` | MIME type | -- | [94](94.md) | |
| 235 | | `q` | event id (hex) | relay URL | [18](18.md) | | ||
| 200 | | `r` | a reference (URL, etc) | petname | | | 236 | | `r` | a reference (URL, etc) | petname | | |
| 201 | | `r` | relay url | marker | [65](65.md) | | 237 | | `r` | relay url | marker | [65](65.md) | |
| 202 | | `t` | hashtag | -- | | | 238 | | `t` | hashtag | -- | | |
| @@ -205,28 +241,32 @@ Please update these lists when proposing NIPs introducing new event kinds. | |||
| 205 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | | 241 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | |
| 206 | | `challenge` | challenge string | -- | [42](42.md) | | 242 | | `challenge` | challenge string | -- | [42](42.md) | |
| 207 | | `client` | name, address | relay URL | [89](89.md) | | 243 | | `client` | name, address | relay URL | [89](89.md) | |
| 244 | | `clone` | git clone URL | -- | [34](34.md) | | ||
| 208 | | `content-warning` | reason | -- | [36](36.md) | | 245 | | `content-warning` | reason | -- | [36](36.md) | |
| 209 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | | 246 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | |
| 210 | | `description` | invoice/badge description | -- | [57](57.md), [58](58.md) | | 247 | | `description` | description | -- | [34](34.md), [57](57.md), [58](58.md) | |
| 211 | | `emoji` | shortcode, image URL | -- | [30](30.md) | | 248 | | `emoji` | shortcode, image URL | -- | [30](30.md) | |
| 212 | | `encrypted` | -- | -- | [90](90.md) | | 249 | | `encrypted` | -- | -- | [90](90.md) | |
| 213 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | | 250 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | |
| 214 | | `goal` | event id (hex) | relay URL | [75](75.md) | | 251 | | `goal` | event id (hex) | relay URL | [75](75.md) | |
| 215 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | | 252 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | |
| 253 | | `imeta` | inline metadata | -- | [92](92.md) | | ||
| 216 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | | 254 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | |
| 217 | | `location` | location string | -- | [52](52.md), [99](99.md) | | 255 | | `location` | location string | -- | [52](52.md), [99](99.md) | |
| 218 | | `name` | badge name | -- | [58](58.md) | | 256 | | `name` | name | -- | [34](34.md), [58](58.md) | |
| 219 | | `nonce` | random | -- | [13](13.md) | | 257 | | `nonce` | random | -- | [13](13.md) | |
| 220 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | | 258 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | |
| 221 | | `price` | price | currency, frequency | [99](99.md) | | 259 | | `price` | price | currency, frequency | [99](99.md) | |
| 222 | | `proxy` | external ID | protocol | [48](48.md) | | 260 | | `proxy` | external ID | protocol | [48](48.md) | |
| 223 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | | 261 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | |
| 224 | | `relay` | relay url | -- | [42](42.md) | | 262 | | `relay` | relay url | -- | [42](42.md), [17](17.md) | |
| 225 | | `relays` | relay list | -- | [57](57.md) | | 263 | | `relays` | relay list | -- | [57](57.md) | |
| 226 | | `subject` | subject | -- | [14](14.md) | | 264 | | `server` | file storage server url | -- | [96](96.md) | |
| 265 | | `subject` | subject | -- | [14](14.md), [17](17.md) | | ||
| 227 | | `summary` | article summary | -- | [23](23.md) | | 266 | | `summary` | article summary | -- | [23](23.md) | |
| 228 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | | 267 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | |
| 229 | | `title` | article title | -- | [23](23.md) | | 268 | | `title` | article title | -- | [23](23.md) | |
| 269 | | `web` | webpage URL | -- | [34](34.md) | | ||
| 230 | | `zap` | pubkey (hex), relay URL | weight | [57](57.md) | | 270 | | `zap` | pubkey (hex), relay URL | weight | [57](57.md) | |
| 231 | 271 | ||
| 232 | ## Criteria for acceptance of NIPs | 272 | ## Criteria for acceptance of NIPs |
| @@ -251,6 +291,10 @@ Standards may emerge in two ways: the first way is that someone starts doing som | |||
| 251 | 291 | ||
| 252 | These two ways of standardizing things are supported by this repository. Although the second is preferred, an effort will be made to codify standards emerged outside this repository into NIPs that can be later referenced and easily understood and implemented by others -- but obviously as in any human system discretion may be applied when standards are considered harmful. | 292 | These two ways of standardizing things are supported by this repository. Although the second is preferred, an effort will be made to codify standards emerged outside this repository into NIPs that can be later referenced and easily understood and implemented by others -- but obviously as in any human system discretion may be applied when standards are considered harmful. |
| 253 | 293 | ||
| 294 | ## Breaking Changes | ||
| 295 | |||
| 296 | [Breaking Changes](BREAKING.md) | ||
| 297 | |||
| 254 | ## License | 298 | ## License |
| 255 | 299 | ||
| 256 | All NIPs are public domain. | 300 | All NIPs are public domain. |