SDKs
LicenseSeat has SDKs for popular platforms to make integration with your app fast and secure.
Available SDKs
| Platform | Package | Features |
|---|---|---|
| Swift | licenseseat-swift |
macOS, iOS, tvOS, watchOS, Linux |
| JavaScript/TypeScript | @licenseseat/js |
Browsers, Node.js 18+, Full TS support |
| C# | LicenseSeat |
Unity, Godot, Windows desktop, .NET 6+ |
| C++ | licenseseat |
Unreal Engine, VST/AU plugins, Native apps |
| Rust | licenseseat + tauri-plugin-licenseseat |
Tauri v2 with JS/TS bindings, native Rust apps |
First things first: create a license activation window
When integrating with the LicenseSeat SDK, you should create your own UI / window for users to input the license, so you can design it to match the rest of your app. It should be pretty straightforward: just a text input box and a button you can connect to the SDK actions:

Then, add the LicenseSeat SDK to your app
Adding the LicenseSeat SDK to your app is very easy and take just a few lines of code.
The SDKs for all languages all work in a similar way. In JavaScript, for example, you just need to import it:
import LicenseSeat from '@licenseseat/js';
Then just initialize the LicenseSeat object with your API Key (you can get it in your LicenseSeat dashboard) and your product slug:
const sdk = new LicenseSeat({
apiKey: 'pk_live_xxxxxxxxxxxxxxxxxxxxx',
productSlug: 'my-product'
});
And then you can just wire your UI to any of the methods the SDK give you:
const license = await sdk.activate('TEST-XXXX-XXXX-XXXX');
On top of this, the SDK will do periodic checks in the background to ensure the license is active (so if you revoke it manually via the LicenseSeat dashboard, it actually stops working for the user).
The SDK also sends telemetry data automatically, so you can track usage and user analytics in the dashboard:

SDK features
All SDKs share the same core functionality:
- License Operations: Activation, deactivation, online/offline validation
- Offline Support: Signed offline artifacts, clock tamper detection, and a gradual transition toward machine-file-first offline validation
- Entitlements: Check specific features access each license may give access to, with expiration support
- Resilience: Automatic retries, network monitoring, background re-validation
- Heartbeat: Standalone 5-minute heartbeat for device liveness detection
- Telemetry: Automatic collection of device, OS, hardware, and app info
- Events: Subscribe to license lifecycle events
- Security: Constant-time comparison, secure device fingerprinting
Each SDK also includes platform-native integrations (SwiftUI for Swift, React/Vue examples for JS, Unity/Godot for C#, Unreal/JUCE for C++, Tauri v2 for Rust).
Offline model note: the API and newest SDK work converge on machine files as the preferred offline artifact because they are encrypted, activation-bound, and fingerprint-bound. Some older SDKs still use signed offline tokens today; their individual docs call that out explicitly instead of pretending every SDK has already migrated.
Entitlements
Entitlements are feature flags attached to licenses. Use them to:
- Gate premium features
- Implement tiered pricing
- Control feature access per license
License: "XXXX-YYYY-ZZZZ"
├── Entitlement: "pro-features" (active)
├── Entitlement: "api-access" (active, expires: 2025-12-31)
└── Entitlement: "updates" (inactive)
See Entitlements for setup instructions and best practices.
Common configuration
All SDKs accept similar configuration options:
| Option | Description | Default |
|---|---|---|
apiKey |
Your publishable API key | Required |
productSlug |
Your product identifier | Required |
apiBaseUrl |
API endpoint | https://licenseseat.com/api/v1 |
autoValidateInterval |
Background re-validation interval | 1 hour |
heartbeatInterval |
Standalone heartbeat interval | 5 minutes |
appVersion |
Your app version (for telemetry) | Auto-detected or null |
appBuild |
Your app build number (for telemetry) | Auto-detected or null |
maxRetries |
Retry attempts for failed requests | 3 |
maxOfflineDays |
Offline grace period (0 = disabled) | 0 |
deviceId |
Custom device ID | Auto-generated |
debug |
Enable debug logging | false |
Read the exact configuration options each SDK accepts in each of their READMEs.
Security Features
All SDKs implement:
- Ed25519 Signatures: Offline artifacts are cryptographically signed
- Clock Tamper Detection: Detects system clock manipulation
- Constant-Time Comparison: Prevents timing attacks on license keys
- Secure Storage: Platform-appropriate secure storage mechanisms