DOCS LLMs

SDKs

Official SDKs

LicenseSeat provides official SDKs for popular platforms to make integration 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

Feature Parity

All SDKs share the same core functionality:

  • License Operations: Activation, deactivation, online/offline validation
  • Entitlements: Check feature access with expiration support
  • Offline Support: Ed25519 signature verification, clock tamper detection
  • Resilience: Automatic retries, network monitoring, background re-validation
  • 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++).

Note: Release management (querying releases, download tokens) is currently only available in the C++ SDK.

Choosing an SDK

Use the Swift SDK if you're building:

  • macOS applications
  • iOS/iPadOS apps
  • tvOS apps
  • watchOS apps
  • Cross-platform Swift applications (including Linux servers)

Use the JavaScript SDK if you're building:

  • Web applications
  • Browser extensions
  • Electron apps
  • Node.js applications (18+)

Use the C# SDK if you're building:

  • Unity games
  • Godot games (with .NET)
  • Windows desktop applications (WPF, WinForms, MAUI)
  • Cross-platform .NET applications
  • ASP.NET services requiring license validation

Use the C++ SDK if you're building:

  • Unreal Engine games
  • VST/AU/AAX audio plugins
  • Adobe Photoshop/Illustrator plugins
  • Native desktop applications
  • Performance-critical applications

Core Concepts

All SDKs share common concepts and workflows:

License Lifecycle

┌─────────────┐     ┌────────────┐     ┌────────────┐
│  Inactive   │────▶│  Activate  │────▶│   Active   │
└─────────────┘     └────────────┘     └────────────┘
                                              │
                    ┌────────────┐            │
                    │ Deactivate │◀───────────┘
                    └────────────┘

Validation Flow

┌─────────────┐     ┌────────────┐     ┌────────────┐
│   Validate  │────▶│   Online?  │─Yes─▶│   Server   │
└─────────────┘     └────────────┘     │  Validate  │
                          │            └────────────┘
                          No
                          │
                    ┌─────▼──────┐
                    │  Offline   │
                    │ Validation │
                    └────────────┘

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: "team-seats" (inactive)

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
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

Note: Time units vary by language convention—Swift uses seconds, JavaScript uses milliseconds, C# uses TimeSpan. See each SDK's documentation for specifics.

Security Features

All SDKs implement:

  • Ed25519 Signatures: Offline licenses 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