Privacy Policy
Last updated: May 3, 2026
We can't leak what we don't have.
AssetVault is offline by architecture. There is no AssetVault inventory cloud holding your saved vault. There are no accounts, no ad tracking, and no inventory telemetry. Optional AI, catalog, pricing, crash, and purchase services only use the data needed for those features. Your phone's lock screen is the security boundary. The rest of this policy is the legal long-form.
1. Your data stays on your device
AssetVault stores all inventory items, serial numbers, photos, values, and documents in a local SQLite database on your device. Your device's operating system sandbox prevents other apps from reading this data. The database is not encrypted at rest by AssetVault itself — we rely on the platform's app-data protection (Android app sandbox, iOS Data Protection class). For at-rest encryption you control, use the optional Encrypted Backup feature (see Section 6).
Your saved inventory is never uploaded to an AssetVault inventory cloud. Optional features can send only the data needed for that feature off-device (see Section 5).
We do not collect, store, or have access to your inventory data. Not "we promise we won't" — we literally do not have a server that holds it. There's no remote replica, no cloud sync, no telemetry pipeline that includes item data. The architecture makes data leakage impossible because the data is never collected to begin with.
2. What we do collect
Crash reports. If the app crashes, an anonymous crash report is sent to our self-hosted crash reporting service (Sentry). This includes your device type, operating system version, and the technical details of the crash. Inventory keys and values are scrubbed before transmission.
Purchase information. If you purchase Pro or Collector+, the transaction is processed entirely by Apple (App Store) or Google (Play Store). We use RevenueCat to verify your purchase status. We never see your payment details.
3. What we never store on our servers
The data below either lives only on your device, or — when you trigger a feature that requires a server hop (Smart Fill text lookup, AI Photo ID, eBay pricing) — is sent through our infrastructure but is not retained against your identity. The catalog server logs query text in an aggregate query_log table for performance analytics (top searches, miss rates) but the table has no user identifier, no device ID, and no IP column. We could not link a logged query back to you even if compelled to.
- Item names, descriptions, or categories — never retained against your identity. Catalog query text is logged anonymously for analytics; AI Photo ID requests are not logged at all.
- Serial numbers — never sent off-device.
- Photos and documents — sent to AI Photo ID / Pre-Grade only when you tap the feature; we do not retain. Gemini's standard data terms apply once the request reaches them.
- Item values or purchase prices — never sent off-device.
- Your name, email, or any personal identifiers — never collected.
- Your browsing history or usage patterns — never collected.
4. Permissions
Camera. To take photos of your items and scan barcodes / serial numbers. Photos are stored locally only.
Biometric authentication. To lock and unlock your vault. We never store or transmit your biometric data.
File access. To import/export backup files and generate PDF reports. Files are created locally and shared only when you choose.
5. Third-party services and optional network calls
Most inventory-related network calls are user-triggered: you tap Smart Fill, AI Photo ID, barcode lookup, Live Pricing, AI Pre-Grade, import, export, backup, restore, or purchase actions. Crash reporting and purchase verification can contact services automatically because they protect app stability and paid access. These services do not receive your inventory database.
- Sentry (sentry.chrisrulz.com, self-hosted). Crash reporting (device type, OS version, crash stack trace — no inventory keys or values; scrubbed in
App.tsxbeforeSend). - RevenueCat. Purchase verification (anonymous user ID, purchase receipt — no inventory data).
- Apple / Google. Payment processing (handled entirely by the platform).
- AssetVault Catalog Server (catalog.chrisrulz.com, self-hosted). When you tap "Smart Fill" or scan a barcode, the typed name or barcode is sent to our self-hosted catalog. The query text and a bearer token are sent. We do not log queries against your identity. Cached responses cost zero AI dollars on subsequent identical lookups.
- AI Proxy (cliproxy.chrisrulz.com, self-hosted). When the catalog misses and you have Collector+ access, the photo or text is forwarded to a Gemini proxy. Photos are sent as raw bytes; Gemini's standard data retention applies. We strip EXIF/GPS metadata before transmission.
- Public barcode databases. Google Books, UPCitemdb, and Open Food Facts are queried with the scanned barcode only. No identifiers.
- Pricing service (eBay Browse API, via our catalog server). When you tap "Live Pricing" or "Should I Grade?", the item name + grade are sent to our catalog server (catalog.chrisrulz.com), which mints an OAuth2 bearer for the eBay Browse API and returns the median asking price across active listings. The mobile app never sees the eBay client secret. No personal identifiers transit through this path. The data returned is asking-price data (current listings), not sold-comp data — the UI labels this clearly so you know what you're looking at.
6. Data security
On-device storage. Your inventory database, photos, and documents live in your device's OS-protected app data area. Other apps cannot read it. The SQLite database itself is not encrypted by AssetVault — we rely on the platform's app sandbox + Data Protection class.
App lock. Biometric authentication (Face ID, fingerprint, iris) or PIN required to open the app after backgrounding.
Encrypted Backup (.avbk). The backup-export feature wraps your full database + photos in an AES-256-CBC envelope authenticated with HMAC-SHA256 and keyed via PBKDF2-SHA256 with 100,000 iterations. The passphrase is held in component state during export and discarded on modal unmount. AssetVault has no master key — backups are irrecoverable without your passphrase.
Optional unencrypted JSON export. For interchange with other apps. You control where it goes; we never see it.
7. How to delete your data
Inventory data: it lives on your device. Uninstall the app — the database, photos, and documents are removed by your operating system. There is no AssetVault inventory-cloud copy to also delete.
Optional crash reports: email [email protected] with the subject "Delete Crash Data" and we'll purge any anonymous reports linked to your device.
Purchase records: managed by Apple or Google, not by us — request deletion through their account settings.
For a one-page reference of the deletion process, see /data-deletion.html.
8. Your rights under GDPR (EU / UK)
If you are in the European Economic Area or the United Kingdom, you have the right to:
- Access any data we hold about you
- Have inaccurate data corrected
- Have your data erased
- Restrict or object to processing
- Data portability
Because AssetVault stores no inventory data on our servers and only receives anonymous crash reports plus an anonymous purchase ID, most requests resolve as "no data on file." We respond to every request within 30 days. Email [email protected] with the subject "GDPR Request" — include your device type so we can locate any anonymous crash data.
9. Your rights under CCPA (California)
California residents have the right to know what personal information we collect, the right to delete it, and the right to opt out of the sale of personal information. AssetVault does not sell, trade, or rent personal information — we never have, and we never will. Email [email protected] with the subject "CCPA Request" to exercise your rights.
10. Children's privacy
AssetVault does not knowingly collect data from children under 13 (or the equivalent age under applicable regional law).
11. Cookies and tracking
The AssetVault app uses no cookies and no third-party tracking SDKs. Our marketing website uses no cookies and no analytics that identify you. We do not participate in the IDFA / advertising-ID ecosystem.
12. Changes to this policy
If we materially change this policy we will update the "Last Updated" date at the top and surface a notice in the app on next launch. Continued use after a material change constitutes acceptance.
13. Contact us
CRL Digital
Email: [email protected]
For privacy-specific concerns, use subject lines: GDPR Request, CCPA Request, or Delete Crash Data.