╔══════════════════════════════════════════════════════════════════════════════╗
║ ║
║ ████████╗███████╗██╗ ███████╗ ██████╗ ██████╗ █████╗ ███╗ ███╗ ║
║ ╚══██╔══╝██╔════╝██║ ██╔════╝██╔════╝ ██╔══██╗██╔══██╗████╗ ████║ ║
║ ██║ █████╗ ██║ █████╗ ██║ ███╗██████╔╝███████║██╔████╔██║ ║
║ ██║ ██╔══╝ ██║ ██╔══╝ ██║ ██║██╔══██╗██╔══██║██║╚██╔╝██║ ║
║ ██║ ███████╗███████╗███████╗╚██████╔╝██║ ██║██║ ██║██║ ╚═╝ ██║ ║
║ ╚═╝ ╚══════╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ║
║ ║
║ █████╗ ██╗ ██╗████████╗ ██████╗ ║
║ ██╔══██╗██║ ██║╚══██╔══╝██╔═══██╗ ║
║ ███████║██║ ██║ ██║ ██║ ██║ ║
║ ██╔══██║██║ ██║ ██║ ██║ ██║ ║
║ ██║ ██║╚██████╔╝ ██║ ╚██████╔╝ ║
║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ║
║ ║
║ ██████╗ ██╗ ██╗██╗ ██╗ ║
║ ██╔══██╗██║ ██║╚██╗ ██╔╝ ║
║ ██████╔╝██║ ██║ ╚████╔╝ ║
║ ██╔══██╗██║ ██║ ╚██╔╝ ║
║ ██████╔╝╚██████╔╝ ██║ ║
║ ╚═════╝ ╚═════╝ ╚═╝ ║
║ ║
║ ║
║ ⚓ Developed by: DUO ON DECK Team ║
║ 🚀 Project: Telegram Auto Buy ║
║ 📧 Support: @black_beard68 ║
║ 📢 Channel: @two_on_deck ║
║ 🌊 "Two minds, one mission - sailing the crypto seas!" ║
║ ║
╚══════════════════════════════════════════════════════════════════════════════╝
> ⚠️ **IMPORTANT FOR NEW USERS:** If you're using a new/zero balance TON wallet, make sure to use menu option **"5. 🔧 Check/Deploy wallets"** before first run! Fresh wallets need to be deployed in TON blockchain to work with transactions.
## 🎯 What is this?
Telegram Auto Buy is a program for automatic sticker purchasing in Telegram. The program can:
> 📢 **Stay updated!** Join our official channel [@two_on_deck](https://t.me/two_on_deck) for latest updates, tips and life-changing opportunities!
- **Buy stickers automatically** - set it up once, the program works by itself
- **Work with multiple accounts** - you can add many Telegram accounts
- **Send TON payments** - automatically pays for purchases with TON cryptocurrency
- **Track new collections** - finds new stickers and buys them immediately (snipe mode)
## 🚀 Quick Start
### Step 1: Download the program
1. Download the program archive (contains `stickersbot.exe` and `config.json`)
2. Extract the archive to any folder on your computer (e.g., `TelegramMinter`)
### Step 2: Configure the configuration file
1. Open the `config.json` file in any text editor
2. Fill in all necessary fields according to the instructions below
### Step 3: Get Telegram API keys
#### How to get API ID and API Hash:
1. Open https://my.telegram.org/auth
2. Log in with your phone number
3. Go to "API development tools"
4. Fill out the form:
- **App title**: any name (e.g., "MyBot")
- **Short name**: short name (e.g., "mybot")
- **URL**: can be left empty
- **Platform**: select "Desktop"
- **Description**: any description
5. Click "Create application"
6. **IMPORTANT**: Copy and save:
- **API ID** (number, e.g., 1234567)
- **API Hash** (string, e.g., "abcd1234efgh5678ijkl9012mnop3456")
### Step 4: Configure TON Wallet
⚠️ **IMPORTANT: Wallet Address Type Configuration**
Currently, the program uses **V4R2** address type. If you want to use this wallet in Tonkeeper, you will need to add this address type:
**How to configure V4R2 address in Tonkeeper:**
1. Open Tonkeeper app
2. Go to **Settings**
3. Find **"Current Address"** option
4. Select **V4R2** address
5. Open the V4R2 wallet type and fund exactly this one
**🚀 New Wallet Deployment:**
- **New/zero balance wallets** require deployment in TON blockchain before use
- **Use menu "5. 🔧 Check/Deploy wallets"** for automatic deployment
- **Minimum balance:** Need at least 0.05 TON for deployment
- **Deployment cost:** About 0.01-0.02 TON for gas
> 📝 **Note:** Future updates will include W5 address support for better compatibility.
### Step 5: Fill in config.json
In the `config.json` file you will see an empty template. Fill it with your data:
```json
{
"license_key": "",
"api_id": 0,
"api_hash": "",
"test_mode": true,
"test_address": "",
"accounts": [
{
"name": "",
"phone_number": "",
"collection": 0,
"character": 0,
"currency": "TON",
"count": 1,
"threads": 1,
"max_transactions": 0,
"seed_phrase": "",
"snipe_monitor": {
"enabled": false,
"supply_range": {
"min": 10,
"max": 5000
},
"price_range": {
"min": 1000000000,
"max": 10000000000
},
"word_filter": ["keyword1", "keyword2"]
}
}
]
}
Example of filled config:
{
"license_key": "YOUR_LICENSE_KEY_HERE",
"test_mode": true,
"test_address": "UQD...",
"accounts": [
{
"name": "My Main Account",
"api_id": 1234567,
"api_hash": "abcd1234efgh5678ijkl9012mnop3456",
"phone_number": "+1234567890",
"collection": 123,
"character": 456,
"currency": "TON",
"count": 1,
"threads": 1,
"max_transactions": 10,
"seed_phrase": "word1 word2 word3 ... word24",
"snipe_monitor": {
"enabled": false,
"supply_range": {
"min": 10,
"max": 5000
},
"price_range": {
"min": 1000000000,
"max": 10000000000
},
"word_filter": ["azuki", "pokemon", "cryptopunks"]
}
}
]
}
license_key
- Program license key (obtain from developers)test_mode
- Test mode (true = test, false = real purchases)test_address
- Wallet address for test payments
name
- Any name for the account (for convenience)api_id
- Your Telegram application ID for this account (obtained in step 3)api_hash
- Your Telegram application hash for this account (obtained in step 3)phone_number
- Telegram account phone number (with country code, e.g., "+1234567890")collection
- Sticker collection ID for purchasecharacter
- Character ID in the collectioncurrency
- Currency for purchase ("TON", "USDT", etc.)count
- Number of stickers to buy at oncethreads
- Number of threads (recommended 1-3)max_transactions
- Maximum transactions (0 = no limit)seed_phrase
- TON wallet seed phrase (12-24 words separated by spaces)snipe_monitor
- Snipe monitoring settings (optional)
Each account now supports individual proxy settings. All connections for the account (Telegram, HTTP requests, TON RPC) will use the specified proxy.
In the config.json
file, add the following fields for each account:
{
"accounts": [
{
"name": "Account 1 with proxy",
"use_proxy": true,
"proxy_url": "proxy.example.com:1080:username:password",
// ... other account settings
}
]
}
Two formats are supported:
-
Without authentication:
host:port
"proxy_url": "192.168.1.100:1080"
-
With authentication:
host:port:username:password
"proxy_url": "proxy.example.com:1080:myuser:mypass"
use_proxy
(boolean) - enable/disable proxy for the accountproxy_url
(string) - proxy address in the specified format
When proxy is enabled for an account, the following go through it:
- ✅ Telegram connections (authorization, token retrieval)
- ✅ HTTP requests to API (sticker purchases)
- ✅ TON RPC connections (transaction sending)
- ✅ New collection monitoring requests
{
"accounts": [
{
"name": "Account 1 - Direct",
"api_id": 12345,
"api_hash": "your_api_hash",
"phone_number": "+1234567890",
"seed_phrase": "your 24 word seed phrase here",
"use_proxy": false,
"threads": 1,
"collection": 25,
"character": 1,
"currency": "TON",
"count": 5
},
{
"name": "Account 2 - With Proxy",
"api_id": 67890,
"api_hash": "another_api_hash",
"phone_number": "+1234567891",
"seed_phrase": "another 24 word seed phrase here",
"use_proxy": true,
"proxy_url": "proxy.example.com:1080:username:password",
"threads": 1,
"collection": 25,
"character": 1,
"currency": "TON",
"count": 5
}
]
}
- SOCKS5 proxy (recommended)
- HTTP proxy for web requests
- Each account can have its own proxy or work without proxy
- Proxy settings apply to all types of account connections
- In case of proxy connection error, the application will show a corresponding message
- TON RPC connections support proxy partially (liteclient library limitation)
⚠️ IMPORTANT: The program has two fundamentally different operating modes depending on thesnipe_monitor
setting!
How it works:
- The program waits for NEW collections to appear on the platform
- When a new collection appears that matches your criteria, the program automatically buys it
- The
collection
andcharacter
parameters in the config are IGNORED - The program works in constant monitoring mode
Example config with snipe monitoring enabled:
{
"name": "Sniper Account",
"phone_number": "+1234567890",
"collection": 0, // ← Ignored in this mode
"character": 0, // ← Ignored in this mode
"currency": "TON",
"count": 1,
"threads": 1,
"max_transactions": 5,
"seed_phrase": "your seed phrase here",
"snipe_monitor": {
"enabled": true, // ← SNIPE MODE ENABLED
"supply_range": {
"min": 100,
"max": 10000
},
"price_range": {
"min": 500000000,
"max": 5000000000
},
"word_filter": ["rare", "limited", "exclusive"]
}
}
How it works:
- The program immediately buys the specified
collection
andcharacter
from the config - No monitoring - direct action
- The
collection
andcharacter
parameters are REQUIRED - Perfect when you know exactly what you want to buy
Example config with direct purchase:
{
"name": "Direct Purchase",
"phone_number": "+1234567890",
"collection": 123, // ← REQUIRED collection ID
"character": 456, // ← REQUIRED character ID
"currency": "TON",
"count": 1,
"threads": 1,
"max_transactions": 1,
"seed_phrase": "your seed phrase here",
"snipe_monitor": {
"enabled": false // ← SNIPE MODE DISABLED
}
}
The program has two operating modes depending on the snipe_monitor
setting:
If you want to automatically monitor and buy NEW collections as they appear, add to account:
"snipe_monitor": {
"enabled": true,
"supply_range": {
"min": 1,
"max": 1000
},
"price_range": {
"min": 1000000000,
"max": 10000000000
},
"word_filter": ["possible pack names", "possible pack names 2"]
}
How it works:
- The program will monitor for new collections that match your criteria
- When a new collection appears, it will automatically try to mint it
- The
collection
andcharacter
IDs in the account settings are ignored - Perfect for catching new drops and rare collections
If you want to mint specific collections immediately:
{
"name": "My Account",
"collection": 123,
"character": 456,
// ... other settings
// No snipe_monitor section or "enabled": false
}
How it works:
- The program will immediately try to mint the specified
collection
andcharacter
IDs - No monitoring - direct action
- Perfect when you know exactly what you want to mint
enabled
- Enable snipe mode (true = monitor mode, false = direct mint mode)supply_range
- Range of sticker quantity (min-max)price_range
- Price range in nanotons (1 TON = 1000000000 nanotons)word_filter
- List of words to search for in collection names
After launching the program, you will see an interactive CLI menu with 5 main options. Here's a detailed guide for each menu item:
What it does:
- Starts the main bot functionality
- Authenticates all configured accounts
- Begins purchasing or monitoring based on your config
- Shows real-time logs and statistics
Step-by-step process:
- Authentication: Bot checks all accounts and authenticates those that need it
- Validation: Verifies wallet balances and configuration
- Start: Begins the purchasing/monitoring process
- Monitoring: Shows live logs and statistics in the console
⚠️ Important: Make sure all accounts are properly configured before starting!
What it does:
- Gracefully stops all running tasks
- Completes current transactions before stopping
- Shows final statistics
- Saves all data and logs
When to use:
- When you want to stop the bot temporarily
- Before changing configuration
- When you've reached your purchase goals
- If you notice any issues and want to investigate
What it does:
- Shows authentication status of all accounts
- Allows selective authentication of specific accounts
- Displays session files and auth tokens status
- Provides detailed account information
Account Status Information:
- 🟢 ACTIVE - Account has valid auth token or session file
- 🔴 INACTIVE - Account needs authentication
- ✅ Auth Token - Account has valid bearer token
- 📁 Session - Telegram session file exists
Authentication Options:
- Selective Authentication: Choose specific accounts by numbers (e.g., 1,3,5)
- Authenticate All: Authenticate all inactive accounts at once
- Refresh Status: Update account status information
⚠️ Note: Authentication may require phone verification codes for new accounts.
What it does:
- Displays TON wallet balances for all accounts
- Shows wallet addresses
- Indicates any wallet-related errors
- Helps verify sufficient funds before purchasing
Displayed information:
- Account Name: Your configured account name
- Phone Number: Masked phone number for security
- Wallet Address: TON wallet address
- Balance: Current TON balance
- Errors: Any wallet-related issues
💡 Tip: Regularly check balances to ensure you have enough TON for purchases!
What it does:
- Checks all seed phrases from account configuration
- Determines if wallets are deployed in TON blockchain
- Automatically deploys undeployed wallets when funds are available
- Shows detailed information about each wallet's state
Checking process:
- Seed phrase validation: Checks format (12 or 24 words)
- Address retrieval: Shows wallet address for each account
- Balance checking: Displays current TON balance
- Deployment test: Attempts test transaction to verify deployment
- Status determination: Shows if deployment is needed
Wallet statuses:
- ✅ Deployed - Wallet is ready for use
⚠️ Needs deployment - Wallet not deployed but has funds (≥ 0.05 TON)- ❌ Insufficient funds - Need to fund wallet for deployment
Deployment options:
- Selective deployment: Choose specific wallets by numbers
- Deploy all: Automatically deploy all undeployed wallets
- Refresh status: Recheck all wallet states
- Back to menu: Cancel operation
Deployment process:
- Sends 0.001 TON transaction to self to activate contract
- Waits for TON network confirmation (up to 60 seconds)
- Shows deployment result for each wallet
- Provides transaction IDs for tracking
⚠️ Important: Wallet deployment requires minimum 0.05 TON balance. Operation consumes about 0.01-0.02 TON for gas.
💡 Tip: Use this menu item before first purchase run to ensure all wallets are ready!
What it does:
- Safely closes the application
- Stops all running tasks
- Saves current state
- Performs cleanup operations
Best practices:
- Always use this option to exit (don't force close)
- Wait for tasks to complete before exiting
- Check final statistics before closing
Status | Meaning |
---|---|
⭕ Stopped | No tasks are currently running |
🟢 Running | Bot is actively purchasing/monitoring |
🔄 Authenticating | Account authentication in progress |
✅ Success | Operation completed successfully |
❌ Error | Operation failed - check error message |
Account Authentication Problems:
- Session not found: Use menu option 3 to authenticate
- Invalid phone number: Ensure phone starts with '+' and country code
- 2FA required: Add
two_factor_password
to config
Wallet Issues:
- Insufficient balance: Add more TON to your wallet
- Invalid seed phrase: Check seed phrase format (12-24 words)
- Wallet not found: Verify seed phrase is correct
Purchase Problems:
- Collection not found: Verify collection and character IDs
- Price changed: Collection price may have been updated
- Sold out: Collection may be out of stock
💡 Pro Tips:
- Always test with small amounts first
- Keep backup copies of your config file
- Monitor logs for any error messages
- Use test mode for initial setup
- Open command prompt (Win+R, type
cmd
) - Navigate to the program folder:
cd C:\path\to\folder\TelegramMinter
- Run:
stickersbot.exe
- The program will ask for a confirmation code from Telegram
- Enter the code that comes to Telegram
- If the account has two-factor authentication, enter the password
- The program will save the session and won't ask for codes again
- 🚀 Sticker purchasing started! - Program started
- 📈 Total: X | Success: Y | Errors: Z - Statistics (total requests, successful, errors)
- 💰 Transaction sent! - TON transaction sent
- 🔑 Invalid auth token! - Authorization token expired (program will update automatically)
- 🎯 New collection found - New collection found (in snipe mode)
- DO NOT SHARE your license key, API ID, API Hash, and seed phrases
- Keep the
config.json
file in a safe place - Use
test_mode: true
for testing - License key is required for the program to work in production mode
- These are 12-24 words from your TON wallet
- Needed for automatic payment sending
- Can be obtained from TON Wallet or Tonkeeper app
- IMPORTANT: Seed phrase gives full access to the wallet!
- Don't set too many threads - you might get banned
- Use
max_transactions
to limit expenses - In
test_mode
no money is spent
- Check the syntax of
config.json
file - Make sure all quotes and commas are in place
- Make sure the
license_key
field is filled inconfig.json
- Obtain the license key from developers
- Check the correctness of the license key
- Make sure you have internet access
- Contact support to check license status
- Check the correctness of `