From 197b6ea206611e751cb73c2e04a12b371674a109 Mon Sep 17 00:00:00 2001 From: arthurfranca Date: Sat, 25 Mar 2023 11:58:31 -0300 Subject: [PATCH 1/4] Bring back NIP-18 --- 18.md | 19 +++++++++++++++++++ README.md | 1 + 2 files changed, 20 insertions(+) create mode 100644 18.md diff --git a/18.md b/18.md new file mode 100644 index 00000000..365de9c3 --- /dev/null +++ b/18.md @@ -0,0 +1,19 @@ +NIP-18 +====== + +Reposts +------- + +`draft` `optional` `author:jb55` + +A repost is a `kind 6` note that is used to signal to followers +that another event is worth reading. + +The `content` of a repost event is empty. + +The repost event MUST include an `e` tag with the `id` of the note that is +being reposted. That tag SHOULD include a relay URL as its third entry +to indicate where it can be fetched. + +The repost SHOULD include a `p` tag with the `pubkey` of the event being +reposted. diff --git a/README.md b/README.md index 9390916a..947ca702 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh - [NIP-14: Subject tag in text events.](14.md) - [NIP-15: End of Stored Events Notice](15.md) - [NIP-16: Event Treatment](16.md) +- [NIP-18: Reposts](18.md) - [NIP-19: bech32-encoded entities](19.md) - [NIP-20: Command Results](20.md) - [NIP-21: `nostr:` URL scheme](21.md) From 9a362c6df48953fdfefea9178d70f3656d75b1e8 Mon Sep 17 00:00:00 2001 From: arthurfranca Date: Wed, 29 Mar 2023 15:37:54 -0300 Subject: [PATCH 2/4] Add optional comment to content --- 18.md | 6 ++++-- README.md | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/18.md b/18.md index 365de9c3..ef77fa66 100644 --- a/18.md +++ b/18.md @@ -4,16 +4,18 @@ NIP-18 Reposts ------- -`draft` `optional` `author:jb55` +`draft` `optional` `author:fiatjaf` `author:arthurfranca` A repost is a `kind 6` note that is used to signal to followers that another event is worth reading. -The `content` of a repost event is empty. +The `content` of a repost event is empty. Optionally, it MAY contain +a comment in the same format of a kind 1 note content. The repost event MUST include an `e` tag with the `id` of the note that is being reposted. That tag SHOULD include a relay URL as its third entry to indicate where it can be fetched. +When reposting a long-form content use an `a` tag instead. The repost SHOULD include a `p` tag with the `pubkey` of the event being reposted. diff --git a/README.md b/README.md index 947ca702..ba78113d 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh | 3 | Contacts | [2](02.md) | | 4 | Encrypted Direct Messages | [4](04.md) | | 5 | Event Deletion | [9](09.md) | +| 6 | Reposts | [18](18.md) | | 7 | Reaction | [25](25.md) | | 8 | Badge Award | [58](58.md) | | 40 | Channel Creation | [28](28.md) | From 5b1640c64815d9c288dd30b7c690b1afecf48930 Mon Sep 17 00:00:00 2001 From: arthurfranca Date: Wed, 29 Mar 2023 15:43:11 -0300 Subject: [PATCH 3/4] Document Damus repost as Event Copy --- 30.md | 21 +++++++++++++++++++++ README.md | 3 +++ 2 files changed, 24 insertions(+) create mode 100644 30.md diff --git a/30.md b/30.md new file mode 100644 index 00000000..2c3c4ae0 --- /dev/null +++ b/30.md @@ -0,0 +1,21 @@ +NIP-30 +====== + +Event Copy +---------- + +`draft` `optional` `author:jb55` `author:arthurfranca` + +An event of `kind 9` is used to copy any event from another pubkey. A copy +allows its creator to keep content around even when the original gets deleted. + +The `content` of a copy event MUST be the stringified JSON of the whole original event. + +The copy event SHOULD include a `k` tag with the `kind` of the note that is +being copied. This enables subscribing to a subset of copies. + +The copy event SHOULD include an `e` tag with the `id` of the note that is +being copied. This allows the original author to know a specific event has been copied. + +The copy event SHOULD include a `p` tag with the `pubkey` of the event being +copied to notify original author. diff --git a/README.md b/README.md index ba78113d..741a2883 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,7 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh - [NIP-26: Delegated Event Signing](26.md) - [NIP-27: Text Note References](27.md) - [NIP-28: Public Chat](28.md) +- [NIP-30: Event Copy](30.md) - [NIP-33: Parameterized Replaceable Events](33.md) - [NIP-36: Sensitive Content](36.md) - [NIP-39: External Identities in Profiles](39.md) @@ -55,6 +56,7 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh | 6 | Reposts | [18](18.md) | | 7 | Reaction | [25](25.md) | | 8 | Badge Award | [58](58.md) | +| 9 | Event Copy | [30](30.md) | | 40 | Channel Creation | [28](28.md) | | 41 | Channel Metadata | [28](28.md) | | 42 | Channel Message | [28](28.md) | @@ -114,6 +116,7 @@ When experimenting with kinds, keep in mind the classification introduced by [NI | g | geohash | | [12](12.md) | | nonce | random | | [13](13.md) | | subject | subject | | [14](14.md) | +| k | referenced event kind | | [30](30.md) | | d | identifier | | [33](33.md) | | expiration | unix timestamp (string) | | [40](40.md) | From 800c0d0cd397eb4b043ef0cdaefd0bad18cb1cd5 Mon Sep 17 00:00:00 2001 From: arthurfranca Date: Wed, 29 Mar 2023 18:45:12 -0300 Subject: [PATCH 4/4] Drop event copy --- 18.md | 12 ++++++++---- 30.md | 21 --------------------- README.md | 3 --- 3 files changed, 8 insertions(+), 28 deletions(-) delete mode 100644 30.md diff --git a/18.md b/18.md index ef77fa66..422ad9ca 100644 --- a/18.md +++ b/18.md @@ -4,18 +4,22 @@ NIP-18 Reposts ------- -`draft` `optional` `author:fiatjaf` `author:arthurfranca` +`draft` `optional` `author:jb55` `author:fiatjaf` `author:arthurfranca` A repost is a `kind 6` note that is used to signal to followers that another event is worth reading. The `content` of a repost event is empty. Optionally, it MAY contain -a comment in the same format of a kind 1 note content. +the stringified JSON of the reposted note event for quick look up. The repost event MUST include an `e` tag with the `id` of the note that is -being reposted. That tag SHOULD include a relay URL as its third entry +being reposted. That tag MUST include a relay URL as its third entry to indicate where it can be fetched. -When reposting a long-form content use an `a` tag instead. The repost SHOULD include a `p` tag with the `pubkey` of the event being reposted. + +## Quote Reposts + +Quote reposts are `kind 1` events with an embedded `e` tag (see [NIP-08](08.md) and [NIP-27](27.md)). +Because a quote repost includes an `e` tag, it may show up along replies to the reposted note. diff --git a/30.md b/30.md deleted file mode 100644 index 2c3c4ae0..00000000 --- a/30.md +++ /dev/null @@ -1,21 +0,0 @@ -NIP-30 -====== - -Event Copy ----------- - -`draft` `optional` `author:jb55` `author:arthurfranca` - -An event of `kind 9` is used to copy any event from another pubkey. A copy -allows its creator to keep content around even when the original gets deleted. - -The `content` of a copy event MUST be the stringified JSON of the whole original event. - -The copy event SHOULD include a `k` tag with the `kind` of the note that is -being copied. This enables subscribing to a subset of copies. - -The copy event SHOULD include an `e` tag with the `id` of the note that is -being copied. This allows the original author to know a specific event has been copied. - -The copy event SHOULD include a `p` tag with the `pubkey` of the event being -copied to notify original author. diff --git a/README.md b/README.md index 741a2883..ba78113d 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,6 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh - [NIP-26: Delegated Event Signing](26.md) - [NIP-27: Text Note References](27.md) - [NIP-28: Public Chat](28.md) -- [NIP-30: Event Copy](30.md) - [NIP-33: Parameterized Replaceable Events](33.md) - [NIP-36: Sensitive Content](36.md) - [NIP-39: External Identities in Profiles](39.md) @@ -56,7 +55,6 @@ NIPs stand for **Nostr Implementation Possibilities**. They exist to document wh | 6 | Reposts | [18](18.md) | | 7 | Reaction | [25](25.md) | | 8 | Badge Award | [58](58.md) | -| 9 | Event Copy | [30](30.md) | | 40 | Channel Creation | [28](28.md) | | 41 | Channel Metadata | [28](28.md) | | 42 | Channel Message | [28](28.md) | @@ -116,7 +114,6 @@ When experimenting with kinds, keep in mind the classification introduced by [NI | g | geohash | | [12](12.md) | | nonce | random | | [13](13.md) | | subject | subject | | [14](14.md) | -| k | referenced event kind | | [30](30.md) | | d | identifier | | [33](33.md) | | expiration | unix timestamp (string) | | [40](40.md) |