From d09b51246d7d5757b5e78ef1cc18e8925561d42f Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Fri, 22 Nov 2024 14:09:12 -0800 Subject: [PATCH 01/17] Tweak group join requests to include user feedback --- 29.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/29.md b/29.md index a2c8ef2..93dc3d2 100644 --- a/29.md +++ b/29.md @@ -72,7 +72,7 @@ These are events that can be sent by users to manage their situation in a group, - *join request* (`kind:9021`) -Any user can send one of these events to the relay in order to be automatically or manually added to the group. If the group is `open` the relay will automatically issue a `kind:9000` in response adding this user. Otherwise group admins may choose to query for these requests and act upon them. +Any user can send a kind `9021` event to the relay in order to request admission to the group. Relays MUST reject the request if the user has not been added to the group. The accompanying error message SHOULD explain whether the rejection is final, if the request is pending review, or if some other special handling is relevant (e.g. if payment is required). If a user is already a member, the event MUST be accepted. ```json { From 4d47b38dbc0c2e09d235972f59a4338a7bb37cc0 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Sat, 23 Nov 2024 07:09:25 -0800 Subject: [PATCH 02/17] Switch to rejecting duplicate joins --- 29.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/29.md b/29.md index 93dc3d2..7705c6d 100644 --- a/29.md +++ b/29.md @@ -72,7 +72,7 @@ These are events that can be sent by users to manage their situation in a group, - *join request* (`kind:9021`) -Any user can send a kind `9021` event to the relay in order to request admission to the group. Relays MUST reject the request if the user has not been added to the group. The accompanying error message SHOULD explain whether the rejection is final, if the request is pending review, or if some other special handling is relevant (e.g. if payment is required). If a user is already a member, the event MUST be accepted. +Any user can send a kind `9021` event to the relay in order to request admission to the group. Relays MUST reject the request if the user has not been added to the group. The accompanying error message SHOULD explain whether the rejection is final, if the request is pending review, or if some other special handling is relevant (e.g. if payment is required). If a user is already a member, the event MUST be rejected with `duplicate: ` as the error message prefix. ```json { From 2ffd8ec36360512c5f5087519b667434b4dc7832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=8E=9F=E6=99=B4=E5=A4=AA?= Date: Fri, 29 Nov 2024 14:40:11 +0000 Subject: [PATCH 03/17] use example domain --- 46.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/46.md b/46.md index 824059c..7f8859f 100644 --- a/46.md +++ b/46.md @@ -213,7 +213,7 @@ _remote-signer_ MAY publish it's metadata by using [NIP-05](05.md) and [NIP-89]( }, "nip46": { "relays": ["wss://relay1","wss://relay2"...], - "nostrconnect_url": "https://remote-signer-domain.com/" + "nostrconnect_url": "https://remote-signer-domain.example/" } } ``` From fe1fe75caecfaaf0dcd675fb706a91347c9b3c80 Mon Sep 17 00:00:00 2001 From: Asai Toshiya Date: Sat, 30 Nov 2024 15:57:50 +0900 Subject: [PATCH 04/17] mark kind 30001 as deprecated. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d362e6a..61fdbe8 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `24242` | Blobs stored on mediaservers | [Blossom][blossom] | | `27235` | HTTP Auth | [98](98.md) | | `30000` | Follow sets | [51](51.md) | -| `30001` | Generic lists | [51](51.md) | +| `30001` | Generic lists | 51 (deprecated) | | `30002` | Relay sets | [51](51.md) | | `30003` | Bookmark sets | [51](51.md) | | `30004` | Curation sets | [51](51.md) | From 54c0c1352d73595b99b568248b87fe4542d30141 Mon Sep 17 00:00:00 2001 From: Asai Toshiya Date: Sun, 1 Dec 2024 00:15:39 +0900 Subject: [PATCH 05/17] BREAKING.md: fix change of 7822a8b1 --- BREAKING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/BREAKING.md b/BREAKING.md index 40391e0..39be5a0 100644 --- a/BREAKING.md +++ b/BREAKING.md @@ -36,7 +36,8 @@ reverse chronological order. | 2023-12-27 | [17c67ef5](https://github.com/nostr-protocol/nips/commit/17c67ef5) | [94](94.md) | 'aes-256-gcm' tag was removed | | 2023-12-03 | [0ba45895](https://github.com/nostr-protocol/nips/commit/0ba45895) | [01](01.md) | WebSocket status code `4000` was replaced by 'CLOSED' message | | 2023-11-28 | [6de35f9e](https://github.com/nostr-protocol/nips/commit/6de35f9e) | [89](89.md) | 'client' tag value was changed | -| 2023-11-20 | [7822a8b1](https://github.com/nostr-protocol/nips/commit/7822a8b1) | [51](51.md) | `kind: 30000` and `kind: 30001` were deprecated | +| 2023-11-20 | [7822a8b1](https://github.com/nostr-protocol/nips/commit/7822a8b1) | [51](51.md) | `kind: 30001` was deprecated | +| 2023-11-20 | [7822a8b1](https://github.com/nostr-protocol/nips/commit/7822a8b1) | [51](51.md) | the meaning of `kind: 30000` was changed | | 2023-11-11 | [cbdca1e9](https://github.com/nostr-protocol/nips/commit/cbdca1e9) | [84](84.md) | 'range' tag was removed | | 2023-11-10 | [c945d8bd](https://github.com/nostr-protocol/nips/commit/c945d8bd) | [32](32.md) | 'l' tag annotations was removed | | 2023-11-07 | [108b7f16](https://github.com/nostr-protocol/nips/commit/108b7f16) | [01](01.md) | 'OK' message must have 4 items | From 33efff81a6909da9a85e81d296a711810f1848a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=8E=9F=E6=99=B4=E5=A4=AA?= Date: Wed, 4 Dec 2024 14:30:42 +0000 Subject: [PATCH 06/17] NIP-44: Proper base64 explanation "Encoding algorithm" instead of "compression algorithm" --- 44.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/44.md b/44.md index 8f781b8..b70acb2 100644 --- a/44.md +++ b/44.md @@ -63,7 +63,7 @@ NIP-44 version 2 has the following design characteristics: - SHA256 is used instead of SHA3 or BLAKE because it is already used in nostr. Also BLAKE's speed advantage is smaller in non-parallel environments. - A custom padding scheme is used instead of padmé because it provides better leakage reduction for small messages. -- Base64 encoding is used instead of another compression algorithm because it is widely available, and is already used in nostr. +- Base64 encoding is used instead of another encoding algorithm because it is widely available, and is already used in nostr. ### Encryption From 2776a2aa143e88295421bfc960e12adfcae5f8f8 Mon Sep 17 00:00:00 2001 From: Asai Toshiya Date: Fri, 6 Dec 2024 00:58:50 +0900 Subject: [PATCH 07/17] add `P` tag to README. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 61fdbe8..9107bd7 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `L` | label namespace | -- | [32](32.md) | | `m` | MIME type | -- | [94](94.md) | | `p` | pubkey (hex) | relay URL, petname | [01](01.md), [02](02.md) | +| `P` | pubkey (hex) | -- | [57](57.md) | | `q` | event id (hex) | relay URL, pubkey (hex) | [18](18.md) | | `r` | a reference (URL, etc) | -- | [24](24.md), [25](25.md) | | `r` | relay url | marker | [65](65.md) | From 6d16019e9e98807b23b7ae1faf5edeead7ddee7a Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Thu, 5 Dec 2024 16:59:18 -0300 Subject: [PATCH 08/17] nip46: abandon nip04 entirely and just use nip44. --- 46.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/46.md b/46.md index 7f8859f..d170628 100644 --- a/46.md +++ b/46.md @@ -72,12 +72,12 @@ _user_ passes this token to _remote-signer_, which then sends `connect` *respons { "kind": 24133, "pubkey": , - "content": )>, + "content": )>, "tags": [["p", ]], } ``` -The `content` field is a JSON-RPC-like message that is [NIP-04](04.md) encrypted and has the following structure: +The `content` field is a JSON-RPC-like message that is [NIP-44](44.md) encrypted and has the following structure: ```jsonc { @@ -109,7 +109,7 @@ Each of the following are methods that the _client_ sends to the _remote-signer_ ### Requested permissions -The `connect` method may be provided with `optional_requested_permissions` for user convenience. The permissions are a comma-separated list of `method[:params]`, i.e. `nip04_encrypt,sign_event:4` meaning permissions to call `nip04_encrypt` and to call `sign_event` with `kind:4`. Optional parameter for `sign_event` is the kind number, parameters for other methods are to be defined later. Same permission format may be used for `perms` field of `metadata` in `nostrconnect://` string. +The `connect` method may be provided with `optional_requested_permissions` for user convenience. The permissions are a comma-separated list of `method[:params]`, i.e. `nip44_encrypt,sign_event:4` meaning permissions to call `nip44_encrypt` and to call `sign_event` with `kind:4`. Optional parameter for `sign_event` is the kind number, parameters for other methods are to be defined later. Same permission format may be used for `perms` field of `metadata` in `nostrconnect://` string. ## Response Events `kind:24133` @@ -118,13 +118,13 @@ The `connect` method may be provided with `optional_requested_permissions` for u "id": , "kind": 24133, "pubkey": , - "content": )>, + "content": )>, "tags": [["p", ]], "created_at": } ``` -The `content` field is a JSON-RPC-like message that is [NIP-04](04.md) encrypted and has the following structure: +The `content` field is a JSON-RPC-like message that is [NIP-44](44.md) encrypted and has the following structure: ```json { @@ -150,7 +150,7 @@ The `content` field is a JSON-RPC-like message that is [NIP-04](04.md) encrypted { "kind": 24133, "pubkey": "eff37350d839ce3707332348af4549a96051bd695d3223af4aabce4993531d86", - "content": nip04({ + "content": nip44({ "id": , "method": "sign_event", "params": [json_stringified(<{ @@ -170,7 +170,7 @@ The `content` field is a JSON-RPC-like message that is [NIP-04](04.md) encrypted { "kind": 24133, "pubkey": "fa984bd7dbb282f07e16e7ae87b26a2a7b9b90b7246a44771f0cf5ae58018f52", - "content": nip04({ + "content": nip44({ "id": , "result": json_stringified() }), @@ -224,4 +224,4 @@ The `` MAY be used to verify the domain from _remote-s _remote-signer_ MAY publish a NIP-89 `kind: 31990` event with `k` tag of `24133`, which MAY also include one or more `relay` tags and MAY include `nostrconnect_url` tag. The semantics of `relay` and `nostrconnect_url` tags are the same as in the section above. -_client_ MAY improve UX by discovering _remote-signers_ using their `kind: 31990` events. _client_ MAY then pre-generate `nostrconnect://` strings for the _remote-signers_, and SHOULD in that case verify that `kind: 31990` event's author is mentioned in signer's `nostr.json?name=_` file as ``. +_client_ MAY improve UX by discovering _remote-signers_ using their `kind: 31990` events. _client_ MAY then pre-generate `nostrconnect://` strings for the _remote-signers_, and SHOULD in that case verify that `kind: 31990` event's author is mentioned in signer's `nostr.json?name=_` file as ``. From a92d2e2edd3251067ab8787ecf10ee2dffe2b85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=8E=9F=E6=99=B4=E5=A4=AA?= Date: Fri, 6 Dec 2024 11:26:23 +0000 Subject: [PATCH 09/17] Clarify the units --- 44.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/44.md b/44.md index b70acb2..8f27fed 100644 --- a/44.md +++ b/44.md @@ -86,7 +86,7 @@ NIP-44 version 2 has the following design characteristics: - Content must be encoded from UTF-8 into byte array - Validate plaintext length. Minimum is 1 byte, maximum is 65535 bytes - Padding format is: `[plaintext_length: u16][plaintext][zero_bytes]` - - Padding algorithm is related to powers-of-two, with min padded msg size of 32 + - Padding algorithm is related to powers-of-two, with min padded msg size of 32bytes - Plaintext length is encoded in big-endian as first 2 bytes of the padded blob 5. Encrypt padded content - Use ChaCha20, with key and nonce from step 3 @@ -148,8 +148,8 @@ validation rules, refer to BIP-340. - `x[i:j]`, where `x` is a byte array and `i, j <= 0` returns a `(j - i)`-byte array with a copy of the `i`-th byte (inclusive) to the `j`-th byte (exclusive) of `x`. - Constants `c`: - - `min_plaintext_size` is 1. 1b msg is padded to 32b. - - `max_plaintext_size` is 65535 (64kb - 1). It is padded to 65536. + - `min_plaintext_size` is 1. 1bytes msg is padded to 32bytes. + - `max_plaintext_size` is 65535 (64kB - 1). It is padded to 65536bytes. - Functions - `base64_encode(string)` and `base64_decode(bytes)` are Base64 ([RFC 4648](https://datatracker.ietf.org/doc/html/rfc4648), with padding) - `concat` refers to byte array concatenation From 936616b3c00c83679496ca610910901968917859 Mon Sep 17 00:00:00 2001 From: mono <102149418+TsukemonoGit@users.noreply.github.com> Date: Sat, 7 Dec 2024 07:43:52 +0900 Subject: [PATCH 10/17] Update README.md add Event Kinds kind:20 Picture-first feeds --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9107bd7..34dfc1b 100644 --- a/README.md +++ b/README.md @@ -119,6 +119,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `14` | Direct Message | [17](17.md) | | `16` | Generic Repost | [18](18.md) | | `17` | Reaction to a website | [25](25.md) | +| `20` | Picture-first feeds | [68](68.md) | | `40` | Channel Creation | [28](28.md) | | `41` | Channel Metadata | [28](28.md) | | `42` | Channel Message | [28](28.md) | From a2be191ecd0b882ed388a564b5e57b1ca25cbdb4 Mon Sep 17 00:00:00 2001 From: mono <102149418+TsukemonoGit@users.noreply.github.com> Date: Sat, 7 Dec 2024 07:45:25 +0900 Subject: [PATCH 11/17] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34dfc1b..eb6fd94 100644 --- a/README.md +++ b/README.md @@ -119,7 +119,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos | `14` | Direct Message | [17](17.md) | | `16` | Generic Repost | [18](18.md) | | `17` | Reaction to a website | [25](25.md) | -| `20` | Picture-first feeds | [68](68.md) | +| `20` | Picture | [68](68.md) | | `40` | Channel Creation | [28](28.md) | | `41` | Channel Metadata | [28](28.md) | | `42` | Channel Message | [28](28.md) | From b04922586ead1a0009716b86cc97d4790a5657d0 Mon Sep 17 00:00:00 2001 From: Jesus Christ <120573631+Gudnessuche@users.noreply.github.com> Date: Sun, 8 Dec 2024 12:34:34 +0000 Subject: [PATCH 12/17] Update 90.md Added a period to show the end of "Protocol Flow" explanation --- 90.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/90.md b/90.md index 696ebd5..1d69b0f 100644 --- a/90.md +++ b/90.md @@ -185,7 +185,7 @@ Any job feedback event MIGHT include results in the `.content` field, as describ * Customer publishes a job request (e.g. `kind:5000` speech-to-text). * Service Providers MAY submit `kind:7000` job-feedback events (e.g. `payment-required`, `processing`, `error`, etc.). * Upon completion, the service provider publishes the result of the job with a `kind:6000` job-result event. -* At any point, if there is an `amount` pending to be paid as instructed by the service provider, the user can pay the included `bolt11` or zap the job result event the service provider has sent to the user +* At any point, if there is an `amount` pending to be paid as instructed by the service provider, the user can pay the included `bolt11` or zap the job result event the service provider has sent to the user. Job feedback (`kind:7000`) and Job Results (`kind:6000-6999`) events MAY include an `amount` tag, this can be interpreted as a suggestion to pay. Service Providers MUST use the `payment-required` feedback event to signal that a payment is required and no further actions will be performed until the payment is sent. From d71887a8e29821212f765b3cdf69c25df1415271 Mon Sep 17 00:00:00 2001 From: Asai Toshiya Date: Mon, 9 Dec 2024 13:19:16 +0900 Subject: [PATCH 13/17] BREAKING.md: merge duplicate lines --- BREAKING.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/BREAKING.md b/BREAKING.md index 39be5a0..f083ca0 100644 --- a/BREAKING.md +++ b/BREAKING.md @@ -30,8 +30,7 @@ reverse chronological order. | 2024-02-07 | [d3dad114](https://github.com/nostr-protocol/nips/commit/d3dad114) | [46](46.md) | Connection token format was changed | | 2024-01-30 | [1a2b21b6](https://github.com/nostr-protocol/nips/commit/1a2b21b6) | [59](59.md) | 'p' tag became optional | | 2023-01-27 | [c2f34817](https://github.com/nostr-protocol/nips/commit/c2f34817) | [47](47.md) | optional expiration tag should be honored | -| 2024-01-10 | [3d8652ea](https://github.com/nostr-protocol/nips/commit/3d8652ea) | [02](02.md) | list entries should be chronological | -| 2024-01-10 | [3d8652ea](https://github.com/nostr-protocol/nips/commit/3d8652ea) | [51](51.md) | list entries should be chronological | +| 2024-01-10 | [3d8652ea](https://github.com/nostr-protocol/nips/commit/3d8652ea) | [02](02.md), [51](51.md) | list entries should be chronological | | 2023-12-30 | [29869821](https://github.com/nostr-protocol/nips/commit/29869821) | [52](52.md) | 'name' tag was removed (use 'title' tag instead) | | 2023-12-27 | [17c67ef5](https://github.com/nostr-protocol/nips/commit/17c67ef5) | [94](94.md) | 'aes-256-gcm' tag was removed | | 2023-12-03 | [0ba45895](https://github.com/nostr-protocol/nips/commit/0ba45895) | [01](01.md) | WebSocket status code `4000` was replaced by 'CLOSED' message | @@ -46,10 +45,7 @@ reverse chronological order. | 2023-08-21 | [89915e02](https://github.com/nostr-protocol/nips/commit/89915e02) | [11](11.md) | 'min_prefix' was removed | | 2023-08-20 | [37c4375e](https://github.com/nostr-protocol/nips/commit/37c4375e) | [01](01.md) | replaceable events with same timestamp should be retained event with lowest id | | 2023-08-15 | [88ee873c](https://github.com/nostr-protocol/nips/commit/88ee873c) | [15](15.md) | 'countries' tag was renamed to 'regions' | -| 2023-08-14 | [72bb8a12](https://github.com/nostr-protocol/nips/commit/72bb8a12) | [12](12.md) | NIP-12, 16, 20 and 33 were merged into NIP-01 | -| 2023-08-14 | [72bb8a12](https://github.com/nostr-protocol/nips/commit/72bb8a12) | [16](16.md) | NIP-12, 16, 20 and 33 were merged into NIP-01 | -| 2023-08-14 | [72bb8a12](https://github.com/nostr-protocol/nips/commit/72bb8a12) | [20](20.md) | NIP-12, 16, 20 and 33 were merged into NIP-01 | -| 2023-08-14 | [72bb8a12](https://github.com/nostr-protocol/nips/commit/72bb8a12) | [33](33.md) | NIP-12, 16, 20 and 33 were merged into NIP-01 | +| 2023-08-14 | [72bb8a12](https://github.com/nostr-protocol/nips/commit/72bb8a12) | [12](12.md), [16](16.md), [20](20.md), [33](33.md) | NIP-12, 16, 20 and 33 were merged into NIP-01 | | 2023-08-11 | [d87f8617](https://github.com/nostr-protocol/nips/commit/d87f8617) | [25](25.md) | empty `content` should be considered as "+" | | 2023-08-01 | [5d63b157](https://github.com/nostr-protocol/nips/commit/5d63b157) | [57](57.md) | 'zap' tag was changed | | 2023-07-15 | [d1814405](https://github.com/nostr-protocol/nips/commit/d1814405) | [01](01.md) | `since` and `until` filters should be `since <= created_at <= until` | From b94ad00ac7da6f4d54f1920c824487410fa904b7 Mon Sep 17 00:00:00 2001 From: Asai Toshiya Date: Mon, 9 Dec 2024 13:29:10 +0900 Subject: [PATCH 14/17] BREAKING.md: add NIP-46 change --- BREAKING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/BREAKING.md b/BREAKING.md index f083ca0..77900d3 100644 --- a/BREAKING.md +++ b/BREAKING.md @@ -5,6 +5,7 @@ reverse chronological order. | Date | Commit | NIP | Change | | ----------- | --------- | -------- | ------ | +| 2024-12-05 | [6d16019e](https://github.com/nostr-protocol/nips/commit/6d16019e) | [46](46.md) | message encryption was changed to NIP-44 | | 2024-11-12 | [2838e3bd](https://github.com/nostr-protocol/nips/commit/2838e3bd) | [29](29.md) | `kind: 12` and `kind: 10` were removed (use `kind: 1111` instead) | | 2024-11-12 | [926a51e7](https://github.com/nostr-protocol/nips/commit/926a51e7) | [46](46.md) | NIP-05 login was removed | | 2024-11-12 | [926a51e7](https://github.com/nostr-protocol/nips/commit/926a51e7) | [46](46.md) | `create_account` method was removed | From 624b989f9f3b0c07d338ec42765351c24f2123cf Mon Sep 17 00:00:00 2001 From: Josh Brown Date: Mon, 9 Dec 2024 10:00:04 -0500 Subject: [PATCH 15/17] clarify that Standard lists and Sets are both types of lists with heading level --- 51.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/51.md b/51.md index 4c0b1f4..90b56ce 100644 --- a/51.md +++ b/51.md @@ -14,7 +14,7 @@ When new items are added to an existing list, clients SHOULD append them to the ## Types of lists -## Standard lists +### Standard lists Standard lists use normal replaceable events, meaning users may only have a single list of each kind. They have special meaning and clients may rely on them to augment a user's profile or browsing experience. @@ -36,7 +36,7 @@ For example, _mute list_ can contain the public keys of spammers and bad actors | Good wiki authors | 10101 | [NIP-54](54.md) user recommended wiki authors | `"p"` (pubkeys) | | Good wiki relays | 10102 | [NIP-54](54.md) relays deemed to only host useful articles | `"relay"` (relay URLs) | -## Sets +### Sets Sets are lists with well-defined meaning that can enhance the functionality and the UI of clients that rely on them. Unlike standard lists, users are expected to have more than one set of each kind, therefore each of them must be assigned a different `"d"` identifier. @@ -56,7 +56,7 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"ti | Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) | | Release artifact sets | 30063 | groups of files of a software release | `"e"` (kind:1063 [file metadata](94.md) events), `"i"` (application identifier, typically reverse domain notation), `"version"` | -## Deprecated standard lists +### Deprecated standard lists Some clients have used these lists in the past, but they should work on transitioning to the [standard formats](#standard-lists) above. From e942427f8fcf316f4ade52838005910a650270af Mon Sep 17 00:00:00 2001 From: Jesus Christ <120573631+Gudnessuche@users.noreply.github.com> Date: Mon, 9 Dec 2024 15:13:59 +0000 Subject: [PATCH 16/17] nip17: specify order (#1637) Order specificity is implied better. --- 17.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/17.md b/17.md index 72f40c4..f091a96 100644 --- a/17.md +++ b/17.md @@ -133,7 +133,7 @@ When sending a message to anyone, clients must then connect to the relays in the This example sends the message `Hola, que tal?` from `nsec1w8udu59ydjvedgs3yv5qccshcj8k05fh3l60k9x57asjrqdpa00qkmr89m` to `nsec12ywtkplvyq5t6twdqwwygavp5lm4fhuang89c943nf2z92eez43szvn4dt`. -The two final GiftWraps, one to the receiver and the other to the sender, are: +The two final GiftWraps, one to the receiver and the other to the sender, respectively, are: ```json { From a1ca7a194b6d8f249b7437c0082682c2a7c074ab Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Tue, 10 Dec 2024 14:11:43 -0800 Subject: [PATCH 17/17] Change strategy for naming groups --- 29.md | 4 ++-- 51.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/29.md b/29.md index 331047f..8711cc9 100644 --- a/29.md +++ b/29.md @@ -30,8 +30,6 @@ When encountering just the `` without the `'`, clients MAY infer Events sent by users to groups (chat messages, text notes, moderation events etc) MUST have an `h` tag with the value set to the group _id_. -`h` tags MAY include the group's name as the second argument. This allows `unmanaged` groups to be assigned human-readable names without relay support. - ## Timeline references In order to not be used out of context, events sent to these groups may contain references to previous events seen from the same relay in the `previous` tag. The choice of which previous events to pick belongs to the clients. The references are to be made using the first 8 characters (4 bytes) of any event in the last 50 events seen by the user in the relay, excluding events by themselves. There can be any number of references (including zero), but it's recommended that clients include at least 3 and that relays enforce this. @@ -242,3 +240,5 @@ A definition for `kind:10009` was included in [NIP-51](51.md) that allows client ### Using `unmanaged` relays To prevent event leakage, when using `unmanaged` relays, clients should include the [NIP-70](70.md) `-` tag, as just the `previous` tag won't be checked by other `unmanaged` relays. + +Groups MAY be named without relay support by adding a `name` to the corresponding tag in a user's `kind 10009` group list. diff --git a/51.md b/51.md index 90b56ce..23d5b99 100644 --- a/51.md +++ b/51.md @@ -29,7 +29,7 @@ For example, _mute list_ can contain the public keys of spammers and bad actors | Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 channel definitions) | | Blocked relays | 10006 | relays clients should never connect to | `"relay"` (relay URLs) | | Search relays | 10007 | relays clients should use when performing search queries | `"relay"` (relay URLs) | -| Simple groups | 10009 | [NIP-29](29.md) groups the user is in | `"group"` ([NIP-29](29.md) group id + relay URL), `"r"` for each relay in use | +| Simple groups | 10009 | [NIP-29](29.md) groups the user is in | `"group"` ([NIP-29](29.md) group id + relay URL + optional group name), `"r"` for each relay in use | | Interests | 10015 | topics a user may be interested in and pointers | `"t"` (hashtags) and `"a"` (kind:30015 interest set) | | Emojis | 10030 | user preferred emojis and pointers to emoji sets | `"emoji"` (see [NIP-30](30.md)) and `"a"` (kind:30030 emoji set) | | DM relays | 10050 | Where to receive [NIP-17](17.md) direct messages | `"relay"` (see [NIP-17](17.md)) |