← Back to home

Better Wallet

Turn any device into a hardware wallet. Use a spare phone for secure QR code signing.

Problem Statement

Project OverviewBetter Wallet is a revolutionarytwo-device cryptocurrency wallet systemthat transforms a pair of ordinary smartphones into a hardware wallet setup with Ledger/Trezor-level security. By utilizing anair-gapped architecturewith QR code communication, Better Wallet ensures your private keys never touch the internet while maintaining full functionality for dApp interactions, token transfers, and transaction monitoring.The Problem We're SolvingHardware wallets like Ledger and Trezor cost $50-$200 and require dedicated devices that users must purchase and carry around. Meanwhile, most people have old smartphones sitting in drawers gathering dust. Additionally, existing mobile wallets store private keys on internet-connected devices, creating significant security risks. We asked:"What if we could turn two smartphones into a secure hardware wallet setup?"Our Solution: Two-Device Air-Gapped ArchitectureBetter Wallet splits wallet functionality across two devices:Cold Wallet (Device B - Offline Phone):Stores private keys and signs transactionsCompletely offline (enforces airplane mode)Acts like a hardware walletNever connects to the internetHot Wallet (Device A - Online Phone/Browser):View-only wallet monitoring balancesCreates unsigned transactionsConnects to dApps via WalletConnectBroadcasts signed transactionsCommunication Method:Exclusively through QR codesNo Bluetooth, NFC, or network connectionComplete physical air-gapKey Features & InnovationsSecurity-First Design✅Airplane Mode Enforcement: The cold wallet app blocks all usage until the device is completely offline✅Biometric Authentication: Every transaction requires Face ID or fingerprint verification✅Secure Storage: Private keys stored in iOS Keychain / Android Keystore✅Transaction Verification: Detailed review of all transaction parameters before signing✅dApp Transparency: When signing dApp transactions, the cold wallet displays which dApp (name, URL, icon) is requesting the transactionSeamless dApp Integration✅WalletConnect Support: Connect to any dApp (Uniswap, OpenSea, Aave, etc.)✅Full Transaction Context: See which dApp is making requests while signing✅Session Management: Persistent connections with proper metadata handling✅Standard Compliance: Supportseth_sendTransactionandeth_signTransactionPayPal USD (PYUSD) Integration✅Dollar-Backed Stablecoin: Store and send PYUSD tokens (1:1 USD peg)✅Dual Balance Display: View both ETH and PYUSD balances simultaneously✅Stable Value Experience: Unlike volatile crypto, PYUSD maintains steady dollar value✅PayPal-Backed: Trusted, institutional-grade stablecoin✅Fast Global Transfers: Send "dollars" anywhere instantly on blockchainBlockscout Transaction Tracking✅Real-Time Notifications: Visual toast popups when transactions broadcast✅Live Monitoring: Watch transaction progress in real-time✅Open-Source Explorer: Transparent blockchain exploration without centralized services✅Direct Links: One-click access to full transaction details✅Status Updates: See confirmations as they happenERC-20 Token Support✅Automatic Detection: Cold wallet detects and displays token transfers✅Token Metadata: Shows token name, symbol, and amount✅Transfer Verification: Review token transfers before signingProgressive Web App (PWA)✅Installable: Add hot wallet to home screen on mobile✅Offline UI: Graceful degradation when network unavailable✅Cross-Platform: Works on iOS, Android, desktop browsers✅No App Store: Direct deployment via webTechnical ArchitectureCold Wallet (React Native + Expo)Technologies: - React Native + Expo for cross-platform mobile development - ethers.js for Ethereum wallet operations - expo-secure-store for encrypted private key storage - expo-local-authentication for biometric auth - expo-camera for QR code scanning - react-native-qrcode-svg for QR generation Key Components: - HD Wallet with BIP39 mnemonic (12-word recovery phrase) - Transaction parser for ERC-20 detection - Biometric authentication layer - Offline network detectorHot Wallet (React + Vite + PWA)Technologies: - React + Vite for fast development and builds - ethers.js for blockchain interaction - @reown/walletkit for WalletConnect integration - @blockscout/app-sdk for transaction tracking - vite-plugin-pwa for Progressive Web App features - html5-qrcode for browser QR scanning Key Components: - View-only wallet monitoring - WalletConnect session management - Transaction builder with gas estimation - Real-time balance tracking - Blockscout notification systemLanding Page (React + Vite)- Modern neobrutalism design - Direct APK download - Getting started documentation - Mobile-responsiveTransaction FlowManual Transaction:Hot wallet creates unsigned transaction with gas estimationTransaction serialized as JSON and displayed as QR codeCold wallet scans QR code and parses transaction detailsUser reviews recipient, amount, gas fees, and networkBiometric authentication required to proceedCold wallet signs transaction with private key (offline)Signed transaction displayed as QR codeHot wallet scans signed QR and broadcasts to blockchainBlockscout notification appears with transaction trackingdApp Transaction (WalletConnect):Hot wallet connects to dApp via WalletConnect URIUser approves connection in hot walletdApp initiates transaction (swap, NFT purchase, etc.)Hot wallet displays transaction QR with dApp metadataCold wallet scans and shows transaction + dApp info (name, URL, icon)User verifies dApp details and transaction parametersBiometric authentication + signingHot wallet scans signed QR, broadcasts to blockchainWalletConnect confirms transaction back to dAppBlockscout tracks transaction in real-timeSecurity ModelDefense in Depth:Layer 1: Physical Air-Gap └─ No network permissions on cold device └─ QR codes only communication method Layer 2: Device Security └─ iOS Keychain / Android Keystore └─ Biometric authentication └─ Secure key generation Layer 3: Transaction Verification └─ Detailed parameter review └─ dApp source transparency └─ Amount/address confirmation Layer 4: Offline Enforcement └─ Airplane mode required └─ Network status monitoring └─ App blocks if connectivity detectedWhy This Is Secure:Private keys generated and stored on offline deviceKeys never transmitted (even encrypted)No USB, Bluetooth, or network connectionUser verifies every transaction detailBiometric prevents unauthorized signingOpen-source and auditableUser Experience HighlightsOnboarding:Simple 3-step wallet creationClear backup instructions for recovery phraseWord verification to ensure proper backupQR code pairing between devicesDaily Use:Clean, mobile-first interfaceBottom tab navigationReal-time balance updatesOne-tap transaction creationVisual feedback for all actionsBlockscout notifications for peace of mindDesign:Neobrutalism aesthetic with bold colors and bordersDark mode support (cold wallet)Smooth animations and transitionsAccessibility-focusedMobile-optimized (max-width: 428px)What Makes This Hackathon-WorthyNovel Security Approach: Repurposes existing devices into hardware wallet setupReal-World Problem: Addresses both cost and security concerns of crypto storageComplete Implementation: Fully functional with cold app, hot app, and landing pageMultiple Integrations: WalletConnect, PYUSD, Blockscout all working seamlesslyProduction-Ready: Deployed landing page with downloadable Android APKOpen Source: All code available for audit and contributionUser-Centric: Prioritizes both security and usabilityCross-Platform: Works on iOS, Android, web browsersTechnical Challenges OvercomeQR Code Size Limits: Implemented efficient transaction serializationERC-20 Detection: Built parser to identify and decode token transfersWalletConnect Metadata: Preserved dApp context through QR code flowOffline Enforcement: Reliable network detection across platformsCamera Access: Handled browser permissions and HTTPS requirementsPWA Service Workers: Implemented proper caching strategiesBiometric Integration: Cross-platform authentication with fallbacksFuture RoadmapMulti-signature supportAdditional EVM chains (Polygon, Arbitrum, Optimism)NFT display and transfersHardware wallet import (Ledger/Trezor)Social recovery mechanismsMulti-account managementEnhanced transaction analysisSupport for more token standardsTesting & VerificationAvailable Now on Sepolia Testnet:Get test ETH from faucetsSend ETH and PYUSD transactionsConnect to dApps via WalletConnectMonitor transactions with BlockscoutTest complete air-gapped flowConclusionBetter Wallet demonstrates that hardware wallet-level security doesn't require expensive dedicated devices. By combining smartphone capabilities, air-gapped architecture, and modern web technologies, we've created a secure, user-friendly cryptocurrency wallet system that leverages PayPal's PYUSD for stable value storage and Blockscout for transparent transaction tracking. This is crypto security made accessible to everyone.

Solution

Better Wallet is built using React Native (Expo) for the Cold Wallet and React + Vite PWA for the Hot Wallet. The Cold Wallet securely stores private keys using expo-secure-store and authenticates users via biometrics before signing transactions offline. The Hot Wallet connects to dApps using Reown WalletKit, constructs unsigned transactions, and transfers them via QR codes using html5-qrcode. Signed QR codes are scanned and broadcasted to the blockchain with ethers.js, while Blockscout SDK tracks transaction status. This air-gapped design ensures hardware-wallet-level security using existing devices, no Bluetooth, cables, or internet between them.

Hackathon

ETHOnline 2025

2025

Prizes

  • 🏆

    Best Blockscout SDK Integration1st place

    Blockscout

Contributors