Skip to content
K Keyright · Licensing infrastructure

Licensing infrastructure for software vendors

Add licensing to your app in an afternoon. Offline license files and online activation, node-locking, seats, entitlements, usage-based metering, a customer portal and self-service trials — with SDKs for .NET, Node, Python and Java. Run it fully managed or self-hosted, including air-gapped.

Free plan · no card required · read the docs · code samples on GitHub · self-hosted & air-gapped →

Program.cs — your app
// verify a license offline, against your public key
var license = Keyright.Verify(key, PublicKey);

if (license.Valid && license.Entitlements.Has("pro"))
    EnablePremiumFeatures();

// …or activate online for a node-locked seat
await Keyright.ActivateAsync(key, machineId);
SDKs for: .NETNode.jsPythonJava · offline files & online activation · managed or self-hosted

Why Keyright

The whole licensing stack, so you build none of it

Rolling your own licensing is weeks of signing keys, activation servers, seat counting, revocation and a customer portal — none of it your product, all of it security-critical. Keyright gives you the entire stack behind a few lines of SDK, so you add licensing in an afternoon and get back to shipping.

How it works

From zero to licensed in four steps

No signing servers to run, no key management to build. Wire up the SDK once and Keyright handles the rest — the same flow whether you run it managed or self-hosted.

1 Model your product tiers, seats & entitlements
2 Embed the SDK .NET · Node · Python · Java
3 Issue or sell API, dashboard or checkout
4 Customer activates online seat or offline file
Model the product once, embed one SDK, then issue keys or let customers self-serve — activation, seats, entitlements and metering are handled for you.
1

Create a product & tiers

Define your product, its plans and the entitlements each plan unlocks — feature flags, numeric limits, seat counts and metered credits — in the Keyright dashboard.

2

Embed the SDK

Add the SDK to your app and paste your account's public key. A few lines verify a license, read entitlements and activate a seat — the same code on every runtime.

3

Issue keys or let customers self-serve

Issue keys from the dashboard or API, sell through Merchant-of-Record checkout, or let customers start a free trial from your own site — keys mint automatically.

4

Customers activate & you stay in control

They activate online for a node-locked, revocable seat, or drop in a signed offline file for air-gapped machines. Revoke, move seats or meter usage at any time.

Architecture

How activation & verification flow

Your app embeds a verify-only public key. It activates online for a node-locked lease, or verifies a signed file offline — the private key never leaves the issuing service, whether that service is our managed cloud or your own self-hosted instance.

Your application Keyright SDK · .NET / Node / Python / Java embeds a verify-only public key Signed offline license file entitlements + expiry, signed for air-gapped machines Keyright issuing service managed cloud · or self-hosted · air-gapped Per-tenant RSA private key encrypted at rest · never leaves the server Seats · entitlements · metering counted & enforced server-side Revocation · trials · issuance dashboard, admin API & checkout Customer self-service portal keys, seats & downloads PostgreSQL · all state activate · key + machineId signed node-locked lease lease cached · keeps working offline within grace verify locally no network request signed response offline · air-gapped verification

Capabilities

Everything you need to license your software

Grouped the way you'll actually use them — from the cryptographic core to the customer-facing portal and where you deploy.

Licensing & keys

A cryptographic core you can trust

Signed licenses you can verify anywhere, signing keys isolated per tenant, and revocation that reaches even air-gapped apps.

Signed offline license files

Cryptographically signed files carry the entitlements and expiry, and verify locally against a public key you embed at build time — no network call, so they work on fully air-gapped machines.

Per-tenant RSA signing keys

Every account gets its own isolated RSA key pair. The private half never leaves the server and is encrypted at rest; you only ever handle the verify-only public key. Rotation is supported.

Instant revocation

Kill a leaked or refunded key in one click. Online clients drop to the free edition on their next lease refresh; offline builds honour a signed revocation list you ship with them.

Activation & seats

Node-locked seats, enforced server-side

Turn a key into a device-bound seat, count activations on the server, and keep users working through a brief outage.

Online activation with offline grace

The SDK exchanges a key plus a stable machine id for a short-lived, signed lease bound to that device. It caches the lease and keeps working offline until the grace window ends — an outage never locks users out.

Node-locking & seat management

Bind licenses to a device fingerprint and enforce per-plan seat counts on the server. Over-activation returns a seat-limit result and no lease; re-activating a bound machine is idempotent.

Self-service deactivation

Customers free a seat when a device is retired — from the portal or an API call — without opening a ticket. Drill into any license to see the machines it is active on with device metadata.

Entitlements & metering

Ship one binary, sell it many ways

Unlock capability per plan by feature flag, numeric limit or metered usage — without shipping new code for every tier.

Entitlements & tiers

Each tier carries a signed entitlement template — named flags and numeric limits the SDK reads locally (IsEnabled("export"), GetLimit("max-projects")). Change a tier and every license of that tier follows. Every check fails closed.

Usage-based credit metering

Sell credits or tokens, not just seats: per-action pricing, monthly quotas and overage policies — plus signed credit blocks that meter fully air-gapped machines and reconcile when they reconnect.

Portal, team & sales

Everything around the license

