Home / Storage
Nostr relays as blob transport (event path, not Blossom)
nips.nostr.com/94Signalling onlystorage/nostr-relays-as-blob-transportJSONcomparereport an errorprovider JSON
- Free allowance
- No storage quota, but a hard per-event size ceiling that is the real limit.
- Verdict
- fails: quotathe free allowance is too small to matter
- Cost
- free tier
- Identity
- anonymousno card, no phone
- Binding limit
- per-object-capper-object-cap ~1 MB
- 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 | no storage quota, but a hard per-event size ceiling that is the real limit. Probed NIP-11 limitation.max_message_length: relay.damus.io 1,000,000 bytes; relay.primal.net 1,000,000 bytes; nos.lol 131,072 bytes. No payment_required, no auth_required on any of the three. unit mixed; metered on stored-bytes |
|---|
| Price | none stated |
|---|
| Limits | - per-object-cap (binding) per-object-cap ~1 MB source
per-object-cap ~1 MB on the most generous relays, 128 KB on nos.lol. 1 TiB would be ~1.4 million events. |
|---|
| Identity | anonymous anonymous |
|---|
| Egress | free and unmetered on all three. |
|---|
| Per-object cap | per-object-cap ~1 MB (1000000 bytes) |
|---|
| Retention | not stated |
|---|
| Interface | unknown WebSocket, NIP-01 REQ/EVENT; NIP-94 kind 1063 carries file metadata only. |
|---|
| Tooling | nak, nostr-tools, any relay client. Blobs are pinned by sha256+url in tags; the bytes live elsewhere (Blossom). |
|---|
| Composes with | base64 in tags costs 4/3 the payload, so a 1 MB message cap is ~750 KB of useful bytes. |
|---|
| Reliability | relays can be paid-gated (NIP-11 payment_required) and prune old events; several now require auth for writes. Correct use is metadata only, which is exactly what NIP-94 defines. |
|---|
| Parsed numbers | - has-free-tier 1
- per-object-cap 1 MB
|
|---|
Evidence 5
| date | source | what it proved |
|---|
| 2026-10-21 | relay.damus.io/ | with Accept: application/nostr+json — literal: max_message_length 1000000, max_subscriptions 200, payment_required None, auth_required None |
| 2026-10-21 | nos.lol/ | max_message_length 131072, max_subscriptions 100 |
| 2026-10-21 | relay.primal.net/ | max_message_length 1000000, max_subscriptions 20 |
| 2026-10-21 | nips.nostr.com/94 | NIP-94 defines kind 1063 file metadata with url/mime/sha256/size tags — metadata, not bytes |
| 2026-10-21 | github.com/renostr/nrps/blob/master/nrp-1.md | 'the total size of the event can't be larger than 50 267 340 bytes (~50 MB)' as an upper protocol bound, far above what any public relay accepts |
More fields 1
| dead end | {"failure_class": "quota","why": "no storage quota, but a hard per-event size ceiling that is the real limit. Probed NIP-11 limitation.max_message_length: relay.damus.io 1,000,000 bytes; relay.primal.net 1,000,000 bytes; nos.lol 131,072 bytes. No payment_required, no auth_required on any of the three.","retry_when": null,"first_recorded": "2026-10-21"} |
|---|
Unknown values 4
- interface: the access interface was not established
- per object cap notes: 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
- retention stated: the field may be stated in a source that was not read