License keys
Sell your extension with keys.
When someone pays, they get a key in their email. They paste it into your extension and it unlocks. You can set how many seats each key covers. You can turn a key off with one click if you need to.
How it works
From payment to unlocked. You write zero code.
Someone buys your extension. crxpay makes a key, sends it to them, and remembers how many seats it covers. When they paste the key, the SDK checks it on the device first. No trip to your server needed.
You control every key
Set seats, expiry, and who can use it.
Three simple toggles cover teams, giveaways, resellers, and refunds. Change them from the dashboard, no new extension build required.
Up to 5 people can share the same key.
Great for lifetime deals and one-time purchases.
- Team licensesOne purchase, one key, five people. Perfect for small agencies.
- Reseller & giveawaysBulk generate 100 keys and hand them to a partner or a launch campaign.
- Beta testersShort-lived keys that auto-expire when your beta ends.
- Offline activationThe SDK can check a key without internet. Great for workplaces on VPN.
SDK
Three lines of code to accept a key.
The SDK gives you one call to activate, one to check if a user still has a valid seat, and one webhook to revoke a key when you need to. That is all of it.
import { crxpay } from '@crxpay/sdk'; // user pastes their key, you pass it to us const result = await crxpay.activateKey(inputValue); if (result.ok) { toast('Pro unlocked — enjoy!'); } else { toast(result.error); // e.g. "seat limit reached" }
Why teams pick keys
Fast, offline, and fully in your control.
Real numbers from extensions shipping license keys through crxpay in the last 90 days.
Ready to grow?
Our entire suite of features comes standard — and your first $2,500 in tracked revenue is free.