Community

Nostr archive

Nostr NIPs

A practical guide to Nostr Implementation Possibilities and the NIPs most relevant to identity, apps, payments, files and Crays.

Nostr NIPs visual
Route Under the hood Events, NIPs, relay behavior and the shared formats apps can trust.
Protocol route

Protocol and NIPs guide

This shelf turns standards into plain consequences: what becomes portable, what gets safer, what clients must support and what still needs product judgment.

NIPs All NIPs pages 242 pages in this routeNIP explainer pages, NIP reference pages, Protocol orientation Browse pagesClose shelf

NIP explainer pages

NIP reference pages

Android Signer Application Basic key derivation from mnemonic seed phrase Basic protocol flow bech32-encoded entities BLE Communications Blossom Bridged Events Calendar Events Chats Chess Classified Listings Code Snippets Comments Complete NIP Archive Index Crays NIP Strategy Custom Emoji Data Vending Machines Dealing with Unknown Events Delegated Event Signing Draft Events E2EE Messaging using MLS Ecash Mint Discoverability Encrypted Direct Message Event Deletion Request Expiration Timestamp External Content IDs External Identities Extra metadata fields and tags File Metadata Follow List Forum Threads Geocaching Gift Wrap git stuff Handling Mentions HTTP Auth HTTP File Storage Integration Labeling Lists Live Activities Mapping Nostr keys to DNS-based identifiers Moderated Communities Negentropy Syncing NIP and standards research NIP-01: Basic protocol flow NIP-01: NIP-01 NIP-02: Follow List NIP-02: NIP-02 NIP-03: NIP-03 NIP-03: OpenTimestamps Attestations NIP-04: Encrypted Direct Message NIP-04: NIP-04 NIP-05: Mapping Nostr keys to DNS-based identifiers NIP-05: NIP-05 NIP-06: Basic key derivation from mnemonic seed phrase NIP-06: NIP-06 NIP-07: NIP-07 NIP-07: window.nostr capability for web browsers NIP-08: Handling Mentions NIP-08: NIP-08 NIP-09: Event Deletion Request NIP-09: NIP-09 NIP-10: NIP-10 NIP-10: Text Notes and Threads NIP-12: NIP-12 NIP-13: NIP-13 NIP-13: Proof of Work NIP-14: NIP-14 NIP-14: Subject tag NIP-15: NIP-15 NIP-16: NIP-16 NIP-17: NIP-17 NIP-17: Private Direct Messages NIP-18: NIP-18 NIP-18: Reposts NIP-19: bech32-encoded entities NIP-19: NIP-19 NIP-20: NIP-20 NIP-21: NIP-21 NIP-21: nostr: URI scheme NIP-22: Comments NIP-22: NIP-22 NIP-23: NIP-23 NIP-24: Extra metadata fields and tags NIP-24: NIP-24 NIP-25: NIP-25 NIP-25: Reactions NIP-26: Delegated Event Signing NIP-26: Delegator: NIP-27: NIP-27 NIP-27: Text Note References NIP-28: NIP-28 NIP-28: Public Chat NIP-29: NIP-29 NIP-30: Custom Emoji NIP-30: NIP-30 NIP-31: Dealing with Unknown Events NIP-31: NIP-31 NIP-32: Labeling NIP-32: NIP-32 NIP-33: NIP-33 NIP-34: git stuff NIP-34: NIP-34 NIP-35: NIP-35 NIP-35: Torrents NIP-36: NIP-36 NIP-36: Sensitive Content NIP-37: Draft Events NIP-37: NIP-37 NIP-38: NIP-38 NIP-38: User Statuses NIP-39: External Identities NIP-39: NIP-39 NIP-40: Expiration Timestamp NIP-40: NIP-40 NIP-42: NIP-42 NIP-43: NIP-43 NIP-44: Calculates length of the padded byte array. NIP-44: Versioned Encryption NIP-45: Counting Results NIP-45: NIP-45 NIP-46: NIP-46 NIP-46: Nostr Remote Signing NIP-47: NIP-47 NIP-48: Bridged Events NIP-48: NIP-48 NIP-49: NIP-49 NIP-49: Private Key Encryption NIP-50: Search Capability NIP-51: Lists NIP-51: NIP-51 NIP-52: Calendar Events NIP-52: NIP-52 NIP-53: Live Activities NIP-53: NIP-53 NIP-54: NIP-54 NIP-54: Wiki NIP-55: Android Signer Application NIP-55: NIP-55 NIP-56: NIP-56 NIP-56: Reporting NIP-57: NIP-57 NIP-58: NIP-58 NIP-59: Gift Wrap NIP-59: NIP-59 NIP-5A: Static Websites / nsites NIP-60: NIP-60 NIP-61: NIP-61 NIP-62: NIP-62 NIP-62: Request to Vanish NIP-64: Chess NIP-64: NIP-64 NIP-65: NIP-65 NIP-68: NIP-68 NIP-68: Picture-first feeds NIP-69: NIP-69 NIP-69: Peer-to-peer Order events NIP-70: NIP-70 NIP-70: Protected Events NIP-71: NIP-71 NIP-72: Moderated Communities NIP-72: NIP-72 NIP-73: External Content IDs NIP-73: NIP-73 NIP-75: NIP-75 NIP-77: Negentropy Syncing NIP-77: NIP-77 NIP-78: Application-specific data NIP-78: NIP-78 NIP-7D: Forum Threads NIP-84: Highlights NIP-84: NIP-84 NIP-85: NIP-85 NIP-85: Trusted Assertions NIP-86: NIP-86 NIP-87: Ecash Mint Discoverability NIP-87: NIP-87 NIP-88: NIP-88 NIP-88: Polls NIP-89: NIP-89 NIP-89: Recommended Application Handlers NIP-90: Data Vending Machines NIP-90: NIP-90 NIP-92: NIP-92 NIP-94: File Metadata NIP-94: NIP-94 NIP-96: HTTP File Storage Integration NIP-96: NIP-96 NIP-98: HTTP Auth NIP-98: NIP-98 NIP-99: Classified Listings NIP-99: NIP-99 NIP-A0: Voice Messages NIP-A4: Public Messages NIP-B0: Web Bookmarks NIP-B7: Blossom NIP-BE: BLE Communications NIP-C0: Code Snippets NIP-C7: Chats NIP-CC: Geocaching NIP-EE: E2EE Messaging using MLS NIP-F4: Podcasts NIPs mirror Nostr NIPs Nostr Remote Signing nostr-protocol/nips nostr: URI scheme OpenTimestamps Attestations Peer-to-peer Order events Picture-first feeds Podcasts Polls Private Direct Messages Private Key Encryption Proof of Work Protected Events Public Chat Public Messages Reactions Reporting Reposts Request to Vanish Search Capability Sensitive Content Static Websites / nsites Subject tag Text Note References Text Notes and Threads Torrents Trusted Assertions User Statuses Versioned Encryption Voice Messages Web Bookmarks Wiki window.nostr capability for web browsers

