macOS · iOS · iPadOS · Mac Catalyst. Single-import, @Published license state, offline-ready Ed25519 lease verification.
SDKs and platforms
Keylight ships first-party SDKs for Swift, Rust, JavaScript/TypeScript, and C++ today, with C# / .NET in alpha. They verify licenses identically — the same signed v3 lease and Ed25519 check, proven by a shared set of cross-SDK conformance vectors — and, since 2026-09-07, all five read the dashboard-owned trial length, verify its signature behind the same off-by-default switch, and offer the same post-purchase refresh. The HTTP API is stable and public, so any other platform can integrate the same way.
Available today
Section titled “Available today”CLIs, daemons, and desktop apps — including a first-party Tauri plugin. Synchronous and runtime-free (no async/Tokio), with the offline lease verifier built in.
Browser, Node, Deno, Bun, and edge/Workers from one fully-typed package. Online activation plus offline Ed25519 verification — server-side validation, Electron apps, and web apps alike.
Cross-platform desktop, Unreal Engine games, and JUCE audio plugins. Header-only, zero-dependency core with the offline Ed25519 lease verifier built in — plus native Unreal (FHttpModule) and audio-thread-safe JUCE adapters.
In alpha
Section titled “In alpha”Windows apps (WPF, WinUI, MAUI), Unity, and Godot 4. Targets netstandard2.0 and net8.0 with zero runtime dependencies. Activation, validation, and offline Ed25519 lease verification work today and pass the same conformance vectors as the SDKs above.
Install with dotnet add package Keylight. Unity installs from the repo over UPM — the package lives in unity/dev.keylight.sdk.
Since 0.4.x it also reads the dashboard-owned trial length, verifies the signed settings behind RequireSignedConfig, and has RefreshAfterUpgradeAsync — the same behaviour as the SDKs above.
Not at parity yet: no keyless free-tier beacon and no cross-SDK device hash, so free-tier and trial devices from a C# app don’t appear in the dashboard’s keyless funnel; unlicensed installs fetch /config at launch instead. Paid activations are unaffected. Pin an exact version — the API may still move before 1.0.
More platforms — demand-driven
Section titled “More platforms — demand-driven”We add a first-party SDK when a real builder needs one, not to fill out a grid. If your stack isn’t a first-party SDK yet, you’re not blocked: the REST API ships licensing on any platform today, and the conformance vectors mean a ~60-line verifier behaves exactly like the SDKs above.
Anything else: use the REST API
Section titled “Anything else: use the REST API”The Keylight backend is a thin, well-documented HTTP service. If your platform isn’t in the list above, you can still ship licensing today by calling the API directly:
- Every request to
/{tenantId}/activate,/{tenantId}/validate, and/{tenantId}/deactivateis a plain JSON POST. - Authenticate with the
X-Keylight-SDK-Keyheader (one per tenant, rotatable from the dashboard). - Successful responses include an Ed25519-signed lease you can verify locally with the tenant’s public key — no need for a network round-trip on every app launch.
The signature format and lease schema are documented in Offline leases, so a 60-line implementation is enough for most platforms.