Skip to main content
Migrate Already selling? Move your customers to Keylight without re-issuing a single key.
Keylight

Everything Keylight does to turn a payment into a signed license your app can trust.

Six features that work together — signed leases, device activations, trials, a self-serve portal, refund revocation, and native checkout with the payment provider of your choice. Click any one to dig in.

Works with

Stripe Paddle Creem Lemon Squeezy Polar Gumroad Shopify

Signed license keys for your app

Every Keylight license is an Ed25519-signed lease your app verifies locally — issued automatically when Stripe takes a payment.

Learn more about license keys →

Minted on payment

A Stripe payment automatically issues a signed key — no webhook glue to maintain.

Verified offline

Your app ships with the public key and verifies licenses locally, with no runtime server call.

Revocable

Refunds and chargebacks mark the key revoked; the next revalidation rejects it.

Device activation limits

Each key carries an activation cap; activations are tracked per device.

Native Stripe integration

Connect your existing Stripe account once. A completed payment mints a signed license automatically — no webhook handler to write or host.

Your Stripe account Auto issuance Idempotent webhooks
Learn more about Stripe →

Bring your own Stripe

Keylight connects to your existing Stripe account — you keep the customer data and the standard rate.

Automatic issuance

checkout.session.completed mints and delivers a signed license within seconds.

Idempotent by design

Stripe webhook retries never produce duplicate licenses for one purchase.

Lifecycle in sync

Refunds and subscription changes update license state automatically.

Per-device activation limits

Every Keylight license carries an activation cap. Devices are tracked by a hashed fingerprint, and customers manage their own machines.

Per-key limits Hashed fingerprints Self-service portal
Learn more about device activations →

Activation limit per tier

Each license tier sets how many devices a key may run on — 2, 5, or unlimited, your call.

Hashed device fingerprint

Devices are recognised by an opaque hashed identifier, never by raw hardware data.

Idempotent activation

Relaunching or reinstalling on a known device never consumes an extra slot.

Self-service deactivation

Customers free a slot by removing an old device in the portal — no support ticket.

Built-in free trials

Set a trial length once; the SDK tracks the countdown and reports days remaining. No trial server, no separate trial keys.

SDK-managed Days-left state Clean conversion
Learn more about trials →

Fixed-length trial

Set trialDurationDays once at startup; the SDK runs the evaluation period.

Days-remaining state

licensing.state reports .trial(daysLeft:) so your UI can nudge at the right moment.

No trial backend

The trial runs without a Stripe payment and without a separate trial-key system.

Seamless conversion

When the customer pays, the Stripe webhook issues a real license and the state flips to .licensed.

A self-service customer portal

Customers retrieve their key, see their activated devices, and free a slot themselves — turning the most common support requests into zero-touch actions.

Learn more about the customer portal →

Key retrieval

A customer who lost their key gets it back themselves — no email to you.

Device list

Customers see every machine their key is activated on, by friendly name.

Self-service deactivation

Removing an old device frees an activation slot instantly.

Hosted by Keylight

The portal is provided and maintained — nothing to build or host.

Automatic revocation on refund

When Stripe refunds a payment, Keylight marks the license revoked — no manual step, no webhook handler, no orphaned active keys.

Stripe-driven Revoked flag No manual work
Learn more about refund revocation →

Refund-triggered

A Stripe charge.refunded event marks the matching license revoked automatically.

Chargeback handling

Disputed charges revoke the key as soon as the dispute is filed.

Signed revoked flag

The revoked state is part of the signed lease — the app trusts it without a database lookup.

Propagates on revalidation

The app picks up revocation on its next periodic online re-check.

How the features fit together

Six features, one loop. Payment in, signed license out, devices tracked, revocation handled, trial enforced.

1

Payment

Stripe charges your customer. Trials can lead in.

2

Lease

Keylight mints an Ed25519-signed license, sent to your customer and your app.

3

Activation

The app activates each device; usage is counted and capped per key.

4

Lifecycle

Refund? Key revoked automatically. Customer needs help? Self-service portal.

Ready to ship?

Create your account and start licensing your apps in under a minute. Free forever tier included.

Start Free