Skip to content
Licence Keys for Your Software

Fox Licensing

Sell your software. Keep control of it.

Sell one Windows program as a free trial, a one-time purchase, a subscription or a basic version with paid extras, and stop one paid copy running on ten computers. A licence key tells your program exactly what it may do, and you can see where each copy runs, move it, or switch it off.

Fox Licensing try the four kinds of licence
ACME-4K2P-8ZQD-1R7M-VN3S-HTB
Runs on 1 computer Stops after 30 days You charge nothing
Runs on 3 computers Stops after never You charge once
Shared by 5 at a time Renews monthly You charge every month
Adds to a licence they own Lasts as long as that one You charge for the extras

Same program — the key decides

  • Viewer
  • Measurement
  • Reporting
  • Batch export
  • Advanced analytics
  • Automation

Let them try it for a month on one computer. The expensive parts stay switched off — the program they downloaded simply never opens them.

They pay once and it never expires, on up to three of their computers. Batch export is included; the two heavier tools are sold separately.

They pay monthly, and the renewal happens by itself in the background. Five people can use it at a time — whoever opens it first.

They already own the basic version and now buy the extras. Everything switches on where it is — no new key to install, nothing to download again.

Working · 22 days left · keeps working for 3 days without internet

Working · never expires · 2 of their 3 computers used so far

Working · renews on its own · the slot frees up when they close it

Working · added on top of the licence they already had

Press the four buttons. The licence key is invented, but everything that changes underneath is what the product really does.

In Plain Words

If You Have Never Bought Licensing Before

Software licensing has its own vocabulary, and none of it is obvious. Here is the whole of it in six sentences. Everything further down this page is built out of these ideas.

A licence key

the thing you send after they pay

A short code, something like ACME-4K2P-8ZQD. Your customer types it into your program once. Until they do, the paid parts of your program do not open.

Turning it on

activation

The moment their computer checks that key and gets permission to run. It takes a second and happens once — after that your program remembers, and quietly confirms in the background from time to time.

Tied to one computer

node-locked

The licence works on that machine and no other. Copy the program to a second computer and it will not run there — which is exactly what stops one paid copy becoming ten.

Shared across a team

floating, or concurrent

Instead of naming computers, you sell a number. Buy five and any five people can be using the program at the same time; when one closes it, the next person gets their turn. Thirty engineers, five licences, nobody administering it.

Computers with no internet

air-gapped

Plenty of industrial and defence machines are kept off the network deliberately. They are licensed by carrying two small files across on a USB stick — one out, one back — and it works exactly as well.

Switching one off

revoking

A licence you cancel stops working, and stays stopped even if the customer reinstalls, restarts, or unplugs the network. Useful when an invoice goes unpaid or a laptop walks out of the building.

Ways to Charge

Four Ways to Sell the Same Program

You build and ship one thing. Which of these four a customer gets is decided when you issue their key, not when you build — so adding a subscription option, or a cheaper trial, costs you nothing in development.

Free trial

Let them try it, safely

Runs for as long as you decide, usually on one computer, with the parts you would rather not give away left switched off.

  • Stops on a date, not on trust
  • Expensive features can be held back
  • Becomes a paid licence without reinstalling
One-time

They pay once and keep it

The ordinary sale. It never expires, and you decide how many of their computers it covers.

  • No renewal date to explain to anyone
  • The computer count is enforced, not assumed
  • A licence can be moved to a replacement machine
Subscription

Renews without a phone call

Shortly before it runs out, the licence quietly extends itself. Your customer does nothing and notices nothing.

  • Nobody re-types a key on renewal day
  • Stop the subscription and it lapses on its own
  • Money every month without anyone chasing it
Paid add-on

Sell an extra, not a new version

A second, smaller licence that adds features to the one your customer already bought.

  • Sell more to the same customer, with nothing to ship
  • You name the extras; the licence lists them
  • Switches on within the hour, by itself

