Privacy policy
Last updated: [[TO FILL: date]]
Who we are
The controller of your personal data is [[TO FILL: legal entity name]], NIF [[TO FILL: NIF]], [[TO FILL: registered address]]. Privacy contact: [[TO FILL: privacy contact email]]. Data protection officer: [[TO FILL: DPO name and email, or statement that none is required]].
What data we process and why
- Account data (email address, display name, password hash or sign-in provider identifier): to create and secure your account. Legal basis: performance of a contract (GDPR art. 6(1)(b)).
- Profile and game data (rating, game history, moves, chat and friend lists): to run the game, matchmaking and rankings. Legal basis: contract.
- Technical data (IP address, device and browser type, request logs, error reports): to keep the service secure, prevent abuse and fix bugs. Legal basis: legitimate interest (art. 6(1)(f)).
- Fair-play data (signals used to detect cheating or abuse): to protect other players. Legal basis: legitimate interest.
- Reports from other users and support messages: to handle complaints. Legal basis: legitimate interest and legal obligation.
- First-party product analytics (no third-party analytics provider): to understand how the product is used. We compute a daily pseudonymous visitor ID as an HMAC of your IP address and user agent with a random salt that is generated for each UTC day and kept for about 48 hours. The IP address and user agent are used in memory only and are never stored or logged. This ID is pseudonymous personal data and changes every day, so it cannot be used to follow you across days. Events are not linked to your account. Legal basis: legitimate interest (art. 6(1)(f)). You can opt out in the app settings; we also honour the Do Not Track and Global Privacy Control signals, both in the client and on the server.
We collect only what we need. We do not sell personal data and do not use it for automated decisions with legal effects.
Who receives your data
We use processors under data processing agreements: Hetzner (hosting, EU), Cloudflare (DNS, proxy, security, static hosting), Supabase (database and authentication), Sentry (error monitoring) and [[TO FILL: email provider]]. Product analytics are first-party and run on our own EU stack (database and Redis), with no third-party analytics provider. [[TO FILL: confirm final processor list]] Where data leaves the EU/EEA we rely on adequacy decisions or standard contractual clauses. [[TO FILL: confirm transfer mechanism per processor]]
How long we keep data
- Account and profile data: until you delete your account. After you ask for deletion there is a 30-day period to cancel it; then the account and its personal data are permanently deleted.
- Game history: kept indefinitely, as finished games are public. When you delete your account the games stay only in anonymised form. Games played only between computer-controlled opponents are deleted 48 hours after they end. [[TO FILL: lawyer to review this retention period]] Quick-chat messages: 90 days.
- Server logs: 30 days.
- Error reports: [[TO FILL: retention period]].
- Analytics events: 13 months [[TO FILL: confirm analytics retention]]. They are not linked to accounts, so account deletion has nothing to erase there.
- Backups: encrypted and kept for 30 days, so deleted data may remain in backups until they expire.
- Reports and fair-play records: fair-play cases 2 years; their supporting per-game figures 90 days.
Your rights
You may access, rectify, erase, restrict, object to the processing of, and port your data (JSON export). You can export your data and delete your account yourself in the app settings. We answer requests within one month. [[TO FILL: confirm internal deadline]] To exercise other rights write to [[TO FILL: privacy contact email]]. You may complain to the Comissão Nacional de Proteção de Dados (CNPD), www.cnpd.pt.
Minimum age
You must be at least 13 years old to use Ataxx Online, the age of digital consent in Portugal. [[TO FILL: confirm with lawyer]]
Cookies and local storage
We only use storage that is strictly necessary, for example to keep you signed in and to remember your language and settings. We use no advertising or tracking cookies, so there is no cookie banner. See the cookie and local storage notice in docs/legal/storage-notice.en.md. [[TO FILL: publish the storage notice or merge it here]]
Changes
We will publish changes on this page and notify registered users of material changes. [[TO FILL: confirm notice method]]