From 133d7f9df8a5302085dfd5871e624380c4412a03 Mon Sep 17 00:00:00 2001 From: fiatjaf Date: Wed, 11 Mar 2026 09:36:16 -0300 Subject: remove pubkey rule about the JWT 'sub' field, define kind:39004 for live participants. --- 29.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/29.md b/29.md index ee74aef..cc8a0d4 100644 --- a/29.md +++ b/29.md @@ -58,8 +58,6 @@ The `Authorization` event should be of kind `27235` and contain a tag `["u", "ht Relays should enforce access control at the LiveKit JWT creation time according to the group settings. -Relays MUST set the `sub` property on the issued JWT (called "identity" in the standard LiveKit libraries) to the requesting user's lowercase hexadecimal public key. - In order to inform clients about relay support for AV (so they can display that option for users when creating or editing groups) relays should serve a status code `204` at `https://relay.tld/.well-known/nip29/livekit`. ## Event definitions @@ -234,6 +232,27 @@ The process through which the relay decides what roles to support and how to han } ``` +- *livekit participants* (`kind:39004`) (optional) + +This is an event that MAY be published by the relay informing users and clients about who is live in an AV room. + +This should be updated whenever a new user leaves or joins a group, clients are expected to be actively subscribed to it. + +The event MUST contain zero or more `participant` tags with the participant's public key as lowercase hex and their identity in the LiveKit context (the identity is defined by the relay at JWT creation time and recorded in the JWT `sub` field). + +```jsonc +{ + "kind": 39004, + "content": "", + "tags": [ + ["d", ""], + ["participant", "", ""], + // other participants... + ], + // other fields... +} +``` + ## Implementation quirks ### Checking your own membership in a group -- cgit v1.2.3