Guide to Floating Licenses & Concurrent Seats
Floating licensing is one of the most requested features in B2B software. Customers want to buy a pool of seats and share them across their team — without tying a license to a specific machine.
Unlike node-locked licenses (which bind a key to a single device), floating licenses let you enforce a maximum number of concurrent users. Think of it like a parking lot with 10 spaces: any of your 50 employees can pull in, but once all 10 spots are full, the next person has to wait.
How Floating Licensing Works
The lifecycle has four stages:
- Checkout — The app requests a seat from the pool. Keymint returns a session ID if one is available.
- Heartbeat — The app periodically extends its lease to prove it's still alive.
- Expiry — If the heartbeat stops (crash, network loss), Keymint reclaims the seat.
- Checkin — The app releases the seat on normal shutdown.
This means you never lose a seat to a crashed process. And your customers get the flexibility they expect.
Keygen and Cryptlex both offer floating seats too — see how Keygen and Cryptlex hold up in our platform comparisons.
Configuration Parameters
| Parameter | Recommended Value | Description |
|---|---|---|
| Heartbeat Interval | 60-120s | How often the app sends a heartbeat |
| Lease Duration | 300s | How long a seat stays locked before reclamation |
Using the API
Checking out a seat is a single POST:
curl -X POST "https://api.keymint.dev/key/checkout" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"productId": "prod_100",
"licenseKey": "KM-A8E2-9F1B-C3D4",
"hostId": "mac-studio-m2"
}'A successful checkout returns a sessionId, sessionSecret, and rotating nextNonce. Your app uses these to sign subsequent heartbeat and checkin requests via HMAC-SHA256 over the string sessionId:nonce.
The heartbeat and checkin endpoints (POST /key/heartbeat and POST /key/checkin) follow the same pattern — you pass the sessionId, current timestamp (from the previous nextNonce), and the computed signature.
Monitoring in the Dashboard
The Keymint dashboard shows live seat usage per license key. You'll see real-time ratios like 3/10 seats active, and you can force-revoke stale sessions from the UI.
When to Use Floating Licenses
Floating licensing works best for:
- Dev tooling — team-wide licenses where only a subset of developers need simultaneous access.
- Enterprise desktop apps — site licenses with concurrent user limits.
- Internal tools — shared access across departments without per-machine provisioning.
It's not ideal for single-user consumer apps where node-locking is simpler.
Next Steps
Try the checkout endpoint above from your dashboard, or read the full Floating Licenses docs for integration details with the Node.js and Go SDKs.