NIPs
Nostr is defined by NIPs (Nostr Implementation Possibilities): the documents that specify the protocol and its extensions. The canonical list lives in the nostr-protocol/nips repository; this page is a quick reference, generated from it on 2026-09-17.
NIP-01: Basic protocol flow description
This NIP defines the basic protocol that should be implemented by everybody. New NIPs may add new optional (or mandatory) fields and messages and features to the structures and flows described here.
Used kinds: 0
NIP-02: Follow List
A special event with kind 3, meaning follow list is defined as having a list of p tags, one for each of the followed/known profiles one is following.
Used kinds: 3
NIP-05: Mapping Nostr keys to DNS-based internet identifiers
On events of kind 0 (user metadata) one can specify the key nip05 with an internet identifier (an email-like address) as the value.
NIP-07: window.nostr capability for web browsers
The window.nostr object may be made available by web browsers or extensions and websites or web-apps may make use of it after checking its availability.
NIP-09: Event Deletion Request
A special event with kind 5, meaning deletion request is defined as having a list of one or more e or a tags, each referencing an event the author is requesting to be deleted.
Used kinds: 5
NIP-10: Text Notes and Threads
This NIP defines kind:1 as a simple plaintext note.
Used kinds: 1
NIP-11: Relay Information Document
Relays may provide server metadata to clients to inform them of capabilities, administrative contacts, and various server attributes.
NIP-13: Proof of Work
This NIP defines a way to generate and interpret Proof of Work for nostr notes. Proof of Work (PoW) is a way to add a proof of computational work to a note.
NIP-14: Subject tag in text events
This NIP defines the use of the subject tag in text (kind: 1) events. (implemented in more-speech)
NIP-17: Private Direct Messages
This NIP defines an encrypted chat scheme which uses NIP-44 encryption and NIP-59 gift-wrapping.
Used kinds: 14, 15, 10050
NIP-18: Reposts
A repost is a kind 6 event that is used to signal to followers that a kind 1 text note is worth reading.
Used kinds: 6, 16
NIP-19: bech32-encoded entities
This NIP standardizes bech32-formatted strings that can be used to display keys, ids and other information in clients.
NIP-21: nostr: URI scheme
This NIP standardizes the usage of a common URI scheme for maximum interoperability and openness in the network.
NIP-22: Comment
A comment is a threading note always scoped to a root event or an I-tag.
Used kinds: 1111
NIP-23: Long-form Content
This NIP defines kind:30023 (an addressable event) for long-form text content, generally referred to as articles or blog posts.
Used kinds: 30023, 30024
NIP-24: Extra metadata fields and tags
This NIP keeps track of extra optional fields that can added to events which are not defined anywhere else but have become de facto standards and other minor implementation possibilities that do not deserve their own N…
NIP-25: Reactions
A reaction is a kind 7 event that is used to indicate user reactions to other events.
Used kinds: 7, 17
NIP-27: Text Note References
This document standardizes the treatment given by clients of inline references of other events and profiles inside the .content of any event that has readable text in its .content (such as kinds 1 and 30023).
NIP-29: Relay-based Groups
This NIP defines a standard for groups that are only writable by a closed set of users. They can be public for reading by external users or not.
Used kinds: 9000-9030, 10009, 39000-9
NIP-30: Custom Emoji
Custom emoji may be added to kind 0, kind 1, kind 1111 (NIP-22), kind 7 (NIP-25) and kind 30315 (NIP-38) events by including one or more emoji tags, in the form:
NIP-32: Labeling
This NIP defines two new indexable tags to label events and a new event kind (kind:1985) to attach those labels to existing events.
Used kinds: 1985
NIP-34: git stuff
This NIP defines all the ways code collaboration using and adjacent to git can be done using Nostr.
Used kinds: 1617, 1618, 1619, 1621, 1622, 1630-1633, 30617, 30618
NIP-35: Torrents
This NIP defined a new kind 2003 which is a Torrent.
Used kinds: 2003, 2004
NIP-36: Sensitive Content
The content-warning tag enables users to specify if the event's content needs to be approved by readers to be shown. Clients can hide the content until the user acts on it.
NIP-37: Draft Events
This NIP defines kind 31234 as an encrypted storage for unsigned draft events of any other kind.
Used kinds: 1234, 10013, 31234
NIP-38: User Statuses
This NIP enables a way for users to share live statuses such as what music they are listening to, as well as what they are currently doing: work, play, out of office, etc.
Used kinds: 30315
NIP-39: Linking Profiles to Other Platforms
Users can declare their control over one or more online identities such as usernames, profile pages, keypairs in kind 10011 using i tags.
Used kinds: 10011
NIP-40: Expiration Timestamp
The expiration tag enables users to specify a unix timestamp at which the message SHOULD be considered expired (by relays and clients) and SHOULD be deleted by relays.
NIP-42: Authentication of clients to relays
This NIP defines a way for clients to authenticate to relays by signing an ephemeral event.
Used kinds: 22242
NIP-43: Relay Access Metadata and Requests
This NIP defines a way for relays to advertise membership lists, and for clients to request admission to relays on behalf of users.
Used kinds: 8000, 8001, 13534, 28934, 28935, 28936
NIP-44: Encrypted Payloads (Versioned)
The NIP introduces a new data format for keypair-based encryption. This NIP is versioned to allow multiple algorithm choices to exist simultaneously.
NIP-45: Counting results
Relays may support the verb COUNT, which provides a mechanism for obtaining event counts.
NIP-46: Nostr Remote Signing
remote-signer-key is introduced, passed in bunker url, clients must differentiate between remote-signer-pubkey and user-pubkey, must call getpublickey after connect, nip05 login is removed, create_account moved to anot…
Used kinds: 24133
NIP-47: Nostr Wallet Connect
This NIP describes a way for clients to access a remote lightning wallet through a standardized protocol.
Used kinds: 13194, 23194, 23195
NIP-48: Bridged Events
Nostr events bridged from other protocols such as ActivityPub can link back to the source object by including a proxy tag, in the form:
NIP-49: Private Key Encryption (ncryptsec)
This NIP defines a method by which clients can encrypt (and decrypt) a user's private key with a password.
NIP-50: Search Capability
Many Nostr use cases require some form of general search feature, in addition to structured queries by tags or ids.
NIP-51: Lists
This NIP defines lists of things that users can create. Lists can contain references to anything, and these references can be public or private.
Used kinds: 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10012, 10015, 10020, 10030, 10050, 10054, 10064, 30000, 30002, 30003, 30004, 30005, 30006, 30007, 30008, 30015, 30030, 30063, 30267, 39089, 39092
NIP-52: Calendar Events
This specification defines calendar events representing an occurrence at a specific moment or between moments. These calendar events are addressable and deletable per NIP-09.
Used kinds: 31922, 31923, 31924, 31925
NIP-53: Live Streaming and Spaces
This NIP introduces event kinds to advertise live spaces and the participation of pubkeys in them.
Used kinds: 1311, 10312, 30311, 30312, 30313
NIP-54: Wiki
This NIP defines kind:30818 (an addressable event) for descriptions (or encyclopedia entries) of particular subjects, and it's expected that multiple people will write articles about the exact same subjects, with eithe…
Used kinds: 818, 30818, 30819
NIP-55: Android Signer Application
This NIP describes a method for 2-way communication between an Android signer and any Nostr client running on the same device, so that the client never needs to handle the user's private key.
NIP-56: Reporting
A report is a kind 1984 event that signals to users and relays that some referenced content is objectionable.
Used kinds: 1984
NIP-57: Lightning Zaps
This NIP defines two new event types for recording lightning payments between users. 9734 is a zap request, representing a payer's request to a recipient's lightning wallet for an invoice.
Used kinds: 9734, 9735
NIP-58: Badges
Four special events are used to define, award, display and categorize badges in user profiles:
Used kinds: 8, 10008, 30008, 30009
NIP-59: Gift Wrap
This NIP defines a protocol for encapsulating any nostr event. This makes it possible to obscure most metadata for a given event, perform collaborative signing, and more.
Used kinds: 13, 1059
NIP-5A: Static Websites (nsites)
This NIP describes a method by which static websites can be hosted from Blossom assets.
Used kinds: 5128, 15128, 34128, 35128
NIP-60: Cashu Wallet
This NIP defines the operations of a cashu-based wallet.
Used kinds: 7374, 7375, 7376, 17375
NIP-61: Nutzaps
A Nutzap is a P2PK Cashu token in which the payment itself is the receipt.
Used kinds: 9321, 10019
NIP-62: Request to Vanish
This NIP offers a Nostr-native way to request a complete reset of a key's fingerprint on the web.
Used kinds: 62
NIP-64: Chess (PGN)
This NIP defines kind:64 notes representing chess games in PGN format, which can be read by humans and is also supported by most chess software.
Used kinds: 64
NIP-65: Relay List Metadata
Defines a replaceable event using kind:10002 to advertise relays where the user generally writes to and relays where the user generally reads mentions.
Used kinds: 10002
NIP-66: Relay Discovery and Liveness Monitoring
This NIP defines events for relay discovery and the announcement of relay monitors.
Used kinds: 10166, 30166
NIP-67: EOSE Completeness Hint
This NIP extends the EOSE message defined in NIP-01 with an optional third element that signals the client that the relay has sent every stored event matching the subscription's filters.
NIP-68: Picture-first feeds
This NIP defines event kind 20 for picture-first clients. Images must be self-contained. They are hosted externally and referenced using imeta tags.
Used kinds: 20
NIP-69: Peer-to-peer Order events
Peer-to-peer (P2P) platforms have seen an upturn in recent years, while having more and more options is positive, in the specific case of p2p, having several options contributes to the liquidity split, meaning sometimes…
Used kinds: 38383
NIP-70: Protected Events
When the - tag is present, that means the event is protected.
NIP-71: Video Events
This specification defines video events representing a dedicated post of externally hosted content.
Used kinds: 21, 22, 34235, 34236
NIP-73: External Content IDs
There are certain established global content identifiers such as Book ISBNs, Podcast GUIDs, and [Movie ISANs](https://en.wikipedia.org/wiki/I…
NIP-75: Zap Goals
This NIP defines an event for creating fundraising goals. Users can contribute funds towards the goal by zapping the goal event.
Used kinds: 9041
NIP-77: Negentropy Syncing
This document describes a protocol extension for syncing events. It works for both client-relay and relay-relay scenarios.
NIP-78: Application-specific data
The goal of this NIP is to enable remoteStorage-like capabilities for custom applications that do not care about interoperability.
Used kinds: 78, 30078
NIP-7D: Forum Threads
A thread is a kind 11 event. Threads SHOULD include a title.
Used kinds: 11
NIP-84: Highlights
This NIP defines kind:9802, a highlight event, to signal content a user finds valuable.
Used kinds: 9802
NIP-85: Trusted Assertions
Certain Webs of Trust calculations require access to a large volume of events and/or computing power, making it virtually impossible to perform them directly on clients.
Used kinds: 30382, 30383, 30384
NIP-86: Relay Management API
Relays may provide an API for performing management tasks. This is made available as a JSON-RPC-like request-response protocol over HTTP, on the same URI as the relay's websocket.
NIP-87: Cashu and Fedimint Discoverability
This NIP describes kind:38173, kind:38172 and kind:38000: a way to discover ecash mints, their capabilities, and people who recommend them.
Used kinds: 38172, 38173
NIP-88: Polls
This NIP defines the event scheme that describe Polls on nostr.
Used kinds: 1018, 1068
NIP-89: Recommended Application Handlers
This NIP describes kind:31989 and kind:31990: a way to discover applications that can handle unknown event-kinds.
Used kinds: 31989, 31990
NIP-92: Media Attachments Metadata (imeta)
Media attachments (images, videos, and other files) may be added to events by including a URL in the event content, along with a matching imeta tag.
NIP-94: File Metadata
The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest.
Used kinds: 1063
NIP-98: HTTP Auth
This NIP defines an ephemeral event used to authorize requests to HTTP servers using nostr events.
Used kinds: 27235
NIP-99: Classified Listings
This NIP defines kind:30402: an addressable event to describe classified listings that list any arbitrary product, service, or other thing for sale or offer and includes enough structured metadata to make them useful.
Used kinds: 30402, 30403
NIP-A0: Voice Messages
Status: Draft
Used kinds: 1222, 1244
NIP-A4: Public Messages
This NIP defines kind 24 as a simple plaintext message to one or more Nostr users.
Used kinds: 24
NIP-B0: Web Bookmarks
This NIP defines kind:39701 for a URI as editable web bookmark.
Used kinds: 39701
NIP-B7: Blossom
This NIP specifies how Nostr clients can use Blossom for handling media.
Used kinds: 10063, 24242
NIP-C0: Code Snippets
This NIP defines a new event kind for sharing and storing code snippets.
Used kinds: 1337
NIP-C7: Chats
A chat message is a kind 9 event.
Used kinds: 9
NIP-A3: payto: Payment Targets
This NIP standardizes how payment addresses are declared across any network or platform.
Used kinds: 10133
NIP-CC: Geocaching
This NIP defines event kinds for geocaching on Nostr. These events allow users to create, share, and log geocaches in a decentralized manner.
Used kinds: 7516, 7517, 37516, 37517
NIP-F4: Podcasts
This NIP defines how podcast episodes can be fetched from relays. It's intended to fit easily into existing podcast players.
Used kinds: 54, 10154
The list ends here, but the protocol does not: new NIPs are proposed, debated, and merged all the time. If one of them sparks a thought, the Protocol room is where we think out loud.