
Blossom Upgrade Documents (mirror)
An unofficial mirror of https://github.com/hzrd149/blossom. This key copied these documents, it did not write them. Each one names the file and the commit it was copied from and carries the sha256 of those bytes, so any copy can be checked against its source. The specifications are Unlicense.
- key
- npub1zvm2zlskr58g4u4k3m54454y087r30hedgtavyn75q4yp55dm9lqz4932r
- publishing
- since 2024-02-20
13 specifications
BUD-00: Blossom Upgrade Documents
Defines the language every other BUD is written in, and what a blob is: raw binary data addressed by the sha256 hash of that data.
draft#blossom#budBUD-07: Paid upload and download
How a server charges for an endpoint: a 402 response carrying the payment terms, for uploads, downloads or media processing.
draft#blossom#budBUD-06: Upload requirements
Defines HEAD /upload, a preflight request telling a client whether an upload would be accepted before it sends the bytes.
draft#blossom#budBUD-02: Blob upload
Defines PUT /upload and the blob descriptor, the JSON object describing a stored blob: its url, hash, size, mime type and upload time.
draft#blossom#budBUD-01: Server requirements and blob retrieval
The base every Blossom server implements: the CORS headers, the error reporting, and the GET and HEAD endpoints that serve a blob by its hash.
draft#blossom#budBUD-05: Media optimization endpoints
Defines PUT /media, where a server transcodes and optimises what it is given rather than storing the bytes untouched.
draft#blossom#budBUD-04: Mirroring blobs
Defines PUT /mirror, which asks a server to fetch a blob from a URL itself instead of having the client upload the same bytes twice.
draft#blossom#budBUD-12: Blob management endpoints
Defines the management endpoints: listing what a pubkey uploaded, and deleting a blob by its hash.
draft#blossom#budBUD-11: Nostr Authorization
Defines the kind 24242 event a user signs to prove to a server that they allowed an application to act on their behalf.
draftcovers24242Blossom authorization#blossom#budBUD-10: Blossom URI Schema
Defines the blossom: URI, which carries a blob hash, its extension, and hints about the servers where it can be found.
draft#blossom#budBUD-09: Blob Report
Defines PUT /report, where a client submits a signed NIP-56 report naming the blobs it objects to.
draft#blossom#budBUD-03: User Server List
Defines kind 10063, the replaceable event where a user lists the Blossom servers holding their blobs, most trusted first.
draftcovers10063User server list#blossom#budBUD-08: Nostr File Metadata Tags
How a server returns NIP-94 file metadata alongside a blob descriptor, so a client can publish the file without recomputing it.
draft#blossom#bud