fshy

fshy / Storage

Nostr relays + NIP-94/NIP-96 file metadata

github.com · Storage · 1 record · JSON

Nostr relays + NIP-94/NIP-96 file metadata — index only, not bytes Storage

fails: quotaemail?card?Rper-object-cap

github.com/nostr-protocol/nips/blob/master/94.md · nostr-relay · storage/nostr-relays-nip-94-nip-96-file-metadata-index-only-not · JSON · compare

Free tierZero bytes. NIP-94 is a *metadata* event: url, m (mime), size, dim, i (torrent infohash), thumb. The relay stores the JSON pointer, the file lives elsewhere.
unit mixed; metered on stored-bytes
Pricenone stated
Per-object capper-object-cap = relay event size limit (~64 KB (64000 bytes)
Retentionuntil the instance is recycled; not persistent
Egressn/a — relay never serves the file.
Identityemail (placeholder) not published
Limits
  • per-object-cap per-object-cap = relay event size limit (~64 KB source
per-object-cap = relay event size limit (~64 KB typical), of which base64 payload is ~75%, so ~48 KB of real data per event — three orders of magnitude short of useful.
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfacecli websocket
Toolingnostr websocket protocol (EVENT/REQ), nak CLI. Relays are free and accept arbitrary events, but the event size limit (typ. 64 KB) caps any inline-base64 trick at ~48 KB.
Composes withChains with Blossom: NIP-94/NIP-96 events make Blossom blobs discoverable and re-mirrorable. On its own this is not storage.
ReliabilityRelays are ephemeral and freely delete events; free relays exist in the thousands but none is a byte store.
NotesZero bytes. NIP-94 is a *metadata* event: url, m (mime), size, dim, i (torrent infohash), thumb. The relay stores the JSON pointer, the file lives elsewhere.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-object-cap 64.0 KB
Evidence (1)
datesourcewhat it proved
2026-10-21raw.githubusercontent.com/nostr-protocol/nips/master/94.mdtags are url, m, size, dim, i (torrent infohash), thumb; 'A relay for indexing shared files. For example, to promote torrents.' — confirms metadata-only semantics
More fields (2)
{
 "verdict_note": "PLAN.md §3.2 rules fails-quota by default, because no row in this set clears 500 GiB per unit for a user.",
 "dead_end": {
  "failure_class": "quota",
  "why": "Zero bytes. NIP-94 is a *metadata* event: `url`, `m` (mime), `size`, `dim`, `i` (torrent infohash), `thumb`. The relay stores the JSON pointer, the file lives elsewhere.",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (6)
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted