Skip to content

Commit 1d12c12

Browse files
NIP-91: Change channel tag from i to c in kind 9 to avoid conflict with NIP-73
1 parent 3852fa0 commit 1d12c12

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

91.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ NIP-29 provides group structure, membership, and relay-scoped moderation. As gro
1616
This 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:
164164
This 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

Comments
 (0)