Skip to content

About Nostr, relays and Blossom

A short primer on the protocol this index is built around.

What is Nostr?

Nostr — "Notes and Other Stuff Transmitted by Relays" — is an open protocol for censorship-resistant publishing. Identities are key pairs: your public key is your identity and every message you publish is a JSON event signed with your private key. Because signatures can be verified by anyone, it does not matter which server delivers an event.

Events and kinds

Everything on Nostr is an event with an id, pubkey, created_at timestamp, kind, tags, content and signature. The kind tells clients what the event means: kind 1 is a short text note, kind 0 is profile metadata, kind 10002 is a user’s relay list and kind 10063 is a user’s Blossom server list.

Relays

Relays are simple WebSocket servers that store and forward events. Clients send EVENT messages to publish and REQ messages with filters to subscribe. Relays do not talk to each other; users publish to several relays and announce where they can be found via NIP-65 relay lists, which lets clients follow the “outbox model”. Relays describe themselves through a NIP-11 information document that lists supported NIPs, software, limits and policies such as payment or authentication.

NIPs

NIPs — Nostr Implementation Possibilities — are the specifications that describe optional features: NIP-42 authentication, NIP-50 search, NIP-29 relay-based groups, NIP-17 private messages and many more. Filtering relays by NIP tells you which features you can rely on.

Blossom

Relays are not designed for large files. Blossom (“Blobs stored simply on mediaservers”) fills that gap: HTTP servers that store blobs addressed by their SHA-256 hash. Uploads are authorised with a signed Nostr event (kind 24242), and because the address is the hash, the same file can be mirrored to many servers and fetched from whichever is online. Users publish their preferred servers in a kind:10063 list (BUD-03).

How we measure

A relay is online when its WebSocket opened and answered a REQ, degraded when it connected but did not answer the read probe, and offline when it could not be reached. Popularity counts the distinct public keys whose latest relay or Blossom list contains the server. The relay score weights 7-day uptime (50%), latency (25%) and popularity (25%); the Blossom score weights uptime (40%), upload success (20%), latency (20%) and popularity (20%).

Test data

Our relay write test publishes a single ephemeral event (kind 20000–29999) signed by a throwaway key, which relays acknowledge but do not store. Blossom test uploads are slightly altered demo images that are deleted again right after verification.