{"id":"b03e6f241836cf26073d10bc474706076b6f2cf9dc13d2b02975d88e72fd4d73","pubkey":"2b39b4ffe62933df970e19366c22c1e092f953f83fcfed754e0f04d5a3b459f9","created_at":1764777598,"kind":30817,"tags":[["d","nip-18"],["title","NIP-18: Reposts"],["summary","Kind 6, the repost, which carries the reposted note in its content and points at it with an e tag."],["s","draft"],["t","nostr"],["t","nip"],["k","6","Repost"],["k","16","Generic Repost"],["alt","A specification: NIP-18: Reposts"],["client","openspecs-import"],["published_at","1672686942"],["proxy","https://github.com/nostr-protocol/nips/blob/656cecc7c0a815b6a2b218d3b5d6f078b3f4dbab/18.md","web"],["x","fb9fdc741e9d6da48c42ce174cc8b30d274ba113df6b6f58d512bdc07feb80d2"]],"content":"NIP-18\n======\n\nReposts\n-------\n\n`draft` `optional`\n\nA repost is a `kind 6` event that is used to signal to followers\nthat a `kind 1` text note is worth reading.\n\nThe `content` of a repost event is _the stringified JSON of the reposted note_. It MAY also be empty, but that is not recommended.\nReposts of [NIP-70](nostr:naddr1qvzqqqrcvypzq2eeknl7v2fnm7tsuxfkds3vrcyjl9fls070a465urcy6k3mgk0eqqrxu6ts95mnq8gw7fu)-protected events SHOULD always have an empty `content`.\n\nThe repost event MUST include an `e` tag with the `id` of the note that is\nbeing reposted. That tag MUST include a relay URL as its third entry\nto indicate where it can be fetched.\n\nThe repost SHOULD include a `p` tag with the `pubkey` of the event being\nreposted.\n\n## Quote Reposts\n\nMentions to [NIP-21](nostr:naddr1qvzqqqrcvypzq2eeknl7v2fnm7tsuxfkds3vrcyjl9fls070a465urcy6k3mgk0eqqrxu6ts95erzkumy4n) entities like `nevent`, `note` and `naddr` on any\nevent must be converted into `q` tags. The `q` tag ensures quote reposts are\nnot pulled and included as replies in threads. It also allows you to easily\npull and count all of the quotes for a post. The syntax follows\n\n`[\"q\", \"<event-id> or <event-address>\", \"<relay-url>\", \"<pubkey-if-a-regular-event>\"]`\n\n## Generic Reposts\n\nSince `kind 6` reposts are reserved for `kind 1` contents, we use `kind 16`\nas a \"generic repost\", that can include any kind of event inside other than\n`kind 1`.\n\n`kind 16` reposts SHOULD contain a `\"k\"` tag with the stringified kind number\nof the reposted event as its value.\n\nWhen reposting a replaceable event, the repost SHOULD include an `\"a\"` tag with\nthe event coordinate (`kind:pubkey:d-tag`) of the reposted event.\n\nIf the `\"a\"` tag is not present, it indicates that a specific version of a replaceable\nevent is being reposted, in which case the `content` field must contain the full\nJSON string of the reposted event.\n","sig":"6a8262b66e4c9878c0b259e3e19fb3e39da1b12e8cae445e1389f2ae57d5b314d7f578f569d93f815f60da3446326f65124d1fbdd17f9e68a4b1fa9d60c4d7df"}