Protocol orientation

NIPs7 min readNostr archive

Nostr NIPs

A practical guide to Nostr Implementation Possibilities and the NIPs most relevant to identity, apps, payments, files and Crays.

NIPs are Nostr Implementation Possibilities. They document ways Nostr-compatible clients, relays and services can interoperate. They are not a command that every app must implement every feature.

The quick readA practical guide to Nostr Implementation Possibilities and the NIPs most relevant to identity, apps, payments, files and Crays.
A big archive only works when every shelf has a clear next door.
A big archive only works when every shelf has a clear next door.
Research feels better when it looks like a working table, not a storage unit.
Research feels better when it looks like a working table, not a storage unit.

How to read the NIP repository

The NIP repository is both essential and easy to misunderstand. It is not a polished consumer manual. It is a shared standards workspace. Some NIPs are mandatory to the base protocol, many are optional, some are draft status and some may be deprecated or superseded.

High-priority NIPs for most products

A serious product should understand NIP-01 for events, NIP-05 for readable identifiers, NIP-07 and NIP-46 for signing, NIP-19 for display formats, NIP-57 for zaps, NIP-65 for relay list metadata, NIP-44 for encrypted payloads and NIP-98 where HTTP auth matters.

Crays standard selection

We should not implement a NIP simply because it exists. It should choose the standards that support user-owned identity, safe signing, zaps, status, venue access, search, content publishing, local relays and future governance.

NIP pages in this archive

This archive splits the main NIPs into individual pages so creators, operators and developers can navigate without reading the whole standards repository on day one.

What this standard changes

Nostr NIPs belongs to the protocol standards layer. The page should help you answer one concrete question instead of forcing you through a generic Nostr essay.

The short version is: A practical guide to Nostr Implementation Possibilities and the NIPs most relevant to identity, apps, payments, files and Crays. The deeper version is to see which concept, standard, product surface or human decision actually changes because of it.

Who has to implement it

The useful machinery around Nostr NIPs is event kinds, tags, relay behavior, client support and backwards compatibility. Name those moving parts directly, because vague protocol language is where confusion starts.

In the nips chapter, A strong page gives you enough context to recognize the term in another client, NIP, relay policy, wallet prompt or source document without pretending every reader is already a protocol engineer.

  • Status. Is the NIP mandatory, optional, draft, final or unrecommended?
  • Layer. Client, relay, signer, wallet, media server or indexer?
  • Adoption. Where can you verify support?

Event, tag or service surface

