# Block measurement: method for runs from 10 November 2026

Written and hashed on 3 November 2026, before any run under it. For runs from 10 November 2026 it replaces the method of 3 November 2026 (file `METHOD-v2.md`, SHA-256 18e1b6e0c742aa09ae83064aef82969316dbcaef93629104d6084c4815a2ae68), which stays unchanged and keeps the run made under it. Each run records the file name and SHA-256 of the method it followed. Any later change is published as a new file with its own date and hash and never applies to runs made earlier.

What changes from the method of 3 November 2026: the Kalshi step no longer asks for the homepage. It checks the connection only, with a request for headers and no page, and says whether the request reached Kalshi's servers. The Polymarket step, the countries, the networks, the records and the privacy rules are unchanged. One counting rule that the first run already followed is now written down.

## What a run measures

One run a week, at most one per UTC date. From volunteer-run probes on home networks in each country of the list, the run sends two requests and records what came back:

1. `https://polymarket.com/api/geoblock`, the endpoint through which the Polymarket website asks whether a visitor's location may open new positions. It answers with a small JSON document that says `blocked` true or false and the country it detected.
2. A connection check on `https://kalshi.com/`: one HTTPS request with the HEAD method, which asks for headers and no page. Kept: whether the secure connection completed with a certificate valid for kalshi.com, the HTTP status code, and, when the request failed, the kind of failure and the error code word. No page, title, header or cookie is kept.

The question each run answers is narrow: from these home networks, on this date, did the request reach the site, and for Polymarket, what did its check say? Nothing is traded, nothing is logged in, nothing is circumvented.

## Countries and networks

Probes come from the Globalping public API and are selected by country and by the tag `eyeball-network`, which Globalping gives to probes on consumer access networks. Where a country has well-known access providers with probes, the run names up to four of them by autonomous system number and asks two probes from each for the Polymarket endpoint and one from each for the Kalshi check. Where fewer than four are named, the remaining slots are asked from any eyeball-tagged probe in the country and reported as "other". The lists were fixed from Globalping's probe census of 3 November 2026 and are the same as in the method of 3 November 2026.

| Country | Networks (AS number) |
|---|---|
| Germany DE | Deutsche Telekom 3320, Vodafone 3209, 1&1 Versatel 8881, Telefonica O2 6805 |
| France FR | Free 12322, Orange 3215, SFR 15557, Bouygues Telecom 5410 |
| Spain ES | Orange 12479, Telefonica 3352, Digi 57269, Vodafone 12430 |
| Italy IT | Telecom Italia 3269, Wind Tre 1267, Iliad 29447, Dimensione 202870 |
| Netherlands NL | KPN 1136, Odido 50266, DELTA Fiber 15435, Vodafone Ziggo 33915 |
| Belgium BE | Proximus 5432, Telenet 6848, Orange 47377, Orange 12392 |
| Poland PL | Orange 5617, Netia 12741, Play 9141, T-Mobile 12912 |
| Denmark DK | TDC 3292, Fibia 44869, Hiper 203953, Telenor 9158 |
| Switzerland CH | Sunrise 6730, Init7 13030, Iway 8758, Swisscom 3303 |
| Portugal PT | MEO 3243, Digi 20879, Vodafone 12353, NOS 2860 |
| Romania RO | Digi 8708, Vodafone 12302, Orange 8953, plus two other |
| Czechia CZ | T-Mobile 13036, Vodafone 16019, O2 5610, plus two other |
| Austria AT | Magenta 8412, kabelplus 8339, plus four other |
| Sweden SE | Telia 3301, Bahnhof 8473, Telenor 8434, Tele2 1257 |
| United Kingdom GB | BT 2856, Virgin Media 5089, Zen Internet 13037, Sky 5607 |
| Finland FI | Elisa 719, Telia 1759, DNA 16086, plus two other |

**Counting by network.** A probe is counted under the named network its autonomous system number belongs to, whichever slot returned it. A probe from an "other" slot that sits on a named network is therefore counted under that network, which can show more probes returned than asked for it.

Each country costs twelve probe tests. A full run of sixteen countries costs 192 tests against Globalping's public limit of 250 an hour, so the runner reads the remaining allowance before every country and waits for the next hour when fewer than twelve tests plus a reserve are left. Countries are measured one after another, a few seconds apart.

**Finland.** Globalping's census of 3 November 2026 shows 104 probes in Finland, of which one sits on a home line (Elisa, Tampere); the rest are on hosting networks, and none is on Telia or DNA. Finnish rows carry that note. A probe that appears on Telia or DNA fills its slot by itself, since the networks are named by AS number. Tests of the same addresses collected by the Open Observatory of Network Interference, if they exist, are a separate source and are not counted in this series.

Globalping's volunteers run the probes. They are not a representative sample of households, the same probe is not guaranteed from week to week, and a network tag is Globalping's own metadata, not a verified household. Each returned probe's country, network and tag are checked before its answer is counted. No spare probes are requested and nothing is retried.

