DOCS LLMs

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:

Payment platforms supported by LicenseSeat

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:

Product dashboard with usage analytics on LicenseSeat

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

Next Steps