Apps that run offline
A Sealcord licence key is a signed document, so an app can tell a genuine key from a forged or edited one with no network at all. The network is needed only to take a seat and to learn about changes made after the key was issued, such as a revocation. This page says what works offline and for how long.
What works with no network
Section titled “What works with no network”| Check | Offline | How |
|---|---|---|
| The key is genuine and for this product | Yes | Its Ed25519 signature, with the public key built into the app |
| The key has not passed its expiry | Yes | The expiry is in the signed key; the machine’s clock judges it |
| This machine holds a seat | Yes, until the verdict ends | The stored verdict, signed for this machine id |
| The licence was not revoked since | Yes, until the verdict ends | The stored verdict’s valid_until |
| Taking a seat on a new machine | No | POST /v1/activations needs the API once |
The first two are the offline key check. The rest come from the signed verdict the app stores after each activation or status call.
How long a verdict lasts
Section titled “How long a verdict lasts”A verdict is valid until its valid_until: seven days after it was made, never past the licence’s
expiry, and for a trial never more than a day past the trial’s end. While the stored verdict is
valid, the app needs no call. It asks again at most once a day while online, so a laptop that goes
offline usually starts with close to seven days left.
When the verdict has ended and there is no network
Section titled “When the verdict has ended and there is no network”What the app does then is your decision. The safe default is to keep running on the offline key check and try again later: an outage, a plane or a hotel network must never lock out a customer who paid. A stricter app can stop after a grace period of its own; Sealcord does not impose one.
A network error, a timeout, a 429 or a 5xx is never a revocation. Only an answer from the API
that the licence no longer holds is.
Machines that are never online
Section titled “Machines that are never online”A machine that can never reach api.sealcord.com can run on the offline key check alone, but it
never takes a seat, so Sealcord does not count it against the licence’s limit and your app does not
learn of a revocation. If your customers need such machines, decide how many your app allows
without a seat, or sell them a licence for those machines and trust the key check there.
The machine’s clock
Section titled “The machine’s clock”Offline, the app trusts the machine’s clock for the key’s expiry and the verdict’s valid_until. A
clock set back can keep an expired key or verdict accepted until the next call, where the API judges
with its own clock. A verdict whose issued_at is more than five minutes in the future is ignored,
which catches a clock set far ahead.
How fast changes reach an offline app
Section titled “How fast changes reach an offline app”| Change | When the app sees it |
|---|---|
| You revoke or expire a licence | At its next status call; the stored verdict holds until its valid_until |
| A seat is freed elsewhere | At this machine’s next status call |
| A trial converts | Nothing changes for the app: the key and the active verdict stay |
Questions
Section titled “Questions”Does the app need to be online to start?
Section titled “Does the app need to be online to start?”No. The key check and the stored verdict run on every launch with no call.
Can I make verdicts last longer than seven days?
Section titled “Can I make verdicts last longer than seven days?”Not per product: seven days is the service’s setting for every verdict. Your app can keep running past it on the offline key check, as above.
What does the app do when it comes back online?
Section titled “What does the app do when it comes back online?”It asks for the status, stores the new verdict, and shows a message only if the licence no longer holds (what to show).