Skip to content

Kind 39002: Group Members

Overview

This event contains a list of members in a relay-based group. It is generated and signed by the relay itself and provides information about who is currently a member of the group.

Specification

PropertyValue
Kind Number39002
Event RangeAddressable
Defined inNIP-29

Content Format

The content field typically contains a short description of the event, such as "list of members for the [group name] group".

Schema

"list of members for the [group name] group"

Tags

Tag NameDescriptionFormatRequired
dGroup identifier["d", "<group-id>"]Yes
pMember public key["p", "<pubkey-hex>"]Yes

Client Behavior

Clients should use this event to display a list of group members and to verify whether a user is a member of a group. However, clients should not assume this event will always be present or that it will contain a complete list of members, as relays might choose to limit what information is published.

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.

Relays might choose:

  1. Not to publish this information at all.
  2. To restrict what pubkeys can fetch this information.
  3. To only display a subset of the members in it.

Relays should update this event when:

  1. New members join the group via kind 9000 events or approved kind 9021 requests.
  2. Members leave the group via kind 9022 requests or are removed via kind 9001 events.

Use Cases

  • Displaying a member list in the client UI.
  • Checking if a specific user is a member of the group.
  • Creating a directory of group participants.

Example

json
{
  "id": "...",
  "pubkey": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
  "created_at": 1671217411,
  "kind": 39002,
  "tags": [
    ["d", "vegans-united"],
    ["p", "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"],
    ["p", "bcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890a"],
    ["p", "cdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890ab"],
    ["p", "def1234567890abcdef1234567890abcdef1234567890abcdef1234567890abc"]
  ],
  "content": "list of members for the vegan group",
  "sig": "..."
}

References

Notes

According to NIP-29, clients should not assume this event will always be present or that it will contain a complete list of members. This is because relays might choose not to publish this information, to restrict who can fetch it, or to only display a subset of the members for privacy or performance reasons.

In unmanaged groups (groups without proper relay support for NIP-29), everybody is considered to be a member, and this event may not be present.