SDKInitOptions.license
Your license token. A valid license — development or production — is required: Kernstra.init() verifies it before anything else happens; without one it shows a "License required" popup, rejects with LICENSE_REQUIRED, and never downloads the engine.
Pass the token to init, typically from your build's own variable, or set it where the SDK looks when none is passed: a globalThis.KERNSTRA_LICENSE string, a <meta name="kernstra-license" content="…"> tag, or, in Node, process.env.KERNSTRA_LICENSE. The SDK ships prebuilt, so a bundler cannot substitute an environment variable into it; read the variable in your code. An empty or missing value means "no license given"; only Kernstra.setLicense('') signs out and forgets the cached token.
Development tokens watermark every rendered, printed and exported page with the Kernstra mark, so development output can never ship as production; they may name * and run on any host, or be bound to your local and staging origins. Production tokens are bound to your origins and render clean output.
Secure context. The SDK runs only where the browser provides the Web Crypto API — over HTTPS or on localhost. On a plain-HTTP origin it refuses to start (LICENSE_REQUIRED, reason insecure-context). This holds for offline (air-gapped) licenses too: an intranet deployment needs HTTPS, a self-signed certificate is enough. There is deliberately no fallback for plain HTTP. See Licensing for origins, status checks, outages and what a stopped license means.
Example
await Kernstra.init({ license: import.meta.env.KERNSTRA_LICENSE });