Automated Steam trading bot that exchanges items between two accounts to increase trade count statistics.
- Automated Trading: Continuous item exchange between two Steam accounts
- High Performance: 500+ trades per hour (depending on game and network conditions)
- Security First: Built-in safety checks and validation for all trades
- Environment Configuration: Secure credential management with .env files
- Error Recovery: Intelligent retry system with exponential backoff
- Real-time Monitoring: Detailed logging and status reporting
- Keep-Alive Server: HTTP endpoint for deployment on cloud platforms
- Node.js 16+ installed on your system
- Two Steam accounts with Mobile Authenticator enabled
- Tradeable items in both accounts for the selected game
- Steam Desktop Authenticator (SDA) for obtaining authentication secrets
-
Clone the repository
git clone https://github.com/gabrielbacich/AutoTrades cd AutoTrades -
Install dependencies
npm install
-
Configure environment
cp env.example .env
-
Edit
.envfile with your credentials (see Configuration section) -
Test configuration
npm run check
-
Start the bot
npm start
Go to env.example and fill in your credentials:
# Account 1 Configuration
ACCOUNT1_USERNAME=your_steam_username_1
ACCOUNT1_PASSWORD=your_steam_password_1
ACCOUNT1_SHARED_SECRET=your_shared_secret_1=
ACCOUNT1_IDENTITY_SECRET=your_identity_secret_1=
ACCOUNT1_TRADELINK=https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=XXXXX
# Account 2 Configuration
ACCOUNT2_USERNAME=your_steam_username_2
ACCOUNT2_PASSWORD=your_steam_password_2
ACCOUNT2_SHARED_SECRET=your_shared_secret_2=
ACCOUNT2_IDENTITY_SECRET=your_identity_secret_2=
ACCOUNT2_TRADELINK=https://steamcommunity.com/tradeoffer/new/?partner=XXXXX&token=XXXXX
# Bot Settings
GAME_CODE=440
MAX_RETRIES=5
PORT=8080- Download Steam Desktop Authenticator (SDA)
- Login with your Steam account
- Extract
shared_secretandidentity_secretfrom the SDA configuration files
- Go to Steam → Inventory → Trade Offers → "Who can send me trade offers?"
- Copy the complete trade URL
| Game | AppID |
|---|---|
| Team Fortress 2 | 440 |
| Unturned | 304930 |
| Rust | 252490 |
| DOTA 2 | 570 |
- Authentication: Both accounts login using Mobile Authenticator codes
- Web Session: Establishes trading sessions with Steam servers
- Inventory Scan: Locates tradeable items in configured game
- Trade Initiation: Account 1 sends item to Account 2 with security code
- Trade Acceptance: Account 2 validates security and accepts trade
- Continuous Loop: Process repeats with items switching between accounts
| Command | Description |
|---|---|
npm start |
Start the trading bot |
npm run check |
Validate configuration |
npm run setup |
Create .env from template |
npm test |
Run the bot (alias for start) |
- Environment Variables: Credentials never stored in code
- Trade Validation: Security codes prevent unauthorized trades
- Mobile Confirmation: Automatic mobile authenticator acceptance
- Error Handling: Comprehensive error catching and recovery
- Rate Limiting: Built-in delays prevent Steam API abuse
npm startLogin Errors
- Verify username/password are correct
- Ensure Mobile Authenticator is active on both accounts
- Wait 1 minute if Steam Guard errors appear
Empty Inventory
- Confirm you have tradeable items in the specified game
- Verify
GAME_CODEmatches your game's AppID - Check that items are not trade-locked
Confirmation Errors
- Validate
identity_secretis correct and current - Ensure Mobile Authenticator hasn't been reset
- Regenerate secrets using SDA if needed
Trade Failures
- One account may have trade restrictions
- Check Steam privacy settings (inventory must be public)
- Verify both accounts are not trade-banned
Set environment variable for detailed logging:
DEBUG=AutoTrades npm start- Yes. Steam/Valve allows the use of trading bots, as long as they follow the rules and are not used for fraudulent activities.
- Trivia: Valve even maintains a whitelist for trusted and verified bot accounts.
- Rate limiting - Steam may temporarily restrict high-frequency trading
- Account security - Keep credentials secure and never share
- Minimize inventory size for faster item lookup
- Monitor logs for performance bottlenecks
- Stable internet connection recommended
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
- steam-user - Steam client library
- steam-tradeoffer-manager - Trade offer management
- steamcommunity - Steam Community integration
- Original concept by various Steam trading communities
⚡ Built for Node.js | Updated 2025 | Use Responsibly