Every piece of content on Nostr is considered an “event.” Every post, like, zap, and profile update is called an event. The “kind” number associated with each event is the single field that tells every app what type of content it is and how to handle it. Kind 1 is a short text note. Kind 7 is a reaction. Kind 9735 is a zap receipt. This guide explains what this system means for non-technical users why it matters when interacting with signers.
Quick Nostr Kind Reference Table
This table covers every kind that directly affects your experience as a Nostr user. Kinds that exist purely for infrastructure, deprecated kinds, and kinds with no end-user-facing function are excluded. NIPs define the rules and event kinds are the manifestation of the rule in practice. For example, NIP-57 describes how zaps work, and kind 9735 is the actual event that gets created every time a zap is sent.
| Kind No. | Name* | NIP | What It Does |
|---|---|---|---|
| 0 | Profile / User Metadata | 01 | Stores your name, bio, profile picture, and other profile fields. Replaceable: Only your latest version is kept. |
| 1 | Short Text Note | 10 | The standard post. Everything you write in a social feed goes out as kind 1. |
| 3 | Follow List | 02 | Your list of followed accounts. Replaceable: Apps read the latest version to build your feed. |
| 5 | Event Deletion Request | 09 | A signed request to relays to delete a specific post you published. |
| 6 | Repost | 18 | Boosts a kind-1 short text note to your followers, with full attribution. |
| 7 | Reaction | 25 | A like, dislike, or emoji reaction to any post. |
| 8 | Badge Award | 58 | Awards a defined badge to a specific account. |
| 9 | Chat Message | C7 | A message in a group chat thread. |
| 11 | Thread | 7D | A threaded conversation root, separate from short text notes. |
| 14 | Direct Message | 17 | An end-to-end encrypted private message. |
| 16 | Generic Repost | 18 | Boosts any event type (not just kind 1) to your followers. |
| 20 | Picture | 68 | An image-first post for apps building photo feed experiences. |
| 21 | Video | 71 | A video post for apps building video feed experiences. |
| 22 | Short-form Portrait Video | 71 | A short vertical video post, equivalent to a Reel or TikTok format. |
| 40 | Channel Creation | 28 | Creates a public group chat channel. |
| 41 | Channel Metadata | 28 | Updates the name, description, or picture of a public channel. |
| 42 | Channel Message | 28 | A single message posted inside a public channel. |
| 62 | Request to Vanish | 62 | A signed request for all relays to delete every event tied to your public key. |
| 818 | Merge Request | 54 | A merge request for a wiki article, for collaborative editing. |
| 1018 | Poll Response | 88 | A vote cast in response to a poll. |
| 1063 | File Metadata | 94 | Metadata record for a file shared on Nostr, including hash, type, and URL. |
| 1068 | Poll | 88 | A standardised poll that any compatible app can display and tally. |
| 1111 | Comment | 22 | A comment on any event type, including articles, pictures, and external content. |
| 1222 | Voice Message | A0 | A short audio message, equivalent to a voice note. |
| 1311 | Live Chat Message | 53 | A message inside the live chat attached to a live stream. |
| 1617 | Git Patch | 34 | A code patch submitted against a git repository hosted on Nostr. |
| 1621 | Git Issue | 34 | An issue filed against a git repository hosted on Nostr. |
| 1984 | Report | 56 | A public flag on a post or account for spam, impersonation, or explicit content. |
| 1985 | Label | 32 | A label attached to any event or profile, used for moderation and categorisation. |
| 4550 | Community Post Approval | 72 | A moderator’s signed approval of a post for display in a community feed. |
| 9041 | Zap Goal | 75 | A public fundraising goal with a target amount that shows live zap progress. |
| 9321 | Nutzap | 61 | A tip sent as redeemable Cashu tokens the recipient claims at any time. |
| 9734 | Zap Request | 57 | A request sent to a Lightning wallet to initiate a zap payment. |
| 9735 | Zap Receipt | 57 | The publicly visible confirmation that a zap was sent, including the amount. |
| 9802 | Highlight | 84 | A highlighted excerpt from any article or web page, published as its own post. |
| 10000 | Mute List | 51 | Your private list of muted accounts. Replaceable. |
| 10001 | Pin List | 51 | Your list of pinned notes. Replaceable. |
| 10002 | Relay List | 65 | Your published list of preferred relays so other apps know where to find your content. |
| 10003 | Bookmark List | 51 | Your private bookmarked posts. Replaceable. |
| 10011 | External Identities | 39 | Links to verified external accounts attached to your profile. |
| 10019 | Nutzap Mint Recommendation | 61 | Announces which Cashu mint you prefer for receiving nutzaps. |
| 10050 | DM Relay List | 17 | Publishes which relays should receive your private direct messages. |
| 13194 | Wallet Info | 47 | Announces that a wallet is available for connection via Nostr Wallet Connect. |
| 17375 | Cashu Wallet Event | 60 | Stores your Cashu wallet state on the Nostr network. |
| 22242 | Client Authentication | 42 | A signed challenge response used to authenticate your client to a relay. |
| 23194 | Wallet Request | 47 | A payment request sent to a connected Lightning wallet. |
| 23195 | Wallet Response | 47 | The wallet’s response confirming or declining a payment request. |
| 24133 | Nostr Connect | 46 | A message between a signing app and another Nostr app during remote signing. |
| 30000 | Follow Sets | 51 | Named, curated lists of accounts you follow. Addressable. |
| 30002 | Relay Sets | 51 | Named collections of relays saved as lists. Addressable. |
| 30003 | Bookmark Sets | 51 | Named bookmark collections. Addressable. |
| 30004 | Curation Sets | 51 | Named curated content collections. Addressable. |
| 30009 | Badge Definition | 58 | Defines a badge: its name, description, and image. Addressable. |
| 30023 | Long-form Article | 23 | A full blog post or article published on Nostr. Addressable. |
| 30030 | Emoji Sets | 51 | A named collection of custom emoji. Addressable. |
| 30078 | App-specific Data | 78 | Arbitrary per-app settings stored on Nostr so they follow you between devices. |
| 30311 | Live Event | 53 | A live audio or video stream, including metadata and status. Addressable. |
| 30315 | User Status | 38 | A short status message on your profile with an optional link and expiry. Addressable. |
| 30402 | Classified Listing | 99 | A buy-or-sell listing with price, description, and location. Addressable. |
| 34550 | Community Definition | 72 | Defines a moderated community: its name, description, and moderator rules. Addressable. |
| 31922 | Date-Based Calendar Event | 52 | A calendar event with a specific date, time, and location. Addressable. |
| 31923 | Time-Based Calendar Event | 52 | A calendar event defined by a time range rather than a single date. Addressable. |
| 31925 | Calendar Event RSVP | 52 | An RSVP response to a calendar event. Addressable. |
| 31989 | App Handler Recommendation | 89 | Recommends a specific app for handling a given content type. Addressable. |
| 31990 | App Handler Info | 89 | An app’s announcement of which content types it supports. Addressable. |
| 34235 | Addressable Video | 71 | A long-form video with a permanent, updateable address. Addressable. |
| 38172 | Cashu Mint Announcement | 87 | An announcement of a Cashu mint for discovery by wallets. Addressable. |
| 39701 | Web Bookmarks | B0 | A collection of saved web URLs stored on Nostr. Addressable. |
*Names simplified for clarity. Official titles may differ.
Understanding Kind Ranges
Nostr apps need to know what to do with an event the moment they receive it. A social app seeing kind 1 knows to display it as a post, seeing kind 9735 knows to display it as a zap receipt, seeing kind 30023 knows to render it as an article. Without the kind number, every app would have to guess what each event is, and nothing would interoperate. There are different types of kinds:
- Regular events (kinds 1-45 and 1000-9999) are stored as-is. Every event is kept.
- Replaceable events (kind 0, kind 3, and kinds 10000-19999) work differently. For each combination of your public key and that kind number, only the most recent event is kept. Older versions are discarded. Updating your name does not stack ten name-change records on the relay. The new profile replaces the old one.
- Ephemeral events (kinds 20000-29999) are not stored at all. They are sent, received, and gone. For example typing indicators and real-time presence signals.
- bAddressable events (kinds 30000-39999) work like replaceable events but with an extra identifier, the “d” tag, so you can have multiple addressable records of the same kind without them overwriting each other. For example, long-form articles have their own unique address, so publishing a new article does not erase the previous ones.
Storing everything permanently would be wasteful and in some cases actually break how the feature is supposed to work. Typing indicators are a great example; if someone types and stops typing 50 times in a conversation, you don’t want 50 permanent records of that on every relay in the network. Ephemeral events are designed to be seen once and discarded, so relays never store them at all.
Identity and Profile
The sections below expand on each kind in the table, grouped by how they function in your daily experience. Identity and profile kinds control how your account is represented and discovered across the Nostr network.
Kind 0: What Is Your Nostr Profile?
Kind 0 is the event that holds your profile information: Your display name, bio, profile picture URL, website, and any other metadata fields apps choose to support. Every time you update your profile in any Nostr app, that app publishes a new kind 0 event signed by your private key. Because kind 0 is a replaceable event, relays only keep the most recent version. Your profile follows you to any app you log into because every app reads the same kind 0 event from your preferred relays.
Kind 10002: How Does Nostr Know Which Servers to Find You On?
Kind 10002 stores your relay list: The list of servers where you publish and read content. Other users’ apps check this list to know where to look for your posts. Without it, apps would have no reliable way to locate your content across the hundreds of available relays. Defined by NIP-65, this is a replaceable event, so your latest relay preferences always win.
Kind 10011: How Do You Link Other Online Accounts to Nostr?
Kind 10011 stores verified links to external platforms on your profile. You can attach a GitHub username, a personal website, or other accounts, with cryptographic proof that the same person controls both. Defined by NIP-39.
Social Feed
These are the kinds that power the core social experience: Posting, following, reacting, and interacting with other users.
Kind 1: What Is a Standard Nostr Post?
Kind 1 is the short text note: the Nostr equivalent of a tweet. Everything you type into the main compose box of any standard Nostr social app becomes a kind 1 event. It is the most common event on the network. Defined by NIP-10.
Kind 3: How Does Your Follow List Work?
Kind 3 stores your complete list of followed public keys. Because it is a replaceable event published to the network, it is not locked inside any single app. Follow someone on one client, open a different client, and your follow list is already there. Defined by NIP-02.
Kind 5: Can You Delete a Nostr Post?
Kind 5 is an event deletion request. When you delete a post in a Nostr app, the app publishes a kind 5 event signed with your private key, referencing the event you want removed. Well-behaved relays honor these requests. Because Nostr has no central server, deletion is a request rather than a guarantee, but mainstream relays respect it. Defined by NIP-09.
Kind 6: How Do Reposts Work?
Kind 6 is a standard repost of a kind-1 short text note, the Nostr equivalent of a retweet. It carries the original event inside it, so any app can display the original content in full with attribution. Defined by NIP-18.
Kind 16: What Is a Generic Repost?
Kind 16 extends the repost concept to any event type, not just kind-1 notes. If you want to boost a long-form article, a picture post, or any other event type to your followers, the app uses kind 16 instead of kind 6. Defined by NIP-18.
Kind 7: How Do Reactions Work?
Kind 7 is a reaction to any post. A “+” is a like. A “-” is a dislike. Any emoji is a custom reaction. Every app that implements NIP-25 reads and counts the same reactions, regardless of which app they were sent from, so reaction counts are consistent across the network.
Kind 1068 and 1018: How Do Polls Work?
Kind 1068 defines a poll. Kind 1018 is a vote in response to a poll. Because both are standard events on the network, any app that implements NIP-88 can display the same poll and tally votes sent from any other compatible app. Vote counts are aggregated across the entire network, not just inside one app.
Kind 62: How Do You Delete Your Entire Nostr Account?
Kind 62 is a “request to vanish.” It is a single signed event asking every relay to delete all events associated with your public key. Because it is signed by your private key, relays can verify the request is genuine. Well-behaved relays will comply. It is the closest thing Nostr has to a full account deletion. Defined by NIP-62.
Messaging
These kinds handle private and direct communication between Nostr users.
Kind 14: How Are Private Messages Kept Private?
Kind 14 is the current standard for end-to-end encrypted direct messages on Nostr, defined by NIP-17. Messages are encrypted using your private key before leaving your device. No relay or third party can read the content in transit or storage. NIP-17 wraps messages in additional layers (using kind 13 seal and kind 1059 gift wrap events) to protect not just the content but also the metadata of who is communicating with whom, unlike the now depreciated NIP-04.
Kind 10050: Where Do Your Private Messages Go?
Kind 10050 is a relay list specifically for receiving direct messages. It tells other users’ apps which relays to use when sending you a private message. Without it, senders would have to guess which of your relays accepts incoming DMs.
Content
These kinds define dedicated formats for rich content beyond short text notes, including articles, images, video, and audio.
Kind 30023: Can You Publish Long Articles on Nostr?
Kind 30023 defines long-form content: Full blog posts and articles published on Nostr. Because it is an addressable event, each article has a unique, permanent address that can be shared and linked. Apps like Habla and Yakihonne are built on this standard. Articles are stored on relays like any other event and are readable from any compatible client. Defined by NIP-23.
Kind 20: What Is a Picture Post?
Kind 20 defines an image-first post, separate from a text note with an attached image. Apps use it to build feeds where the image is the primary content, displayed in a grid or gallery. A kind-20 post signals to apps that the image is the content, not an attachment to text. Defined by NIP-68.
Kind 21 and 22: What Are Video Posts?
Kind 21 is a standard video post for apps building video feed experiences. Kind 22 is a short-form portrait video, equivalent to a Reel or TikTok. Both are defined by NIP-71. A kind-34235 addressable video is a long-form video with a permanent address that can be updated.
Kind 9802: What Are Highlights?
Kind 9802 lets you publish a highlighted excerpt from any article or web page as its own Nostr post, with a reference to the source. The highlight travels through the network as a standard event and can be reacted to, quoted, and shared. Apps that support NIP-84 render highlights as pull quotes with attribution.
Kind 1111: What Is a Comment?
Kind 1111 is a general-purpose comment that can attach to any event type on Nostr, including articles, pictures, videos, and external web content. It is more flexible than a kind-1 reply, which is designed specifically for text note threads. Defined by NIP-22.
Kind 1063: What Is File Metadata?
Kind 1063 is a metadata record for a file shared on Nostr. It includes the file’s hash, MIME type, size, and URL, so any app can verify the file has not been tampered with and display it correctly. Defined by NIP-94.
Kind 1222: What Is a Voice Message?
Kind 1222 is a short audio message, equivalent to a voice note in a messaging app. Any Nostr app that implements NIP-A0 can play it.
Kind 30315: What Is a User Status?
Kind 30315 lets you publish a short status on your profile with an optional link and expiry time, similar to a status message in a messaging app. Apps that support NIP-38 display this status alongside your name.
Community
These kinds support group spaces, shared conversations, live events, and community-driven content on Nostr.
Kind 40, 41, 42: How Do Public Chat Channels Work?
Kind 40 creates a public chat channel. Kind 41 updates its metadata (name, description, image). Kind 42 is a message posted inside it. Together, these three kinds make up the NIP-28 public channel system: a persistent group conversation that anyone can join and read from any compatible Nostr client.
Kind 9: What Is a Chat Message in NIP-C7?
Kind 9 is a chat message in the NIP-C7 group chat system, a newer and more flexible standard than NIP-28 channels. It is designed for apps building group messaging experiences with threading support.
Kind 30311: How Does Live Streaming Work?
Kind 30311 is a live event record: it announces a live audio or video stream, including the stream URL, title, description, and whether the stream is active. Any NIP-53-compatible app can discover and display it. Live chat messages sent during the stream are kind-1311 events. Apps like Zap.stream are built on this standard.
Kind 31922, 31923, 31925: How Do Calendar Events Work?
Kind 31922 is a date-based calendar event (a specific day or range of days). Kind 31923 is a time-based calendar event (a specific time range). Kind 31925 is an RSVP. Together, defined by NIP-52, these let anyone publish and discover events with dates, times, and locations on Nostr. The event record is decentralised: no single platform controls or can remove it.
Kind 34550: What Are Nostr Communities?
Kind 34550 defines a moderated community: a topic-focused space where a designated moderator approves posts before they appear in the community feed. Kind 4550 is a moderator’s signed approval of a submitted post. Communities can be created by anyone, and moderation authority belongs to whoever holds the community’s key. Defined by NIP-72.
Kind 30402: What Are Classified Listings?
Kind 30402 defines a buy-or-sell listing with a title, description, price, currency, and location. Any Nostr marketplace app that implements NIP-99 can display listings published by any other compatible app. It is a decentralised classifieds system with no central platform and no commission layer.
Money
These kinds handle Bitcoin Lightning payments, Cashu electronic cash, and wallet connectivity on Nostr.
Kind 9734 and 9735: What Are Zaps?
Kind 9734 is a zap request: The event your app sends to your Lightning wallet to initiate a Bitcoin Lightning payment to a post or person. Kind 9735 is the zap receipt: The publicly visible confirmation published once the payment completes. The receipt includes the amount, the sender, and a reference to what was zapped, so any app can display it. Defined by NIP-57.
Kind 9041: What Are Zap Goals?
Kind 9041 defines a public fundraising goal. You publish a target amount and description; others zap toward it, and any compatible app displays live progress. It functions as a lightweight crowdfunding mechanism built directly into the Nostr feed. Defined by NIP-75.
Kind 23194 and 23195: How Does Nostr Wallet Connect Work?
Kind 23194 is a payment request sent by a Nostr app to a connected Lightning wallet. Kind 23195 is the wallet’s response. Together with kind 13194 (wallet info), these make up the NIP-47 Nostr Wallet Connect system, which lets you grant a Nostr app permission to send zaps up to a limit you set, without the app ever seeing your private key.
Kind 17375 and 7375: What Is a Cashu Wallet on Nostr?
Kind 17375 stores your Cashu wallet state encrypted on the Nostr network. Kind 7375 stores the actual Cashu token proofs. Together, defined by NIP-60, they make it possible to hold and spend Cashu electronic cash from within Nostr apps without needing a separate standalone wallet app.
Identity and Signing
These kinds handle how your private key authorises actions across apps without being exposed.
Kind 24133: What Is Remote Signing?
Kind 24133 is the message type used between a signing app and a Nostr app during remote signing (NIP-46, also called Nostr Connect). When you use a dedicated signing app like Nsec.app to keep your private key separate from the apps you log into, kind-24133 events carry the signature requests and approvals back and forth. The apps you log into never see your private key.
Kind 22242: What Is Client Authentication?
Kind 22242 is a signed challenge response used to prove to a relay that you control a given public key. Some relays require this before allowing you to write events or access restricted content. Defined by NIP-42.
Lists and Discovery
These kinds store your personal lists and help apps find the right content and tools for you.
Kind 10000-10030 Range: How Do Your Lists and Bookmarks Work?
NIP-51 defines a family of replaceable list events in the 10000-range. Each kind stores a specific type of list: Kind 10000 is your mute list, kind 10001 is your pin list, kind 10003 is your bookmark list, kind 10005 is your list of public chats, kind 10030 is your custom emoji list, and so on. Because these are replaceable events published to the network, they follow you to any Nostr app you log into. Your muted accounts are muted everywhere. Your bookmarks are available everywhere.
Kind 30000-30030 Range: What Are Named Sets?
The 30000-range kinds are addressable versions of lists, meaning you can have multiple named collections of the same type without them overwriting each other. Kind 30000 is a named follow set (a curated list of accounts around a theme). Kind 30002 is a named relay set. Kind 30003 is a named bookmark set. Kind 30004 is a curation set. Kind 30030 is a named emoji set. All are defined by NIP-51.
Kind 31989 and 31990: How Does Nostr Know Which App to Open a Post In?
Kind 31990 is an app’s announcement of which event kinds and content types it supports. Kind 31989 is a recommendation pointing to a specific app for a specific content type. Together, defined by NIP-89, they create a protocol-level open-with system. When you encounter a post type your current app cannot handle, it can suggest another app that can.
Safety and Moderation
These kinds give users and relays tools to flag, label, and manage harmful or unwanted content.
Kind 1984: How Do You Report Someone on Nostr?
Kind 1984 is a public report event defined by NIP-56. You can flag a post or account for spam, impersonation, illegal content, or explicit material. Reports are public events on the network. Individual relays and apps decide independently what action to take. There is no central moderation authority on Nostr.
Kind 1985: What Are Labels?
Kind 1985 lets you attach a label to any event or profile, using a defined namespace. Labels are used by apps and moderation tools to categorise content, flag it, or build reputation systems. Defined by NIP-32.
Badges
These kinds define how digital badges are created and awarded on Nostr.
Kind 30009 and 8: How Do Badges Work?
Kind 30009 defines a badge: its name, description, and image. Kind 8 awards that badge to a specific account. Recipients can choose to display earned badges on their profiles. Because the system is on-protocol, any Nostr app can render them. Defined by NIP-58.
Frequently Asked Questions
The most common questions about Nostr event kinds, answered in plain English.
What Is a Nostr Event Kind?
A kind is a number assigned to every Nostr event that tells apps what type of content the event contains. Kind 1 is a short text note. Kind 7 is a reaction. Kind 9735 is a zap receipt. Apps read the kind number first and then decide how to display or process the event. Without kinds, apps would have no way to distinguish a post from a payment notification from a profile update.
Why Are There So Many Kind Numbers?
The Nostr protocol assigns different numbers to different features so apps can support exactly the features they choose, without breaking anything else. A simple social app might only need to handle kinds 0, 1, 3, 6, and 7. A live streaming app needs kinds 30311 and 1311. A Bitcoin wallet app needs kinds 9734 and 9735. Each app picks the kinds relevant to its purpose. The full list exists so everything can eventually interoperate.
What Is the Difference Between Regular, Replaceable, and Addressable Events?
Regular events accumulate. Every post you make is stored separately. Replaceable events overwrite themselves: only your latest profile (kind 0) or follow list (kind 3) is kept. Addressable events can have multiple versions that coexist because each one has a unique identifier, the “d” tag. Your articles are addressable: you can have ten different articles without any of them overwriting the others.
Do I Need to Know Kind Numbers to Use Nostr?
No. Apps handle all of this invisibly. You press the heart button and the app sends a kind-7 event. You zap someone and the app handles kind-9734 and kind-9735. The kind numbers exist for developers building apps and for understanding why the protocol behaves the way it does. Knowing what they mean helps you understand why, for example, your profile syncs across apps, or why a deleted post might still appear on some relays.
Are All Kinds Supported in Every App?
No. App developers choose which kinds to implement. This is why some apps support zaps and others do not, why some have long-form article feeds and others only show short notes, and why feature sets differ across the Nostr ecosystem. An app that has not implemented a given kind simply ignores events of that type.
Sources
nostr-protocol. (2024). Nostr implementation possibilities (NIPs) [Software repository]. GitHub. https://github.com/nostr-protocol/nips
nostr-protocol. (2024). NIP-01: Basic protocol flow description. In Nostr implementation possibilities [Software repository]. GitHub. https://github.com/nostr-protocol/nips/blob/master/01.md
nostr-protocol. (2024). NIP-10: Text notes and threads. In Nostr implementation possibilities [Software repository]. GitHub. https://github.com/nostr-protocol/nips/blob/master/10.md
nostr-protocol. (2024). NIP-17: Private direct messages. In Nostr implementation possibilities [Software repository]. GitHub. https://github.com/nostr-protocol/nips/blob/master/17.md
nostr-protocol. (2024). NIP-57: Lightning zaps. In Nostr implementation possibilities [Software repository]. GitHub. https://github.com/nostr-protocol/nips/blob/master/57.md