NIP-29 Groups
Closed chat spaces where only members can write — moderation events and relay-signed snapshots.
Enabling groups
- Run
nostrfy genkeyto setrelay.private_key(required — group metadata is not generated without it). - Restart the relay.
How groups work
Groups are created and moderated by events. From these moderation events the relay generates relay-signed snapshots that clients use for display:
| Event | Description |
|---|---|
kind:9007 | Create group (the creator becomes the admin) |
kind:9000 / 9001 | Add member (with roles) / remove member |
kind:9002 | Edit metadata (name, description, public/private, ...) |
kind:9005 | Delete event (moderation) |
kind:9008 | Delete group (its stored events are purged) |
kind:9009 | Create invite code |
kind:9010 | Update pin list |
kind:9021 / 9022 | Join request / leave request |
Relay-signed snapshots
kind:39000— group metadata (name, visibility settings, ...)kind:39001— admin listkind:39002— member listkind:39005— pinned events
Group visibility settings
| Tag | Meaning |
|---|---|
private | Only members can read messages |
restricted | Only members can write |
hidden | Metadata is hidden from non-members |
closed | Join requests are not auto-approved (invite codes required) |
livekit | The group has a LiveKit audio/video room |
Subgroups
Groups can be hierarchical — nested with parent / child tags. Cycles are
rejected automatically.