Supported NIPs reference
Every relay-side NIP nostrfy implements — kinds, notes and caveats — and how the NIP-11 supported_nips list is computed dynamically.
Implemented NIPs
| NIP | Description |
|---|---|
| 1 | Basic protocol (events, subscriptions) |
| 9 | Event deletion |
| 11 | Relay information document |
| 13 | Proof of work |
| 17 | Private DMs (kind 14 wrapped in kind 15; kind 1059 and ephemeral kind 21059 gift wraps served recipient-only when NIP-42 auth is on) |
| 22 | Comments (kind 1111, threaded via the #e index) |
| 26 | Delegated event signing |
| 28 | Public chat (client-side: stored and served as plain events, not advertised) |
| 29 | Relay-based groups |
| 32 | Labeling (kind 1985, #l/#L indexed) |
| 33 | Parameterized replaceable events |
| 34 | git stuff (kinds 1617-1619, 1621, 1622, 1630-1633, 30617/30618 — opt-in via relay.enabled_git, off by default) |
| 40 | Expiration timestamp |
| 42 | Client authentication |
| 43 | Relay access metadata (roles) — kinds 33534/13534/8000/8001 plus ephemeral 28934/28935/28936;
the relay-signed metadata is AUTH-gated. Invite codes are issued with NIP-86 createclaim/deleteclaim; a kind:28934 carrying a listed code admits
its author |
| 45 | Counting results (COUNT) |
| 46 | Nostr Connect |
| 47 | Nostr Wallet Connect |
| 50 | Search capability (full-text, relevance-ordered) |
| 57 | Lightning zaps (kinds 9734/9735) |
| 59 | Gift wrap (recipient-only serving) |
| 62 | Request to vanish |
| 65 | Relay list metadata |
| 66 | Relay discovery & liveness (kinds 30166/10166 stored and served; self-publishes kind 30166) |
| 67 | EOSE completeness hint |
| 70 | Protected events (the relay's own relay-signed events stay readable) |
| 77 | Negentropy syncing (a failed replacement closes the id with NEG-ERR per NIP-77) |
| 78 | Application-specific data (kind 30078, AUTH-gated) |
| 84 | Highlights |
| 85 | Trusted assertions (kinds 30382/30383/30384/30385/10040, addressable) |
| 86 | Relay management API |
| 87 | Cashu and Fedimint announcements (kinds 38000/38172/38173) |
| 88 | Polls |
| 94 | File metadata (kind 1063) |
| 98 | HTTP auth |
| A3 | Payment targets (kind 10133, replaceable), a draft; served but not advertised
in supported_nips |
Blossom (BUD-01/02) is not a NIP and is not advertised in the NIP-11 document — it is served as a
separate file server on the [blossom] hostname. See the Blossom file server page for details.
Dynamic NIP advertisement
The supported_nips list is not static: a NIP is dropped from it when every kind the
NIP defines is rejected by the relay's access control.
blocked_kinds— blocking all kinds of a NIP hides it (e.g. blocking kind 5 hides NIP-09). Blocking only some kinds keeps the NIP.allowed_kinds— a kind is only accepted when listed; a NIP whose kinds are all unlisted is hidden.reject_ephemeral— ephemeral kinds that are not in the NIP-mandated exempt list (22242,27235,28934/28935/28936,24133,23194/23195,24242,21059) are rejected, so NIPs relying on them are hidden.- Prerequisites — NIP-29, NIP-43 and NIP-66 rely on relay-signed events and are
hidden without
relay.private_key; NIP-86 is hidden unlessrpc.management_tokenorrpc.admin_pubkeyis set (otherwise every management call is refused). - NIPs without dedicated kinds (
1,11,13,26,33,40,45,50,67,70,77) are always advertised when enabled.
Changes made at runtime — NIP-86 allowkind/disallowkind, or a SIGHUP reload
of reject_ephemeral — are reflected in the next NIP-11 fetch. enabled_nips/disabled_nips still require a restart.