Typing Tells: How AlgoArena Reads Keystrokes for Fair Play
The same keystroke timeline that powers ghost battles also keeps competition honest. A look at why behavior, not code, is the signal, and why we keep the details private.

Every coding battle on AlgoArena produces more than a final solution. It produces a performance: the rhythm of how the code actually got typed. We capture that keystroke timeline, with consent and anonymized for research, and it turns out to be useful in two very different ways.
Fair play
Copy and paste is already blocked in the editor, so the failure mode we care about is not pasting. It is blind transcription: someone reading a solution from an external source and typing it out without working the problem. The giveaway is not the code. It is the behavior.
Genuine problem solving is bursty and self correcting. You pause to think, you backspace, your pace changes as you reason through an edge case. Transcription tends to look different. It is smoother and steadier, with fewer of the natural hesitations that come from actually figuring something out. Because these are behavioral signals rather than anything about the code itself, they are language agnostic, which lines up with prior academic work on keystroke dynamics for detecting contract cheating.
Today this runs as a transparent fair play layer. It flags unusual sessions for review rather than auto penalizing anyone, and it leans conservative on purpose. Guests, who are new to the platform and may type differently, get extra tolerance, because the cost of a false accusation is high. We keep the exact signals and thresholds private, for an obvious reason: published cutoffs would just be an evasion manual.
Ghost battles
The same keystroke timeline is also simply fun. Because we can replay how a solution unfolded, you can race a ghost: a recording of a past run, yours or someone else's, with their code taking shape keystroke by keystroke next to yours. The Arena 90 ghost ladder runs on exactly this data. The telemetry that keeps competition honest is the same telemetry that lets you spectate, learn from stronger players, and compete against a performance instead of a number on a leaderboard.
It is worth being clear about the boundary between the two uses. Human ghosts have to clear strict eligibility before they enter the pool, and fair play review is about flagging a session for a person to look at, not about quietly punishing anyone. Same data, two jobs, both visible.
Where it points
Right now the fair play layer is threshold based and deliberately cautious. We are collecting carefully labeled data so it can grow more accurate over time, and we will keep the detection details where they belong, which is out of reach of anyone trying to game them. The principle does not change: AlgoArena should understand the work behind an answer, so practice means something, competition stays honest, and the signal we show learners, teachers, and hiring teams is real.
