Nodes
A node is a bonded QUIC endpoint that caches and serves content-addressed blobs.- Identity. A network keypair bound on-chain to an Ethereum address at registration (network).
- Bond. A capacity bond in TOKEN, scaled to declared bandwidth (
bond = k × Mbps^α) — the only TOKEN-side requirement to join the mesh; the bond scales with declared capacity rather than a flat minimum. - Discovery. Registered on-chain with its addresses and region; publishes a DHT record for each blob it caches, and quotes its current rate in every signed probe response.
- Delivery. Serves the paid-delivery protocol — the sole rail for both client→node and node→node traffic.
- Earnings. Per-MB voucher revenue in USDC.
“Origin-backed” is a deployment choice, not a protocol distinction — the network cannot tell them apart at runtime. It is also per-blob: for anything outside its own backend, an origin-backed node is a cache node and pays upstream like any other.
Clients
A client is a lightweight QUIC endpoint that consumes content and pays for it.- Identity. A network keypair generated at first startup and persistent across sessions, plus a per-connection binding to an Ethereum address that the node discards on disconnect — no stake, no on-chain registration.
- Discovery. Reads the on-chain registry for its peer set and queries the DHT for holders. Publishes nothing and holds no network role.
- Payment. Opens one on-chain USDC pool, reuses it for every node it buys from, and signs cumulative off-chain vouchers as bytes flow (payments).
- Trust model. Verifies hashes on all bytes received. Trusts no node for content, and none for availability either — a node may decline to serve, and the client simply re-routes without paying for the attempt.