Appearance
Kind 0: User Metadata
Overview
Kind 0 events represent user metadata in the Nostr protocol. These events contain profile information for Nostr users, allowing them to share details about themselves with the network.
Specification
Property | Value |
---|---|
Kind Number | 0 |
Event Range | Replaceable |
Defined in | NIP-01, NIP-24, NIP-57 |
Content Format
The content
field must be a stringified JSON object containing user profile information.
Schema
json
{
"name": "<nickname or full name>",
"about": "<short bio>",
"picture": "<URL of profile picture>",
"display_name": "<alternative, bigger name with richer characters>",
"website": "<web URL related to the event author>",
"banner": "<URL to a wide (~1024x768) picture for profile background>",
"bot": true,
"birthday": {
"year": 1990,
"month": 1,
"day": 1
},
"lud06": "<LNURL pay request (bech32-encoded)>",
"lud16": "<Lightning Address>"
}
Tags
Kind 0 events typically do not require specific tags, though custom tags may be added.
Client Behavior
Clients should:
- Parse the JSON content to display user profiles.
- Store and cache user metadata for known users.
- Update cached metadata when newer events are received.
- Use fallback mechanisms when specific fields are missing.
Relay Behavior
Relays should:
- Only store the latest kind 0 event for each pubkey.
- Older versions of kind 0 events for the same pubkey may be discarded.
- When answering requests for kind 0 events, return only the latest one even if multiple versions are stored.
Use Cases
- Setting up a user profile.
- Updating profile information.
- Sharing contact details.
- Building user directories.
- Creating discoverable user information.
Example
Basic Example
json
{
"id": "fa5ed84fc8eeb959fd39ad8e48388cfc33075991ef8e50064cfcecfd918bb91b",
"pubkey": "79dff8f82963424e0bb02708a22e44b4980893e3a4be0fa3cb60a43b946764e3",
"created_at": 1672068534,
"kind": 0,
"tags": [],
"content": "{\"name\":\"Alex\",\"about\":\"Nostr enthusiast\",\"picture\":\"https://example.com/profile.jpg\"}",
"sig": "55c7e9ab1f5c499b984ca78a53a63158771cf9dd516377c7a9726511afcb858144eac63394262d44c5135b9e3c19733835a5d397a725c6aedf73b3895423cda0"
}
Example with NIP-24 Fields
json
{
"id": "fa5ed84fc8eeb959fd39ad8e48388cfc33075991ef8e50064cfcecfd918bb91b",
"pubkey": "79dff8f82963424e0bb02708a22e44b4980893e3a4be0fa3cb60a43b946764e3",
"created_at": 1672068534,
"kind": 0,
"tags": [],
"content": "{\"name\":\"Alex\",\"about\":\"Nostr enthusiast\",\"picture\":\"https://example.com/profile.jpg\",\"display_name\":\"Alexander Smith\",\"website\":\"https://example.com\",\"banner\":\"https://example.com/banner.jpg\",\"bot\":false,\"birthday\":{\"year\":1990,\"month\":1,\"day\":1},\"lud06\":\"lnurl1dp68gurn8ghj7um5v93kketj9ehx2amn9uh8wetvdskkkmn0wahz7mrww4excup0dajx2mrv92x9xp\",\"lud16\":\"[email protected]\"}",
"sig": "55c7e9ab1f5c499b984ca78a53a63158771cf9dd516377c7a9726511afcb858144eac63394262d44c5135b9e3c19733835a5d397a725c6aedf73b3895423cda0"
}
References
Related Kinds
- Kind 3: Contacts List
- Kind 10000+: Similar replaceable event kinds
Notes
While the basic fields (name, about, picture) are standard, applications may support additional fields from NIP-24 or custom fields for specialized use cases.
NIP-24 Fields
The following additional fields are defined in NIP-24:
display_name
: An alternative, bigger name with richer characters thanname
. Thename
field should always be set regardless of the presence ofdisplay_name
.website
: A web URL related in any way to the event author.banner
: An URL to a wide (~1024x768) picture to be optionally displayed in the background of a profile screen.bot
: A boolean to clarify that the content is entirely or partially the result of automation, such as with chatbots or newsfeeds.birthday
: An object representing the author's birth date. The format is{ "year": number, "month": number, "day": number }
. Each field MAY be omitted.
NIP-57 Fields
The following additional fields are defined in NIP-57 for Lightning Zaps:
lud06
: A bech32-encoded LNURL pay request URL. This is used by clients to request a Lightning invoice for sending zaps.lud16
: A Lightning Address (in the format[email protected]
). This is an alternative tolud06
that clients can use to generate a Lightning invoice for sending zaps.
Deprecated Fields
The following fields are deprecated according to NIP-24 and should be ignored or removed when found:
displayName
: Usedisplay_name
instead.username
: Usename
instead.