t12d1511h2_8daaf6152771_09c57bba7bb8
Firefox — inferred from the User-Agent on its requests.
What this fingerprint encodes
t12d1511h2
handshake shape, human-readable
8daaf6152771
truncated hash of the cipher list
09c57bba7bb8
truncated hash of extensions + signature algorithms
- Transport
- TCP
- TLS version
- TLS 1.2
- Server name
- server name sent
- Cipher suites offered
- 15
- Extensions offered
- 11
- ALPN
- h2
Same tool, different options
These 4 other fingerprints share this one's JA4_c — the extension and signature-algorithm hash. A client that keeps its extension set constant while varying its cipher list produces exactly this pattern, which is what a scanner iterating cipher suites looks like. A JA3 cannot show you this: its single MD5 collapses ciphers and extensions together, so every variation looks like an unrelated client.
- t12d1611h2_46e7e9700bed_09c57bba7bb8
- t12d1611h2_86a278354501_09c57bba7bb8
- t12d1711ht_5b57614c22b0_09c57bba7bb8
- t12d1811h2_e8a523a41297_09c57bba7bb8
The hello it was computed from
Recovered because the proxy now stores the pre-hash JA3 string alongside the digest. Every number below came out of this client's ClientHello; anything we cannot name in the IANA registry is shown as its raw value rather than guessed at.
- Version
- TLS 1.2
Cipher suites 15
-
TLS_AES_128_GCM_SHA256 -
TLS_CHACHA20_POLY1305_SHA256 -
TLS_AES_256_GCM_SHA384 -
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 -
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 -
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 -
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 -
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 -
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 -
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA -
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA -
TLS_RSA_WITH_AES_128_GCM_SHA256 -
TLS_RSA_WITH_AES_256_GCM_SHA384 -
TLS_RSA_WITH_AES_128_CBC_SHA -
TLS_RSA_WITH_AES_256_CBC_SHA
Extensions 11
-
server_name -
extended_master_secret -
renegotiation_info -
supported_groups -
ec_point_formats -
session_ticket -
application_layer_protocol_negotiation -
status_request -
34 (0x0022) -
signed_certificate_timestamp -
key_share
Named groups 5
-
SecP256r1MLKEM768 -
x25519 -
secp256r1 -
secp384r1 -
secp521r1
Point formats 1
-
uncompressed
Raw JA3 string
771,4865-4867-4866-49195-49199-52393-52392-49196-49200-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-34-18-51,4588-29-23-24-25,0
Seen in live traffic
- Connections
- 394
- First seen
- 2026-08-23 11:40 UTC
- Last seen
- 2026-10-06 16:20 UTC
- Transport
- TCP
- JA3 hashes absorbed
- 4
The same client, 4 different JA3s
This one JA4 covers 4 distinct JA3 hashes. A JA3 hashes the cipher and extension lists in the order they arrived, so a client that shuffles them — which Chrome and its derivatives do on purpose — produces a new JA3 almost every connection and fragments into what looks like 4 unrelated clients. JA4 sorts those lists before hashing, which is why all of it lands here instead.
ca159e57d8ffb379a7d4548205fef76fe02c0f4e2781534ad53eed6393e007b2518c1854ccc5e24f40f10ce5417d83f4743918cb24139f810db9122dff27eb99
User-Agents seen on this fingerprint
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:156.0) Gecko/20100101 Firefox/156.0317×Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:154.0) Gecko/20100101 Firefox/154.0163×Mozilla/5.0 (X11; Linux x86_64; rv:154.0) Gecko/20100101 Firefox/154.0152×Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:154.0) Gecko/20100101 Firefox/154.0127×Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:156.0) Gecko/20100101 Firefox/156.0112×Mozilla/5.0 (Android 16; Mobile; rv:157.0) Gecko/157.0 Firefox/157.027×Mozilla/5.0 (Android 14; Mobile; rv:156.0) Gecko/156.0 Firefox/156.017×Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:155.0) Gecko/20100101 Firefox/155.09×Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:154.0) Gecko/20100101 Firefox/154.08×
A User-Agent is self-declared and trivially forged, so this names an observation rather than proving an identity. It is still the strongest signal available: the fingerprint comes off the TLS handshake and the User-Agent off the request that followed, and one client build keeping a stable JA4 while changing what it calls itself is a finding in its own right.
This entry is an observation, not a policy decision. It is here because the edge saw it, not because anyone reviewed it, and it blocks nothing on its own. Only the curated tier drives classification and banning.