A Pythonβpowered cryptocurrency arbitrage system that asynchronously fetches live prices from multiple exchanges, compares them against userβdefined thresholds, and detects profitable opportunities in real time. The bot logs all activity, stores detailed data for analysis, and can optionally send instant alerts via Telegram and Discord. It features a userβfriendly CLI menu for control and monitoring, plus an integrated Flask dashboard for webβbased visualization.
- Asynchronous Arbitrage Engine
- Collects prices from multiple exchange APIs concurrently using aiohttp.
- Provides fast, nonβblocking data flow with an asyncio loop.
- Configurable & Modular Architecture
- All settings are managed through the
config.inifile. - Symbols, thresholds, intervals, and notification options can be easily customized.
- All settings are managed through the
- Data Persistence & Logging
- Arbitrage opportunities, price data, and successful trades are stored in JSON files.
- Errors and events are logged in
./logs/arbitrage.log.
- Notification System
- Realβtime alerts via Telegram and Discord integration.
- Test messages and Chat ID retrieval available through the CLI menu.
- Interactive CLI Menu
- Userβfriendly menu to start/stop arbitrage, view data, update settings, and test notifications.
- Dashboard control directly accessible from the CLI.
- Flask Dashboard Integration
- Webβbased panel runs in the background as a separate process.
- Start, stop, and status checks can be managed via the CLI menu.
- Graceful Shutdown & Control
- Threads and processes can be safely terminated.
- Arbitrage loop is controlled with the
thread_startflag.
The bot continuously retrieves live cryptocurrency prices from multiple supported exchanges using asynchronous requests. Each symbol is compared against userβdefined thresholds to detect arbitrage opportunities. When a valid opportunity is found, the system logs the event, saves detailed price data, and optionally sends realβtime notifications via Telegram or Discord. All activity is stored for later analysis, while a CLI menu and optional Flask dashboard allow users to start, stop, and monitor the bot without interrupting ongoing background tasks.
Upon running, you'll see a CLI menu:
| Option | Description |
|---|---|
| 1 | Start Arbitrage Check |
| 2 | Check Status / Stop Bot |
| 3 | View Arbitrage Data (Opportunities, Success Logs, Price Logs) |
| 4 | Telegram / Discord Operations |
| 5 | Config Operations |
| 6 | Dashboard (Flask Web Panel) |
| 7 | Exit the Program |

Tracks arbitrage percentage over time with interactive chart and symbol filtering.

Displays the most recent arbitrage opportunities with exchange details and timestamps.
[Exchange Details]
Binance = https://api.binance.com/api/v3/ticker/price?symbol=SYMBOL
Binance_Status = 1
Mexc = https://api.mexc.com/api/v3/ticker/price?symbol=SYMBOL
Mexc_Status = 1
KuCoin = https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=SYMBOL
KuCoin_Status = 1
Coinbase = https://api.exchange.coinbase.com/products/SYMBOL/ticker
Coinbase_Status = 1
OKX = https://www.okx.com/api/v5/market/ticker?instId=SYMBOL
OKX_Status = 1
Gate.io = https://api.gateio.ws/api/v4/spot/tickers?currency_pair=SYMBOL
Gate.io_Status = 1
BingX = https://open-api.bingx.com/openApi/swap/v2/quote/bookTicker?symbol=SYMBOL
BingX_Status = 1
Bitget = https://api.bitget.com/api/v2/spot/market/tickers?symbol=SYMBOL
Bitget_Status = 1
[Arbitrage Settings]
SYMBOLS = DOGE-USDT,ETH-USDT,BTC-USDT
ARBITRAGE_THRESHOLD = 1.0, 0.5, 1.5
TIMER_INTERVAL = 5
PRICES_SAVE = 1
ARBITRAGE_SAVE = 1
ARBITRAGE_SUCCESS_SAVE = 1
MULTI_PROCESSING = 1
[Database]
MAIN_FOLDER = database
ARBITRAGE_JSON = arbitrage.json
ARBITRAGE_SUCCESS = arbitrage_success.json
PRICES = prices.json
[Telegram]
TELEGRAM_BOT_TOKEN = <your_token>
TELEGRAM_CHAT_ID = <your_chat_id>
NOTIFICATION_STATUS = 0
[Discord]
DISCORD_WEBHOOK = <your_webhook_url>
NOTIFICATION_STATUS = 0- Binance
- Mexc
- KuCoin
- Coinbase
- OKX
- Gate.io
- BingX
- Bitget
Enable or disable any exchange in the
[Exchange Details]section ofconfig.ini.
- Python 3.7 or higher
- Dependencies:
requestsconfigparserFlaskFlask-SocketIOaiohttp
Install all dependencies with:
pip install -r requirements.txtβββ config/
β βββ __init__.py
β βββ config.ini
βββ database/
β βββ arbitrage.json
β βββ arbitrage_success.json
β βββ prices.json
βββ core/
β βββ templates/
β β βββ index.html
β βββ __init__.py
β βββ arbitrage_handler.py
β βββ dashboard_handler.py
β βββ data_handler.py
β βββ data_handler_SQL.py [DISABLED]
β βββ noti_handler.py
β βββ exchange_handler.py
β βββ telegramChatID_handler.py
βββ logs/
β βββ arbitrage.log
βββ requirements.txt
βββ main.py- Data conversion to different formats
- More support for cryptocurrency exchanges.
- Realβtime price streaming via WebSocket APIs (lower latency, continuous updates)
This project is licensed under the MIT License β see the LICENSE file for details.
Feel free to fork this project, submit PRs, or suggest features via GitHub Issues!
If this bot helps you save time or profit from arbitrage, consider showing some β€οΈ to support its further development:
- USDT (TRC20):
T9zmkRHR49PKNgi2GvFReWzoX6mxvXwCwQ - BTC:
3FiGD5moqSctBY93h11H3TvPncWLCe5up5 - Ethereum (ERC20):
0xac25c934e64a95ba38a5ca2c8ca149c8bf13eaa3 - TRX (TRC20):
T9zmkRHR49PKNgi2GvFReWzoX6mxvXwCwQ
Get early access to premium features and sponsor-only tools.
π¬ Contact via GitHub or email below for sponsor tiers.
- GitHub Issues β for bugs and feedback
- Email β
bytearchsoft@gmail.com(for business inquiries or sponsorships)