{"id":29970621,"url":"https://github.com/gpsxtreme/atp-watcher-bot","last_synced_at":"2025-08-04T05:39:40.678Z","repository":{"id":304598753,"uuid":"1019145144","full_name":"GPSxtreme/atp-watcher-bot","owner":"GPSxtreme","description":"iq agents watcher bot","archived":false,"fork":false,"pushed_at":"2025-07-14T07:08:42.000Z","size":672,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-14T07:32:44.916Z","etag":null,"topics":["bot","iqai","telegraf","telegram"],"latest_commit_sha":null,"homepage":"https://app.iqai.com","language":"TypeScript","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/GPSxtreme.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2025-07-13T20:50:08.000Z","updated_at":"2025-07-14T07:08:46.000Z","dependencies_parsed_at":"2025-07-14T07:32:49.014Z","dependency_job_id":"95a207d5-48c3-4d66-b41b-5722e9ffbf35","html_url":"https://github.com/GPSxtreme/atp-watcher-bot","commit_stats":null,"previous_names":["gpsxtreme/atp-watcher-bot"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/GPSxtreme/atp-watcher-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPSxtreme%2Fatp-watcher-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPSxtreme%2Fatp-watcher-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPSxtreme%2Fatp-watcher-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPSxtreme%2Fatp-watcher-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GPSxtreme","download_url":"https://codeload.github.com/GPSxtreme/atp-watcher-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GPSxtreme%2Fatp-watcher-bot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268655164,"owners_count":24285128,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-04T02:00:09.867Z","response_time":79,"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":["bot","iqai","telegraf","telegram"],"created_at":"2025-08-04T05:39:39.305Z","updated_at":"2025-08-04T05:39:40.661Z","avatar_url":"https://github.com/GPSxtreme.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🤖 ATP Watcher Telegram Bot\n\nA powerful Telegram bot for monitoring your IQ Agents portfolio. Get real-time notifications about portfolio value changes, price movements, agent statistics, and IQ token price fluctuations.\n\n\u003cimg src=\"./assets/hero.png\" /\u003e\n\n## ✨ Features\n\n- 📊 **Advanced Portfolio Monitoring**: Track your total holdings value with configurable USD and percentage change thresholds\n- 📈 **Modular Price Watching**: Monitor specific agent tokens with granular threshold levels (minor/major/critical)\n- 🪙 **IQ Token Monitoring**: Dedicated monitoring for the base IQ token that affects all agent prices\n- 🎯 **Smart Multi-Level Alerts**: Customizable severity-based notifications with fine-grained control\n- 📱 **Rich Interactive Bot**: Comprehensive Telegram interface with inline buttons and advanced commands\n- 🔄 **Real-time Updates**: Automatic monitoring with configurable intervals and intelligent alerting\n- 💰 **Comprehensive Agent Analytics**: Get detailed information about any IQ Agent token\n- 🗄️ **Persistent Storage**: SQLite-based data persistence for configurations, price history, and alerts\n- ⚙️ **Maximum Customizability**: Extensive configuration options with sensible defaults\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 18+ and pnpm\n- Telegram Bot Token (from [@BotFather](https://t.me/BotFather))\n- Your wallet address\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/GPSxtreme/atp-watcher.git\n   cd atp-watcher\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   pnpm install\n   ```\n\n   **Note**: The bot uses SQLite for persistent storage. If you encounter issues with `better-sqlite3` compilation, make sure you have:\n   - Node.js 18+\n   - Python 3.x (for native module compilation)\n   - Build tools for your platform (Visual Studio Build Tools on Windows, Xcode on macOS)\n\n3. **Set up environment variables**\n   Create a `.env` file in the root directory:\n\n   ```env\n   # Telegram Bot Configuration\n   TELEGRAM_BOT_TOKEN=your_telegram_bot_token_here\n   \n   # Your wallet address to monitor holdings\n   WALLET_ADDRESS=0xYourWalletAddressHere\n   \n   # IQ API Configuration (default: https://app.iqai.com/api)\n   IQ_API_BASE_URL=https://app.iqai.com/api\n   \n   # Monitoring Intervals (in seconds)\n   HOLDINGS_CHECK_INTERVAL=300    # 5 minutes\n   PRICE_CHECK_INTERVAL=60        # 1 minute\n   \n   # Default thresholds\n   DEFAULT_HOLDINGS_THRESHOLD=1000      # USD\n   DEFAULT_PRICE_CHANGE_THRESHOLD=5     # Percentage\n   \n   # Application Configuration\n   NODE_ENV=development\n   LOG_LEVEL=info\n   ```\n\n4. **Build and run**\n\n   ```bash\n   pnpm run build\n   pnpm start\n   ```\n\n   Or for development:\n\n   ```bash\n   pnpm run dev\n   ```\n\n## 📋 Commands\n\n### Portfolio \u0026 Holdings Management\n\n- `📊 /portfolio` - View your complete portfolio with current values, holdings breakdown, and total worth\n- `🎯 /set_threshold \u003camount\u003e` - Set USD threshold for portfolio alerts (e.g., `/set_threshold 1000`)\n- `📊 /set_change_threshold \u003cpercentage\u003e` - Set percentage change threshold (e.g., `/set_change_threshold 10`)\n- `⏰ /set_interval \u003cseconds\u003e` - Set monitoring interval (e.g., `/set_interval 300`)\n- `▶️ /start_holdings` - Begin continuous portfolio monitoring with automatic alerts\n- `⏹️ /stop_holdings` - Stop portfolio monitoring and alerts\n\n### Advanced Price Monitoring \u0026 Alerts\n\n- `👁️ /watch \u003ctoken_address\u003e` - Add token to watchlist for price change alerts\n- `🎯 /watch_config \u003caddress\u003e \u003cthreshold\u003e [interval]` - Configure token with custom settings\n- `🔧 /watch_advanced \u003caddress\u003e \u003cminor%\u003e \u003cmajor%\u003e \u003ccritical%\u003e [interval]` - Advanced threshold configuration\n- `🔔 /alert_config \u003caddress\u003e \u003cminor:on/off\u003e \u003cmajor:on/off\u003e \u003ccritical:on/off\u003e` - Configure alert types\n- `🚫 /unwatch \u003ctoken_address\u003e` - Remove token from watchlist\n- `📈 /watched` - View all tokens you're monitoring with latest prices\n- `▶️ /start_price` - Enable price monitoring service for all watched tokens\n- `⏹️ /stop_price` - Disable price monitoring service\n\n### IQ Token Monitoring (Base Token)\n\n- `🪙 /iq_price` - Current IQ token price (base token for all agents)\n- `▶️ /start_iq` - Start IQ token price monitoring\n- `⏹️ /stop_iq` - Stop IQ token price monitoring\n- `⚙️ /iq_config \u003cminor%\u003e \u003cmajor%\u003e \u003ccritical%\u003e [interval]` - Configure IQ price thresholds\n- `🔔 /iq_alerts \u003cminor:on/off\u003e \u003cmajor:on/off\u003e \u003ccritical:on/off\u003e` - Configure IQ alert types\n- `📊 /iq_status` - View IQ monitoring status and configuration\n\n### Token Information \u0026 Research\n\n- `📈 /top [mcap|holders|inferences] [limit]` - Show top performing agents (default: top 10 by market cap)\n- `ℹ️ /info \u003ctoken_address\u003e` - Get detailed agent profile including bio, stats, and creation date\n- `📊 /stats \u003ctoken_address\u003e` - View comprehensive statistics: price, market cap, holders, inferences\n- `💰 /price \u003ctoken_address\u003e` - Get real-time price for any agent token\n\n### System \u0026 Configuration\n\n- `⚙️ /config` - View current configuration and monitoring settings\n- `📊 /status` - System health check: monitoring status, database stats, tracked tokens\n- `📊 /history \u003ctoken_address\u003e [limit]` - View price history for any token (default: last 10 prices)\n- `🚨 /alerts` - View your recent alert history and notifications\n- `⚙️ /settings` - View current configuration and available customization options\n- `👤 /myid` - Get your Telegram user ID for bot authorization setup\n- `❓ /help` - Show complete command guide with examples\n\n## 🔒 Security \u0026 Authorization\n\n### Single-User Personal Bot\n\nThis bot is designed as a **personal monitoring assistant** for a single user. By default, it responds to any user, but you should restrict it to only yourself for privacy and security.\n\n#### Setup for Single-User Access\n\n1. **Get your Telegram User ID**: Send `/myid` to your bot to get your user ID\n2. **Configure single-user access**: Set the `AUTHORIZED_USER_ID` environment variable with your user ID  \n3. **Restart the bot**: Changes take effect after restart\n\n#### Example Configuration\n\n```bash\n# Restrict to only yourself (replace with your actual user ID)\nAUTHORIZED_USER_ID=123456789\n\n# Allow all users (not recommended for personal use)\nAUTHORIZED_USER_ID=\n```\n\n#### Personal Notifications\n\nOnce configured with your user ID, the bot will:\n\n- **Send you direct messages** for all portfolio changes and price alerts\n- **Deny access** to any other users with a clear message\n- **Store your chat ID** automatically when you first interact with it\n- **Deliver real-time notifications** about your investments directly to your DMs\n\n#### Getting Your User ID\n\n1. Send `/myid` to your bot\n2. The bot will respond with your Telegram user ID  \n3. Use this ID in the `AUTHORIZED_USER_ID` environment variable\n\n#### Access Control Behavior\n\n- **You (Authorized User)**: Full access to all commands + receive DM notifications\n- **Other Users**: Receive \"Access Denied\" message for any command\n- **No Configuration**: If `AUTHORIZED_USER_ID` is empty, all users can interact (not recommended)\n\n**🔒 Privacy**: Once configured, only you can access your portfolio data and monitoring settings. All alerts and notifications are sent directly to your private chat with the bot.\n\n## 🎯 Advanced Use Cases\n\n### Multi-Level Portfolio Monitoring\n\nSet up comprehensive portfolio tracking with multiple alert levels:\n\n```bash\n/set_threshold 1000           # USD milestone threshold\n/set_change_threshold 5       # 5% change alerts\n/set_interval 300             # Check every 5 minutes\n/start_holdings\n```\n\n### Granular Token Price Monitoring\n\nMonitor tokens with different sensitivity levels:\n\n```bash\n# Basic monitoring\n/watch_config 0x4dBcC239b265295500D2Fe2d0900629BDcBBD0fB 5 60\n\n# Advanced multi-threshold monitoring\n/watch_advanced 0x4dBcC239b265295500D2Fe2d0900629BDcBBD0fB 2 10 20 30\n\n# Customize alert types\n/alert_config 0x4dBcC239b265295500D2Fe2d0900629BDcBBD0fB on off on\n```\n\n### IQ Token Market Intelligence\n\nMonitor the base token for market-wide insights:\n\n```bash\n/iq_config 2 10 20 60        # Minor: 2%, Major: 10%, Critical: 20%, 60s interval\n/iq_alerts on on on          # Enable all alert types\n/start_iq\n```\n\n### Complete System Setup\n\nGet everything running with optimal configuration:\n\n```bash\n# Portfolio monitoring\n/set_threshold 5000\n/set_change_threshold 8\n/start_holdings\n\n# Price monitoring\n/start_price\n\n# IQ token monitoring\n/iq_config 3 12 25\n/start_iq\n\n# Check status\n/status\n/config\n```\n\n## 🛠️ Advanced Configuration\n\n### Environment Variables with Enhanced Descriptions\n\nAll environment variables now include detailed descriptions with units and context:\n\n| Variable | Description | Default | Units |\n|----------|-------------|---------|-------|\n| `TELEGRAM_BOT_TOKEN` | Telegram bot token obtained from @BotFather for authenticating with Telegram API | Required | - |\n| `WALLET_ADDRESS` | Ethereum wallet address (0x format) to monitor for IQ agent investments on Fraxtal network | Required | - |\n| `IQ_API_BASE_URL` | Base URL for IQ AI API endpoints used to fetch agent data and prices | `https://app.iqai.com/api` | URL |\n| `HOLDINGS_CHECK_INTERVAL` | Interval in seconds between portfolio holdings checks | `300` | seconds |\n| `PRICE_CHECK_INTERVAL` | Interval in seconds between price checks for watched tokens | `60` | seconds |\n| `DEFAULT_HOLDINGS_THRESHOLD` | Default threshold in USD for portfolio value change notifications | `1000` | USD |\n| `DEFAULT_PRICE_CHANGE_THRESHOLD` | Default percentage threshold for price change notifications | `5` | % |\n| `AUTHORIZED_USER_ID` | Single authorized Telegram user ID who can interact with the bot (empty = allow all users) | `` (allow all) | - |\n| `NODE_ENV` | Runtime environment mode affecting logging and error handling behavior | `development` | - |\n| `LOG_LEVEL` | Minimum log level to output (debug \u003c info \u003c warn \u003c error) | `info` | - |\n\n### Runtime Configuration Options\n\n#### Portfolio Monitoring\n\n- **USD Thresholds**: Set milestone values for portfolio alerts\n- **Percentage Thresholds**: Configure sensitivity for portfolio value changes\n- **Monitoring Intervals**: Customize how frequently holdings are checked\n- **Alert Types**: Enable/disable different notification types\n\n#### Price Monitoring (Per Token)\n\n- **Minor Thresholds**: 1-5% price changes (default: 2%)\n- **Major Thresholds**: 5-15% price changes (default: 10%)\n- **Critical Thresholds**: 15%+ price changes (default: 20%)\n- **Individual Intervals**: Custom check frequencies per token\n- **Alert Granularity**: Enable/disable minor, major, or critical alerts per token\n\n#### IQ Token Monitoring\n\n- **Base Token Tracking**: Monitor the fundamental token affecting all agent prices\n- **Market Impact Alerts**: Notifications about potential market-wide price movements\n- **Configurable Sensitivity**: Independent thresholds for IQ price monitoring\n\n## 🏗️ Architecture\n\n```bash\nsrc/\n├── env.ts                    # Enhanced environment configuration \u0026 validation with descriptions\n├── index.ts                  # Main bot entry point with comprehensive command handling\n└── services/\n    ├── agents.ts             # IQ Agents API service with retry logic and caching\n    ├── database.ts           # SQLite database service with enhanced schema\n    ├── holdings-watcher.ts   # Advanced portfolio monitoring with configurable thresholds\n    ├── price-watcher.ts      # Multi-level price monitoring with modular alerts\n    └── iq-price-watcher.ts   # Dedicated IQ token price monitoring service\n```\n\n### Enhanced Key Components\n\n- **AgentsApiService**: Handles all API calls to IQ Agents platform with intelligent retry logic and response caching\n- **DatabaseService**: Enhanced SQLite-based persistent storage with advanced schema for modular configurations\n- **HoldingsWatcher**: Advanced portfolio monitoring with USD and percentage thresholds, configurable intervals\n- **PriceWatcher**: Multi-level token price monitoring with granular threshold control and per-token configuration\n- **IQPriceWatcher**: Dedicated service for monitoring the base IQ token with market impact awareness\n- **Telegram Bot**: Comprehensive command interface with advanced configuration and help systems\n\n### Enhanced Database Schema\n\n- **price_history**: Historical price data for all tracked tokens including IQ token\n- **alerts**: Comprehensive alert history with severity levels and categorization\n- **user_preferences**: Enhanced bot configuration storage with detailed preference management\n- **watched_tokens**: Advanced token watch list with modular threshold configurations and alert settings\n\n## 🗄️ Persistent Storage\n\nThe bot uses **SQLite** for comprehensive persistent storage, optimized for Railway deployment:\n\n### Enhanced Storage Features\n\n- ✅ **Modular Configurations**: Store complex threshold configurations per token\n- ✅ **Alert History**: Complete audit trail of all notifications with severity levels\n- ✅ **Price Analytics**: Comprehensive price history for trend analysis\n- ✅ **User Preferences**: Granular storage of all customization options\n- ✅ **Configuration Persistence**: All settings survive restarts and deployments\n\n### Data Organization\n\n- **Price History**: Track price movements over time for all tokens including IQ\n- **Alert Management**: Complete history with categorization and severity levels\n- **Configuration Storage**: Modular threshold settings, intervals, and alert preferences\n- **Token Management**: Advanced watchlist with per-token configuration persistence\n\n## 🔧 Development\n\n### Scripts\n\n```bash\n# Development with hot reload\npnpm run dev\n\n# Build TypeScript\npnpm run build\n\n# Start production server\npnpm start\n\n# Lint code\npnpm run lint\n\n# Fix linting issues\npnpm run lint:fix\n\n# Format code\npnpm run format\n\n# Clean build files\npnpm run clean\n```\n\n### Adding New Features\n\n1. **New Commands**: Add command handlers in `src/index.ts` with comprehensive help integration\n2. **New Monitoring Services**: Create new watcher services in `src/services/` following the modular pattern\n3. **API Integration**: Extend `src/services/agents.ts` for new endpoints with proper caching\n4. **Database Extensions**: Update `src/services/database.ts` schema for new data requirements\n\n## 📊 Enhanced Monitoring \u0026 Alerts\n\n### Multi-Level Portfolio Alerts\n\n- **USD Milestone Alerts**: When your portfolio hits specific dollar values\n- **Percentage Change Alerts**: Configurable sensitivity for portfolio value fluctuations\n- **Continuous Monitoring**: Real-time tracking with customizable check intervals\n\n### Advanced Price Alert System\n\n- **Minor Alerts** (🔵): 1-5% price changes for subtle market movements\n- **Major Alerts** (🟠): 5-15% price changes for significant movements\n- **Critical Alerts** (🔴): 15%+ price changes for major market events\n- **Per-Token Configuration**: Independent settings for each monitored token\n- **Alert Type Control**: Enable/disable specific severity levels per token\n\n- **Base Token Monitoring**: Track the fundamental token that affects all agent prices\n- **Market Impact Notifications**: Alerts about potential market-wide price movements\n- **Severity-Based Messaging**: Different alert styles based on price change magnitude\n- **Cross-Market Insights**: Understanding how IQ price changes affect the entire ecosystem\n\n### Enhanced Error Handling\n\n- Automatic retry logic with exponential backoff for API calls\n- Graceful error handling with user-friendly notifications\n- Comprehensive logging with configurable levels for debugging\n- Circuit breaker patterns for API reliability\n\n## 🔐 Enhanced Security\n\n- Comprehensive environment variables validation using Zod with detailed error messages\n- Input validation and sanitization for all user commands\n- Rate limiting and request throttling through axios-retry\n- Secure database operations with prepared statements\n- No sensitive data persistence in memory or logs\n\n## 📈 Performance Optimizations\n\n- Intelligent API caching and retry mechanisms with circuit breakers\n- Configurable monitoring intervals to balance responsiveness and resource usage\n- Optimized database queries with proper indexing\n- Memory-efficient operations for continuous monitoring\n- Asynchronous processing for all monitoring services\n\n## 🚀 Deployment\n\n### Railway Deployment\n\nThe bot is optimized for Railway deployment with enhanced configuration:\n\n1. **Fork this repository**\n2. **Connect to Railway**: Link your GitHub repo to Railway\n3. **Set environment variables** in Railway dashboard:\n\n   ```bash\n   TELEGRAM_BOT_TOKEN=your_bot_token\n   WALLET_ADDRESS=your_wallet_address\n   NODE_ENV=production\n   LOG_LEVEL=info\n   ```\n\n4. **Deploy**: Railway will automatically build and deploy\n5. **IMPORTANT**: Ensure you add Python as language provider to build better-sqlite3 binaries\n\u003cimg src=\"./assets/config.png\" /\u003e\n\n### Railway Configuration\n\nCreate a `railway.json` file for optimal deployment:\n\n```json\n{\n  \"$schema\": \"http://json-schema.org/draft-07/schema#\",\n  \"build\": {\n    \"builder\": \"NIXPACKS\"\n  },\n  \"deploy\": {\n    \"startCommand\": \"pnpm start\",\n    \"restartPolicyType\": \"ALWAYS\"\n  }\n}\n```\n\nThe SQLite database will be stored in Railway's persistent filesystem with automatic optimization.\n\n## 🐛 Troubleshooting\n\n### Common Issues\n\n1. **Bot not responding**: Check if `TELEGRAM_BOT_TOKEN` is correct and bot is running\n2. **No portfolio data**: Verify `WALLET_ADDRESS` is correct and has holdings on Fraxtal\n3. **API errors**: Check if IQ API is accessible and rate limits aren't exceeded\n4. **Database errors**: Ensure proper file permissions and storage availability\n5. **Compilation issues**: Install platform-specific build tools (see installation notes)\n6. **Configuration issues**: Use `/config` command to verify all settings\n7. **Alert spam**: Use `/alert_config` and `/iq_alerts` to fine-tune notification levels\n\n### Debug Mode\n\nSet `LOG_LEVEL=debug` in your `.env` file for comprehensive logging including:\n\n- API request/response details\n- Database operation logs\n- Monitoring service status updates\n- Configuration change tracking\n\n### Advanced Troubleshooting\n\n- **Monitoring Status**: Use `/status` to check all service health\n- **Configuration Review**: Use `/config` for complete settings overview\n- **Alert History**: Use `/alerts` to review recent notification patterns\n- **Database Health**: Built-in database optimization and maintenance routines\n\n## 🎮 Pro Usage Tips\n\n### Optimal Configuration Strategy\n\n1. **Start Conservative**: Begin with higher thresholds and longer intervals\n2. **Gradual Tuning**: Reduce thresholds based on your noise tolerance\n3. **Layered Monitoring**: Use different sensitivity levels for different tokens\n4. **IQ Integration**: Always monitor IQ token for market-wide insights\n5. **Regular Review**: Use `/config` and `/status` to review and optimize settings\n\n### Advanced Monitoring Patterns\n\n```bash\n# High-value portfolio with sensitive monitoring\n/set_threshold 10000\n/set_change_threshold 3\n/set_interval 180\n\n# Major tokens with graduated alerts\n/watch_advanced 0xTOKEN1 1 5 15 30\n/watch_advanced 0xTOKEN2 2 8 20 60\n\n# IQ market intelligence\n/iq_config 1 5 12 45\n/iq_alerts on on on\n```\n\n## 📄 License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## 🔗 Links\n\n- [IQ Agents Platform](https://app.iqai.com)\n- [Telegram Bot API](https://core.telegram.org/bots/api)\n- [Railway Deployment](https://railway.app)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpsxtreme%2Fatp-watcher-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpsxtreme%2Fatp-watcher-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpsxtreme%2Fatp-watcher-bot/lists"}