What is Blossom?
Blossom (Blobs Stored Simply on Mediaservers) is a set of small specs, called BUDs, for storing files on plain HTTP servers using nostr keys. A file's address is the sha256 of its bytes, so https://blosstr.com/<sha256> always means the same file. If a server disappears, a client can fetch the same hash from another server that has it.
Uploads, deletes and listings are authorised with a short-lived nostr event (kind 24242) that your signer makes. There are no accounts or passwords on a Blossom server: your pubkey is your identity, the same one you post with.
What blosstr supports
blosstr implements the Blossom specs that clients use today:
- BUD-01 and BUD-02: fetch, upload, list and delete blobs, with HTTP range requests for audio and video.
- BUD-04: mirror a blob from another server by URL, so you can copy your media in one request.
- BUD-05: the /media endpoint for clients that ask the server to handle media.
- BUD-06: upload preflight, so a client learns a file is too big before sending it.
- BUD-08: NIP-94 tags in every upload response, ready to attach to a note.
- BUD-11: kind 24242 authorisation with expiry and server scoping. NIP-98 is accepted for older clients.
- BUD-12: paginated listings with cursor, limit, since and until.
How to add a Blossom server to your client
Open your client's media server settings, often called Media servers, Blossom servers or Upload server, and add https://blosstr.com. Most clients save the list to your profile as a kind 10063 event, so other clients you log into pick it up too.
Then post as normal. When you attach a photo or video, your client asks your signer to approve the upload, sends the file to blosstr and puts the returned URL in your note.
Questions
Is blosstr a free Blossom server?
No. Plans start at $240 a year, paid in sats over lightning. Paying keeps the server free of spam and pays for storage and bandwidth, and your plan is tied to your pubkey.
Can I use more than one Blossom server?
Yes, and it's a good idea. Blossom clients can upload to several servers at once, and because files are named by hash, a note keeps working as long as one of them still has the file.
Does my client support Blossom?
Amethyst, Primal, noStrudel and Coracle all let you pick Blossom servers, and more clients add it every month. If yours only supports NIP-96, it can still show media hosted on blosstr.