The Player ID is generated automatically when you first open the app, even before you create an account. It is stored on your device and linked to your Supabase account record.
What a Race does NOT transmit: Sudoku Race players solve their own private grids. Your in-progress board — the digits you place, your pencil notes, which cells you have filled — never leaves your device. The only thing sent to your opponent during a Race is your aggregate progress (e.g. "53/81, mistakes 1/3") — never any cell, value, or the puzzle's solution-in-progress. Your completed grid is sent to our server once, only to verify a winning submission, and is never shown to your opponent.
None of these events include your name or email — only your anonymous Player ID.
We never sell your personal data.
Game functionality: Your single-player and Daily Challenge results are stored in Supabase so they sync across your devices when logged in and so we can show your personal-best times and streaks. For a casual Race, we store the shared puzzle and each player's aggregate progress counts to run the match and decide a winner; your completed grid is sent once for win verification only.
Race results: Your username and casual win/loss result appear to the opponent you raced. Race results are not ranked and do not appear on any public competitive leaderboard. The only public-facing comparison is the anonymous Daily Challenge global comparison — others do not see your name there.
Personalisation: Your chosen theme, coin balance, and settings preferences are stored on your account so they sync across devices when logged in.
Analytics: Usage events are stored to help us understand how players use the game and where to improve it. These are associated with your anonymous Player ID — never with your name or email in analytics queries.
Notifications: If you grant notification permission, your device's push token is stored to send Race-related alerts (e.g., "Match found", "Your opponent finished — submit your grid"). The daily reward/streak reminder is scheduled locally on your device and does not require sharing any data with our servers.
Sudoku relies on a small number of trusted services. Each has its own privacy policy:
| Service | Purpose | Their Policy |
|---|---|---|
| Supabase | Database, authentication, realtime Race sync (hosted in the United States) | supabase.com/privacy |
| Google AdMob | Advertisements (non-personalised by default) | policies.google.com/privacy |
| Google Sign-In / Google Play Games Services | Sign-in, achievements sync | policies.google.com/privacy |
| Google Play Billing | In-app purchases | play.google.com/about/play-terms |
| RevenueCat | Purchase management and entitlement tracking | revenuecat.com/privacy |
| Expo / React Native | App framework and push notification delivery | expo.dev/privacy |
We do not share your data with these services beyond what each needs to perform its function. Sudoku has no Facebook integration.
Sudoku requests non-personalised ads from Google AdMob. AdMob does not build a behavioural profile based on your identity or cross-app activity, and does not use interest-based targeting or remarketing. It may still use contextual signals (e.g., general location derived from IP, language) to select relevant ads. Ads are shown as full-screen interstitials (after every 5th completed puzzle) and player-initiated rewarded videos only — no banner ads, no ads during active solving, tutorials, or within 3 seconds of launch. A one-time Remove Ads purchase removes all interstitials permanently.
RevenueCat receives your Google Play purchase receipts and the entitlements they unlock. RevenueCat does not receive your name, email, or gameplay data. It uses an anonymous user ID to associate purchases with your account.
Access: Request a copy of the data we hold about you by emailing [email protected].
Deletion: Delete your account from within the app: Settings → Account → Delete Account. This begins a 30-day grace period. After 30 days, all personal data — username, email, solve history, Daily streak, Race results, coin balance — is permanently deleted from our servers. Analytics events are anonymised rather than deleted.
Correction: Change your username at any time from Settings → Profile (up to 3 times per 30 days for logged-in accounts; no frequency limit for guest accounts).
Portability: Request your complete solve and Race history as a JSON file by emailing [email protected]. We will respond within 30 days.
Opt out of analytics: Contact us and we will flag your account to exclude it from all analytics aggregation. Operational data (a Race's shared puzzle and progress counts while a match is live) cannot be excluded while you are in an active Race.
All account data, synced solve results, Race data, and analytics events are stored in Supabase, hosted in the United States. By creating an account, you acknowledge that your data will be transferred to and stored in the United States, which may have different data protection laws than your country of residence.
If you are in the EEA, you have the following additional rights under the General Data Protection Regulation:
Our lawful basis for processing your data is contract performance and legitimate interest (anonymised analytics to improve the game). To exercise any of these rights, email [email protected]. We will respond within 30 days.
If you are a California resident, you have the right to know what personal information we collect and how it is used, request deletion of it, and opt out of its sale. We do not sell your personal information and do not share it with third parties for their own marketing purposes. To exercise your rights under CCPA, email [email protected].
Sudoku is rated Everyone (E) on Google Play. The target audience is 13 and older, and we are not in the Google Play Families Program. We do not knowingly collect personal data from children under 13. If we learn that we have done so without parental consent, we will delete that data within 30 days. If you believe a child under 13 has provided us with personal data, contact [email protected].
All data in transit is encrypted using TLS. Supabase enforces Row Level Security (RLS) — you can only read and write your own records. Passwords are never stored by us; they are handled by Google or Supabase Auth (bcrypt-hashed at rest). During a Race, your puzzle grid never leaves your device except for the single final win-verification submission — an opponent can never read your cells or notes. No method of transmission or storage is 100% secure — if you become aware of a security concern, contact [email protected].
We will notify players of significant changes via the What's New screen in the app. Minor corrections may be made without notification. The "Last updated" date at the top always reflects the current version.
2DGameClub Studio
[email protected]