QuizFire
Privacy
What we collect, why, and how to make it go away.
In effect 24 September 2026. QuizFire is made by Shyam Valsan, an individual developer, and this is the policy for the QuizFire Android app, the browser version at play.quizfire.app, and this website.
The short version
We collect the least we can and still run a game with leaderboards. A random device id, the display name and avatar you pick, your gameplay, and an approximate location from your network address so a leaderboard can say "in your city". If you sign in, your email address too. If the app crashes, a crash report you can switch off. Anything you choose to send us: feedback, and reports about other players.
The app can look at your contacts in two places on the Friends screen, and only when you tap. Inviting people never sends us anything. Finding friends sends scrambled codes we do not keep. Your address book is never uploaded.
You can report or block another player. A blocked player drops out of your rankings and can no longer challenge you, add you as a friend or be paired with you.
We sell nothing. We share nothing with advertisers. There are no ads and no tracking SDKs in the app. You can delete everything from inside the app, from this page, or by writing to quizmaster@quizfire.app.
What the app collects
A device id
On first launch the app generates 32 random bytes and keeps them on your device. It sends a hash of them to our server, which uses it to recognise the same player next time. It is not your advertising id, your Android id or your hardware id, and it identifies nothing outside QuizFire. Deleting the app and reinstalling it makes a new one.
Your display name, avatar and colour
You pick these during onboarding. Other players see them in duels and on leaderboards, so choose accordingly. The name is limited to 24 characters, and a short list of slurs and obvious abuse is refused. We never ask for a legal name, a date of birth, a phone number or an address.
Your email address, only if you sign in
Signing in is optional. The game is complete without it. If you do sign in with Google or with an email link, we store the address so that your progress finds you on a new phone, and we store the account identifier that Firebase Authentication gives us.
Your gameplay
Match results, your answers and how long you took, the per-topic ratings and tiers those produce, which topics you played and when, and the head-to-head records behind rematches. Your Daily Challenge score for each day is stored too: other players see only how many people played and how the scores spread, and your friends see your score. This is the game state. Without it there is no profile and no leaderboard.
An approximate location
Leaderboards have scopes: your city, your region, your country, the world. To place you on the right one, our hosting layer tells the server the approximate city, region and country associated with your network address. We store those three names. We do not store your IP address, and the app never asks for GPS or device location permission. You can override all three by hand in Settings.
Your contacts, only when you tap
The Friends screen has two things that use the contacts on your phone. Neither runs on launch, neither runs in the background, and neither reads anything until you tap it and answer your phone's permission dialog. Each one says in a sentence what it is about to do before that dialog appears. You can refuse, and the rest of the app is unaffected. You can change your mind later in your phone's app settings.
Invite from contacts shows you a list of your contacts so you can pick who to invite. That list is built on your phone and stays there. Nothing about your contacts is sent to us. When you are done, your own messaging app opens with the invite already typed, and you press send. QuizFire holds no permission to send or read messages and could not send one if it wanted to.
Find friends on QuizFire is how you see which of your contacts already plays. Your phone tidies each email address and phone number into a standard form, then scrambles it with SHA-256 and a secret value from our server. Only those scrambled codes are sent, at most 500 at a time. No name, no number and no address are sent. We do not keep the codes and we cannot see them in our logs. Our server compares them with the code it holds for each player who has signed in with an account, answers with the players that matched, and keeps nothing: your codes live in memory for the length of that one request and are never written to a database and never written to a log. Codes that match nobody are simply absent from the answer, so the server learns nothing about anyone who does not play.
Only a player who has signed in with an account can be found this way. If you have never signed in, nobody can find you through their contacts. If you sign out, the code we hold for you is deleted and you stop being findable.
Crash reports, which you can switch off
When the Android app crashes, or hits an error it can recover from, it sends a crash report to Firebase Crashlytics so we can find and fix the fault. A report holds the technical trace of what went wrong, the app version, your phone's model and Android version, whether the app was in the foreground, and a random installation id that Crashlytics makes for the app. It does not hold your name, your email address, your contacts or your answers. Reports are on by default. Turn them off in Settings with Send crash reports, and none are sent from then on. The browser version sends none.
Feedback you send
Settings has Send feedback. What you type is sent to our server with the app version, your phone's model, the platform and your player id, so we can see which build and which player it is about. Nothing is sent until you press send. You can also simply email us.
Reports and blocks
You can report another player from a leaderboard, your friends list or a challenge card, for an offensive name, cheating, harassment or something else, with an optional note. We store who sent the report, who it is about, the reason, the note and the name the player had at that moment, so we can act on it: rename the player, reset their ratings, or remove the account. The reported player is not told who reported them. When you block a player we store that one pair. The blocked player is not told either; they simply stop appearing in your rankings, and neither of you can challenge the other, send a friend request or be paired in a live duel.
Notifications, only if you allow them
If you allow notifications, the app registers a push token from Firebase Cloud Messaging with our server, with the kinds you want: a challenge sent to you, a friend request, a challenge of yours that was played. A notification carries a player's display name and a topic, nothing else. Switch each kind off in Settings, or turn notifications off for QuizFire in your phone's settings.
What the app does not collect
- Your photos. You may use a photo as your avatar. The app crops it, resizes it and writes it to your device's own storage. Only the word "photo" is sent to the server. The picture never leaves your phone.
- Your calendar, messages, call history, files, microphone, camera roll beyond the one image you choose, health data or payment card details. None of it is read or requested. Your contacts are read only in the two places described above, and only after you tap.
- Your contacts as a list. We never upload your address book. The invite picker never leaves your phone, and finding friends sends scrambled codes that we do not keep.
- The advertising id. The app contains no advertising SDK and does not request the AD_ID permission.
Who else touches it
Three companies process data on our behalf, and one is contacted only if you ask for it.
- Firebase Authentication (Google LLC) verifies your identity when you sign in with Google or an email link, and tells us an account identifier and your email address. It is the only identity provider we use. Two more Firebase services work for us: Firebase Crashlytics receives the crash reports described above, and Firebase Cloud Messaging delivers notifications if you allow them. Google's handling of that data is covered by the Firebase privacy documentation.
- Google Play (Google LLC) delivers the Android app and, if QuizFire ever sells a subscription, takes the payment through Google Play Billing. Google handles your payment details; we would receive only a purchase token, the product and when it ends, so the server can tell the app what you are entitled to. During the beta nothing is on sale.
- Cloudflare, Inc. hosts this website (Cloudflare Pages), runs our API and database (Workers and D1), and routes mail sent to our addresses. Traffic to us passes through Cloudflare's network, which processes network addresses to deliver and protect the service.
- Gravatar (Automattic Inc.) is contacted only when a signed-in player opens Settings then Account, so the app can offer the picture you may already have there. The request carries an MD5 hash of your email address and, unavoidably, your network address. If you never sign in, or never open that screen, Gravatar is never contacted.
Nobody else. We do not send data to advertisers, data brokers, analytics vendors or social networks, and we do not sell data to anyone, ever.
This website
quizfire.app sets no cookies and loads nothing from a third party. Fonts are served from this domain. To know whether anyone is reading the page, each visit posts one small message to our own API with the day, the page path and the host of the referring site, and that becomes a counter. A daily unique-visitor estimate is kept as a hash of the day, your network address and your browser's user agent, truncated to sixteen characters. The day is part of the hash, so it cannot be joined to another day or turned back into an address. No cookie, no identifier stored in your browser, no cross-site tracking. Your browser's Do Not Track signal is honoured: with it on, nothing is counted.
If you join the waitlist, we store the email address you type, the country your request came from, and the date. We use it once: to tell you when the app is out.
How long we keep it
- Your account and gameplay: until you delete them. There is no automatic expiry, because a profile that quietly forgot your ratings would be a broken game.
- Contact codes sent by Find friends: not at all. They are held in memory for the one request and never stored or logged.
- Challenge links: 30 days from creation, then the challenge and its attempts are removed by a job that runs every day.
- Feedback, player reports and blocks: until we have dealt with them or you delete your account, whichever comes first. Deleting your account removes the reports you sent, the reports about you and every block either way.
- Crash reports: kept by Firebase Crashlytics for 90 days, then deleted.
- Push tokens: until you turn notifications off, the token stops working, or you delete your account.
- Live rooms: closed and discarded about half an hour after the last move.
- Recorded runs used to give offline players a real opponent: capped per topic, oldest deleted first, and removed immediately when you delete your account.
- Website counters: daily aggregates with no personal data in them, kept indefinitely.
- Waitlist: until launch, or until you ask us to remove you.
Your rights
Wherever you live, and specifically if you are in the UK, the EEA or a US state with a privacy statute, you can ask us to show you the data we hold about you, correct it, or delete it. Most of it you can do yourself:
- See and change it: your name, avatar, colour and location are all editable in the app, in Settings.
- Delete it: if you never signed in, Settings, then Delete my data. If you signed in, Settings, then Account, then Delete account. Either way it happens immediately and it is not reversible. The account deletion page explains exactly what goes.
- Ask us: write to quizmaster@quizfire.app from the address on the account, or with your friend code if you never signed in (it is on the Friends screen), and we will answer within 30 days.
Our legal basis for the data needed to run a match, a rating and a leaderboard is performance of the contract you enter when you play. For the website counters it is our legitimate interest in knowing whether anyone visits, which is why they hold no personal data. Sign-in, crash reports and notifications are your consent, and you can withdraw each one: sign out or delete the account, switch crash reports off, switch notifications off. If you think we have handled your data badly, you may complain to your national data protection authority.
Children
QuizFire is for people aged 13 and over. It is not directed at children, it is not in Google Play's Families programme, and we do not knowingly collect anything from a child under 13. If you believe a child has given us data, write to quizmaster@quizfire.app and we will delete it.
Security
Everything the app sends travels over HTTPS, and live duels over a secure WebSocket. The device key is stored hashed, never in the clear. We do not hold passwords: Firebase Authentication does the signing in, and we never see one. No system is perfect, and we will tell affected players promptly if something goes wrong.
Changes
If this policy changes in a way that matters, we will change the date at the top and say so in the app's release notes. The version you are reading is the one in force.
Contact
Shyam Valsan, QuizFire.
quizmaster@quizfire.app
A postal address is available on request for a formal data protection enquiry.