AI token fraud_ AI token fraud_
AI token fraud prevention.
Powered by device intelligence. AI token fraud prevention.
Powered by device intelligence.
Stop free-tier farming, account sharing, and automated abuse. Protect your inference budget without adding friction for real users. Stop free-tier farming, account sharing, and automated abuse.
Protect your inference budget without adding friction for real users.
Why Fingerprint_
Don’t let abusers
burn your tokens Don’t let abusers
burn your tokens
Stop free-tier farming Stop free-tier farming
Link new signups to devices that already claimed free credits. Link new signups to devices that already claimed free credits.
Enforce plan limits Enforce plan limits
Catch paid accounts shared across devices and locations. Catch paid accounts shared across devices and locations.
Block automated abuse Block automated abuse
Stop bots, VMs, and spoofed AI agents before they reach your models. Stop bots, VMs, and spoofed AI agents before they reach your models.
Keep signup frictionless Keep signup frictionless
No CAPTCHAs for real users. Stays compliant with GDPR and CCPA. No CAPTCHAs for real users. Stays compliant with GDPR and CCPA.
One device. One free tier.One device.
One free tier.
Every abused token is real GPU spend. Fingerprint recognizes the device behind each signup, even after a new email, a private window, or a VPN.
https://yourcompany.com
Step 1
Martin signs up and gets free tokens.
Get 100K free tokens!
No credit card required. Start building now.
Martin's device
[VISITOR ID: 2FKJSALFJGNNDO]
Bots and AI agents_
Allow trusted agents.
Block the rest.
Let signed AI agents through. Stop spoofed agents and bots before they spend your tokens.
Allow signed agents
with confidence
ChatGPT Agent
Signed
Block spoofed agents
and impersonation
Sign In
user@example.com
Distinguish trusted agents
from malicious bots
Leather jacket
Size: L, Burgundy
Leather jacket
Size: L, Burgundy
Smart Signals_
Smart Signals for
token fraud prevention Smart Signals for
token fraud prevention
Spot the farms, scripts, and resets behind token abuse. Act on them in real time. Spot the farms, scripts, and resets behind token abuse. Act on them in real time.
Velocity Signals
Count accounts per device and IPs per account.Count accounts per device and IPs per account.
{
"distinct_ip": {
"5_minutes": 1,
"1_hour": 1,
"24_hours": 1
},
"distinct_country": {
"5_minutes": 1,
"1_hour": 2,
"24_hours": 2
},
"events": {
"5_minutes": 1,
"1_hour": 5,
"24_hours": 5
}
}Code example_
Device checks in every token path
Free credits
Grant free-tier tokens once per device, not once per email.
async function grantFreeCredits(req, res) { const { eventId, userId } = req.body; const event = await client.getEvent(eventId); const visitorId = event.identification?.visitor_id; const isBadBot = event.bot === 'bad'; const isVirtualMachine = event.virtual_machine; const isTampered = event.tampering; // Needs linkedId (the account ID) sent from the client const accounts = event.velocity?.distinct_linked_id?.['24_hours']; const priorGrants = await countGrantsForVisitor(visitorId); if (isBadBot || isVirtualMachine || isTampered || accounts > 1 || priorGrants > 0) { return res.status(403).json({ error: 'Free credits unavailable' }); } await addCredits(userId, FREE_TIER_TOKENS); res.json({ status: 'granted' }); }
Usage
Throttle spoofed agents and abnormal request volume before they reach your models.
async function handleCompletion(req, res) { const { eventId, accountId, prompt } = req.body; const event = await client.getEvent(eventId); const visitorId = event.identification?.visitor_id; const spoofedAgent = event.bot_info?.identity === 'spoofed'; const suspectScore = event.suspect_score; const highActivity = event.high_activity_device; const knownDevice = await isKnownDevice(accountId, visitorId); if (spoofedAgent || suspectScore > 20 || (highActivity && !knownDevice)) { return res.status(429).json({ error: 'Request throttled' }); } res.json(await runModel(prompt)); }
Shared accounts
Enforce per-plan device limits and catch logins rotating through VPNs and proxies.
async function handleLogin(req, res) { const { eventId, email } = req.body; const event = await client.getEvent(eventId); const visitorId = event.identification?.visitor_id; // Needs linkedId (the account ID) sent from the client const ips = event.velocity?.distinct_ip_by_linked_id?.['24_hours']; const usingVpn = event.vpn; const usingProxy = event.proxy; const devices = await countDevicesForAccount(email, visitorId); if (devices > PLAN_DEVICE_LIMIT || (ips > 3 && (usingVpn || usingProxy))) { return res.status(403).json({ error: 'Plan device limit reached' }); } await completeLogin(email); res.json({ status: 'authenticated' }); }
Code example_
Device checks in every token path
async function grantFreeCredits(req, res) { const { eventId, userId } = req.body; const event = await client.getEvent(eventId); const visitorId = event.identification?.visitor_id; const isBadBot = event.bot === 'bad'; const isVirtualMachine = event.virtual_machine; const isTampered = event.tampering; // Needs linkedId (the account ID) sent from the client const accounts = event.velocity?.distinct_linked_id?.['24_hours']; const priorGrants = await countGrantsForVisitor(visitorId); if (isBadBot || isVirtualMachine || isTampered || accounts > 1 || priorGrants > 0) { return res.status(403).json({ error: 'Free credits unavailable' }); } await addCredits(userId, FREE_TIER_TOKENS); res.json({ status: 'granted' }); }
Social proof_
ZBD cut multi-accounting
fraud by 95% ZBD cut multi-accounting
fraud by 95%
Multi-accounting creation has dropped by 95%. We used to see spikes where thousands of fake accounts were created in a single hour — now that’s practically gone.
$1 Billion +
7 Billion +
100 Million +
