Build Bindseal into your game.
Everything you need to issue signed licenses, verify them offline in your game, and gate the parts of your game that matter on a server-signed answer — plus an honest account of what each mechanism does and doesn’t protect.
Quickstart
The one happy path, end to end: construct the client, activate a license, gate a feature on the signed lease, heartbeat, and report tamper evidence.
Read the quickstart → 02 · ClientSDK reference
Every public method on the JavaScript client — lifecycle, hollow / fused / sealed features, offline and release grants, tamper reporting — and the errors each one throws.
Browse the SDK → 03 · ServerServer API
The license server’s HTTP endpoints: activation and heartbeat, protected operations, offline grants, tamper adjudication, admin routes and every error code.
Browse the API →JavaScript, ES modules, package @bindseal/sdk. Runs on Node.js 20+ (and Node-based runtimes such as Electron). Zero runtime dependencies, no native bindings. It is the only SDK available today.
https://api.bindseal.com — JSON over HTTPS. Request bodies are capped at 128 KiB.
Every server answer is an Ed25519-signed container. The client verifies it against a public trust anchor embedded in your build before trusting a single field — nothing secret ships in your game.
Licenses run on a signed lease that is evaluated offline. A transient outage fails open into a grace window, so a paying player is never hard-locked by a network blip.
Bindseal raises the cost and time of cracking each release, and server-backed features make a stripped client yield nothing instead of a bypass. It does not make piracy impossible — no client-side protection can. Read how it works and the FAQ before you ship.