Jumpa is a Telegram-based collaborative trading bot that enables users to create groups for collective cryptocurrency trading on Solana and EVM blockchains.
Test the bot on Telegram π Jumpa Bot
Watch the Demo Video on YouTube π Demo Video
- Multi-Chain Support: Trade on Solana and EVM-compatible chains
- Collaborative Trading: Create groups and make collective trading decisions
- Multi-Wallet Management: Support for multiple Solana and EVM wallets
- Secure Key Storage: Encrypted private key storage
- Fiat On/Off Ramp: NGN withdrawal support via integrated payment gateway
- On-Chain State: Anchor smart contract integration for transparent group management
- Social Trading: Referral system and community-driven decision making
- Runtime: Node.js with TypeScript
- Bot Framework: Telegraf (Telegram Bot API)
- Database: MongoDB with Mongoose ODM
- Blockchain:
- Solana (web3.js, Anchor, SPL Token)
- EVM (ethers.js)
@solana/web3.js- Solana blockchain interaction@coral-xyz/anchor- Solana smart contract frameworktelegraf- Telegram bot developmentethers- Ethereum wallet & transactionsmongoose- MongoDB object modeling
jumpa/
βββ src/ # Source code
β βββ index.ts # Application entry point
β βββ core/ # Core configuration & infrastructure
β β βββ config/ # Environment configuration
β β βββ database/ # Database connection & models
β β βββ models/ # Mongoose schemas (User, Group, Wallet, etc.)
β βββ blockchain/ # Blockchain integrations
β β βββ solana/ # Solana & Anchor services
β β βββ base/ # Base chain integration
β β βββ shared/ # Shared blockchain utilities
β β βββ interfaces/ # Common interfaces
β β βββ types/ # Type definitions
β β βββ utils/ # Shared blockchain helpers
β βββ features/ # Feature modules (Domain-Driven Design)
β β βββ onboarding/ # User registration & onboarding
β β β βββ commands/ # /start command
β β β βββ callbacks/ # Callback query handlers
β β β βββ handlers/ # Message handlers
β β β βββ services/ # Business logic
β β β βββ utils/ # Helper functions
β β βββ wallets/ # Wallet management
β β β βββ commands/ # /wallet, /import commands
β β β βββ callbacks/ # Wallet action handlers
β β β βββ services/ # Balance, creation services
β β β βββ utils/ # Wallet utilities
β β βββ groups/ # Group operations
β β β βββ commands/ # /create_group, /join, /leave commands
β β β βββ callbacks/ # Group action handlers
β β β βββ services/ # Group management logic
β β β βββ utils/ # Group helpers
β β βββ trading/ # Token trading
β β β βββ commands/ # /buy, /sell commands
β β β βββ callbacks/ # Trade confirmation handlers
β β β βββ services/ # Trading logic & execution
β β β βββ utils/ # Trade utilities
β β βββ payments/ # Fiat on/off ramp
β β β βββ commands/ # /withdraw command
β β β βββ callbacks/ # Payment flow handlers
β β β βββ services/ # Payment gateway integration
β β β βββ utils/ # Payment helpers & conversions
β β βββ users/ # User management
β β β βββ commands/ # User-related commands
β β β βββ callbacks/ # User action handlers
β β β βββ services/ # User services
β β β βββ utils/ # User utilities
β β βββ referrals/ # Referral system
β β βββ commands/ # Referral commands
β β βββ callbacks/ # Referral handlers
β β βββ services/ # Referral logic
β β βββ utils/ # Referral utilities
β βββ telegram/ # Telegram bot infrastructure
β β βββ commands/ # Command manager & registration
β β βββ callbacks/ # Callback query router
β βββ shared/ # Shared utilities
β β βββ utils/ # Helper functions (encryption, formatting)
β β βββ state/ # In-memory state management
β βββ images/ # Static assets
βββ docs/ # Documentation
β βββ ARCHITECTURE_SUMMARY.md # Architecture overview
β βββ ON_CHAIN_COMMANDS_GUIDE.md # On-chain integration guide
β βββ TESTING_GUIDE.md # Testing instructions
β βββ debug/ # Debug logs & artifacts
βββ scripts/ # Utility scripts
- Node.js (v18 or higher)
- npm or yarn
- MongoDB database
- Telegram Bot Token (from @BotFather)
- Solana RPC endpoint (Mainnet/Devnet)
- (Optional) EVM RPC endpoint
-
Clone the repository
git clone https://github.com/official-jumpa/jumpa.git cd jumpa -
Install dependencies
npm install
-
Configure environment variables
Create a
.envfile in the root directory:# Bot Configuration BOT_TOKEN=your_telegram_bot_token # Database # DB_URL=mongodb+srv://username:password@cluster.mongodb.net/jumpa # Solana SOL_MAINNET=https://api.mainnet-beta.solana.com SOL_DEVNET=https://api.devnet.solana.com RPC_URL=https://api.mainnet-beta.solana.com # EVM (Optional) EVM_RPC_URL=https://eth-sepolia.g.alchemy.com/v2/your-key # Payment Gateway (Yara) PAYMENT_WIDGET_URL= PAYMENT_RATE_URL= YARA_API_KEY=your_yara_api_key # Security ENCRYPTION_KEY=your_256_bit_hex_key GEMINI_API_KEY="xxxx" PAYSTACK_BEARER_KEY="xxxxx"
-
Generate encryption key
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Copy the output to
ENCRYPTION_KEYin.env
npm run devnpm run buildnpm run build
npm startThe project uses TypeScript path aliases for clean imports:
import { config } from "@core/config/config";
import { User } from "@database/models/user";
import { WalletService } from "@modules/wallets/balanceService";
import { encryption } from "@shared/utils/encryption";Features are organized by domain (Domain-Driven Design):
- Each feature contains its commands, callbacks, and utils
- Clear separation of concerns
- Easy to test and maintain
In-memory state management for multi-step user flows:
- User actions (wallet import, PIN setup)
- Withdrawal flows
- Trade confirmations
- Bank updates
# Railway will automatically:
# 1. Run npm install
# 2. Run npm run build
# 3. Run npm startSet the following:
- Build Command:
npm run build - Start Command:
npm start - Environment Variables: Add all variables from
.env
BOT_TOKEN- Telegram bot tokenDB_URL- MongoDB connection stringRPC_URL- Solana RPC endpointENCRYPTION_KEY- 256-bit encryption key- All other variables from
.envfile
- Private Key Encryption: All private keys are encrypted
- Environment Variables: Sensitive data stored in environment variables
- Rate Limiting: Built-in rate limiting for bot commands
npm testSee Testing Guide for detailed testing instructions.
/start- Register and create wallet/wallet- Manage wallets/create_group- Create/manage groups/buy- Buy tokens/sell- Sell tokens/withdraw- Withdraw to NGN/help- Show help message
/create_group- Create new group/join- Join existing group/leave_group- Leave group/group- View group details/poll- Create poll for trading decision
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
ISC License
- CEO and Co-founder - Anita Ndukwe
- COO and Co-founder - Udoma Christian
- CTO and Fullstack Developer - Damian Olebuezie
Report issues at: https://github.com/official-jumpa/jumpa/issues