New to licensing?
Build a Python desktop or web app, step by step. Start with one successful export, then add shared seats, credits and self-service. Download the project files.
One contract across five SDKs
Python 2.0.1, JavaScript 2.0.1, PHP 2.0.1, C# 2.0.1 and Rust 0.2.1 implement the same current license contract. Choose the SDK for your app, not for your store. Downloads and installation.
| Capability | Python | Rust | PHP | JavaScript | C# |
|---|---|---|---|---|---|
| Signed checks and controlled offline access | Supported | Supported | Supported | Supported | Supported |
| Required signed device fingerprint | Supported | Supported | Supported | Supported | Supported |
| Floating checkout, heartbeat, checkin | Supported | Supported | Supported | Supported | Supported |
| Idempotent online credit consumption and balance | Supported | Supported | Supported | Supported | Supported |
| Customer portal | Hosted server feature | Hosted server feature | Hosted server feature | Hosted server feature | Hosted server feature |
Choose the access model
- Normal licenses: activate, check the signed result, then unlock only its allowed features. Offline access remains bounded by signed expiry and your configured policy.
- Device matching: SDKs derive product-salted hashes on the supported native OS. Advanced strict/flexible policy follows your workspace entitlements. A virtual-machine hint alone does not reject a device. Software fingerprints are not hardware attestation.
- Floating licenses: reserve a seat, keep its signed lease valid, then release it. Handle
ALL_SEATS_IN_USE. Cached access stops when the signed seat lease expires; ordinary offline grace cannot extend that lease. PHP applications must calltick()during long work. - Usage credits: allocate credits through the dashboard/API, consume before the protected operation and retain one idempotency key per real job. Handle
INSUFFICIENT_CREDITS; do not invent a new key after an uncertain reply. Credits require an online response and are not consumed by a normal feature check. - Customer portal: customers sign in using a verified access link or license key to review licenses, machines, balances, transactions and active shared sessions. Allowed machine/session actions remain authorized and rate-limited by the server. It does not sell plans, take payments or issue refunds.
WooCommerce
The connector delivers licenses from eligible confirmed orders, synchronizes selected product/plan settings and provides My Licenses. Current license details include credit balances and shared-seat usage. It does not collect a desktop device fingerprint or keep an app's seat alive: the SDK inside the app does that. A store purchase does not automatically grant usage credits in this release. Store setup.
Runtimes and limits
Python supports 3.11–3.14; Rust requires 1.90+; PHP requires 64-bit PHP 8.2+; JavaScript runs in Node.js 22+ or Electron's main process; C# targets .NET 10 LTS. Browser JavaScript and WASM hardware fallback are unsupported. Your installed SDK must match the current required-fingerprint contract; historical 1.x / Rust 0.1.x packages do not.
Always verify a valid result before reading paid features. Stop protected actions after a refused/expired lease or credit charge. No SDK can provide instant offline revocation or make client software impossible to modify. Focused mocked tests are not a substitute for running your packaged app on its target OS.