EYMINT

Software licensing API for keys, activations, floating seats, and signed offline files.

support@keymint.dev

Product

  • Features
  • Pricing
  • Compare platforms
  • Customer login
  • Offline license tester

Company

  • About
  • Blog
  • Contact

Developers

  • Documentation
  • Changelog
  • GitHub
  • Status

Trust

  • Security
  • GDPR
  • Privacy
  • Terms
  • SLA

© 2026 Keymint. All rights reserved.

Skip to content
EYMINT
FeaturesPricingCompareChangelogDocs
Back to all posts

Guide to Floating Licenses & Concurrent Seats

Clifford•3 min read
floating licensesconcurrent seatslicensingsession managementkeymint

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:

  1. Checkout — The app requests a seat from the pool. Keymint returns a session ID if one is available.
  2. Heartbeat — The app periodically extends its lease to prove it's still alive.
  3. Expiry — If the heartbeat stops (crash, network loss), Keymint reclaims the seat.
  4. 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

ParameterRecommended ValueDescription
Heartbeat Interval60-120sHow often the app sends a heartbeat
Lease Duration300sHow long a seat stays locked before reclamation

Using the API

Checking out a seat is a single POST:

bash
curl -X POST "https://api.keymint.dev/key/checkout" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "productId": "YOUR_PRODUCT_ID",
    "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.

Related Posts

  • Create Customer Records Automatically on Purchase
  • Discord Notifications for License Activations
  • Protecting Electron Apps from Piracy with Keymint
  • Revoking Software Licenses on Stripe Cancellation
  • Send Slack Notifications on License Revocations

Try Keymint

Simple software licensing API built for indie developers.

Get started free