Definition
Blossom is a protocol for storing binary media, called blobs, on servers that are independent of Nostr relays. It exists because relays are designed for small signed text events, not large images, audio, or video. By moving files off relays and addressing them by content hash, Blossom lets Nostr clients reference media in a portable, verifiable way without forcing relays to become file hosts.
Content-addressed blobs
Every blob is identified by the SHA-256 hash of its contents. The core retrieval endpoint is GET /<sha256>, served from the root of the domain, which returns the raw blob. Because the address is the hash, a client can fetch the same file from any Blossom server and verify it is bit-for-bit correct, so storage becomes interchangeable: if one server disappears, the identical blob can be retrieved elsewhere. Servers must send permissive CORS headers and may support optional file extensions, range requests, and a Sunset header advertising when a blob may become unavailable.
Authorization
Uploads, deletions, and similar actions are gated by authorization events: signed Nostr events of kind 24242 whose t tag names a verb such as upload, get, list, delete, or media. This proves the user's pubkey permitted the action, tying media operations back to the same keypair identity used everywhere else on Nostr.
For sovereign users, Blossom means your media is not locked to one provider and can survive any single host. It complements the keypair identity model; see Nostr Event Kind for how authorization events are typed.
In Simple Terms
Blossom is a protocol for storing binary media, called blobs, on servers that are independent of Nostr relays. It exists because relays are designed for…
