PRC-6Recommended
Limit the free tier per person instead of per account
Count free-tier usage per person, by verified email, payment card fingerprint and device or network signals, not per account alone. Cap total free usage per day across the whole service, and alert when the cap is reached.
How to do it
A free tier that costs you model calls is worth farming. Scripts create thousands of accounts and spend the free credits on resale or scraping. Ask for a verified email or phone number before the free credits start, and a card for the larger free tiers. Score each sign-up as Score every sign-up for risk describes. Grant the free credits as ledger rows with a source, so you can see and claw back farmed grants. A total daily cap keeps an attack you missed from costing more than a set amount.
Examples
JavaScript example
const FREE_DAILY_CAP_MINOR = 50_000
export async function grantFreeCredits(person, ledger) {
if (await ledger.hasFreeGrant(person.identityHashes)) return false
if (await ledger.freeSpentTodayMinor() >= FREE_DAILY_CAP_MINOR) return false
await ledger.grant(person.accountId, { source: 'free-tier', identityHashes: person.identityHashes })
return true
}
Python example
FREE_DAILY_CAP_MINOR = 50_000
def grant_free_credits(person, ledger) -> bool:
if ledger.has_free_grant(person.identity_hashes):
return False
if ledger.free_spent_today_minor() >= FREE_DAILY_CAP_MINOR:
return False
ledger.grant(person.account_id, source="free-tier", identity_hashes=person.identity_hashes)
return True
How to check
A test creates three accounts with the same card fingerprint. Only the first gets free credits. A load test that spends the free tier from many new accounts stops at the daily service cap, and the alert fires.
Related rules
- TNS-11 Score every sign-up for risk in Trust and safety
- PRC-17 Give one trial per person and payment card in Pricing, plans and entitlements
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/pricing/plan-changes-trials-and-free-tiers/free-tier-abuse">Agent Wranglers pricing, plans and entitlements playbook</a>. In code you write, add a comment next to it with the same link.