known client
Android (Conscrypt) / Flutter (BoringSSL)
mobile-BoringSSL cipher-suite signature — Android system TLS (Play Services, Firebase, OkHttp apps) and Flutter/Dart; any ALPN
Matches Android (Conscrypt) / Flutter (BoringSSL) in the ground-truth catalogue.
- JA4
- JA4_r
- JA3
- several builds share this JA4 under different JA3s — no single value is canonical.
- JA3_raw
- —
Read
Spread measures reach, not intent: it can’t tell one scraper visiting 500 domains from 500 people visiting one each. Stability is a claim about software — whether the stack is deterministic — nothing about who runs it.
Footprint
ClientHello anatomy
The underscore groups of JA4_r are the raw cipher suites · extensions · signature algorithms behind the hash.
The post-quantum key share is a structural fact about the hello, not a verdict — GREASE values are flagged the same neutral way.
- 00x1301TLS_AES_128_GCM_SHA256
- 10x1303TLS_CHACHA20_POLY1305_SHA256
- 20x1302TLS_AES_256_GCM_SHA384
- 30xc00aTLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- 40xc009TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- 50xc013TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- 60xc014TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- 70x009cTLS_RSA_WITH_AES_128_GCM_SHA256
- 80x009dTLS_RSA_WITH_AES_256_GCM_SHA384
- 90x002fTLS_RSA_WITH_AES_128_CBC_SHA
- 100x0035TLS_RSA_WITH_AES_256_CBC_SHA
- 110xc02bTLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- 120xc02fTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- 130xcca9TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305
- 140xcca8TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
- 150xc02cTLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- 160xc030TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- 00x0000server_name (SNI)
- 10x0005status_request (OCSP)
- 20x000asupported_groups
- 30x000bec_point_formats
- 40x000dsignature_algorithms
- 50x0010application_layer_protocol_negotiation (ALPN)
- 60x0017extended_master_secret
- 70x001crecord_size_limit
- 80x0022unknown (0x0022)
- 90x0023session_ticket
- 100x002bsupported_versions
- 110x002dpsk_key_exchange_modes
- 120x0033key_share
- 130xfe0dencrypted_client_hello
- 140xff01renegotiation_info
Stored sorted — under one JA4 the wire order varies by construction, so no single order is “the” order.
- 00x001dx25519
- 10x0017secp256r1 (P-256)
- 20x0018secp384r1 (P-384)
- 30x0100ffdhe2048
- 40x0101ffdhe3072
- 00x0201rsa_pkcs1_sha1
- 10x0203ecdsa_sha1
- 20x0401rsa_pkcs1_sha256
- 30x0403ecdsa_secp256r1_sha256
- 40x0501rsa_pkcs1_sha384
- 50x0503ecdsa_secp384r1_sha384
- 60x0601rsa_pkcs1_sha512
- 70x0603ecdsa_secp521r1_sha512
- 80x0804rsa_pss_rsae_sha256
- 90x0805rsa_pss_rsae_sha384
- 100x0806rsa_pss_rsae_sha512
- 110x0807ed25519
- 120x0808ed448
JA3 variants
104 distinct JA3 hashes collapse into this one JA4.
| # | JA3 | JA3_raw | obs | share |
|---|---|---|---|---|
| 0 | 771,4865-4867-4866-491…-256-257,0 | 18 | 5.0% | |
| 1 | 771,4865-4867-4866-491…-256-257,0 | 16 | 4.5% | |
| 2 | 771,4865-4867-4866-491…-256-257,0 | 16 | 4.5% | |
| 3 | 771,4865-4867-4866-491…-256-257,0 | 15 | 4.2% | |
| 4 | 771,4865-4867-4866-491…-256-257,0 | 15 | 4.2% | |
| 5 | 771,4865-4867-4866-491…-256-257,0 | 14 | 3.9% | |
| 6 | 771,4865-4867-4866-491…-256-257,0 | 13 | 3.6% | |
| 7 | 771,4865-4867-4866-491…-256-257,0 | 13 | 3.6% | |
| 8 | 771,4865-4867-4866-491…-256-257,0 | 13 | 3.6% | |
| 9 | 771,4865-4867-4866-491…-256-257,0 | 13 | 3.6% | |
| 10 | 771,4865-4867-4866-491…-256-257,0 | 12 | 3.3% | |
| 11 | 771,4865-4867-4866-491…-256-257,0 | 12 | 3.3% | |
| 12 | 771,4865-4867-4866-491…-256-257,0 | 12 | 3.3% | |
| 13 | 771,4865-4867-4866-491…-256-257,0 | 12 | 3.3% | |
| 14 | 771,4865-4867-4866-491…-256-257,0 | 11 | 3.1% | |
| 15 | 771,4865-4867-4866-491…-256-257,0 | 11 | 3.1% | |
| 16 | 771,4865-4867-4866-491…-256-257,0 | 10 | 2.8% | |
| 17 | 771,4865-4867-4866-491…-256-257,0 | 10 | 2.8% | |
| 18 | 771,4865-4867-4866-491…-256-257,0 | 8 | 2.2% | |
| 19 | 771,4865-4867-4866-491…-256-257,0 | 8 | 2.2% |
JA3 hashes preserve wire order, so a permuting client mints a new one per connection; JA4 sorts the same set, which is why they share one JA4. Every hash here belongs to this fingerprint — there is no per-JA3 page. Showing the busiest 20.
Reach — domains contacted
- 74%
- 10%
- 4.7%
- 4.2%
- 2.2%
- 1.4%
- 1.4%
- 1.4%
- 0.3%
- 0.3%
Top 10 of 10. Share is the fraction of this fingerprint’s observations reaching each name.