Format: BTC prediction tournament inside Telegram
Type: NOT a bookmaker, but a prediction contest with a prize pool
⸻
1. GENERAL CONCEPT
The price of BTC is fixed every hour.
The user chooses:
• 📈 Higher
• 📉 Lower
A new price is fixed after 60 minutes.
If the prediction is correct — points are awarded.
At the end of the day/week, the prize pool is distributed.
⸻
2. PLATFORM
Format:
Telegram Mini App (WebApp inside Telegram)
Authorization:
Through Telegram WebApp Auth
Use Telegram ID as a unique user key.
⸻
3. TECHNOLOGIES
Frontend:
• React / Next.js
• Telegram WebApp SDK
Backend:
• Node.js (Express) or Python (FastAPI)
• PostgreSQL
Integrations:
• API for obtaining BTC price (specify the exchange, e.g., MEXC or Binance)
• Cron for fixing the price every hour
⸻
4. ROUND LOGIC
Every hour:
1. At 00 minutes, the starting price is fixed
2. Users can vote for 55 minutes
3. Voting is closed in the last 5 minutes
4. In the next hour, the final price is fixed
5. The result is determined
If the final price > starting price → "Higher" wins
If the final price < starting price → "Lower" wins
If equal → the round is canceled
⸻
5. POINT SYSTEM
Basic model:
• Correct prediction = +1 point
• Incorrect = 0
• Draw = point return (if paid model)
Additionally:
If the user is in the minority and is correct — +2 points
(implement dynamic crowd percentage logic)
⸻
6. ECONOMICS
Model: Access to the tournament
Rates:
• Day — $10
• Week — $40
• PRO — $99
The user pays for access to participate in rounds.
Prize pool:
• 70% is distributed among TOP players
• 30% — platform commission
Distribution:
1st place — 40%
2nd place — 20%
3rd place — 10%
Others — proportionally
⸻
7. SCREENS
7.1 Main
• Current BTC price
• Timer until the end of the round
• Buttons: HIGHER / LOWER
• Percentage of voters
• User status (voted / not)
⸻
7.2 Leaderboard
• TOP 10
• Current user position
• Number of points
⸻
7.3 Profile
• Nickname
• Balance
• Level
• Win streak
• Season statistics
⸻
7.4 Round History
• Round number
• Prediction
• Result
• Points awarded
⸻
8. SEASONAL SYSTEM
• Season 30 days
• At the end of the season, the rating is fixed
• Prize distribution
• Points reset
⸻
9. ADDITIONAL MECHANICS
9.1 Win Streak
• Display current streak
• Bonus points for 3+ in a row
9.2 Against the Crowd
• Show % of votes
• If a player chooses a side <35% and is correct — bonus
9.3 Player Levels
• Newbie
• Trader
• Countertrend
• Speculator
• Legend
⸻
10. ADMIN PANEL
Need to implement:
• Manual start/stop of the tournament
• View all users
• View transactions
• Change bonus coefficients
• Manual adjustment of points
• Manage the prize pool
⸻
11. DATABASE (MINIMUM)
Tables:
users
• id
• telegram_id
• username
• balance
• total_points
• level
• streak
rounds
• id
• start_price
• end_price
• start_time
• end_time
• result
predictions
• id
• user_id
• round_id
• choice
• points_awarded
transactions
• id
• user_id
• amount
• type
• timestamp
⸻
12. SECURITY
• Telegram signature verification
• Limit one prediction per round
• Protection against resubmission
• Server-side price fixing (not from the client)
⸻
13. VISUAL STYLE
• Dark background
• Orange accents
• Minimalism
• Large timer
• Animation for the last 10 seconds
⸻
14. MVP DEADLINES
Stage 1 (MVP):
• Authorization
• Round
• Points
• Leaderboard
• Access payment
⸻