Test Nostr NIPs by asking what is signed, where it is stored, who renders it, which relays or services are involved and what survives when the first app or server is unavailable.

In the nips chapter, That test keeps the explanation tied to reality. It also tells us which internal links belong in the body: foundations first, then standards, then practical examples.

Compatibility and adoption

The main risk is that support can vary between clients and relays, so the feature may feel real in one place and missing in another. The page should say that plainly and then show the safer reading: what works today, what is experimental and what needs source verification.

In the nips chapter, This is where dense content beats long content. Give the reader facts, constraints, examples and next steps instead of repeating broad claims about openness or decentralization.

The library is the map readers use when curiosity gets serious.
The library is the map readers use when curiosity gets serious.
Deep content needs routes, scenes and memory hooks.
Deep content needs routes, scenes and memory hooks.

Product risk

For us, Nostr NIPs matters only when it improves understanding or helps a real flow: identity, publishing, relay choice, signing, payment, media, moderation, commerce, venue context or governance.

In the nips chapter, That does not mean every page has to become our product pitch. It means the page should make the connection visible when the topic affects our ecosystem, and stay purely educational when it does not.

Neighboring standards

The best next step from Nostr NIPs is not a generic link pile. Connect it to the closest prerequisite, the closest technical standard and the closest practical example.

In the nips chapter, A large archive becomes useful when every page behaves like a node in a knowledge graph: this explains one thing, points to what it depends on and shows where the idea is used.

How to place Nostr NIPs on the map

Read Nostr NIPs as part of the NIPs route, not as an isolated entry. Its main surface is technical standards: event kinds, tags, messages, identity formats, encryption, wallet flows and client-relay agreements. That framing matters because a Nostr page is useful only when you can see which layer it belongs to and which layer it does not solve by itself.

The first question is practical: what changes for you if Nostr NIPs works well? Sometimes the answer is safer signing, sometimes better relay discovery, sometimes clearer media storage, sometimes a stronger source trail. Keep that question in front of you and the page becomes easier to judge.

  • Layer. NIPs is the parent route, so the page should send you back to that shelf and sideways into adjacent concepts.
  • Evidence. The current source trail starts with Nostr NIPs, NIP-01, NIP-05, NIP-07. Treat those as anchors, then compare product behavior and NIP support.

What Nostr NIPs should help you decide

A good page about Nostr NIPs should leave you with a decision, not just recognition. You should know whether it is a protocol primitive, a client behavior, a relay operation, a product example, a research source or our implementation question. That distinction keeps the archive from becoming a flat glossary.

The common mistake is presenting a NIP as if support were automatic across every app and relay. We avoid that by making the claim, the evidence and the next step visible. If a statement depends on a NIP, the page should point to that NIP. If it depends on a project, the page should show the project source. If it affects user safety, the page should say what can fail.

The working example behind Nostr NIPs

Use this page with a concrete mental test: a NIP page should translate the spec into product consequences, failure cases and the reader-visible behavior it enables. That example is more useful than a generic definition because Nostr is not one product. The same signed event can be read by different clients, stored by different relays and interpreted through different product choices.

This is also why internal links matter. When the page mentions keys, clients, relays, events, zaps, Blossom, Cashu, FoundUPS or NIPs, those words should lead to the page that explains the concept more deeply. The goal is not to trap you in tabs; the goal is to let you move with context.

Source discipline for Nostr NIPs

The source list is part of the content, not decoration. For Nostr NIPs, use primary protocol documents first when the claim is technical, project repositories or product pages when the claim is about an app, and research or directory sources when the claim is about ecosystem position. If the sources disagree, the page should show the uncertainty instead of smoothing it away.

That source discipline is how a large archive stays trustworthy. It also helps learning: you get a short explanation first, then a route to the source that proves or complicates it. The page should feel like a guided chapter, but the evidence should still be close enough to inspect.

Before and after reading Nostr NIPs

Before reading Nostr NIPs, make sure you know the nearby base concepts: a public key identifies, a private key signs, relays carry signed events, clients render those events, and NIPs describe shared behavior. You do not need to memorize the whole protocol, but those pieces prevent most confusion.

After reading Nostr NIPs, the next useful move is to compare it with one neighboring page. If this is an app, compare it with a signer, relay or wallet page. If this is a NIP, compare it with the product behavior it enables. If this is a research source, compare it with the hub that uses it. That is how the archive becomes a learning path instead of a pile.

The navigation job of Nostr NIPs

Nostr NIPs also has a navigation job. It should help you decide whether to move upward to the NIPs hub, sideways to a related concept, or downward into a more technical source. That sounds simple, but it is the difference between browsing and learning.

When a page does that job well, you do not need to keep the whole archive in your head. The page carries enough context to orient you, enough links to continue, and enough source discipline to show where the claims come from.

Back to the Crays Nostr page