deCDN
decdn.org · Storage · 1 record · JSON
deCDN Storage
fails: quotaemailno cardRwrite-gated
| Free tier | No free capacity. No storage tier at all: 'Not a blockchain or storage network — durability relies on cheap, reliable object storage (S3-class) owned by origin operators.' Target delivery price $0.01/GB (node default rate payment.rate_per_mb = 10 = $0.00001/MB).unit GB; metered on stored-bytes |
|---|---|
| Price | none stated |
| Per-object cap | not stated |
| Retention | not stated |
| Egress | $0.01/GB target, set per node and signed into every quote; client sets a ceiling. Testnet is sponsor-funded with a capped allowance — 'there is nothing to pay and no account to make' — but that is testnet money on Arbitrum Sepolia. |
| Identity | email email |
| Limits |
Per-MB payment is mandatory for clients on mainnet — there is no free reader tier. Namespaces gate the origin role ('Once you get approved, the rest of the network accepts your nodes as origins'), so publishing is write-gated by a human. Node bond on testnet is 50,000 TOKEN for anything up to ~1 Gbps; unbonding takes 14 days. 0.4% verification overhead plus node-to-node pull costs. |
| Binding | write-gated the write is a queue with a person or a rule in it, so the upload rate is set by somebody else |
| Interface | cli Client SDK (Rust; macOS/Linux/Windows, phone/browser in testing) + decdn CLI: decdn get 'decdn:<blake3hash>/?ns=1'. One human-verification step in a browser on first install. |
| Tooling | Install via curl -fsSL https://up.decdn.org/decdn.sh | sh -s -- get '<uri>' (both scripts returned HTTP 200); PowerShell variant; node operator side is decdn setup / decdn node bond. |
| Composes with | Origin node in front of your own S3/R2/B2/NFS/local disk stays hidden; bonded nodes cache and re-serve over iroh QUIC with bao-encoded verified streaming. Multi-source fetch splits blobs >64 MiB across up to 4 nodes, one per operator. Publisher's own origin pulls are free — cache misses cost the *serving node*, not the publisher. |
| Reliability | Public testnet only (Arbitrum Sepolia, launched 2026-10-13); governance hash blacklist forces nodes to stop serving a listed hash within 24 h, and the origin role is approval-gated. |
| Notes | No free capacity. No storage tier at all: 'Not a blockchain or storage network — durability relies on cheap, reliable object storage (S3-class) owned by origin operators.' Target delivery price $0.01/GB (node default rate payment.rate_per_mb = 10 = $0.00001/MB). |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (6)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | docs.decdn.org/overview/introduction | content-addressed, paid per MB, origin-hidden, bonded/slashable, 'Not a blockchain or storage network' |
| 2026-10-21 | decdn.org/ | '$0.01/GB' target, split fetch over >64 MiB with ≥2 holders across up to 4 operators, origin 'Once you get approved' |
| 2026-10-13 | decdn.org/blog/testnet-is-live/ | 2026-10-13 public testnet, sponsor-capped allowance, 'nothing to pay and no account to make', pilots by email |
| 2026-10-21 | docs.decdn.org/run-a-node/bond-and-earnings | bond curve 12.6 x Mbps^1.2, testnet minBond 50,000 TOKEN, 14-day unbond, operator share 60% testnet / 90% at mainnet launch |
| 2026-10-21 | docs.decdn.org/run-a-node/requirements | UDP 4433 public, 5 TB/month egress recommended, cache 250 GB-1 TB |
| 2026-10-21 | decdn.org/blog/who-actually-needs-this/ | 'no single vendor can reprice you'; the pitch is verified delivery, not free bytes |
More fields (1)
{
"dead_end": {
"failure_class": "paid",
"why": "No free capacity. No storage tier at all: 'Not a blockchain or storage network — durability relies on cheap, reliable object storage (S3-class) owned by origin operators.' Target delivery price $0.01/GB (node default rate `payment.rate_per_mb = 10` = $0.00001/MB).",
"retry_when": null,
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (6)
$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.per_object_cap.statednot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted