A simple crypto savings mobile app built with React Native, Expo, and TypeScript. This is a prototype with dummy data for the Base Sepolia testnet.
- Daily Progress Widget - Duolingo-style progress tracker showing daily money growth percentage
- Circular progress ring with animated counters
- Real-time growth percentage display
- Money earned today with visual indicators
- Integrated streak tracking
- Motivational messages based on performance
- Wallet Management - View your testnet wallet address and balances
- Dashboard - Track total balance, staked amounts, and earnings
- Save/Deposit - Deposit USDC into DeFi strategies
- Faucet - Mint testnet USDC and get testnet ETH
- Strategies - Choose from Conservative, Balanced, or Aggressive yield strategies
- Withdraw - Unstake and withdraw funds anytime
- Daily Streaks - Track your saving consistency with streak badges
- React Native - Mobile app framework
- Expo - Development tooling and managed workflow
- TypeScript - Type-safe development
- Expo Router - File-based navigation
- React Native Paper - Material Design UI components
- Context API - State management
- Node.js 18 or later
- npm or yarn
- Install dependencies:
npm installStart the development server:
npm startThen:
- Press
afor Android emulator - Press
ifor iOS simulator - Scan the QR code with Expo Go app on your phone
stacksave-mobile/
├── app/ # Expo Router screens
│ ├── (tabs)/ # Tab navigation screens
│ │ ├── home.tsx # Dashboard
│ │ ├── save.tsx # Deposit screen
│ │ ├── faucet.tsx # Faucet screen
│ │ ├── strategies.tsx # Strategies screen
│ │ └── withdraw.tsx # Withdraw screen
│ ├── _layout.tsx # Root layout with providers
│ └── index.tsx # Welcome screen
├── components/ # Reusable UI components
│ ├── BalanceCard.tsx
│ ├── StrategyCard.tsx
│ └── StreakBadge.tsx
├── contexts/ # Context API providers
│ ├── WalletContext.tsx
│ ├── SavingsContext.tsx
│ └── StreakContext.tsx
├── constants/ # Dummy data and configuration
│ └── dummyData.ts
└── types/ # TypeScript type definitions
└── index.ts
- Tap "Get Started" on the welcome screen
- Go to the Faucet tab
- Tap any amount to mint testnet USDC (100, 500, 1000, or 5000)
- Visit Coinbase Faucet to get testnet ETH (for gas fees)
- Go to the Save tab
- Enter an amount or tap a quick amount button
- The Conservative strategy is selected by default
- Tap "Deposit & Stake"
- Go to the Strategies tab
- Review the three available strategies:
- Conservative (5.5% APY) - Low risk
- Balanced (8.2% APY) - Medium risk
- Aggressive (12.5% APY) - High risk
- Tap to select your preferred strategy
- Go to the Home tab to see:
- Daily Progress Widget - Shows your daily growth percentage with a beautiful circular progress ring
- Daily earnings with animated counters
- Growth percentage (green for positive, red for negative)
- Total balance
- Staked amount
- Total earned
- Daily streak progress
- Go to the Withdraw tab
- Enter amount or use percentage buttons
- Tap "Withdraw" to get funds back instantly
This app uses simulated blockchain interactions:
- All transactions are instant (no real blockchain delays)
- Balances and earnings are calculated locally
- Network is set to Base Sepolia testnet
- No real money or crypto is used
To integrate with real blockchain:
- Install and configure wagmi/viem or ethers.js
- Connect to actual Base Sepolia testnet
- Integrate with smart contracts for deposits/withdrawals
- Add real wallet connection (WalletConnect, Coinbase Wallet, etc.)
- Implement actual DeFi strategy contracts
- Add transaction confirmations and error handling
npx tsc --noEmitnpm run android # Build for Android
npm run ios # Build for iOS0BSD