Nostrfi
/Docs
Browse documentation
Owner: NostrfiLast reviewed: 2026-07-23

Protocol support

Advertised NIPs

The relay advertises NIPs 1, 2, 9, 11, 17, 22, 28, 40, 42, 70, 71, 77 in its default configuration. "Covered" below means a relevant automated integration test exists and passed at the reviewed revision; it does not imply exhaustive conformance to every requirement in that NIP.

NIPImplemented behavior observedEvidence and qualification
01Signed event publication; OK; REQ; EVENT; EOSE; CLOSE; live matching; common filtersCovered. ID and author filters use exact equality; prefix-filter behavior is not implemented. Stored tags lose fields after the first value.
02Kind 3 contact lists use replaceable-event behaviorCovered for replacement of an older list.
09Kind 5 requests delete same-author targets addressed by e or a; deletion request remains storedCovered. No tombstone prevents later re-publication.
11HTTP relay information document with CORS headers and configurable metadataCovered. Limit values are advertised but not enforced.
17Kind 10050 storage and authenticated access control for kind 1059 gift wrapsCovered for recipient access and unauthenticated denial.
22Kind 1111 comments and upper/lower-case indexed tag filteringCovered for storing and finding a comment by E and e.
28Kinds 40–44; latest kind 41 retained per referenced channelCovered. Moderation events are stored but not enforced.
40Expiration stored; expired records omitted from queries; already-expired events rejectedCovered. Expired rows are hidden rather than purged.
42Challenge on connection and signed kind 22242 authenticationCovered with NIP-70. Relay URL value and authentication-event time are not validated.
70--tagged events require authentication as the event authorCovered for unauthenticated, matching-author, and different-author publication.
71Kinds 21 and 34235 can be stored and queried; addressable replacement rules apply to kind 34235Covered for normal and addressable video events.
77NEG-OPEN, NEG-MSG, NEG-CLOSE, NEG-ERR; reconciliation over timestamp/ID vectorsCovered for a client missing two of five events. Sessions are connection-local.

General event semantics

  • Kinds 0, 3, and 10000–19999 are treated as replaceable by author and kind.
  • Kinds 30000–39999 are treated as parameterized replaceable by author, kind, and d tag.
  • Kind 41 receives special replacement behavior keyed by its e tag.
  • Only tags with a one-character alphabetic name are indexed. Only the tag name and first value are stored.
  • Query results exclude expired records and are ordered by newest timestamp then ID, unless requested for Negentropy.

Conformance work still needed

  • Test the complete NIP-01 message grammar, malformed input, filter prefixes, limits, duplicate events, and concurrent subscription behavior.
  • Preserve every tag field exactly through a storage round trip.
  • Validate NIP-42 relay URLs and freshness.
  • Decide and document gift-wrap read/write, retention, and operator-access policy.
  • Run a compatibility suite against the Nostr clients and SDKs the product line intends to support.