A mobile application built with React Native + Expo and powered by Solana blockchain. Citizens report infrastructure damage (roads, public facilities, government establishments) and file complaints (employee conduct, service issues, inefficiency). The community validates reports, and participants earn XPHP tokens for their contributions. All records are permanently stored on the Solana blockchain for immutable transparency, accountability, and auditability. Directly connected to government agencies for action and accountability.
- Feasibility Study
- Quick Start
- Prerequisites
- Installation
- Running the App
- Project Structure
- Features
- Tech Stack
- Configuration
- Troubleshooting
- Resources
GoByerKnows is a decentralized infrastructure and complaints reporting platform leveraging Solana blockchain and Web3 technology to incentivize community participation in government accountability and public service improvement.
Problem Statement
- Infrastructure damage (roads, public buildings, utilities, government facilities) affects millions globally
- Employee complaints and service quality issues go unreported or are ignored
- Current reporting systems are centralized, slow, and lack incentives for participation
- Citizens have no economic motivation to report issues
- Government agencies struggle with damage and complaint prioritization
- Corruption and accountability issues plague public institutions
- No transparent audit trail for government action
Solution
- Unified platform for infrastructure damage AND employee complaints
- Community validation ensures report credibility and prevents fraud
- Token-based rewards (XPHP) incentivize quality reporting and participation
- All records permanently stored on Solana blockchain - Reports, comments, votes, and validations cannot be deleted or altered
- Blockchain-verified transactions ensure transparency and immutability
- Direct government notifications for accountability and action tracking
- Public audit trail for all reports, validations, and government resolutions
- Community voting/rating system for government officials by performance and accountability
- Decentralized storage ensures data integrity independent of any single authority
Existing Technology Stack
| Component | Status | Notes |
|---|---|---|
| React Native/Expo | ✅ Mature | Production-ready, 100k+ apps |
| Solana Blockchain | ✅ Live | 400+ TPS, $3-10 per transaction |
| Web3.js SDK | ✅ Stable | Official Solana library |
| Mobile APIs | ✅ Available | Camera, location, storage |
| AI/ML | ✅ Feasible | OpenAI Vision, custom models |
| Email Services | ✅ Available | SendGrid, Twilio |
Development Timeline
| Phase | Duration | Status |
|---|---|---|
| Phase 1: MVP | 4-6 weeks | ✅ In Progress |
| - Wallet connection | 1 week | ✅ Complete |
| - Report submission | 1 week | ✅ Complete |
| - UI/UX | 1 week | ✅ Complete |
| - Testing | 2 weeks | 🔄 Pending |
| Phase 2: Core Features | 6-8 weeks | ⏳ Not Started |
| - Validation system | 2 weeks | ⏳ Not Started |
| - Smart contract | 2 weeks | ⏳ Not Started |
| - AI verification | 2 weeks | ⏳ Not Started |
| - Testing & audit | 2 weeks | ⏳ Not Started |
| Phase 3: Enterprise | 4-6 weeks | ⏳ Not Started |
| - Government API | 1 week | ⏳ Not Started |
| - Email notifications | 1 week | ⏳ Not Started |
| - Token exchange | 2 weeks | ⏳ Not Started |
| - Launch prep | 2 weeks | ⏳ Not Started |
| TOTAL | 14-20 weeks | - |
Estimated Cost Breakdown
| Item | Estimate | Notes |
|---|---|---|
| Development | $50k-75k | 3-4 engineers, 5-6 months |
| Smart Contract Audit | $10k-20k | Essential for mainnet |
| Infrastructure | $5k-10k | Servers, databases, APIs |
| Testing/QA | $5k-10k | Comprehensive testing |
| Legal/Compliance | $5k-15k | Depending on jurisdiction |
| Marketing | $10k-20k | Launch and growth |
| Contingency | $10k | 10% buffer |
| TOTAL | $95k-160k | Typical startup budget |
Revenue Models
-
Government Contracts (Primary)
- License to municipalities
- Per-report fee ($0.50-$2.00)
- Annual subscription ($10k-100k)
- Estimated revenue: $500k-$2M annually
-
Token Economics
- Reporter: 10 XPHP per verified report
- Validator: 1 XPHP per successful validation
- Contributor (comment/update): 0.5-1 XPHP per helpful contribution
- Exchange rate: 1 XPHP = 1 PHP
- Monthly token cost: $8k-$25k for rewards (includes contributors)
-
B2B Services
- API access for contractors
- Premium analytics dashboard
- White-label solutions
Token Economics (XPHP)
Total Supply: Infinite (Algorithmic Supply)
Exchange Mechanism: Treasury-Backed (1:1 PHP/XPHP ratio)
Treasury Model:
- Backing: 100% collateralized by PHP reserves
- Minting: 1 PHP deposited = 1 XPHP minted
- Burning: 1 XPHP redeemed = 1 PHP withdrawn
- Governance: Treasury managed by DAO/Foundation
Government Partnership Budget (Monthly Operations):
- Government allocation per month: 15M-20M PHP
- Reporter rewards: ~5M-10M XPHP (100k-200k reports/month)
- Validator rewards: ~1M-2M XPHP (100k validations/month)
- Contributor rewards: ~0.5M-1M XPHP (comments, updates, evidence/photos)
- Administrative & infrastructure: ~2M-3M XPHP
- Platform development & maintenance: ~2M-5M PHP
- Total monthly budget: 15M-20M PHP from government
Funding Model:
- Primary: Government infrastructure budget allocation
- Secondary: Municipal government payments per report verified
- Tertiary: B2B API subscriptions and premium services
- Flow: Government deposits PHP → Mints equivalent XPHP → Distributed as rewards
Target Markets
- Primary: Philippines (PHP fiat, active government)
- Secondary: Southeast Asia (Vietnam, Thailand, Indonesia)
- Tertiary: Latin America, Africa (emerging markets)
Addressable Market
- Population covered: 500M+ people
- Government budgets for infrastructure: $200B+ annually
- Potential market share (0.1%): $200M+
Competitive Landscape
- Waze: Voluntary reporting, no incentives
- Google Maps: Crowdsourced, centralized
- Government apps: Low adoption, poor UX
- Unique advantage: Token incentives + blockchain transparency
Challenges
- Crypto regulation varies by country
- Government data security requirements
- Privacy concerns (location tracking)
- Token classification (utility vs. security)
Mitigations
- Start with Philippines (crypto-friendly)
- Comply with data protection (PDPA)
- Use anonymized aggregated data
- Legal review of token structure
- Government pilot programs
| Risk | Severity | Mitigation |
|---|---|---|
| Solana network downtime | Medium | Use fallback RPC, store locally |
| Smart contract bugs | High | Professional audit, testnet |
| User adoption | High | Incentives, partnerships |
| Image verification accuracy | Medium | Human review + AI |
| Government API integration | Medium | API spec compliance |
| Token price volatility | Medium | Stablecoins, fiat conversion |
- ✅ MVP functional and tested
- ✅ Wallet integration working
- ✅ Report submission with photos/location
- ✅ 100+ test users
- ✅ 50+ verified reports
- ✅ <2 second transaction time
- Community validation with 80%+ accuracy
- Smart contract deployed on mainnet
- AI verification >90% accuracy
- 1000+ active users
- 10k+ reports submitted
- $10k+ in token rewards distributed
- 5+ government partnerships
- 50k+ users across regions
- 100k+ verified reports
- 1M+ XPHP tokens distributed
- Exchange rate: 1 XPHP = 1 PHP
- $1M+ annual revenue
Overall Feasibility: ✅ HIGHLY FEASIBLE
Key Strengths
- ✅ Clear problem with large market
- ✅ Proven technology stack
- ✅ Multiple revenue streams
- ✅ Strong incentive mechanism
- ✅ Scalable architecture
Key Risks
⚠️ Regulatory uncertainty⚠️ User adoption⚠️ Token economics complexity⚠️ Government cooperation
Recommendation
- Proceed with MVP development
- Focus on Philippines market first
- Build government partnerships early
- Plan for regulatory compliance
- Monitor token economics closely
# 1. Navigate to project
cd gobyerknows
# 2. Install dependencies
npm install
# 3. Create environment file
# Windows PowerShell:
@"
EXPO_PUBLIC_API_URL=http://localhost:3000/api
EXPO_PUBLIC_SOLANA_NETWORK=devnet
EXPO_PUBLIC_SOLANA_RPC=https://api.devnet.solana.com
"@ | Out-File -FilePath .env.local -Encoding UTF8
# Mac/Linux:
cat > .env.local << EOF
EXPO_PUBLIC_API_URL=http://localhost:3000/api
EXPO_PUBLIC_SOLANA_NETWORK=devnet
EXPO_PUBLIC_SOLANA_RPC=https://api.devnet.solana.com
EOF
# 4. Start development server
npm start
# 5. Open on phone/emulator
# - Scan QR code with Expo Go (phone)
# - Press 'a' for Android emulator
# - Press 'w' for web browser
# - Press 'i' for iOS simulator (macOS only)Before you start, make sure you have:
- Expo Go app (on your phone) - Free from App Store or Google Play
- Android Studio (optional, for Android emulator) - Download
- Xcode (optional, for iOS on macOS) - App Store
node --version # Should be 18.0.0 or higher
npm --version # Should be 9.0.0 or higher
git --version # Should be installed# Option A: Clone from GitHub
git clone https://github.com/yourusername/gobyerknows.git
cd gobyerknows
# Option B: Already have the project
cd gobyerknowsnpm installThis may take 2-5 minutes and downloads all required packages including:
- React Native
- Expo
- Solana Web3.js
- Navigation libraries
- Camera & location services
Create .env.local in the project root with:
EXPO_PUBLIC_API_URL=http://localhost:3000/api
EXPO_PUBLIC_SOLANA_NETWORK=devnet
EXPO_PUBLIC_SOLANA_RPC=https://api.devnet.solana.comnpm install -g expo-cli # Optional but recommended
expo --version # Should show version number- Download Expo Go from App Store or Google Play
- Run
npm start - Open Expo Go on your phone
- Scan the QR code from terminal
- App opens on your phone!
# Prerequisites: Android Studio installed
# Run:
npm run android
# or press 'a' in terminal after npm startnpm run web
# or press 'w' in terminal after npm start
# Opens at http://localhost:8081npm run ios
# or press 'i' in terminal after npm start| Key | Action |
|---|---|
a |
Android emulator |
i |
iOS simulator (macOS) |
w |
Web browser |
r |
Reload app |
m |
Toggle menu |
j |
Open debugger |
o |
Open in code editor |
? |
Show all commands |
Ctrl+C |
Stop dev server |
gobyerknows/
├── src/
│ ├── screens/
│ │ ├── HomeScreen.tsx # Home page with overview
│ │ └── ReportScreen.tsx # Report submission form
│ ├── components/
│ │ └── WalletButton.tsx # Wallet connection button
│ ├── services/
│ │ ├── solanaService.ts # Solana blockchain functions
│ │ └── reportService.ts # API calls for reports
│ ├── context/
│ │ └── SolanaContext.tsx # Wallet state management
│ └── utils/ # Helper functions
├── assets/ # Images and icons
├── App.tsx # Main entry point
├── app.json # Expo configuration
├── tsconfig.json # TypeScript settings
├── package.json # Dependencies
├── .env.local # Environment variables
└── README.md # This file
- Wallet Connection - Connect Solana wallet (devnet/mainnet)
- Report Submission - Capture photos with camera + location tagging for any government issue
- Report Types Supported:
- Infrastructure damage (roads, potholes, flooding, public buildings)
- Government establishment complaints (service quality, maintenance issues)
- Employee conduct complaints (unprofessional behavior, corruption)
- General government service issues
- Report Details - Add title, description, and categorization for each report
- Public Report Feed - All reports are public and visible to all users
- Community Comments & Updates - Anyone can comment, add photos, or provide updates on any report
- Contributor Rewards - Earn XPHP tokens (0.5-1 XPHP) for helpful comments and evidence/photo contributions
- Solana Blockchain Storage - All records permanently stored on Solana:
- Reports cannot be deleted or modified after submission
- Complete audit trail of all comments, votes, and validations
- Immutable proof of government official actions and response times
- Publicly verifiable on blockchain explorers
- Government Official Voting - Community can vote/rate government officials:
- By barangay, municipality, city, and nationwide
- Rate officials based on performance and accountability
- View official profiles with voting records and citizen feedback
- Transparent public rankings of officials
- All voting records stored immutably on blockchain
- Responsive UI - Works on phones, tablets, and web
- TypeScript - Full type safety
- Community Validation - Citizens validate reports from other users (earn 1 XPHP per validation)
- Smart Contract - XPHP token minting and distribution on Solana
- AI Verification - Detect duplicate submissions and validate damage
- Government Notifications - Auto-email government agencies assigned to each report type
- Contributor Leaderboard - Rank users by contribution value (comments, updates, photos)
- Official Performance Dashboard - Track government official ratings and citizen satisfaction scores
- XPHP to PHP Exchange - Convert tokens to Philippine Pesos
- Accountability Dashboard - Track government response times and resolutions
- Report Categories - Pre-defined categories for roads, buildings, utilities, employee conduct, services
- Upvoting System - Community upvotes on comments (can increase XPHP rewards for quality contributions)
- Geographic Voting - Vote/rate officials at barangay, municipality, city, and national levels
- Official Profiles - Public profiles showing voting history, citizen feedback, and response rates
- React Native - Cross-platform mobile framework
- Expo - Development platform and deployment
- TypeScript - Type-safe JavaScript
- React Navigation - Screen navigation
- Solana Network - Primary blockchain for all record storage
- Reports, comments, validations, votes stored as immutable transactions
- Publicly verifiable on Solana blockchain explorers
- Devnet for testing, Mainnet for production
- Solana Web3.js - Blockchain interaction and account management
- SPL Token (XPHP) - Token rewards for participation
- Anchor Framework - Smart contract development (when ready)
- expo-camera - Camera capture
- expo-location - GPS location
- expo-image-picker - Photo selection
- @react-native-async-storage - Local storage
# API Endpoint
EXPO_PUBLIC_API_URL=http://localhost:3000/api
# Solana Network (devnet, testnet, or mainnet-beta)
EXPO_PUBLIC_SOLANA_NETWORK=devnet
# Solana RPC Endpoint
EXPO_PUBLIC_SOLANA_RPC=https://api.devnet.solana.comKey settings:
- name: "GoByerKnows"
- slug: "gobyerknows"
- version: "1.0.0"
- plugins: Camera and Location permissions
- Click "Connect Wallet" button
- Either:
- Paste your Solana wallet address, or
- Click "Generate Test Wallet" for development
- Go to faucet.solana.com
- Paste your wallet address
- Receive 2 free SOL
- Phantom: phantom.app
- Solflare: solflare.com
- Magic Eden: magiceden.io
npm cache clean --force
rm -r node_modules
rm package-lock.json
npm install
npm startnpm start -- -p 8082- Make sure phone and computer are on the same WiFi
- Try typing the address manually in Expo Go
- Restart terminal and run
npm startagain
- iOS: Settings → GoByerKnows → Enable permissions
- Android: App Settings → Permissions → Grant access
- Wait 10-20 seconds for Metro to compile
- Press
rin terminal to reload - Restart
npm start - Check internet connection
- Verify wallet address is valid (44 characters)
- Use devnet addresses for testing
- Don't use addresses from other chains (Ethereum, Bitcoin, etc.)
-
Connect Wallet
- Click "Connect Wallet" button
- Generate test wallet or paste address
-
Submit Report
- Click "Submit Report"
- Take a photo with camera
- Enable location access
- Add title and description
- Click submit
-
View Status
- See if wallet is connected (green button)
- Check terminal for transaction logs
- Edit files in
src/folder - Save the file
- App automatically reloads (5-10 seconds)
- See changes on phone/emulator instantly
- Change colors: Edit StyleSheet in component files
- Add buttons: Use TouchableOpacity in JSX
- Change text: Edit strings in Text components
- Add screens: Create new file in
src/screens/
- Check terminal for error messages
- Press
jin terminal to open debugger - Use browser DevTools (for web version)
- Check device logs in Android Studio or Xcode
npm start # Start development server
npm run web # Run in web browser
npm run android # Run on Android emulator
npm run ios # Run on iOS simulator (macOS)
npm test # Run tests (if configured)
npm run build # Build for production- Never commit
.env.localto git (added to .gitignore) - Keep private keys secure
- Test wallet addresses only on devnet
- Use mainnet only for real transactions
| Resource | Link |
|---|---|
| Expo Docs | https://docs.expo.dev |
| React Native | https://reactnative.dev |
| Solana Docs | https://solana.com/developers |
| Web3.js API | https://solana-labs.github.io/solana-web3.js/ |
| TypeScript | https://www.typescriptlang.org |
| Node.js | https://nodejs.org |
- Read the error message - Usually tells you the solution
- Check Troubleshooting - See section above
- Restart everything:
Ctrl+C # Stop npm start npm cache clean --force npm install npm start - Check prerequisites - Install Node.js 18+ if missing
| Issue | Solution |
|---|---|
| App won't start | npm install then npm start |
| Port in use | npm start -- -p 8082 |
| Module error | npm install |
| Can't connect | Check same WiFi + wallet address format |
| Changes not showing | Press r in terminal |
After installation works:
- ✅ Explore the UI - Test all buttons and features
- 📝 Read the code - Look at
src/folder structure - 🎨 Customize - Edit colors, text, and layouts
- 🚀 Build features - Add new screens and functionality
- 📤 Deploy - Push to GitHub and deploy to app stores
MIT
Everything you need is installed and ready to go.
Next: Run npm start and start building!
Questions? Check the Troubleshooting section or read the resource links above.