x25519
x25519 is the Curve25519 key exchange, the fast default elliptic curve of modern TLS. Every measured client offers it.
What it is
x25519 (group 29) is elliptic curve Diffie-Hellman over Curve25519, described in RFC 7748 and added to TLS by RFC 8422. Both sides generate a random 32-byte key pair, exchange the public halves, and compute the same shared secret.
Curve25519 was designed by Daniel J. Bernstein to be fast and hard to implement wrongly: it avoids several classes of mistakes that affect the NIST P-curves, such as invalid point attacks, and runs in constant time with straightforward code.
It has been the preferred TLS key exchange of browsers and most libraries for years, and nearly every server supports it. With the rise of post-quantum hybrids it often moves to second place, behind X25519MLKEM768, which uses X25519 internally anyway. Clients usually send a key share for both.
Who sends it
Measured on 2026-10-25 against our own test server: sent by 12 of 12 clients. Position counts from 1 and ignores GREASE values.
Why it matters for fingerprinting
Every measured client offers x25519. Chrome, curl_cffi, Python requests, httpx, Go, Node.js and Guzzle put it second, after X25519MLKEM768. curl and curl-impersonate put it first, because they do not offer the hybrid group at all. That ordering shows up in the groups field of JA3.
Check whether your client sends it
Open the test from your browser, or call it from your script, and look for x25519 in the TLS details.
Run the TLS fingerprint test