STEAM_I:J:K
where:
I = Universe
J = Lowest bit of Account ID (0 or 1)
K = Highest 31 bits of Account ID
[C:U:A:I]
where:
C = Character representation of Account Type
U = Universe
A = Account ID
I = Instance
A bit more complicated, but you'll see this on the Steam Community and in the Steam Web APIs. This value is generated as a function of the 4 components described above using bit shifting and bit arithmetic. The function is:
((Universe << 56) | (Account Type << 52) | (Instance << 32) | Account ID)
64-bit Steam ID Components
Given 64-bit Steam ID: 76561197960361544 --- Binary = 100010000000000000000000100000000000000010111011001001000 ^^ ^^ ^^ ^ ||__||__________________||______________________________| U AT INSTANCE 32-BIT ACCOUNT ID --- Account ID = Low 32 bits of 64-bit Steam ID Account ID = 76561197960361544 & ((1 << 32) - 1) Account ID = 95816 --- Instance = Next 20 bits of 64-bit Steam ID Instance = (76561197960361544 >> 32) & ((1 << 20) - 1) Instance = 1 --- Account Type = Next 4 bits of 64-bit Steam ID Account Type = (76561197960361544 >> 52) & ((1 << 4) - 1) Account Type = 1 --- Universe = Remaining (max of 8) bits of 64-bit Steam ID Universe = (76561197960361544 >> 56) & ((1 << 8) - 1) Universe = 1
64-bit Steam ID Legacy Text
Using the results of the 64-bit Steam ID to Components conversion, we can obtain the Legacy Text.Legacy Text = STEAM_I:J:K = STEAM_1:0:47908 I = Universe = 1 J = Lowest bit of Account ID = Account ID & 1 = 0 K = Highest 31 bits of Account ID = (Account ID >> 1) & ((1 << 31) - 1) = 47908
64-bit Steam ID Modern Text
Using the results of the 64-bit Steam ID to Components conversion, we can obtain the Modern Text.Legacy Text = [C:U:A:I] = [U:1:95816:1] C = Account Type character (use lookup table on this page) U = Universe A = Account ID I = Instance
Components 64-bit Steam ID
Given Components: Universe = 1 Account Type = 1 Instance = 1 Account ID = 95816 --- 64-bit Steam ID = ((Universe << 56) | (Account Type << 52) | (Instance << 32) | Account ID) 64-bit Steam ID = ((1 << 56) | (1 << 52) | (1 << 32) | 95816) 64-bit Steam ID = 76561197960361544
32-bit Account ID Estimated 64-bit Steam ID
Dota 2 (and probably other games) only identify a Steam account by its 32-bit Account ID. This is often incorrectly called the user's "32-bit Steam ID". There is actually no such thing as a 32-bit representation of a Steam ID. In fact, it's only 32 bits of the full 64-bit Steam ID!
So the only type of "conversion" that can occur between the 32-bit Account ID and the 64-bit Steam ID is an estimation by assuming values for the other missing components.
Note that this will not work if the Steam account has components other than U = 1, AT = 1, and I = 1.
Given 32-bit Account ID: 95816 Assume Universe = 1 (or 00000001 in binary) Assume Account Type = 1 (or 0001 in binary) Assume Instance = 1 or (or 00000000000000000001 in binary) --- Bitwise OR against the assumed binary values from above. 64-bit Steam ID = Account ID | 00000001000100000000000000000001 64-bit Steam ID = 76561197960361544
ID | Name |
---|---|
0 | Invalid |
1 | Public |
2 | Beta |
3 | Internal |
4 | Dev |
ID | Character | Name |
---|---|---|
0 | I | Invalid |
1 | U | Individual |
3 | M | Multiseat |
3 | G | GameServer |
4 | A | AnonGameServer |
5 | P | Pending |
6 | C | ContentServer |
7 | g | Clan |
8 | T | Chat |
8 | c | Chat (Clan) |
8 | L | Chat (Lobby) |
9 | P2P SuperSeeder | |
10 | a | AnonUser |