Full-stack web app · 2025
VMProtect License Manager
Self-hosted license generation for VMProtect, delegated to resellers
A full-stack Next.js + Supabase platform that generates VMProtect-compatible RSA license keys and lets admins hand out credit-based quotas to resellers, with approval workflows and a full audit trail.
- Next.js
- TypeScript
- Supabase
- RSA
- Tailwind CSS
- GitHub stars
- 14
- Open source, MIT.
- Forks
- 4
- Self-hosted by others.
Why it exists
Generating VMProtect license keys needs your private RSA key and an understanding of VMProtect's binary serial format. That makes the developer a bottleneck: every purchase, every hardware ID (HWID), and every reseller request has to go through them.
VMProtect License Manager moves that work to a web platform:
- The admin imports VMProtect product keys once.
- Sellers generate licenses on their own, using credits the admin gives them.
- Customers send their HWID straight to the seller.
- Every action is tracked, with approval workflows for refunds and HWID changes.
What I built
- VMProtect-compatible key generation: the serial payload is encrypted with the RSA private key using PKCS#1 v1.5 padding, then Base64-encoded, so licenses verify offline with no phone-home.
- Admin and seller roles with decimal credit balances, from a 7-day trial (0.3 credits) to 6 months.
- Multiple products, each with its own RSA key pair, imported directly from VMProtect's XML export.
- Renewals, refunds, and HWID changes: one free HWID change a month, a paid instant change, or a request for the admin to approve. Original keys are kept so they can go on a blocklist.
- Sortable tables, CSV bulk generation, and export, plus full English and Chinese UI and a mobile layout.
Security
Row Level Security is on, and the database is only reachable with the service role. Every API route checks authentication and role. Sessions use HTTP-only cookies. Private keys are only read server-side, and credit balances are updated atomically on the server so concurrent requests can't race each other.
Stack
Next.js 14 (App Router), TypeScript, Supabase (Postgres), Tailwind CSS, Lucide, date-fns, and PapaParse. It deploys to Vercel in one click.