Inside your program this is one line of work. It asks whether this customer's licence includes a named feature, and switches that part of the screen on or off accordingly. Your developers write no licence checking, no expiry dates, no key handling — those live in the licensing system, which is the point of buying one.

Naming Computers, or Counting People

Sell Five Licences to a Team of Thirty

Rather than listing which computers may run your program, you sell a number of slots. Whoever opens it takes one; when they close it, the next person gets it. Nobody has to manage that, and your customer stops arguing about how many copies they need.

A shared licence · five slots 3 of 5 in use right now
WS-004 In use
WS-011 In use
WS-014 In use
— Open
— Open

WS-014 took a slot at 09:14 and is holding it while the program is open. Try either button and watch the count.

Or tie it to one machine instead

The other way round: the licence is locked to a single computer, recognised by its own hardware. Install the program somewhere else and it will not run there — it says this is a different machine and waits for you to approve the move.

That is the right choice for a machine you sold, a controller on a factory floor, or anything that will never reach your server. Air-gapped activation is node-locked only — counting shared slots needs a server to count them, so a licence cannot be both shared and offline.

Your program does not have to know which kind it is. You choose per customer when you issue the licence, and nothing in your software changes.

The panel above is a drawing of how this really works, not a live connection to a licensing server.

Machines With No Internet

Licensing a Computer That Is Not Online

Plenty of the machines worth licensing will never see the internet — a controller in a plant, an inspection workstation on an isolated network, anything inside a defence installation. A USB stick and two minutes, and that machine is licensed properly.

01
.c2v

The machine asks

Your application writes a request file on the offline machine. It carries that machine's fingerprint and nothing a customer needs to understand.

02
.v2c

You answer, signed

Upload the request in the console, choose the customer and the licence terms, and download the signed response.

“A customer with an air-gapped machine sends you a .c2v file. Upload it, choose the customer and license terms, and download the signed .v2c.”

03
.c2r

And you can take it back

When the licence has to move to another machine, the offline machine produces a receipt. Upload that and the seat is free again — the transfer is auditable in both directions.

The response only works on the machine that asked for it. The .v2c is an authenticated envelope sealed to that machine's fingerprint, so a customer who copies it to a second machine does not get a second licence — they get a failed authentication tag. This is the part a hand-rolled licence file almost never gets right.

Every Case, Already Handled

What Happens When Something Goes Wrong

This is where a bought licensing system earns its money. Eight situations, each one already thought through, so your software behaves sensibly instead of guessing — including the awkward ones, like an engineer whose laptop has been off the network for two days.

No licence yet

ActivationRequired
What happened
Fresh install, nobody has typed a key.
Your software
Asks for the key. The paid parts stay shut.

Everything is fine

Active
What happened
Paid, current, confirmed recently.
Your software
Runs, with whatever they bought switched on.

Been offline a while

Grace
What happened
No internet for a few days — a site visit, a hotel, a plant.
Your software
Keeps working. A dead connection is not a licence problem.

It ran out

Expired
What happened
The trial ended, or a subscription was not renewed.
Your software
Stops the paid work and offers to renew.

Different computer

HardwareMismatch
What happened
The licence was copied to another machine.
Your software
Will not run, and asks you to approve the move.

You cancelled it

Revoked
What happened
Unpaid invoice, ended contract, a laptop that left.
Your software
Will not run. Restarting does not bring it back.

Someone moved the clock

TamperSuspected
What happened
The date was set back to stretch a trial, or the whole machine was rewound to an older copy of itself.
Your software
Will not run, and you can see the reason.

The licence file broke

Corrupt
What happened
A disk problem or a bad shutdown damaged it.
Your software
Repairs itself from a spare copy; if all are gone, asks for the key again.

Filled dot: your software runs. Hollow dot: it stops, and it can say exactly why. The small grey line on each card is the name your developers will see in the code. How often it checks in, and how long it keeps working offline, are yours to set.

What It Resists

Written for Someone Who Will Try

