ignit3-telegram-bot
v1.0.0
Published
Ignit3 — Telegram bot for decentralized GPU compute on Solana
Downloads
64
Maintainers
Readme
🔥 Ignit3 — Telegram Bot
Telegram bot interface for Ignit3, a decentralized GPU compute platform on Solana. Built with TypeScript + grammY.
Features
- Dashboard (
/start) — live SOL price, network utilization, providers & VRAM online - ⚡ Run Task — submit a GPU compute job (task name → units → submit)
- 🦊 Get Quote — estimate cost before running, then run it in one tap
- 🖥 Providers — paginated list of GPU providers (region, GPU, price, reliability)
- 🤖 Agents — create / list / view / close persistent agent sessions
- 📁 My Jobs — look up job status by ID, with live progress & results
- 📊 Market — network market stats with 24h change
- 👛 Wallet — connect / refresh / disconnect a Solana wallet (base58 validated), with balance & reputation
- 🎮 GPUs — supported GPU models as a monospace table, sorted by price
- 🔗 Referral — referral code, link, earnings; deep-link attribution on
/start ref_XXX; copy & share - 🏗 Be Provider — multi-step GPU-provider onboarding (GPU → region → wallet check → submit → status)
- 🔔 Notifications — background polling notifies you when a submitted job completes or fails
- 💬 Ask Bot — keyword FAQ about Ignit3
- ⚙️ Settings — per-user API key, wallet, and notification toggle
- Persistent store — JSON-file DB with sensitive fields (API keys, wallets) AES-256-GCM encrypted at rest
- Clean inline-keyboard navigation with in-place message editing and loading states
Setup
npm install
cp .env.example .env # then fill in TELEGRAM_BOT_TOKEN (+ IGNIT3_API_KEY)Get a bot token from @BotFather.
Run
npm run dev # watch mode (tsx)
# or
npm run build && npm startDemo / mock mode
@ignit3/sdk and api.ignit3.dev are not publicly available yet. To try the bot
end-to-end without a live backend, set:
IGNIT3_MOCK=trueThis serves deterministic demo data for all API calls (providers, market, quotes, jobs that progress queued → running → completed, sessions, and a simulated SOL price).
Environment variables
| Variable | Required | Default | Description |
| -------------------- | -------- | ------------------------------ | ------------------------------------ |
| TELEGRAM_BOT_TOKEN | ✅ | — | Bot token from BotFather |
| IGNIT3_API_KEY | — | demo-key | Ignit3 API key (Bearer auth) |
| IGNIT3_BASE_URL | — | https://api.ignit3.dev/v1 | API base URL |
| COINGECKO_API_URL | — | https://api.coingecko.com/api/v3 | SOL price source |
| IGNIT3_MOCK | — | false | Serve built-in demo data |
| LOG_LEVEL | — | info | Log verbosity |
| DATABASE_PATH | — | ./data/ignit3.json | Persistent store location |
| DB_ENCRYPTION_KEY | — | TELEGRAM_BOT_TOKEN | Secret for encrypting data at rest |
| BOT_USERNAME | — | ignit3bot | Used for referral deep links |
| JOB_POLL_INTERVAL | — | 15000 | Job notification poll interval (ms) |
| JOB_POLL_TIMEOUT | — | 600000 | Max job polling duration (ms) |
Project structure
src/
├── index.ts # Entry point (DB + notifications init, command registration)
├── bot.ts # Bot instance, command/callback router, error boundary
├── config.ts # Environment configuration
├── sdk/index.ts # Vendored @ignit3/sdk (Ignit3Client + types)
├── handlers/ # One module per feature/menu (incl. wallet, gpus, referral, beProvider)
├── services/ # ignit3 facade (+ mock backend), SOL price, notifications
├── db/store.ts # Encrypted JSON persistence (users, wallets, referrals, prefs)
├── utils/ # keyboards, formatters, validators, conversation state
└── types/ # Shared typesThe
src/sdkmodule mirrors the documented@ignit3/sdkAPI exactly. Once the real package ships, swap the imports insrc/services/ignit3.tsfor@ignit3/sdk.