## What counts, Polymarket endpoint

An answer needs a completed test, a successful HTTP status and valid JSON with a true-or-false `blocked` field and a country code.

- **Blocked by the site** means `blocked: true` with the probe's own country detected. The site itself refuses new positions from that location.
- **Open** means `blocked: false` with the probe's own country detected.
- **Did not reach the site** means the probe could not get the endpoint's answer: the name did not resolve, the connection was refused or reset, the request timed out, the TLS handshake failed, or something other than the endpoint's JSON came back, such as a redirect, an error status or another page. The failure kind and, where present, the error code word are kept. This is the outcome a network-level block produces, but one failed test is not proof of a block; a probe can simply be offline or on a bad line. The weekly series shows whether a network fails consistently.
- **Unknown** means the test did not finish, the probe was outside the country or not eyeball-tagged, or the detected country differs from the probe's country.

Unknown is never open, and did not reach is never open. The endpoint does not distinguish a full block from close-only, and it does not show what a logged-in user can do.

## What counts, Kalshi connection check

- **Reached Kalshi's servers** means the test finished, the probe reports the TLS certificate as valid and issued for kalshi.com, and an HTTP status came back. Any status counts, including a security check or an error, because each of them was sent by Kalshi's own servers. It shows that the network let the request through. It does not show whether Kalshi would serve or accept a visitor from that country.
- **Did not reach the site** means the name did not resolve, the connection was refused or reset, the request timed out, the TLS handshake failed, the certificate was not valid for kalshi.com (another party answered), or no HTTP status came back. The failure kind and the error code word are kept.
- **Unknown** is as for Polymarket.

No page is requested, no script is run, no challenge is followed, no account is created. No Kalshi page, header, cookie, certificate detail or market data is stored, and no Kalshi market figure is published anywhere in this series. From the certificate only two facts are kept, as yes or no: the probe judged it valid, and it was issued for kalshi.com.

## Identification

Our own requests to the Globalping API identify themselves as `VultaxResearch/1.0 (research measurement; sophia@vultax.com)`. Globalping sets its own User-Agent on probe requests, so the probe requests cannot carry ours. We never pretend to be a browser.

## Records and integrity

**What a run saves.** One JSON file per country with the request, the projected probe rows and the counts; a summary with one row per country; a copy of this method; a manifest with the SHA-256 and size of every file; a `SHA256SUMS` list over the same files; an RFC 3161 timestamp token on that list from a public timestamp authority, with the authority's certificates; and a compressed pack of the whole run folder. A chain file in the runs folder holds one row per run with the hash of its `SHA256SUMS`, its token and its pack, each row carrying the hash of the row before it. The chain continues across the change of method. Times are in UTC.

**Rules for the files.** A run never overwrites an earlier run. An interrupted run is kept as evidence of the interruption. Every saved run can be checked offline against its manifest, its list, its token and the chain. Hashes show that files are unchanged since the run; the token shows the list existed at the stamped time; the chain shows that no run was inserted, removed or altered afterwards. None of this authenticates an operator's figures: the volunteer probes are Globalping's and the answers are the sites' own.

## What a run never does

A run never:
- creates or uses an account, places or cancels an order, or signs with a wallet;
- uses a VPN or proxy, routes around a block, or passes a bot check;
- requests a Kalshi page or a Kalshi API, or stores market rows, prices, trades or Kalshi data;
- saves the IP address of any probe, the address a name resolved to, a response header, a cookie, a certificate detail or a response body.

## Privacy

Probe IP addresses, resolved addresses, resolver lists, raw output, headers, cookies, certificate details and bodies are discarded before anything is written. Only the autonomous system number, the network name, the city, the country, the network tag, the test status, the HTTP status, the outcome, the failure kind, the error code word, the detected country and region, for Polymarket a page title where another page came back, and for Kalshi the two certificate facts are kept. No IP address is kept in any form, hashed or otherwise.

## What the data cannot show

The data cannot show:
- whether a blocking order exists, what it says, or whether it is lawful; the orders are kept in the Europe record, a separate document;
- how much trading comes from a country, how many users there are, or what they deposit or lose;
- whether anyone gets around a restriction;
- what an authenticated browser session sees, or whether Kalshi accepts a visitor from a country;
- anything about networks that have no probe.

A reply about eligibility, a published restriction, a connection that reaches a site, and actual trading permissions are four separate facts. A table in this series reports what probes saw. It gives no advice to anyone about what to do with that.

## Publication and licence

The public page carries, for every country, what each network's probes saw in the latest run and, from the second run on, the recent weeks, with the method and the packs for download. A change note is written only when a country's picture changes from the previous run, and it says what changed and between which two dates. Nothing else is written weekly. The data and the packs are published under CC BY 4.0, crediting Vultax Research.
