app/
├── (auth)/ # Login/signup screens
├── (onboarding)/ # New user onboarding flow
├── (tabs)/ # Main tab navigation (wallet, shop, leaderboard, locker-room, profile)
├── settings/ # Settings pages with nested modals/tabs
└── _layout.tsx # Root layout with providers + auth protection
components/
├── wallet/ # Wallet sub-components (TabButton, TokenRow, ActionModal, etc.)
├── shop/ # Shop sub-components (CartModal, CollectableCard, etc.)
├── locker-room/ # Locker room components
├── layout/ # AppScreen wrapper (responsive web max-width)
├── ui/ # Reusable UI primitives (Button, TextField, WebHoverWrapper, etc.)
└── Icon/ # Icon wrapper using lucide-react-native
hooks/
├── use-wallet-screen.ts # All wallet state, effects, and handlers
├── use-shop-screen.ts # All shop state, effects, and handlers
└── useScrollHandler.ts # Scroll-based navbar visibility
lib/
├── api/ # API client modules (wallet, shop, user, quests, checkout, etc.)
├── revenuecat/ # RevenueCat in-app purchases provider
└── utils.ts # Shared utilities
context/ # React contexts (user, collectibles, navbar visibility)
services/ # Zustand store, MMKV storage, core types
theme/ # Brand colors, design tokens
types/ # TypeScript types (wallet, shop, checkout, api)
constants/ # App constants (tokens, coin bundles, etc.)