Skip to content

ignit3bot/ignit3

Repository files navigation

🔥 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 start

Demo / 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=true

This 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 types

The src/sdk module mirrors the documented @ignit3/sdk API exactly. Once the real package ships, swap the imports in src/services/ignit3.ts for @ignit3/sdk.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages