Concepts · Core concepts

Signal catalogue

What each signal measures, and what its silence means.

Signals are what the engine measured about a visit. This page says what each family measures and what its silence means.

Network and address#

SignalWhat it says
vpnThe address belongs to a VPN service
proxyThe address is an open or residential proxy
torA Tor exit node
datacenterThe address belongs to a hosting provider, not a residential ISP
ip_blocklistThe address has abuse history across several blocklists

These five are tri-state: true, false, or never looked up. See Measured and unmeasured.

A VPN is not fraud. Corporate employees use VPNs; privacy-conscious people use VPNs. That is why it rarely carries enough weight to refuse on its own.

Browser integrity#

SignalWhat it says
tamperingA measured surface was interfered with, canvas, WebGL, audio, text geometry
devtoolsDevTools is open, or a debugger is attached
vm_detectionSigns of a virtual machine
geo_spoofingThe claimed location contradicts what was measured

This is the strongest family. An anti-detect browser exists to modify exactly these surfaces, and modifying them leaves traces an honest machine does not have.

Automation#

SignalWhat it says
bad_botsAutomation markers: the webdriver flag, tooling artefacts, non-browser clients
good_botsA known, self-declaring crawler

bad_bots is the one exception that can prove a negative: every SDK version reads navigator.webdriver, so a visit that read it and fired nothing was measured and clean.

Privacy and device#

SignalWhat it says
incognitoA private window
privacy_settingsA blocker or anti-tracking setting is active
rare_deviceA canvas signature the public corpus has never seen
high_activityThis visitor appears unusually often

rare_device is a description, not an accusation, and it is deliberately not wired into the score. Rarity is the normal condition of a value chosen for its entropy: 79% of canvas hashes in this project's own data appear exactly once.

Mobile#

frida, jailbreak, ios_simulator, android_emulator, rooted_device, cloned_app, mitm_attack, active_call belong to mobile platforms. The web SDK does not measure them, so on this dashboard they always read as unmeasured.