The fifth account costs what the first did
You give 100 credits with no card, because that is how people try an AI product. The fifth burns the same GPU time.
Nolgard checks whether a signup comes from a device, network or mailbox it has seen before, then tells your backend how many free credits to give. Someone new gets the full trial. A repeat gets a fifth of it.
Start in observe mode, where Nolgard blocks nothing.
| Signup | Laptop | Inbox | Credits |
|---|---|---|---|
| maria@gmail.com | new | new | 100 |
| maria+2@gmail.com | seen | same | 20 |
| m.kowal@proton.me | seen | new | 20 |
| mk@zq7mail.ioincognito | seen | temp | 20 |
| maria2@gmail.comVPN | seen | new | 20 |
You give 100 credits with no card, because that is how people try an AI product. The fifth burns the same GPU time.
A real browser driven by a real person is not a bot. A fresh email walks through Turnstile and Clerk.
Asking for a card or a phone number turns away people who would have stayed. Heroku ended free plans and blamed fraud and abuse (TechCrunch, 2022).
Our script reads device signals in the background. The visitor sees no puzzle.
Your backend sends us the token and the email. We match them against earlier signups from the same laptop, network or mailbox, including incognito windows and VPNs.
You get back a decision and a credit number: 100 for someone new, 20 for a repeat, 0 for a bot. Your code grants them.
<script src="https://nolgard.com/v1/client.js"
data-site-key="YOUR_SITE_KEY" defer></script>
// In your signup submit handler:
await Nolgard.ready;
const token = await Nolgard.execute({
action: 'signup'
});
// Send token + email to your backend.import { createNolgard } from '@nolgard/node';
const { verify } = createNolgard({
secret: process.env.NOLGARD_SECRET
});
const r = await verify({ token, action: 'signup',
account: { email }, remoteIp });
if (!r.success ||
!['allow', 'limit'].includes(r.decision)) {
// Reject, step up, or shadow. No credits.
return;
}
user.credits = r.grant.credits ?? 100;Fallback covers unconfigured credits and fail-open. Node guide · Step-up
Trial: 100 credits.
allow → 100 creditslimit → 20 creditschallenge → 0 until verifiedblock → 0 creditsObserve mode changes nothing and reports would have stopped N, est. $. Next: spend guard. Also in the box →
The demo grants 100 credits to a new person. Open it in a fresh profile, a new email, a VPN, an antidetect browser. Get a second full grant and tell us how.
No logos, no customers yet. In our lab, humanized Patchright passes the bot check. Its second account was still caught as a repeat device.
Stealth browsers pass the bot check. Repeat signals are separate from it.
We don't do DDoS defence or traffic inspection. Keep your edge.
Device and email links aren't proof of identity.
Pro and Business open when billing ships.
1,000 new accounts/month. No card, no time limit.
Start free10,000 new accounts, then $0.006 each.
Request access50,000 new accounts, then $0.004 each.
Request accessWe take ten pilots, and the founder does the integration with you.
Radar scores payments. A trial without a card never reaches it.
You lose everyone who tries without one, and you get card testing instead.
They stop bots. A fifth account in a real browser is not a bot. We link by device, network and mailbox.
We don't block anyone. We return a number and your backend decides what to do with it. A repeat still gets a smaller trial.
You can. It is a standing race against Camoufox, Patchright and next quarter's build.
Signups go through. The SDK fails open by design. DPA
Free during the beta, with no card. After 14 days you get an estimate in dollars.