From b128ad98ade41b2b1f029e7460329554748fea73 Mon Sep 17 00:00:00 2001
From: Pablo Fernandez
Date: Tue, 7 Nov 2023 14:16:43 +0200
Subject: NIP-84: Highlights (#501)
Co-authored-by: Alejandro
Co-authored-by: arthurfranca
Co-authored-by: fiatjaf_
---
README.md | 2 ++
1 file changed, 2 insertions(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 8be0595..f818b04 100644
--- a/README.md
+++ b/README.md
@@ -66,6 +66,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [NIP-72: Moderated Communities](72.md)
- [NIP-75: Zap Goals](75.md)
- [NIP-78: Application-specific data](78.md)
+- [NIP-84: Highlights](84.md)
- [NIP-89: Recommended Application Handlers](89.md)
- [NIP-90: Data Vending Machines](90.md)
- [NIP-94: File Metadata](94.md)
@@ -101,6 +102,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `9041` | Zap Goal | [75](75.md) |
| `9734` | Zap Request | [57](57.md) |
| `9735` | Zap | [57](57.md) |
+| `9802` | Highlights | [84](84.md) |
| `10000` | Mute List | [51](51.md) |
| `10001` | Pin List | [51](51.md) |
| `10002` | Relay List Metadata | [65](65.md) |
--
cgit v1.2.3
From c5930de1076a747eb8181267a76ddaba8a8aad67 Mon Sep 17 00:00:00 2001
From: gsovereignty
Date: Wed, 8 Nov 2023 13:46:50 +0800
Subject: Problem: nostrocket problem tracker event kind not included in list
Mostly just letting people know that this event kind is now in use by Nostrocket.
---
README.md | 1 +
1 file changed, 1 insertion(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index f818b04..36dfada 100644
--- a/README.md
+++ b/README.md
@@ -95,6 +95,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `1063` | File Metadata | [94](94.md) |
| `1311` | Live Chat Message | [53](53.md) |
| `1040` | OpenTimestamps | [03](03.md) |
+| `1971` | Problem Tracker | [1971](https://github.com/nostrocket/NIPS/blob/main/Problems.md) |
| `1984` | Reporting | [56](56.md) |
| `1985` | Label | [32](32.md) |
| `4550` | Community Post Approval | [72](72.md) |
--
cgit v1.2.3
From 2e652f03d5d645b77f233d16cd3f2c29e1d1a1ec Mon Sep 17 00:00:00 2001
From: Asai Toshiya
Date: Fri, 10 Nov 2023 23:59:00 +0900
Subject: Update TOC
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index f818b04..a42aa20 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
- [List](#list)
- [Event Kinds](#event-kinds)
- - [Event Kind Ranges](#event-kind-ranges)
- [Message Types](#message-types)
- [Client to Relay](#client-to-relay)
- [Relay to Client](#relay-to-client)
- [Standardized Tags](#standardized-tags)
- [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips)
+- [Mailing Lists](#mailing-lists)
- [License](#license)
---
--
cgit v1.2.3
From e7777c30315969b3097d4b7940a92e49519b1556 Mon Sep 17 00:00:00 2001
From: Asai Toshiya
Date: Sat, 11 Nov 2023 00:50:47 +0900
Subject: Add DVM kinds to list
---
README.md | 2 ++
1 file changed, 2 insertions(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index a42aa20..9d3ee62 100644
--- a/README.md
+++ b/README.md
@@ -98,6 +98,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `1984` | Reporting | [56](56.md) |
| `1985` | Label | [32](32.md) |
| `4550` | Community Post Approval | [72](72.md) |
+| `5000`-`5999` | Job Request | [90](90.md) |
+| `6000`-`6999` | Job Result | [90](90.md) |
| `7000` | Job Feedback | [90](90.md) |
| `9041` | Zap Goal | [75](75.md) |
| `9734` | Zap Request | [57](57.md) |
--
cgit v1.2.3
From b303240a2b9a168069d94b4fefb3f156316215cd Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Fri, 10 Nov 2023 13:11:11 -0300
Subject: format kinds table.
---
README.md | 118 +++++++++++++++++++++++++++++++-------------------------------
1 file changed, 59 insertions(+), 59 deletions(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 9d3ee62..3f7cb41 100644
--- a/README.md
+++ b/README.md
@@ -75,65 +75,65 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
## Event Kinds
-| kind | description | NIP |
-| ------- | -------------------------- | ----------- |
-| `0` | Metadata | [1](01.md) |
-| `1` | Short Text Note | [1](01.md) |
-| `2` | Recommend Relay | |
-| `3` | Contacts | [2](02.md) |
-| `4` | Encrypted Direct Messages | [4](04.md) |
-| `5` | Event Deletion | [9](09.md) |
-| `6` | Repost | [18](18.md) |
-| `7` | Reaction | [25](25.md) |
-| `8` | Badge Award | [58](58.md) |
-| `16` | Generic Repost | [18](18.md) |
-| `40` | Channel Creation | [28](28.md) |
-| `41` | Channel Metadata | [28](28.md) |
-| `42` | Channel Message | [28](28.md) |
-| `43` | Channel Hide Message | [28](28.md) |
-| `44` | Channel Mute User | [28](28.md) |
-| `1063` | File Metadata | [94](94.md) |
-| `1311` | Live Chat Message | [53](53.md) |
-| `1040` | OpenTimestamps | [03](03.md) |
-| `1984` | Reporting | [56](56.md) |
-| `1985` | Label | [32](32.md) |
-| `4550` | Community Post Approval | [72](72.md) |
-| `5000`-`5999` | Job Request | [90](90.md) |
-| `6000`-`6999` | Job Result | [90](90.md) |
-| `7000` | Job Feedback | [90](90.md) |
-| `9041` | Zap Goal | [75](75.md) |
-| `9734` | Zap Request | [57](57.md) |
-| `9735` | Zap | [57](57.md) |
-| `9802` | Highlights | [84](84.md) |
-| `10000` | Mute List | [51](51.md) |
-| `10001` | Pin List | [51](51.md) |
-| `10002` | Relay List Metadata | [65](65.md) |
-| `13194` | Wallet Info | [47](47.md) |
-| `22242` | Client Authentication | [42](42.md) |
-| `23194` | Wallet Request | [47](47.md) |
-| `23195` | Wallet Response | [47](47.md) |
-| `24133` | Nostr Connect | [46](46.md) |
-| `27235` | HTTP Auth | [98](98.md) |
-| `30000` | Categorized People List | [51](51.md) |
-| `30001` | Categorized Bookmark List | [51](51.md) |
-| `30008` | Profile Badges | [58](58.md) |
-| `30009` | Badge Definition | [58](58.md) |
-| `30017` | Create or update a stall | [15](15.md) |
-| `30018` | Create or update a product | [15](15.md) |
-| `30023` | Long-form Content | [23](23.md) |
-| `30024` | Draft Long-form Content | [23](23.md) |
-| `30078` | Application-specific Data | [78](78.md) |
-| `30311` | Live Event | [53](53.md) |
-| `30315` | User Statuses | [38](38.md) |
-| `30402` | Classified Listing | [99](99.md) |
-| `30403` | Draft Classified Listing | [99](99.md) |
-| `31922` | Date-Based Calendar Event | [52](52.md) |
-| `31923` | Time-Based Calendar Event | [52](52.md) |
-| `31924` | Calendar | [52](52.md) |
-| `31925` | Calendar Event RSVP | [52](52.md) |
-| `31989` | Handler recommendation | [89](89.md) |
-| `31990` | Handler information | [89](89.md) |
-| `34550` | Community Definition | [72](72.md) |
+| kind | description | NIP |
+| ------------- | -------------------------- | ----------- |
+| `0` | Metadata | [1](01.md) |
+| `1` | Short Text Note | [1](01.md) |
+| `2` | Recommend Relay | |
+| `3` | Contacts | [2](02.md) |
+| `4` | Encrypted Direct Messages | [4](04.md) |
+| `5` | Event Deletion | [9](09.md) |
+| `6` | Repost | [18](18.md) |
+| `7` | Reaction | [25](25.md) |
+| `8` | Badge Award | [58](58.md) |
+| `16` | Generic Repost | [18](18.md) |
+| `40` | Channel Creation | [28](28.md) |
+| `41` | Channel Metadata | [28](28.md) |
+| `42` | Channel Message | [28](28.md) |
+| `43` | Channel Hide Message | [28](28.md) |
+| `44` | Channel Mute User | [28](28.md) |
+| `1063` | File Metadata | [94](94.md) |
+| `1311` | Live Chat Message | [53](53.md) |
+| `1040` | OpenTimestamps | [03](03.md) |
+| `1984` | Reporting | [56](56.md) |
+| `1985` | Label | [32](32.md) |
+| `4550` | Community Post Approval | [72](72.md) |
+| `5000`-`5999` | Job Request | [90](90.md) |
+| `6000`-`6999` | Job Result | [90](90.md) |
+| `7000` | Job Feedback | [90](90.md) |
+| `9041` | Zap Goal | [75](75.md) |
+| `9734` | Zap Request | [57](57.md) |
+| `9735` | Zap | [57](57.md) |
+| `9802` | Highlights | [84](84.md) |
+| `10000` | Mute List | [51](51.md) |
+| `10001` | Pin List | [51](51.md) |
+| `10002` | Relay List Metadata | [65](65.md) |
+| `13194` | Wallet Info | [47](47.md) |
+| `22242` | Client Authentication | [42](42.md) |
+| `23194` | Wallet Request | [47](47.md) |
+| `23195` | Wallet Response | [47](47.md) |
+| `24133` | Nostr Connect | [46](46.md) |
+| `27235` | HTTP Auth | [98](98.md) |
+| `30000` | Categorized People List | [51](51.md) |
+| `30001` | Categorized Bookmark List | [51](51.md) |
+| `30008` | Profile Badges | [58](58.md) |
+| `30009` | Badge Definition | [58](58.md) |
+| `30017` | Create or update a stall | [15](15.md) |
+| `30018` | Create or update a product | [15](15.md) |
+| `30023` | Long-form Content | [23](23.md) |
+| `30024` | Draft Long-form Content | [23](23.md) |
+| `30078` | Application-specific Data | [78](78.md) |
+| `30311` | Live Event | [53](53.md) |
+| `30315` | User Statuses | [38](38.md) |
+| `30402` | Classified Listing | [99](99.md) |
+| `30403` | Draft Classified Listing | [99](99.md) |
+| `31922` | Date-Based Calendar Event | [52](52.md) |
+| `31923` | Time-Based Calendar Event | [52](52.md) |
+| `31924` | Calendar | [52](52.md) |
+| `31925` | Calendar Event RSVP | [52](52.md) |
+| `31989` | Handler recommendation | [89](89.md) |
+| `31990` | Handler information | [89](89.md) |
+| `34550` | Community Definition | [72](72.md) |
## Message types
--
cgit v1.2.3
From 5dc6071978bc7c2dcee807d16ef085192971ac27 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 00:22:09 -0300
Subject: cut, simplify and update NIP-51 to reflect the real-world usage.
---
51.md | 151 +++++---------------------------------------------------------
README.md | 117 ++++++++++++++++++++++++------------------------
2 files changed, 69 insertions(+), 199 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index e4d7c24..c74487f 100644
--- a/51.md
+++ b/51.md
@@ -6,148 +6,19 @@ Lists
`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` `author:gzuuus`
-A "list" event is defined as having a list of public and/or private tags. Public tags will be listed in the event `tags`. Private tags will be encrypted in the event `content`. Encryption for private tags will use [NIP-04 - Encrypted Direct Message](04.md) encryption, using the list author's private and public key for the shared secret. A distinct event kind should be used for each list type created.
+This NIP defines lists of things that users can create. Lists can contain references to anything, and these references can be **public** or **private**.
-If a list should only be defined once per user (like the "mute" list) the list is declared as a _replaceable event_. These lists may be referred to as "replaceable lists". Otherwise, the list is a _parameterized replaceable event_ and the list name will be used as the `d` tag. These lists may be referred to as "parameterized replaceable lists".
+Public items in a list are specified in the event `tags` array, while private items are specified in a JSON array that mimics the structure of the event `tags` array, but stringified and encrypted using the same scheme from [NIP-04](04.md) (the shared key is computed using the author's public and private key) and stored in the `.content`.
-## Replaceable List Event Example
+## Generic lists
-Lets say a user wants to create a 'Mute' list and has keys:
-```
-priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
-pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
-```
-The user wants to publicly include these users:
+The kinds `30000` and `30001` have been reserved for generic lists. These must be accompanied by a `d` tag identifying the list, but these are generally client-specific, except in the standard cases specified below.
-```json
-["p", "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"],
-["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"]
-```
-and privately include these users (below is the JSON that would be encrypted and placed in the event content):
+## Standard lists
-```json
-[
- ["p", "9ec7a778167afb1d30c4833de9322da0c08ba71a69e1911d5578d3144bb56437"],
- ["p", "8c0da4862130283ff9e67d889df264177a508974e2feb96de139804ea66d6168"]
-]
-```
-
-Then the user would create a 'Mute' list event like below:
-
-```json
-{
- "kind": 10000,
- "tags": [
- ["p", "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"],
- ["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],
- ],
- "content": "VezuSvWak++ASjFMRqBPWS3mK5pZ0vRLL325iuIL4S+r8n9z+DuMau5vMElz1tGC/UqCDmbzE2kwplafaFo/FnIZMdEj4pdxgptyBV1ifZpH3TEF6OMjEtqbYRRqnxgIXsuOSXaerWgpi0pm+raHQPseoELQI/SZ1cvtFqEUCXdXpa5AYaSd+quEuthAEw7V1jP+5TDRCEC8jiLosBVhCtaPpLcrm8HydMYJ2XB6Ixs=?iv=/rtV49RFm0XyFEwG62Eo9A==",
- ...other fields
-}
-```
-
-
-## Parameterized Replaceable List Event Example
-
-Lets say a user wants to create a 'Categorized People' list of `nostr` people and has keys:
-```
-priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
-pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
-```
-The user wants to publicly include these users:
-
-```json
-["p", "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"],
-["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"]
-```
-and privately include these users (below is the JSON that would be encrypted and placed in the event content):
-
-```json
-[
- ["p", "9ec7a778167afb1d30c4833de9322da0c08ba71a69e1911d5578d3144bb56437"],
- ["p", "8c0da4862130283ff9e67d889df264177a508974e2feb96de139804ea66d6168"]
-]
-```
-
-Then the user would create a 'Categorized People' list event like below:
-
-```json
-{
- "kind": 30000,
- "tags": [
- ["d", "nostr"],
- ["p", "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d"],
- ["p", "32e1827635450ebb3c5a7d12c1f8e7b2b514439ac10a67eef3d9fd9c5c68e245"],
- ],
- "content": "VezuSvWak++ASjFMRqBPWS3mK5pZ0vRLL325iuIL4S+r8n9z+DuMau5vMElz1tGC/UqCDmbzE2kwplafaFo/FnIZMdEj4pdxgptyBV1ifZpH3TEF6OMjEtqbYRRqnxgIXsuOSXaerWgpi0pm+raHQPseoELQI/SZ1cvtFqEUCXdXpa5AYaSd+quEuthAEw7V1jP+5TDRCEC8jiLosBVhCtaPpLcrm8HydMYJ2XB6Ixs=?iv=/rtV49RFm0XyFEwG62Eo9A==",
- ...other fields
-}
-```
-
-Lets say a user wants to create a 'Categorized Bookmarks' list of `bookmarks` and has keys:
-```
-priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1
-pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d
-```
-The user wants to publicly include these bookmarks:
-
-```json
-["e", "5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36", "wss://nostr.example.com"],
-["a", "30023:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:abcd", "wss://nostr.example.com"],
-["r", "https://github.com/nostr-protocol/nostr", "Nostr repository"],
-```
-and privately include these bookmarks (below is the JSON that would be encrypted and placed in the event content):
-
-```json
-[
- ["r", "https://my-private.bookmark", "My private bookmark"],
- ["a", "30001:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:abcd", "wss://nostr.example.com"],
-]
-```
-
-Then the user would create a 'Categorized Bookmarks' list event like below:
-
-```json
-{
- "kind": 30001,
- "tags": [
- ["d", "bookmarks"],
- ["e", "5c83da77af1dec6d7289834998ad7aafbd9e2191396d75ec3cc27f5a77226f36", "wss://nostr.example.com"],
- ["a", "30023:f7234bd4c1394dda46d09f35bd384dd30cc552ad5541990f98844fb06676e9ca:abcd", "wss://nostr.example.com"],
- ["r", "https://github.com/nostr-protocol/nostr", "Nostr repository"],
- ],
- "content": "y3AyaLJfnmYr9x9Od9o4aYrmL9+Ynmsim5y2ONrU0urOTq+V81CyAthQ2mUOWE9xwGgrizhY7ILdQwWhy6FK0sA33GHtC0egUJw1zIdknPe7BZjznD570yk/8RXYgGyDKdexME+RMYykrnYFxq1+y/h00kmJg4u+Gpn+ZjmVhNYxl9b+TiBOAXG9UxnK/H0AmUqDpcldn6+j1/AiStwYZhD1UZ3jzDIk2qcCDy7MlGnYhSP+kNmG+2b0T/D1L0Z7?iv=PGJJfPE84gacAh7T0e6duQ==",
- ...other fields
-}
-```
-
-## List Event Kinds
-
-| kind | list type |
-| ------ | ----------------------- |
-| 10000 | Mute |
-| 10001 | Pin |
-| 30000 | Categorized People |
-| 30001 | Categorized Bookmarks |
-| 30002 | Categorized Relay Sets |
-
-
-### Mute List
-
-An event with kind `10000` is defined as a replaceable list event for listing content a user wants to mute. Any standardized tag can be included in a Mute List.
-
-### Pin List
-
-An event with kind `10001` is defined as a replaceable list event for listing content a user wants to pin. Any standardized tag can be included in a Pin List.
-
-### Categorized People List
-
-An event with kind `30000` is defined as a parameterized replaceable list event for categorizing people. The 'd' parameter for this event holds the category name of the list. The tags included in these lists MUST follow the format of kind 3 events as defined in [NIP-02 - Contact List and Petnames](02.md).
-
-### Categorized Bookmarks List
-
-An event of kind `30001` is defined as a parameterized replaceable list event for categorizing bookmarks. The 'd' parameter for this event holds the category name of the list. The bookmark lists may contain metadata tags such as 'title', 'image', 'summary' as defined in [NIP-23 - Long-form Content](23.md). Any standardized tag can be included in a Categorized Bookmark List.
-
-### Categorized Relay Set
-
-An event of kind `30002` is defined as a parameterized replaceable list event for categorizing relays. The 'd' parameter for this event holds the category name of the list. The relays lists may contain metadata tags such as 'title', 'image', 'summary' as defined in [NIP-23 - Long-form Content](23.md). These sets can be used by clients in order to determine which relays to query in different scenarios.
+| name | kind | "d" tag | description | expected tag items |
+| --- | --- | --- | --- | --- |
+| Muted list | 30000 | `"mute"` | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags) |
+| Bookmarks list | 30001 | `"bookmark"` | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
+| Pin list | 30001 | `"pin"` | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
+| Relay sets | 30002 | (user-defined) | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
diff --git a/README.md b/README.md
index 483056d..74411ca 100644
--- a/README.md
+++ b/README.md
@@ -74,66 +74,65 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [NIP-99: Classified Listings](99.md)
## Event Kinds
-| kind | description | NIP |
-| ------------- | -------------------------- | ----------- |
-| `0` | Metadata | [1](01.md) |
-| `1` | Short Text Note | [1](01.md) |
-| `2` | Recommend Relay | |
-| `3` | Contacts | [2](02.md) |
-| `4` | Encrypted Direct Messages | [4](04.md) |
-| `5` | Event Deletion | [9](09.md) |
-| `6` | Repost | [18](18.md) |
-| `7` | Reaction | [25](25.md) |
-| `8` | Badge Award | [58](58.md) |
-| `16` | Generic Repost | [18](18.md) |
-| `40` | Channel Creation | [28](28.md) |
-| `41` | Channel Metadata | [28](28.md) |
-| `42` | Channel Message | [28](28.md) |
-| `43` | Channel Hide Message | [28](28.md) |
-| `44` | Channel Mute User | [28](28.md) |
-| `1063` | File Metadata | [94](94.md) |
-| `1311` | Live Chat Message | [53](53.md) |
-| `1040` | OpenTimestamps | [03](03.md) |
+| kind | description | NIP |
+| ------------- | -------------------------- | ----------- |
+| `0` | Metadata | [1](01.md) |
+| `1` | Short Text Note | [1](01.md) |
+| `2` | Recommend Relay | |
+| `3` | Contacts | [2](02.md) |
+| `4` | Encrypted Direct Messages | [4](04.md) |
+| `5` | Event Deletion | [9](09.md) |
+| `6` | Repost | [18](18.md) |
+| `7` | Reaction | [25](25.md) |
+| `8` | Badge Award | [58](58.md) |
+| `16` | Generic Repost | [18](18.md) |
+| `40` | Channel Creation | [28](28.md) |
+| `41` | Channel Metadata | [28](28.md) |
+| `42` | Channel Message | [28](28.md) |
+| `43` | Channel Hide Message | [28](28.md) |
+| `44` | Channel Mute User | [28](28.md) |
+| `1063` | File Metadata | [94](94.md) |
+| `1311` | Live Chat Message | [53](53.md) |
+| `1040` | OpenTimestamps | [03](03.md) |
| `1971` | Problem Tracker | [1971](https://github.com/nostrocket/NIPS/blob/main/Problems.md) |
-| `1984` | Reporting | [56](56.md) |
-| `1985` | Label | [32](32.md) |
-| `4550` | Community Post Approval | [72](72.md) |
-| `5000`-`5999` | Job Request | [90](90.md) |
-| `6000`-`6999` | Job Result | [90](90.md) |
-| `7000` | Job Feedback | [90](90.md) |
-| `9041` | Zap Goal | [75](75.md) |
-| `9734` | Zap Request | [57](57.md) |
-| `9735` | Zap | [57](57.md) |
-| `9802` | Highlights | [84](84.md) |
-| `10000` | Mute List | [51](51.md) |
-| `10001` | Pin List | [51](51.md) |
-| `10002` | Relay List Metadata | [65](65.md) |
-| `13194` | Wallet Info | [47](47.md) |
-| `22242` | Client Authentication | [42](42.md) |
-| `23194` | Wallet Request | [47](47.md) |
-| `23195` | Wallet Response | [47](47.md) |
-| `24133` | Nostr Connect | [46](46.md) |
-| `27235` | HTTP Auth | [98](98.md) |
-| `30000` | Categorized People List | [51](51.md) |
-| `30001` | Categorized Bookmark List | [51](51.md) |
-| `30008` | Profile Badges | [58](58.md) |
-| `30009` | Badge Definition | [58](58.md) |
-| `30017` | Create or update a stall | [15](15.md) |
-| `30018` | Create or update a product | [15](15.md) |
-| `30023` | Long-form Content | [23](23.md) |
-| `30024` | Draft Long-form Content | [23](23.md) |
-| `30078` | Application-specific Data | [78](78.md) |
-| `30311` | Live Event | [53](53.md) |
-| `30315` | User Statuses | [38](38.md) |
-| `30402` | Classified Listing | [99](99.md) |
-| `30403` | Draft Classified Listing | [99](99.md) |
-| `31922` | Date-Based Calendar Event | [52](52.md) |
-| `31923` | Time-Based Calendar Event | [52](52.md) |
-| `31924` | Calendar | [52](52.md) |
-| `31925` | Calendar Event RSVP | [52](52.md) |
-| `31989` | Handler recommendation | [89](89.md) |
-| `31990` | Handler information | [89](89.md) |
-| `34550` | Community Definition | [72](72.md) |
+| `1984` | Reporting | [56](56.md) |
+| `1985` | Label | [32](32.md) |
+| `4550` | Community Post Approval | [72](72.md) |
+| `5000`-`5999` | Job Request | [90](90.md) |
+| `6000`-`6999` | Job Result | [90](90.md) |
+| `7000` | Job Feedback | [90](90.md) |
+| `9041` | Zap Goal | [75](75.md) |
+| `9734` | Zap Request | [57](57.md) |
+| `9735` | Zap | [57](57.md) |
+| `9802` | Highlights | [84](84.md) |
+| `10002` | Relay List Metadata | [65](65.md) |
+| `13194` | Wallet Info | [47](47.md) |
+| `22242` | Client Authentication | [42](42.md) |
+| `23194` | Wallet Request | [47](47.md) |
+| `23195` | Wallet Response | [47](47.md) |
+| `24133` | Nostr Connect | [46](46.md) |
+| `27235` | HTTP Auth | [98](98.md) |
+| `30000` | People List | [51](51.md) |
+| `30001` | Things List | [51](51.md) |
+| `30002` | Relay Set | [51](51.md) |
+| `30008` | Profile Badges | [58](58.md) |
+| `30009` | Badge Definition | [58](58.md) |
+| `30017` | Create or update a stall | [15](15.md) |
+| `30018` | Create or update a product | [15](15.md) |
+| `30023` | Long-form Content | [23](23.md) |
+| `30024` | Draft Long-form Content | [23](23.md) |
+| `30078` | Application-specific Data | [78](78.md) |
+| `30311` | Live Event | [53](53.md) |
+| `30315` | User Statuses | [38](38.md) |
+| `30402` | Classified Listing | [99](99.md) |
+| `30403` | Draft Classified Listing | [99](99.md) |
+| `31922` | Date-Based Calendar Event | [52](52.md) |
+| `31923` | Time-Based Calendar Event | [52](52.md) |
+| `31924` | Calendar | [52](52.md) |
+| `31925` | Calendar Event RSVP | [52](52.md) |
+| `31989` | Handler recommendation | [89](89.md) |
+| `31990` | Handler information | [89](89.md) |
+| `34550` | Community Definition | [72](72.md) |
## Message types
--
cgit v1.2.3
From fd288d4ea9c5aef08747f91db90339b73cce0640 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 08:28:59 -0300
Subject: update readme kind list.
---
README.md | 121 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 62 insertions(+), 59 deletions(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 74411ca..94be17e 100644
--- a/README.md
+++ b/README.md
@@ -74,65 +74,68 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [NIP-99: Classified Listings](99.md)
## Event Kinds
-| kind | description | NIP |
-| ------------- | -------------------------- | ----------- |
-| `0` | Metadata | [1](01.md) |
-| `1` | Short Text Note | [1](01.md) |
-| `2` | Recommend Relay | |
-| `3` | Contacts | [2](02.md) |
-| `4` | Encrypted Direct Messages | [4](04.md) |
-| `5` | Event Deletion | [9](09.md) |
-| `6` | Repost | [18](18.md) |
-| `7` | Reaction | [25](25.md) |
-| `8` | Badge Award | [58](58.md) |
-| `16` | Generic Repost | [18](18.md) |
-| `40` | Channel Creation | [28](28.md) |
-| `41` | Channel Metadata | [28](28.md) |
-| `42` | Channel Message | [28](28.md) |
-| `43` | Channel Hide Message | [28](28.md) |
-| `44` | Channel Mute User | [28](28.md) |
-| `1063` | File Metadata | [94](94.md) |
-| `1311` | Live Chat Message | [53](53.md) |
-| `1040` | OpenTimestamps | [03](03.md) |
-| `1971` | Problem Tracker | [1971](https://github.com/nostrocket/NIPS/blob/main/Problems.md) |
-| `1984` | Reporting | [56](56.md) |
-| `1985` | Label | [32](32.md) |
-| `4550` | Community Post Approval | [72](72.md) |
-| `5000`-`5999` | Job Request | [90](90.md) |
-| `6000`-`6999` | Job Result | [90](90.md) |
-| `7000` | Job Feedback | [90](90.md) |
-| `9041` | Zap Goal | [75](75.md) |
-| `9734` | Zap Request | [57](57.md) |
-| `9735` | Zap | [57](57.md) |
-| `9802` | Highlights | [84](84.md) |
-| `10002` | Relay List Metadata | [65](65.md) |
-| `13194` | Wallet Info | [47](47.md) |
-| `22242` | Client Authentication | [42](42.md) |
-| `23194` | Wallet Request | [47](47.md) |
-| `23195` | Wallet Response | [47](47.md) |
-| `24133` | Nostr Connect | [46](46.md) |
-| `27235` | HTTP Auth | [98](98.md) |
-| `30000` | People List | [51](51.md) |
-| `30001` | Things List | [51](51.md) |
-| `30002` | Relay Set | [51](51.md) |
-| `30008` | Profile Badges | [58](58.md) |
-| `30009` | Badge Definition | [58](58.md) |
-| `30017` | Create or update a stall | [15](15.md) |
-| `30018` | Create or update a product | [15](15.md) |
-| `30023` | Long-form Content | [23](23.md) |
-| `30024` | Draft Long-form Content | [23](23.md) |
-| `30078` | Application-specific Data | [78](78.md) |
-| `30311` | Live Event | [53](53.md) |
-| `30315` | User Statuses | [38](38.md) |
-| `30402` | Classified Listing | [99](99.md) |
-| `30403` | Draft Classified Listing | [99](99.md) |
-| `31922` | Date-Based Calendar Event | [52](52.md) |
-| `31923` | Time-Based Calendar Event | [52](52.md) |
-| `31924` | Calendar | [52](52.md) |
-| `31925` | Calendar Event RSVP | [52](52.md) |
-| `31989` | Handler recommendation | [89](89.md) |
-| `31990` | Handler information | [89](89.md) |
-| `34550` | Community Definition | [72](72.md) |
+| kind | description | NIP |
+| ------------- | -------------------------- | ----------- |
+| `0` | Metadata | [1](01.md) |
+| `1` | Short Text Note | [1](01.md) |
+| `2` | Recommend Relay | |
+| `3` | Contacts | [2](02.md) |
+| `4` | Encrypted Direct Messages | [4](04.md) |
+| `5` | Event Deletion | [9](09.md) |
+| `6` | Repost | [18](18.md) |
+| `7` | Reaction | [25](25.md) |
+| `8` | Badge Award | [58](58.md) |
+| `16` | Generic Repost | [18](18.md) |
+| `40` | Channel Creation | [28](28.md) |
+| `41` | Channel Metadata | [28](28.md) |
+| `42` | Channel Message | [28](28.md) |
+| `43` | Channel Hide Message | [28](28.md) |
+| `44` | Channel Mute User | [28](28.md) |
+| `1063` | File Metadata | [94](94.md) |
+| `1311` | Live Chat Message | [53](53.md) |
+| `1040` | OpenTimestamps | [03](03.md) |
+| `1971` | Problem Tracker | [nostrocket-1971][nostrocket-1971] |
+| `1984` | Reporting | [56](56.md) |
+| `1985` | Label | [32](32.md) |
+| `4550` | Community Post Approval | [72](72.md) |
+| `5000`-`5999` | Job Request | [90](90.md) |
+| `6000`-`6999` | Job Result | [90](90.md) |
+| `7000` | Job Feedback | [90](90.md) |
+| `9041` | Zap Goal | [75](75.md) |
+| `9734` | Zap Request | [57](57.md) |
+| `9735` | Zap | [57](57.md) |
+| `9802` | Highlights | [84](84.md) |
+| `10000` | Mute list | [65](65.md) |
+| `10002` | Relay List Metadata | [65](65.md) |
+| `13194` | Wallet Info | [47](47.md) |
+| `22242` | Client Authentication | [42](42.md) |
+| `23194` | Wallet Request | [47](47.md) |
+| `23195` | Wallet Response | [47](47.md) |
+| `24133` | Nostr Connect | [46](46.md) |
+| `27235` | HTTP Auth | [98](98.md) |
+| `30001` | Generic lists | [51](51.md) |
+| `30002` | Relay sets | [51](51.md) |
+| `30004` | Curation sets | [51](51.md) |
+| `30008` | Profile Badges | [58](58.md) |
+| `30009` | Badge Definition | [58](58.md) |
+| `30017` | Create or update a stall | [15](15.md) |
+| `30018` | Create or update a product | [15](15.md) |
+| `30023` | Long-form Content | [23](23.md) |
+| `30024` | Draft Long-form Content | [23](23.md) |
+| `30078` | Application-specific Data | [78](78.md) |
+| `30311` | Live Event | [53](53.md) |
+| `30315` | User Statuses | [38](38.md) |
+| `30402` | Classified Listing | [99](99.md) |
+| `30403` | Draft Classified Listing | [99](99.md) |
+| `31922` | Date-Based Calendar Event | [52](52.md) |
+| `31923` | Time-Based Calendar Event | [52](52.md) |
+| `31924` | Calendar | [52](52.md) |
+| `31925` | Calendar Event RSVP | [52](52.md) |
+| `31989` | Handler recommendation | [89](89.md) |
+| `31990` | Handler information | [89](89.md) |
+| `34550` | Community Definition | [72](72.md) |
+
+[nostrocket-1971]: https://github.com/nostrocket/NIPS/blob/main/Problems.md
## Message types
--
cgit v1.2.3
From 54befcc09a3fdd804ee3f98a8a670c582cd101cc Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 15:32:09 -0300
Subject: deprecate the 30001 ad-hoc pin/bookmark/communities lists and use new
kinds.
---
51.md | 23 ++++++++++++-----------
README.md | 5 ++++-
2 files changed, 16 insertions(+), 12 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index d113f80..d316bad 100644
--- a/51.md
+++ b/51.md
@@ -30,12 +30,12 @@ rely on them to augment the user profile or browsing experience.
For example, _mute lists_ can contain the public keys of spammers and bad actors users don't want to see in
their feeds or receive annoying notifications from.
-| name | kind | "d" tag | description | expected tag items |
-| --- | --- | --- | --- | --- |
-| Mute list | 10000 | | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags) |
-| Bookmarks list | 30001 | `"bookmark"` | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
-| Pin list | 30001 | `"pin"` | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
-| Communities list | 30001 | `"communities"` | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
+| name | kind | description | expected tag items |
+| --- | --- | --- | --- |
+| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags) |
+| Pin list | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
+| Bookmarks list | 10003 | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
+| Communities list | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
## Sets
@@ -59,11 +59,12 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"ti
Some clients have used these lists in the past, but they should work on transitioning to the [standard formats](#standard-lists) above:
-- kind:30000 and `d` "mute"
-
-| kind | "d" tag | use instead |
-| --- | --- | --- |
-| 30000 | `"mute"` | kind 10000 _mute list_ |
+| kind | "d" tag | use instead |
+| --- | --- | --- |
+| 30000 | `"mute"` | kind 10000 _mute list_ |
+| 30001 | `"pin"` | kind 10001 _pin list_ |
+| 30001 | `"bookmark"` | kind 10003 _bookmarks list_ |
+| 30001 | `"communities"` | kind 10004 _communities list_ |
## Examples
diff --git a/README.md b/README.md
index 94be17e..c0286ca 100644
--- a/README.md
+++ b/README.md
@@ -105,8 +105,11 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `9734` | Zap Request | [57](57.md) |
| `9735` | Zap | [57](57.md) |
| `9802` | Highlights | [84](84.md) |
-| `10000` | Mute list | [65](65.md) |
+| `10000` | Mute list | [51](51.md) |
+| `10001` | Pin list | [51](51.md) |
| `10002` | Relay List Metadata | [65](65.md) |
+| `10003` | Bookmark list | [51](51.md) |
+| `10004` | Communities list | [51](51.md) |
| `13194` | Wallet Info | [47](47.md) |
| `22242` | Client Authentication | [42](42.md) |
| `23194` | Wallet Request | [47](47.md) |
--
cgit v1.2.3
From 61b736574cde8e954efe70da3c8c9116297cebf0 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 15:32:22 -0300
Subject: add kind 30005 follow sets.
---
51.md | 9 +++++----
README.md | 1 +
2 files changed, 6 insertions(+), 4 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index d316bad..e0bafdb 100644
--- a/51.md
+++ b/51.md
@@ -50,10 +50,11 @@ can be used by apps to showcase curations made by others tagged to different top
Aside from their main identifier, the `"d"` tag, sets can optionally have a `"title"`, an `"image"` and a
`"description"` tag that can be used to enhance their UI.
-| name | kind | description | expected tag items |
-| --- | --- | --- | --- |
-| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
-| Article Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
+| name | kind | description | expected tag items |
+| --- | --- | --- | --- |
+| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
+| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
+| Follow sets | 30005 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
## Deprecated standard lists
diff --git a/README.md b/README.md
index c0286ca..6894daa 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
| `30001` | Generic lists | [51](51.md) |
| `30002` | Relay sets | [51](51.md) |
| `30004` | Curation sets | [51](51.md) |
+| `30005` | Follow sets | [51](51.md) |
| `30008` | Profile Badges | [58](58.md) |
| `30009` | Badge Definition | [58](58.md) |
| `30017` | Create or update a stall | [15](15.md) |
--
cgit v1.2.3
From 804ee187c2c18d6896ff2ef4e001eb55bd1e7af6 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 15:39:23 -0300
Subject: make follow sets kind 30000 as per @monlovesmango's comment.
---
51.md | 2 +-
README.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index 3fc6830..d319b81 100644
--- a/51.md
+++ b/51.md
@@ -52,9 +52,9 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"ti
| name | kind | description | expected tag items |
| --- | --- | --- | --- |
+| Follow sets | 30000 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
-| Follow sets | 30005 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
## Deprecated standard lists
diff --git a/README.md b/README.md
index 6894daa..23772ad 100644
--- a/README.md
+++ b/README.md
@@ -116,10 +116,10 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `23195` | Wallet Response | [47](47.md) |
| `24133` | Nostr Connect | [46](46.md) |
| `27235` | HTTP Auth | [98](98.md) |
+| `30000` | Follow sets | [51](51.md) |
| `30001` | Generic lists | [51](51.md) |
| `30002` | Relay sets | [51](51.md) |
| `30004` | Curation sets | [51](51.md) |
-| `30005` | Follow sets | [51](51.md) |
| `30008` | Profile Badges | [58](58.md) |
| `30009` | Badge Definition | [58](58.md) |
| `30017` | Create or update a stall | [15](15.md) |
--
cgit v1.2.3
From 31382e57a1fabea855300461e7ef2dc751aaba61 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Wed, 15 Nov 2023 20:52:10 -0300
Subject: add muted words, blocked relays, search relays, chat groups, emoji
list and emoji sets. update set metadata tags.
following @vitorpamplona, @frnandu, @snowcait, @hzrd149
closes https://github.com/nostr-protocol/nips/pull/559
closes https://github.com/nostr-protocol/nips/pull/673
---
51.md | 46 ++++++++++++++++++----------------------------
README.md | 5 +++++
2 files changed, 23 insertions(+), 28 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index 1fd3ef5..8671370 100644
--- a/51.md
+++ b/51.md
@@ -16,9 +16,6 @@ stored in the `.content`.
## Types of lists
-### Generic lists
-
-
## Standard lists
Standard lists use non-parameterized replaceable events, meaning users may only have a single list
@@ -28,12 +25,16 @@ browsing experience.
For example, _mute lists_ can contain the public keys of spammers and bad actors users don't want to see in
their feeds or receive annoying notifications from.
-| name | kind | description | expected tag items |
-| --- | --- | --- | --- |
-| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags) |
-| Pin list | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
-| Bookmarks list | 10003 | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
-| Communities list | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
+| name | kind | description | expected tag items |
+| --- | --- | --- | --- |
+| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags), `"word"` (lowercase string), `"e"` (threads) |
+| Pinned notes | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
+| Bookmarks | 10003 | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
+| Communities | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
+| Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 community 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) |
+| Emojis | 10030 | user preferred emojis and pointers to emoji sets | `"emoji"` (see [NIP-30](30.md)) and `"a"` (kind:30030 emoji set) |
## Sets
@@ -45,18 +46,19 @@ For example, _relay sets_ can be displayed in a dropdown UI to give users the op
relays they will publish an event or from which relays they will read the replies to an event; _curation sets_
can be used by apps to showcase curations made by others tagged to different topics.
-Aside from their main identifier, the `"d"` tag, sets can optionally have a `"title"`, an `"image"` and a
-`"description"` tag that can be used to enhance their UI.
+Aside from their main identifier, the `"d"` tag, sets can optionally have a `"name"`, a `"picture"` and an
+`"about"` tag that can be used to enhance their UI.
| name | kind | description | expected tag items |
| --- | --- | --- | --- |
| Follow sets | 30000 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
+| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) |
## 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:
+Some clients have used these lists in the past, but they should work on transitioning to the [standard formats](#standard-lists) above.
| kind | "d" tag | use instead |
| --- | --- | --- |
@@ -93,22 +95,10 @@ Some clients have used these lists in the past, but they should work on transiti
"created_at": 1695327657,
"kind": 30004,
"tags": [
- [
- "d",
- "jvdy9i4"
- ],
- [
- "title",
- "Yaks"
- ],
- [
- "summary",
- "The domestic yak, also known as the Tartary ox, grunting ox, or hairy cattle, is a species of long-haired domesticated cattle found throughout the Himalayan region of the Indian subcontinent, the Tibetan Plateau, Gilgit-Baltistan, Tajikistan and as far north as Mongolia and Siberia."
- ],
- [
- "image",
- "https://cdn.britannica.com/40/188540-050-9AC748DE/Yak-Himalayas-Nepal.jpg"
- ],
+ ["d", "jvdy9i4"],
+ ["name", "Yaks"],
+ ["picture", "https://cdn.britannica.com/40/188540-050-9AC748DE/Yak-Himalayas-Nepal.jpg"],
+ ["about", "The domestic yak, also known as the Tartary ox, grunting ox, or hairy cattle, is a species of long-haired domesticated cattle found throughout the Himalayan region of the Indian subcontinent, the Tibetan Plateau, Gilgit-Baltistan, Tajikistan and as far north as Mongolia and Siberia."],
["a", "30023:26dc95542e18b8b7aec2f14610f55c335abebec76f3db9e58c254661d0593a0c:95ODQzw3ajNoZ8SyMDOzQ"],
["a", "30023:54af95542e18b8b7aec2f14610f55c335abebec76f3db9e58c254661d0593a0c:1-MYP8dAhramH9J5gJWKx"],
["a", "30023:f8fe95542e18b8b7aec2f14610f55c335abebec76f3db9e58c254661d0593a0c:D2Tbd38bGrFvU0bIbvSMt"],
diff --git a/README.md b/README.md
index 23772ad..91d6f84 100644
--- a/README.md
+++ b/README.md
@@ -110,6 +110,10 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `10002` | Relay List Metadata | [65](65.md) |
| `10003` | Bookmark list | [51](51.md) |
| `10004` | Communities list | [51](51.md) |
+| `10005` | Public chats list | [51](51.md) |
+| `10006` | Blocked relays list | [51](51.md) |
+| `10007` | Search relays list | [51](51.md) |
+| `10030` | User emoji list | [51](51.md) |
| `13194` | Wallet Info | [47](47.md) |
| `22242` | Client Authentication | [42](42.md) |
| `23194` | Wallet Request | [47](47.md) |
@@ -122,6 +126,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `30004` | Curation sets | [51](51.md) |
| `30008` | Profile Badges | [58](58.md) |
| `30009` | Badge Definition | [58](58.md) |
+| `30030` | Emoji sets | [51](51.md) |
| `30017` | Create or update a stall | [15](15.md) |
| `30018` | Create or update a product | [15](15.md) |
| `30023` | Long-form Content | [23](23.md) |
--
cgit v1.2.3
From 2a0b701ff77d4ffd686661d829b7b7091e29589b Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Thu, 16 Nov 2023 12:26:50 -0300
Subject: add bookmark sets (following @staab).
---
51.md | 33 +++++++++++++++++----------------
README.md | 1 +
2 files changed, 18 insertions(+), 16 deletions(-)
(limited to 'README.md')
diff --git a/51.md b/51.md
index 8671370..ab15be4 100644
--- a/51.md
+++ b/51.md
@@ -25,16 +25,16 @@ browsing experience.
For example, _mute lists_ can contain the public keys of spammers and bad actors users don't want to see in
their feeds or receive annoying notifications from.
-| name | kind | description | expected tag items |
-| --- | --- | --- | --- |
-| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags), `"word"` (lowercase string), `"e"` (threads) |
-| Pinned notes | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
-| Bookmarks | 10003 | things the user intends to save for the future | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
-| Communities | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
-| Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 community 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) |
-| Emojis | 10030 | user preferred emojis and pointers to emoji sets | `"emoji"` (see [NIP-30](30.md)) and `"a"` (kind:30030 emoji set) |
+| name | kind | description | expected tag items |
+| --- | --- | --- | --- |
+| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags), `"word"` (lowercase string), `"e"` (threads) |
+| Pinned notes | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
+| Bookmarks | 10003 | uncategorized, "global" list of things a user wants to save | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r" (URLs)` |
+| Communities | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) |
+| Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 community 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) |
+| Emojis | 10030 | user preferred emojis and pointers to emoji sets | `"emoji"` (see [NIP-30](30.md)) and `"a"` (kind:30030 emoji set) |
## Sets
@@ -49,12 +49,13 @@ can be used by apps to showcase curations made by others tagged to different top
Aside from their main identifier, the `"d"` tag, sets can optionally have a `"name"`, a `"picture"` and an
`"about"` tag that can be used to enhance their UI.
-| name | kind | description | expected tag items |
-| --- | --- | --- | --- |
-| Follow sets | 30000 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
-| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during variadic operations | `"relay"` (relay URLs) |
-| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
-| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) |
+| name | kind | description | expected tag items |
+| --- | --- | --- | --- |
+| Follow sets | 30000 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) |
+| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during various operations | `"relay"` (relay URLs) |
+| Bookmark sets | 30003 | user-defined bookmarks categories , for when bookmarks must be in labeled separate groups | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r" (URLs)` |
+| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
+| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) |
## Deprecated standard lists
diff --git a/README.md b/README.md
index 91d6f84..36d5fc0 100644
--- a/README.md
+++ b/README.md
@@ -123,6 +123,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `30000` | Follow sets | [51](51.md) |
| `30001` | Generic lists | [51](51.md) |
| `30002` | Relay sets | [51](51.md) |
+| `30003` | Bookmark sets | [51](51.md) |
| `30004` | Curation sets | [51](51.md) |
| `30008` | Profile Badges | [58](58.md) |
| `30009` | Badge Definition | [58](58.md) |
--
cgit v1.2.3
From 4a77fc5c402ec6c4cbdb574f9260e62fd2fc7bf4 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Thu, 16 Nov 2023 15:50:39 -0300
Subject: add interests list and interests sets (following @erskingardner and
@pablof7z).
---
51.md | 2 ++
README.md | 2 ++
2 files changed, 4 insertions(+)
(limited to 'README.md')
diff --git a/51.md b/51.md
index ab15be4..bcab8b8 100644
--- a/51.md
+++ b/51.md
@@ -34,6 +34,7 @@ their feeds or receive annoying notifications from.
| Public chats | 10005 | [NIP-28](28.md) chat channels the user is in | `"e"` (kind:40 community 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) |
+| 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) |
## Sets
@@ -55,6 +56,7 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"na
| Relay sets | 30002 | user-defined relay groups the user can easily pick and choose from during various operations | `"relay"` (relay URLs) |
| Bookmark sets | 30003 | user-defined bookmarks categories , for when bookmarks must be in labeled separate groups | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r" (URLs)` |
| Curation sets | 30004 | groups of articles picked by users as interesting and/or belonging to the same category | `"a"` (kind:30023 articles), `"e"` (kind:1 notes) |
+| Interest sets | 30015 | interest topics represented by a bunch of "hashtags" | `"t"` (hashtags) |
| Emoji sets | 30030 | categorized emoji groups | `"emoji"` (see [NIP-30](30.md)) |
## Deprecated standard lists
diff --git a/README.md b/README.md
index 36d5fc0..790f0b6 100644
--- a/README.md
+++ b/README.md
@@ -113,6 +113,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `10005` | Public chats list | [51](51.md) |
| `10006` | Blocked relays list | [51](51.md) |
| `10007` | Search relays list | [51](51.md) |
+| `10015` | Interests list | [51](51.md) |
| `10030` | User emoji list | [51](51.md) |
| `13194` | Wallet Info | [47](47.md) |
| `22242` | Client Authentication | [42](42.md) |
@@ -127,6 +128,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `30004` | Curation sets | [51](51.md) |
| `30008` | Profile Badges | [58](58.md) |
| `30009` | Badge Definition | [58](58.md) |
+| `30015` | Interest sets | [51](51.md) |
| `30030` | Emoji sets | [51](51.md) |
| `30017` | Create or update a stall | [15](15.md) |
| `30018` | Create or update a product | [15](15.md) |
--
cgit v1.2.3
From 5f1d10fad24a1c860dc46e87e371b517500ed49b Mon Sep 17 00:00:00 2001
From: Vitor Pamplona
Date: Fri, 17 Nov 2023 18:05:23 -0500
Subject: Adds contributor images to the readme.
---
README.md | 6 ++++++
1 file changed, 6 insertions(+)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 483056d..1274b92 100644
--- a/README.md
+++ b/README.md
@@ -230,3 +230,9 @@ mailing lists where you can work on NIPs before submitting them here:
## License
All NIPs are public domain.
+
+## Contributors
+
+
+
+
--
cgit v1.2.3
From 33e7650bab299b980e053e8c44e93fb895dc4df5 Mon Sep 17 00:00:00 2001
From: fiatjaf
Date: Thu, 16 Nov 2023 10:52:35 -0300
Subject: give a better and updated explanation of how nips work in the readme.
---
README.md | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
(limited to 'README.md')
diff --git a/README.md b/README.md
index 1274b92..8e970ea 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# NIPs
NIPs stand for **Nostr Implementation Possibilities**.
+
They exist to document what may be implemented by [Nostr](https://github.com/nostr-protocol/nostr)-compatible _relay_ and _client_ software.
---
@@ -12,7 +13,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [Relay to Client](#relay-to-client)
- [Standardized Tags](#standardized-tags)
- [Criteria for acceptance of NIPs](#criteria-for-acceptance-of-nips)
-- [Mailing Lists](#mailing-lists)
+- [Is this repository a centralizing factor?](#is-this-repository-a-centralizing-factor)
+- [How this repository works](#how-this-repository-works)
- [License](#license)
---
@@ -212,20 +214,19 @@ Please update these lists when proposing NIPs introducing new event kinds.
4. There should be no more than one way of doing the same thing.
5. Other rules will be made up when necessary.
-## Mailing Lists
+## Is this repository a centralizing factor?
+
+To promote interoperability, we standards that everybody can follow, and we need them to define a **single way of doing each thing** without ever hurting **backwards-compatibility**, and for that purpose there is no way around getting everybody to agree on the same thing and keep a centralized index of these standards. However the fact that such index exists doesn't hurt the decentralization of Nostr. _At any point the central index can be challenged if it is failing to fulfill the needs of the protocol_ and it can migrate to other places and be maintained by other people.
+
+It can even fork into multiple and then some clients would go one way, others would go another way, and some clients would adhere to both competing standards. This would hurt the simplicity, openness and interoperability of Nostr a little, but everything would still work in the short term.
+
+There is a list of notable Nostr software developers who have commit access to this repository, but that exists mostly for practical reasons, as by the nature of the thing we're dealing with the repository owner can revoke membership and rewrite history as they want -- and if these actions are unjustified or perceived as bad or evil the community must react.
-The nostr ecosystem is getting large with many different organizations, relays
-and clients. Following the nips repo on github is becoming more difficult and
-noisy. To coordinate on protocol development outside of github, there are
-mailing lists where you can work on NIPs before submitting them here:
+## How this repository works
-* [w3c nostr community group][w3-nostr] - [public-nostr@w3.org][mailto-w3] - requires signup
-* [nostr-protocol google group][nostr-google-group] - [nostr-protocol@googlegroups.com][mailto-google] - no signup required
+Standards may emerge in two ways: the first way is that someone starts doing something, then others copy it; the second way is that someone has an idea of a new standard that could benefit multiple clients and the protocol in general without breaking **backwards-compatibility** and the principle of having **a single way of doing things**, then they write that idea and submit it to this repository, other interested parties read it and give their feedback, then once most people reasonably agree we codify that in a NIP which client and relay developers that are interested in the feature can proceed to implement.
-[w3-nostr]: https://www.w3.org/community/nostr/
-[mailto-w3]: mailto:public-nostr@w3.org
-[nostr-google-group]: https://groups.google.com/g/nostr-protocol
-[mailto-google]: mailto:nostr-protocol@googlegroups.com
+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.
## License
--
cgit v1.2.3