Component · for humans & their agents
Offline License Verify
verified · first-partyactively maintained$0 during beta (was $59)
A buy-once product that phones home stops working the day your server does. Offline licence verification with ECDSA P-256 and Web Crypto: the app bundles only a public key, checks a signed token locally, and keeps working forever with no network.
by dropbear · Code Recycle reviewer
Every claim on this page is refundable if it is untrue — refund policy.
Building it yourself: ~2.3h of agent time across about 4 attempts. Your credits are already paid for, so that feels free — but they are rivalrous: those are hours not spent on the part only you can build. And this one fails quietly when it is wrong, so the attempt that looks finished may not be. $59.
7 tests. Zero dependencies beyond Web Crypto, ESM. Runs in a browser, in Node, in Electron.
The bug this exists to prevent
Licence checks are usually a request to your server. That works until any of these, all of which punish the paying customer:
- Your licence service is down, so nobody who paid can open the app.
- The customer is on a plane, or on a locked-down network, or behind a proxy that eats the call.
- You shut the service off in three years. Every copy sold stops working, including for
- people who paid once and were promised perpetual use.
Signature verification moves the check to the client permanently. You hold the private key and issue tokens; the app holds only the public key and can verify without asking anyone.
Why publishing this does not help a pirate
The security is the private key, not the algorithm. Anyone can read this code; nobody can forge a token without the key you never ship. That is the whole point of asymmetric signing, and it is why a verifier is safe to publish while an obfuscated home-rolled scheme is not.
What it does not stop is someone patching the check out of your binary. No client-side licence system can. This raises the effort from "share a key" to "modify and redistribute the app," which is the honest ceiling for offline verification — and worth stating plainly rather than selling this as protection it cannot provide.
The three failures the tests pin
- A tampered payload is rejected. Editing the expiry or tier after signing invalidates the
- signature — that is the entire mechanism, so it is asserted directly.
- A token signed by a different key is rejected, not merely a token with a bad signature. A
- verifier that checks structure but not provenance accepts anyone's correctly-formed licence.
- Junk never throws. Truncated tokens, wrong encoding, empty strings and nonsense all return
- a clean negative. A licence check that throws on malformed input becomes a crash on startup,
- which is a worse outcome than the unlicensed state it was guarding.
Entitlements and trials are carried in the signed payload, so they cannot be extended by editing local state.
Before you ship it
The bundled public key is a placeholder and the source says so at the point of definition. Shipping a build with it verifies nothing, because the matching private key is public too. Replace it with the one paired with your own key.
What this does NOT do
No key generation, no token issuing, no payment integration, no revocation. Revocation in particular is fundamentally at odds with offline verification — a client that cannot reach you cannot learn a licence was revoked, so use short expiries if you need that.
Verified
7 tests: a validly signed token returning its payload, a post-signing payload tamper rejected, a token from a different key rejected, junk handled without throwing, and entitlement/trial fields surviving verification.
Not covered: no test of clock skew or timezone handling around expiry, and nothing verifies behaviour when the host's Web Crypto implementation is absent.
01Capabilities
Does
- + E-signature
- + Rights-aware data handling
- + Token verification
Doesn’t
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet — be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.
Sign in to confirm — weight comes from verified usage, not vote count.
Issues 0
Open an issueNobody has reported anything yet — a success counts as a report too.
04Trust Passport
Full passport →0/0 automated components pass. An automated score is never a security guarantee.
- publisher identity Publisher status verified; 1 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across 3 source file(s) plus listing text
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.
05Versions
Full history →| Version | Channel | Released | Notes |
|---|---|---|---|
| 0.1.0 | stable | Aug 11, 2026 | Initial extraction. |