Privacy Policy
Last updated: 2026-10-15.
This policy covers the FoilVault mobile apps for Android and iOS, and this website. It explains exactly what we store, why we store it, and how you get it deleted. FoilVault is run by an individual developer, not a company, and there is no advertising business behind it.
Your account
To sync a collection across devices you create an account. We store your email address, the display name you choose, and a one-way hash of your password. We never store the password itself. Your email address is used to identify your account and to contact you about the service. We do not send marketing email. If you add your age or country to your profile, we store those details with your account.
If you choose to sign in with Apple or Google, that provider processes authentication data under its own privacy policy. Google's sign-in integration includes collection for authentication, security and analytics. See Sign in with Apple and Privacy and the Google Privacy Policy for details.
We also receive sign-in diagnostic events to help resolve account access problems. These include an installation identifier, app version, sign-in provider, sign-in stages and error codes.
Your collection
When you are signed in, collection records that successfully sync are stored on our server and can appear on your other signed-in devices. These records include cards, quantities, conditions, variants, languages, folders, and any notes, acquisition dates and purchase prices you record. Guest collections and changes that have not successfully synced remain on your device; they cannot be restored from your account if that device is lost.
Scanning and your camera
The app asks for camera permission so you can scan cards. Text recognition runs on your device. The app also sends recognized card names or numbers to our server to look up matching cards. The camera feed itself is never streamed anywhere.
The app records scan diagnostics so we can find and fix the cases where recognition gets it wrong. These can include recognized text, candidate cards and match results, processing timings, app version, device model, an installation identifier, and a thumbnail and a full-resolution still image of the captured frame. Records are queued on your device and uploaded when you are signed in and a network connection is available. This can include scans made while offline or before signing in. Please point the camera at the card rather than at anything you would not want us to have a picture of. These records are linked to your account, are used only to improve card recognition, and are never sold, shared or used for advertising. Ask us through the support form and we will delete yours.
On Android, Google ML Kit performs text recognition on your device. Its SDK also sends technical information to Google, including installation identifiers, device and app details, performance measurements and feature events, for diagnostics and usage analytics. This is separate from our scan-record uploads and from the optional usage analytics described below. See ML Kit's data disclosure.
The Free plan has a monthly scan allowance. To count it, the app tells our server each time it shows you a scan result: a random identifier for that result, the installation identifier, the time, and whether the scan was made offline. No image or recognized text is part of this count.
Premium subscriptions
FoilVault Premium is a subscription sold through the App Store on iPhone and through Google Play on Android. You subscribe while signed in to your FoilVault account. Apple or Google takes the payment under its own terms and privacy policy. We never receive your card or bank details or your billing address.
Our server creates a random billing identifier for your account. It is not made from your email address or any other account detail. When you subscribe, the app hands this identifier to Apple or Google with the purchase, so the purchase comes back to us labelled with it and we know which FoilVault account it belongs to. The app then sends us the store's proof of the purchase: on iPhone the signed transaction Apple gives the app, on Android the purchase token Google gives it. We check that proof with Apple or Google directly, and Apple and Google can also notify our server when a subscription renews, changes, expires or is refunded.
For each subscription we store: the plan you bought (and, on Google Play, its base plan and offer); when the current period ends or ended, and for App Store purchases when it was bought and when the current period started; whether it is a free trial and whether it will renew; its current state, such as active, in a grace or billing-retry period, paused, expired, refunded or revoked; whether it was a test purchase (Apple's sandbox or a Google Play test purchase); and the store's identifiers for it, which are Apple's transaction identifiers or Google's purchase token. For Google Play purchases we also store when Google says the subscription started, the identifier of the latest successful order, the order identifiers we have seen with the date we first saw each and the period it covered, the plan scheduled to replace it if you changed plan, and, if Google reports a refund or chargeback, the order identifier with when and why it was voided. For App Store purchases we also keep the signed records Apple sends us, which include the price paid, its currency and the App Store country or region. If we give an account test access to Premium, or mark it as an Apple sandbox tester or a Google Play tester, we record that and when the test access ends.
We use these records only to decide whether your account has Premium, to keep that answer current, and to stop one purchase from giving Premium to two accounts. We keep them for those purposes, including after your FoilVault account is deleted (see below). App Store purchase records are not deleted automatically. For Google Play we apply these limits:
- We erase a purchase token once 60 days have passed since the subscription ended (its paid access ran out, it was canceled and lapsed, it was refunded or revoked, it was replaced by a newer purchase, or it was never completed). At the same time we delete its start date, its order identifiers and any scheduled plan change. We keep only a one-way fingerprint of the token and the record of the access it gave.
- We delete a refund or chargeback record 60 days after we processed it.
- We delete the notifications Google sends us about purchases 60 days after they arrive. They hold the purchase token only until we have processed them, and never longer than those 60 days.
- If a purchase cannot be verified, we keep a short note of why, with an 8-character fingerprint of the purchase token but never the token itself. An account keeps at most its 20 most recent notes, and a daily clean-up deletes every note once it is 90 days old.
Subscriptions are managed by the store, not by us, and we cannot cancel one for you. On iPhone, open Settings, tap your name, then Subscriptions (see Cancel a subscription from Apple). On Android, use your Google Play subscriptions (see Cancel, pause, or change a subscription on Google Play). Deleting the app or your FoilVault account does not cancel a subscription. For how Apple and Google handle purchase and payment data, see App Store & Privacy and the Google Payments Privacy Notice.
Price alerts and notifications
With Premium, or a Premium free trial, you can save price alerts. For each alert we store the card, its language and printing, the marketplace and price type it watches, the currency, your target price, whether it fires above or below that price, and whether it is switched on. We also store the last price we observed for it, when we last checked it, and a record of each time it was triggered. When you delete an alert we remove its last observed price but keep a record of the alert, including its settings, so your other devices learn that it was deleted. That record and the alert's trigger history are deleted with your account.
To tell you when an alert is reached, the app registers your device for notifications. It does this only while you are signed in and notifications are allowed for FoilVault in your device settings. On iPhone and on Android 13 and later, the app asks for that permission when you save an alert that is switched on; on earlier Android versions notifications are allowed unless you turn them off. Registering sends our server a random installation identifier for the app on that device, the notification address that Apple Push Notification service (on iPhone) or Firebase Cloud Messaging (on Android) issued for it, and which of the two it uses. We link the registration to the sign-in session it was made under. On Android, Firebase Cloud Messaging creates its own installation identifier with Google in order to issue that address.
We send a notification only while your account has Premium, the alert is switched on, and the session the device was registered under is still signed in. It travels through Apple or Google to your device. It says only "A saved price alert reached its target. Open FoilVault to view it." and carries random identifiers for the alert and the trigger so the app can open it. It contains no card name, price or account details. We record each delivery attempt and the answer Apple or Google gave. See the Apple Privacy Policy and Privacy and Security in Firebase for how they handle notification delivery.
When you sign out, the app asks our server to end that session (this needs a network connection); once the session has ended we send nothing more to that device. On Android the app also asks our server to delete the device's notification address before signing out, when it is online. On iPhone the address stays stored with your account after you sign out until it is replaced, Apple tells us it is no longer valid, or your account is deleted. Whenever Apple or Google tells us an address is no longer valid, we delete it. A device's registration record, without its address once that is deleted, stays with your account until the account is deleted. You can stop alert notifications at any time by switching an alert off or deleting it, turning notifications off for FoilVault in your device settings, signing out, or deleting your account.
Crash reports and optional usage analytics
Released mobile apps automatically send crash and stability reports to Google Firebase Crashlytics to help us diagnose failures. Reports can include crash stack traces, app state, app and operating system versions, device details, installation and session identifiers, and technical session data. Our added diagnostic context is limited to categories such as the screen, operation and build. We do not add account identifiers, names, email addresses, search text, scanned images or collection contents to Firebase reports or usage events.
Google Analytics for Firebase usage collection is off until you choose Share usage analytics. If you agree, it measures feature use, such as screens and action outcomes, together with app and device information, app-instance identifiers and session events. Google also derives approximate location from masked IP addresses; this does not use your device's GPS. Analytics events may also appear as a sequence of recent actions in crash reports to help explain a failure. We disable advertising identifiers and advertising personalization, and do not set a FoilVault account ID in Firebase.
You can decline the choice or turn off Share usage analytics in Settings. We do not queue your interactions before agreement for later analytics upload. Turning it off stops future usage collection; it does not delete information already received. This choice does not turn off automatic crash and stability reporting, sign-in diagnostics, Android ML Kit diagnostics or the scan records described above. Firebase identifiers are separate from your FoilVault account, but they still identify an app installation or session. See Privacy and Security in Firebase and the Google Privacy Policy.
When this website or the FoilVault admin console fails unexpectedly, in your browser or on our web server, it sends an error report to an error-tracking service we run on our own server. A report contains the error message and where in our code it happened; the address of the page, of the pages visited and of the requests made just before the error, all without query parameters and with the times they happened; your browser and operating system as your browser's user agent names them; and the version of the website. It does not contain your account details, your email address, your IP address, cookies or anything you type into a form. Reports are kept for 30 days and are used only to find and fix failures.
Card prices and card data
Card images, set data and prices come from third-party trading card sources: Cardmarket and TCGplayer for prices and TCGdex for the card catalogue. Prices stay in the currency supplied by their marketplace. Our server fetches that data on a schedule and the app reads it from us. Those providers do not receive your identity, your collection, or anything else about you.
What we do not do
The app contains no advertising. We do not sell your data or use it to track you across other apps or websites. Data is processed by the authentication, diagnostics and optional analytics providers described above, and by Apple and Google for store purchases and notification delivery. We do not access your device's GPS location or your contacts. We do not collect your files or anything from your photo library. The country you choose to provide in your profile is stored as described above.
Where your data is kept
FoilVault account, collection, scan, subscription, price alert and notification registration records are stored on a server we rent and administer ourselves in Nuremberg, Germany. Apple and Google process authentication, SDK, payment and notification delivery data separately under the provider policies linked above; our server's location does not describe where those providers process data.
Deleting your account and your data
You can delete your FoilVault account records - your collection, your folders, your scan records, your price alerts and your devices' notification registrations - at any time, from Settings, Account management, Delete account in the app, or through the support form. The account is kept for 7 days in case the request was a mistake, then deleted permanently. How to delete your account sets out the steps and lists exactly what is removed and what is kept. You can also ask for a copy of your data through the support form.
Deleting your FoilVault account does not cancel a Premium subscription: Apple or Google keeps renewing and charging it until you cancel it in the store, as described under "Premium subscriptions" above. When the account is deleted, your price alerts and their history, your devices' notification registrations and your scan allowance counts are deleted with it. Your subscription purchase records are kept, but their link to your account is removed: they stay attached only to the random billing identifier, which is no longer linked to your email address or to any account. We keep them so that a store purchase can never give Premium to a second account. Apple and Google keep their own records of the purchase under their own policies.
Firebase crash and usage data is identified separately from your FoilVault account. Deleting that account does not automatically delete those provider records. Their handling and retention are described in the Firebase and Google policies linked above; contact us through the support form with questions about this data.
Children
FoilVault is not directed at children under 13, and we do not knowingly collect data from them. If you believe a child has created an account, contact us and we will remove it.
This website
If you join the waitlist we store your email address and ask you to confirm it. Once you confirm, we send a short three-day guide, one email a day, and later your launch invite. We also store where you came from: the tags in the link you followed (for example which video or community), the page you landed on and the name of the site that sent you. Until you sign up, your browser keeps those link tags in its local storage for up to 90 days so they can be sent with your sign-up, and removes them once you join; nothing leaves your browser unless you join. We use no cookies and no tracking pixels for this, and we do not track whether you open our emails. Every guide email has an unsubscribe link; unsubscribing stops the guide and keeps you on the launch list, and you can also ask to be removed completely, which deletes your email and everything stored with it. If you never confirm, your address is deleted after 30 days.
If you use the contact form we store the subject, your email address and your message so we can answer you. This site runs no analytics and sets no tracking cookies. When it fails unexpectedly it sends an error report, described under "Crash reports and optional usage analytics" above.
Changes to this policy
If what we collect changes, this page changes with it and the date at the top moves. Material changes to how we handle data you have already given us will be announced in the app.
Contact
Questions about this policy, or about any data we hold on you, go through the support form. A person reads every message.