upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/53.md
diff options
context:
space:
mode:
authorVitor Pamplona <vitor@vitorpamplona.com>2025-09-04 10:50:33 -0400
committerGitHub <noreply@github.com>2025-09-04 11:50:33 -0300
commit3760a6e3085b9ad7422e99c5b2045c6f3602fb2d (patch)
treecf972727af6a29f087e8d3f047ef11452187600b /53.md
parent8c45ff5d964d6d9bf329c72713e43c89c060de09 (diff)
NIP-53 Text Refinements and formatting fixes (#2052)
Diffstat (limited to '53.md')
-rw-r--r--53.md49
1 files changed, 21 insertions, 28 deletions
diff --git a/53.md b/53.md
index d64f3ef..523a998 100644
--- a/53.md
+++ b/53.md
@@ -6,13 +6,13 @@ Live Activities
6 6
7`draft` `optional` 7`draft` `optional`
8 8
9Service providers want to offer live activities to the Nostr network in such a way that participants can easily log and query by clients. This NIP describes a general framework to advertise the involvement of pubkeys in such live activities. 9This NIP introduces event kinds to advertise live spaces and the participation of pubkeys in them.
10 10
11## Concepts 11## Live Streaming
12 12
13### Live Event 13A special event with `kind:30311` "Live Streaming Event" is defined as an _addressable event_ whose tags advertise the content and participats of a live stream.
14 14
15A special event with `kind:30311` "Live Event" is defined as an _addressable event_ of public `p` tags. Each `p` tag SHOULD have a **displayable** marker name for the current role (e.g. `Host`, `Speaker`, `Participant`) of the user in the event and the relay information MAY be empty. This event will be constantly updated as participants join and leave the activity. 15Each `p` tag SHOULD have a **displayable** marker name for the current role (e.g. `Host`, `Speaker`, `Participant`) of the user in the event and the relay information MAY be empty. This event will be constantly updated as participants join and leave the activity.
16 16
17For example: 17For example:
18 18
@@ -69,7 +69,7 @@ Event `kind:1311` is live chat's channel message. Clients MUST include the `a` t
69{ 69{
70 "kind": 1311, 70 "kind": 1311,
71 "tags": [ 71 "tags": [
72 ["a", "30311:<Community event author pubkey>:<d-identifier of the community>", "<Optional relay url>", "root"], 72 ["a", "30311:<Community event author pubkey>:<d-identifier of the community>", "<Optional relay url>"],
73 ], 73 ],
74 "content": "Zaps to live streams is beautiful.", 74 "content": "Zaps to live streams is beautiful.",
75 // other fields... 75 // other fields...
@@ -84,13 +84,9 @@ Event `kind:1311` is live chat's channel message. Clients MUST include the `a` t
84 84
85Hosts may choose to pin one or more live chat messages by updating the `pinned` tags in the live event kind `30311`. 85Hosts may choose to pin one or more live chat messages by updating the `pinned` tags in the live event kind `30311`.
86 86
87## Use Cases 87### Examples
88 88
89Common use cases include meeting rooms/workshops, watch-together activities, or event spaces, such as [zap.stream](https://zap.stream). 89#### Live Streaming
90
91## Example
92
93### Live Streaming
94 90
95```json 91```json
96{ 92{
@@ -114,7 +110,7 @@ Common use cases include meeting rooms/workshops, watch-together activities, or
114} 110}
115``` 111```
116 112
117### Live Streaming chat message 113#### Live Streaming chat message
118 114
119```json 115```json
120{ 116{
@@ -130,18 +126,13 @@ Common use cases include meeting rooms/workshops, watch-together activities, or
130} 126}
131``` 127```
132 128
133## Interactive Rooms and Meetings 129## Meeting Spaces
134-----
135
136`draft` `optional`
137 130
138Service providers want to offer Interactive Rooms to the Nostr network in such a way that participants can easily log and query by clients. This NIP describes a general framework to advertise rooms and their associated events. 131Meeting spaces contain one or more video/audio rooms where users can join and participate in the streaming.
139 132
140## Concepts 133### Meeting Space Event (kind:30312)
141 134
142### Interactive Room (kind:30312) 135A special event with `kind:30312` "Space Host" defines the configuration and properties of a virtual interactive space. Each space has a unique identifier and can host multiple events/meetings.
143
144A special event with `kind:30312` "Interactive Room" defines the configuration and properties of a virtual interactive space. Each room has a unique identifier and can host multiple events/meetings.
145 136
146```jsonc 137```jsonc
147{ 138{
@@ -162,19 +153,20 @@ A special event with `kind:30312` "Interactive Room" defines the configuration a
162} 153}
163``` 154```
164 155
165Room properties: 156Space properties:
166* MUST be either open, private or closed. Closed means the room is not in operation. 157* MUST be either open, private or closed. Closed means the room is not in operation.
167* MAY specify access control policy for private rooms (e.g. invite-only, payment required) 158* MAY specify access control policy for private rooms (e.g. invite-only, payment required)
168* MAY persist when not in use 159* MAY persist when not in use
169* MUST have at least one provider with "Host" role 160* MUST have at least one provider with "Host" role
170* MAY have multiple providers with different roles 161* MAY have multiple providers with different roles
162
171Provider roles (p tags): 163Provider roles (p tags):
172* Host: Full room management capabilities 164* Host: Full room management capabilities
173* Moderator: Room moderation capabilities 165* Moderator: Room moderation capabilities
174* Speaker: Allowed to present/speak 166* Speaker: Allowed to present/speak
175* Optional proof field for role verification 167* Optional proof field for role verification
176 168
177### Room Meeting (kind:30313) 169### Meeting Room Events (kind:30313)
178 170
179A special event with kind:30313 represents a scheduled or ongoing meeting within a room. It MUST reference its parent room using the d tag. 171A special event with kind:30313 represents a scheduled or ongoing meeting within a room. It MUST reference its parent room using the d tag.
180 172
@@ -183,7 +175,7 @@ A special event with kind:30313 represents a scheduled or ongoing meeting within
183 "kind": 30313, 175 "kind": 30313,
184 "tags": [ 176 "tags": [
185 ["d", "<event-unique-identifier>"], // Required: Event identifier 177 ["d", "<event-unique-identifier>"], // Required: Event identifier
186 ["a", "30312:<pubkey>:<room-id>", "wss://nostr.example.com"], // Required: Reference to parent room, 'd' from 30312 178 ["a", "30312:<pubkey>:<room-id>", "wss://nostr.example.com"], // Required: Reference to parent space, 'd' from 30312
187 ["title", "<meeting-title>"], // Required: Meeting title 179 ["title", "<meeting-title>"], // Required: Meeting title
188 ["summary", "<description>"], // Optional: Meeting description 180 ["summary", "<description>"], // Optional: Meeting description
189 ["image", "<preview image url>"], // Optional: Meeting image 181 ["image", "<preview image url>"], // Optional: Meeting image
@@ -204,14 +196,15 @@ Event properties:
204* MUST have a start time 196* MUST have a start time
205* MAY track participant counts 197* MAY track participant counts
206* MAY include participant roles specific to the event 198* MAY include participant roles specific to the event
199
207Event management: 200Event management:
208* Clients SHOULD update event status regularly when live 201* Clients SHOULD update event status regularly when live
209* Events without updates for 1 hour MAY be considered ended 202* Events without updates for 1 hour MAY be considered ended
210* starts and ends timestamps SHOULD be updated when status changes 203* starts and ends timestamps SHOULD be updated when status changes
211 204
212Examples 205### Examples
213 206
214Interactive Room (kind:30312) 207#### Meeting Space (kind:30312)
215 208
216```jsonc 209```jsonc
217{ 210{
@@ -233,7 +226,7 @@ Interactive Room (kind:30312)
233} 226}
234``` 227```
235 228
236Conference Event (kind:30313) 229#### Meeting room (kind:30313)
237 230
238```jsonc 231```jsonc
239{ 232{
@@ -254,7 +247,7 @@ Conference Event (kind:30313)
254 "content": "" 247 "content": ""
255} 248}
256``` 249```
257## Room Presence 250### Room Presence
258 251
259New `kind: 10312` provides an event which signals presence of a listener. 252New `kind: 10312` provides an event which signals presence of a listener.
260 253