Tools / browser signal lab
Am I a bot?
See what the browser—and its connection—reveal.
No human score. Every check shows its provenance and limits.Phone / Chrome referenceGuided capture · private storage
Open this page in Chrome on the physical phone. Confirm its model and versions. Finishing saves the capture to the server and displays a capture ID. Repeat three times.
26.6 and 152 are reported values. The observed browser version is recorded separately. A capture does not prove physical identity or that Chromium is equivalent to iOS.
The server receives normal requests; its access logs may include an IP address. The export excludes cookies, IP and history tokens. Plain HTTP, TLS, worker canvas and attached diagnostics remain pending.
Upload an earlier JSON capture
Save a capture you already downloaded without repeating it.
One approval / eight evidence lanes
All checks, one approval
Check the browser, rendering, and connection. When the checks finish, a copy is saved automatically to study these signals.
Primary reading / coverage kept separate
The lab is ready when you are.
No diagnostic surface has been read and the collector has not been contacted.
Restore a saved history
The private file grants access to read, append to, and delete history. Restoring it remembers this browser; it runs no checks and adds no samples.
No checks run or samples are saved before your approval.
One reading, eight evidence lanes
00 / 08- 01
Automation declarations and artifacts
Browser self-report + local observationChecks WebDriver and a narrow list of specific markers. Generic global names that create false positives are omitted.
Can affect the primary readingReadyCoverage pending - 02
Inspector and API integrity
Local observationCombines inspector serialization effects with a small native-function audit. Function source is never retained.
Can affect the primary readingReadyCoverage pending - 03
Cross-context consistency
Page + frame + workerCompares only available fields across the page, an isolated frame, and a temporary worker.
Can affect the primary readingReadyCoverage pending - 04
Screen and input consistency
Bucketed local observationReads bucketed dimensions, DPR, pointer/hover queries, and initiating-gesture metadata; no coordinates or trajectories are kept.
Can affect the primary readingReadyCoverage pending - 05
Canvas signature and announced-profile consistency
Local render + study cohortChecks three samples per configuration. Only a repeatable canonical signature is compared with histories using the same recipe; differences between configurations are explained separately.
Context / privacy onlyReadyCoverage pending - 06
WebGL capability profile
High-entropy local observationSummarizes vendor, renderer, and limits; a response to an invalid context name is treated as an API anomaly, not a GPU identity claim.
Context / privacy onlyReadyCoverage pending - 07
Network transport profile
Remote collector-signedA direct connection to the capture server observes ClientHello, JA3/JA4, negotiated TLS, and bounded HTTP/2 first flight. It does not inspect content or HTTP/3.
Context / privacy onlyReadyCoverage pending - 08
Network addresses and routes
Signed HTTPS + browser-reported candidatesCompares same-family public addresses; distinguishes interfaces, mDNS names, and relays. Does not identify a pre-proxy IP.
Context / privacy onlyReadyCoverage pending
Educational surface / approved runs only
Make the fingerprint visible
Approve and start the run to use Canvas, font metrics, and WebGL. Until then, these APIs are not invoked.
Waiting for an approved run
An observation is not an identity.
Correlated fields count as one family. Canvas, WebGL, JA3/JA4, HTTP/2, and the initiating gesture never produce a bot verdict on their own.
One approval covers all checks, temporary processing on a separate server, and automatic research storage. You can withdraw the contribution with the receipt held in this tab.
Privacy and retention