● livewaw-01 · 52.2299°N 21.0093°Egeo.rtt-below-vacuumstack.os-contradictionreach.no-quic-attemptcompute.cores-exceed-claimidentity.same-origin-clustertls.group-disagreement
Network and hardware checks for browser claims

You cannot spoof
the speed of light.

Browser scripts can change most reported device values. Heretic compares those claims with packet location, kernel-written fields, UDP behavior, and CPU performance. The result is a verdict with supporting measurements.

measured RTT compared with the physical minimum
EXAMPLE 9f2c41ab waw-01
Claimed locale
Asia/Tokyo
Measured RTT
2.1 ms
0 ms40 ms
measured
physical minimum 27.4 ms
Hatched region is physically unreachable.
network-geometry contradicting
transport-stack contradicting
tls-construction clear
families reporting 6 / 6
verdict contradicted
6
independent evidence families
0
dns handovers required
1
bare-metal edge · Warsaw
98
cpu models in the test corpus

Risk scores estimate.
Heretic measures.

Every verdict includes
the supporting measurements.

Run it beside
your current bot controls.

01Explain endpoint

This session claimed Tokyo. Its RTT was too low.

The browser reported Asia/Tokyo, but its TCP handshake reached Warsaw in 2.1 ms. The physical minimum is 27 ms. The endpoint returns a conclusive contradicted verdict and includes both values.

Each ruling includes its measurements and stable rule ids for policy checks.

GET /e?n=9f2c41abschema: 7
1 "schema": 7, "provenance": { "build": "0.0.1+11f956e" },
2 "verdict": "contradicted", "conclusive": true,
3 // measured evidence; your policy decides the response
4 "summary": "Claimed locale is physically unreachable;
5   transport stack contradicts the claimed OS.",
6 "contradicting_families": [
7   "network-geometry", // geo.rtt-below-vacuum
8   "transport-stack" // stack.os-contradiction
9 ],
10 "families": [ 6 measured / 6 reporting ],
11 "signals": [
12   { "id": "geo.rtt-below-vacuum", "tier": "composite",
13     "headline": "RTT 2.1ms; light needs 27.4ms" },
14   { "id": "stack.os-contradiction", "tier": "composite",
15     "headline": "SYN by Linux 5.x; UA claims macOS 15" }
16 ] 
Contradicted 2 families · conclusive
Example response

What a ruling looks like

This synthetic example uses documentation-range addresses and contains no customer data. Every response includes the verdict, edge measurements, client claims, and coverage for each evidence family.

example response · synthetic session waw-01 · schema 7
uncontradicted conclusive: false · 6 of 6 families reporting
Measured at the wire
observed via h3 · quic v1
client address 203.0.113.42
network AS64500 · access
handshake RTT 24.8 ms
detected stack macos/ios
QUIC attempted yes
Claimed by the client
platform macOS · Chrome
timezone Europe/Warsaw
cores / memory 10 / 16 GB
screen 2560×1440 @2
claimed GPU Apple M-series
agreement no contradiction
Coverage by family
network-geometry consistent
measured · no signals
transport-stack consistent
stack.mtu
transport-reachability consistent
measured · no signals
tls-construction consistent
measured · no signals
http-construction consistent
http.h2-fingerprint
compute consistent
compute.frame-cadence-recorded
example record · display values are sanitized joined at waw-01 · bare-metal edge
02Method

Five measurement rules

Heretic checks physical limits and independent evidence instead of adding behavioral signals to a risk score.

i

Check physical limits

Compared with behavioral AI · risk scores

Heretic compares round-trip time with the minimum travel time between the edge and the claimed location. A browser cannot be in Tokyo if its handshake reaches Warsaw in 2 ms. The evidence tier determines whether one signal is conclusive or requires support from another family.

ii

Read kernel and CPU behavior

Compared with JavaScript challenges

The client kernel writes the SYN packet fields. Browser scripts cannot change them, and a proxy replaces them with its own fields. CPU probes also compare claimed core counts with measured scaling under load.

iii

Record missing protocol attempts

Compared with signature databases

The edge advertises QUIC and records whether the client attempts it. Browsers normally attempt QUIC when it is available. Some residential proxy setups do not pass the attempt through.

iv

Require independent evidence

Compared with score accumulation

Absolute violations are conclusive alone. Composite findings require support from an independent family. Weak signals provide context but never make a verdict conclusive.

v

Connect outside the request path

Compared with reverse proxies

The collector compiles into the site bundle and connects directly to a bare-metal edge. It requires no DNS handover and adds no reverse proxy to the request path. If the collector connection is blocked, the session returns insufficient with a no-return reason.

Four evidence tiers
Absolute

A physical limit was violated or required measurements were refused. This tier is conclusive on its own.

Composite

A second evidence family must support the finding before it becomes conclusive.

Conditional

May justify a policy action but is never conclusive. The network can produce this signal during normal use.

Weak

Provides context only. Weak signals cannot make a verdict conclusive.

Five verdicts
contradicted

A physical limit contradicts a claim, or two independent evidence families agree. This verdict is conclusive.

refused

The client completed the request but withheld required collector measurements. This verdict is conclusive.

disputed

One evidence family contradicts a claim without independent support. This verdict is not conclusive.

uncontradicted

No rule contradicted the session. The coverage field lists every evidence family that reported.

insufficient

The edge received too little data to assess the session. The reason identifies missing sensor or client data.

03Comparison

The same session, two answers

Typical risk scoring
risk: 0.73
returns a probability that requires a policy threshold
depends on IP reputation that residential proxies can bypass
loses raw transport data behind a CDN
loads as a third-party script that blockers can stop
requires DNS or request routing changes
Heretic
contradicted
returns a verdict with the supporting measurements
measures transport data that browser scripts cannot change
reads raw transport data at a bare-metal edge
compiles into the first-party bundle and reports blocked collection
requires no DNS handover or request-path dependency

Risk scoring returns a number that needs a policy threshold. Heretic returns a verdict with the measurements used to reach it.

04Integration

Keep Heretic outside your request path

The collector compiles into the site bundle and reports to a signed first-party endpoint. The backend requests a verdict when needed. Heretic requires no nameserver handover or reverse proxy, so an edge outage does not stop site requests.

Published signal ids keep the same meaning and can be used in policy rules.

ReactNext.jsVueAny backend
one package · no DNS change
$ npm install @heretic-hq/collector
05Planned pricing

Proposed plans

Billing, metering, and self-service checkout are not available yet. Early access is private and free. Every proposed plan includes the complete signal catalogue and explain endpoint.

Starter
for early evaluation
$0 during early access
full signal catalogue and explain endpoint
access to the Warsaw edge
ruling records stored for the edge retention window
Request access
Team
planned
for production use
Planned when billing exists
everything in Starter
access to new edges as they launch
policies based on stable signal ids
direct support
Request access
Enterprise
for high-volume deployments
Contact us planned
dedicated bare-metal edges in selected regions
signals developed for your traffic
a shared support channel with the engineering team
Contact us

Every plan will return the same verdicts and signals. Planned pricing will vary by request volume and edge placement.

06Questions

Request early access

Early access is free for teams testing Heretic alongside an existing bot detection system.

Live edge: probe.heretic.tech · three bare-metal edges