T
The Nostr Protocol Forum
Home

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.