Stripe, Paddle and Gumroad can reject you for where you live, or close
your account overnight because your product got flagged "crypto-adjacent" — even if it
has nothing to do with crypto. This kit is the missing piece: a complete, working
checkout + license-key system built on a crypto payment rail instead. Drop it into any
product and start selling again in under 30 minutes.
A README that walks the entire setup start to finish, in under 30 minutes.
How it works
# 1. Create a NOWPayments Payment Link (a hosted checkout page, no API, no server)
# 2. Put that URL on your "Buy" button
# 3. After a sale, print a key:
node scripts/generate-license.mjs
# -> ACME-7F3K-9QXZ-B2 — email it to the buyer
# 4. Your page checks it:
import { createLicenseKit } from './lib/license-kit.js';
const kit = createLicenseKit({ prefix: 'ACME', salt: 91827 });
if (kit.isValidLicenseKey(userInput)) unlockYourFeature();
No webhook, no backend, no database of who bought what.
That's a deliberate trade-off for a one-time-purchase product — explained honestly in the
README, not a hidden limitation.
FAQ
Why crypto only?
Because that's the payment rail available when Stripe/Paddle/Gumroad are not an
option — not a design preference. USDT via the checkout above.
Is this real DRM?
No, and it doesn't claim to be. It runs in the browser, so anyone with devtools open
could mint a fake key. What it gives a paying customer is a smooth, real "type in your
activation code" experience with zero backend — the same trade-off plenty of indie CLI
tools and plugins already ship with.
Can I use it for more than one product?
Yes — each product gets its own prefix and salt, so keys never validate across
products.
What do I get after paying?
An invite to a private git repository with the full source.