CS2 Match Share Code Decoder
Decode a CSGO-xxxxx match share code into its match ID, outcome ID and token, and copy the command that downloads the demo.
Reviewed by Selim Ataballyev
Runs 100% in your browser - your data never leaves your device
What You Should Know
A CS2 match share code is three numbers written in base 57: a 64-bit match ID, a 64-bit outcome ID and a 16-bit token. Paste a code and this tool shows all three, plus the csgo_download_match command and the steam:// link that make the game fetch and play that match. The code holds no map, score or player names, and it is not a download URL. It also has no checksum, so a mistyped code is not rejected and simply points at a different match.
How to Use the Match Share Code Decoder
- Copy a share code from CS2 (Watch > Your Matches), from a stats site, or from a link a teammate sent.
- Paste it into the input. A full
steam://share link or a console line is fine: the tool finds the code inside it. - Read the three fields: match ID, outcome ID and token.
- Copy the console command and paste it into the CS2 console to fetch the demo, or copy the launch link to do the same from outside the game.
What the Decoder Actually Does
It strips CSGO and the dashes, reads the remaining 25 characters as a base-57 number with the least significant character first, and writes that number out as 18 bytes. Bytes 0-7 are the match ID, bytes 8-15 the outcome ID and bytes 16-17 the token, each little-endian. The layout matches the community reference implementation that CS Demo Manager uses, and the field names follow Valve's own protobuf messages, where the outcome ID also appears as reservationid.
The alphabet has 57 characters because five were removed for looking alike: 0, 1, capital I, lowercase l and lowercase g. That gives the tool its one cheap check. If any of those five shows up, the code was retyped by hand or mangled on the way, and the tool says which character it was.
What a Share Code Cannot Tell You
- Where the demo file is. The replay server is not in the code. The game gets the download location from Valve after sending the three numbers, which is why you need the game, or a tool that talks to Steam, to fetch the file.
- Whether the demo still exists. A code from last year decodes exactly as cleanly as one from last night.
- Anything about the match. No map, no score, no players. A site that shows those after you paste a code got them from Valve or from the demo, not from the code.
Building a Code From IDs
The Build a code tab goes the other way: enter a match ID, an outcome ID and a token, and it writes the share code. This is for when you already hold the three values, for example from a match list returned by Steam or from the .info file saved with a downloaded demo, and want the short form to paste somewhere. Once you have the demo open, the demo tick calculator turns a tick into a timestamp and a demo_gototick command.
Frequently Asked Questions
What is inside a CS2 match share code?
Three numbers and nothing else. The 25 characters after <code>CSGO-</code> are one base-57 number that unpacks to 18 bytes: a 64-bit match ID, a 64-bit outcome ID and a 16-bit token, each stored little-endian. Those are the same three fields Valve's <code>MatchListRequestFullGameInfo</code> message asks for, so the code is a compact way to carry that request around. The map, the score and the players are not in it.
How do I download a demo from a share code?
Open the CS2 console and run <code>csgo_download_match</code> followed by the code. The game's own description of that command is "Downloads a match via serial code and starts playback". The steam:// link this tool builds passes the same command as a launch argument, which is useful when the game is not running. Either way the demo has to still exist on Valve's side.
Why does my share code not download anything?
Usually because the demo is gone. CS Demo Manager's documentation puts it at one month: the download link for a match expires a month after the match ends. The code itself keeps decoding forever, because it is only three numbers, so a clean decode here says nothing about whether the file still exists. The other common cause is a typo, covered in the next answer.
Can this tool tell me if a share code is valid?
Only partly. A match code has no checksum, unlike a crosshair code. The tool can catch a character outside the alphabet (0, 1, capital I, lowercase l and lowercase g are never used) and a code whose value does not fit in 18 bytes, which rules out about 72% of random strings of the right shape. Anything that passes both is a well-formed code. Whether it names a real match is something only Valve's servers can answer.
Is a match share code the same thing as a crosshair code?
Same wrapper, different contents. Both are <code>CSGO-</code> plus five groups of five characters from the same 57-character alphabet, and both unpack to 18 bytes. A crosshair code spends its first byte on a checksum and the rest on <code>cl_crosshair</code> settings. A match code spends all 18 on the three IDs. This tool warns you when a pasted code passes the crosshair checksum, since a match code does that only by accident.
Why is the token smaller than the TV port I have?
Because the code has room for 16 bits of it. Valve's match info carries <code>tv_port</code> as a 32-bit field, and the share code keeps the low two bytes. The reference library's own example shows it: a port of 599906796 goes in, and 55788 comes back out of the same code. The Build a code tab does the same truncation and tells you when it happened.
Do FACEIT matches have share codes?
No. Share codes belong to Valve's matchmaking, and the game only offers them for your recent matches there. A FACEIT match is identified by its match room, and its demo is downloaded from that room, not through <code>csgo_download_match</code>.
Is my share code sent anywhere?
No. Decoding and building are arithmetic that runs in your browser, with no network request. Nothing here contacts Steam or Valve either, which is also why the tool cannot tell you who played or what the score was.
Learn more
Related tools
- CS2 Demo Tick Calculator
Convert a CS2 demo tick to a timestamp and back, and copy the demo_gototick command that jumps there.
- CS2 Demo Voice Extractor
Download each player's voice from a CS2 or FACEIT demo as a separate audio file, and see who talked when, round by round.
- CS2 Voice Comms Calculator
Hear specific players in a CS2 or FACEIT demo - upload it to auto-fill players and get the tv_listen_voice_indices commands.
- CS2 Crosshair Code Decoder
Decode a CSGO-xxxxx crosshair share code into cl_crosshair console commands.
- SteamID Converter
Convert between SteamID64, STEAM_0:Y:Z, SteamID3 [U:1:W], account ID and profile URL.
More Gaming Tools
CS2 Crosshair Code Decoder
Decode a CSGO-xxxxx crosshair share code into cl_crosshair console commands.
Open toolCS2 Demo Tick Calculator
Convert a CS2 demo tick to a timestamp and back, and copy the demo_gototick command that jumps there.
Open toolCS2 Demo Voice Extractor
Download each player's voice from a CS2 or FACEIT demo as a separate audio file, and see who talked when, round by round.
Open toolCS2 Sensitivity Converter
Convert mouse sensitivity between CS2, Valorant, Apex and more, with eDPI and cm/360.
Open toolCS2 Voice Comms Calculator
Hear specific players in a CS2 or FACEIT demo - upload it to auto-fill players and get the tv_listen_voice_indices commands.
Open toolSteamID Converter
Convert between SteamID64, STEAM_0:Y:Z, SteamID3 [U:1:W], account ID and profile URL.
Open tool