the delivery layeranyone can serve
A 14-gigabyte file posted in Berlin streams to a client in Tokyo from several nodes at once, every chunk verified with BLAKE3, paid for per megabyte in USDC. The code is open. The network is open. The price is posted.
information scaled.supply didn't.
The pattern repeats whenever something big ships: mirrors fork, CDNs rate-limit, small teams burn tens of thousands hosting bytes they don't own. deCDN inverts every axis — supply forms around demand instead of being allocated to it.
| axis | traditional cdn | decdn/ decentralized |
|---|---|---|
| price | $0.01 | |
| delivery | fixed provisioning | demand-shaped mesh |
| billing | monthly minimums, annual contracts | per megabyte, in USDC |
| operators | three hyperscalers | home labs to datacenters |
| integrity | trust the origin | BLAKE3, verify every chunk |
| failure | PoP dies, region 503s | node drops, stream continues |
| scaling | gets more expensive | gets cheaper |
How it works
probe
The client draws candidate nodes from the on-chain CapacityBond registry, or from its own peer store of nodes it has measured before — if that store is fresh, it skips the probe entirely. Otherwise it probes a shortlist of candidates in parallel for who holds the file and how fast they answer. It ranks holders by measured round-trip time alone. Price is not a rank key: the client pays the rate the node signs, and can cap it with a ceiling of its own. No reputation score is kept.
swarm
Bytes stream directly from the chosen node. For files over 64 MiB with at least two holders, the client splits the fetch across several nodes — one per operator — and fills its downlink from all of them at once. Every chunk is verified against the BLAKE3 tree hash as it lands. Bytes that fail verification never get a voucher, so the node that sent them is paid nothing for that range, and the client refetches it from another node. Trust no node — verify every byte.
settle
You pay per megabyte in USDC, automatically, as the bytes arrive — no monthly invoice, no subscription, no whole-file minimum. Pay for what you pulled, nothing more.
- Rust
- BLAKE3
- QUIC
- iroh
- USDC
- EVM
frequently asked.
Set up origin nodes in front of your own storage, whether that is an S3-compatible bucket, an NFS mount or a local disk, and join the network. Your files stay where they are.
Once you get approved, the rest of the network accepts your nodes as origins and caches your content as your users ask for it. To get started, write to us at info@decdn.org.
Keep the bucket. It becomes the origin behind deCDN, read only on a cache miss and never exposed to the network, so you stop paying its egress on every download.
Your files are served instead by many independent operators close to your users, large files from several of them at once, and when a node drops the download carries on from the next one. Operators compete on every request, so an open market sets your delivery price rather than one vendor's egress rates.
Through your own app. You build downloads into it with the deCDN client SDK, and your users never have to know deCDN is there.
The SDK pulls each file from several nodes at once, checks every piece as it arrives, and picks up where it left off if the connection drops. It runs on macOS, Linux and Windows today, and we are testing phone and browser support.
No. You fund a USDC pool and your users download from it, with no wallet, no token and no sign-up.
Each user gets their own allowance, so they can only spend as much as you allow them, and only you can top up or close the pool. The testnet download on this page works the same way.
Each node sets its own per-megabyte rate in USDC and signs it into every quote, so you see the price before a byte moves. A node that charges more than it quoted loses part of its bond.
You never pay more than the ceiling you set, and you pay only for bytes that verify, as they arrive, with no minimums or contracts. The network's target is $0.01/GB.
Governance keeps a public, on-chain blacklist of content hashes, network-wide or for a single region. Nodes have 24 hours to stop serving a listed hash, and repeated offenses result in removal from the network.
Every entry is public, so a wrongful one is visible to anyone, and governance can lift it.
try it: download something real.
Pick something we seeded on the testnet and paste the line into a terminal on macOS or Linux, or into PowerShell on Windows. It installs deCDN, opens one captcha in your browser, then downloads it from the network and checks every byte against its BLAKE3 hash. The testnet sponsor pays for the transfer, so there is no wallet, no token, and no sign-up.
$ curl -fsSL https://up.decdn.org/decdn.sh | sh -s -- get 'decdn:9194000d7b356650e6924a7746ec4afb0b705838b65913c0e46cba6b15af69e5/?ns=1'- # Files land in the current directory. Add --select to preview.
- # Interrupted? Run the same line again to resume.
the network is open.so is our inbox.
Write to us with questions, partnerships, or anything you'd run on a fleet of idle machines. We read everything.