Jul 11, 2026 · 4 min read · GameMantra Team

Device attestation stops bots. It's not the whole fix

Play Integrity and App Attest catch tampered clients and emulators, but a farm of real devices running real accounts slips past both checks

Currency duping and speed hacks get caught by making the server the source of truth for every reward. That fix doesn't touch a different problem: an account that behaves like it belongs to a real player but is actually one of thousands being run by an automated farm, on real hardware, through an unmodified copy of your game. Device attestation is the tool built for exactly that gap, and it's worth understanding precisely what it checks and where it stops.

What device attestation actually verifies

Both major platforms ship an attestation API a studio can call from its backend. One checks whether the app binary making the request is the one you actually published, unmodified, running on a real device rather than an emulator, with no known tampering tools or malware present. The other performs a similar check through a device's secure hardware element, confirming the request came from a genuine, unmodified install of your app rather than a repackaged or instrumented copy. Neither one asks anything about the player behind the device. They answer a narrower question: is this specific request coming from software you can trust, running where it says it's running.

That narrower question is worth answering. A large share of low-effort exploitation — modified clients that inject fake reward calls, emulator farms running dozens of instances on one machine, repackaged builds that strip out your anti-tamper checks — gets stopped at this layer before it ever reaches your game logic. It's the cheapest, highest-leverage check you can run, because it happens before any gameplay-specific logic even executes.

Where attestation stops working

The gap shows up the moment an operation runs real copies of your app on real, unmodified phones. A device farm of a hundred genuine handsets, each running your actual client, each logged into a real account created through your real signup flow, passes every attestation check you have. The binary is legitimate. The hardware is real. Nothing about the request looks tampered with, because nothing has been tampered with — the automation lives in how the accounts are operated, not in what's running on the device.

This is the pattern behind resource farming, leaderboard manipulation through automated play, and coordinated account networks used to exploit referral or first-purchase bonuses at scale. None of it requires touching your binary. It just requires enough hardware and enough patience to make automated play look, at the device level, indistinguishable from a very dedicated human.

The signals that catch what device checks miss

What survives attestation still leaves a behavioral trace, because automation optimizes for throughput in ways human play patterns don't. Session timing that's regular to the second across supposedly unrelated accounts, action sequences that repeat identically frame-for-frame, or a cluster of accounts whose creation timestamps, device models, and early-session behavior are suspiciously uniform are all signals that don't require any device-level tampering to produce — they come from the same event stream you're already collecting for economy and retention analytics, read for a different purpose.

The economics matter here too. A currency balance that grows faster than any legitimate combination of session count and playtime allows, or a leaderboard entry with a completion time outside the statistically plausible range for your game, is detectable without ever inspecting a single device. It's the same anomaly-detection logic that catches a currency exploit, applied to accounts instead of transactions.

Layering the two approaches

Neither layer replaces the other, and treating device attestation as sufficient on its own is the mistake that leaves the behavioral gap wide open. The practical architecture runs attestation first, as a cheap gate that removes the tampered-client and emulator-farm traffic before it costs you anything downstream, then runs behavioral monitoring continuously on whatever passes through, flagging accounts for review rather than assuming a clean attestation result means a clean account.

The review step matters because false positives on real players are expensive in a way false negatives on bots aren't — banning a genuine high-volume player who happens to play with unusual consistency does more damage to trust than letting one more bot account run undetected for another day. That asymmetry is why behavioral signals should route to review queues and reduced trust scores before they route to automatic bans, with the ban decision reserved for patterns confirmed across multiple signals rather than triggered by any single metric crossing a threshold.

The honest limit

No combination of device attestation and behavioral monitoring makes bot farming a solved problem, and any studio promising a permanent fix is overselling it. What both layers together actually do is raise the cost of running a farm against your specific game — more hardware needed to pass attestation at scale, more effort needed to make automated behavior statistically indistinguishable from human play — until it stops being worth the effort for most operators. That's the realistic goal: not elimination, but making the attack expensive enough that it moves to an easier target.

The same event telemetry that powers this kind of anomaly detection is what gamemantra's economy monitoring reads to flag unusual issuance and spend patterns as part of standard inflation-risk tracking — the exploit-detection use case and the economy-health use case run on the same data, which is part of why it's worth collecting well from day one rather than bolting on later.

Share this post

See what this looks like for your game.

SDK for Unity and Unreal. A 20-minute call to walk you through it.

Book a demo