A customer portal that deflects tickets, trials that convert, scoped roles for your team, and checkout that issues keys automatically.

Customer self-service portal

A hosted portal where your customers view keys, manage seats and download offline files themselves. Keyright runs the issuing service, key storage and portal, so you operate none of it.

Self-service free trials

One public API call mints a time-limited key from your own site — one per email per product, abuse-resistant, auto-expiring and fully revocable. It converts to a paid license with no re-keying.

Team RBAC & audit log

Invite your team with scoped owner, admin, support, billing and viewer roles, so support can free seats without touching billing. Every action lands in a full audit trail.

Merchant-of-Record checkout

Sell through a Merchant-of-Record checkout that handles sales tax, VAT, invoicing and dunning. When a payment succeeds, Keyright issues the license automatically — no manual fulfilment.

Build & deploy anywhere

Your languages, your infrastructure

SDKs for four runtimes, a .NET-first heritage, and your choice of fully managed or self-hosted — including air-gapped.

SDKs for .NET, Node, Python & Java

Drop-in clients verify the exact same license and lease formats across every runtime, so a mixed-language product line shares one tenant and one public key. Any other language can verify the documented HTTP + signature format. See runnable samples on GitHub — .NET, Node, Python, Java and a raw REST walkthrough.

.NET-first & Nebula-compatible

Built by the team behind Nebula.NET and wire-compatible with its licensing — the same signed formats — so licensing pairs naturally with obfuscated, hardened .NET builds. The .NET SDK runs on Framework 4.8 and .NET 6–10.

Managed or self-hosted

Run it fully managed on our cloud, or self-host the identical build inside your own network — Docker, Kubernetes (Helm) or Windows/IIS — including fully air-gapped. Move between them without changing your integration.

See it in action

A dashboard for the whole licensing lifecycle

Issue and manage keys, watch activations, run trials and metering, and invite your team — the same /admin/* API behind a clean UI.

Who it's for

Built for teams who sell software

From a solo ISV shipping a desktop app to an enterprise vendor deploying on-prem — Keyright meets you where you sell and where you run.

Independent software vendors

Desktop, server and CLI products that need real licensing — signing, seats, revocation and a portal — without building and running signing infrastructure.

.NET teams

First-class .NET support and Nebula-compatible licensing that pairs with obfuscated, hardened builds, across .NET Framework 4.8 and .NET 6–10.

Usage-based & AI products

Sell credits, tokens or API calls with quotas and overage — and signed credit blocks that meter even offline and reconcile on reconnect.

Regulated & on-prem

Keep every piece of licensing data inside your compliance boundary with a self-hosted, air-gapped deployment on your own PostgreSQL.

Free trials, built in

Let customers start a trial from your own site

Add a "Start free trial" button to your marketing site and let it call Keyright directly. One request issues a time-limited key — no dashboard clicks, no license files emailed by hand.

  • Keys auto-expire when the trial ends
  • One per email per product — abuse-resistant and idempotent
  • Fully revocable, tracked in your dashboard, and converts without re-keying
start-trial.sh
# one call from your site → key is emailed to the customer
curl -X POST https://keyright.delta1labs.com/v1/trial \
  -d '{"product":"acme-app",
       "email":"dev@company.com",
       "company":"Acme"}'

# → { "ok": true, "emailed": true,
#     "expiresUtc": "…" }   # work email required

Pricing

Start free — paid plans from $49/mo

Ship real licensing on the Free plan, then upgrade as your active-license count and team grow. Every paid plan includes a 14-day free trial, and a self-hosted licence is available for on-prem and air-gapped teams.

FAQ

Questions, answered

Is there a free tier?

Yes. The Free plan is $0 forever and includes up to 25 active devices across 1 product — enough to ship real licensing before you pay a cent. No card required.

Can I self-host Keyright?

Yes. Keyright is available fully self-hosted, including air-gapped. You run the same issuing service and your own PostgreSQL inside your infrastructure — it ships as a Docker image (with a Helm chart for Kubernetes) or a Windows/IIS bundle. Your instance verifies its own licence offline, with no phone-home, and your customers are never affected by it. Self-hosting suits teams with data-residency, on-prem or air-gapped requirements — talk to sales to get set up.

Which languages and SDKs are supported?

Keyright is .NET-first, with official client SDKs for .NET, Node.js, Python and Java. License files and activation use a documented HTTP + signature format, so you can verify licenses from any language.

How do offline licenses work?

Keyright issues a signed license file containing the entitlements and expiry. Your app verifies the signature locally against the public key you embed at build time — no network call needed, so it works air-gapped. You choose an optional grace window for online re-checks.

Can I offer free trials to my customers?

Yes — self-service trials are built in. One call to /v1/trial issues a time-limited key from your own site. Trials auto-expire, are fully revocable and are tracked in your dashboard, so you never hand out license files by email.

How is billing handled?

Keyright uses a Merchant of Record for your Keyright subscription and, optionally, for your own product sales. The Merchant of Record handles sales tax/VAT, invoicing and dunning; Keyright issues the license automatically when a payment succeeds.

Ship licensing this week

Create your free account and add real licensing today — no card required. Talk to sales when you're ready for volume, SSO, white-label or a self-hosted deployment.