React Native + Expo mobile app for Stellar IndigoPay climate donation platform.
- Browse climate projects
- Donate using mobile Stellar wallet (Freighter deep links)
- View donation history and impact
- Real-time donation feed
- Push notifications for donation receipts
- Install dependencies:
cd mobile
npm install- Configure environment:
cp .env.example .env
# Edit .env with your API URL and Stellar network settings- Run on device/simulator:
# iOS
npm run ios
# Android
npm run android
# Expo Go (for quick testing)
npm startPreview builds are generated automatically on every push to main via EAS Build.
Replace
OWNERwith your Expo account username. AddEXPO_TOKENas a GitHub Actions repository secret (Settings → Secrets and variables → Actions) before the first build.
- Android: APK (direct install, no Play Store needed)
- iOS: Simulator build (
.appbundle, not a signed IPA)
The mobile app shares the API client logic with the web frontend. The API functions are located in lib/api.ts and are imported from the shared package.
The app integrates with mobile Stellar wallets via deep links:
- Freighter Mobile:
freighter://tx?xdr=... - SEP-0007 payments:
web+stellar:pay?destination=G...&amount=50&memo=donation - Other wallets can be added via similar deep link schemes
The mobile app now registers the web+stellar scheme and handles incoming web+stellar:pay URIs from browsers and other apps. When a donation link is opened, the app shows a confirmation screen, authenticates the user, submits the Stellar payment, appends the transaction hash to the callback URL, and records the payment in scan history.
- expo-router: File-based routing
- app/: Screen components
- lib/: Shared utilities (API, Stellar SDK helpers)
- components/: Reusable UI components
- styles/: Theme and styling (matches web green theme)
See .env.example for required variables:
EXPO_PUBLIC_API_URL: Backend API URLEXPO_PUBLIC_STELLAR_NETWORK: testnet or mainnetEXPO_PUBLIC_HORIZON_URL: Stellar Horizon URL