For the complete documentation index, see llms.txt. This page is also available as Markdown.

Encryption & Storage

Your browser generates an encryption key derived from your wallet signature using standard key derivation. This key is ephemeral — it lives only in the browser's JavaScript context, is never serialized, never persisted, and never sent to any server. If you reload the page, the browser re-derives the same key deterministically from a fresh signature.

Before any data leaves your device, your browser encrypts it with AES-256-GCM. The ciphertext is the only thing that reaches the ZDrive worker. Even if the worker's infrastructure were fully compromised, attackers would get encrypted blobs with no key material.

For vault storage, encrypted ciphertext is bundled into an ANS-104 DataItem, signed by the operator's key, and uploaded to Arweave via Irys node2. Once mined, the data is replicated across thousands of Arweave nodes globally and cannot be deleted, modified, or taken offline by any provider. The Arweave transaction ID is returned to your browser as proof of upload.

Permanence is the key property. Unlike cloud storage, Arweave data outlasts the provider. You own the transaction ID; you can retrieve your encrypted vault from any Arweave gateway. Since only your browser holds the decryption key, the data is cryptographically useless to everyone else.

Vault upload flow

Key derivation model

Storage properties

Property
Value

Encryption algorithm

AES-256-GCM

Key storage

None — derived on demand from wallet signature

Upload target

Arweave via Irys node2

DataItem format

ANS-104 (Arweave standard)

Signer

Operator ETH key (Irys node2 balance)

Retrieval

Any Arweave gateway using TX ID

Deletability

None — Arweave is permanent

Who can decrypt

Only the wallet that encrypted

Last updated

Was this helpful?