diff --git a/docs-mintlify/guides/apps/authentication/fraud-protection.mdx b/docs-mintlify/guides/apps/authentication/fraud-protection.mdx index 835a33f8d..c460a3e6d 100644 --- a/docs-mintlify/guides/apps/authentication/fraud-protection.mdx +++ b/docs-mintlify/guides/apps/authentication/fraud-protection.mdx @@ -4,7 +4,7 @@ description: "Detect bots, free-trial abuse, and other fraudulent sign-ups." sidebarTitle: "Fraud Protection" --- -Fraud Protection is a sub-app of [Authentication](./overview). It isn't a separate page or a separate toggle - it's the name we give to the **risk signals** that the Authentication app already attaches to every sign-up attempt (bot score, free-trial abuse score, geo-IP country, and Cloudflare Turnstile result), and the conditions you can write against them in [Sign-up Rules](./sign-up-rules). +Fraud Protection is a sub-app of [Authentication](./overview). It isn't a separate page or a separate toggle - it's the name we give to the **risk signals** that the Authentication app already attaches to every sign-up attempt (bot score, free-trial abuse score, and geo-IP country), and the conditions you can write against them in [Sign-up Rules](./sign-up-rules). In the dashboard, Fraud Protection appears as its own tile (grouped under the Authentication category) with a **Go to Authentication** button that takes you straight to **Authentication → Sign-up Rules**. There's nothing to configure on a separate screen - everything happens in the rule builder. @@ -19,10 +19,8 @@ Every sign-up attempt is scored with the following fields. They're always availa | Field | Type | Operators | Description | |---|---|---|---| | `countryCode` | string (ISO-3166-1 alpha-2) | `equals`, `not_equals`, `in_list` | Geo-IP country of the request (e.g. `"US"`, `"DE"`, `"NG"`). Empty if it can't be resolved. | -| `riskScores.bot` | number (0-100) | `equals`, `not_equals`, `greater_than`, `greater_or_equal`, `less_than`, `less_or_equal` | Confidence that the sign-up is automated. Higher = more likely a bot. Hexclave uses signals like the Cloudflare Turnstile verdict to compute this score. | -| `riskScores.free_trial_abuse` | number (0-100) | same as `riskScores.bot` | Confidence that the user is attempting to abuse a free-trial / new-account incentive (multi-accounting, disposable infra, etc.). | - -The rule tester additionally exposes a **Turnstile** override (`ok` / `invalid` / `error`) so you can simulate how a given Turnstile verdict affects the resulting bot score. +| `riskScores.bot` | number (0-100) | `equals`, `not_equals`, `greater_than`, `greater_or_equal`, `less_than`, `less_or_equal` | Confidence that the sign-up is automated. Higher = more likely a bot. | +| `riskScores.free_trial_abuse` | number (0-100) | same as `riskScores.bot` | Confidence that the user is attempting to abuse a free-trial / new-account incentive. | These fields evaluate together with the rest of the sign-up context, so a single rule can combine them freely. @@ -64,7 +62,6 @@ The Sign-up Rules **rule tester** (button **Open tester** at the bottom of the p - **Country** - override the resolved country code (any ISO-3166-1 alpha-2). - **Bot score** - 0–100. Must be provided together with **Free-trial abuse** or both must be blank. - **Free-trial abuse** - 0–100. Same pairing rule as Bot score. -- **Turnstile** - `Default (real result)` / `OK` / `Invalid` / `Error`. The tester doesn't run a live Turnstile check; when left at the default, the simulated verdict falls back to `Invalid` for score derivation, so set an explicit value to model a passing challenge. Click **Run test** to see how each rule evaluates against the simulated context. The result panel shows: