Ironvale Idle: privacy policy
What the game stores about you, why, for how long, and how to delete it.
1. The short version#
- You can play without an account. Your save then stays in your browser and nothing about you is sent to us.
- If you sign in, we keep your game save, your leaderboard numbers and an account id. We do not keep your email address; Google's Firebase sign-in service does.
- If you connect a work tool, we keep only that you finished something, of what type and when. Never titles, content, repository or project names. After 35 days each item becomes a daily count, and those counts stay until you delete your account.
- No ads, no advertising trackers, no selling or sharing of your data.
- "Delete account" in the game removes everything we hold about you at once.
2. Who we are#
Ironvale Idle (ironvaleidle.com) is a free browser game run by ELECTROBEAN LLC ("we", "us"). We are the controller of the personal data described here: we decide what is collected and why.
Questions or requests about your data: hello@ironvaleidle.com.
3. Playing as a guest#
Without an account, your save, its backups and your settings (such as graphics options) are kept in your own browser's local storage. The game does not send them to us and makes no requests about you to our servers. Our host, Cloudflare, still sees your IP address when it delivers the game's files to you (see technical data), and you can read the public leaderboards, which loads them from our server without identifying you.
Clearing your browser's site data deletes a guest save for good, so use Saves > Export in the game to keep a copy.
4. If you sign in#
Sign-in is handled by Google's Firebase Authentication, with your Google account or a link sent to your email address. Firebase holds your email address (and, if you use Google, the name and profile picture address on that account) so it can sign you in. Connecting GitHub to count your contributions is described below. When you sign in, Firebase gives the game a short-lived token, our server checks it, and from then on a cookie keeps you signed in. We keep:
- Account record: a random account id we create, the Firebase user id it is linked to, how you last signed in (Google or email link), and when the account was created and last used.
- Display name, only if you choose one in the account panel.
- Your game save: the game state (skills, items, where your adventurer is, play time) and up to five earlier copies as backups. Only one device plays at a time, so we also note which connection is currently playing while it is open.
- Leaderboard numbers: total level, total XP, coins earned and play time, copied from your save about every 15 minutes, plus one daily total for the last 75 days (for 30-day and season gains), and the result of automatic plausibility checks (see below).
- Public leaderboard name, only if you turn on "Show me on the leaderboards".
Leaderboards
We keep leaderboard numbers for every signed-in player so that switching the leaderboards on shows you straight away. Nobody else sees them unless you switch on "Show me on the leaderboards", which is off by default. When on, other people (including people who are not signed in) see the public name you pick, your total level, your XP and the coins you have earned. Turning it off hides you at once.
To keep the boards fair, the server automatically checks each save for progress that the game could not produce in the time played (for example, XP or coins gained faster than any activity allows). A save that fails is still stored and you can keep playing, but you are left off the public boards. These checks never affect anything except the leaderboards and play-time credit. If you think one is wrong, write to us and a person will look at it.
5. Finished items and play time (optional)#
If you choose to, you can connect a work tool (through Claude, a script, a webhook, or anything else that can send a web request). It sends us your finished items: things you completed, such as a merged pull request or a closed ticket. We use them for one thing: deciding how much play time your adventurer earns. They are never shared or shown to other players.
For each finished item we keep exactly:
- the source: a short label for the tool, such as "github" or "jira";
- a hashed id: the tool's own id for the item, put through a keyed one-way hash (HMAC-SHA-256 with a server key and your account id) as it arrives. The original id is never stored and can't be read back. It only lets us notice an item sent twice;
- the type, such as "pr_merged" or "ticket_closed";
- when it was finished and when it arrived, and the day that falls on in your time zone.
Anything else a tool sends (titles, descriptions, comments, links, people) is dropped unread. The source and type are short labels (up to 32 lower-case letters, digits, ".", "-" and "_") chosen by whatever sends them, so a tool you set up yourself could put something identifying there; the ones we suggest never do. You can see every source and type we hold on the work panel.
Webhooks
A webhook address (https://ironvaleidle.com/api/hook/<a random id>) is a private link
unique to you that a tool such as GitHub or Zapier can call. We read the request's headers and up to the
first 16 KB of its body only to work out an id for the item so it isn't counted twice; then we discard
them: they are never stored. What we keep is the same as
for any other finished item, above, plus a count of calls and items per webhook for the current day, and,
for calls that carry no id, a hashed fingerprint of the call for 10 minutes so a repeat counts once. Anyone who knows the address can send to
it, so treat it like a password; you can revoke it in the game.
GitHub contributions
Only if you press Connect GitHub on the Account panel and approve Ironvale on GitHub's own page does GitHub give our server an access key for that GitHub account (Ironvale asks for no access beyond your public profile; the key never passes through the game in your browser). Our server then reads that account's contribution calendar from GitHub about once an hour: the number of contributions on each day, and how many of them were private. Each contribution counts as a finished item. You can connect more than one GitHub account (up to 5); each is kept as below.
For GitHub we keep exactly:
- Each connected GitHub account's user number and username (shown on the Account panel as @username).
- The access key, encrypted (AES-256), used only to read the calendar. It is never shown, sent back to the game, or written to any log.
- The number of contributions per day (the last 35 days before you connect, used only to set your benchmark, and each day after), stored like any finished item above.
- When it was connected and last checked, and a short error code if a check failed.
- While you are on GitHub's approval page (at most 10 minutes): a random one-time code linking the return to your account, stored only as a hash, and a second one-time code, encrypted. Both are deleted when you come back, or after 10 minutes.
Never: repository names, commit messages, code, issue or pull request titles, or your GitHub email or profile details. Contributions to private repositories appear only as bare counts, and only if your GitHub profile is set to include private contributions.
Remove next to a GitHub account on the Account panel deletes its access key at once and asks GitHub to remove Ironvale's access for that account; you can also remove it yourself under GitHub, Settings, Applications. Counts already recorded stay with your other finished items and expire on the same schedule. Deleting your account removes everything else.
One record we keep after you remove a GitHub account or delete your Ironvale account: for each day of the last 40, the GitHub user number and how many of its contributions were already counted (just those three things: number, date, count; no username, nothing linking it to your Ironvale account). It stops the same contributions being counted twice if that GitHub account is connected again, to any Ironvale account. Each row is deleted automatically once it is 40 days old.
Tokens and connected apps
Personal tokens and connector authorisations (for example, when you allow Claude to send finished items) are stored only as SHA-256 hashes, with the label you give them and when each was made and last used. They can only send finished items and read your play time; they can't read or change your save. You can revoke any of them from the game at any time.
Settings and play-time records
We keep your settings for this feature (time zone, rest days with the dates they changed, and the weight you give each source and type), each source's first day and daily benchmark, a daily total per source, and a record of the play time granted each day.
6. Technical data and logs#
Our host, Cloudflare, necessarily sees your IP address and basic browser information whenever your device loads the site or talks to our server. We use this data in three ways, and do not use it to identify or profile you:
- Rate limiting. To stop abuse, the server counts requests per IP address (per network block for IPv6) and per account over short windows. These counters last about a minute; we do not store IP addresses in our database.
- Request logs. Cloudflare's logging for our server records technical details of each request to our API: the time, the address requested, the response status and timing, and the network information Cloudflare attaches to a request, which can include request headers, your IP address, approximate location and browser type. Request bodies are not recorded. We use these logs only to fix faults and investigate abuse, and they are deleted automatically after at most 7 days.
- Error reports. When something fails on the server, we log the address and the error, without your save or any finished-item content.
We may turn on Cloudflare Web Analytics to count page views. It uses no cookies, does not follow you across sites, and gives us only totals (such as visits per page and country).
7. What we never collect#
- Titles, descriptions, comments or any content of your work, repository or project names, people's names, or links.
- The bodies of webhook requests.
- Your email address, contacts, or Google or GitHub profile, on our own servers (Firebase holds your email to sign you in). From GitHub we keep only your user number, username and daily contribution counts.
- Payment details: the game is free.
- Advertising identifiers, or any third-party advertising or tracking cookies.
- Your precise location, camera, microphone or other device sensors.
8. Why we use it (legal bases)#
If you are in the European Economic Area or the UK, data protection law requires us to state a legal basis for each use:
| What we do | Legal basis |
|---|---|
| Run your account, store and sync your save, keep one device playing at a time | Performing our agreement with you (the terms) |
| Turn finished items into play time, keep tokens and connectors working | Performing our agreement with you, for a feature you choose to use |
| Show you on public leaderboards under your chosen name | Your consent (the opt-in switch); withdraw it by switching it off |
| Keep leaderboard numbers for players who have not opted in, and run plausibility checks | Our legitimate interest in instant opt-in and fair boards |
| Rate limiting, request logs, error reports, security | Our legitimate interest in keeping the game working and safe |
| Answering your messages, meeting legal obligations | Legitimate interest; legal obligation |
Where we rely on legitimate interests you can object (see your rights). We make no decisions about you by automated means that have legal or similarly significant effects; the plausibility checks only affect leaderboard listing and play-time credit, and a person will review them on request.
9. Who else handles it#
We do not sell or rent your personal data, and we do not share it for advertising. These service providers process it for us (GitHub only if you use it), under their terms:
- Cloudflare, Inc. hosts the site and our server (Cloudflare Workers, D1 database and Durable Objects storage), delivers it through its network, and provides the request logs above.
- Google LLC (Firebase Authentication) signs you in and holds your email address. The sign-in code is loaded from Google's servers only when you open sign-in, so Google sees your IP address then. If you sign in with Google, Google's own privacy policy also applies to your Google account.
- GitHub, Inc., if you connect your contributions: GitHub shows you its approval page, and our server asks GitHub for your daily contribution counts with the access key you allowed. GitHub sees those requests. GitHub's own privacy statement applies to your GitHub account.
If you connect a third-party tool (such as Claude, GitHub or Zapier), what that tool does with your data is governed by its own terms and privacy policy; we receive only what is described in section 5. We may also disclose data if the law requires it, or to protect the game and its players from fraud or abuse.
10. International transfers#
Cloudflare, Google and (if you use it) GitHub run services worldwide, including in the United States, so your data may be processed outside your country. Where data leaves the EEA or UK, these transfers are covered by the providers' data processing terms, using the EU-U.S. Data Privacy Framework (and its UK extension) where the provider is certified, and the European Commission's Standard Contractual Clauses.
11. Cookies and local storage#
We use one cookie, and only if you sign in:
| Name | What it does | Lasts |
|---|---|---|
__Host-iv_session | Keeps you signed in on this device. Holds your account id, signed by our server. Not readable by scripts, sent only over HTTPS and only to this site. | 30 days, renewed as you play; deleted on sign-out |
The game also uses your browser's local storage for things that never leave your device unless you sign in: your save and its local backups, display and log preferences, a weekly progress snapshot, and the state of syncing and device takeovers. While an email sign-in link is on its way, the address it was sent to is kept there until you use the link. When you sign in, Firebase also stores your sign-in state in this browser. Google's sign-in window (for Google sign-in) sets Google's own cookies on Google's sites, and GitHub's approval page (when you connect GitHub) sets GitHub's own cookies on GitHub's site.
All of these are strictly necessary for features you ask for, so we don't show a cookie banner. There are no advertising, analytics or tracking cookies.
12. How long we keep it#
| Data | Kept |
|---|---|
| Account record, display name, save and backups, feature settings, list of sources, total play time granted | Until you delete your account (backups rotate: only the newest five are kept) |
| Leaderboard numbers and check results | Until you delete your account; daily totals for 75 days |
| Public leaderboard name | Until you switch the leaderboards off or delete your account |
| Each finished item (hashed id, source, type, times) | 35 days, then folded into one daily count and weighted total per source |
| Daily counts and weighted totals per source | Until you delete your account |
| Daily benchmarks and records of play time granted | 40 days |
| Rest-day history | About 6 weeks |
| Personal tokens and webhook addresses | Until you revoke them or delete your account |
| Connector authorisations | Access tokens 7 days, refresh tokens 90 days, or until you disconnect |
| GitHub connection, per account (user number, username, encrypted access key) | Until you remove that account or delete your Ironvale account (the key is also deleted at once if GitHub stops accepting it) |
| GitHub daily contribution counts | As finished items above (35 days, then daily counts until you delete your account) |
| Already-counted record (GitHub user number, date, count; no username or account link) | 40 days per day, also after you remove GitHub or delete your account |
| GitHub approval in progress (hashed one-time code, encrypted one-time code) | Until you come back from GitHub, at most 10 minutes |
| Session cookie | 30 days from its last renewal, or until you sign out |
| Rate-limit counters | About one minute |
| Request logs and error reports | At most 7 days |
| Firebase sign-in record (email address) | Until you delete your account |
| Emails you send us | As long as needed to deal with them, then deleted within 12 months |
13. Your rights#
Wherever you live, you can ask us to tell you what we hold about you, give you a copy, correct it, or delete it. Most of this you can do yourself in the game (next section); for anything else, email hello@ironvaleidle.com. We will answer within one month, and may need to confirm the request comes from the account holder (for example, by asking you to send it while signed in).
EEA and UK
You have the right of access, rectification, erasure, restriction, data portability, and to object to processing based on legitimate interests. Where we rely on consent you can withdraw it at any time. You can also complain to your local data protection authority (in the UK, the Information Commissioner's Office), though we'd appreciate the chance to sort it out first.
California and other US states
You have the right to know what personal information we collect, use and disclose, to delete it, to correct it, and not to be treated differently for using these rights. The categories we collect are: identifiers (account id, Firebase user id, IP address), internet activity (request logs), and the game and finished-item data described above. We do not sell or share personal information for cross-context behavioural advertising, and we do not use sensitive personal information. You can use an authorised agent to make a request.
14. Exporting and deleting#
- Export your save: open Saves in the game and press Export to get your save as text you can keep or import later. For a copy of everything else we hold, email us.
- Delete your account: in the account panel, choose Delete account (you will be asked to sign in again to confirm). This removes, at once, your account, save, backups, leaderboard rows, finished items, daily totals, settings, tokens, connectors, webhook addresses and your GitHub connections (asking GitHub to remove Ironvale's access) from our server, and deletes your Firebase sign-in record. Request logs expire on their own within 7 days, and the GitHub already-counted record (GitHub user number, date, count; see GitHub contributions) within 40. The save in your browser stays there until you clear it.
- Smaller steps: switch off "Show me on the leaderboards", revoke a token or webhook, or disconnect an app or GitHub at any time.
If deleting your account fails, or you can no longer sign in, email us and we will delete it for you.
15. Children#
Ironvale Idle is for people aged 18 or older. We do not knowingly collect personal data from anyone under 18. If we learn that we have, we will delete it. If you believe someone under 18 has signed up, contact us and we will delete the account.
16. Security#
All traffic is encrypted (HTTPS). The session cookie can't be read by scripts. Tokens are stored only as hashes and item ids only as keyed hashes, so a leak of our database would not reveal them. The site loads no third-party code except Google's sign-in code when you sign in, and a strict content security policy blocks everything else. Each player's save is kept in its own isolated storage. No system is perfectly secure; if a breach affects your data, we will tell you and the authorities as the law requires.
17. Changes to this policy#
We will update this page when the game changes what it collects. The version and date at the top show the latest change. If a change is significant (for example, a new kind of data or a new use of it), we will tell signed-in players in the game before it takes effect.
18. Contact#
ELECTROBEAN LLC
Email: hello@ironvaleidle.com