A decentralized social app built for Solana Mobile, featuring token-gated communities, on-chain messaging, escrow trading, and meme challenges.
- π Features
- π§ Technology Stack
- π± Solana Mobile Stack Implementation
- ποΈ Project Structure
- β‘ Quick Start
- π οΈ Prerequisites
- π¦ Installation
- π§ͺ Testing
- π Security
- π€ Contributing
- π License
- π Contact
- π€ User Profiles: Create and customize your on-chain profile with NFT profile pictures
- π Token-Gated Groups: Create and join exclusive communities based on token or NFT ownership
- π¬ Messaging System: Send messages in groups and tip content creators with SOL or SPL Tokens
- π€ Escrow System: Securely trade tokens with other users through on-chain escrow in "Whale Groups"
- π¨ Invite System: Generate and share invite links to bring friends into groups
- π Meme Challenges: Create AI-powered meme contests with SOL or token rewards
- π Educational Rewards: Complete tutorials to earn SOL or token rewards
- π Community Contests: Participate in community-driven challenges and competitions
- π± Native Mobile App: Built specifically for Android with React Native
- π Wallet Integration: Seamless connection with Phantom, Backpack, and other mobile wallets
- β‘ Fast Transactions: Optimized for mobile blockchain interactions
| Component | Technology | Version |
|---|---|---|
| Frontend | React Native (Expo) | Latest |
| Blockchain | Solana (Anchor Framework) | Latest |
| Mobile Integration | Solana Mobile Stack (SMS) | Latest |
| Wallet Support | Mobile Wallet Adapter (MWA) | Latest |
| Language | TypeScript | Latest |
| State Management | React Context | Built-in |
| Storage | AsyncStorage | React Native |
- Wallet Authorization: Secure connection to mobile wallets (Phantom, Backpack, Solflare)
- Transaction Signing: Native transaction signing through mobile wallets
- Message Signing: Off-chain message signing for authentication
- Session Management: Persistent wallet sessions with automatic reauthorization
- Persistent Sessions: Users stay connected between app sessions
- Smart Reauthorization: Automatic wallet reconnection on app restart
- Cache Invalidation: Proper cleanup on disconnect/deauthorize
- Error Recovery: Handles corrupt cache data gracefully
- Combined Authentication: Single-step wallet verification
- Cryptographic Verification: Verifies signature authenticity
- Domain-Specific Signing: Customized signing messages for security
- Enhanced Security Model: Prevents impersonation attacks
- Dynamic Detection: Discovers installed mobile wallets
- Multi-Wallet Support: Works with Phantom, Backpack, Solflare
- Wallet Status Monitoring: Shows wallet readiness and connection status
- Native UI Components: Uses Expo's bottom sheet for wallet interactions
- Cross-Platform Ready: Optimized for Android with iOS compatibility
- Phantom Wallet Support: Enhanced integration with Phantom mobile wallet
chumchon_mobile/
βββ android/ # Android native project files
βββ app/ # Expo Router entry (if used)
βββ assets/ # Images, fonts, icons
βββ chumchon_program/ # Solana Anchor program
βββ components/ # React Native UI components
β βββ solana/ # Solana-specific components
β β βββ WalletDiscovery.tsx # Wallet discovery component
β βββ ...
βββ constants/ # App-wide constants
βββ hooks/ # Custom React hooks
βββ ios/ # iOS native project files (if needed)
βββ src/ # Main app source code
β βββ assets/
β βββ components/
β βββ contexts/
β β βββ SolanaProvider.tsx # Core Solana context with MWA
β βββ idl/
β βββ navigation/
β βββ screens/
β β βββ auth/
β β βββ LoginScreen.tsx # Wallet connection UI
β βββ services/
β βββ utils/
β β βββ siws.ts # Sign In with Solana utilities
β βββ theme.ts
βββ utils/ # Utility functions
βββ App.tsx # App entry point with MWA setup
βββ app.json # Expo config with MWA plugin
βββ package.json # Project dependencies
βββ tsconfig.json # TypeScript config
βββ README.md # This file
- Download the APK: Direct Download Link
- Install on Android: Open the APK file and install
- Connect Wallet: Open the app and connect your Solana mobile wallet
- Start Socializing: Join groups, send messages, and participate in challenges!
# Clone the repository
git clone https://github.com/GHX5T-SOL/chumchon.git
cd chumchon_mobile
# Install dependencies
npm install
# Start the development server
npm start
# Run on Android
npm run android- Android Device: Android 8.0+ or Android emulator
- Solana Mobile Wallet: Phantom, Backpack, or Solflare
- Devnet Configuration: Set wallet to devnet for testing
- Node.js: Version 18 or higher
- npm or yarn: Package manager
- Android Studio: For Android development
- Expo CLI: For React Native development
- Solana CLI: For blockchain interactions
- Download APK: Download Link
- Enable Unknown Sources: Go to Settings > Security > Unknown Sources
- Install APK: Open the downloaded file and install
- Launch App: Open Chumchon from your app drawer
Visit: https://chumchon--demo.expo.app/
# Install dependencies
npm install
# Start Expo development server
npx expo start
# Scan QR code with Expo Go app
# Or press 'a' for Android emulator# Navigate to the program directory
cd chumchon_program
# Run Anchor tests
anchor test
# Run specific test file
anchor test --skip-local-validator# Run unit tests
npm test
# Run integration tests
npm run test:integration
# Run E2E tests
npm run test:e2e- Test with Phantom mobile wallet
- Test with Backpack mobile wallet
- Test with Solflare mobile wallet
- Verify MWA authorization caching
- Test SIWS functionality
- Secure Token Transfers: All transfers go through escrow contracts
- Account Validation: Comprehensive validation in all Solana instructions
- Reentrancy Protection: Protection against reentrancy attacks
- Error Handling: Robust error handling and recovery
- MWA Security: Secure wallet connections through Mobile Wallet Adapter
- SIWS Verification: Cryptographic verification of wallet ownership
- Cache Security: Secure storage of authorization tokens
- Session Management: Proper session cleanup and invalidation
- Encrypted Storage: Sensitive data encrypted in AsyncStorage
- Network Security: Secure communication with Solana network
- Input Validation: Comprehensive input validation and sanitization
We welcome contributions to Chumchon! Here's how you can help:
- Check existing issues first
- Create a new issue with detailed description
- Include steps to reproduce
- Add screenshots if applicable
- Open a feature request issue
- Describe the feature in detail
- Explain the use case and benefits
- Consider implementation complexity
- 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
- Follow TypeScript best practices
- Use meaningful variable and function names
- Add comments for complex logic
- Write tests for new features
- Follow React Native conventions
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License - see the LICENSE file for details.
β You are free to:
- Share β Copy and redistribute the material in any medium or format
- Adapt β Remix, transform, and build upon the material for personal/educational use
- Attribution β Must give appropriate credit to Chumchon Team
β Restrictions:
- NonCommercial β You may not use this material for commercial purposes
- No Rebranding β You may not claim this work as your own
- Commercial Use β Requires explicit permission from Chumchon Team
For commercial use, enterprise licensing, or business partnerships, please contact:
- Email: chumchon@proton.me
- Website: https://chumchon.app
CC BY-NC 4.0 Benefits:
- β Protects intellectual property rights
- β Allows personal and educational use
- β Requires attribution to original creators
- β Prevents commercial exploitation without permission
- β Encourages community learning and collaboration
| Platform | Link |
|---|---|
| π Website | https://chumchon.app |
| π¦ Twitter | https://x.com/chumchon_app |
| π§ Email | chumchon@proton.me |
| π± GitHub | https://github.com/GHX5T-SOL/chumchon |
- Solana Mobile Team: For the amazing Mobile Wallet Adapter and Solana Mobile Stack
- Expo Team: For the excellent React Native development platform
- Anchor Framework: For simplifying Solana program development
- Phantom Wallet: For leading mobile wallet innovation
- Codigo.ai: For troubleshooting bugs in Solana Program / smart contracts

