From 30daaedbdb48c7583843a12d3496ced311b9986a Mon Sep 17 00:00:00 2001 From: monlovesmango <96307647+monlovesmango@users.noreply.github.com> Date: Thu, 9 Mar 2023 11:16:57 -0600 Subject: NIP-51 Lists (#183) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Semisol <45574030+Semisol@users.noreply.github.com> Co-authored-by: Ricardo Arturo Cabral Mejía Co-authored-by: fiatjaf_ --- 51.md | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 51.md (limited to '51.md') diff --git a/51.md b/51.md new file mode 100644 index 0000000..bbb3987 --- /dev/null +++ b/51.md @@ -0,0 +1,97 @@ +NIP-51 +====== + +Lists +------------------------- + +`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` `depends:33` + +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. + +If a list type should only be defined once per user (like the 'Mute' list), the list type's events should follow the specification for [NIP-16 - Replaceable Events](16.md). These lists may be referred to as 'replaceable lists'. + +Otherwise the list type's events should follow the specification for [NIP-33 - Parameterized Replaceable Events](33.md), where the list name will be used as the 'd' parameter. These lists may be referred to as 'parameterized replaceable lists'. + +## List Event Kinds + +| kind | list type | NIP | +|------|-----------------------------|---------------| +| 10000| Mute | [51a](51a.md) | +| 10001| Pin | [51b](51b.md) | +| 30000| Categorized People | [51c](51c.md) | +| 30001| Categorized Bookmarks | [51d](51d.md) | +## Replaceable List Event Example + +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: + +```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 '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 +} +``` + + -- cgit v1.2.3 From 92d087bbc3883eec1962146f016f12649f6baf9b Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Thu, 9 Mar 2023 15:56:17 -0300 Subject: merge all nips 51* into nip 51. --- 51.md | 37 ++++++++++++++++++++++++++----------- 51a.md | 9 --------- 51b.md | 9 --------- 51c.md | 9 --------- 51d.md | 9 --------- 5 files changed, 26 insertions(+), 47 deletions(-) delete mode 100644 51a.md delete mode 100644 51b.md delete mode 100644 51c.md delete mode 100644 51d.md (limited to '51.md') diff --git a/51.md b/51.md index bbb3987..0bbb91f 100644 --- a/51.md +++ b/51.md @@ -6,26 +6,18 @@ Lists `draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` `depends:33` -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. +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. If a list type should only be defined once per user (like the 'Mute' list), the list type's events should follow the specification for [NIP-16 - Replaceable Events](16.md). These lists may be referred to as 'replaceable lists'. Otherwise the list type's events should follow the specification for [NIP-33 - Parameterized Replaceable Events](33.md), where the list name will be used as the 'd' parameter. These lists may be referred to as 'parameterized replaceable lists'. -## List Event Kinds - -| kind | list type | NIP | -|------|-----------------------------|---------------| -| 10000| Mute | [51a](51a.md) | -| 10001| Pin | [51b](51b.md) | -| 30000| Categorized People | [51c](51c.md) | -| 30001| Categorized Bookmarks | [51d](51d.md) | ## Replaceable List Event Example Lets say a user wants to create a 'Mute' list and has keys: ``` priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1 -pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d +pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d ``` The user wants to publicly include these users: @@ -62,7 +54,7 @@ Then the user would create a 'Mute' list event like below: Lets say a user wants to create a 'Categorized People' list of `nostr` people and has keys: ``` priv: fb505c65d4df950f5d28c9e4d285ee12ffaf315deef1fc24e3c7cd1e7e35f2b1 -pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d +pub: b1a5c93edcc8d586566fde53a20bdb50049a97b15483cb763854e57016e0fa3d ``` The user wants to publicly include these users: @@ -94,4 +86,27 @@ Then the user would create a 'Categorized People' list event like below: } ``` +## List Event Kinds + +| kind | list type | +| ------ | ----------------------- | +| 10000 | Mute | +| 10001 | Pin | +| 30000 | Categorized People | +| 30001 | Categorized Bookmarks | + +### Mute List + +An event with kind `10000` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to mute. Any standarized tag can be included in a Mute List. + +### Pin List + +An event with kind `10001` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to pin. Any standarized tag can be included in a Pin List. + +### Categorized People List + +An event with kind `30000` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) 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 with kind `30001` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) for categorizing bookmarks. The 'd' parameter for this event holds the category name of the list. Any standarized tag can be included in a Categorized Bookmarks List. diff --git a/51a.md b/51a.md deleted file mode 100644 index ef9d5de..0000000 --- a/51a.md +++ /dev/null @@ -1,9 +0,0 @@ -NIP-51a -====== - -Mute List -------------------------- - -`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` - -An event with kind `10000` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to mute. Any standarized tag can be included in a Mute List. \ No newline at end of file diff --git a/51b.md b/51b.md deleted file mode 100644 index 522403d..0000000 --- a/51b.md +++ /dev/null @@ -1,9 +0,0 @@ -NIP-51b -====== - -Pin List -------------------------- - -`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` - -An event with kind `10001` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to pin. Any standarized tag can be included in a Pin List. \ No newline at end of file diff --git a/51c.md b/51c.md deleted file mode 100644 index 772a7f9..0000000 --- a/51c.md +++ /dev/null @@ -1,9 +0,0 @@ -NIP-51c -====== - -Categorized People List -------------------------- - -`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` - -An event with kind `30000` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) 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). \ No newline at end of file diff --git a/51d.md b/51d.md deleted file mode 100644 index 5785e08..0000000 --- a/51d.md +++ /dev/null @@ -1,9 +0,0 @@ -NIP-51d -====== - -Categorized Bookmarks List -------------------------- - -`draft` `optional` `author:fiatjaf` `author:arcbtc` `author:monlovesmango` `author:eskema` - -An event with kind `30001` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) for categorizing bookmarks. The 'd' parameter for this event holds the category name of the list. Any standarized tag can be included in a Categorized Bookmarks List. -- cgit v1.2.3 From 8b70e83b377d835b5ae570c14b697da2881d40d9 Mon Sep 17 00:00:00 2001 From: jiftechnify Date: Mon, 13 Mar 2023 11:53:06 +0900 Subject: NIP-51: remove self-referential link --- 51.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to '51.md') diff --git a/51.md b/51.md index 0bbb91f..b4143ad 100644 --- a/51.md +++ b/51.md @@ -97,16 +97,16 @@ Then the user would create a 'Categorized People' list event like below: ### Mute List -An event with kind `10000` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to mute. Any standarized tag can be included in a Mute List. +An event with kind `10000` is defined as a replaceable list event for listing content a user wants to mute. Any standarized tag can be included in a Mute List. ### Pin List -An event with kind `10001` is defined as a replaceable list event (see [NIP-51 - Lists](51.md) for listing content a user wants to pin. Any standarized tag can be included in a Pin List. +An event with kind `10001` is defined as a replaceable list event for listing content a user wants to pin. Any standarized tag can be included in a Pin List. ### Categorized People List -An event with kind `30000` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) 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). +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 with kind `30001` is defined as a parameterized replaceable list event (see [NIP-51 - Lists](51.md)) for categorizing bookmarks. The 'd' parameter for this event holds the category name of the list. Any standarized tag can be included in a Categorized Bookmarks List. +An event with 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. Any standarized tag can be included in a Categorized Bookmarks List. -- cgit v1.2.3 From 3cec80d99ebbee6b72aae31f1856181d04971244 Mon Sep 17 00:00:00 2001 From: vivganes Date: Fri, 7 Apr 2023 17:38:03 +0530 Subject: fix grammar and typos --- 04.md | 2 +- 05.md | 2 +- 11.md | 8 ++++---- 13.md | 2 +- 22.md | 2 +- 25.md | 2 +- 40.md | 2 +- 45.md | 2 +- 51.md | 2 +- 78.md | 2 +- 10 files changed, 13 insertions(+), 13 deletions(-) (limited to '51.md') diff --git a/04.md b/04.md index 60ec5e0..6e45b74 100644 --- a/04.md +++ b/04.md @@ -50,4 +50,4 @@ This standard does not go anywhere near what is considered the state-of-the-art ## Client Implementation Warning -Client's *should not* search and replace public key or note references from the `.content`. If processed like a regular text note (where `@npub...` is replaced with `#[0]` with a `["p", "..."]` tag) the tags are leaked and the mentioned user will receive the message in their inbox. +Clients *should not* search and replace public key or note references from the `.content`. If processed like a regular text note (where `@npub...` is replaced with `#[0]` with a `["p", "..."]` tag) the tags are leaked and the mentioned user will receive the message in their inbox. diff --git a/05.md b/05.md index 992983f..a7b42b0 100644 --- a/05.md +++ b/05.md @@ -64,7 +64,7 @@ For example, if after finding that `bob@bob.com` has the public key `abc...def`, ### Public keys must be in hex format -Keys must be returned in hex format. Keys in NIP-19 `npub` format are are only meant to be used for display in client UIs, not in this NIP. +Keys must be returned in hex format. Keys in NIP-19 `npub` format are only meant to be used for display in client UIs, not in this NIP. ### User Discovery implementation suggestion diff --git a/11.md b/11.md index f97193c..1766320 100644 --- a/11.md +++ b/11.md @@ -154,7 +154,7 @@ all, and preferably an error will be provided when those are received. `retention` is a list of specifications: each will apply to either all kinds, or a subset of kinds. Ranges may be specified for the kind field as a tuple of inclusive start and end values. Events of indicated kind (or all) are then limited to a `count` -and or time period. +and/or time period. It is possible to effectively blacklist Nostr-based protocols that rely on a specific `kind` number, by giving a retention time of zero for those `kind` values. @@ -175,8 +175,8 @@ It is not possible to describe the limitations of each country's laws and policies which themselves are typically vague and constantly shifting. Therefore, this field allows the relay operator to indicate which -country's' laws might end up being enforced on them, and then -indirectly on their users's content. +countries' laws might end up being enforced on them, and then +indirectly on their users' content. Users should be able to avoid relays in countries they don't like, and/or select relays in more favourable zones. Exposing this @@ -220,7 +220,7 @@ To support this goal, relays MAY specify some of the following values. the major languages spoken on the relay. - `tags` is a list of limitations on the topics to be discussed. - For example `sfw-only` indicates hat only "Safe For Work" content + For example `sfw-only` indicates that only "Safe For Work" content is encouraged on this relay. This relies on assumptions of what the "work" "community" feels "safe" talking about. In time, a common set of tags may emerge that allow users to find relays that suit diff --git a/13.md b/13.md index cf28d86..e3662a5 100644 --- a/13.md +++ b/13.md @@ -90,4 +90,4 @@ $ echo '["REQ", "subid", {"ids": ["000000000"]}]' | websocat wss://some-relay.c Delegated Proof of Work ----------------------- -Since the `NIP-01` note id does not commit to any signature, PoW can be outsourced to PoW providers, perhaps for a fee. This provides a way for clients to get their messages out to PoW-restricted relays without having to do any work themselves, which is useful for energy constrained devices like on mobile +Since the `NIP-01` note id does not commit to any signature, PoW can be outsourced to PoW providers, perhaps for a fee. This provides a way for clients to get their messages out to PoW-restricted relays without having to do any work themselves, which is useful for energy-constrained devices like mobile phones. diff --git a/22.md b/22.md index fb29e6a..2172519 100644 --- a/22.md +++ b/22.md @@ -22,7 +22,7 @@ This NIP formalizes restrictions on event timestamps as accepted by a relay and The event `created_at` field is just a unix timestamp and can be set to a time in the past or future. Relays accept and share events dated to 20 years ago or 50,000 years in the future. This NIP aims to define a way for relays that do not want to store events with *any* timestamp to set their own restrictions. -[Replaceable events](16.md#replaceable-events) can behave rather unexpected if the user wrote them - or tried to write them - with a wrong system clock. Persisting an update with a backdated system now would result in the update not getting persisted without a notification and if they did the last update with a forward dated system, they will again fail to do another update with the now correct time. +[Replaceable events](16.md#replaceable-events) can behave rather unexpectedly if the user wrote them - or tried to write them - with a wrong system clock. Persisting an update with a backdated system now would result in the update not getting persisted without a notification and if they did the last update with a forward dated system, they will again fail to do another update with the now correct time. A wide adoption of this NIP could create a better user experience as it would decrease the amount of events that appear wildly out of order or even from impossible dates in the distant past or future. diff --git a/25.md b/25.md index 5ab1553..f74bcc0 100644 --- a/25.md +++ b/25.md @@ -16,7 +16,7 @@ A reaction with `content` set to `-` SHOULD be interpreted as a "dislike" or "downvote". It SHOULD NOT be counted as a "like", and MAY be displayed as a downvote or dislike on a post. A client MAY also choose to tally likes against dislikes in a reddit-like system of upvotes and downvotes, or display them as -separate tallys. +separate tallies. The `content` MAY be an emoji, in this case it MAY be interpreted as a "like" or "dislike", or the client MAY display this emoji reaction on the post. diff --git a/40.md b/40.md index 274ee80..32680db 100644 --- a/40.md +++ b/40.md @@ -43,7 +43,7 @@ Clients SHOULD ignore events that have expired. Relay Behavior -------------- -Relays MAY NOT delete an expired message immediately on expiration and MAY persist them indefinitely. +Relays MAY NOT delete expired messages immediately on expiration and MAY persist them indefinitely. Relays SHOULD NOT send expired events to clients, even if they are stored. Relays SHOULD drop any events that are published to them if they are expired. An expiration timestamp does not affect storage of ephemeral events. diff --git a/45.md b/45.md index cd81c11..28e5e96 100644 --- a/45.md +++ b/45.md @@ -6,7 +6,7 @@ Event Counts `draft` `optional` `author:staab` -Relays may support the `COUNT` verb, which provide a mechanism for obtaining event counts. +Relays may support the `COUNT` verb, which provides a mechanism for obtaining event counts. ## Motivation diff --git a/51.md b/51.md index b4143ad..34a5def 100644 --- a/51.md +++ b/51.md @@ -10,7 +10,7 @@ A "list" event is defined as having a list of public and/or private tags. Public If a list type should only be defined once per user (like the 'Mute' list), the list type's events should follow the specification for [NIP-16 - Replaceable Events](16.md). These lists may be referred to as 'replaceable lists'. -Otherwise the list type's events should follow the specification for [NIP-33 - Parameterized Replaceable Events](33.md), where the list name will be used as the 'd' parameter. These lists may be referred to as 'parameterized replaceable lists'. +Otherwise, the list type's events should follow the specification for [NIP-33 - Parameterized Replaceable Events](33.md), where the list name will be used as the 'd' parameter. These lists may be referred to as 'parameterized replaceable lists'. ## Replaceable List Event Example diff --git a/78.md b/78.md index 175f66b..10ff535 100644 --- a/78.md +++ b/78.md @@ -8,7 +8,7 @@ Arbitrary custom app data The goal of this NIP is to enable [remoteStorage](https://remotestorage.io/)-like capabilities for custom applications that do not care about interoperability. -Even though interoperability is great, some apps do not want or do not need interoperability, and it that wouldn't make sense for them. Yet Nostr can still serve as a generalized data storage for these apps in a "bring your own database" way, for example: a user would open an app and somehow input their preferred relay for storage, which would then enable these apps to store application-specific data there. +Even though interoperability is great, some apps do not want or do not need interoperability, and it wouldn't make sense for them. Yet Nostr can still serve as a generalized data storage for these apps in a "bring your own database" way, for example: a user would open an app and somehow input their preferred relay for storage, which would then enable these apps to store application-specific data there. ## Nostr event -- cgit v1.2.3 From 97b58ccc36a8360a099e4f905fc9bc616bc03f31 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 14 Apr 2023 21:24:25 +0900 Subject: fix typos --- 15.md | 2 +- 51.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to '51.md') diff --git a/15.md b/15.md index e8fe4af..617c011 100644 --- a/15.md +++ b/15.md @@ -64,7 +64,7 @@ A merchant can publish these events: Fields that are not self-explanatory: - `shipping`: - an array with possible shipping zones for this stall. The customer MUST choose exactly one shipping zone. - - shipping to different zones can have different costs. For some goods (digital for examle) the cost can be zero. + - shipping to different zones can have different costs. For some goods (digital for example) the cost can be zero. - the `id` is an internal value used by the merchant. This value must be sent back as the customer selection. **Event Tags**: diff --git a/51.md b/51.md index 34a5def..80cc09e 100644 --- a/51.md +++ b/51.md @@ -97,11 +97,11 @@ Then the user would create a 'Categorized People' list event like below: ### Mute List -An event with kind `10000` is defined as a replaceable list event for listing content a user wants to mute. Any standarized tag can be included in a 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 standarized tag can be included in a 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 @@ -109,4 +109,4 @@ An event with kind `30000` is defined as a parameterized replaceable list event ### Categorized Bookmarks List -An event with 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. Any standarized tag can be included in a Categorized Bookmarks List. +An event with 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. Any standardized tag can be included in a Categorized Bookmarks List. -- cgit v1.2.3