How Sia works
Your application encrypts each file, encodes it into 30 shards and stores every shard with a different provider. Any 10 of those shards bring the file back.

How a file gets stored
The whole process in a minute. The steps below follow this video's own chunk through it.

This video streams directly from the Sia network.
The life of one chunk
The 5.08 MB video above is stored on Sia and streams from its providers as you watch. Here is what happened to it, drawn from its real shards and providers. Every chunk of every file goes through the same five steps.
Encrypt
The SDK encrypts the file inside your application with XChaCha20, using a data key made for that file. The data key is only ever stored sealed with your app key, which comes from your recovery phrase. Nothing readable leaves your device.

The video, 5.08 MB
The same bytes, encrypted
Encode
The encrypted stream is cut into 40 MiB chunks. Reed-Solomon coding turns each chunk into 10 data shards and 20 parity shards of 4 MiB, then each shard is encrypted again with a key for that chunk. That is 3 times redundancy.
This video is smaller than 40 MiB, so it fits in one chunk of 30 shards. The SDK accepts other layouts between 1.5 and 4 times redundancy, as long as a chunk stays recoverable with 99.99% probability when each provider is online 75% of the time.
The first chunk as 10 data shards and 20 parity shards. Distribute
The SDK uploads each of the 30 shards to a different storage provider, directly from your application. Providers only ever receive encrypted shards. Once the upload finishes, the SDK pins the chunk with an indexer, which records where each shard lives.
This chunk is held by 30 providers in 17 countries.
Each shard with its provider's country code. Recover
Reading a chunk takes any 10 of its 30 shards. The SDK asks the fastest providers first and requests a few extra shards, so one slow provider does not hold up the read. It removes each shard's encryption and rebuilds the chunk from whichever 10 arrive first. Up to 20 providers can be offline at once.
10 shards are enough to rebuild the chunk. Read
Decrypting with the data key returns the original bytes. A read can start at any offset, because the SDK fetches only the part of each shard that covers the requested range. That is how the video above starts playing before all 5.08 MB have arrived.
The demo on the home page streams a longer video and shows each shard arrive from its provider as it plays.
The rebuilt chunk

Decrypted in your application
Who can read your data
Two layers of encryption split what each part of the network knows. The chunk key lets an indexer repair shards it cannot read, because the inner layer needs the data key, and that never leaves your application.
Trust and deployment model (opens in a new tab)| Participant | Holds | Can read |
|---|---|---|
| Your application | Your app key, derived from your recovery phrase, and through it every data key | Your files and their names |
| Indexer | Chunk keys, shard locations, and file records sealed with your app key | Which shards are healthy. Not file contents or names. |
| Storage providers | Encrypted shards and the contracts that pay for them | Nothing in the shards they store |
| Sia blockchain | Storage contracts, payments and storage proofs | No file data. File contents never go on chain. |
Contracts, payments and repair
File data moves only between your application and providers. The indexer handles everything around it.
Contracts
The indexer forms storage contracts with providers on the Sia blockchain. Each one locks payment from the indexer and collateral from the provider, both in Siacoin.
Proofs
At the end of a contract the provider submits a storage proof to the blockchain. A provider that cannot prove it still holds the data loses its collateral.
Payments
Your application pays providers for each transfer from prepaid accounts on the providers. The indexer keeps those accounts funded from its contracts.
Repair
The indexer tracks the health of every chunk. When providers drop out, it fetches enough healthy shards, rebuilds the missing ones and uploads them to new providers.
The network today
Independent providers offer the storage, and anyone with spare disks and bandwidth can become one.
Provide storage- Active providers
- 520
- Capacity offered
- 7.14 PB
- Capacity in use
- 2.17 PB
From Siascan on .
What storage costs
Each provider sets its own prices for storage and transfer, and storage software chooses providers against its own requirements. These are the current medians across the network.
- Storage, with 3× redundancy
- $3.02/TB/month
- Upload
- $0.02/TB
- Download
- $2.46/TB
Median provider prices from Siascan, converted to US dollars on . Contract fees are extra. Hosted services such as Sia Storage sell plans at their own rates.
Open source, funded by a nonprofit
The protocol, the SDKs, indexd and hostd are developed in public on GitHub. The Sia Foundation, a nonprofit, funds that work. Storage providers and hosted services are independent businesses.
Build with the SDK
Install the Sia Storage SDK for JavaScript, Rust, Go, Python or Dart and store your first object.