Mayor Wizzy's Exchange
A Telegram OTC crypto trading bot with an admin dashboard

The Idea
Automate the manual, chat-based crypto OTC trading flow — customer messages an admin, negotiates a rate, sends payment, waits for a manual transfer — into a structured, guided Telegram bot.
The Problem
Manual OTC crypto trading over chat is slow and error-prone on both sides: rates go stale mid-conversation, payment proof gets lost in DMs, and payouts are tracked by memory.
The Solution
A Grammy-based Telegram bot with guided buy/sell conversations and admin-set exchange rates, backed by a Fastify API and a Postgres/Drizzle data layer, a Next.js admin dashboard for rates, transactions, and automation rules, and direct integrations with Mono (Nigerian bank account verification) and Tron (on-chain crypto transfers) to move toward automated payouts and deposit verification.
My Role
Solo — built the bot conversations and admin notification flow, the shared database package, the admin dashboard (rates, transactions, automation history, analytics), and the Mono/Tron service integrations.
Challenges
Coordinating shared state across three surfaces — the Telegram bot, the REST API, and the admin dashboard — through one database package without tight coupling, and building automation rules that are transparent about why an auto-send did or didn't happen, rather than a black box.
Status
In Progress / Experimental. The bot, dashboard, and blockchain/banking integrations are functionally built and deployed per client; some announced capabilities are still evolving, so I'm labeling this honestly as in progress rather than finished.
Key Features
- Guided Telegram buy/sell conversations with live rate-setting
- Admin notifications and inline transaction-action keyboards inside Telegram
- Admin dashboard for rates, transactions, and automation history — every auto-send/auto-verify attempt logged, success or failure
- Mono integration for bank account verification
- Tron integration for on-chain crypto movement
- Multi-client architecture — a second deployment reuses the same platform for a different client by swapping environment variables, no code changes
Technology