Skip to content

Account & Licensing

This page is the Krapple Studios-level overview of how our commercial products are licensed. It is deliberately product-neutral; the exact commands and screens live in each product's own licensing pages (for PteroCloud, see Licensing).

The shared model

Krapple Studios products are commercial software gated by a signed runtime lease issued by the Krapple licensing server:

  • A product is activated once with a license key, which binds the installation to a server-issued lease.
  • The lease is signed (Ed25519) and verified on read. A local database flag, a local expiry value or a client-supplied flag is never treated as authority.
  • Enforcement fails closed: a missing signature, a transport/JSON error, a missing cache or an exception never results in "allowed".
  • Licensing never destroys customer infrastructure. When a lease is locked, only the product's control layer locks; existing workloads keep running and remain recoverable.
  • There is no unlimited offline mode and no bypass switch (no --skip-license, no "disabled" flag, no universal development license that can load in production).

Keys and secrets

  • License keys are supplied only through an environment variable or a protected file, are never logged, and are shown masked in the UI.
  • Documentation, support bundles and screenshots never contain real keys, tokens, secrets or credentials; examples use placeholders such as KRP-XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX.

Product-specific detail

Honest scope

The lease mechanism is strong commercial tamper resistance, not magic. A determined root user on the host can patch both the code and the verifier. What it does reliably is prevent casual copying, detect edited or copied leases, enforce server-authoritative suspension/revocation, and make naive tampering fail closed rather than open.