Reactions, Reposts and Social Primitives on Nostr

Kind 7 reactions, kind 6/16 reposts, follows, mute lists, reports, and social graph mechanics

Reactions, Reposts & Social

Social primitives on Nostr.

Reactions (Kind 7)

{
  "kind": 7,
  "content": "👍",
  "tags": [
    ["e", "<event-id>"],
    ["p", "<author-pubkey>"],
    ["k", "1"]
  ]
}
  • content is the reaction: emoji, +, or -
  • e tag: the event being reacted to
  • p tag: the author of the reacted-to event
  • k tag: kind of the reacted-to event

Clients aggregate and display the most popular reactions.

Reposts (Kind 6 & 16)

Kind 6 — Simple Repost

{
  "kind": 6,
  "content": "{\"<pubkey>\":\"\"}",
  "tags": [
    ["e", "<event-id>"],
    ["p", "<author-pubkey>"]
  ]
}

Share someone else’s event. content is a JSON object mapping the author’s pubkey to an empty string.

Kind 16 — Generic Repost

{
  "kind": 16,
  "content": "",
  "tags": [
    ["e", "<event-id>"],
    ["p", "<author-pubkey>"],
    ["k", "1"]
  ]
}

Extended repost with kind distinction. The k tag identifies the original event’s kind.

Quote Repost

A kind 1 note with an embedded nostr:nevent1... reference in the content. The client renders the original event alongside your commentary.

Follows (Kind 3)

Contact list. Tags establish the social graph:

{
  "kind": 3,
  "tags": [
    ["p", "<pubkey>", "<relay-url>", "<petname>"]
  ]
}

Petnames are local labels, visible only to clients that display them.

Community Moderation

Mute Lists (Kind 10000)

{
  "kind": 10000,
  "tags": [
    ["p", "<pubkey>"],   // mute this person
    ["e", "<event-id>"], // mute this event
    ["t", "politics"]    // mute this hashtag
  ]
}

Reports (Kind 1984)

{
  "kind": 1984,
  "content": "Spam account",
  "tags": [
    ["p", "<reported-pubkey>"],
    ["e", "<reported-event-id>"],
    ["report", "spam"]
  ]
}

Report types: nudity, malware, profanity, illegal, spam, impersonation, other.

Trending / Sorting

Nostr has no algorithm. Discovery happens through:

  1. Your follows’ posts: chronological
  2. Your follows’ reactions: what they engage with
  3. Zap totals: sort by most-zapped (NIP-57)
  4. Relay search: NIP-50 full-text search
  5. Community curation: kind 30004 lists

Write a comment
No comments yet.