Wednesday 12 February 2020

Scanning all possible Steam IDs, and what we have found

Posted By: Wormax 2020 - February 12, 2020
You might have seen news that there are over 1 billion registered Steam accounts. If you go solely by the account id, then sure you can assume that. However, the reality is that not all account ids are actually registered.
A prime example of this is the range of account ids spanning from ~500 million to ~830 million, where there's only around 2,5 million accounts, from the 330 million possible. You can view the full data of accounts grouped by 10 million here.

What are the Steam ids anyway?

A full 64-bit SteamID looks like this: 76561197960287930 and it contains the following bits of information:
  • Account id (32 bits)
  • Universe (public, dev, beta, etc.)
  • Type (individual, group, game server, chat room, etc)
  • Instance
When you see a steamid represented like this: [U:1:22202] it is simply the same 64-bit steamid being represented in a different way:
  • U indicates the individual account type.
  • 1 is the public universe.
  • 22202 is the account id itself.
For all intents and purposes when dealing with user profiles, you can ignore all the bits except for the 32-bit account id which is incremental and starts from 1. If you've played Dota 2, you can see them being used there instead of the full steamid.
If you're interested in seeing how other types are represented, or how to deal with SteamIDs in general, take a look at our PHP library.

Scanning

Using the ISteamUser/GetPlayerSummaries API, we can check up to 100 profiles at once. Currently, latest registered account id is around 1,062,000,000, if we divide that by 100, we get a much more manageable number at 11 million. This greatly reduces the amount of API requests we have to do.
A few observations from scanning: deleted accounts return an empty {} object in the response, instead of being omitted entirely, so it is possible to detect whether a particular steamid was deleted. Secondly, lastlogoff field indicating when you last logged off from Steam is visible even if your profile privacy is set to private.

Stats

With that out of the way, let's take a look at some of the numbers we could get from scanning all the currently created accounts.
Keep in mind we're talking about full profile privacy setting, and not the games list privacy setting which was changed to be private by default in 2018.
  • [U:1:75927348] has a creation date of 2003-09-02 22:03:00 which is 10 days before the first actual Steam account. It was actually registed on 2011-01-01 according to the owner.
  • [U:1:31186727] has a creation date of 2027-09-01 00:34:35. Last log off is 2007-08-17 13:20:09.
  • [U:1:64438391] has a creation date of 2026-07-07 13:32:48. Last log off is 2010-05-14 09:20:30.
EDIT 2020-02-05: Looks like they fixed these 3 accounts and they have correct creation dates. Valve has also hidden the last logoff date from API responses for non-friends.
If we take an educated guess, we can attribute the great increase in created accounts in the beginning of 2019 to CS:GO going free to play in December 2018.

Closing notes

From our observation, account ids seem to be created/batched/chunked in groups of 100. With the 500-830 million range, there's only 1 account per group of 100 accounts. Perhaps Valve's code to generate account ids had a bug, and it only actually created 1 account for each 100 ids, we're not sure.
We have noticed this odd discrepancy back when we scanned all profiles for VAC and game bans, and this scan just reaffirmed our observation.

About Wormax 2020

Organic Theme is officially developed by Templatezy Team. We published High quality Blogger Templates with Awesome Design for blogspot lovers.The very first Blogger Templates Company where you will find Responsive Design Templates.

0 nhận xét:

Post a Comment

Copyright © Welcome to Steam

Designed by