Anyone can compare a string to a key. The interesting cases are the copied licence file, the clock set back a year, the rolled-back virtual machine, and the licence that has been revoked but keeps working because the software forgot.

Your program never holds the licence itself

A separate Windows background service holds it, and your program only ever asks it questions and gets yes or no back — never the licence, never the secret. Someone pulling your program apart to strip the licence check out of it finds nothing to strip, because the decision was never made in there.

Nobody can listen in, or pretend to be you

HTTPS with SPKI SHA-256 certificate pinning that cannot be overridden at runtime, so a proxy with a trusted root does not get to listen. Each product authenticates with its own HMAC-SHA256 secret.

An offline licence only fits one machine

X25519 key agreement with ChaCha20-Poly1305 authenticated encryption. The response is bound to the requesting machine's fingerprint — elsewhere it fails the tag check rather than degrading quietly.

Turning the clock back buys nothing

Every check writes to a rollback ledger. A system clock set back, or an update counter that decreases because a virtual machine was restored from a snapshot, produces TamperSuspected — the two oldest tricks in the trade.

Cancel one and it stays cancelled

Revoke a licence and it stays revoked through restarts, reinstalls and time offline, because the decision is recorded in the machine's own encrypted ledger rather than depending on the next successful server call.

The licence cannot be edited on their disk

Encrypted on disk with a SYSTEM-only ACL; vendor codes are writable by administrators alone. A damaged store recovers automatically from up to three rotated encrypted backups.

Swapped files get noticed

Every shipped file is listed in a SHA-256 manifest, so a swapped DLL is a detectable event and not a mystery support ticket.

Integration

It Fits Into the Installer You Already Ship

Licensing arrives as a small Windows background service plus two files that sit beside your program. Nothing about how you deliver your software changes — your installer gains one step, and there are four ways to add it.

Recommended

Run the MSI

Installs the service, sets the permissions and starts it. On upgrade it stops the old service, replaces the files and restarts.

one file · nothing to script

Manual install

Copy the service\ folder and run it once with --install. For a developer box or a CI runner.

about 2 minutes

WiX Toolset

For teams whose product already ships as a WiX-authored MSI or bundle. The complete XML is in the manual.

about 30 minutes, first time

InstallShield

For products whose shipping installer is an InstallShield project, with the click-path documented step by step.

about 20 minutes, first time
For your developers
Targets net481 Targets net8.0 Or anything netstandard2.0 Host OS Windows

The manual is part of what you get

Fourteen sections written for whoever does the work, including the one that matters on a bad afternoon: every error message your team could hit, listed word for word with what to do about it. Downloadable, and it prints.

  • Three installer paths, with complete WiX XML
  • Vendor codes, and how to rotate them
  • The state machine, and the behaviour for each state
  • Online, offline and reactivation flows end to end
  • Feature gating, revocation and SKU configuration
  • File formats and an API cheat sheet
How You Buy It

Own the Platform, or Let Us Run It

Most product companies want their revenue protected. Very few want to operate a licensing back office to get it.

We run it

We build it in, and we run it

We add licensing to your software and operate activation, seats, renewals and revocation on your behalf. You get the console access you need and none of the responsibility for keeping a licensing service alive.

  • Integration into your existing installer and code
  • We issue, renew and revoke on your instruction
  • Air-gapped exchanges handled for your field customers
  • No licensing infrastructure of your own to maintain
Start the Conversation

You run it

Take the whole platform

The licensing system itself, running under your control, with your own team issuing licences and managing seats. For companies that need licensing to be theirs — because of a procurement rule, a data-residency requirement, or simply preference.

  • Admin console, API, SDK and Windows service
  • Your products, your customers, your database
  • Team accounts with group-based access
  • Handover with the full developer manual
Ask About Self-Hosting

Tell Us What You Ship

What the product is, how it is installed today, and how you would like to sell it — trials, subscriptions, modules, concurrent seats, or machines that never see a network. We will tell you what the integration looks like in your codebase before anyone signs anything.