Skip to main content
Tuck uses a random 256-bit data-encryption key (DEK) for the vault.

Vault data

Titles, bodies, tag names, attachment bytes, and todo titles are encrypted with AES-256-GCM.

Passphrase wrap

The vault passphrase is stretched with PBKDF2-HMAC-SHA256 using 600,000 iterations and a 16-byte salt, then used to wrap the DEK.

Recovery wrap

The Recovery Kit independently wraps the same DEK so recovery does not require the normal passphrase.

Client compatibility

The web and native Apple clients must use the same wrap format and snapshot shape. The iOS implementation intentionally follows the web vault contract instead of inventing a second crypto format.
Changes to the vault format are cross-platform compatibility changes. Treat them like a protocol migration, not a local implementation detail.

Explicit publishing

Hosted MCP does not unwrap the DEK or decrypt vault records on the server. An unlocked web client publishes selected personal-brain content to separate plaintext storage. MCP read tools serve that copy using a bearer token. Optional write tools queue plaintext commands; an unlocked device applies and encrypts them into the vault. The server does not receive the vault key or directly rewrite encrypted vault records. See MCP tools. Each personal brain is published as Off, Summary, or Full text. Summary includes readable thought titles, snippets, tag/person names, dates, and linked todo and Await details. Full text adds thought text. Event times, off by default per brain, adds the start and end times of events an Await waits on, never their titles. Token secrets are shown once and stored server-side as SHA-256 hashes. Publishing fingerprints are outside the sealed vault snapshot.