Skip to content

Kind 12: Group Thread Reply ​

Overview ​

Kind 12 events are replies to threaded discussions within relay-based groups. It extends the group chat functionality by supporting nested conversation threads similar to forum discussions. This kind is part of the broader relay-based groups ecosystem defined in NIP-29, although it has been marked as deprecated in favor of newer approaches to group interactions.

Specification ​

PropertyValue
Kind Number12
Event RangeRegular
Defined inNIP-29
StatusDeprecated

Content Format ​

The content field contains the text of the reply to a thread within a group. This can be plain text, though some clients may support markdown or other formatting features.

Schema ​

json
"content": "This is my reply to the thread in this group discussion."

Tags ​

Tag NameDescriptionFormatRequired
hGroup identifier["h", "<group-id>"]Yes
eRoot thread event["e", "<thread-event-id>", "<relay-url>", "root"]Yes
eParent reply (if reply to a reply)["e", "<parent-reply-id>", "<relay-url>", "reply"]Conditional
previousTimeline references["previous", "<event-id-prefix>"]Recommended

Client Behavior ​

Clients should:

  1. Display threaded replies in a hierarchical or nested format that makes the thread structure clear
  2. Include appropriate tags when creating thread replies, marking the root thread with the "root" marker
  3. If replying to another reply, include both the root thread reference and the parent reply reference
  4. Include timeline references as recommended in NIP-29 (at least 3 references)
  5. Check timeline references to validate event consistency

Relay Behavior ​

Relays should:

  1. Verify the sender has permission to post in the group
  2. Reject events with timeline references to events not in their database
  3. Apply group-specific moderation rules
  4. Prevent late publication of events with old timestamps

Use Cases ​

  • Structured conversations within groups
  • Extended discussions on specific topics
  • Forum-like functionality within Nostr groups
  • In-depth conversations that benefit from thread organization

Example ​

json
{
  "id": "0187b5ef93285b37c33eaa3b6ed0dfdfb36591b85cee55db7ac53625a5e67f48",
  "pubkey": "15c21a0ba91a1294b7d644c987e30e8f47997e3eee94bb058b0fb187dc9c3a2c",
  "created_at": 1671304521,
  "kind": 12,
  "tags": [
    ["h", "veggie-lovers-123"],
    ["e", "a1a2a3a4b1b2b3b4c1c2c3c4d1d2d3d4e1e2e3e4f1f2f3f4aaabbbcccddd", "wss://groups.example.com", "root"],
    ["e", "d5d5e5e5f5f5a5a5b5b5c5c5d5d5e5e5f5f5a6a6b6b6c6c6d6d6e6e6f6f6", "wss://groups.example.com", "reply"],
    ["previous", "3a5f861b"],
    ["previous", "c2a91e7d"],
    ["previous", "08fe437c"]
  ],
  "content": "I disagree with the previous comment. Deep dish pizza should definitely be considered 'real' pizza!",
  "sig": "3045022100a5c0b916fac3c73f572d7f3fade321bbce2db08a159c72c8ffdec9c3e3ebd51502203d2ba8d283ed5ca1573d03bc66e381804b77b83d216825ffafc9dc59b132f481"
}

References ​

Notes ​

  • This kind is marked as deprecated in NIP-29 in favor of newer group messaging approaches.
  • The previous tag references are used to prevent out-of-context message distribution.
  • The threading structure follows similar principles to regular threaded conversations (NIP-10), but adapted for the group context.
  • Due to its deprecated status, not all clients may support this kind.