diff options
| author | Pablo Fernandez <p@f7z.io> | 2023-10-15 21:30:42 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-15 21:30:42 +0300 |
| commit | a482f47ae4c36d38062cd0fd3ee6235e57691673 (patch) | |
| tree | a16f57208cd3c3ef74237dafcef277f16d70e688 /README.md | |
| parent | d9400e1e7b08225aedb6c78b522c5ad07b5198b4 (diff) | |
| parent | 202e18f2b256646148805880ed58731c1c8b2b9b (diff) | |
Merge branch 'master' into vending-machine
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 120 |
1 files changed, 56 insertions, 64 deletions
| @@ -30,17 +30,15 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 30 | - [NIP-09: Event Deletion](09.md) | 30 | - [NIP-09: Event Deletion](09.md) |
| 31 | - [NIP-10: Conventions for clients' use of `e` and `p` tags in text events](10.md) | 31 | - [NIP-10: Conventions for clients' use of `e` and `p` tags in text events](10.md) |
| 32 | - [NIP-11: Relay Information Document](11.md) | 32 | - [NIP-11: Relay Information Document](11.md) |
| 33 | - [NIP-12: Generic Tag Queries](12.md) | ||
| 34 | - [NIP-13: Proof of Work](13.md) | 33 | - [NIP-13: Proof of Work](13.md) |
| 35 | - [NIP-14: Subject tag in text events](14.md) | 34 | - [NIP-14: Subject tag in text events](14.md) |
| 36 | - [NIP-15: Nostr Marketplace (for resilient marketplaces)](15.md) | 35 | - [NIP-15: Nostr Marketplace (for resilient marketplaces)](15.md) |
| 37 | - [NIP-16: Event Treatment](16.md) | ||
| 38 | - [NIP-18: Reposts](18.md) | 36 | - [NIP-18: Reposts](18.md) |
| 39 | - [NIP-19: bech32-encoded entities](19.md) | 37 | - [NIP-19: bech32-encoded entities](19.md) |
| 40 | - [NIP-20: Command Results](20.md) | ||
| 41 | - [NIP-21: `nostr:` URI scheme](21.md) | 38 | - [NIP-21: `nostr:` URI scheme](21.md) |
| 42 | - [NIP-22: Event `created_at` Limits](22.md) | 39 | - [NIP-22: Event `created_at` Limits](22.md) |
| 43 | - [NIP-23: Long-form Content](23.md) | 40 | - [NIP-23: Long-form Content](23.md) |
| 41 | - [NIP-24: Extra metadata fields and tags](24.md) | ||
| 44 | - [NIP-25: Reactions](25.md) | 42 | - [NIP-25: Reactions](25.md) |
| 45 | - [NIP-26: Delegated Event Signing](26.md) | 43 | - [NIP-26: Delegated Event Signing](26.md) |
| 46 | - [NIP-27: Text Note References](27.md) | 44 | - [NIP-27: Text Note References](27.md) |
| @@ -48,8 +46,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 48 | - [NIP-30: Custom Emoji](30.md) | 46 | - [NIP-30: Custom Emoji](30.md) |
| 49 | - [NIP-31: Dealing with Unknown Events](31.md) | 47 | - [NIP-31: Dealing with Unknown Events](31.md) |
| 50 | - [NIP-32: Labeling](32.md) | 48 | - [NIP-32: Labeling](32.md) |
| 51 | - [NIP-33: Parameterized Replaceable Events](33.md) | ||
| 52 | - [NIP-36: Sensitive Content](36.md) | 49 | - [NIP-36: Sensitive Content](36.md) |
| 50 | - [NIP-38: User Statuses](38.md) | ||
| 53 | - [NIP-39: External Identities in Profiles](39.md) | 51 | - [NIP-39: External Identities in Profiles](39.md) |
| 54 | - [NIP-40: Expiration Timestamp](40.md) | 52 | - [NIP-40: Expiration Timestamp](40.md) |
| 55 | - [NIP-42: Authentication of clients to relays](42.md) | 53 | - [NIP-42: Authentication of clients to relays](42.md) |
| @@ -57,7 +55,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 57 | - [NIP-46: Nostr Connect](46.md) | 55 | - [NIP-46: Nostr Connect](46.md) |
| 58 | - [NIP-47: Wallet Connect](47.md) | 56 | - [NIP-47: Wallet Connect](47.md) |
| 59 | - [NIP-48: Proxy Tags](48.md) | 57 | - [NIP-48: Proxy Tags](48.md) |
| 60 | - [NIP-50: Keywords filter](50.md) | 58 | - [NIP-50: Search Capability](50.md) |
| 61 | - [NIP-51: Lists](51.md) | 59 | - [NIP-51: Lists](51.md) |
| 62 | - [NIP-52: Calendar Events](52.md) | 60 | - [NIP-52: Calendar Events](52.md) |
| 63 | - [NIP-53: Live Activities](53.md) | 61 | - [NIP-53: Live Activities](53.md) |
| @@ -66,6 +64,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 66 | - [NIP-58: Badges](58.md) | 64 | - [NIP-58: Badges](58.md) |
| 67 | - [NIP-65: Relay List Metadata](65.md) | 65 | - [NIP-65: Relay List Metadata](65.md) |
| 68 | - [NIP-72: Moderated Communities](72.md) | 66 | - [NIP-72: Moderated Communities](72.md) |
| 67 | - [NIP-75: Zap Goals](75.md) | ||
| 69 | - [NIP-78: Application-specific data](78.md) | 68 | - [NIP-78: Application-specific data](78.md) |
| 70 | - [NIP-89: Recommended Application Handlers](89.md) | 69 | - [NIP-89: Recommended Application Handlers](89.md) |
| 71 | - [NIP-90: Data Vending Machines](90.md) | 70 | - [NIP-90: Data Vending Machines](90.md) |
| @@ -79,7 +78,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 79 | | ------- | -------------------------- | ----------- | | 78 | | ------- | -------------------------- | ----------- | |
| 80 | | `0` | Metadata | [1](01.md) | | 79 | | `0` | Metadata | [1](01.md) | |
| 81 | | `1` | Short Text Note | [1](01.md) | | 80 | | `1` | Short Text Note | [1](01.md) | |
| 82 | | `2` | Recommend Relay | [1](01.md) | | 81 | | `2` | Recommend Relay | | |
| 83 | | `3` | Contacts | [2](02.md) | | 82 | | `3` | Contacts | [2](02.md) | |
| 84 | | `4` | Encrypted Direct Messages | [4](04.md) | | 83 | | `4` | Encrypted Direct Messages | [4](04.md) | |
| 85 | | `5` | Event Deletion | [9](09.md) | | 84 | | `5` | Event Deletion | [9](09.md) | |
| @@ -94,9 +93,11 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 94 | | `44` | Channel Mute User | [28](28.md) | | 93 | | `44` | Channel Mute User | [28](28.md) | |
| 95 | | `1063` | File Metadata | [94](94.md) | | 94 | | `1063` | File Metadata | [94](94.md) | |
| 96 | | `1311` | Live Chat Message | [53](53.md) | | 95 | | `1311` | Live Chat Message | [53](53.md) | |
| 96 | | `1040` | OpenTimestamps | [03](03.md) | | ||
| 97 | | `1984` | Reporting | [56](56.md) | | 97 | | `1984` | Reporting | [56](56.md) | |
| 98 | | `1985` | Label | [32](32.md) | | 98 | | `1985` | Label | [32](32.md) | |
| 99 | | `4550` | Community Post Approval | [72](72.md) | | 99 | | `4550` | Community Post Approval | [72](72.md) | |
| 100 | | `9041` | Zap Goal | [75](75.md) | | ||
| 100 | | `9734` | Zap Request | [57](57.md) | | 101 | | `9734` | Zap Request | [57](57.md) | |
| 101 | | `9735` | Zap | [57](57.md) | | 102 | | `9735` | Zap | [57](57.md) | |
| 102 | | `10000` | Mute List | [51](51.md) | | 103 | | `10000` | Mute List | [51](51.md) | |
| @@ -118,6 +119,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 118 | | `30024` | Draft Long-form Content | [23](23.md) | | 119 | | `30024` | Draft Long-form Content | [23](23.md) | |
| 119 | | `30078` | Application-specific Data | [78](78.md) | | 120 | | `30078` | Application-specific Data | [78](78.md) | |
| 120 | | `30311` | Live Event | [53](53.md) | | 121 | | `30311` | Live Event | [53](53.md) | |
| 122 | | `30315` | User Statuses | [38](38.md) | | ||
| 121 | | `30402` | Classified Listing | [99](99.md) | | 123 | | `30402` | Classified Listing | [99](99.md) | |
| 122 | | `30403` | Draft Classified Listing | [99](99.md) | | 124 | | `30403` | Draft Classified Listing | [99](99.md) | |
| 123 | | `31922` | Date-Based Calendar Event | [52](52.md) | | 125 | | `31922` | Date-Based Calendar Event | [52](52.md) | |
| @@ -130,84 +132,74 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | |||
| 130 | | `65000` | Job Feedback | [90](90.md) | | 132 | | `65000` | Job Feedback | [90](90.md) | |
| 131 | | `65001` | Job Result | [90](90.md) | | 133 | | `65001` | Job Result | [90](90.md) | |
| 132 | 134 | ||
| 133 | ### Event Kind Ranges | ||
| 134 | |||
| 135 | | range | description | NIP | | ||
| 136 | | ---------------- | -------------------------------- | ----------- | | ||
| 137 | | `1000`--`9999` | Regular Events | [16](16.md) | | ||
| 138 | | `10000`--`19999` | Replaceable Events | [16](16.md) | | ||
| 139 | | `20000`--`29999` | Ephemeral Events | [16](16.md) | | ||
| 140 | | `30000`--`39999` | Parameterized Replaceable Events | [33](33.md) | | ||
| 141 | | `65002`--`66000` | Job Requests | [90](90.md) | | ||
| 142 | |||
| 143 | ## Message types | 135 | ## Message types |
| 144 | 136 | ||
| 145 | ### Client to Relay | 137 | ### Client to Relay |
| 146 | 138 | ||
| 147 | | type | description | NIP | | 139 | | type | description | NIP | |
| 148 | | ------- | --------------------------------------------------- | ----------- | | 140 | | ------- | --------------------------------------------------- | ----------- | |
| 141 | | `EVENT` | used to publish events | [01](01.md) | | ||
| 142 | | `REQ` | used to request events and subscribe to new updates | [01](01.md) | | ||
| 143 | | `CLOSE` | used to stop previous subscriptions | [01](01.md) | | ||
| 149 | | `AUTH` | used to send authentication events | [42](42.md) | | 144 | | `AUTH` | used to send authentication events | [42](42.md) | |
| 150 | | `CLOSE` | used to stop previous subscriptions | [1](01.md) | | ||
| 151 | | `COUNT` | used to request event counts | [45](45.md) | | 145 | | `COUNT` | used to request event counts | [45](45.md) | |
| 152 | | `EVENT` | used to publish events | [1](01.md) | | ||
| 153 | | `REQ` | used to request events and subscribe to new updates | [1](01.md) | | ||
| 154 | 146 | ||
| 155 | ### Relay to Client | 147 | ### Relay to Client |
| 156 | 148 | ||
| 157 | | type | description | NIP | | 149 | | type | description | NIP | |
| 158 | | -------- | ------------------------------------------------------- | ----------- | | 150 | | -------- | ------------------------------------------------------- | ----------- | |
| 151 | | `EOSE` | used to notify clients all stored events have been sent | [01](01.md) | | ||
| 152 | | `EVENT` | used to send events requested to clients | [01](01.md) | | ||
| 153 | | `NOTICE` | used to send human-readable messages to clients | [01](01.md) | | ||
| 154 | | `OK` | used to notify clients if an EVENT was successful | [01](01.md) | | ||
| 159 | | `AUTH` | used to send authentication challenges | [42](42.md) | | 155 | | `AUTH` | used to send authentication challenges | [42](42.md) | |
| 160 | | `COUNT` | used to send requested event counts to clients | [45](45.md) | | 156 | | `COUNT` | used to send requested event counts to clients | [45](45.md) | |
| 161 | | `EOSE` | used to notify clients all stored events have been sent | [1](01.md) | | ||
| 162 | | `EVENT` | used to send events requested to clients | [1](01.md) | | ||
| 163 | | `NOTICE` | used to send human-readable messages to clients | [1](01.md) | | ||
| 164 | | `OK` | used to notify clients if an EVENT was successful | [20](20.md) | | ||
| 165 | 157 | ||
| 166 | Please update these lists when proposing NIPs introducing new event kinds. | 158 | Please update these lists when proposing NIPs introducing new event kinds. |
| 167 | 159 | ||
| 168 | When experimenting with kinds, keep in mind the classification introduced by [NIP-16](16.md) and [NIP-33](33.md). | ||
| 169 | |||
| 170 | ## Standardized Tags | 160 | ## Standardized Tags |
| 171 | 161 | ||
| 172 | | name | value | other parameters | NIP | | 162 | | name | value | other parameters | NIP | |
| 173 | | ----------------- | ------------------------------------ | -------------------- | ------------------------ | | 163 | | ----------------- | ------------------------------------ | -------------------- | ------------------------------------- | |
| 174 | | `a` | coordinates to an event | relay URL | [33](33.md), [23](23.md) | | 164 | | `e` | event id (hex) | relay URL, marker | [01](01.md), [10](10.md) | |
| 175 | | `alt` | Alt tag | -- | [31](31.md) | | 165 | | `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) | |
| 176 | | `d` | identifier | -- | [33](33.md) | | 166 | | `a` | coordinates to an event | relay URL | [01](01.md) | |
| 177 | | `e` | event id (hex) | relay URL, marker | [1](01.md), [10](10.md) | | 167 | | `d` | identifier | -- | [01](01.md) | |
| 178 | | `g` | geohash | -- | [12](12.md), [52](52.md) | | 168 | | `alt` | summary | -- | [31](31.md) | |
| 179 | | `i` | identity | proof | [39](39.md) | | 169 | | `g` | geohash | -- | [52](52.md) | |
| 180 | | `k` | kind number (string) | -- | [18](18.md), [72](72.md) | | 170 | | `i` | identity | proof | [39](39.md) | |
| 181 | | `l` | label, label namespace | annotations | [32](32.md) | | 171 | | `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) | |
| 182 | | `L` | label namespace | -- | [32](32.md) | | 172 | | `l` | label, label namespace | annotations | [32](32.md) | |
| 183 | | `p` | pubkey (hex) | relay URL | [1](01.md) | | 173 | | `L` | label namespace | -- | [32](32.md) | |
| 184 | | `r` | a reference (URL, etc) | -- | [12](12.md) | | 174 | | `m` | MIME type | -- | [94](94.md) | |
| 185 | | `t` | hashtag | -- | [12](12.md) | | 175 | | `r` | a reference (URL, etc) | petname | | |
| 186 | | `amount` | millisats | -- | [57](57.md) | | 176 | | `r` | relay url | marker | [65](65.md) | |
| 187 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | | 177 | | `t` | hashtag | -- | | |
| 188 | | `challenge` | challenge string | -- | [42](42.md) | | 178 | | `amount` | millisatoshis, stringified | -- | [57](57.md) | |
| 189 | | `content-warning` | reason | -- | [36](36.md) | | 179 | | `bolt11` | `bolt11` invoice | -- | [57](57.md) | |
| 190 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | | 180 | | `challenge` | challenge string | -- | [42](42.md) | |
| 191 | | `description` | badge description | -- | [58](58.md) | | 181 | | `content-warning` | reason | -- | [36](36.md) | |
| 192 | | `description` | invoice description | -- | [57](57.md) | | 182 | | `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | |
| 193 | | `emoji` | shortcode, image URL | -- | [30](30.md) | | 183 | | `description` | invoice/badge description | -- | [57](57.md), [58](58.md) | |
| 194 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | | 184 | | `emoji` | shortcode, image URL | -- | [30](30.md) | |
| 195 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | | 185 | | `expiration` | unix timestamp (string) | -- | [40](40.md) | |
| 196 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | | 186 | | `goal` | event id (hex) | relay URL | [75](75.md) | |
| 197 | | `location` | location string | -- | [52](52.md), [99](99.md) | | 187 | | `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | |
| 198 | | `name` | badge name | -- | [58](58.md) | | 188 | | `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | |
| 199 | | `nonce` | random | -- | [13](13.md) | | 189 | | `location` | location string | -- | [52](52.md), [99](99.md) | |
| 200 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | | 190 | | `name` | badge name | -- | [58](58.md) | |
| 201 | | `price` | price | currency, frequency | [99](99.md) | | 191 | | `nonce` | random | -- | [13](13.md) | |
| 202 | | `proxy` | external ID | protocol | [48](48.md) | | 192 | | `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | |
| 203 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | | 193 | | `price` | price | currency, frequency | [99](99.md) | |
| 204 | | `relay` | relay url | -- | [42](42.md) | | 194 | | `proxy` | external ID | protocol | [48](48.md) | |
| 205 | | `relays` | relay list | -- | [57](57.md) | | 195 | | `published_at` | unix timestamp (string) | -- | [23](23.md) | |
| 206 | | `subject` | subject | -- | [14](14.md) | | 196 | | `relay` | relay url | -- | [42](42.md) | |
| 207 | | `summary` | article summary | -- | [23](23.md) | | 197 | | `relays` | relay list | -- | [57](57.md) | |
| 208 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | | 198 | | `subject` | subject | -- | [14](14.md) | |
| 209 | | `title` | article title | -- | [23](23.md) | | 199 | | `summary` | article summary | -- | [23](23.md) | |
| 210 | | `zap` | profile name | type of value | [57](57.md) | | 200 | | `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | |
| 201 | | `title` | article title | -- | [23](23.md) | | ||
| 202 | | `zap` | pubkey (hex), relay URL | weight | [57](57.md) | | ||
| 211 | 203 | ||
| 212 | ## Criteria for acceptance of NIPs | 204 | ## Criteria for acceptance of NIPs |
| 213 | 205 | ||