This policy applies to the DaisyChess service: this website (daisychess.org), the web app and the hub at play.daisychess.org (community nodes connect to hub.daisychess.org), the operator portal and the DaisyChess mobile apps. If you self-host DaisyChess, you are the controller of your own installation.
1. Who is responsible
Data controller: Bojan Savicevic aka appac, 1220 Vienna, Austria, contact: hello@daisychess.org.
2. The short version
- DaisyChess is free and has no ads and no tracking: no analytics, no third-party trackers, no fingerprinting, no data sales.
- The app keeps your settings on your own device. You do not need an account to play or analyse.
- If you analyse on a server or a community node, the chess positions you send are processed there. On a community node the node operator can see those positions (section 6).
- Node operators log in with lichess; the hub stores their lichess id and username.
- IP addresses are not stored in the hub's application logs. The web server's access log does contain them for a limited time (section 5).
3. This website
daisychess.org is a static website. It sets no cookies, uses no analytics and loads nothing from other servers — fonts, scripts and images all come from daisychess.org itself. Like every web server, ours writes an access log (IP address, time, requested page, status, browser user agent) for security purposes; it is kept as described in section 5.
4. What the hub stores
| Data | Whose | Purpose | How long |
|---|---|---|---|
| lichess user id and username, first and last login time | node operators | Identify the operator, show the operator name next to a node, administration | Until the operator deletes the account in the portal |
| Nodes: name, pool settings, hashed node secret, last seen time, version, architecture | operators | Routing and portal | Until the node or the account is deleted |
| Tokens: id, label chosen by the operator, hashed secret, which nodes it may use, expiry, last used time, number of uses | operators (and, indirectly, the people they give tokens to) | Access control and routing | Until revoked or deleted; pool tokens expire after a default period |
| Usage counters per token, node and day (searches, sessions, engine seconds) | token holders (pseudonymous) | Fair-use budget and the operator's usage view | 90 days |
| Spot-check results (node id, time, agreed yes/no) | nodes | Quality control of the shared pool | 24 hours |
| Portal login sessions | operators | Keep you logged in | 30 days or until logout |
| Game reviews and position evaluations in the review store | nobody in particular | Re-use of finished analyses | Until evicted by the size limit |
| Application log: token id, node id, connection id, error events, a daily-salted hash of the client address | players, operators | Operating and debugging the service | [7 days — OWNER: confirm] |
Web server access log: client IP address, time, request path (no query string, no body), status, Origin and user agent | everyone who visits | Security (abuse detection, blocking abusive clients) | [14 days — OWNER: confirm] |
- Token labels are free text written by the operator. Please do not put real names in them.
- Reviews contain moves and evaluations only, keyed by a hash of the game. They contain no player names, PGN headers or addresses. Anyone who knows a game can look up its review, so do not rely on reviews being secret.
- Application logs contain no raw IP addresses, tokens or secrets. The salted hash changes every day and cannot be turned back into an address; it only shows that several events came from the same address on the same day. Chess positions are logged only when the server runs at debug level, which is not the default.
- Rooms (“play a friend”) live in server memory only: nicknames and moves disappear when the room expires (minutes to hours).
- The hub stores no e-mail addresses, passwords or payment data. There are none.
- Backups of the hub database contain the operator data above and are kept for 7 days.
5. Where your IP address appears
Every web server records the address of a connection. Here: the nginx access logs of the website and the hub (for security, our legitimate interest under Art. 6(1)(f) GDPR) and, hashed with a daily salt, the hub's application log. IP addresses are used to limit abuse (per-address session and connection limits) and to block abusive clients. They are never passed to node operators.
6. Community nodes: who sees what
When you analyse on a community node, the hub relays your search to the computer of a volunteer operator.
- The operator's node receives the chess positions (FEN) and search settings you analyse, including the moves of a game under review, one position at a time. That is inherent in how the service works. A position can be personal — a game in progress, your opening preparation. If you do not want a stranger's machine to see it, use the in-browser engine, your own node or the hub's own engines.
- The node does not receive your IP address, name, lichess account, PGN headers or token. For shared-pool searches the node cannot tell who you are; for tokens issued by the operator it sees the token's id and label.
- The app shows which node and operator a search runs on, and shows a notice before your first search on a shared-pool node.
- Operators agree in the terms not to log, keep or misuse positions. The hub cannot technically prevent a dishonest operator from doing so; it checks the quality of results (spot-checks), not privacy.
Pool notice, as shown in the app: “Searches in the shared pool run on volunteers' computers. The operator of that computer can see the positions you analyse, but not who you are.”
7. lichess login and imports
- Operator portal: you log in with lichess (OAuth with PKCE). The hub receives the lichess access token once, asks lichess who you are (user id and username) and then discards the token; the portal also revokes it at lichess. The token is not stored.
- App (optional): if you log in with lichess in the app — for live games, the explorer or importing your own games — the token stays on your device and is sent only to lichess.
- Importing games from lichess or chess.com sends the username you type to those services' public APIs, directly from your device. Their privacy policies apply.
8. Cookies and local storage
- The operator portal sets one cookie,
__Host-dc_portal: a login session identifier (HttpOnly, Secure, SameSite=Strict, valid up to 30 days). It is strictly necessary for the login, so no consent banner is required. The website, the app and the player side set no cookies. - The app uses your browser's localStorage and IndexedDB for settings (theme, board, engine choices, the server access token), the openings trainer progress and the review cache. This data does not leave your device unless you use a feature that says so (for example a setup link you copy yourself). You can delete it at any time — see Delete your data.
9. Mobile apps
The iOS and Android apps work like the web app and handle the same data as described above. They contain no advertising or analytics SDKs and no crash reporting that sends data to third parties. A summary in the format of the app stores is on App privacy.
10. Sharing and processors
Data is not sold and not shared for advertising. The website and the hub are hosted on a server operated by the controller [HOSTING PROVIDER, COUNTRY — OWNER: confirm]. lichess receives the one login call described above. Node operators receive positions as described in section 6. Data is disclosed to authorities only where the law requires it.
11. Your rights
Under the GDPR you may request access, rectification, erasure, restriction and portability, and you may object to processing based on legitimate interest. Operators can delete their account, nodes and tokens themselves in the portal, which removes the lichess id and username from the live database (backups are overwritten within 7 days). For other requests write to hello@daisychess.org. Because logs and counters are pseudonymous, we may ask for the token id or the approximate time to find your data. You may also complain to the Austrian data protection authority (Datenschutzbehörde, dsb.gv.at).
12. Children
DaisyChess is a general-purpose chess tool and not directed at children. It collects no data about age.
13. Changes
We update this policy when the service changes and note the date here.