@@ -16,7 +16,7 @@ NIP-29 provides group structure, membership, and relay-scoped moderation. As gro
1616This NIP introduces channels:
1717
1818- Preserves NIP-29 group semantics
19- - Adds per-group substreams (` i ` tag)
19+ - Adds per-group substreams (` c ` tag)
2020- Enables efficient filtering and search
2121- Remains fully compatible with clients that do not yet support channels
2222
@@ -95,14 +95,14 @@ Relays MAY restrict who can create/update channels.
9595
9696| Tag | Description |
9797| -----| -------------|
98- | ` i ` | Channel ID (matches ` c ` in 39010) |
98+ | ` c ` | Channel ID (matches ` c ` in 39010) |
9999
100100### Rules:
101101
102- - ` i ` MUST match ` c ` in a valid channel definition for the group
103- - Messages with unknown ` i ` SHOULD be rejected by relays
104- - Messages without ` i ` are not associated with any specific channel
105- - Clients MAY treat messages without ` i ` as they see fit (e.g., show in all channels, show in a special "uncategorized" view, or hide them)
102+ - ` c ` MUST match ` c ` in a valid channel definition for the group
103+ - Messages with unknown ` c ` SHOULD be rejected by relays
104+ - Messages without ` c ` are not associated with any specific channel
105+ - Clients MAY treat messages without ` c ` as they see fit (e.g., show in all channels, show in a special "uncategorized" view, or hide them)
106106
107107### Example:
108108
@@ -112,7 +112,7 @@ Relays MAY restrict who can create/update channels.
112112 "content" : " Hello from the general channel!" ,
113113 "tags" : [
114114 [" h" , " dev-nostr" ],
115- [" i " , " general" ]
115+ [" c " , " general" ]
116116 ],
117117 "created_at" : 1234567890 ,
118118 "pubkey" : " ..." ,
@@ -142,7 +142,7 @@ Relays:
142142
143143- MAY enforce access control
144144- SHOULD ensure ` channel_id ` uniqueness per group
145- - SHOULD reject messages with unknown ` i ` tags
145+ - SHOULD reject messages with unknown ` c ` tags
146146- MUST enforce group moderation rules from NIP-29
147147
148148## Client Behavior
@@ -151,7 +151,7 @@ Clients:
151151
152152- SHOULD present channels per group as separate substreams
153153- MAY hide private channels user lacks access to
154- - SHOULD include ` i ` tag when posting to channels
154+ - SHOULD include ` c ` tag when posting to channels
155155
156156## Backwards Compatibility
157157
@@ -164,7 +164,7 @@ Clients:
164164This NIP extends NIP-29:
165165
166166- Channels are relay-scoped, inside groups
167- - ` i ` tag references channels ( ` c ` )
167+ - ` c ` tag references channels
168168- Introduces kind:39010 for channel metadata; messages remain kind:9
169169- Compatible with existing NIP-29 clients
170170
@@ -178,7 +178,7 @@ This NIP is independent from NIP-28 and does not reuse its event kinds or semant
178178
179179## Indexers and Search Relays
180180
181- Indexers SHOULD index ` h ` (group) and ` i ` (channel) for efficient queries.
181+ Indexers SHOULD index ` h ` (group) and ` c ` (channel) for efficient queries.
182182
183183- Queries can filter by group or channel without duplicating events
184184- Backfill from existing kind:9 messages is straightforward
@@ -194,7 +194,7 @@ Indexers SHOULD index `h` (group) and `i` (channel) for efficient queries.
194194** Messages in specific channel:**
195195
196196``` json
197- {"kinds" :[9 ],"#h" :[" dev-nostr" ],"#i " :[" general" ]}
197+ {"kinds" :[9 ],"#h" :[" dev-nostr" ],"#c " :[" general" ]}
198198```
199199
200200## Edge Cases
@@ -204,7 +204,7 @@ Indexers SHOULD index `h` (group) and `i` (channel) for efficient queries.
204204- ** Message sent to unknown channel** → relay SHOULD reject
205205- ** Forked relay** → channels may differ; clients SHOULD NOT assume equivalence across relays
206206- ** Client without support** → sees all messages in single timeline
207- - ** Reactions** (kind 7) → SHOULD include same ` i ` tag as parent message to maintain context
207+ - ** Reactions** (kind 7) → SHOULD include same ` c ` tag as parent message to maintain context
208208
209209## Conclusion
210210
0 commit comments