Privacy
Last verified/updated: 2026-10-06
What we store when you vote. The arena has no accounts, so voter identity is handled with a hash: when you cast a vote, the server computes SHA-256 of your IP address, your user agent, a server-side salt and the current UTC date. Only that hash is stored, attached to your vote. The raw IP address is used transiently inside the hash computation and is never written to our database, logs or backups. Two honest caveats, because the implementation matters more than the intention: first, the salt is rotated by an operational procedure (re-setting the server secret), not yet by an automated daily job — until it is rotated, hashes from different days use the same secret and could in principle be linked to each other, though not reversed into an address without the original inputs. Automating rotation is on the backend roadmap. Second, the human-verification check (Cloudflare Turnstile) necessarily receives your IP address at vote time so it can verify the challenge — Turnstile is a recipient of the address even though we never store it ourselves.
Why store anything at all. The daily hash is how one visitor gets one voice: it lets the server deduplicate repeat votes on the same battle and enforce rate limits without building a profile of anyone. The same mechanism, with a longer-lived salt, powers the abuse heuristics described in the methodology — sudden vote inflows from one source can be counted and capped without ever knowing what that source is.
What we do not do. No cookies are set for tracking. No third-party analytics, advertising or fingerprinting scripts load on any page — the site ships no external JavaScript at all. Vote clips will be served from our own storage. We do not sell, share or rent any data, mostly because the design above means we barely hold any.
Data retention and your rights. Individual votes are kept as aggregate inputs to the public leaderboard and its published snapshots. Stored hashes remain in the votes table as vote metadata; they stop being linkable across days once the salt is rotated, and there is no separate per-day hash store to destroy — the unlinkability guarantee is exactly the rotation procedure described above. Since we hold no identifying data, there is nothing to export or delete on request — but if you believe a vote was attributed to you in error, the contact page reaches the team, and corrections are handled per the corrections policy. This policy applies to the static site and the voting backend described in the public worker documentation.