React Native Expo wallet for Stellar Testnet. The app aims to feel polished and usable for core wallet flows while still evolving as the PocketPay ecosystem matures.
- This project is best described as a polished but still-evolving wallet experience rather than a production-ready product.
- Core flows such as wallet creation and import, balance checks, sending and receiving, contacts, and the vault UI are implemented and actively refined.
- The app is intentionally focused on Stellar Testnet for development and experimentation. Testnet XLM has no real monetary value.
- The vault experience is currently mock-backed by default. A real Soroban contract integration can be enabled with configuration, but the default experience remains a safe placeholder.
- Architecture Readiness Review - Feature boundaries, duplicated state, SDK integration blockers, security-sensitive areas, and test gaps
- Evaluation Readiness Checklist - GrantFox contributor checklist for mobile issues, including tests, CI, screenshots, acceptance criteria, and the reminder that merge does not guarantee payment approval
- Storage Guide - SecureStore vs AsyncStorage
- Contacts Guide - Contact storage, backup limitations, and future export/import ideas
- Polyfills Guide - React Native polyfills and import order for Stellar SDK
- Vault UI Guidance - How to present the Soroban Savings Vault, Testnet risks, and contract limitations
- Vault Integration Assumptions - Document expected SDK/contract dependencies, placeholder behaviors, and known gaps
- Vault Integration Risks - Assumptions, risks, and integration points between the mobile UI, PocketPay SDK, and Soroban contract
- Mobile Wallet Security FAQ - Local storage, secret handling, reset behaviors, and security guarantees
- Accessibility Checklist - Required mobile accessibility checks and reusable-component review guidance for major screens and every UI state
- UI State Catalogue - Canonical loading, empty, error, success, disabled, and pending behavior for wallet, send, receive, transactions, contacts, vault, settings, and diagnostics
- Scan-to-Pay Review - QR scan → validate → review screen → cancel-before-payment flow (never signs on scan)
- Release Testing Checklist - Manual QA checklist run before every tagged build, covering wallet, payment, vault, errors, and environment verification
⚠️ This app runs on the Stellar Testnet only. Testnet XLM has no real monetary value. Read the Security Guide before storing or sharing any keys.
- Wallet creation and import
- XLM balance and transactions
- Send and receive with QR codes
- Address book contacts
- Soroban vault placeholder
For the expected screen sequence, validation, and UI states behind these features, see Main wallet user flows.
PocketPay Mobile is part of a broader PocketPay stack:
- Screen Inventory - A map of the main screens and routes in the app.
- Mobile Onboarding Checklist - Quick-reference setup checklist for new contributors
- Evaluation Readiness Checklist - Mobile-issue review checklist for GrantFox contributors before payment evaluation
- UI State Catalogue and Accessibility Checklist - Governance for major-screen states, shared component contracts, and accessible review evidence
- QR Receive Payload Format - The address-only and SEP-0007-based payment-request formats the Receive screen encodes into its QR code
📸 Screenshots below are placeholders. To update them, capture each screen from a simulator or device (use dummy/funded Testnet data only — never real keys or mainnet funds) and replace the files in
docs/screenshots/.
| Wallet | Send | Receive |
|---|---|---|
![]() |
![]() |
![]() |
| Balance overview and quick actions | Send XLM to any Stellar address | QR code for your public key |
| Activity | Contacts | Vault |
|---|---|---|
![]() |
![]() |
![]() |
| Transaction history with sent/received indicators | Saved addresses for quick access | Soroban Savings Vault (mock) |
- Run the app in a simulator with a funded Testnet account.
- Navigate to the relevant screen.
- Take a screenshot and export it at roughly 390 × 844 px (iPhone 14 logical resolution) or equivalent Android size.
- Save it to
docs/screenshots/<screen-name>.pngusing the filenames shown above. - Commit only the image files — never include screenshots that reveal a real secret key or personal data.
React Native, Expo Router, Zustand, PocketPay SDK, SecureStore, AsyncStorage
npm install --legacy-peer-deps
cp .env.example .env
npm start




