Skip to content

Bitcoin accepted at checkout  |  Ships from Montreal, QC, Canada  |  Expert support since 2016

Blossom Protocol Reference: The BUD Registry (Nostr Blob Storage)

Quick answer

Blossom is a Nostr-native protocol for storing binary blobs (images, files, media) on public HTTP servers, addressed by their SHA-256 hash and authenticated with your Nostr keys — so your media is content-addressed and portable across servers instead of locked to one host. Its features are defined in numbered specs called BUDs (Blossom Upgrade Documents), BUD-00 through BUD-12. The registry below is sourced from the Blossom repository (public domain).

Sourced from github.com/hzrd149/blossom (Unlicense / public domain), as of 2026-07-21. Blossom is young and evolving — confirm the current wording of any BUD at the repo before you build against it.

BUDTitleWhat it defines
BUD-00 Blossom Upgrade Documents The meta-spec: how BUDs are numbered and how servers advertise the additional features they implement.
BUD-01 Server requirements & blob retrieval The core: fetch a blob by its SHA-256 hash over HTTP (GET /<sha256>), and the baseline server behaviour.
BUD-02 Blob upload & management The upload mechanism (PUT /upload) and the blob descriptor a server returns for a stored blob.
BUD-03 User Server List How a user publishes the list of Blossom servers they prefer, so clients know where to store and find their blobs.
BUD-04 Mirroring blobs Replicating a blob from one server to another (PUT /mirror) so it is not tied to a single host.
BUD-05 Media optimization Endpoints for server-side media processing / optimization of uploaded content.
BUD-06 Upload requirements Pre-flight validation of an upload before the bytes are sent.
BUD-07 Payment required How a server operator can require payment for storage (monetization).
BUD-08 Nostr File Metadata Tags Standardized Nostr tags for describing a stored file’s metadata.
BUD-09 Blob Report A protocol for reporting problematic or abusive blobs to a server.
BUD-10 Blossom URI schema A URI format for referencing a Blossom blob.
BUD-11 Nostr Authorization Authenticating requests using Nostr keys (signed authorization events).
BUD-12 Blob management endpoints Listing and deleting the blobs a user has stored on a server.

Why it matters for a sovereign stack

Nostr handles the notes; Blossom handles the blobs those notes point at. Because a blob is addressed by its hash and your server list is your own Nostr event, you can mirror your media across several servers and move hosts without breaking links — the same content-addressed, host-independent idea that makes the rest of the sovereign stack resilient.

Related

Nostr key management · Nostr event-kinds reference · Nostr relay directory · Meshtastic PortNum registry (the mesh analogue) · the sovereignty hub.

Credit: Blossom is designed and maintained by hzrd149 and the Nostr community; this page is a dated, human-readable index of the project’s BUD specs.