How qvapay/mobile_app works
QvaPay is a cross-platform financial app combining account-based money services with a self-custody, multi-chain wallet. Users enter through onboarding or login, then use balance, payments, P2P, savings, and commerce features; wallet users can also create or import keys and transact without an account. The map preserves the README’s major product branches and the documented API/query and local-wallet layers. Some feature implementations were not sampled, so their edges are included only where the README documents the relationship.
Main entry points: client.ts HTTP API client · userApi.ts API modules and types · AuthContext.tsx Authentication state · App.tsx App shell
Components 23
App experience
- App shell
App.tsx - Navigation routes
routes.ts
Money and identity
- Login and registration
auth/screens/Login.tsx - Authentication state
auth/AuthContext.tsx - Balance and transfers
screens/transaction/Send.tsx - Deposits
screens/add/useDepositOrder.ts - Withdrawals
screens/withdraw/useWithdrawForm.ts
Markets and commerce
- P2P marketplace
screens/p2p/useP2POfferDetail.ts - Savings and markets
screens/crypto/Savings.tsx - Store and top-ups
screens/store/Store.tsx - Mini-apps
screens/miniapps/useMiniAppBridge.ts
Self-custody wallet
- Wallet screens
screens/crypto/wallet/WalletHome.tsx - Wallet keys and chains
wallet/chains/index.ts - RPC routing
wallet/registry/rpcRouter.ts
Shared platform
- HTTP API client
api/client.ts - API modules and types
api/userApi.ts - Server-state queries
api/queryClient.ts - Localization
i18n/index.ts - Push notifications
push/index.ts - Native secure storage
android/app/src/main/java/com/qvapay/bridge/SharedStorageModule.kt
Other components
- App user
- QvaPay API
- Blockchain networks
Connections 25
- App user → App shell: opens
README.md - App shell → Navigation routes: routes through
routes.ts - App user → Login and registration: signs in
README.md - Login and registration → Authentication state: updates session
- Authentication state → HTTP API client: sets token
- Authentication state → API modules and types: uses auth and user APIs
- Balance and transfers → HTTP API client: requests money operations
- Deposits → HTTP API client: submits deposit flow
screens/add/useDepositOrder.ts - Withdrawals → API modules and types: loads payment methods
- P2P marketplace → QvaPay API: trades and chats
README.md - Savings and markets → QvaPay API: loads market data
README.md - Store and top-ups → QvaPay API: places purchases
README.md - Mini-apps → API modules and types: uses catalog API
screens/miniapps/useMiniAppBridge.ts - Wallet screens → Wallet keys and chains: signs locally
README.md - Wallet keys and chains → RPC routing: routes chain requests
README.md - RPC routing → Blockchain networks: connects to networks
README.md - Wallet screens → QvaPay API: uses account features
README.md - API modules and types → HTTP API client: sends requests
api/userApi.ts - HTTP API client → QvaPay API: calls endpoints
api/client.ts - Server-state queries → API modules and types: unwraps API results
- Server-state queries → Native secure storage: persists cache
api/queryClient.ts - App shell → Server-state queries: provides offline cache
README.md - Authentication state → Push notifications: unregisters on logout
- Push notifications → HTTP API client: uses authenticated client
push/index.ts - HTTP API client → Localization: sets language header
api/client.ts