Offline licensing that keeps working
Every activation hands the app a signed lease it can check with no internet. Planes, studios, and locked-down networks keep working, and a copied lease dies on a second machine.
Start Free
- Opens on a plane
- The app checks the lease locally. No server call, no spinner, no failure mode when the network is gone.
- Seven-day lease
- Each lease is good for seven days and refreshes quietly whenever the app is online. Fully offline, the app keeps running for up to two weeks.
- Dies on a second machine
- The lease is bound to the device that activated. Copy the file to another machine and it fails.
- Clock rollback is caught
- Winding the system clock back to stretch a lease does not work.
Updated September 2026
Two stories, one lease
The customer story. They bought your app, activated it at home, and opened it on a flight. No wifi. The app opens, the paid features work, nobody notices anything. That is the whole point.
The pirate story. Someone copies the licensed app folder, lease file included, onto a second machine. The app opens, checks the lease, sees it was issued for a different device, and asks for activation. The copy is useless.
Both come from the same thing. When a device activates, Keylight hands the app a signed lease. The app checks that lease locally, with a public key it shipped with, every time it launches. No server call is needed to open the app. The lease says which device it belongs to, so it cannot be moved.
The seven-day window
A lease is good for seven days. Whenever the app is online, it refreshes the lease quietly in the background before it runs out, so a customer with a normal connection never sees the edge.
Go fully offline and the app keeps running on the lease it has. On day eight it wants a re-check. If the license is still valid, the next time the app is online a fresh lease arrives and the customer notices nothing. It is a re-check, not a lockout. The SDKs also cap how long an app can go without any online check at all, fifteen days by default, and you can tune that.
Seven days is deliberate. Short enough that a refund or a revocation lands within the week. Long enough that a studio on an air-gapped network or a laptop on a long trip keeps working. The offline license validation page walks through the reasoning.
Clock rollback is caught
The oldest trick is to wind the system clock back so a lease never seems to expire. The SDKs remember when the app last talked to Keylight. If the clock is now sitting more than an hour before that moment, it moved backwards, and the lease is treated as invalid until the app checks in again. A small correction from the system’s own time sync stays inside the tolerance. A customer trying to stretch a lease gets nothing.
Identical result in every SDK
Swift, JavaScript, Rust, C#, and C++ all check the same lease the same way, and each one is tested against the same set of shared conformance vectors. A lease that passes on a Mac passes on Windows, in a Unity build, in a JUCE plugin, and in a Rust CLI. You do not have to trust five implementations. You trust one check, run five times.
The API path is the honest exception. If you integrate over plain HTTPS with no SDK, every check is a live read and there is no lease to verify locally. That is the right trade for a server-side service. It is the wrong one for an app that has to open on a plane, which is why offline lives in the SDKs.
Revocation, honestly
A device holding a valid lease runs until it re-checks. If you revoke a key on Monday morning, a device that last checked in on Sunday keeps working until its lease runs out, at most seven days. No offline licensing system can promise an instant kill, and any that does is either not really offline or not telling you the whole story.
What you get instead is a bounded window and a lease that cannot be copied. For most products that is exactly the right trade. The device activations page covers what binds a lease to a machine and how customers free up a seat themselves.
Offline licensing is included on every Keylight plan and every SDK. See Pricing, starting at $19/month. For offline sessions inside a DAW, see Licensing for Audio Plugins (VST/AU).
Frequently asked
How long can a customer stay offline?+
A lease lasts seven days from when it was issued, and the app refreshes it whenever it is online. A customer who goes fully offline keeps working for at least seven days and up to fifteen, depending on when they last checked in.
What happens when the lease runs out?+
The app re-checks with Keylight the next time it is online. If the license is still valid, a fresh lease arrives and nothing changes for the customer. It is a re-check, not a lockout.
Can a customer copy the lease to another computer?+
No. The lease is bound to the device that activated it. On any other machine the check fails and the app asks for activation.
If I revoke a key, does the app stop instantly?+
No, and no offline system can promise that. A device holding a valid lease runs until its next re-check, at most seven days. That window is the price of working offline.
Does the API path work offline?+
No. The API path is online-first. Every check is a live read. Offline verification lives in the SDKs.
Start licensing your app today
Drop in the Swift SDK, point it at your dashboard, and sell paid apps in under a minute. Free forever tier included.
Start Free