Battle.net protocol documentation

How Battle.net works on the wire: how game clients connect, what each message contains, and the order messages are sent in each game. It covers the three generations of Battle.net:

Classic Battle.net (1.0) Diablo, StarCraft, Warcraft II, Diablo II and Warcraft III: BNCS, BNFTP, realms, game joining, matchmaking, version checking, and the historical chat gateway.
Battle.net 2.0 The modern-era service. Currently covers StarCraft II: signing in through Front, then its native Sunken services.
Battle.net App (coming) The desktop app framework: sign-in, the local agent, and how games launch through it.

New here? Read How to read these pages.

About this site

These pages are written from scratch and checked against real clients wherever possible. Every fact is marked with how sure we are of it. Research from BNETDocs and other projects is credited to the people who did it. See Credits.

This site documents protocols for education and preservation. It never hosts game files, version-check files, CD keys or client modifications. Battle.net, Diablo, StarCraft and Warcraft are trademarks or registered trademarks of Blizzard Entertainment, Inc. This site is not affiliated with, endorsed by or sponsored by Blizzard.

Helping out

Every page has an Edit on GitHub link. Your change arrives as a pull request and appears here once it's approved.

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