Compare commits

...

9 Commits

Author SHA1 Message Date
JeffG
247205a155 Replace NIP-EE with Marmot (#2154) 2025-12-11 11:54:19 -03:00
mattn
5d64d57fc5 fix typos (#2152) 2025-12-08 07:59:59 -03:00
Awiteb
a6db7917f2 Update NIP-EE header formatting (#2145) 2025-12-03 08:35:23 -08:00
Awiteb
97d3531c44 update NIP-18 headings (#2144) 2025-12-04 00:59:58 +09:00
KotlinGeekDev
f310614122 Complete removal of hashtag and url tags from bookmarks. (#2141) 2025-12-01 20:12:23 -05:00
Cody Tseng
a4dadca077 Improve generic reposts for replaceable events (#2132) 2025-12-01 17:07:37 -08:00
Valentino Giudice
2a33cceff6 Improve NIP-C0 (#2138) 2025-11-26 09:05:45 -03:00
Vitor Pamplona
844c6fe15c NIP-51: Removes hashtags and r tags from bookmarks (#2133) 2025-11-21 20:04:54 -03:00
Vitor Pamplona
e0a2980d7a NIP-59: Adds GiftWrap deletion requests (#2131) 2025-11-21 07:11:35 -03:00
7 changed files with 34 additions and 19 deletions

7
18.md
View File

@@ -36,3 +36,10 @@ as a "generic repost", that can include any kind of event inside other than
`kind 16` reposts SHOULD contain a `"k"` tag with the stringified kind number `kind 16` reposts SHOULD contain a `"k"` tag with the stringified kind number
of the reposted event as its value. of the reposted event as its value.
When reposting a replaceable event, the repost SHOULD include an `"a"` tag with
the event coordinate (`kind:pubkey:d-tag`) of the reposted event.
If the `"a"` tag is not present, it indicates that a specific version of a replaceable
event is being reposted, in which case the `content` field must contain the full
JSON string of the reposted event.

4
51.md
View File

@@ -26,7 +26,7 @@ For example, _mute list_ can contain the public keys of spammers and bad actors
| Mute list | 10000 | things the user doesn't want to see in their feeds | `"p"` (pubkeys), `"t"` (hashtags), `"word"` (lowercase string), `"e"` (threads) | | 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) | | Pinned notes | 10001 | events the user intends to showcase in their profile page | `"e"` (kind:1 notes) |
| Read/write relays | 10002 | where a user publishes to and where they expect mentions | see [NIP-65](65.md) | | Read/write relays | 10002 | where a user publishes to and where they expect mentions | see [NIP-65](65.md) |
| Bookmarks | 10003 | uncategorized, "global" list of things a user wants to save | `"e"` (kind:1 notes), `"a"` (kind:30023 articles), `"t"` (hashtags), `"r"` (URLs) | | Bookmarks | 10003 | uncategorized, "global" list of things a user wants to save | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
| Communities | 10004 | [NIP-72](72.md) communities the user belongs to | `"a"` (kind:34550 community definitions) | | 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 channel definitions) | | 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) | | Blocked relays | 10006 | relays clients should never connect to | `"relay"` (relay URLs) |
@@ -52,7 +52,7 @@ Aside from their main identifier, the `"d"` tag, sets can optionally have a `"ti
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Follow sets | 30000 | categorized groups of users a client may choose to check out in different circumstances | `"p"` (pubkeys) | | 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) | | 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) | | Bookmark sets | 30003 | user-defined bookmarks categories , for when bookmarks must be in labeled separate groups | `"e"` (kind:1 notes), `"a"` (kind:30023 articles) |
| 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) | | 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) |
| Curation sets | 30005 | groups of videos picked by users as interesting and/or belonging to the same category | `"e"` (kind:21 videos) | | Curation sets | 30005 | groups of videos picked by users as interesting and/or belonging to the same category | `"e"` (kind:21 videos) |
| Kind mute sets | 30007 | mute pubkeys by kinds<br>`"d"` tag MUST be the kind string | `"p"` (pubkeys) | | Kind mute sets | 30007 | mute pubkeys by kinds<br>`"d"` tag MUST be the kind string | `"p"` (pubkeys) |

2
58.md
View File

@@ -11,7 +11,7 @@ user profiles:
1. A "Badge Definition" event is defined as an addressable event with kind `30009` having a `d` tag with a value that uniquely identifies the badge (e.g. `bravery`) published by the badge issuer. Badge definitions can be updated. 1. A "Badge Definition" event is defined as an addressable event with kind `30009` having a `d` tag with a value that uniquely identifies the badge (e.g. `bravery`) published by the badge issuer. Badge definitions can be updated.
2. A "Badge Award" event is a kind `8` event with a single `a` tag referencing a "Badge Definition" event and one or more `p` tags, one for each pubkey the badge issuer wishes to award. Awarded badges are immutable and non-transferrable. 2. A "Badge Award" event is a kind `8` event with a single `a` tag referencing a "Badge Definition" event and one or more `p` tags, one for each pubkey the badge issuer wishes to award. Awarded badges are immutable and non-transferable.
3. A "Profile Badges" event is defined as an _addressable event_ with kind `30008` with a `d` tag with the value `profile_badges`. 3. A "Profile Badges" event is defined as an _addressable event_ with kind `30008` with a `d` tag with the value `profile_badges`.
Profile badges contain an ordered list of pairs of `a` and `e` tags referencing a `Badge Definition` and a `Badge Award` for each badge to be displayed. Profile badges contain an ordered list of pairs of `a` and `e` tags referencing a `Badge Definition` and a `Badge Award` for each badge to be displayed.

2
59.md
View File

@@ -99,6 +99,8 @@ AUTH, and refuse to serve wrapped events to non-recipients.
When adding expiration tags to both `seal` and `gift wrap` layers, implementations SHOULD use independent random timestamps for each layer. Using different `created_at` values increases timing variance and helps protect against metadata correlation attacks. When adding expiration tags to both `seal` and `gift wrap` layers, implementations SHOULD use independent random timestamps for each layer. Using different `created_at` values increases timing variance and helps protect against metadata correlation attacks.
Since signing keys are random, relays SHOULD delete `kind 1059` events whose p-tag matches the signer of
[NIP-09](09.md) deletions or [NIP-62](62.md) vanish requests.
## An Example ## An Example

4
C0.md
View File

@@ -23,9 +23,9 @@ The `.content` field contains the actual code snippet text.
- `extension` - File extension (without the dot). Examples: "js", "py", "rs" - `extension` - File extension (without the dot). Examples: "js", "py", "rs"
- `description` - Brief description of what the code does - `description` - Brief description of what the code does
- `runtime` - Runtime or environment specification (e.g., "node v18.15.0", "python 3.11") - `runtime` - Runtime or environment specification (e.g., "node v18.15.0", "python 3.11")
- `license` - License under which the code is shared (e.g., "MIT", "GPL-3.0", "Apache-2.0") - `license` - License under which the code (along with any related data contained within the event, when available, such as the description) is shared. This MUST be a standard [SPDX](https://spdx.org/licenses/) short identifier (e.g., "MIT", "GPL-3.0-or-later", "Apache-2.0") when available. An additional parameter containing a reference to the actual text of the license MAY be provided. This tag can be repeated, to indicate multi-licensing, allowing recipients to use the code under any license of choosing among the referenced ones
- `dep` - Dependency required for the code to run (can be repeated) - `dep` - Dependency required for the code to run (can be repeated)
- `repo` - Reference to a repository where this code originates - `repo` - Reference to a repository where this code originates. This MUST be a either standard URL or, alternatively, the address of a [NIP-34](34.md) Git repository announcement event in the form `"30617:<32-bytes hex a pubkey>:<d tag value>"`. If a repository announcement is referenced, a recommended relay URL where to find the event should be provided as an additional parameter
## Format ## Format

10
EE.md
View File

@@ -1,8 +1,12 @@
# NIP-EE > __Warning__ `unrecommended`: superseded by the [Marmot Protocol](https://github.com/marmot-protocol/marmot)
## E2EE Messaging using the Messaging Layer Security (MLS) Protocol NIP-EE
======
`draft` `optional` E2EE Messaging using the Messaging Layer Security (MLS) Protocol
----------------------------------------------------------------
`final` `unrecommended` `optional`
This NIP standardizes how to use the [MLS Protocol](https://www.rfc-editor.org/rfc/rfc9420.html) with Nostr for efficient and E2EE (end-to-end encrypted) direct and group messaging. This NIP standardizes how to use the [MLS Protocol](https://www.rfc-editor.org/rfc/rfc9420.html) with Nostr for efficient and E2EE (end-to-end encrypted) direct and group messaging.

View File

@@ -108,7 +108,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
- [NIP-BE: Nostr BLE Communications Protocol](BE.md) - [NIP-BE: Nostr BLE Communications Protocol](BE.md)
- [NIP-C0: Code Snippets](C0.md) - [NIP-C0: Code Snippets](C0.md)
- [NIP-C7: Chats](C7.md) - [NIP-C7: Chats](C7.md)
- [NIP-EE: E2EE Messaging using MLS Protocol](EE.md) - [NIP-EE: E2EE Messaging using MLS Protocol](EE.md) --- **unrecommended**: superseded by the [Marmot Protocol](https://github.com/marmot-protocol/marmot)
## Event Kinds ## Event Kinds
| kind | description | NIP | | kind | description | NIP |
@@ -135,9 +135,9 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `21` | Video Event | [71](71.md) | | `21` | Video Event | [71](71.md) |
| `22` | Short-form Portrait Video Event | [71](71.md) | | `22` | Short-form Portrait Video Event | [71](71.md) |
| `30` | internal reference | [NKBIP-03] | | `30` | internal reference | [NKBIP-03] |
| `31` | external web reference | [NKBIP-03] | | `31` | external web reference | [NKBIP-03] |
| `32` | hardcopy reference | [NKBIP-03] | | `32` | hardcopy reference | [NKBIP-03] |
| `33` | prompt reference | [NKBIP-03] | | `33` | prompt reference | [NKBIP-03] |
| `40` | Channel Creation | [28](28.md) | | `40` | Channel Creation | [28](28.md) |
| `41` | Channel Metadata | [28](28.md) | | `41` | Channel Metadata | [28](28.md) |
| `42` | Channel Message | [28](28.md) | | `42` | Channel Message | [28](28.md) |
@@ -145,9 +145,9 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `44` | Channel Mute User | [28](28.md) | | `44` | Channel Mute User | [28](28.md) |
| `62` | Request to Vanish | [62](62.md) | | `62` | Request to Vanish | [62](62.md) |
| `64` | Chess (PGN) | [64](64.md) | | `64` | Chess (PGN) | [64](64.md) |
| `443` | KeyPackage | [EE](EE.md) | | `443` | KeyPackage | [Marmot](marmot) |
| `444` | Welcome Message | [EE](EE.md) | | `444` | Welcome Message | [Marmot](marmot) |
| `445` | Group Event | [EE](EE.md) | | `445` | Group Event | [Marmot](marmot) |
| `818` | Merge Requests | [54](54.md) | | `818` | Merge Requests | [54](54.md) |
| `1018` | Poll Response | [88](88.md) | | `1018` | Poll Response | [88](88.md) |
| `1021` | Bid | [15](15.md) | | `1021` | Bid | [15](15.md) |
@@ -209,7 +209,7 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
| `10020` | Media follows | [51](51.md) | | `10020` | Media follows | [51](51.md) |
| `10030` | User emoji list | [51](51.md) | | `10030` | User emoji list | [51](51.md) |
| `10050` | Relay list to receive DMs | [51](51.md), [17](17.md) | | `10050` | Relay list to receive DMs | [51](51.md), [17](17.md) |
| `10051` | KeyPackage Relays List | [EE](EE.md) | | `10051` | KeyPackage Relays List | [Marmot](marmot) |
| `10063` | User server list | [Blossom][blossom] | | `10063` | User server list | [Blossom][blossom] |
| `10096` | File storage server list | [96](96.md) (deprecated) | | `10096` | File storage server list | [96](96.md) (deprecated) |
| `10166` | Relay Monitor Announcement | [66](66.md) | | `10166` | Relay Monitor Announcement | [66](66.md) |
@@ -296,6 +296,8 @@ They exist to document what may be implemented by [Nostr](https://github.com/nos
[Tidal-nostr]: https://wikistr.com/tidal-nostr [Tidal-nostr]: https://wikistr.com/tidal-nostr
[geocaching]: https://nostrhub.io/naddr1qvzqqqrcvypzppscgyy746fhmrt0nq955z6xmf80pkvrat0yq0hpknqtd00z8z68qqgkwet0vdskx6rfdenj6etkv4h8guc6gs5y5 [geocaching]: https://nostrhub.io/naddr1qvzqqqrcvypzppscgyy746fhmrt0nq955z6xmf80pkvrat0yq0hpknqtd00z8z68qqgkwet0vdskx6rfdenj6etkv4h8guc6gs5y5
[nostr-epoxy]: https://github.com/Origami74/nostr-epoxy-reverse-proxy [nostr-epoxy]: https://github.com/Origami74/nostr-epoxy-reverse-proxy
[marmot]: https://github.com/marmot-protocol/marmot
## Message types ## Message types