Supported NIPs
Every relay-side NIP nostrfy implements, and how the NIP-11 supported_nips list is computed.
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 15; ephemeral wraps 1059/21059 forwarded) |
| 22 | Comments (kind 1111, threaded via the #e index) |
| 26 | Delegated event signing |
| 28 | Public chat |
| 29 | Relay-based groups |
| 32 | Labeling (kind 1985, #l/#L indexed) |
| 33 | Parameterized replaceable events |
| 34 | git stuff (kinds 1617-1633, 30617/30618 — opt-in via relay.enabled_git, off by default) |
| 40 | Expiration timestamp |
| 42 | Client authentication |
| 43 | Relay access metadata (roles) |
| 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 (self-publishes kind 30166) |
| 67 | EOSE completeness hint |
| 70 | Protected events |
| 77 | Negentropy syncing |
| 78 | Application-specific data (kind 30078, AUTH-gated) |
| 84 | Highlights |
| 85 | Trusted assertions |
| 86 | Relay management API |
| 87 | Cashu and Fedimint announcements |
| 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 (
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.