Current tasks and notes:
- Explain block counter computation details
- Fix scrolling issue in TransactionHistory (nested ScrollView problem)
- Prepare for App Store submission (build, test, configure)
A non-custodial cryptocurrency wallet for the Warthog blockchain, built with React Native and Expo. This app allows users to create, import, and manage Warthog wallets, view balances, send transactions, and track mining rewards—all while keeping private keys secure on-device.
- Wallet Management: Create new wallets, derive from seed phrases, or import private keys.
- Secure Storage: Private keys and mnemonics are encrypted and stored locally using Expo SecureStore.
- Transaction Handling: Send WART tokens with automatic nonce management and fee calculation.
- Transaction History: View paginated history with block rewards, timestamps, and copy-to-clipboard functionality.
- Block Mining Stats: Display mining rewards for 24h, week, and month periods.
- Node Switching: Switch between main and backup Warthog nodes for reliability.
- Offline Signing: All transactions are signed locally; no data is sent to external servers.
- Cross-Platform: Runs on iOS and Android via Expo.
- React Native: Framework for building native mobile apps.
- Expo: Platform for React Native development, building, and deployment.
- ethers.js: Ethereum-compatible library for wallet and transaction handling (adapted for Warthog).
- axios: HTTP client for API calls to blockchain nodes.
- expo-secure-store: Secure local storage for sensitive data.
- expo-clipboard: For copying addresses and transaction IDs.
- @noble/secp256k1: Elliptic curve cryptography for signing.
-
Prerequisites:
- Node.js (v14 or later)
- npm or yarn
- Expo CLI:
npm install -g @expo/cli - For iOS: Xcode (macOS) and iOS Simulator
- For Android: Android Studio and Emulator
-
Clone the Repository:
git clone https://github.com/your-username/warthog-wallet.git cd warthog-wallet -
Install Dependencies:
npm install # or yarn install -
Configure Environment (if needed):
- Update
app.jsonwith your app details (name, version, icons). - Ensure Warthog node URLs are correct in
Wallet.tsx(default:https://warthognode.duckdns.organdhttp://217.182.64.43:3001).
- Update
-
Start the Development Server:
npx expo start -c
- The
-cflag clears the cache for a fresh start. - This opens the Expo DevTools in your browser.
- The
-
Run on Device/Emulator:
- iOS: Press
iin the terminal or scan the QR code with the Expo Go app on your iPhone. - Android: Press
aor scan the QR code with Expo Go on Android. - For physical devices, ensure they're on the same Wi-Fi network as your computer.
- iOS: Press
-
Build for Production:
- For testing:
expo build:iosorexpo build:android. - For App Store submission: Use EAS Build (
eas build --platform ios).
- For testing:
- Create Wallet: Generate a new mnemonic and private key.
- Import Wallet: Enter an existing private key or seed phrase.
- View Balance: Displays WART balance and USD equivalent (fetched from CoinGecko).
- Send Transactions: Enter recipient address, amount, and fee; nonce is managed automatically.
- Transaction History: Toggle visibility, refresh, and load more transactions.
- Node Selection: Switch nodes for network reliability.
This is a non-custodial wallet—you control your keys and funds. No data is stored on servers; everything is local and encrypted. See the Privacy Policy for details.
- Fork the repository.
- Create a feature branch:
git checkout -b feature-name. - Commit changes:
git commit -m 'Add feature'. - Push and open a PR.
This project is licensed under the MIT License. See LICENSE for details.
For issues or questions, open an issue on GitHub or contact support@warthogwallet.com.
Note: This app is for educational and personal use. Always verify transactions on the blockchain. For production deployment, ensure compliance with app store policies.