POPProof of Play

Proof of Play

Every scorecomes with proof.

That's what POP stands for. Before a run counts, our server replays it, checks that it was played live, and looks at how every tap was made. Every run gets its own public proof.

Runs replayed
–
Taps checked
–
Runs thrown out
–
Sent to a person
–

What every run goes through

Seven checks, in three groups. Holding a token never skips one.

Thrown out if it fails

These are hard proof. A run that fails one never reaches the board.

  • Replayed on our server

    Your browser only sends the moments you tapped. The server replays them on the same level and works out the score itself.

  • Played live, at real speed

    Every run starts with a signed ticket and checks in every 5 seconds. Slow motion, pausing and rewinding all show up.

  • One of a kind

    Each ticket counts once, and a run that copies someone else's taps is refused.

Sent to a person if it trips

These look for a machine at the controls. A run that trips one stays on the board, but nothing is paid until a person has looked.

  • Real taps

    Every tap has to come from a real touchscreen, mouse, pen or key. Taps made by a script don't count as real.

  • Human touch

    A finger holds a tap for 50 to 150 ms, never the same twice, and never lands on the same spot. Automation tools press for 0 ms, or for exactly the same time, every time. It takes 8 taps to judge.

  • Human timing

    People hit the exact frame sometimes and slip by a frame or two often. A run that hits the exact frame on 80% of its hardest taps, or goes 30 hard taps without a single slip of 2 frames, gets a second look.

Before any money moves

The last check is a person.

  • Watched by a person

    The top 3 replays of every pot are watched before payout. Cheating disqualifies a run, and the next player moves up.

We attack it ourselves

We built 14 ways to cheat and ran each one 200 times through the same checks a real run goes through. Here's what happened, including what got through.

AttackWhat happenedCaughtCaught by
Edited game that sends a fake scoreChanges the game in the browser so it reports a score 10 times higher.Fake score ignored100%Replayed on our server
Made-up inputsSends taps the game could never have produced: out of order, too fast, or after the tower fell.Thrown out100%Replayed on our server
Slow motionRuns the game 25% slower to make the timing easier.Thrown out100%Played live, at real speed
Pausing mid-runFreezes the game for 20 seconds to rest, then carries on.Thrown out100%Played live, at real speed
RewindingSaves the game, and replays a bad drop until it lands (a save-state retry).Thrown out100%Played live, at real speed
Copying a top runResubmits another player's run under a new name, as is or with small edits.Thrown out100%One of a kind, Replayed on our server
Bot that posts straight to our APISkips the browser: works out the taps and sends them with the right check-ins.Sent to a person100%Real taps
Script that fakes taps in the pageA browser extension or console script that triggers the game's tap events itself.Sent to a person100%Real taps
Browser automationPlaywright, Puppeteer or Selenium clicking the game, with default settings.Sent to a person100%Human touch
Macro toolAutoHotkey-style key presses, each held for a set time.Sent to a person100%Human touch
Frame-perfect botReads the game and drops every block on the exact frame, with human-looking taps.Sent to a person100%Human timing
Near-perfect botHits the exact frame 70% of the time and is never more than a frame off.Sent to a person100%Human timing
Bot with fake small errorsFrame-perfect, but nudged a frame early or late at random so it doesn't look perfect.Sent to a person95%Human timing
Bot built to copy a personCopies human timing (slips included) and human-looking taps. Our own dev bot works this way.Got through0%Nothing automatic. A typical run beats 97% of players' runs.

Run on 2026-10-16 on Candle Stack, Moon Tower, Brick by Brick. The same checks sent 0% of 2,000 simulated players to review by mistake, and 5% of the very best ones. Simulated players aren't real ones, so we'll retune on real runs after launch.

Timing fingerprints

Every run has one: each judged tap, by how early or late it was. Here's what three of our bots look like. Every run's proof page shows its own.

Frame-perfect bot

Sent to a person: too precise

Frame-perfect bot: timing fingerprint: 80 taps. 80 on the exact frame, 0 one frame off, 0 two or more frames off.
On frameEarlyLateEach dot is one tap, first to last
  • On the exact frame80
  • 1 frame off0
  • 2 or more off0

Bot with fake small errors

Sent to a person: never slips

Bot with fake small errors: timing fingerprint: 37 taps. 8 on the exact frame, 29 one frame off, 0 two or more frames off.
On frameEarlyLateEach dot is one tap, first to last
  • On the exact frame8
  • 1 frame off29
  • 2 or more off0

Bot built to copy a person

Got through: looks like a person

Bot built to copy a person: timing fingerprint: 36 taps. 14 on the exact frame, 13 one frame off, 9 two or more frames off.
On frameEarlyLateEach dot is one tap, first to last
  • On the exact frame14
  • 1 frame off13
  • 2 or more off9

What we can't catch yet

A bot built to copy a person, slips and all, passes every automatic check. No check that only sees taps can tell a perfect imitation from a person. Our own dev bot works this way, and it passes too.

What such a bot can't do is play much better than people without tripping the timing checks. The closer it gets to perfect, the more of them it trips. Every top 3 run is watched by a person before payout, and paid pots cost money for every try.

We keep the checks honest by publishing this page, and we retune them on real runs. Holding $POP never changes any of it.

Play today's gameRulesWhitepaperDocs