DuoXPy Dex v3 is an asynchronous command-line and notebook-compatible engine for generating, email-verifying, and XP-priming Duolingo accounts at scale. Re-architected for v3, it features a 21-provider disposable email mesh (no API keys required), automatic proxy pool rotation from proxies.txt, crash-safe write-ahead logging, and optional MongoDB synchronization.
- Zero-Key 21-Provider TempMail Mesh: Rotates across 21 built-in disposable email providers and 57+ domains in memory with automatic health probing, latency tracking, and instant failover.
- High-Concurrency Async Pipeline: Parallelizes account creation, profile claiming, XP priming, and inbox verification using
asyncioandaiohttp(with automaticuvloopandorjsonacceleration). - Dynamic Proxy Pool (
proxies.txt): SupportsHTTP,HTTPS,SOCKS4, andSOCKS5proxies with non-destructive cooldowns and four routing strategies (dissipate,always,reactive,off). - Crash-Safe Storage & Auto-Recovery: Streams verified accounts to a live write-ahead journal (
accounts.wal.jsonl) and performs atomic snapshots toaccounts.json, automatically recovering interrupted runs on startup. - MongoDB Cloud Sync (Optional): Built-in bidirectional deduplicated sync, remote schema compaction, and live batch uploading via
MONGO_URI. - Interactive TUI & Headless CLI: Full Rich terminal dashboard with live worker telemetry, plus headless CLI flags and Google Colab / Jupyter Notebook compatibility.
git clone https://github.com/LibreDuo/DuoXPy-Dex.git
cd DuoXPy-Dex
pip install -r requirements.txtpython main.py# Generate 25 verified accounts using 15 concurrent workers
python main.py --headless -c 25 -t 15
# Generate 100 accounts with proxy load dissipation and fast XP priming
python main.py --headless -c 100 -t 30 -x proxies.txt --proxy-mode dissipate --prime fast| Flag | Description | Default |
|---|---|---|
-c, --count |
Number of accounts to generate in headless mode | 5 |
-t, --threads |
Concurrent asynchronous worker tasks | 10 |
-p, --provider |
Preferred TempMail provider (auto or provider name) |
auto |
--prime |
XP priming mode (fast, full, none) |
fast |
-o, --output |
Output JSON file path | accounts.json |
-x, --proxies |
Path to proxy list file | proxies.txt |
--proxy-mode |
Proxy routing strategy (dissipate, always, reactive, off) |
dissipate |
-m, --mongo-uri |
MongoDB connection URI (overrides .env) |
"" |
--sync-mongo |
Automatically sync generated accounts to MongoDB | False |
--allow-unverified |
Save accounts even if email verification times out | False |
--probe |
Probe all 21 TempMail providers, display health table, and exit | False |
--list-providers |
List all integrated TempMail providers and domain counts | False |
--compact |
Normalize and compact local accounts.json & MongoDB records |
False |
--headless |
Run batch generation directly without launching the interactive menu | False |
Select [3] Settings from the main menu to customize behavior interactively. All changes are automatically saved to settings.json and persist across both interactive and --headless runs (unless overridden by a CLI flag):
| Option | Setting | How to Choose / What It Does |
|---|---|---|
[01] |
Default Accounts per Batch | Sets the default target count pre-filled when starting a generator run (default: 5). |
[02] |
Concurrent Worker Threads | Number of parallel async workers (1–1000, default: 10). Use 10–25 on a direct connection, or 30–100+ with a loaded proxy pool. |
[03] |
XP Priming Mode | • fast (Recommended): 1 story burst + 1 practice session (~450–500 XP) with near-zero speed penalty.• full: 3 story bursts + 1 practice session (~1,300+ XP) for high-XP starter accounts.• none: Skips XP priming completely for maximum raw generation speed. |
[04] |
Save Verified Accounts Only | • ENABLED (Default): Only saves email-verified accounts; automatically retries on another provider if an inbox times out.• DISABLED: Saves accounts even if the verification email does not arrive in time. |
[05] |
Preferred TempMail Provider | Keep on auto (Recommended) to round-robin across all healthy providers in the 21-provider mesh, or select a specific provider (e.g., tempmail.plus, catchmail.io) to prioritize it first. |
[06] |
Auto-Sync New Accounts to MongoDB | Toggles automatic background uploading of newly generated accounts to your MongoDB collection during batch runs. |
[07] |
Compact & Strip Extra Fields | Deduplicates and normalizes all local accounts.json and remote MongoDB records into the clean 6-field schema. |
[08] |
Configure / Test MongoDB URI | Enter a MONGO_URI to save it directly to .env and test database connectivity live, or press Enter to re-test your existing .env. |
[09] |
Proxy Routing Mode | • dissipate (Default): Balances load 50/50 between direct and proxied requests, switching any rate-limited host to 100% proxy routing.• always: Routes 100% of Duolingo and TempMail traffic through proxies.txt.• reactive: Runs on direct connection at full speed and only switches to proxies when a 429/403 rate limit is hit.• off: Forces direct connection without removing proxies.txt. |
[10] |
Configure / Reload Proxy List File | Enter a custom proxy file path or press Enter to hot-reload proxies.txt into memory and reset proxy cooldowns. |
[11] |
Back to Main Menu | Returns to the main menu. |
To enable proxy routing, place a proxies.txt file in the project directory (or pass a custom path via -x or Settings [10]). Failed or rate-limited proxies are never deleted—they are placed on a short cooldown and recycled automatically. Supported formats (one per line):
http://user:pass@host:port
socks5://user:pass@host:port
host:port:user:pass
user:pass:host:port
host:port
To enable MongoDB synchronization, create a .env file in the root directory (or configure it directly from Settings [08]):
MONGO_URI=mongodb+srv://username:[email protected]/Generated accounts are normalized to a compact 6-field JSON schema:
[
{
"id": 1492837412,
"username": "k9x4m2p8va",
"email": "[email protected]",
"password": "Vq8!mK2#xR9@zL",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"verified": true
}
]Licensed under the DuoXPy License. Commercial redistribution is strictly prohibited.
