How We Protect Your Data
Review the cryptography, data flow, browser controls, and trust boundaries behind PingVaults' client-side encryption design.
Browser
Plaintext
Server
Ciphertext Only
Irys
Ciphertext + export
core commitment
You should not have to rely on a privacy promise alone.
In the intended flow, key derivation and encryption happen in your browser.
The vault save API receives ciphertext, salt, IV, and the recovery schema—not your submitted phrase.
An exported backup and offline decryptor reduce dependence on PingVaults staying online.
Confidentiality still depends on deployment integrity, endpoint security, and an unpredictable recovery phrase.
These are auditable design properties, not a guarantee against every threat.
// data_flow[]
Data Flow (Where Your Answers Go)
Values are handled in the current page during the cryptographic operation and are not included in the vault save request.
Strips spaces, lowercases, converts full-width characters — so 'Alice' and 'alice' always derive the same key. Runs entirely in the browser.
The normalized values are fed through PBKDF2 with a random salt to derive an AES-256 key in the browser.
Your vault content is encrypted with the derived key, producing authenticated ciphertext. The app does not intentionally persist the phrase or derived key.
The server receives only ciphertext, salt, IV, and key schema (field types and question text). Answers are never in the request body.
When reading, ciphertext is downloaded or imported and decrypted in the browser using the re-entered values. No server-side decryption endpoint is used.
// server_access_table[]
What the Vault Save Flow Sends and Omits
// open_source[]
Open Source Policy
📂 pingvaults-crypto ↗
The encryption core, security-critical UI/API snapshots, test vectors, and offline decryptors are published under MIT for inspection and testing.
MIT · crypto.ts · test vectors · offline decryptors
🛡️ Hosted service
Accounts, inactivity checks, reminders and notifications run on PingVaults' hosted service. It handles only ciphertext and the account details it needs; decryption always happens in your browser or in the offline decryptor.
Accounts · Inactivity checks · Notifications
// faq[]
FAQ
Can PingVaults read my vault content?+
What if PingVaults shuts down?+
Does the offline decryptor depend on pingvaults.com?+
How can I check for myself that my answers aren't sent?+
Is the encryption strong enough?+
Documented architecture. Auditable crypto core. Exportable offline recovery.