Improve generic reposts for replaceable events (#2132)

This commit is contained in:
Cody Tseng
2025-12-02 09:07:37 +08:00
committed by GitHub
parent 2a33cceff6
commit a4dadca077

19
18.md
View File

@@ -1,8 +1,6 @@
NIP-18 # NIP-18
======
Reposts ## Reposts
-------
`draft` `optional` `draft` `optional`
@@ -21,9 +19,9 @@ reposted.
## Quote Reposts ## Quote Reposts
Mentions to [NIP-21](21.md) entities like `nevent`, `note` and `naddr` on any Mentions to [NIP-21](21.md) entities like `nevent`, `note` and `naddr` on any
event must be converted into `q` tags. The `q` tag ensures quote reposts are event must be converted into `q` tags. The `q` tag ensures quote reposts are
not pulled and included as replies in threads. It also allows you to easily not pulled and included as replies in threads. It also allows you to easily
pull and count all of the quotes for a post. The syntax follows pull and count all of the quotes for a post. The syntax follows
`["q", "<event-id> or <event-address>", "<relay-url>", "<pubkey-if-a-regular-event>"]` `["q", "<event-id> or <event-address>", "<relay-url>", "<pubkey-if-a-regular-event>"]`
@@ -36,3 +34,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.