…
Nostr NIP Reference — Wisp Project
Local condensed NIP references for development. Each file is an actionable developer summary (not a full spec copy).
Implementation Status
| NIP | File | Status | Notes |
|---|---|---|---|
| 01 | 01-basic-protocol.md | Implemented | Event, Filter, ClientMessage, RelayMessage |
| 02 | 02-follow-list.md | Not yet | Kind 3 contact list |
| 04 | 04-encrypted-dm-legacy.md | Not yet | Deprecated — use NIP-17 |
| 05 | 05-dns-verification.md | Not yet | NIP-05 identifiers |
| 09 | 09-event-deletion.md | Not yet | Kind 5 deletion |
| 10 | 10-reply-threading.md | Implemented | Nip10.kt |
| 11 | 11-relay-info.md | Not yet | Relay information document |
| 17 | 17-private-dm.md | Not yet | Gift-wrapped DMs (replaces NIP-04) |
| 19 | 19-bech32-encoding.md | Implemented | Nip19.kt (npub/nsec/note) |
| 25 | 25-reactions.md | Not yet | Kind 7 reactions |
| 42 | 42-authentication.md | Not yet | Relay authentication |
| 44 | 44-versioned-encryption.md | Not yet | NIP-44 encryption (for NIP-17) |
| 51 | 51-lists.md | Not yet | Lists and sets |
| 57 | 57-zaps.md | Not yet | Lightning zaps |
| 65 | 65-relay-list-metadata.md | Not yet | Outbox model relay lists |
Event Kind Master Table
| Kind | Name | NIP | Replacement | Notes |
|---|---|---|---|---|
| 0 | Profile Metadata | 01 | Replaceable | JSON content: {name, about, picture, nip05, ...} |
| 1 | Short Text Note | 01 | Regular | Main post type |
| 3 | Follow List | 02 | Replaceable | p-tags = contacts |
| 4 | Encrypted DM (legacy) | 04 | Regular | DEPRECATED — use kind 14 |
| 5 | Event Deletion | 09 | Regular | e-tags and a-tags to delete |
| 7 | Reaction | 25 | Regular | "+" = like, "-" = dislike, emoji |
| 13 | Seal | 17 | Regular | Encrypted signed rumor |
| 14 | Chat Message | 17 | Regular | The actual DM (inside seal) |
| 1059 | Gift Wrap | 17 | Regular | Outer wrapper with random key |
| 9734 | Zap Request | 57 | Regular | Sent to LNURL server |
| 9735 | Zap Receipt | 57 | Regular | Created by LNURL server |
| 10000 | Mute List | 51 | Replaceable | Parameterized |
| 10001 | Pin List | 51 | Replaceable | Parameterized |
| 10002 | Relay List | 65 | Replaceable | Outbox model relays |
| 22242 | Auth | 42 | Regular | Challenge-response |
| 30000+ | Categorized lists | 51 | Param. replaceable | d-tag = category name |
Kind Ranges (NIP-01)
| Range | Type | Behavior |
|---|---|---|
| 0-999 | Regular | Stored by relays |
| 0, 3, 10000-19999 | Replaceable | Latest per pubkey (+d for parameterized) |
| 1000-9999 | Regular | Stored normally |
| 20000-29999 | Ephemeral | Not stored |
| 30000-39999 | Parameterized replaceable | Latest per pubkey+d-tag |
NIP Dependency Map
NIP-01 (base)
├── NIP-02 (follow list)
├── NIP-05 (DNS verification)
├── NIP-09 (deletion)
├── NIP-10 (threading) ← depends on NIP-01 e-tags
├── NIP-11 (relay info)
├── NIP-19 (bech32)
├── NIP-25 (reactions) ← depends on NIP-10 e-tags
├── NIP-42 (auth)
├── NIP-51 (lists)
├── NIP-65 (relay list metadata)
├── NIP-44 (encryption)
│ └── NIP-17 (private DMs) ← depends on NIP-44
└── NIP-57 (zaps) ← depends on NIP-09 (optional)
Common Tag Formats
| Tag | Purpose | Format | Example |
|---|---|---|---|
e |
Event reference | ["e", <event-id>, <relay>, <marker>] |
["e", "abc...", "", "reply"] |
p |
Pubkey reference | ["p", <pubkey>, <relay>] |
["p", "def..."] |
a |
Replaceable ref | ["a", "<kind>:<pubkey>:<d>", <relay>] |
["a", "30023:abc:slug"] |
d |
Identifier | ["d", <value>] |
["d", "my-list"] |
q |
Quote | ["q", <event-id>, <relay>] |
["q", "abc...", "wss://..."] |
t |
Hashtag | ["t", <topic>] |
["t", "nostr"] |
k |
Kind reference | ["k", <kind-number>] |
["k", "1"] |