NIPs by PolleramaCommunity NIPs, surfaced by trustConnect
npub1l5sga6xg72p...

Nostr Thread Rendering (skill)

Published Oct 3, 2026
kind 1kind 1111

Threads

A thread is one root of any kind plus responses that point at that root or at a descendant already in the thread.

TermMeaning
OPAn original post of any kind with no thread tags.
ReplyKind 1 with NIP-10 thread tags. Only valid onto a kind 1 parent.
ResponseAny event that references something higher in the thread (1111, replies, 1244, quotes, highlights, …).

Publish

ParentDefault text responseAlso offer a reply (kind 1)?
Kind 1 replyKind 1 (another reply)--
Kind 1 originalKind 1111Yes
Any other kindKind 1111No

Tag shapes

NIP-22 uppercase (E / A / P) uses the same field order as lowercase (e / a / p). Replies use the NIP-10 e row, not NIP-01.

TagWhenFields
e / ENIP-01 and NIP-22id, relay (optional), author pubkey (optional)
eReply (NIP-10)id, relay, marker (root \
p / PMentions / NIP-22 authorspubkey, relay (optional)
a / AAddressable (30000–39999)kind:pubkey:d-tag, relay (optional)
a / AReplaceable (0, 3, 10000–19999)kind:pubkey: (keep the trailing colon), relay (optional)

Hex ids and pubkeys are 32-byte lowercase.

Kind 1111 (NIP-22 comment = a response, not a reply)

RolePointerKind (required)Author if tagging a Nostr event
RootA / E / IKP
Parenta / e / ikp

Omit P / p on I/i-only scopes (URL, hashtag, geohash, podcast, …).

TargetRootParent
Regular eventEe (same id if top-level)
Addressable / replaceableA only (no required root E)a and e (this version's id)
NIP-73 scopeITop-level: i = I. Nested: keep I; parent is e on the 1111

Nested 1111 responses copy the uppercase root; lowercase tags point at the parent response (e, k = that event's kind).

Kind 1 replies (NIP-10)

Responding toe tags
The kind 1 OPOne e with marker root
A nested replyroot, then marker reply (the parent reply)

Copy the parent's p tags and add the author of the parent.

Prefer marked e tags. Still render deprecated positional threads (first e = root, last = parent).

Display

SurfaceWhat
Main thread rowsReplies and kind 1111 responses, on every OP kind
On those rows (not extra rows)Zap counts (BTC and/or XMR), reactions as badges or counts, boost badges, kind 9802 highlights, and the one-line embed card for any nostr:naddr / nevent / note (or q / kind 1 a) the row cites — same card as Quotes
Quotes subsectionKind 1 quotes: NIP-18 q, or embedding in content (nostr:naddr, nostr:nevent, **nostr:note1**). Embedding is quoting, including older notes with a bare note1 and no q/a/e tags.
Below the fold / subsectionOther responses: kind 1244, bookmarks, … Unknown kind → generic card

Kind 9802 highlights mark the quoted span on the event they reference (OP or a thread row). They are decorations on that text — same category as reactions and boosts — not extra thread rows and not quote cards below the fold.

Do not put an embedded-OP note — or a kind 1 whose body is a note1/nevent/naddr embed-quote — in Other responses.

Nest on the parent: NIP-22 lowercase e / a / i; for replies, the NIP-10 reply marker when both root and reply exist. If lowercase parent tags are present, ignore uppercase E / A / I as the parent. Missing parent → still show the row at top-level.

Fetch without restricting kinds: e E a A q, plus I/i for NIP-73 scopes.

Comments / responses filter: kind 1111 comments and legacy kind 1 replies.

I / i valueCard
http(s) URLOpenGraph, or a fallback card
Geohash, hashtag, podcast, …An appropriate non-OG card