- 🌟 Overview
- ✨ Key Features
- ❓ Why Use Guest Account Checker?
- 🏛️ System Architecture
- 🔄 How It Works (Authentication Pipeline)
- 📊 Status Distribution & Metrics
- 📋 Prerequisites
- 🚀 Installation Guide
- 💻 Usage & CLI Reference
- 🐍 Programmatic Python API
- 🖼️ Interactive Visual Interface (ASCII Art)
- 🚨 Status Code & Error Reference
- ⚡ Performance Tuning & Concurrency
- 🔧 Troubleshooting & FAQ
- 📝 Changelog
- 🤝 Contributing
- 📜 License & Credits
Free Fire Guest Account Checker is a high-performance, asynchronous Python tool engineered to perform bulk verification and audit of Garena Free Fire guest accounts.
Unlike traditional checkers that rely on browser emulation or heavy scraping frameworks, this tool communicates directly with Garena's official auth servers and game endpoint gateways using lightweight HTTPX requests and binary Protobuf packet decoding.
- 🔍 Validates Credentials: Checks whether guest UID and password credentials remain valid or revoked.
- 💀 Detects Ban & Alive Status: Distinguishes between active (
ALIVE), banned (BANNED), dead (DEAD), or server-unreachable (SERVER_DOWN) accounts. - 📊 Extracts In-Depth Stats: Pulls player nickname, account level, received likes, region, clan membership, signature, and account creation metadata.
- ⚡ Asynchronous Concurrency: Processes hundreds of accounts concurrently with configurable worker limits.
- 💾 Automated Reports: Generates detailed, structured JSON audit logs in
data/guest_report.json.
- Direct Protobuf Integration: Utilizes compiled
.protodefinitions (data_pb2,dev_generator_pb2,MajorLoginRes_pb2) for ultra-fast binary payload parsing. - Dynamic Endpoint Resolution: Automatically decrypts and extracts dynamic
GetLoginDataURLs returned from the MajorLogin authentication stage. - OAuth Resiliency: Determines account validity via OAuth token acquisition even when game login servers undergo maintenance (
503 Server Down). - Dual Source Support: Reads guest account credentials seamlessly from both JSON files (
guests.json,level_accounts.json) and SQLite database files (guests.db). - Termux Optimized: Fully compatible with Android Termux environments without requiring root privileges or heavy graphical dependencies.
- AES Crypto Suite: Features AES-CBC encryption with PKCS7 padding to construct official Free Fire login request packets.
- Zero Memory Bloat: Streamlined execution footprint utilizing PyCryptodome and HTTPX for minimal RAM usage under high concurrency.
- Pretty Terminal UI: Displays real-time colored ANSI progress reports, tabular summary view, and formatted JSON output.
| Feature / Aspect | Guest Account Checker | Traditional Selenium / Scraper | Manual In-Game Checking |
|---|---|---|---|
| Speed per Account | ⚡ ~200 ms | 🐢 10-15 seconds | ⏳ 1-2 minutes |
| Resource Usage | 🪶 < 30 MB RAM |
🐘 > 800 MB RAM |
📱 Device Dependent |
| Server Maintenance Detection | ✅ Supported (OAuth layer) | ❌ Fails silently | ❌ Blocked at login |
| Detailed Player Profile | ✅ Full Proto Extraction | 👁️ Visual inspect | |
| Headless / CLI Execution | ✅ Native | ❌ Not possible | |
| Termux Compatibility | ✅ 100% Native | ❌ Complex / Unstable | ❌ N/A |
The following diagram illustrates how the Guest Account Checker coordinates input readers, asynchronous workers, crypto modules, and output formats:
The account verification lifecycle comprises 3 sequential stages:
┌────────────────┐ ┌────────────────┐ ┌─────────────────────┐
│ Stage 1 │ │ Stage 2 │ │ Stage 3 │
│ OAuth Auth │ ────> │ MajorLogin │ ────> │ Player Personal │
│ (Account Check)│ │ (Gateway URL) │ │ Show (Protobuf) │
└────────────────┘ └────────────────┘ └─────────────────────┘
Below is an overview of how account statuses are categorized during check execution:
Before installing, ensure your environment meets the following requirements:
- Python: Version
3.9or higher - Package Manager:
pip(Python Package Index) - C Compiler Tools (for PyCryptodome on Termux / BSD systems)
- Network: Internet connection with HTTP/HTTPS access to Garena endpoints (
openfire.garena.com)
-
Clone the repository:
git clone https://github.com/ISMAILdz13/FreeFireGuestChecker.git cd guest-account-checker -
Install core dependencies:
pip install -r requirements.txt
-
Verify installation:
python3 guest_checker.py -h
Termux users can easily run the checker directly on mobile devices:
# Step 1: Update package database & install prerequisites
pkg update && pkg upgrade -y
pkg install python git clang libcrypt -y
# Step 2: Clone repository
git clone https://github.com/ISMAILdz13/FreeFireGuestChecker.git
cd guest-account-checker
# Step 3: Upgrade pip & install wheel build dependencies
pip install --upgrade pip setuptools wheel
# Step 4: Install required Python packages
pip install -r requirements.txt
# Step 5: Run sample check
python3 guest_checker.py💡 Termux Tip: If
pycryptodomeinstallation fails, ensureclangandlibcryptpackages are installed viapkg install clang libcrypt.
Isolated python environments prevent library conflicts:
# Create virtual environment
python3 -m venv venv
# Activate virtual environment
# On Linux / macOS:
source venv/bin/activate
# On Windows (PowerShell):
.�env\Scripts\Activate.ps1
# Install dependencies inside venv
pip install -r requirements.txtTo check accounts using default sample data (data/guests.json):
python3 guest_checker.py| Flag | Short | Type | Default | Description |
|---|---|---|---|---|
--json |
-j |
Path | data/guests.json |
Path to custom input JSON account file |
--concurrent |
-c |
Integer | 3 |
Maximum concurrent async workers (1-20) |
--help |
-h |
Flag | None | Display CLI help menu and exit |
-
Specify custom JSON file:
python3 guest_checker.py --json my_accounts.json
-
Increase concurrency to 10 parallel workers:
python3 guest_checker.py --json data/guests.json --concurrent 10
-
Check accounts from
level_accounts.json:python3 guest_checker.py --json data/level_accounts.example.json
The checker automatically detects and processes two standard input formats:
{
"5842511863": {
"password": "YOUR_GUEST_PASSWORD_HEX_1",
"name": "BOT5S8F7S"
},
"5842511867": {
"password": "YOUR_GUEST_PASSWORD_HEX_2",
"name": "BOTWGC5RT"
}
}[
{
"uid": "5842511863",
"password": "YOUR_GUEST_PASSWORD_HEX_1",
"name": "BOT5S8F7S"
},
{
"uid": "5842511867",
"password": "YOUR_GUEST_PASSWORD_HEX_2",
"name": "BOTWGC5RT"
}
]When processing completes, results are exported to data/guest_report.json:
{
"timestamp": "2026-07-29T18:18:00.123456",
"total_checked": 3,
"summary": {
"alive": 3,
"banned": 0,
"dead": 0,
"server_down": 0,
"error": 0
},
"accounts": [
{
"uid": "5842511863",
"nickname": "🔥GUEST_PRO🔥",
"status": "ALIVE",
"level": 42,
"likes": 1280,
"region": "INDONESIA",
"clan": "ALPHA_LEGION",
"gender": "Male",
"language": "EN",
"checked_at": "2026-07-29T18:18:01.002100"
}
]
}You can import and integrate the LevelAuth and GuestInfo modules into your own custom Python automation scripts:
import asyncio
import httpx
from src.level.auth import LevelAuth
from src.level.guest_info import GuestInfo
async def verify_single_guest(uid: str, password_hex: str):
async with httpx.AsyncClient(timeout=15.0) as http:
# Step 1: Authenticate & obtain OAuth token
auth = LevelAuth(http)
oauth_res = await auth.login_guest(uid, password_hex)
if not oauth_res.get("success"):
print(f"[-] OAuth Login Failed: {oauth_res.get('error')}")
return
print(f"[+] OAuth Token Acquired: {oauth_res['token'][:15]}...")
# Step 2: MajorLogin Gateway
major_res = await auth.major_login(uid, oauth_res["token"])
if not major_res.get("success"):
print(f"[!] MajorLogin Gateway maintenance: {major_res.get('error')}")
return
# Step 3: Fetch Full Player Profile via Protobuf
info_service = GuestInfo(http)
player = await info_service._get_player_personal_show(uid, major_res["token"])
if player:
print(f"🎉 Account Active! Name: {player['nickname']} | Lvl: {player['level']} | Likes: {player['likes']}")
# Run async function
asyncio.run(verify_single_guest("5842511863", "a1b2c3d4e5f60718"))Below is a representation of the colorful terminal interface rendered during check operations:
========================================
GUEST ACCOUNT CHECKER v1.0
========================================
Found 3 accounts:
5842511863 BOT5S8F7S (guests.json)
5842511867 BOTWGC5RT (guests.json)
5842511864 BOT91X0NN (guests.json)
Checking 3 accounts...
(OAuth works even if game servers are down)
[1/3] 5842511863 ALIVE lvl=42 likes=1280 nick=GUEST_PRO
[2/3] 5842511867 ALIVE lvl=15 likes=320 nick=FREE_BOT
[3/3] 5842511864 BANNED oauth=alive, account suspended
========================================
GUEST ACCOUNT REPORT
========================================
UID STATUS NICK LVL LIKES REGION CLAN
--------------- -------- ------------ ---- ----- ------ ------------
5842511863 ALIVE GUEST_PRO 42 1280 ID ALPHA_LEGION
5842511867 ALIVE FREE_BOT 15 320 BR None
5842511864 BANNED SUSPENDED_1 1 0 US None
----------------------------------------
Summary:
Alive: 2
Banned: 1
Server Down: 0
Total: 3
========================================
Report saved to: data/guest_report.json
Done!
| Status Code | Meaning | Cause | Action Required |
|---|---|---|---|
ALIVE |
Account active and healthy | Account logged in successfully and profile extracted | None (Valid Account) |
SERVER_DOWN |
OAuth valid, game server down | Garena login servers returning 503 Service Unavailable |
Retry later or check server status |
BANNED |
Account suspended | Garena security ban triggered on guest account | Quarantine or remove account |
DEAD |
Credentials rejected | Incorrect password hex or deleted guest profile | Re-extract or regenerate guest account |
ERROR |
Network/Timeout error | Connection timeout, proxy failure, or rate limiting | Reduce concurrency or rotate IP |
To achieve maximum check throughput when auditing thousands of accounts:
- Adjust Concurrency: Use
--concurrent 10or higher on stable broadband connections. - Batch Inputs: Divide large input files into chunks of 1,000 accounts.
- Avoid Over-Threading: Setting
--concurrenthigher than20may trigger temporary IP rate-limiting from Garena auth endpoints.
❓ Q1: ModuleNotFoundError: No module named 'Crypto'
This occurs when
pycryptodome is missing or superseded by legacy crypto.Solution:
pip uninstall crypto pycrypto
pip install --upgrade pycryptodome❓ Q2: MajorLogin returns 503 Server Down
This indicates Garena game login gateway maintenance or patch updates in your target region.
Note: OAuth verification still completes, confirming credential validity. Detailed stats (level/likes) will resume when Garena maintenance completes.
❓ Q3: How do I generate new guest accounts?
Guest accounts can be created using dynamic device generators. Look into the included protobuf definitions under
src/level/dev_generator_pb2.py.
❓ Q4: Can this tool run on low-end hardware or Android?
Yes! The memory footprint is under 30MB, making it ideal for low-spec VPS instances, Raspberry Pi, and Android phones running Termux.
- 🎉 Initial public release.
- ⚡ Full asynchronous check engine supporting HTTPX.
- 🔐 OAuth 2.0 & MajorLogin AES payload handler.
- 📜 Protobuf response parser for player stats (Level, Likes, Clan, Region).
- 📊 Formatted terminal ANSI output & JSON report export.
Contributions are welcome! Follow these steps to contribute:
- Fork the repository (
https://github.com/ISMAILdz13/FreeFireGuestChecker) - Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'feat: Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for details.
- Author: ISMAILdz13
- Protocol Research & Protobuf Definitions: Garena Free Fire OB54 Protocol Analysis.
- Libraries Used:
httpx,pycryptodome,protobuf,PyJWT.
⭐ Star this repository on GitHub if you found it useful!