0x50 SID_AUTH_INFO

ProtocolBNCS
DirectionsClient → Server and Server → Client
Used bySTARSEXPD2DVD2XPWAR3W3XP

The client names its game, platform and version. The server replies with a session token and the version check to run.

Client → Server

The first message a client sends after the 0x01 protocol byte.

TypeFieldNotesConfidence
UINT32 Protocol ID 0. ⚠️ Single source
DWORD Platform code IX86 for Windows. Four-character codes appear reversed on the wire. Verified
DWORD Product code The game, such as STAR or W3XP. Verified
UINT32 Version byte Changes with each game patch. The server uses it to choose which version-check files apply. Verified
UINT32 Product language ⚠️ Single source
UINT32 Local IP address The client's address as it sees it, which may be a private address behind NAT. ⚠️ Single source
UINT32 Time zone bias Minutes from UTC. ⚠️ Single source
UINT32 Locale ID A Windows locale ID. ⚠️ Single source
UINT32 Language ID A Windows language ID. ⚠️ Single source
STRING Country abbreviation For example USA. ⚠️ Single source
STRING Country name For example United States. ⚠️ Single source

Server → Client

TypeFieldNotesConfidence
UINT32 Logon type Which password system the account logon uses. See the table below. Verified
UINT32 Server token A random value for this session. The client mixes it into its CD-key and password hashes, so they can't be replayed. Verified
UINT32 UDP value When this is not zero, the client runs its UDP connectivity test. Games keep Create and Join greyed out until that test succeeds. Verified
FILETIME Version-check file time The time of the version-check MPQ, so a client that keeps a cached copy knows whether to download it again. Verified
STRING Version-check file name The MPQ that holds the version-check code, such as ver-IX86-1.mpq. Verified
STRING Version-check formula The instructions the client runs over its game files to produce the EXE hash sent in SID_AUTH_CHECK. Verified
VOID Server signature (128 bytes) Warcraft III only. The client expects these bytes whatever the logon type, and rejects a reply without them. Verified

Logon types

ValueMeaningConfidence
0x00X-SHA-1 ("Broken SHA-1") password hashing. StarCraft and Diablo II. Verified
0x01NLS (New Logon System), version 1.⚠️ Single source
0x02NLS version 2. Warcraft III. Verified

Remarks

This message starts the modern Classic logon used by StarCraft 1.09 and later, Diablo II and Warcraft III. Older games (Diablo, StarCraft Shareware, Warcraft II) start with SID_STARTVERSIONING instead.

The UDP test. After this reply the server sends a UDP packet to the client's port 6112. Once that round trip completes, the client can create and join games. A server that sets the UDP value to zero, or never sends the UDP packet, leaves those buttons disabled.

Warcraft III's signature. Under NLS, Warcraft III checks the 128-byte signature against a key built into the game. Only Blizzard can produce a valid signature, which is why private Warcraft III servers need a modified client. This site does not host or link such modifications.

Appears in

Sources and credits

This page is written in our own words. BNETDocs is credited for its research; none of its text is copied. See Credits.

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