KeyGrant is launching soon. Join the waitlist for early access. Join the waitlist →

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, with 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.

Join the waitlist

Be first in when KeyGrant opens up. We'll email you at launch. No spam.