This document provides a comprehensive list of all standard and commonly-used Nostr event kinds.
Metadata - User profile information (name, about, picture, etc.)- Replaceable - Content: JSON with profile fields
Text Note - Short-form post (like a tweet)- Regular event (not replaceable) - Most common event type
Recommend Relay - Deprecated, use NIP-65 insteadContacts - Following list with optional relay hints - Replaceable
- Tags: p tags for each followed user
Encrypted Direct Message - Private message (NIP-04, deprecated)- Regular event - Use NIP-44 instead for better security
Event Deletion - Request to delete events - Tags: e tags for events to delete
- Only works for own events
Repost - Share another event - Tags: e for reposted event, p for original author
- May include original event in content
Reaction - Like, emoji reaction to event - Content: "+" or emoji
- Tags: e for reacted event, p for author
Channel Creation - Create a public chat channelChannel Metadata - Set channel name, about, pictureChannel Message - Post message in channelChannel Hide Message - Hide a message in channelChannel Mute User - Mute a user in channelRegular events are never deleted or replaced. All versions are kept.
Example regular eventFile Metadata (NIP-94) - Metadata for shared files- Tags: url, MIME type, hash, size, dimensions
Only the latest event of each kind is kept per pubkey.
Mute List - List of muted users/contentPin List - Pinned eventsRelay List Metadata (NIP-65) - User's preferred relays - Critical for routing
- Tags: r with relay URLs and read/write markers
Not stored by relays, only forwarded once.
Example ephemeral eventTyping Indicator - User is typingClient Authentication (NIP-42) - Auth response to relayReplaced based on d tag value.
Categorized People List - Custom people lists - d tag: list identifier
- p tags: people in list
Categorized Bookmark List - Bookmark collections - d tag: list identifier
- e or a tags: bookmarked items
Badge Definition (NIP-58) - Define a badge/achievement - d tag: badge ID
- Tags: name, description, image
Profile Badges (NIP-58) - Badges displayed on profile - d tag: badge ID
- e or a tags: badge awards
Long-form Article (NIP-23) - Blog post, article - d tag: article identifier (slug)
- Tags: title, summary, published_at, image
- Content: Markdown
Application-specific Data (NIP-78) - d tag: app-name:data-key
- Content: app-specific data (may be encrypted)
Application Handler Information (NIP-89)- Declares app can handle certain event kinds
Handler Recommendation (NIP-89)- User's preferred apps for event kinds
Client Authentication - Prove key ownership to relayNostr Connect - Remote signer protocol (NIP-46)Zap Request (NIP-57) - Request Lightning payment- Not published to regular relays - Sent to LNURL provider
Zap Receipt (NIP-57) - Proof of Lightning payment- Published by LNURL provider - Proves zap was paid
Wallet Request (NIP-47) - Request wallet operationWallet Response (NIP-47) - Response to wallet requestReporting (NIP-56) - Report content/users- Tags: reason (spam, illegal, etc.)
Highlights (NIP-84) - Highlight text- Content: highlighted text - Tags: context, source event
Badge Award (NIP-58) - Award a badge to someone - Tags: a for badge definition, p for recipient
Generic Repost (NIP-18) - Repost any event kind- More flexible than kind 6
HTTP Auth (NIP-98) - Authenticate HTTP requests- Tags: URL, method
| Range | Type | Behavior | Examples |
|---|---|---|---|
| 0-999 | Core | Varies | Metadata, notes, reactions |
| 1000-9999 | Regular | Immutable, all kept | File metadata |
| 10000-19999 | Replaceable | Only latest kept | Mute list, relay list |
| 20000-29999 | Ephemeral | Not stored | Typing, presence |
| 30000-39999 | Parameterized Replaceable | Replaced by d tag | Articles, lists, badges |
Event A published → Stored
Event A' published → Both A and A' stored
Event A published → Stored
Event A' published (same kind, same pubkey) → A deleted, A' stored
Event A (d="foo") published → Stored
Event B (d="bar") published → Both stored (different d)
Event A' (d="foo") published → A deleted, A' stored (same d)
Event A published → Forwarded to subscribers, NOT stored
{
"kind": 0,
"content": "{\"name\":\"Alice\",\"about\":\"Nostr user\",\"picture\":\"https://...\",\"nip05\":\"alice@example.com\"}",
"tags": []
}
{
"kind": 1,
"content": "Hello Nostr!",
"tags": [
["t", "nostr"],
["t", "hello"]
]
}
{
"kind": 1,
"content": "Great post!",
"tags": [
["e", "<root-event-id>", "<relay>", "root"],
["e", "<parent-event-id>", "<relay>", "reply"],
["p", "<author-pubkey>"]
]
}
{
"kind": 7,
"content": "+",
"tags": [
["e", "<reacted-event-id>"],
["p", "<event-author-pubkey>"],
["k", "1"]
]
}
{
"kind": 30023,
"content": "# My Article\n\nContent here...",
"tags": [
["d", "my-article-slug"],
["title", "My Article"],
["summary", "This is about..."],
["published_at", "1234567890"],
["t", "nostr"],
["image", "https://..."]
]
}
{
"kind": 10002,
"content": "",
"tags": [
["r", "wss://relay1.com"],
["r", "wss://relay2.com", "write"],
["r", "wss://relay3.com", "read"]
]
}
{
"kind": 9734,
"content": "",
"tags": [
["relays", "wss://relay1.com", "wss://relay2.com"],
["amount", "21000"],
["lnurl", "lnurl..."],
["p", "<recipient-pubkey>"],
["e", "<event-id>"]
]
}
{
"kind": 1063,
"content": "My photo from the trip",
"tags": [
["url", "https://cdn.example.com/image.jpg"],
["m", "image/jpeg"],
["x", "abc123..."],
["size", "524288"],
["dim", "1920x1080"],
["blurhash", "LEHV6n..."]
]
}
{
"kind": 1984,
"content": "This is spam",
"tags": [
["e", "<reported-event-id>", "<relay>"],
["p", "<reported-pubkey>"],
["report", "spam"]
]
}
The event kind space is open-ended. New NIPs may define new event kinds.
Guidelines for new event kinds:
Custom event kinds:
Choose based on lifecycle needs:
- User posts, comments, reactions - Payment records, receipts - Immutable records
- User settings, preferences - Mute/block lists - Current status
- Typing indicators - Online presence - Temporary notifications
- Articles (one per slug) - Product listings (one per product ID) - Configuration sets (one per setting name)