Documentation
KeyGrant adds license keys, device activation, offline validation, trials and payment sync to
your desktop app. You can integrate over the plain REST API, or drop in a
first-class SDK like @keygrant/electron for the convenient path.
The model
KeyGrant is organised around four nested resources:
- Account — your developer tenant.
- Product — each app you ship. A product owns its own signing keypair.
- License — a key you sell: perpetual, subscription, or trial.
- Activation — a license bound to a specific device, up to your device limit.
Signed leases
On activate and validate, KeyGrant returns a lease: a
standard signed JWT (EdDSA / Ed25519) carrying the license key, product, activation, entitlements,
device limit and an expiry. Your app verifies that JWT offline against the
product's public key — no server round-trip until it's near expiry.
The lease TTL is your offline grace window. If KeyGrant is unreachable — an outage, a lost connection — a paid customer's app keeps working until the lease expires. Licensing fails in favor of the paying customer, by design.
Because the lease is a standard JWT, any language can verify it with an off-the-shelf JWT library and the public key. The SDK is optional sugar on top.
Next
Ready to integrate? Get started with @keygrant/electron
— install, activate, and verify a license in about six lines.