StarCraft II: signing in

S2

From opening Front to an encrypted Sunken connection: sign-in, choosing the game account, and handing the session over.

#ClientServerWhat happensConfidence
Front: connect
1 TCP 1119 → TLS → WebSocket v1.rpc.battle.net One WebSocket message per RPC message. Verified
2 ConnectionService / 1 ConnectRequest. service_id 0, token 0, asking for bindless RPC. ⚠️ Single source
Front: sign in
3 AuthenticationServer / 1 LogonRequest: program S2, platform, locale, SDK identity. Includes the reusable credential if the client has one. ⚠️ Single source
4 ChallengeNotify / 3 Only when needed: sends the client to Blizzard's web sign-in. No response. ⚠️ Single source
5 Web sign-in HTTPS Blizzard's own sign-in page handles passwords, multi-factor authentication and CAPTCHA. It isn't part of the RPC protocol. ⚠️ Single source
6 AuthenticationServer / 7 VerifyWebCredentialsRequest with the short-lived credential from the web sign-in. ⚠️ Single source
7 AuthenticationClient / 5 LogonResult: account, StarCraft II game accounts, region and a 64-byte session key. ⚠️ Single source
8 AuthenticationServer / 8 Asks for a new reusable credential for next time. ⚠️ Single source
Front: request the handoff
9 GameUtilities / 1 ClientRequest with the first StarCraft II game account and the session key. ⚠️ Single source
10 GameUtilities / 1 response Sunken's address, a 64-byte session seed, and a bit-packed LogonResponse3. ⚠️ Single source
Sunken: take over the session
11 New TCP connection to Sunken TCP Opened before Front is closed. ⚠️ Single source
12 WebSocket close Front is closed directly with a WebSocket close frame. ⚠️ Single source
13 Auth / 1 ResumeRequest Sent in plain text once Front has closed. Its proof shows the client holds the session seed, binding the new connection to the account. ⚠️ Single source
14 Resume proof The client must check the server's proof before going on. ⚠️ Single source
15 Conn / 5 EnableEncryption Turns on RC4, with separate keys for each direction. ⚠️ Single source
Sunken: encrypted
16 Service records Chat, matchmaking, profiles and every other StarCraft II service, as bit-packed records. ⚠️ Single source

Remarks

Blizzard calls handing the session from Front to Sunken Resume. Front proves who the player is; Sunken then only needs proof that the new connection holds the session seed Front issued.

See Front RPC, Front messages and Sunken records for the formats used in each step.

Sources and credits

Last edited September 16, 2026 by John Leighow.
Edit on GitHub | Page history