0x51 SID_AUTH_CHECK

ProtocolBNCS
DirectionsClient → Server and Server → Client
Used bySTARSEXPD2DVD2XPWAR3W3XP

The client proves its game version and CD keys. The server accepts or rejects them.

Client → Server

After the server's SID_AUTH_INFO, once the client has run the version check.

TypeFieldNotesConfidence
UINT32 Client token A random value chosen by the client for this session. Verified
UINT32 EXE version The game executable's version. Verified
UINT32 EXE hash The result of running the version-check formula over the game files. Verified
UINT32 Number of CD keys 1 for most games. 2 for expansions that also need the original game's key. Verified
UINT32 Spawn 1 for a spawned (limited) installation, otherwise 0. Verified
For each CD key
UINT32 Key length Number of characters in the key. Verified
UINT32 Product value Decoded from the key. Verified
UINT32 Public value Decoded from the key. Verified
UINT32 Unused 0. Verified
VOID Key hash (20 bytes) Mixed with both tokens, so it is different every session. It cannot identify a key; use the product and public values for that. Verified
STRING EXE information The executable's name, date and size. Verified
STRING Key owner The name entered when the game was installed. Verified

Server → Client

TypeFieldNotesConfidence
UINT32 Result See the table below. Verified
STRING Additional information Depends on the result: a patch file name for an old version, or who is using a key. ⚠️ Single source

Results

ValueMeaningConfidence
0x000Passed. The client continues to the account logon. Verified
0x100Game version too old. The additional information names a patch MPQ, and the client shows an upgrade message. Verified
0x101Game version not valid.⚠️ Single source
0x102Game version too new.⚠️ Single source
0x200CD key not valid.⚠️ Single source
0x201CD key already in use. The additional information names who is using it.⚠️ Single source
0x202CD key banned.⚠️ Single source
0x203CD key is for a different game.⚠️ Single source
0x210 – 0x213The same four key problems (not valid, in use, banned, wrong game), for the expansion's key.⚠️ Single source

Remarks

Where the CD-key block goes. The per-key block comes before the EXE information string. This order was confirmed from a real client's single-key logon. The two-key layout used by expansions follows the same pattern but hasn't been captured yet.

Recognising a key. Because the key hash changes every session, a server that wants to allow only one session per CD key has to compare the product and public values instead.

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