Appearance
Kind 39000: Group Metadata
Overview
This event contains metadata about a relay-based group, including its name, picture, description, and visibility settings. It is generated and signed by the relay itself and serves as an authoritative source of information about the group.
Specification
Property | Value |
---|---|
Kind Number | 39000 |
Event Range | Addressable |
Defined in | NIP-29 |
Content Format
The content
field is typically empty, as the metadata is stored in tags.
Schema
""
Tags
Tag Name | Description | Format | Required |
---|---|---|---|
d | Group identifier | ["d", "<group-id>"] | Yes |
name | Group name | ["name", "<group-name>"] | No |
picture | Group picture URL | ["picture", "<picture-url>"] | No |
about | Group description | ["about", "<description>"] | No |
public or private | Group visibility | ["public"] or ["private"] | No |
open or closed | Group join policy | ["open"] or ["closed"] | No |
Client Behavior
Clients should use this event to display information about the group, such as its name, picture, and description. They should also use the visibility and join policy tags to determine how to handle group access and join requests.
When this event is not found, clients may still connect to the group but should treat it as having a different status: unmanaged
.
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 should create or update this event when:
- A new group is created (kind 9007).
- Group metadata is updated via a kind 9002 event from an authorized user.
If a group is forked and hosted in multiple relays, there will be multiple versions of this event in each different relay.
Use Cases
- Displaying group information in client UIs.
- Determining whether a group is public or private.
- Determining whether new members can freely join or need approval.
Example
json
{
"id": "...",
"pubkey": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"created_at": 1671217411,
"kind": 39000,
"tags": [
["d", "vegans-united"],
["name", "Vegans United"],
["about", "A place where vegans fight with each other"],
["picture", "https://vegans-united.com/new-logo.png"],
["public"],
["open"]
],
"content": "",
"sig": "..."
}
References
Related Kinds
- Kind 9002: Group Metadata Edit
- Kind 9007: Group Creation
- Kind 39001: Group Admins
- Kind 39002: Group Members
- Kind 39003: Group Roles
Notes
The public
tag indicates the group can be read by anyone, while private
indicates that only authenticated users can read the group content.
The open
tag signals that anyone can request to join and the request will be automatically granted, while closed
signals that members must be pre-approved or that requests to join will be manually handled.