Two card types
Manage business cards and loyalty cards side by side, switchable per record.
A private, offline wallet for your business cards and loyalty cards — captured, encrypted and searched entirely on your device, with keys only you control.
CardVault is at foundation stage. The architecture, security design and documentation are complete; some flows are being progressively finished.
Everything that matters — OCR, barcode decoding, image processing and encryption — happens on your device. No analytics, no advertising SDKs, no cloud OCR, no telemetry. The only network activity is an optional, explicitly user-initiated encrypted backup.
Real screens from CardVault, shown in light mode.
Every capability below is documented in the CardVault repository.
Manage business cards and loyalty cards side by side, switchable per record.
Scan with the camera — edge detection, perspective correction, crop and enhancement — or enter details manually.
ML Kit text recognition extracts names, company, title, email, phone, website, address and free text — entirely on your device.
Decode QR, EAN-13/8, Code 128/39, UPC-A/E, PDF417, Data Matrix and Aztec codes locally, and regenerate them on screen at the till.
Case-insensitive, partial-match search across the relevant fields, running entirely on your device.
AES-256-GCM with passphrase-derived keys (Argon2id), an Android Keystore-wrapped database key and a SQLCipher-encrypted database.
Unlock with fingerprint or face, with your passphrase kept as the recovery mechanism and a configurable auto-lock.
Local archive or optional Google Drive, OneDrive and WebDAV/Nextcloud backup — ciphertext only, validated by checksum on restore.
CardVault follows Clean Architecture with MVVM in the presentation layer and the Repository pattern for data access, wired together with Hilt dependency injection across a multi-module Gradle project.
CardVault has no backend servers, no user accounts and no operator who can access your content. Card metadata, images and barcode values are stored only on your device, encrypted with keys derived from your passphrase.
Capture, OCR, barcode decoding, search and encryption all run locally. You can use CardVault indefinitely without ever enabling cloud backup.
The only network activity is an optional, user-initiated encrypted backup to Google Drive, OneDrive or WebDAV/Nextcloud — and only ciphertext is ever uploaded.
CardVault is designed so the developer and provider can never read your data.
A symmetric key is derived from your passphrase with Argon2id (PBKDF2-HMAC-SHA256 fallback) and held only in memory for the session.
The database is SQLCipher-encrypted; images and backups use AES-256-GCM authenticated encryption. The database key is wrapped by the hardware-backed Android Keystore.
Unlock with fingerprint or face, with your passphrase as the recovery mechanism and a one-time recovery passphrase so you’re never locked out.
Keep the cards you carry digital and searchable without handing your contacts and habits to an advertising network.
A clear, documented threat model and zero-knowledge design that you can audit against your own requirements.
Capture business cards on the spot, extract the details on-device, and find anyone again with fast local search.
Replace a wallet full of plastic loyalty cards and show a scannable barcode or QR code on screen when you check out.
Only on your device, in an encrypted SQLCipher database with images and backups sealed using AES-256-GCM. CardVault has no backend servers and no user accounts.
During setup CardVault generates a one-time recovery passphrase and shows it once. Store it safely offline. Without your passphrase or recovery passphrase, your data cannot be decrypted — by design.
Backups are encrypted on your device before any upload. Cloud providers (Google Drive, OneDrive, WebDAV/Nextcloud) only ever receive ciphertext; your passphrase never leaves the device.
QR, EAN-13/8, Code 128/39, UPC-A/E, PDF417, Data Matrix and Aztec. Decoding uses on-device ML Kit; regeneration on screen uses the ZXing library locally.
Camera, only when you choose to scan a card, and network access only for an optional cloud backup you explicitly start.
English first, with structure for Italian, French, German and Spanish. CardVault targets Android 10 (API 29) and newer.
CardVault shows what privacy-first, offline-first software looks like in practice.