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

Nostrfi Relay

prototypeNot publicly available

Overview

Nostrfi Relay is a Nostr relay implementation written in Go. It speaks the Nostr WebSocket protocol and implements a range of NIPs (NIP-01, 02, 09, 11, 17, 22, 28, 40, 42, 70, 71, 77).

The relay accepts signed events, serves filtered history, distributes live events to active subscriptions, persists events in a local DuckDB database, and publishes a configurable NIP-11 relay information document.

Prototype status. This relay is a prototype. It has not been deployed as a public production service. Advertised NIP-11 limits are not enforced by the request path. Do not operate it as a public relay without completing the production-readiness checklist.

What it does

  • Accepts signed events and returns NIP-01 OK responses
  • Serves stored events for REQ filters followed by EOSE and supports CLOSE
  • Broadcasts matching newly accepted events to active subscriptions
  • Persists events and indexed single-letter tags in a local DuckDB database
  • Applies replaceable and parameterized-replaceable event semantics
  • Publishes a configurable NIP-11 relay information document
  • Issues NIP-42 authentication challenges per WebSocket connection
  • Restricts NIP-70 protected-event publication to the authenticated author
  • Restricts kind 1059 gift-wrap reads to an authenticated recipient or author
  • Supports expiration filtering, deletion requests, and Negentropy sessions

Source

The relay source repository is at github.com/nostrfi/relay.

Next steps