Skip to the reading
nostr101

Every NIP, in one line each

The Nostr Implementation Possibilities are the protocol. This index gives each one a number, a status, and a sentence in plain language — enough to know whether you need to read it. Rows link to the spec, not to a summary of the spec.

Mirrors nostr-protocol/nips @ a2494f4 · regenerated daily · last generated 16 Sep 2026 · every row has a stable anchor, e.g. #nip-57

95 NIPs
  1. Basic protocol flow description Sets out the whole base layer — signed events, the keys that make them, and the few websocket messages clients and relays trade — that every other NIP builds on. 0 final
  2. Follow List Publishes who you follow as one public, self-overwriting list, so any client can rebuild your feed from scratch and others can see and walk your connections. 3 final
  3. OpenTimestamps Attestations for Events This NIP defines an event with kind:1040 that can contain an OpenTimestamps proof for any other event:… — the NIP's own opening line, not ours. Upstream: vulnerable to one specific attack, needs update 1040 deprecated
  4. Encrypted Direct Message Encrypts one-to-one messages with a secret derived from both parties' keys, but leaves sender, recipient and timing readable to anyone watching the relay. Upstream: deprecated in favor of NIP-17 4 deprecated
  5. Mapping Nostr keys to DNS-based internet identifiers Turns a name@domain handle into a lookup on that domain's own web server, letting people find each other by a familiar address rather than a 64-character key. final
  6. Basic key derivation from mnemonic seed phrase Derives Nostr keys from a BIP-39 word-list backup phrase by an agreed recipe, so a single written phrase restores every account it made — a practice the spec advises against. Upstream: prefer a single nsec deprecated
  7. window.nostr capability for web browsers Lets a web page ask a browser extension for the user's public key and for signed events, so people can log in to web clients without pasting a private key. final
  8. Handling Mentions This document standardizes the treatment given by clients of inline mentions of other events and pubkeys inside the content of textnotes. — the NIP's own opening line, not ours. Upstream: deprecated in favor of NIP-27 deprecated
  9. Event Deletion Request Asks relays and clients to drop something you already published — a request rather than a guarantee, since copies may sit on relays that never hear it. 5 draft
  10. Text Notes and Threads Turns flat notes into readable conversations by marking which event a reply answers, which one opened the thread, and who ought to be notified. 1 final
  11. Relay Information Document Lets a relay publish a JSON profile of itself — name, admin contact, fees, message limits, supported features — so clients can size it up before connecting. final
  12. Proof of Work Puts a cost on posting by making the sender grind a note's id until it starts with zeroes, which relays can require to price out bulk spammers. optional
  13. Subject tag in text events This NIP defines the use of the "subject" tag in text (kind: 1) events. — the NIP's own opening line, not ours.
  14. Nostr Marketplace (for resilient marketplaces) Based on Diagon-Alley. — the NIP's own opening line, not ours. Upstream: too complicated, try 99 instead 1021, 1022, 30017, 30018, 30019, 30020 deprecated
  15. Private Direct Messages Wraps encrypted direct messages in events signed by throwaway keys and given randomized timestamps, so the public cannot link sender to receiver, and sends each to relays the recipient picked. 14, 15 draft
  16. Reposts Shares someone else's note onward to your followers, with a separate form for reposting anything that isn't a note, and marks quotes so they never land in reply threads. 6, 16 final
  17. bech32-encoded entities Wraps keys, event ids and event addresses into copy-pasteable strings like npub and note, some carrying relay hints, for showing and sharing while the protocol keeps using raw hex. final
  18. nostr: URI scheme Turns identifiers into clickable nostr: links that hand a profile or note off to whichever app you use, and lets web pages point at their Nostr equivalents. final
  19. Comment A comment is a threading note always scoped to a root event or an I-tag. — the NIP's own opening line, not ours. 1111
  20. Long-form Content Carries articles and blog posts as Markdown the author can edit in place, with optional title, summary and cover image, instead of a chain of short notes. 30023, 30024 final
  21. 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 NIP… — the NIP's own opening line, not ours.
  22. Reactions Attaches a like, dislike, or emoji to another event so clients can count and show them under a post, with a separate form for web pages, podcasts, and anything outside nostr. 7, 17 final
  23. Delegated Event Signing This NIP defines how events can be delegated so that they can be signed by other keypairs. — the NIP's own opening line, not ours. Upstream: adds unnecessary burden for little gain deprecated
  24. 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). — the NIP's own opening line, not ours.
  25. Public Chat This NIP defines new event kinds for public chat channels, channel messages, and basic client-side moderation. — the NIP's own opening line, not ours. Upstream: try NIP-29 instead 40, 41, 42, 43, 44 deprecated
  26. Relay-based Groups This NIP defines a standard for groups that are only writable by a closed set of users. — the NIP's own opening line, not ours. 9000–9030
  27. 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:… — the NIP's own opening line, not ours.
  28. Dealing with Unknown Events When creating a new custom event kind that is part of a custom protocol and isn't meant to be read as text (like kind:1), clients should use an alt tag to write a short human-readable plaintext summary of what that event is about. — the NIP's own opening line, not ours. Upstream: unnecessarily bloated deprecated
  29. 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. — the NIP's own opening line, not ours. 1985
  30. git stuff This NIP defines all the ways code collaboration using and adjacent to git can be done using Nostr. — the NIP's own opening line, not ours. 1617, 1618, 1619, 1621, 1622, 1630–1633, 30617, 30618
  31. Torrents This NIP defined a new kind 2003 which is a Torrent. — the NIP's own opening line, not ours. 2003, 2004
  32. Sensitive Content The content-warning tag enables users to specify if the event's content needs to be approved by readers to be shown. — the NIP's own opening line, not ours.
  33. Draft Events This NIP defines kind 31234 as an encrypted storage for unsigned draft events of any other kind. — the NIP's own opening line, not ours. 1234, 10013, 31234
  34. 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. — the NIP's own opening line, not ours. 30315
  35. Linking Profiles to Other Platforms Lets you claim accounts on GitHub, Twitter, Mastodon or Telegram by posting a matching proof there, so others can check the handle really is yours. 10011 draft
  36. 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. — the NIP's own opening line, not ours.
  37. Authentication of clients to relays Proves to a relay which key a client holds by having it sign a throwaway challenge event, so private messages, paid access, and posting rights can be gated. 22242 final
  38. 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. — the NIP's own opening line, not ours. 8000, 8001, 13534, 28934, 28935, 28936
  39. Encrypted Payloads (Versioned) Supplies the encryption other messaging schemes build on — versioned, audited, and padded to blur message length — while deliberately defining no message kinds of its own. final
  40. Counting results Asks a relay for a number rather than the events themselves — followers, reactions, replies — plus a compact sketch that lets counts from several relays merge without double counting. draft
  41. Nostr Remote Signing Keeps your secret key on a separate device or service — the bunker — that apps ask to sign each event for them, so the app itself never holds the key. 24133 draft
  42. Nostr Wallet Connect Lets an app pay invoices, request payments, and check the balance of a Lightning wallet kept elsewhere, over encrypted relay messages, using a connection string you can revoke. 13194, 23194, 23195 draft
  43. 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:… — the NIP's own opening line, not ours.
  44. Private Key Encryption (ncryptsec) This NIP defines a method by which clients can encrypt (and decrypt) a user's private key with a password. — the NIP's own opening line, not ours.
  45. Search Capability Adds a free-text search field to relay queries, so clients can find events by words as well as ids or tags, with each relay interpreting and ranking results its own way. draft
  46. Lists Keeps a user's lists — mutes, bookmarks, pinned notes, relay sets — on relays for any client to use, with entries optionally encrypted so only the owner sees them. 10000, 10001, 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 draft
  47. Calendar Events This specification defines calendar events representing an occurrence at a specific moment or between moments. — the NIP's own opening line, not ours. 31922, 31923, 31924, 31925
  48. Live Streaming and Spaces This NIP introduces event kinds to advertise live spaces and the participation of pubkeys in them. — the NIP's own opening line, not ours. 1311, 10312, 30311, 30312, 30313
  49. 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 either… — the NIP's own opening line, not ours. 818, 30818, 30819
  50. 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. — the NIP's own opening line, not ours.
  51. Reporting A report is a kind 1984 event that signals to users and relays that… — the NIP's own opening line, not ours. 1984
  52. Lightning Zaps Turns a Lightning tip into a public receipt on Nostr, so payments show up under posts and profiles, though the recipient's wallet server signs the receipt and could lie. 9734, 9735 final
  53. Badges Four special events are used to define, award, display and categorize badges in… — the NIP's own opening line, not ours. 8, 30009
  54. Gift Wrap Wraps any event in two encrypted layers, sealed by the real author then re-signed with a throwaway key, so relays see only a random sender and the recipient. 13, 1059 final
  55. Static Websites (nsites) This NIP describes a method by which static websites can be hosted from Blossom assets. — the NIP's own opening line, not ours. 5128, 15128, 34128, 35128
  56. Cashu Wallet This NIP defines the operations of a cashu-based wallet. — the NIP's own opening line, not ours. 7374, 7375, 7376, 17375
  57. Nutzaps Tips someone with a Cashu ecash token locked to a key only they can redeem, at a mint they published as trusted, so the payment is its own receipt. 9321, 10019 draft
  58. Request to Vanish This NIP offers a Nostr-native way to request a complete reset of a key's fingerprint on the web. — the NIP's own opening line, not ours. 62
  59. Chess (PGN) This NIP defines kind:64 notes representing chess games in [PGN][pgnspecification] format, which can be read by humans and is also supported by most chess software. — the NIP's own opening line, not ours. 64
  60. Relay List Metadata Publishes which relays a person writes to and which they read mentions on, so others know where to fetch their posts and where to reach them. 10002 final
  61. Relay Discovery and Liveness Monitoring This NIP defines events for relay discovery and the announcement of relay monitors. — the NIP's own opening line, not ours. 10166, 30166
  62. 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. — the NIP's own opening line, not ours.
  63. Picture-first feeds This NIP defines event kind 20 for picture-first clients. — the NIP's own opening line, not ours. 20
  64. 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… — the NIP's own opening line, not ours. 38383
  65. Protected Events When the "-" tag is present, that means the event is "protected". — the NIP's own opening line, not ours.
  66. Video Events This specification defines video events representing a dedicated post of externally hosted content. — the NIP's own opening line, not ours. 21, 22, 34235, 34236
  67. Moderated Communities The goal of this NIP is to enable public communities. — the NIP's own opening line, not ours. Upstream: try NIP-29 instead 4550, 34550 deprecated
  68. External Content IDs There are certain established global content identifiers such as Book ISBNs, Podcast GUIDs, and Movie ISANs that are useful to reference in nostr events so that clients can query all the events associated with these ids. — the NIP's own opening line, not ours.
  69. Zap Goals This NIP defines an event for creating fundraising goals. — the NIP's own opening line, not ours. 9041
  70. Negentropy Syncing This document describes a protocol extension for syncing events. — the NIP's own opening line, not ours.
  71. Application-specific data The goal of this NIP is to enable remoteStorage-like capabilities for custom applications that do not care about interoperability. — the NIP's own opening line, not ours. 78, 30078
  72. Forum Threads A thread is a kind 11 event. — the NIP's own opening line, not ours. 11
  73. Highlights This NIP defines kind:9802, a "highlight" event, to signal content a user finds valuable. — the NIP's own opening line, not ours. 9802
  74. 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. — the NIP's own opening line, not ours. 30382, 30383, 30384
  75. Relay Management API Relays may provide an API for performing management tasks. — the NIP's own opening line, not ours.
  76. 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. — the NIP's own opening line, not ours. 38172, 38173
  77. Polls This NIP defines the event scheme that describe Polls on nostr. — the NIP's own opening line, not ours. 1018, 1068
  78. Recommended Application Handlers This NIP describes kind:31989 and kind:31990: a way to discover applications that can handle unknown event-kinds. — the NIP's own opening line, not ours. 31989, 31990
  79. Data Vending Machines This NIP defines the interaction between customers and Service Providers for performing on-demand computation. — the NIP's own opening line, not ours. Upstream: this got totally out of control, prefer use-case-specific microstandards deprecated
  80. 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. — the NIP's own opening line, not ours.
  81. File Metadata The purpose of this NIP is to allow an organization and classification of shared files. — the NIP's own opening line, not ours. 1063
  82. HTTP File Storage Integration This NIP defines a REST API for HTTP file storage servers intended to be used in conjunction with the nostr network. — the NIP's own opening line, not ours. Upstream: replaced by Blossom 10096 deprecated
  83. HTTP Auth This NIP defines an ephemeral event used to authorize requests to HTTP servers using nostr events. — the NIP's own opening line, not ours. 27235
  84. 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. — the NIP's own opening line, not ours. 30402, 30403
  85. Voice Messages Status: Draft This NIP defines new events kind: 1222 for root messages and kind: 1244 for reply messages to be used for short voice messages, typically up to 60 seconds in length. — the NIP's own opening line, not ours. 1222, 1244
  86. Public Messages This NIP defines kind 24 as a simple plaintext message to one or more Nostr users. — the NIP's own opening line, not ours. 24
  87. Web Bookmarks This NIP defines kind:39701 for a URI as editable web bookmark. — the NIP's own opening line, not ours. 39701
  88. Blossom This NIP specifies how Nostr clients can use [Blossom][] for handling media. — the NIP's own opening line, not ours. 10063, 24242
  89. Nostr BLE Communications Protocol This NIP specifies how Nostr apps can use BLE to communicate and synchronize with each other. — the NIP's own opening line, not ours. Upstream: only implemented once and unclear whether it works, requires review deprecated
  90. Code Snippets This NIP defines a new event kind for sharing and storing code snippets. — the NIP's own opening line, not ours. 1337
  91. Chats A chat message is a kind 9 event. — the NIP's own opening line, not ours. 9
  92. payto: Payment Targets This NIP standardizes how payment addresses are declared across any network or platform. — the NIP's own opening line, not ours. 10133
  93. Geocaching This NIP defines event kinds for geocaching on Nostr. — the NIP's own opening line, not ours. 7516, 7517, 37516, 37517
  94. E2EE Messaging using MLS Protocol This NIP standardizes how to use the MLS Protocol with Nostr for efficient and E2EE (end-to-end encrypted) direct and group messaging. — the NIP's own opening line, not ours. Upstream: superseded by the Marmot Protocol deprecated
  95. Podcasts This NIP defines how podcast episodes can be fetched from relays. — the NIP's own opening line, not ours. 54, 10154

How to cite this page

Link the row anchor, not the page: nostr101.com/nips#nip-57. Anchors are stable across rebuilds. The plain-language lines are editorial and may be revised, so quote the NIP for anything normative.

Status labels

Upstream marks NIPs loosely. Here: final means implemented by most major clients, draft means in flux, optional means widely ignored without consequence, deprecated means do not build on it. These are our readings, marked as such. A dash means we have not read that NIP closely enough to have one — 56 of 95 today. A guess would be worse than a gap.

Source & licence

Numbers, titles and kind assignments come from the NIPs repository and belong to its contributors, who state that all NIPs are public domain. The one-line descriptions are written here and are CC BY-SA 4.0. 28 of 95 rows carry one; the rest show the NIP's own opening line, marked as such.