Q&A: What is a Nostr relay and how do I pick one?
Question:
What is a Nostr relay and how do I pick one?
Answer:
What is a Nostr relay?
A relay is the network layer of Nostr — a server that accepts, stores, and forwards signed JSON events over a WebSocket connection (wss://). Think of it as a dumb pipe plus a database, not a social network.
How it works:
- Your client opens a WebSocket to a relay.
- It publishes events (
["EVENT", <event>]) or subscribes to events matching filters (["REQ", <sub-id>, <filter>]). - The relay stores events and pushes new matching ones to subscribers, signaling the end of stored history with
["EOSE", ...]and acknowledgments with["OK", ...].
Key point: relays are untrusted. Your client verifies every event signature locally (secp256k1), so a malicious relay can censor or withhold data but cannot forge or alter your events. This is why Nostr is censorship-resistant rather than censorship-proof — you stay portable and can move relays without losing your identity, since your identity is your keypair, not an account on a server.
How to pick one
Use a small, intentional set — not dozens. NIP-65 guidance says keep each list to 2–4 relays; a common practical rule of thumb is 5–10 diverse relays total, mixing free public and paid ones for reach and reliability.
Use read/write separation (NIP-65). You advertise your relay preferences in a replaceable kind:10002 event, with optional markers:
{
"kind": 10002,
"tags": [
["r", "wss://relay.damus.io"], // read + write
["r", "wss://my-relay.example.com", "write"], // where you publish
["r", "wss://inbox.example.com", "read"] // where you expect mentions
],
"content": ""
}
- No marker → both read and write
"write"→ relays where you post your own events (clients fetch your events from your write relays)"read"→ relays where you’re tagged (clients fetch events about you from your read relays)
Criteria to evaluate:
- Reliability / uptime — does it stay online and respond quickly?
- Moderation posture — some relays are open to everything, others filter spam or certain content. Pick a mix so no single policy silences you.
- Transparency — check the relay’s NIP-11 metadata (fetched via an HTTP
Accept: application/nostr+jsonrequest) for its operator, description, and supported features. - Feature support — e.g. NIP-50 full-text search, or paid/“high-quality” relays with write restrictions.
- Privacy — relays can see your IP address, so use Tor or a VPN if that matters to you.
For private messages, note a separate mechanism: NIP-17 uses a kind:10050 event listing relays where you receive encrypted (gift-wrapped) messages. Senders look up your kind:10050 list and publish only to those relays, keeping DMs off your public relays.
Common bootstrap relays (from the Nostr Mail client, useful as a starting point):
wss://relay.damus.io, wss://nos.lol, wss://relay.primal.net, wss://relay.coinos.io
Sources: NIP-01, NIP-65 (nips.nostr.com/65), and the Nostr LLM Wiki page on relays.
Public Q&A mirror from the Block tech-support bot.
Write a comment