S5 Protocol

A Content-Addressed Data Routing Network that is decentralized, scalable, efficient, secure, and FOSS.

Apps web and native icon

Tools

CID explorer for the S5 network (it supports blob identifiers, FS5 CIDs and more):

cid.one

s5.cx is a web-based tool to securely stream files of any size directly from the S5 network. File data is NOT proxied by the s5.cx server.

See examples
Apps web and native icon

FS5 (S5 file system)

The S5 file system (FS5) is a decentralized, end-to-end-encrypted (if needed), content-addressed, versioned file system built using all primitives explained in the other S5 specifications.

Read the docs
S5 Streams icon

S5 Portals (and network)

Uploads and pinning icon

Uploads / Pinning

S5 Nodes provide two HTTP-based APIs for uploading files, depending on the file size and if you need resumable uploads.

docs.s5.pro/spec/upload
Accounts icon

Accounts

Many use cases of S5 require either storing more data that can fit on a user's local device or users might simply want to use a hosted provider to store their data. To make this easier, S5 defines a unified API for this common requirement

docs.s5.pro/spec/accounts
Accounts icon

Storage Backends

The Sia Foundation logo Pixeldrain logo Backblaze logo

lots more...

Apps web and native icon

FS5 (S5 file system)

The S5 file system (FS5) is a decentralized, end-to-end-encrypted (if needed), content-addressed, versioned file system built using all primitives explained in the other S5 specifications.

Read the docs
Apps web and native icon

FS5 Blobs

S5 uses a custom CID format for blob identifiers pointing to blobs of data addressed by their blake3 hash, read the spec to learn more:

docs.s5.pro/spec/blobs
S5 Registry icon

S5 Registry

The registry is a distributed key-value store on the S5 Network and makes mutable data structures possible by being a pointer to immutable blobs.

docs.s5.pro/spec/registry
S5 Streams icon

S5 Streams

Streams are an extension of the registry, making it possible to access previous versions of entries in an efficient way

docs.s5.pro/spec/streams
Apps web and native icon

S5 End-to-End Encryption

It ensures secure end-to-end-encryption when users need it, like in their private file system or when sending messages over a stream.

docs.s5.pro/spec/encryption
Identity icon

Identity

There are two types of identity, private and public ones. Currently, S5 only supports private identites. This means that at the moment, the S5 root identity (stored in the seed phrase) is only used to derive private secrets, like the ones managing access and encryption for the private file system. While you can share directories from your private file system with others, or even create a public file system, S5 does not manage one public user identity key which then links to the entrypoints to these or stores other public data.

docs.s5.pro/spec/identity docs.s5.pro/spec/key-derivation
Interoperability and Compatibility icon

Interoperability and Compatibility

  • HTTPS for files (existing CDNs and mirrors)
  • AT Protocol (Bluesky)
  • Iroh
  • IPFS (for small files)
Connectivity icon

Connectivity

  • Connect to portal nodes over WebSocket
  • File streams over HTTP
  • P2P connections with Iroh