signup event against email quality, IP reputation, device signals, and creation velocity. A single rule can stop a scripted wave; a small policy stops everything else.
Which event this protects
Fake account creation maps to thesignup event. The Cloudflare Worker fires it on every POST to your registration route before the request reaches your app. Nothing registers in your database until tracenow clears it.
How it works
When a signup request hits your registration route, the Worker:- Reads the email address and submitting IP from the request.
- Attaches the device fingerprint token (already injected by the Worker on the previous page load).
- Calls
/tracewithevent: signup; enrichment runs in parallel across email, IP, and device. - Evaluates your fake-accounts policy against the enriched signals.
- Returns the verdict:
allow(registration proceeds),challenge(add friction), ordeny(blocked at the edge).
Signals used
See Signals for the full field reference.
Fully covered at the edge. Fake-account signals (email, IP, device, velocity) are all
available before sign-in, so the Cloudflare Worker covers this use case with no backend code.
The optional server-side call only helps if you want to seed device
history for later account-takeover detection.
Set it up
1
Connect Cloudflare (if you haven't already)
In the dashboard under Integration, paste a Cloudflare API token with Workers Scripts: Edit
and Zone → DNS: Read scopes. tracenow validates the token and lists your zones.
2
Add a route rule for your registration endpoint
Under Integration → Routes, add a rule:
- Route pattern: e.g.
yourdomain.com/api/auth/signuporyourdomain.com/register - Method:
POST - Event:
signup - Mode: start with
Monitorto observe traffic without blocking
3
Enable the Fake accounts policies
Under Guard, enable the pre-built Fake accounts policy templates for the
signup event in Monitor mode. To customize or add your own rules, see Rules.4
Switch to Enforce mode when you're confident
Once you’ve reviewed a few days of Monitor traces and confirmed the rules are catching the right traffic, go back to Integration → Routes, edit the signup route, and change Mode to
Enforce.Click Deploy to push the updated Worker to Cloudflare.In Enforce mode,
deny verdicts are returned at the edge as a 403 (or your custom response) and your app never sees the request. challenge verdicts are forwarded to origin; enforce them in your app via the server-side call.Rules
You don’t build these by hand. The pre-built Fake accounts policy templates cover these patterns and enable in one click. See Rules to customize them or add your own.What a caught attempt looks like
A typical fake-account wave produces traces like this in the event feed: In the API response, a blocked signup looks like:Going further
The Cloudflare layer evaluatessignup without a real user ID. It uses the submitted email as the subject, which is enough to stop the vast majority of fake-account campaigns.
If you want to tie signups back to a confirmed subject_user_id after your app creates the account (for linking future login and OTP events), add the server-side in-app call immediately after your registration handler succeeds:
is_new_for_user, is_new_country_for_user, and distinct_ips_24h) from the very first session.