Skip to main content
Before any purchase, the SDK inspects the host for tamper indicators. This is a pre-gate: detected risks block the purchase before a request is sent.

The check

Browser/engine equivalents (checkEnvironmentIntegrity) surface the same levels.

Risk classification

On any detected risk the SDK:
  1. reports an ENV_COMPROMISED security event (best-effort, backend 202),
  2. returns PurchasePreflight::Blocked { level, risks }.
No purchase request is sent.

What to do when a purchase is blocked

  • Read level + risks from the pre-flight result and surface a generic, player-safe message (“purchase is unavailable on this device”).
  • Do not retry automatically — the environment will not change mid-session.
  • Treat repeat blocks on the same device as a signal for your operations team.

Beyond purchase-gating: host hardening

Integrity checking exists to protect the purchase path. It is not a complete anti-cheat. For gameplay integrity:
  • run your own authoritative server (the platform only agrees on who, which match, and what result),
  • use the mutual-claim protocol (both participants must agree),
  • keep boardHash proof game-defined and opaque.

Reporting

If you believe a device is compromised or your game was targeted: Next: Report a security incident.
Last modified on September 10, 2026