Encrypt your data. Store one authenticated artifact. Open it with the right key.
Real library. Real output. Change the text, rotate the key, and inspect every byte. This example runs entirely in your browser.
Example data only. The key and complete round trip are visible here, stay in this tab, and clear on refresh.
Choose the runtime where plaintext already exists. Each SDK produces and opens the same Rust-defined artifact format.
Use the stateful client for browser key storage and the normal protect/open lifecycle.
@voideddev/e2ee-clientimport { VoidedE2EEClient } from "@voideddev/e2ee-client";
const client = new VoidedE2EEClient();
const blob = await client.protect("Private data", {
preset: "balanced",
});
const restored = await client.open(blob);
A 52-card order can recover your key hierarchy. Choose an interface below: each uses the same generated deck and the same neutral component.
Build your recovery flow ↗Loading the Recovery Deck component…
Nothing here is saved. Switching views preserves the order; generating a new deck replaces it. In a real recovery flow, the exact sequence is a secret.
Voided owns the cryptographic artifact path. The integrating application still owns access control, runtime security, and storage policy.
Use a compact index, full reference, structured JSON, or the local MCP server. Each surface describes the same APIs and invariants.
Human-readable, semantic implementation reference and pasteable agent prompt.
TEXT/llms.txtCompact routing index for agents deciding what to read next.
TEXT/llms-full.txtComplete standalone product, API, recovery, security, and release reference.
JSON/ai.jsonStructured machine reference with runtimes, layers, invariants, and status.
MCPVoided MCPRead-only local source knowledge, symbol search, module discovery, and file excerpts.
Use these APIs when your application deliberately owns more of the surrounding data format or key hierarchy.
Shape already-prepared encrypted bytes, inspect untrusted metadata, or repack a current artifact.
RecoveryRecover one stable root from a 52-card permutation without storing the deck or derived key.
PrimitivesUse encrypt/decrypt only when your system deliberately owns serialization and lifecycle.