Docs

DeviceSignal in five minutes

A high-entropy device fingerprinting library that returns two hashes: a per-browser fingerprint and a cross-browser hardware ID. Zero dependencies. ~39 KB minified. TypeScript-native.

What it does

FingerprintJS reads what the browser reports. DeviceSignal measures what the hardware does.

Every signal it collects is tagged either hardware-bound (GPU model, screen geometry, installed fonts, CPU architecture, timezone, attached media devices — stable across Chrome, Safari, Firefox, and Brave on the same machine) or engine-bound (audio DSP output, canvas rasterisation, WebGL caps, math floating-point — differs between browser engines even on identical hardware). That split is the wedge.

Two fingerprints, one collection pass

FieldSourceStable across browsers?Use it for
fingerprintAll 15 signals fusedNo — engine signals differ per browserRecognising a returning user in the same browser
hardwareFingerprint5 hardware signals fusedYesCross-browser device matching, MFA, anti-fraud, license enforcement

The 15 signals at a glance

Nine signals run by default (tier 1). Four more are opt-in for broader coverage (tier 2). Two are niche / low-entropy (tier 3).

Signal catalogue

#SignalBindingTier
1audioengine1
2canvasengine1
3webgl_gpu_identityhardware1
4webgl_paramsengine1
5screenengine1
6platformhardware1
7timezonehardware1
8fontshardware1
9mathengine1
10css_probeengine2
11media_deviceshardware2
12webgl_gpu_traceengine2
13webgpuengine2
14speech_voicesengine3
15storage_quotaengine3

Three independent risk tracks

Every result includes three scoring blocks that should be reasoned about independently — the evidence sets barely overlap. Consistency catches anti-detect browsers that spoof signals to look like a real human (10 flags → spoofLikelihood). Automation catches drivers like Puppeteer / Playwright / Selenium that just want to work (12 flags → automationLikelihood). Incognito is informational only — private browsing is a legitimate feature, not evidence of fraud (4 flags → incognitoLikelihood).

Where to go next

Read Install & Quick Start to ship the library in five minutes. Read Configuration for tier / timeout / exclude options. Browse the API Reference for the four public functions. Open any Signal page to see exactly what is collected, how it is hashed, and which anti-fingerprinting tools defeat it.