A Telegram-based game with Solana blockchain integration.
- Telegram bot integration
- Solana wallet integration
- Token-based access system
- Tweet-to-play functionality
- Leaderboard system
- Project points tracking
- Node.js 16+
- Docker and Docker Compose (for local development)
- MongoDB
- Redis
- Solana CLI (optional)
- Clone the repository:
git clone <repository-url>
cd solpump- Install dependencies:
npm install- Create your environment file:
cp .env.example .env- Update the
.envfile with your configuration:
- Generate JWT secrets
- Add your Telegram Bot token
- Configure your Solana wallet addresses
- (Optional) Add Twitter API keys
- Start the development environment:
docker-compose up -dThis will start:
- MongoDB instance
- Redis instance
- Development server with hot reload
- Access the application:
- Backend API: http://localhost:3000
- MongoDB: localhost:27017
- Redis: localhost:6379
- Auto-approves tweet verifications (no Twitter API needed)
- Uses Solana devnet
- Detailed logging
- Rate limiting simulation
- In-memory caching
POST /api/game/verify-wallet: Verify wallet connectionPOST /api/game/purchase-access: Purchase game accessGET /api/game/check-eligibility: Check play eligibilityPOST /api/game/verify-tweet: Verify tweet for free playGET /api/game/profile: Get user profileGET /api/game/rank-me: Get user rankingGET /api/game/projects: Get project listPOST /api/game/update-project: Update user's project
GET /api/public/leaderboard: Get game leaderboardGET /api/public/projects: Get public project list
The API implements rate limiting for:
- Play attempts: 10 per minute
- Tweet verifications: 5 per hour
- Wallet operations: 10 per hour
The system implements caching for:
- User profiles
- Project statistics
- Leaderboard data
- Wallet verifications
- Set environment variables:
NODE_ENV=production- Configure production services:
- Set up MongoDB Atlas or managed MongoDB
- Set up Redis Cloud or managed Redis
- Configure production Solana RPC endpoint
- Add Twitter API credentials
- Deploy using your preferred platform (Vercel, Heroku, etc.)
Run the test suite:
npm test- Create a feature branch
- Make your changes
- Submit a pull request
[License Type] - See LICENSE file for details