Home / Storage
Blossom blob servers (nostr.download, blossom.nostr.build, 24242.io)
blossom.nostr.build/Nostr media/blob servers (content addressed, keypair auth)storage/blossom-blob-serversJSONcomparereport an errorprovider JSON
- Free allowance
- Per-object caps only, and small: nostr.build free uploads 20 MiB, hard cap 100 MiB, then storage plans 5 GB / $18/yr up to 500 GB / $240/yr.
- Verdict
- fails: quotathe free allowance is too small to matter
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- retention-clampeddeleted after 60 days
- Evidence
- reported5 sources; a third party said so
- Freshness
- stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
| Free tier | Per-object caps only, and small: nostr.build free uploads 20 MiB, hard cap 100 MiB, then storage plans 5 GB / $18/yr up to 500 GB / $240/yr. 24242.io: 100 MiB max file, files deleted after 60 days unaccessed. blossom.psbt.me: 1 month hosting, files under 1 MB. unit GB; metered on stored-bytes |
|---|
| Price | none stated |
|---|
| Limits | - retention-clamped (binding) deleted after 60 days source
20 MiB free / 100 MiB absolute on nostr.build; 100 MiB on 24242.io; 1 MB on psbt.me. Auth is a signed event, so 'no account' is real: 401 with x-reason 'Missing Blossom Authorization header'. |
|---|
| Identity | anonymous anonymous |
|---|
| Egress | Free CDN, global. |
|---|
| Per-object cap | not stated |
|---|
| Retention | 24242.io: 100 MiB max file, files deleted after 60 days unaccessed (60 days) |
|---|
| Interface | rest BUD-01/BUD-06 HTTP API: PUT /upload, HEAD /upload, DELETE; auth is a signed Nostr event in the Authorization header, not an account. |
|---|
| Tooling | any Blossom client; curl with a signed event. |
|---|
| Composes with | Content-addressed by sha256, so it chunks naturally into the hoangvu12/free-s3 pattern — but 20 MiB chunks would need ~50,000 objects per TiB. |
|---|
| Reliability | Pure per-object-cap failure. |
|---|
| Parsed numbers | |
|---|
Evidence 5
| date | source | what it proved |
|---|
| 2026-10-21 | blossom.nostr.build/ | 'A hard cap of 100 MiB per upload (20 MiB for free uploads), with no limit on the number of uploads or retention'; plans $18/yr 5GB … $240/yr 500GB |
| 2026-10-21 | blossom.nostr.build/upload | HEAD returns 401, x-reason: 'Missing Blossom Authorization header, authorization required' (i.e. keypair auth, no signup) |
| 2026-10-21 | nostr.download/upload | 401, x-reason: 'Auth header not found' |
| 2026-10-21 | 24242.io/ | 'Max file size: 100MiB. Files are deleted if not accessed for 60 days.' |
| 2026-10-21 | blossom.psbt.me/ | 'Free Tier: 1-month hosting for files under 1 MB' |
More fields 1
| dead end | {"failure_class": "retention","why": "Per-object caps only, and small: nostr.build free uploads 20 MiB, hard cap 100 MiB, then storage plans 5 GB / $18/yr up to 500 GB / $240/yr. 24242.io: 100 MiB max file, files deleted after 60 days unaccessed. blossom.psbt.me: 1 month hosting, files under 1 MB.","retry_when": null,"first_recorded": "2026-10-21"} |
|---|
Unknown values 3
- per object cap notes: the field may be stated in a source that was not read
- per object cap stated: the field may be stated in a source that was not read
- retention notes: the field may be stated in a source that was not read