A lightweight Bitcoin validator node for Android, powered by Utreexo and Floresta.
Run a full Bitcoin node directly on your phone with minimal storage requirements thanks to Utreexo's compact accumulator design.
- ⚡ Lightweight: Uses Utreexo to dramatically reduce storage requirements
- 🔒 Self-sovereign: Validate Bitcoin transactions directly on your device
- 🌐 Multi-network: Support for Bitcoin Mainnet, Testnet, Signet, and Regtest
- 🔍 Transaction Lookup: Search and verify transactions on the blockchain
- 👥 P2P Networking: Connect to Bitcoin peers and manage node connections
- 💼 Wallet Integration: Load descriptors and track your Bitcoin addresses
- 📊 Real-time Sync: Monitor blockchain synchronization progress
- 🎨 Modern UI: Beautiful Material Design 3 interface with dark/light themes
Utreexo is a dynamic hash-based accumulator that allows Bitcoin nodes to validate the blockchain without storing the full UTXO set. This reduces storage requirements from tens of gigabytes to just a few megabytes, making it practical to run a full validating node on mobile devices.
- Android 10 (API 29) or higher
- ARM64 device (arm64-v8a architecture)
- Internet connection
- Clone the repository:
git clone https://github.com/jvsena42/floresta_node.git
cd floresta_node- Build the project:
./gradlew assembleDebug- Install on your device:
./gradlew installDebug- Launch the app - the Floresta node will start automatically in the background
- Select your preferred network (Bitcoin, Testnet, Signet, or Regtest) in Settings
- Wait for initial sync to complete
- Optionally add wallet descriptors to track your addresses
Monitor your node's status:
- Sync Progress: Current blockchain synchronization percentage
- Network Info: Connected network, peer count, and difficulty
- Block Info: Latest block height, hash, and validated blocks
Look up transactions:
- Enter a transaction ID (txid)
- View complete transaction details
- Verify transaction confirmations
Configure your node:
- Descriptors: Add wallet descriptors to track your addresses
- Network: Switch between Bitcoin networks (requires app restart)
- Node: Connect directly to specific Bitcoin nodes
- Rescan: Trigger a blockchain rescan for your wallet
Built with modern Android development practices:
- Kotlin: 100% Kotlin codebase
- Jetpack Compose: Declarative UI framework
- Material Design 3: Modern, adaptive design system
- MVVM Architecture: Clean separation of concerns
- Coroutines & Flow: Async operations and reactive streams
- Koin: Lightweight dependency injection
- OkHttp: Network communication
- JSON-RPC: Bitcoin Core compatible RPC interface
The node exposes a JSON-RPC interface on localhost:
- getblockchaininfo: Get blockchain synchronization status
- getpeerinfo: List connected peers
- gettransaction: Retrieve transaction details
- loaddescriptor: Add wallet descriptor
- listdescriptors: List loaded descriptors
- addnode: Connect to a specific node
- rescan: Rescan blockchain for wallet transactions
- stop: Gracefully stop the node
- Floresta Wallet - A wallet client running Floresta
- Floresta Core - The underlying Floresta implementation
If you find this project useful, consider supporting development:
Lightning: jvsena42@blink.sv
This project is open source. Please check the repository for license details.
- Built on top of Floresta by Davidson Souza
- Implements Utreexo accumulator design
- Inspired by the Bitcoin community's commitment to decentralization
Made with ⚡ for the Bitcoin network





