← All NIPs

NIP-18

Reposts

DraftEvents

Share someone else's event with your followers: kind 6 reposts a text note, kind 16 reposts anything else, and q tags turn a mention into a quote post.

At a glance

Status
In use and still allowed to change.
Kinds
Tags
  • q
Last changed
Dec 3, 2025

Try it

Edit the form or the JSON: both stay in sync, the badge says whether the result is valid, and tapping any field explains it.

What to build
Examples
Valid 1 note

Not signed yet · Demo keys only. These personas' secret keys are public on purpose.

Form
Dec 31, 2024, 11:05 PM UTC

Content

The stringified JSON of the reposted note (or empty, not recommended).

Tags

  1. e Required

    The reposted event.

  2. p Recommended

    The original author.

Add tag

How this NIP works

Step 1 of 4

Embed the original

A kind 6 repost's content is the reposted note's full JSON, so readers can show it without fetching. It may be empty (required for NIP-70 protected events).

In the course

No course chapter covers this NIP yet. The editor above is the quickest way in.

Builds on

See also

Specification

Specification text is quoted in English from the nostr-protocol/nips repository. Our explanations and the interface are translated. Source on GitHub at commit 0046368

Read the spec285 words, quoted from the repository at commit 0046368.

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-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 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", "<event-id> or <event-address>", "<relay-url>", "<pubkey-if-a-regular-event>"]

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.