Sovran is built with modern React Native technologies and specialized Bitcoin/Nostr libraries. This guide covers the complete technical stack.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sovranBitcoin/sovran/llms.txt
Use this file to discover all available pages before exploring further.
Core Framework
React Native & Expo
React 19.2.0
Latest React with concurrent features
React Native 0.83.2
Native iOS and Android support
Expo SDK 55
Managed workflow with EAS Build
Expo Router 55
File-based navigation system
- Typed routes via Expo Router
- React Compiler enabled for optimizations
- Metro bundler with Terser minification
Language & Tooling
TypeScript
- Version: TypeScript 5.9.2
- Configuration: Extends
expo/tsconfig.base - Path Aliases:
@/*for absolute imports - Strict Mode: Enabled for type safety
Build Tools
Babel
Transpilation with module resolver
Metro
React Native bundler
EAS Build
Cloud build service
UI & Styling
Styling System
Uniwind - Tailwind CSS v4 for React Native- Zero-runtime Tailwind for React Native
- Platform-specific class names
- Dark mode support
UI Libraries
- HeroUI Native
- RN Primitives
- Expo UI
Primary component library for Sovran
- Native-first components
- Theme integration
- Hero transition animations
Icons & Graphics
- Monicon - Icon system for React Native
- Metro integration:
@monicon/metro - Native icons:
@monicon/native
- Metro integration:
- Expo Symbols - SF Symbols support
- React Native SVG - SVG rendering
Animation
React Native Reanimated 4.2.1- Worklets for 60fps animations
- Hero transitions between screens
- Gesture-driven interactions via
react-native-gesture-handler
State Management
Zustand (Primary)
- Lightweight and fast
- AsyncStorage persistence
- Profile-scoped stores
- TypeScript-first
Redux (Legacy)
redux5.0.1react-redux9.1.2redux-persist6.0.0redux-thunk3.1.0
Bitcoin & Cashu
Cashu Protocol
Coco-Cashu - Complete Cashu implementation- NUT-00 through NUT-13 (Core protocol)
- NUT-17 (WebSocket subscriptions)
- NUT-18 (Payment requests)
- NUT-23 (Backup and restore)
Bitcoin Utilities
- Cryptography
- Lightning
- QR Codes
@noble/hashes- Hash functions@scure/bip32- HD key derivation@scure/bip39- Mnemonic generation
Know Your Mint
Nostr Integration
NDK (Nostr Development Kit)
@nostr-dev-kit/ndk-mobile - Mobile-optimized NDKNostr Utilities
nostr-tools 2.10.4- NIP-04, NIP-05, NIP-06, NIP-17, NIP-19, NIP-44, NIP-59
- Kind 38000 events for mint recommendations
- Social graph for contact discovery
npubcash SDK
Storage & Persistence
Secure Storage
expo-secure-store - Encrypted keychain storageDatabases
- SQLite
- AsyncStorage
expo-sqlite - Local SQL database
Native Features
Camera & Scanning
expo-camera 55.0.9NFC
react-native-nfc-manager 3.14.12Location
expo-location 55.1.2Other Native APIs
Haptics
expo-haptics - Tactile feedbackClipboard
expo-clipboard - Copy/pasteSharing
expo-sharing - Native share sheetBiometrics
Via
expo-secure-storeMaps & Geolocation
BTCMap Integration
expo-maps 55.0.9- 24-hour merchant data TTL
- Viewport-based rendering
- Efficient clustering algorithm
AI Integration
Routstr
OpenAI SDK 6.9.1- Session management
- Model switching
- Anonymous mode
- No subscription required
UI Components & Libraries
Navigation
Lists & Data Display
@legendapp/list - High-performance virtualized listsVisual Effects
Blur
expo-blur - Native blur effectsGradient
expo-linear-gradient - Linear gradientsLiquid Glass
expo-liquid-glass-native - Glass morphismImage Colors
react-native-image-colors - Color extractionTheme System
Theme Configuration
37 Built-in Themes- Dynamic color system
- Background image wallpapers
- Instant theme switching
- Dark mode by default
Styling Utilities
class-variance-authority- Variant-based stylingtailwind-variants- Tailwind variant utilitiestailwind-merge- Merge Tailwind classesclsx- Class name compositionpolished- Color manipulationhex-color-opacity- Hex color with alpha
Developer Tools
Code Quality
- ESLint
- Prettier
- Knip
eslint9.25.1eslint-config-expoeslint-config-prettiereslint-plugin-unused-imports
Testing
Jest
Unit testing with
jest-expoMaestro
E2E UI testing framework
Utility Libraries
General Utilities
- lodash - Utility functions
- neverthrow - Result type for error handling
- semver - Semantic versioning
- usehooks-ts - TypeScript React hooks
- buffer - Node.js Buffer API
- process - Process polyfill
Data Formatting
- intl - Internationalization
- number-flow-react-native - Animated numbers
- unique-username-generator - Username generation
Platform-Specific
iOS
- Widgets - Home screen widgets via
expo-widgets - SF Symbols - Via
expo-symbols - Apple Targets - Multi-target support via
@bacons/apple-targets
Android
- NFC Permissions - Configured in
app.json - Adaptive Icons - Configured in
app.json
Build Configuration
app.json
EAS Build Profiles
- Development
- Preview
- Production
Next Steps
Getting Started
Set up your development environment
Project Structure
Understand the codebase organization
Scripts Reference
Complete guide to all available scripts
API Reference
Explore the API documentation