← Back to Nostr Implementation Possibilities
NIP 18specificationaddresseskey-managementrelayeventsnip

NIP-18: Untitled NIP

NIP-18 ====== Reposts

No reviews
Unknown·Updated Mar 28, 2026·0 reviews·0 attestations·View source
Collections:NIPs — Merged

Specification

NIP-18

Reposts -------

`draft` `optional`

A repost is a `kind 6` event that is used to signal to followers that a `kind 1` text note is worth reading.

The `content` of a repost event is _the stringified JSON of the reposted note_. It MAY also be empty, but that is not recommended. Reposts of [NIP-70](70.md)-protected events SHOULD always have an empty `content`.

The repost event MUST include an `e` tag with the `id` of the note that is being reposted. That tag MUST 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.

## Quote Reposts

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 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

`["q", " or ", "", ""]`

## Generic Reposts

Since `kind 6` reposts are reserved for `kind 1` contents, we use `kind 16` as a "generic repost", that can include any kind of event inside other than `kind 1`.

`kind 16` reposts SHOULD contain a `"k"` tag with the stringified kind number 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.

Discussion (0 threads)

Sign in to start a discussion on this spec.