Skip to content
imaged

Licenses & renewals

App identity, integrators, offline use, and license delivery.

Every app that runs Slab needs a runtime license. A license is one text string, signed by Slab. The app hands it to Slab, and Slab checks it on the device. There is no license server, no activation, no device count and no end-user account.

What a license contains

Field Meaning
Integrator The company that holds the license
Client The company whose app uses it
App The app it is bound to (see below)
Kind Trial, pilot or production
Period Start and expiry dates
Features Image models, text generation, GPU, NPU, protected models
Minimum Slab release The oldest Slab version it works with

Slab confirms the app from the platform itself, so a license copied into a different app is rejected:

Platform Bound to
iOS / iPadOS Bundle ID and App ID prefix
Android Package name and signing certificates (with Play App Signing, Google's certificate, not the upload key)
macOS Bundle ID and Keychain group of the signed app

One license works on every installation of that app, on any number of devices.

Two ways to hold a license

Your own app. A company that builds its own app is both the integrator and the client. It gets one license per app and platform.

An integrator serving clients. A company that builds Slab into its own SDK or product for other companies needs a separate license for each client. Client A's license covers only client A's apps; it never covers client B. Each client's license is signed by Slab, and the integrator delivers it inside that client's app. One client can hold licenses for several of its apps when its purchase covers them.

Terms

  • The self-service trial lasts 30 days, once per app ID. An administrator can extend a trial.
  • Paid license terms are confirmed with your invoice.
  • Every license expires, production included.
  • At expiry, new runs stop, even for models already loaded. Work already running finishes.
  • A renewal is a new string. It restores the app at once, with no app update.
  • A trial or pilot can be renewed into production in place.

In the app

  1. On Android, bind Slab to the app once at startup.
  2. Load the license string from anywhere: an app resource, your remote configuration (for example Firebase Remote Config), or your own server. The string is not secret; its signature makes it valid.
  3. Attach it to the Config before opening models. Every session opened from that Config uses it.
  4. To renew, give the new string to the Config for new sessions, and to open sessions to renew them without reloading the model.

Slab does not fetch, store or schedule licenses; delivery is up to the integrator. If a new string is rejected, the previous license stays in place until it expires.

When a license is refused

Opening a model or running it fails with a license error and a reason:

Reason Meaning
Missing No license attached
Not signed by Slab Unknown key or invalid signature
Wrong app Installed app differs from the license
Wrong platform License is for another platform
Release This Slab version is older than the license requires
Feature Model type, backend or protection not included
Not yet valid / expired Outside the license period

Reading model information and preparing images work without a license.

Protected models are separate

The runtime license allows an app to run Slab. Encrypting a model and unlocking it with a key or model token is a separate mechanism, controlled by the model's owner.

Get or renew a license

Register an app ID in your customer console, then start a 30-day trial or request a paid license. Copy or download the issued license from the app page.

Paid licenses and renewals are reviewed by our team. We send an invoice and issue a 30-day temporary license before payment arrives by bank wire. Trusted repeat customers may receive a full license upfront. Once payment is confirmed, your full license is available in the console.