The agent, taken apart
Deobfuscated bundle, a map of all 143 signals, the source of every collector, and a page that runs them against your own browser.
What the Fingerprint Pro v4 browser agent measures, how it hides it, and what the server does with the result. One pinned build, taken apart offline: the deobfuscated bundle, a map of all 143 signals, the source of every collector, and a page that runs those collectors against your own browser.
The pinned build#
Everything here describes jsl/4.0.0, sha256 250c7dfe…, fetched 2026-08-07. The tenant ships new
builds and the paths rotate, so a map generated today will not match a bundle pulled next month.
npm run fetch checks the pin and npm run diff says what changed between two builds.
What the analysis found#
Everything the analysis does not establish is written down in not determined.
Where to start#
Read the architecture first if you want the shape of the program, or go straight to what the agent collects if you only care about the signals. The wire format covers the codec and the envelope, and identity covers what the visitor id is actually a function of.
To reproduce any of it, reproducing lists the pinned target and every command, and toolchain documents each tool flag by flag.
Scope#
The shipped bundle is not redistributed. The deobfuscated agent is derived work: the same program with the obfuscation removed and every binding renamed, published alongside the hash of the original so anyone can fetch it and check. The captures and evidence files are runs against Fingerprint's own public demo tenant with its public API key, with third-party storage entries, proxy sessions and IP addresses stripped before anything lands in the tree.
The explorer on this site collects locally and sends nothing: no API key ships in the page, no request leaves it, no visitor id is minted.