This section describes the technical controls applied to customer content at each stage of its life — in transit, at rest, in respect of keys, and at deletion.
Data in transit
- Public APITLS 1.3
- All requests to the Tessera API terminate over TLS 1.3 with modern cipher suites, HSTS, and no support for deprecated protocol versions. Certificates are issued by a public CA and renewed automatically.
- Shard transferRHP4 over QUIC
- Object shards travel directly between your client and each storage provider over an encrypted QUIC session. Tessera is not an intermediary and never sees the payload.
- Provider identityed25519 key possession
- A provider is identified by its ed25519 public key and must prove possession of the corresponding private key inside the protocol. Identity is therefore bound to the key, not to a transport certificate — an important distinction we would rather state than gloss over.
- Request authenticityed25519 signatures
- Every authenticated API call carries a signature over the HTTP method, host, path, expiry timestamp, and request body. Replay is bounded by a caller-set expiry, and a tampered body invalidates the signature.
Data at rest
- Client-side encryptionBefore transmission
- Data is encrypted by your client before erasure coding. Providers only ever store ciphertext fragments, and cannot determine file boundaries, content type, or structure from what they hold.
- Fragmentation as a control1 of 15 is useless
- Erasure coding is not only a durability mechanism, it is a confidentiality one. A single shard is mathematically insufficient to recover any portion of plaintext, and no provider receives more than one shard of a slab. An attacker must compromise 10 unrelated companies before decryption is even a question.
- Integrity verificationMerkle sector roots
- Each shard is content-addressed by a Merkle root recorded at write time. Shards are verified against their root on read; a provider returning altered or truncated bytes is detected, rejected, and scheduled for repair. Silent corruption cannot propagate into a reconstruction.
- Control-plane storageEncrypted volumes
- Placement metadata is held in the Tessera control plane on encrypted storage, with snapshots taken continuously and stored encrypted. The control plane holds no object payloads.
Key management
- Your credentialPrivate half never transmitted
- Your API credential is an ed25519 keypair. The private key is generated for you once at provisioning, returned exactly once, and never stored by us in a recoverable form — we hold only the public half, which doubles as your account identifier. If you lose it, we cannot recover it; you provision a new credential and revoke the old one.
- Object data keysStored wrapped
- The key protecting an object's contents is stored in the manifest in wrapped form. Tessera cannot unwrap it without key material held by your client.
- Slab parametersHeld by Tessera
- To serve reads and to drive repair without your participation, the control plane holds the per-slab encryption parameters recorded at write time. You should therefore treat Tessera as a party with logical access to slab-level key material, and treat our controls — not cryptography alone — as what protects it. Moving to client-wrapped slab keys, which would remove that access entirely, is on our roadmap; we will say so on this page when it ships, and not before.
A claim we are not making
We do not describe Tessera as zero-knowledge or end-to-end encrypted. Because the control plane holds per-slab encryption parameters in order to repair data without your involvement, an accurate statement is that we are architecturally incapable of intercepting your data in transit, and that we hold key material subject to operational controls. Vendors frequently claim the stronger property while running this exact architecture. The difference matters to a serious reviewer, so we have written it down.
Access control
- Tenant isolation
- Every manifest record is bound to the account that created it. A request signed by one credential cannot read, modify, or delete another account's objects; cross-account attempts are refused, not silently ignored.
- No ambient authority
- There are no sessions, no cookies, and no bearer tokens that remain valid once copied. Each request is independently signed and independently expires.
- Rate limiting
- Requests are limited per credential — 30 per minute with a 3 per second burst allowance — and credential provisioning is limited per source address to 5 per hour.
- Internal access
- Operator access to production systems is restricted to named individuals, requires multi-factor authentication, and is scoped to the minimum required for the task. Administrative endpoints are separated from the customer API surface and are not reachable with customer credentials.
Retention, deletion & portability
- DeletionImmediate, then reclaimed
- Deleting an object removes it from the manifest immediately: it becomes unreadable through the API and unrecoverable by us. The underlying shards are then reclaimed from providers and, in any case, cease to be retained when the storage contract covering them expires. We do not claim instantaneous cryptographic erasure of already-distributed fragments, because that is not what happens.
- RetentionContract-bounded
- Shards persist only for as long as a funded storage contract covers them. Contracts run roughly 12 weeks and are renewed while an object is live.
- Data portabilityNo lock-in
- Objects and their placement records are readable through the API at any time, in a documented format, with no export fee and no notice period.
- Account terminationCredential revocation
- Revoking a credential stops authorisation at the next request. Revocation is immediate and does not wait for a token lifetime to elapse.