NIPs — Nostr Implementation Possibilities Catalog

Every NIP documented: status, description, and key details across 60+ specifications

NIPs — Nostr Implementation Possibilities

Complete catalog of published NIPs. Statuses: final (stable), draft (in development), deprecated (replaced).

Core Protocol

NIP-01 — Basic Protocol

draft mandatory

The foundation. Defines the event object, secp256k1/Schnorr signatures, WebSocket communication between clients and relays, REQ/EVENT/CLOSE/OK messages, tag conventions, and kind ranges (0, 1, regular/replaceable/ephemeral/addressable).

NIP-04 — Encrypted Direct Messages (deprecated)

unrecommended

Original DM spec. Encrypts content with shared-secret AES using ECDH. No forward secrecy, no metadata privacy. Use NIP-17 instead.

NIP-17 — Private Direct Messages

final

Modern DM spec using NIP-44 v2 encryption wrapped inside NIP-59 gift-wrapped seals. Randomized timestamps, no pubkey tag, recipient-signed pubkey hiding. Kind 14 for text, kind 15 for files.

Your DM → NIP-44 encrypt → NIP-59 gift wrap (kind 1059) → relay broadcast

NIP-59 — Gift Wraps

final

Encrypted wrapper event (kind 1059) that contains another event. Like stuffing a signed-encrypted letter inside a sealed outer envelope. Randomizes timestamps, eliminates metadata leakage.

Encryption & Authentication

NIP-44 — Encrypted Payloads (Versioned)

final

The encryption standard. Replaces NIP-04. Uses:

  • ChaCha20-Poly1305 authenticated encryption
  • ECDH shared secret (secp256k1)
  • HKDF-SHA256 key derivation
  • Versioned format (v2)
  • Two conversation modes: nip44-v2-1 and nip44-v2-2

NIP-42 — Client Authentication

draft

Challenge-response to prove you control a pubkey without signing every REQ. Relay sends challenge → client signs → authenticated access.

NIP-98 — HTTP Auth

draft

HTTP-based authentication using signed Nostr events (kind 27235). AUTH header is a base64-encoded signed event.

Identity

NIP-05 — DNS-based Verification

final

Human-readable identity: username@domain.com. The domain serves a JSON file at /.well-known/nostr.json mapping names to pubkeys.

{
  "names": {
    "bob": "b0635d6a9851d3aed0cd6c495b282167acf761729078d975fc341b22650b07b9"
  }
}

NIP-19 — bech32-encoded Entities

final

Human-friendly encoding for Nostr entities:

  • npub1... — public keys
  • nsec1... — private keys
  • note1... — event IDs
  • nevent1... — event with relay hints
  • naddr1... — addressable events
  • nprofile1... — profile with relay hints

NIP-21 — nostr: URI Scheme

draft

Deep links: nostr:npub1..., nostr:note1..., etc. Opens in Nostr client.

Social Features

NIP-02 — Contact List and Petnames

draft

Kind 3 (follow list). Your social graph. Tags encode follow relationships with optional petnames:

["p", "<pubkey>", "<optional-relay>", "<optional-petname>"]

NIP-10 — Text Notes (Kind 1)

final

The tweet/note. Content conventions, threading with e tags:

  • Root: ["e", "<root-id>", "", "root"]
  • Reply: ["e", "<parent-id>", "", "reply"]

NIP-18 — Reposts

final

Kind 6 (ordinary repost), Kind 16 (generic repost). Two types:

  • Kind 6: basic repost, share an event
  • Kind 16: generic repost with type differentiation (application, article, graphic)

Quote repost = kind 1 with embedded nostr:nevent reference.

NIP-25 — Reactions

final

Kind 7. content is the emoji (or +/- for like/dislike). Tags reference the reacted-to event.

NIP-51 — Lists

draft

Parameterized replaceable events for user-curated lists. All are kind 300xx with d tags.

Kind List Type
10000 Mute list
10001 Pin list
10002 Relay list
10003 Bookmarks
10004 Communities
10030 Emoji list

Long-Form & Media

NIP-23 — Long-form Content

draft

Kind 30023. Articles/blog posts using Markdown content. Addressable by d tag. Supports title, summary, image, published_at tags.

