ESO Login Server
Between 2016 and 2023 I reverse-engineered the login-server protocol the Elder Scrolls Online PC/Mac client uses to authenticate, and wrote several implementations.
ℹ️ Note
This is NOT a game server, this is a login server – the thing that points the client to the game server. I’m releasing this in the event someone finds it useful.
The code is unavailable, but in August 2026, I documented their behaviour, where they converge/diverge, and combined it all into a specification. It covers the transport and envelope, result and status codes, the login flow end to end, every endpoint, golden test vectors, and the raw request/response captures – around 77 pages.
It is deliberately a partial specification: the login endpoints are gone from the live service (404 since ~2023), so this documents the protocol as it was, not as it is.
Download the specification (PDF)
What’s inside
- HTTP transport and content negotiation; XML and JSON envelopes
- Result and status code tables
- The login flow – auth, 202 + session UUID, progress polling, reservation, OTP challenge for untrusted devices
- Endpoint reference for the 2021-2023-era service
- Golden test vectors pinning request/response structure
- The full captured transcripts, sanitised
- An example HTTP proxy you can actually run (source included)
The proxy
To capture the traffic in the first place I pointed the client at a local HTTP proxy that forwards to the real servers. The client-to-proxy leg is plain HTTP, so you can sniff the whole exchange in Wireshark – the upstream leg is HTTPS, so there’d be nothing to see without it.
It strips the /us, /eu and /custsupt path prefixes, and substitutes a real client User-Agent when the incoming one doesn’t look like eso/... – the live service rejects anything else (HTTP 409, Client version not supported). The standalone source, so you can copy/paste:
| |
Since the login endpoints have since been retired, this is about as close to a written record of the 2016-2023-era protocol as you’re likely to find anywhere.