Skip to content

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

PropertyValue
Kind Number39003
Event RangeAddressable
Defined inNIP-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 NameDescriptionFormatRequired
dGroup identifier["d", "<group-id>"]Yes
roleRole 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

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.