Post-Quantum Adoption Tracker
Adoption trend
One sample per day at 00:00 UTC. Each line is the count of endpoints whose latest handshake was in that PQ class. Values are labelled directly on the chart.
Hybrid-group breakdown
Which specific IETF NamedGroup every PQ-hybrid handshake uses. Today nearly the whole blockchain probe set negotiates X25519MLKEM768; the other three groups the IETF defined are at zero. The day a server flips to a secp hybrid or pure ML-KEM, the matching band appears here.
Adoption by group
The same daily samples as the trend above, stacked by the key-exchange group PQ endpoints negotiated. Days before 2026-10-15 were rebuilt from the prober’s per-probe records, which carry the PQ class but not the group.
X25519MLKEM768(pq-hybrid)PQ hybrid (group not recorded)(pq-hybrid)PQ (group not recorded)(pq-hybrid)classical(classical)What this measures
Our production prober runs a TLS 1.3 handshake against every public RPC endpoint in the catalogue that offers only X25519MLKEM768. A completed handshake means the server supports post-quantum hybrid key exchange; a refusal followed by a successful classical handshake means it does not. A second, full handshake records which group the server picks when offered both. Each endpoint counts once, under its latest result. Endpoints that don’t speak TLS 1.3 can’t negotiate ML-KEM and are left out of the denominator.
We run the same handshake test against the Tranco Top-1M every day. The side-by-side is on crypto RPC vs. the open web.
By chain
| Chain | Endpoints | Pure PQ | Hybrid | Classical | PQ rate |
|---|---|---|---|---|---|
| 1 | 73 | 0 | 51 | 22 | 69.9% |
| 56 | 54 | 0 | 32 | 22 | 59.3% |
| 137 | 41 | 0 | 34 | 7 | 82.9% |
| 10 | 39 | 0 | 31 | 8 | 79.5% |
| 42161 | 38 | 0 | 29 | 9 | 76.3% |
| 8453 | 36 | 0 | 30 | 6 | 83.3% |
| 11155111 | 32 | 0 | 23 | 9 | 71.9% |
| 43114 | 27 | 0 | 21 | 6 | 77.8% |
| 100 | 24 | 0 | 20 | 4 | 83.3% |
| 9001 | 23 | 0 | 13 | 10 | 56.5% |
| 1284 | 20 | 0 | 15 | 5 | 75.0% |
| 250 | 20 | 0 | 18 | 2 | 90.0% |
| 369 | 20 | 0 | 18 | 2 | 90.0% |
| 5000 | 20 | 0 | 15 | 5 | 75.0% |
| 81457 | 20 | 0 | 17 | 3 | 85.0% |
| 97 | 20 | 0 | 11 | 9 | 55.0% |
| 143 | 19 | 0 | 12 | 7 | 63.2% |
| 204 | 19 | 0 | 11 | 8 | 57.9% |
| 534352 | 19 | 0 | 15 | 4 | 78.9% |
| 146 | 17 | 0 | 13 | 4 | 76.5% |
| 324 | 17 | 0 | 13 | 4 | 76.5% |
| 59144 | 17 | 0 | 12 | 5 | 70.6% |
| 167000 | 16 | 0 | 14 | 2 | 87.5% |
| 2222 | 16 | 0 | 11 | 5 | 68.8% |
| 25 | 16 | 0 | 14 | 2 | 87.5% |
| 50 | 16 | 0 | 9 | 7 | 56.3% |
| 80002 | 16 | 0 | 13 | 3 | 81.3% |
| 80094 | 16 | 0 | 13 | 3 | 81.3% |
| 12306 | 15 | 0 | 15 | 0 | 100.0% |
| 130 | 15 | 0 | 11 | 4 | 73.3% |
| 1514 | 15 | 0 | 11 | 4 | 73.3% |
| 1666600000 | 15 | 0 | 12 | 3 | 80.0% |
| 8217 | 15 | 0 | 12 | 3 | 80.0% |
| 1088 | 13 | 0 | 11 | 2 | 84.6% |
| 1285 | 13 | 0 | 9 | 4 | 69.2% |
| 20181205 | 13 | 0 | 12 | 1 | 92.3% |
| 2632500 | 13 | 0 | 5 | 8 | 38.5% |
| 288 | 13 | 0 | 11 | 2 | 84.6% |
| 421614 | 13 | 0 | 9 | 4 | 69.2% |
| 999 | 13 | 0 | 9 | 4 | 69.2% |
| 11235 | 12 | 0 | 12 | 0 | 100.0% |
| 1329 | 12 | 0 | 10 | 2 | 83.3% |
| 14 | 12 | 0 | 10 | 2 | 83.3% |
| 169 | 12 | 0 | 11 | 1 | 91.7% |
| 42170 | 12 | 0 | 12 | 0 | 100.0% |
| 42220 | 12 | 0 | 9 | 3 | 75.0% |
| 463 | 12 | 0 | 12 | 0 | 100.0% |
| 4663 | 12 | 0 | 12 | 0 | 100.0% |
| 84532 | 12 | 0 | 10 | 2 | 83.3% |
| 9000 | 12 | 0 | 8 | 4 | 66.7% |
How to read it
- Greens = pure post-quantum. Forward secrecy holds against a future quantum attacker; no classical fallback in the key exchange.
- Blues = post-quantum hybrid. ECDH || ML-KEM concatenated and fed to HKDF, so an attacker has to break both.
- Oranges = classical only. A captured handshake is decryptable by a future quantum computer (“harvest now, decrypt later”).
Ratios shift as upstream providers (Cloudflare, AWS, the public-RPC operators) toggle PQ defaults. The per-endpoint security pages log exact transition dates.