Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🎮 Steam Checker

A command-line tool that checks Steam accounts against the live Steam API. It tells you the country, Steam level, game count, VAC ban status, trade ban status, and whether the account is limited — all without any browser automation.


📦 Requirements

  • 🐍 Python 3.8+
  • rich library (pip install rich)
  • 🌐 Proxy optional — You can run direct mode fine. A proxy is only useful if you're mass-checking and start hitting per-IP rate limits.

⚙️ Setup

Drop your combo list in the same folder as the script. One account per line, username:password format:

john_doe:hunter2
jane123:p@ssw0rd99

Note: unlike Disney+, Steam uses usernames not emails. Make sure your combo list uses Steam usernames.


▶️ Running it

python3 steam_chk.py

You'll get a menu:

  1. Check combo file
  2. Check single account
  3. Settings
  0. Exit

🔧 Settings

Go to Settings first and set your proxy. When you pick residential mode it will immediately ask for the URL.

Proxy formats both work:

host:port:user:pass
http://user:pass@host:port

Example with dummy details:

  Choice > 3
  Mode (residential/list/direct) > residential
  Proxy URL > proxy.example.com:8080:myuser:mypass123
  Saved: http://myuser:***@proxy.example.com:8080

Other settings you can change:

  • 👷 Workers — how many accounts check in parallel (default 5)
  • ⏱️ Timeout — seconds before a request gives up (default 20)
  • Delay — gap between submitting each account (default 1.0s)

🔐 How the auth works

Steam's login API uses RSA-encrypted passwords — the script handles this entirely from scratch with zero extra dependencies:

  1. Fetches Steam's RSA public key for the username
  2. Encrypts the password locally using PKCS#1 v1.5
  3. Sends the encrypted credentials to Steam's auth API
  4. Polls for the access token
  5. Uses the token to pull games, level, bans, and country

If an account has Steam Guard (email or mobile 2FA), the script detects it at step 3 — the credentials are confirmed valid but the account info can't be pulled without the guard code. These are saved as hits marked Guard = Email or Guard = Mobile.


📋 Output

While checking you'll see live results as they come in. When the run finishes it prints a two-section summary:

------------------- No Value --------------------
1. broke_gamer:hunter2 | Guard = None | Country = US | Level = 0 | Games = 0 | VACBans = 0 | Tradeban = false | Limited = true

------------------ Has Value --------------------
1. john_doe:p@ssw0rd99 | Guard = None | Country = GB | Level = 42 | Games = 183 | VACBans = 0 | Tradeban = false | Limited = false

💾 The same format gets written to hits.txt in the script folder.

What each field means

Field Description
Guard Steam Guard status — None, Email, or Mobile
Country Country code from Steam profile
Level Steam account level
Games Number of owned games (paid only, free games excluded)
VACBans Number of VAC bans on record
Tradeban Whether trade is restricted
Limited true if the account has never made a purchase (level 0, 0 games)

📝 Notes

  • BAD — wrong password or account doesn't exist
  • ⚠️ ERR — network issue, proxy died, timeout, or rate-limited
  • 🛡️ Guard hits (yellow) — valid credentials, but Steam Guard is blocking full access
  • 🎮 Has Value (green) — account has paid games in the library
  • 🐢 If you're seeing a lot of ERR/rate-limit, bump the delay up to 2s and drop workers to 3
  • 🔒 Sticky-session residential proxies work best — the full auth flow (RSA → begin → poll → info) needs to come from the same IP

⚠️ For educational purposes only.

About

A command-line tool that checks Steam accounts against the live Steam API.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages