License Management
import { Aside } from ‘@astrojs/starlight/components’;
How licensing works
Section titled “How licensing works”Fantommind uses Polar as the licensing backend. Each license key is tied to one machine at a time via a hardware fingerprint computed at every startup.
Activation layers
Section titled “Activation layers”- Polar
activations.limit=1— Polar’s API rejects a second activation for the same key if one is already active. - Sidecar fingerprint — the Python sidecar recomputes the hardware fingerprint at every boot and rejects if it doesn’t match the stored activation.
- HMAC-signed cache — the cached activation response is signed; tampering invalidates the session.
- Polar webhook push — if a key is revoked via the Polar dashboard, the CF Worker receives the event and the app locks on next startup.
Online requirement
Section titled “Online requirement”Fantommind requires an internet connection at startup to validate your license with Polar. This is by design: it prevents license sharing and keeps the 1-machine guarantee strong.
- If Polar’s API is unreachable but your general internet works → app locks immediately.
- If both Polar and general internet are unreachable → app allows a limited session (up to 6 hours) to avoid punishing legitimate users during outages, then locks.
Activating a new machine
Section titled “Activating a new machine”- Open the customer portal in your browser.
- Find your license key under Purchases → License Keys.
- Click Deactivate next to the current machine.
- On the new machine, open Fantommind → Settings → License → paste the key → Activate.
Deactivating remotely
Section titled “Deactivating remotely”If you can no longer access the machine (e.g., it was lost or destroyed):
- Go to the customer portal.
- Under your license, click Revoke machine activation.
- The key is immediately available to activate on a new machine.
Viewing activation status
Section titled “Viewing activation status”In the app: Settings → License
You’ll see:
- License key (partially masked)
- Activation status (Active / Expired / Revoked)
- Machine fingerprint hash
- Next validation timestamp
Cancelling your subscription
Section titled “Cancelling your subscription”Cancel from the customer portal. Your license stays active until the end of the current billing period. After that, the app will show License Expired at next startup.
Your local data (profiles, runs, schedules) is never deleted — it stays in the local SQLite database. You can re-subscribe and resume where you left off.