Skip to main content
0

Metadata

replaceableNIP-01

content: JSON string: {"name":"...","about":"...","picture":"...","nip05":"...","lud16":"..."}

Kind 0 is the user metadata event – the Nostr equivalent of a profile page. Contains name, display name, picture URL, about/bio, NIP-05 identifier, Lightning address (lud16), and banner. Replaceable – only the latest event by each pubkey is kept. Clients fetch kind 0 when they encounter a pubkey for the first time.

Details

Kind 0 (metadata) is a replaceable event – relays store only the most recent kind 0 per public key. Older metadata events are discarded when a newer one arrives with a higher created_at.

The content is a JSON-serialized string (not an object – it is a string containing JSON). This nesting is intentional: the outer event is the signed envelope, the content field is the profile data.

Common content fields: name: short username/handle display_name: longer display name (can include spaces/emoji) picture: avatar image URL banner: profile header/cover image URL about: bio text website: personal website URL nip05: NIP-05 verified identifier ([email protected] format, for domain verification) lud06: LNURL-pay for Lightning tips (older format) lud16: Lightning address ([email protected] format, preferred over lud06)

NIP-05 verification: the nip05 field contains a '[email protected]' style identifier. Clients verify it by fetching https://domain.com/.well-known/nostr.json?name=user and confirming the pubkey is listed. This provides a human-readable, domain-verifiable identity tied to the Nostr pubkey.

Required Event Fields

idpubkeycreated_atkind: 0content (JSON string)

Examples

Kind 0 metadata event
{
  "kind": 0,
  "pubkey": "hex-public-key",
  "created_at": 1700000000,
  "tags": [],
  "content": "{\"name\":\"alice\",\"display_name\":\"Alice\",\"about\":\"Nostr dev\",\"picture\":\"https://example.com/alice.jpg\",\"nip05\":\"[email protected]\",\"lud16\":\"[email protected]\"}",
  "id": "...",
  "sig": "..."
}
NIP-05 verification endpoint
# GET https://example.com/.well-known/nostr.json?name=alice
{
  "names": {
    "alice": "hex-public-key-of-alice"
  },
  "relays": {
    "hex-public-key-of-alice": [
      "wss://relay.damus.io",
      "wss://nos.lol"
    ]
  }
}

See Also