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:
Diffstat (limited to 'README.md')
-rw-r--r--README.md231
1 files changed, 113 insertions, 118 deletions
diff --git a/README.md b/README.md
index a3e19f5..3f7cb41 100644
--- a/README.md
+++ b/README.md
@@ -7,12 +7,12 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
7 7
8- [List](#list) 8- [List](#list)
9- [Event Kinds](#event-kinds) 9- [Event Kinds](#event-kinds)
10 - [Event Kind Ranges](#event-kind-ranges)
11- [Message Types](#message-types) 10- [Message Types](#message-types)
12 - [Client to Relay](#client-to-relay) 11 - [Client to Relay](#client-to-relay)
13 - [Relay to Client](#relay-to-client) 12 - [Relay to Client](#relay-to-client)
14- [Standardized Tags](#standardized-tags) 13- [Standardized Tags](#standardized-tags)
15- [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips) 14- [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips)
15- [Mailing Lists](#mailing-lists)
16- [License](#license) 16- [License](#license)
17 17
18--- 18---
@@ -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,7 +64,9 @@ 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)
69- [NIP-84: Highlights](84.md)
70- [NIP-89: Recommended Application Handlers](89.md) 70- [NIP-89: Recommended Application Handlers](89.md)
71- [NIP-90: Data Vending Machines](90.md) 71- [NIP-90: Data Vending Machines](90.md)
72- [NIP-94: File Metadata](94.md) 72- [NIP-94: File Metadata](94.md)
@@ -75,70 +75,65 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
75 75
76## Event Kinds 76## Event Kinds
77 77
78| kind | description | NIP | 78| kind | description | NIP |
79| ------- | -------------------------- | ----------- | 79| ------------- | -------------------------- | ----------- |
80| `0` | Metadata | [1](01.md) | 80| `0` | Metadata | [1](01.md) |
81| `1` | Short Text Note | [1](01.md) | 81| `1` | Short Text Note | [1](01.md) |
82| `2` | Recommend Relay | [1](01.md) | 82| `2` | Recommend Relay | |
83| `3` | Contacts | [2](02.md) | 83| `3` | Contacts | [2](02.md) |
84| `4` | Encrypted Direct Messages | [4](04.md) | 84| `4` | Encrypted Direct Messages | [4](04.md) |
85| `5` | Event Deletion | [9](09.md) | 85| `5` | Event Deletion | [9](09.md) |
86| `6` | Repost | [18](18.md) | 86| `6` | Repost | [18](18.md) |
87| `7` | Reaction | [25](25.md) | 87| `7` | Reaction | [25](25.md) |
88| `8` | Badge Award | [58](58.md) | 88| `8` | Badge Award | [58](58.md) |
89| `16` | Generic Repost | [18](18.md) | 89| `16` | Generic Repost | [18](18.md) |
90| `40` | Channel Creation | [28](28.md) | 90| `40` | Channel Creation | [28](28.md) |
91| `41` | Channel Metadata | [28](28.md) | 91| `41` | Channel Metadata | [28](28.md) |
92| `42` | Channel Message | [28](28.md) | 92| `42` | Channel Message | [28](28.md) |
93| `43` | Channel Hide Message | [28](28.md) | 93| `43` | Channel Hide Message | [28](28.md) |
94| `44` | Channel Mute User | [28](28.md) | 94| `44` | Channel Mute User | [28](28.md) |
95| `1063` | File Metadata | [94](94.md) | 95| `1063` | File Metadata | [94](94.md) |
96| `1311` | Live Chat Message | [53](53.md) | 96| `1311` | Live Chat Message | [53](53.md) |
97| `1984` | Reporting | [56](56.md) | 97| `1040` | OpenTimestamps | [03](03.md) |
98| `1985` | Label | [32](32.md) | 98| `1984` | Reporting | [56](56.md) |
99| `4550` | Community Post Approval | [72](72.md) | 99| `1985` | Label | [32](32.md) |
100| `9734` | Zap Request | [57](57.md) | 100| `4550` | Community Post Approval | [72](72.md) |
101| `9735` | Zap | [57](57.md) | 101| `5000`-`5999` | Job Request | [90](90.md) |
102| `10000` | Mute List | [51](51.md) | 102| `6000`-`6999` | Job Result | [90](90.md) |
103| `10001` | Pin List | [51](51.md) | 103| `7000` | Job Feedback | [90](90.md) |
104| `10002` | Relay List Metadata | [65](65.md) | 104| `9041` | Zap Goal | [75](75.md) |
105| `13194` | Wallet Info | [47](47.md) | 105| `9734` | Zap Request | [57](57.md) |
106| `22242` | Client Authentication | [42](42.md) | 106| `9735` | Zap | [57](57.md) |
107| `23194` | Wallet Request | [47](47.md) | 107| `9802` | Highlights | [84](84.md) |
108| `23195` | Wallet Response | [47](47.md) | 108| `10000` | Mute List | [51](51.md) |
109| `24133` | Nostr Connect | [46](46.md) | 109| `10001` | Pin List | [51](51.md) |
110| `27235` | HTTP Auth | [98](98.md) | 110| `10002` | Relay List Metadata | [65](65.md) |
111| `30000` | Categorized People List | [51](51.md) | 111| `13194` | Wallet Info | [47](47.md) |
112| `30001` | Categorized Bookmark List | [51](51.md) | 112| `22242` | Client Authentication | [42](42.md) |
113| `30008` | Profile Badges | [58](58.md) | 113| `23194` | Wallet Request | [47](47.md) |
114| `30009` | Badge Definition | [58](58.md) | 114| `23195` | Wallet Response | [47](47.md) |
115| `30017` | Create or update a stall | [15](15.md) | 115| `24133` | Nostr Connect | [46](46.md) |
116| `30018` | Create or update a product | [15](15.md) | 116| `27235` | HTTP Auth | [98](98.md) |
117| `30023` | Long-form Content | [23](23.md) | 117| `30000` | Categorized People List | [51](51.md) |
118| `30024` | Draft Long-form Content | [23](23.md) | 118| `30001` | Categorized Bookmark List | [51](51.md) |
119| `30078` | Application-specific Data | [78](78.md) | 119| `30008` | Profile Badges | [58](58.md) |
120| `30311` | Live Event | [53](53.md) | 120| `30009` | Badge Definition | [58](58.md) |
121| `30402` | Classified Listing | [99](99.md) | 121| `30017` | Create or update a stall | [15](15.md) |
122| `30403` | Draft Classified Listing | [99](99.md) | 122| `30018` | Create or update a product | [15](15.md) |
123| `31922` | Date-Based Calendar Event | [52](52.md) | 123| `30023` | Long-form Content | [23](23.md) |
124| `31923` | Time-Based Calendar Event | [52](52.md) | 124| `30024` | Draft Long-form Content | [23](23.md) |
125| `31924` | Calendar | [52](52.md) | 125| `30078` | Application-specific Data | [78](78.md) |
126| `31925` | Calendar Event RSVP | [52](52.md) | 126| `30311` | Live Event | [53](53.md) |
127| `31989` | Handler recommendation | [89](89.md) | 127| `30315` | User Statuses | [38](38.md) |
128| `31990` | Handler information | [89](89.md) | 128| `30402` | Classified Listing | [99](99.md) |
129| `34550` | Community Definition | [72](72.md) | 129| `30403` | Draft Classified Listing | [99](99.md) |
130| `65000` | Job Feedback | [90](90.md) | 130| `31922` | Date-Based Calendar Event | [52](52.md) |
131| `65001` | Job Result | [90](90.md) | 131| `31923` | Time-Based Calendar Event | [52](52.md) |
132 132| `31924` | Calendar | [52](52.md) |
133### Event Kind Ranges 133| `31925` | Calendar Event RSVP | [52](52.md) |
134 134| `31989` | Handler recommendation | [89](89.md) |
135| range | description | NIP | 135| `31990` | Handler information | [89](89.md) |
136| ---------------- | -------------------------------- | ----------- | 136| `34550` | Community Definition | [72](72.md) |
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 137
143## Message types 138## Message types
144 139
@@ -146,68 +141,68 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
146 141
147| type | description | NIP | 142| type | description | NIP |
148| ------- | --------------------------------------------------- | ----------- | 143| ------- | --------------------------------------------------- | ----------- |
144| `EVENT` | used to publish events | [01](01.md) |
145| `REQ` | used to request events and subscribe to new updates | [01](01.md) |
146| `CLOSE` | used to stop previous subscriptions | [01](01.md) |
149| `AUTH` | used to send authentication events | [42](42.md) | 147| `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) | 148| `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 149
155### Relay to Client 150### Relay to Client
156 151
157| type | description | NIP | 152| type | description | NIP |
158| -------- | ------------------------------------------------------- | ----------- | 153| -------- | ------------------------------------------------------- | ----------- |
154| `EOSE` | used to notify clients all stored events have been sent | [01](01.md) |
155| `EVENT` | used to send events requested to clients | [01](01.md) |
156| `NOTICE` | used to send human-readable messages to clients | [01](01.md) |
157| `OK` | used to notify clients if an EVENT was successful | [01](01.md) |
159| `AUTH` | used to send authentication challenges | [42](42.md) | 158| `AUTH` | used to send authentication challenges | [42](42.md) |
160| `COUNT` | used to send requested event counts to clients | [45](45.md) | 159| `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 160
166Please update these lists when proposing NIPs introducing new event kinds. 161Please update these lists when proposing NIPs introducing new event kinds.
167 162
168When experimenting with kinds, keep in mind the classification introduced by [NIP-16](16.md) and [NIP-33](33.md).
169
170## Standardized Tags 163## Standardized Tags
171 164
172| name | value | other parameters | NIP | 165| name | value | other parameters | NIP |
173| ----------------- | ------------------------------------ | -------------------- | ------------------------ | 166| ----------------- | ------------------------------------ | -------------------- | ------------------------------------- |
174| `a` | coordinates to an event | relay URL | [33](33.md), [23](23.md) | 167| `e` | event id (hex) | relay URL, marker | [01](01.md), [10](10.md) |
175| `alt` | Alt tag | -- | [31](31.md) | 168| `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) |
176| `d` | identifier | -- | [33](33.md) | 169| `a` | coordinates to an event | relay URL | [01](01.md) |
177| `e` | event id (hex) | relay URL, marker | [1](01.md), [10](10.md) | 170| `d` | identifier | -- | [01](01.md) |
178| `g` | geohash | -- | [12](12.md), [52](52.md) | 171| `alt` | summary | -- | [31](31.md) |
179| `i` | identity | proof | [39](39.md) | 172| `g` | geohash | -- | [52](52.md) |
180| `k` | kind number (string) | -- | [18](18.md), [72](72.md) | 173| `i` | identity | proof | [39](39.md) |
181| `l` | label, label namespace | annotations | [32](32.md) | 174| `k` | kind number (string) | -- | [18](18.md), [25](25.md), [72](72.md) |
182| `L` | label namespace | -- | [32](32.md) | 175| `l` | label, label namespace | annotations | [32](32.md) |
183| `p` | pubkey (hex) | relay URL | [1](01.md) | 176| `L` | label namespace | -- | [32](32.md) |
184| `r` | a reference (URL, etc) | -- | [12](12.md) | 177| `m` | MIME type | -- | [94](94.md) |
185| `t` | hashtag | -- | [12](12.md) | 178| `r` | a reference (URL, etc) | petname | |
186| `amount` | millisats | -- | [57](57.md) | 179| `r` | relay url | marker | [65](65.md) |
187| `bolt11` | `bolt11` invoice | -- | [57](57.md) | 180| `t` | hashtag | -- | |
188| `challenge` | challenge string | -- | [42](42.md) | 181| `amount` | millisatoshis, stringified | -- | [57](57.md) |
189| `content-warning` | reason | -- | [36](36.md) | 182| `bolt11` | `bolt11` invoice | -- | [57](57.md) |
190| `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) | 183| `challenge` | challenge string | -- | [42](42.md) |
191| `description` | badge description | -- | [58](58.md) | 184| `content-warning` | reason | -- | [36](36.md) |
192| `description` | invoice description | -- | [57](57.md) | 185| `delegation` | pubkey, conditions, delegation token | -- | [26](26.md) |
193| `emoji` | shortcode, image URL | -- | [30](30.md) | 186| `description` | invoice/badge description | -- | [57](57.md), [58](58.md) |
194| `expiration` | unix timestamp (string) | -- | [40](40.md) | 187| `emoji` | shortcode, image URL | -- | [30](30.md) |
195| `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) | 188| `expiration` | unix timestamp (string) | -- | [40](40.md) |
196| `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) | 189| `goal` | event id (hex) | relay URL | [75](75.md) |
197| `location` | location string | -- | [52](52.md), [99](99.md) | 190| `image` | image URL | dimensions in pixels | [23](23.md), [58](58.md) |
198| `name` | badge name | -- | [58](58.md) | 191| `lnurl` | `bech32` encoded `lnurl` | -- | [57](57.md) |
199| `nonce` | random | -- | [13](13.md) | 192| `location` | location string | -- | [52](52.md), [99](99.md) |
200| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) | 193| `name` | badge name | -- | [58](58.md) |
201| `price` | price | currency, frequency | [99](99.md) | 194| `nonce` | random | -- | [13](13.md) |
202| `proxy` | external ID | protocol | [48](48.md) | 195| `preimage` | hash of `bolt11` invoice | -- | [57](57.md) |
203| `published_at` | unix timestamp (string) | -- | [23](23.md) | 196| `price` | price | currency, frequency | [99](99.md) |
204| `relay` | relay url | -- | [42](42.md) | 197| `proxy` | external ID | protocol | [48](48.md) |
205| `relays` | relay list | -- | [57](57.md) | 198| `published_at` | unix timestamp (string) | -- | [23](23.md) |
206| `subject` | subject | -- | [14](14.md) | 199| `relay` | relay url | -- | [42](42.md) |
207| `summary` | article summary | -- | [23](23.md) | 200| `relays` | relay list | -- | [57](57.md) |
208| `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) | 201| `subject` | subject | -- | [14](14.md) |
209| `title` | article title | -- | [23](23.md) | 202| `summary` | article summary | -- | [23](23.md) |
210| `zap` | profile name | type of value | [57](57.md) | 203| `thumb` | badge thumbnail | dimensions in pixels | [58](58.md) |
204| `title` | article title | -- | [23](23.md) |
205| `zap` | pubkey (hex), relay URL | weight | [57](57.md) |
211 206
212## Criteria for acceptance of NIPs 207## Criteria for acceptance of NIPs
213 208