The Ultimate Blockchain-Powered Word Game | Call a Letter โ Name a Word โ Win XLM
I CALL ON is a revolutionary multiplayer word game that combines classic gameplay with cryptocurrency rewards. Players compete in real-time, and winners earn XLM (Stellar Lumens) directly to their wallets.
- One player calls a letter (A-Z)
- All players race to name:
- ๐ Place (country, city)
- ๐ฆ Animal
- ๐ Object
- ๐ค Name
- ๐จ Color
- First correct answers win XLM
- Compete globally on leaderboards
- โก Real-time multiplayer (2-10 players)
- โฑ๏ธ 60-second rounds with countdown timer
- ๐ Blockchain-verified answers
- ๐ฐ Instant XLM rewards to winners
- ๐ Global matchmaking & tournaments
- ๐ Global leaderboards (All-Time, Monthly, Weekly)
- ๐๏ธ Tournament system with brackets
- ๐ฏ Achievement badges & NFT rewards
- ๐ฅ Win streak tracking
- ๐ Player statistics & analytics
- ๐ต Direct XLM payouts to Stellar wallets
- ๐ Daily login bonuses (0.5 XLM)
- ๐ฅ Referral rewards (1 XLM per referral)
- ๐ Tournament bonuses (10+ XLM)
- ๐๏ธ Achievement rewards
- ๐ผ๏ธ Exclusive NFT collectibles
- Frontend: Next.js 14, React 18, TypeScript
- Backend: Node.js, Express, PostgreSQL
- Blockchain: Stellar Soroban (Smart Contracts)
- Wallet: Freighter (Stellar Wallet)
- Multiplayer: WebSocket real-time sync
- Verification: AI-powered answer validation
- Node.js 18+
- PostgreSQL 13+
- Docker & Docker Compose (optional)
- Freighter Wallet (browser extension)
# Clone repository
git clone https://github.com/0xchantel/btc.git
cd btc
# Setup development environment
bash scripts/setup.sh
# Start development server
npm run devAccess:
- ๐ Frontend: http://localhost:3000
- ๐ก Multiplayer: ws://localhost:8080
- ๐๏ธ Database: localhost:5432
# Start all services
docker-compose up -d
# Stop services
docker-compose downbtc/
โโโ ๐ app/
โ โโโ game/page.tsx # Main game interface
โ โโโ page.tsx # Landing page
โ โโโ layout.tsx # Root layout
โ โโโ globals.css # Global styles
โ
โโโ ๐ components/
โ โโโ GameComponents/ # Game UI (Letter, Answer, Results)
โ โโโ Wallet/ # Wallet connection
โ โโโ Leaderboard/ # Rankings display
โ โโโ PlayerStats/ # User statistics
โ
โโโ ๐ contexts/
โ โโโ GameContext.tsx # Game state management
โ โโโ WalletContext.tsx # Wallet state management
โ
โโโ ๐ lib/
โ โโโ gameLogic.ts # Game engine
โ โโโ sorobanIntegration.ts # Blockchain interaction
โ โโโ walletManager.ts # Wallet management
โ โโโ answerVerification.ts # Answer validation
โ โโโ multiplayerService.ts # WebSocket client
โ โโโ tournamentManager.ts # Tournament logic
โ โโโ achievementSystem.ts # Achievements & rewards
โ โโโ types.ts # TypeScript definitions
โ
โโโ ๐ server/
โ โโโ multiplayer-server.ts # WebSocket server
โ โโโ Dockerfile # Server container
โ
โโโ ๐ contracts/
โ โโโ ICallOn.rs # Soroban smart contract
โ โโโ Cargo.toml # Contract dependencies
โ
โโโ ๐ database/
โ โโโ schema.sql # Database structure
โ โโโ client.ts # Database client
โ โโโ migrations/ # Database migrations
โ
โโโ ๐ scripts/
โ โโโ setup.sh # Development setup
โ โโโ deploy.sh # Production deployment
โ โโโ migrate.sh # Database migration
โ โโโ deploy-contract.sh # Smart contract deployment
โ โโโ docker-build.sh # Docker image build
โ โโโ dev.sh # Local dev startup
โ โโโ test.sh # Run all tests
โ
โโโ Dockerfile # Application container
โโโ docker-compose.yml # Multi-container setup
โโโ package.json # Dependencies & scripts
โโโ tsconfig.json # TypeScript config
โโโ next.config.js # Next.js config
โโโ README.md # This file
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Player Connects Wallet (Freighter) โ
โ โ
Ready to play โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Select Letter (A-Z) โ
โ โฑ๏ธ 60-second countdown starts โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Players Submit Answers โ
โ ๐ฏ Place, Animal, Object, Name, Color โ
โ ๐ก Real-time multiplayer sync โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Answer Verification (AI + Blockchain) โ
โ โ Levenshtein distance matching โ
โ โ Database validation โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Determine Category Winners โ
โ ๐ First correct answer per category โ
โ ๐ฐ Soroban contract distributes XLM โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Display Results โ
โ ๐ Statistics & rewards โ
โ ๐๏ธ Check achievements unlocked โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
POST /api/game/start- Start new roundPOST /api/game/answer- Submit answerGET /api/game/results/{roundId}- Get round resultsGET /api/leaderboard- Get global leaderboardGET /api/player/stats- Get player statistics
POST /api/wallet/connect- Connect walletGET /api/wallet/balance- Get XLM balancePOST /api/wallet/verify- Verify wallet signature
POST /api/tournaments/create- Create tournamentPOST /api/tournaments/{id}/join- Join tournamentGET /api/tournaments/active- Get active tournamentsGET /api/tournaments/{id}/standings- Tournament standings
The contract handles:
- โ Game round initialization
- โ Prize distribution (XLM transfers)
- โ Leaderboard updates
- โ Achievement tracking
- โ Transaction verification
Key Functions:
pub fn create_round(env, round_id, letter, players, prize_pool)
pub fn verify_answers(env, round_id, answers)
pub fn distribute_prizes(env, round_id, recipients)
pub fn get_leaderboard(env, limit)
pub fn get_player_stats(env, player)Deploy Contract:
bash scripts/deploy-contract.sh testnet- players - User profiles & stats
- game_rounds - Round history
- player_answers - Submitted answers
- round_winners - Winners per category
- tournaments - Tournament details
- achievements - Achievement definitions
- leaderboard_cache - Cached rankings
Initialize Database:
bash scripts/migrate.sh- Registration Phase - Players join (upcoming)
- Active Phase - Rounds are played
- Completion Phase - Winners determined
- ๐ฅ 1st Place: 50% of pool
- ๐ฅ 2nd Place: 30% of pool
- ๐ฅ 3rd Place: 20% of pool
- Points: 3 per win, 0 per loss
- Earnings: Total XLM won
- Win Rate: (Wins / Total Rounds) ร 100
- ๐ First Victory (1 XLM)
- ๐ World Traveler - 10 Place wins
- ๐ฆ Zoo Master - 10 Animal wins
- ๐ฅ On a Roll - 10 total wins (5 XLM)
- โก Unstoppable - 5-game win streak (10 XLM)
- ๐ฐ Crypto Millionaire - 100 XLM earned
- ๐ Champion - 100 wins (50 XLM + NFT)
- โจ Legendary - 10-game win streak (25 XLM + NFT)
# Set environment variables
export DATABASE_URL="postgresql://user:pass@host/icall_on"
export SOROBAN_CONTRACT_ID="CAAAA..."
export SOROBAN_ACCOUNT="GAAAA..."
# Deploy everything
bash scripts/deploy.sh# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/icall_on
# Stellar Network
NEXT_PUBLIC_STELLAR_NETWORK=testnet
NEXT_PUBLIC_STELLAR_SERVER_URL=https://horizon-testnet.stellar.org
# Smart Contract
NEXT_PUBLIC_SOROBAN_CONTRACT_ID=CAAAA...
SOROBAN_ACCOUNT=GAAAA...
# Multiplayer
NEXT_PUBLIC_MULTIPLAYER_URL=ws://localhost:8080
# API Keys (optional)
NEXT_PUBLIC_API_KEY=...
API_SECRET=...# Run all tests
bash scripts/test.sh
# Unit tests only
npm run test:unit
# Integration tests only
npm run test:integration
# Type checking
npm run type-check
# Linting
npm run lintconst multiplayer = new MultiplayerService('ws://localhost:8080')
await multiplayer.connect(playerId)
// Join session
multiplayer.joinSession(sessionId, player)
// Submit answer
multiplayer.submitAnswer(playerId, 'place', 'Brazil', roundId)
// Listen for events
multiplayer.on('player_joined_session', (data) => {
console.log(`${data.playerName} joined! Total: ${data.totalPlayers}`)
})player_joined- New player connectedanswer_submitted- Player submitted answerround_ended- Round completedchat- Chat messagegame_state_update- Game state changed
- Format Check - Trim, lowercase, validate letter
- Exact Match - Check against database
- Fuzzy Match - Levenshtein distance (>80%)
- Variations - Plural forms, common misspellings
- Confidence Score - 0-100 accuracy rating
- Place: 50+ countries & cities per letter
- Animal: 100+ animals per letter
- Object: 100+ objects per letter
- Name: 100+ names per letter
- Color: 100+ colors per letter
โ Fully responsive design
- Mobile: 320px - 768px
- Tablet: 768px - 1024px
- Desktop: 1024px+
โ Touch-optimized buttons โ Mobile-first CSS โ Progressive Web App ready
Contributions welcome! Please follow:
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
โจ [1] Initial project setup with Next.js frontend
๐จ [2] Create home page with hero section and features
๐ฎ [3] Add game components (letter selector, answer input)
๐ฐ [4] Implement wallet connection (Freighter integration)
๐ [5] Create leaderboard component
๐ [6] Add player statistics dashboard
๐ฏ [7] Implement game logic engine
โ๏ธ [8] Add Stellar Soroban smart contract
๐ [9] Create wallet manager
๐ [10] Add TypeScript type definitions
๐ฎ [11] Create game context (state management)
๐ผ [12] Add wallet context provider
๐ [13] Implement answer verification service
๐ก [14] Create multiplayer WebSocket service
๐
[15] Add tournament management system
๐๏ธ [16] Implement achievement & rewards system
๐๏ธ [17] Create PostgreSQL database schemas
๐ [18] Implement database client
๐ [19] Add deployment scripts & Docker setup
๐ [20] Rewrite README with comprehensive documentation
MIT License ยฉ 2024 I CALL ON
- Stellar - Blockchain infrastructure
- Soroban - Smart contract platform
- Freighter - Wallet integration
- Next.js - React framework
- PostgreSQL - Database
- ๐ Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
- ๐ง Email: support@icall-on.dev
- ๐ฆ Twitter: @ICallOnGame
- Core game mechanics
- Multiplayer support
- Blockchain integration
- Leaderboards & tournaments
- Mobile app (React Native)
- Voice chat integration
- Mainnet deployment
- Game NFT marketplace
- Governance token ($CALL)
- DAO treasury system
Made with โค๏ธ by the I CALL ON Team
โญ Star this repository if you enjoy the project!