{"id":44031023,"url":"https://github.com/bolgac/arbitrage-alert-bot","last_synced_at":"2026-07-02T17:02:54.655Z","repository":{"id":286287449,"uuid":"960948727","full_name":"bolgac/arbitrage-alert-bot","owner":"bolgac","description":"A Python-based cryptocurrency arbitrage bot that compares prices across multiple exchanges to detect and log arbitrage opportunities in real-time.","archived":false,"fork":false,"pushed_at":"2026-01-27T11:26:29.000Z","size":198,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-08T01:29:35.136Z","etag":null,"topics":["alert-bot","arbitrage","binance-api","coin","crypto","crypto-arbitrage","exchange","flask","flask-api","mexc-api","realtime-data"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bolgac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"IMaresaLI"}},"created_at":"2025-04-05T12:24:14.000Z","updated_at":"2026-01-27T11:26:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"e554f956-9f64-4760-9988-e49a751448a0","html_url":"https://github.com/bolgac/arbitrage-alert-bot","commit_stats":null,"previous_names":["imaresali/arbaration-alert-bot","bolgac/arbitrage-alert-bot"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bolgac/arbitrage-alert-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bolgac%2Farbitrage-alert-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bolgac%2Farbitrage-alert-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bolgac%2Farbitrage-alert-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bolgac%2Farbitrage-alert-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bolgac","download_url":"https://codeload.github.com/bolgac/arbitrage-alert-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bolgac%2Farbitrage-alert-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35055546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alert-bot","arbitrage","binance-api","coin","crypto","crypto-arbitrage","exchange","flask","flask-api","mexc-api","realtime-data"],"created_at":"2026-02-07T18:44:40.346Z","updated_at":"2026-07-02T17:02:54.643Z","avatar_url":"https://github.com/bolgac.png","language":"Python","funding_links":["https://github.com/sponsors/IMaresaLI"],"categories":[],"sub_categories":[],"readme":"# 🧠 Crypto Arbitrage Alert Bot\n\nA 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.\n\n---\n\n## 📌 Features\n- Asynchronous Arbitrage Engine\n  - Collects prices from multiple exchange APIs concurrently using aiohttp. \n  - Provides fast, non‑blocking data flow with an asyncio loop.\n- Configurable \u0026 Modular Architecture  \n  - All settings are managed through the `config.ini` file.\n  - Symbols, thresholds, intervals, and notification options can be easily customized.\n- Data Persistence \u0026 Logging\n  - Arbitrage opportunities, price data, and successful trades are stored in JSON files.\n  - Errors and events are logged in `./logs/arbitrage.log`.\n- Notification System\n  - Real‑time alerts via Telegram and Discord integration.\n  - Test messages and Chat ID retrieval available through the CLI menu.\n- Interactive CLI Menu\n  - User‑friendly menu to start/stop arbitrage, view data, update settings, and test notifications.\n  - Dashboard control directly accessible from the CLI.\n- Flask Dashboard Integration\n  - Web‑based panel runs in the background as a separate process.\n  - Start, stop, and status checks can be managed via the CLI menu.\n- Graceful Shutdown \u0026 Control\n  - Threads and processes can be safely terminated.\n  - Arbitrage loop is controlled with the `thread_start` flag.\n\n---\n\n## 🚀 How It Works\n\nThe 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.\n\n---\n\n## 🧪 Menu Options\n\nUpon running, you'll see a CLI menu:\n\n| Option | Description |\n|--------|-------------|\n| 1 | Start Arbitrage Check |\n| 2 | Check Status / Stop Bot |\n| 3 | View Arbitrage Data (Opportunities, Success Logs, Price Logs) |\n| 4 | Telegram / Discord Operations |\n| 5 | Config Operations |\n| 6 | Dashboard (Flask Web Panel) |\n| 7 | Exit the Program |\n\n---\n\n## 📊 Dashboard Preview\n\n### Arbitrage Monitor\n\n![Arbitrage Monitor Screenshot](media/arbitrage_Monitor.png)  \nTracks arbitrage percentage over time with interactive chart and symbol filtering.\n\n### Latest Opportunities\n\n![Latest Opportunities Table](media/latest_oppor.png)  \nDisplays the most recent arbitrage opportunities with exchange details and timestamps.\n\n---\n\n## ⚙️ Configuration (`config.ini`)\n\n```ini\n[Exchange Details]\nBinance = https://api.binance.com/api/v3/ticker/price?symbol=SYMBOL\nBinance_Status = 1\nMexc = https://api.mexc.com/api/v3/ticker/price?symbol=SYMBOL\nMexc_Status = 1\nKuCoin = https://api.kucoin.com/api/v1/market/orderbook/level1?symbol=SYMBOL\nKuCoin_Status = 1\nCoinbase = https://api.exchange.coinbase.com/products/SYMBOL/ticker\nCoinbase_Status = 1\nOKX = https://www.okx.com/api/v5/market/ticker?instId=SYMBOL\nOKX_Status = 1\nGate.io = https://api.gateio.ws/api/v4/spot/tickers?currency_pair=SYMBOL\nGate.io_Status = 1\nBingX = https://open-api.bingx.com/openApi/swap/v2/quote/bookTicker?symbol=SYMBOL\nBingX_Status = 1\nBitget = https://api.bitget.com/api/v2/spot/market/tickers?symbol=SYMBOL\nBitget_Status = 1\n\n[Arbitrage Settings]\nSYMBOLS = DOGE-USDT,ETH-USDT,BTC-USDT\nARBITRAGE_THRESHOLD = 1.0, 0.5, 1.5\nTIMER_INTERVAL = 5\nPRICES_SAVE = 1\nARBITRAGE_SAVE = 1\nARBITRAGE_SUCCESS_SAVE = 1\nMULTI_PROCESSING = 1\n\n[Database]\nMAIN_FOLDER = database\nARBITRAGE_JSON = arbitrage.json\nARBITRAGE_SUCCESS = arbitrage_success.json\nPRICES = prices.json\n\n[Telegram]\nTELEGRAM_BOT_TOKEN = \u003cyour_token\u003e\nTELEGRAM_CHAT_ID = \u003cyour_chat_id\u003e\nNOTIFICATION_STATUS = 0\n\n[Discord]\nDISCORD_WEBHOOK = \u003cyour_webhook_url\u003e\nNOTIFICATION_STATUS = 0\n```\n\n---\n\n## 🌐 Supported Exchanges\n\n- Binance  \n- Mexc  \n- KuCoin  \n- Coinbase  \n- OKX  \n- Gate.io  \n- BingX  \n- Bitget  \n\n\u003e Enable or disable any exchange in the `[Exchange Details]` section of `config.ini`.\n\n---\n\n## 📦 Requirements\n\n- **Python** 3.7 or higher  \n- **Dependencies:**\n  - `requests`\n  - `configparser`\n  - `Flask`\n  - `Flask-SocketIO`\n  - `aiohttp`\n\nInstall all dependencies with:\n\n```bash\npip install -r requirements.txt\n```\n\n---\n\n## 📁 Folder Structure\n\n```bash\n├── config/\n│   ├── __init__.py\n│   └── config.ini\n├── database/\n│   ├── arbitrage.json\n│   ├── arbitrage_success.json\n│   └── prices.json\n├── core/\n│   ├── templates/\n│   │   └── index.html\n│   ├── __init__.py\n│   ├── arbitrage_handler.py\n│   ├── dashboard_handler.py\n│   ├── data_handler.py\n│   ├── data_handler_SQL.py [DISABLED]\n│   ├── noti_handler.py\n│   ├── exchange_handler.py\n│   └── telegramChatID_handler.py\n├── logs/\n│   └── arbitrage.log            \n├── requirements.txt\n└── main.py\n```\n\n---\n\n## 🧠 Planned Features\n\n- Data conversion to different formats\n- More support for cryptocurrency exchanges.\n- Real‑time price streaming via WebSocket APIs (lower latency, continuous updates)\n\n---\n\n## 📄 License\n\nThis project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 🤝 Contributing\n\nFeel free to fork this project, submit PRs, or suggest features via GitHub Issues!\n\n---\n\n## 🙏 Support This Project\n\nIf this bot helps you save time or profit from arbitrage, consider showing some ❤️ to support its further development:\n\n### 💖 Donate\n\n- **USDT (TRC20)**: `T9zmkRHR49PKNgi2GvFReWzoX6mxvXwCwQ`\n- **BTC**: `3FiGD5moqSctBY93h11H3TvPncWLCe5up5`  \n- **Ethereum (ERC20)**: `0xac25c934e64a95ba38a5ca2c8ca149c8bf13eaa3`  \n- **TRX (TRC20)**: `T9zmkRHR49PKNgi2GvFReWzoX6mxvXwCwQ`  \n\n### 🧡 Become a Sponsor\n\nGet early access to premium features and sponsor-only tools.  \n📬 Contact via GitHub or email below for sponsor tiers.\n\n---\n\n## 📬 Contact\n\n- GitHub Issues – for bugs and feedback  \n- Email – `bytearchsoft@gmail.com` (for business inquiries or sponsorships)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbolgac%2Farbitrage-alert-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbolgac%2Farbitrage-alert-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbolgac%2Farbitrage-alert-bot/lists"}