NIP-68 — Picture References

draft

Kind 20. Image-only events with imeta (image metadata) tags.

NIP-71 — Video Events

draft

Kind 21 (horizontal), Kind 22 (vertical shorts). Video content events.

Lightning & Payments

NIP-57 — Lightning Zaps

final

Value-for-value payments over Lightning. Two-event flow:

  1. Kind 9734 — Zap Request: Sent to LNURL-pay endpoint
  2. Kind 9735 — Zap Receipt: Published by wallet after payment

Includes split payments with weight-based zap tags.

NIP-47 — Nostr Wallet Connect

final

Wallet service on Nostr. Events:

  • Kind 13194: Wallet info (replaceable)
  • Kind 23194: Request (ephemeral, encrypted)
  • Kind 23195: Response (ephemeral, encrypted)

Commands: pay_invoice, get_balance, make_invoice, lookup_invoice, list_transactions, multi_pay_invoice, multi_pay_keysend.

NIP-60 — Cashu Wallet

draft

Ecash tokens on Nostr. Kinds: 7374 (reserved), 7375 (tokens), 7376 (history). Moon people fly here.

NIP-61 — Nutzaps

draft

Zap-style payments using ecash/Cashu instead of Lightning.

Networking

NIP-65 — Relay List Metadata

draft

Kind 10002. Declares read/write relays:

["r", "wss://my.relay", "write"]
["r", "wss://their.relay", "read"]

NIP-11 — Relay Information

draft

Relay metadata served at wss://<relay> with HTTP headers and NIP-11 doc: name, description, contact, supported NIPs, limitations, fees.

NIP-13 — Proof of Work

draft

Require computational effort to combat spam. Nonce tag with leading zeros in event ID.

Agent & Compute

NIP-46 — Nostr Connect

final

Remote signing (bunker). Separate key management from application. Uses NIP-44 encrypted communication.

NIP-89 — Handler Information

draft

Announces an app/handler service. Kind 31990 (handler info), Kind 31989 (recommendation).

NIP-90 — Data Vending Machines

draft

Marketplace for computation: request jobs, get results, pay. Kinds:

  • 5000-5999: Job Request
  • 6000-6999: Job Result
  • 7000: Job Feedback

Moderation & Community

NIP-28 — Public Chat

final

Channels with kinds 40-44. Create, join, message, mute.

NIP-29 — Groups

draft

Permissioned groups. Kinds 9000-9030 for control events (add/remove/edit user/meta).

NIP-43 — Memberships

draft

Private, restricted access groups. Join requests, invites, role management.

NIP-56 — Reporting

draft

Kind 1984. Content reporting with reason classifications: nudity, malware, spam, impersonation, illegal.

NIP-58 — Badges

draft

Profile badge definitions and awards. Kind 30009 for badge definition, Kind 8 for award.

Miscellaneous

NIP Name Status Description
06 Key Delegation (NIP-26) see 26 Moved to 26
07 window.nostr draft Browser extension API
09 Event Deletion final Kind 5, request deletion
15 Marketplace draft Bids and listings
22 Comments draft Kind 1111 threaded comments
26 Delegation draft Delegate signing to another key
32 Labels draft Kind 1985, labeling system
33 Param. Replaceable draft Kind 30000+ system
34 Git on Nostr draft Patches, PRs, issues
35 Torrents draft Decentralized file sharing
39 External Identities draft GitHub, Twitter, etc. on profile
50 Search draft Relay search capability
52 Calendar final Events, RSVPs, time-based
53 Live Activities draft Live streaming metadata
54 Wiki draft DeezNutz Wiki
62 Vanish draft Ephemeral disappearing messages
72 Communities draft Moderation with post approval
75 Zap Goals draft Crowdfunding targets
84 Highlights draft Highlighted text snippets
88 Polls draft Voting/opinion polls
94 File Metadata draft File header info
96 File Storage draft Blossom file storage
64 Chess draft PGN chess games

Status Summary

Status Count Description
Final ~15 Battle-tested, widely deployed
Draft ~60+ In development, may change
Deprecated ~5 Replaced by newer specs

Write a comment
No comments yet.