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.
| NIP | Implemented behavior observed | Evidence and qualification |
|---|---|---|
| 01 | Signed event publication; OK; REQ; EVENT; EOSE; CLOSE; live matching; common filters | Covered. ID and author filters use exact equality; prefix-filter behavior is not implemented. Stored tags lose fields after the first value. |
| 02 | Kind 3 contact lists use replaceable-event behavior | Covered for replacement of an older list. |
| 09 | Kind 5 requests delete same-author targets addressed by e or a; deletion request remains stored | Covered. No tombstone prevents later re-publication. |
| 11 | HTTP relay information document with CORS headers and configurable metadata | Covered. Limit values are advertised but not enforced. |
| 17 | Kind 10050 storage and authenticated access control for kind 1059 gift wraps | Covered for recipient access and unauthenticated denial. |
| 22 | Kind 1111 comments and upper/lower-case indexed tag filtering | Covered for storing and finding a comment by E and e. |
| 28 | Kinds 40–44; latest kind 41 retained per referenced channel | Covered. Moderation events are stored but not enforced. |
| 40 | Expiration stored; expired records omitted from queries; already-expired events rejected | Covered. Expired rows are hidden rather than purged. |
| 42 | Challenge on connection and signed kind 22242 authentication | Covered with NIP-70. Relay URL value and authentication-event time are not validated. |
| 70 | --tagged events require authentication as the event author | Covered for unauthenticated, matching-author, and different-author publication. |
| 71 | Kinds 21 and 34235 can be stored and queried; addressable replacement rules apply to kind 34235 | Covered for normal and addressable video events. |
| 77 | NEG-OPEN, NEG-MSG, NEG-CLOSE, NEG-ERR; reconciliation over timestamp/ID vectors | Covered 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
dtag. - Kind 41 receives special replacement behavior keyed by its
etag. - 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.
Previous
Development operationNext
Trust and data