Appearance
Kind 39003: Group Roles
Overview
This event defines the administrative roles that are supported by a relay-based group and their descriptions. It is generated and signed by the relay itself and provides information about what different roles can do within the group.
Specification
Property | Value |
---|---|
Kind Number | 39003 |
Event Range | Addressable |
Defined in | NIP-29 |
Content Format
The content
field typically contains a short description of the event, such as "list of roles supported by this group".
Schema
"list of roles supported by this group"
Tags
Tag Name | Description | Format | Required |
---|---|---|---|
d | Group identifier | ["d", "<group-id>"] | Yes |
role | Role name and description | ["role", "<role-name>", "<optional-description>"] | Yes |
Client Behavior
Clients should use this event to understand what roles are available in a group and what they mean. This information can be used to display role descriptions in the client UI and to inform users about the group's administrative structure.
Relay Behavior
This event MUST be generated and signed by the relay's master key. Relays shouldn't accept these events if they're signed by anyone else.
This is an optional event that MAY be published by the relay to inform users and clients about what roles are supported according to the relay's internal logic.
The process through which the relay decides what roles to support and how to handle moderation events internally based on them is specific to each relay and not standardized in NIP-29.
Use Cases
- Displaying role information and descriptions in the client UI.
- Informing users about available administrative positions.
- Documenting the permissions hierarchy within a group.
Example
json
{
"id": "...",
"pubkey": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"created_at": 1671217411,
"kind": 39003,
"tags": [
["d", "vegans-united"],
["role", "ceo", "Can edit group metadata, delete messages, and remove users"],
["role", "moderator", "Can delete messages"],
["role", "gardener", "Can manage topic tags and organize content"],
["role", "secretary", "Can manage group membership"]
],
"content": "list of roles supported by this group",
"sig": "..."
}
References
Related Kinds
Notes
According to NIP-29, the exact role names and their associated permissions are not standardized. Each relay may define its own role names (such as "admin", "moderator", "ceo", "secretary", etc.) and decide what actions each role is allowed to perform.
This event helps clarify the group's administrative structure by providing descriptions for each role, but the actual enforcement of role permissions is handled internally by the relay.