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:
authorPablo Fernandez <p@f7z.io>2023-10-15 21:30:42 +0300
committerGitHub <noreply@github.com>2023-10-15 21:30:42 +0300
commita482f47ae4c36d38062cd0fd3ee6235e57691673 (patch)
treea16f57208cd3c3ef74237dafcef277f16d70e688 /README.md
parentd9400e1e7b08225aedb6c78b522c5ad07b5198b4 (diff)
parent202e18f2b256646148805880ed58731c1c8b2b9b (diff)
Merge branch 'master' into vending-machine
Diffstat (limited to 'README.md')
-rw-r--r--README.md120
1 files changed, 56 insertions, 64 deletions
diff --git a/README.md b/README.md
index a3e19f5..6f9cb03 100644
--- a/README.md
+++ b/README.md
@@ -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
166Please update these lists when proposing NIPs introducing new event kinds. 158Please update these lists when proposing NIPs introducing new event kinds.
167 159
168When 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