A next-generation Bitcoin Lightning Network wallet built for Android, leveraging the power of the Lightning Dev Kit (LDK) to deliver fast, secure, and scalable payment solutions.
Vaultix is a comprehensive mobile wallet application that demonstrates the integration of Lightning Network capabilities on Android devices. Built with Kotlin and powered by LDK's robust infrastructure, it provides users with a seamless experience for both on-chain Bitcoin transactions and off-chain Lightning payments.
The application utilizes the LDK Android AAR package, which provides native Kotlin language bindings for the Lightning Dev Kit. This integration allows for:
- Native Performance: Optimized C++ core with Kotlin-friendly APIs
- Memory Safety: Garbage-collected bindings prevent memory leaks
- Cross-Platform Compatibility: Supports ARM64 and x86_64 architectures
- Bitcoin Wallet Management: Full on-chain wallet capabilities using BDK
- Lightning Network Operations: Complete channel lifecycle management
- Peer Connectivity: Discover, connect, and manage Lightning Network peers
- Payment Processing: Send and receive Lightning payments instantly
- Node Identity Management: Generate and display unique node identifiers
- Channel Operations: Open, monitor, and close payment channels
- Payment Routing: Efficient payment path discovery and execution
- Network Monitoring: Real-time peer and channel status tracking
- Android Studio Arctic Fox or later
- Android SDK API level 24+
- Kotlin 1.5+
- Clone this repository
- Download the latest LDK Android AAR from official releases
- Place the AAR file in the
app/libsdirectory - Build and run the project
dependencies {
implementation fileTree(include: ['*.aar'], dir: 'libs')
// Additional dependencies as needed
}For local testing and development, set up a Bitcoin regtest environment. Follow the comprehensive guide at Thunderbiscuit's Regtest Tutorial for complete setup instructions.
import org.ldk.structs.*
// Initialize LDK components
val channelManager = ChannelManager(...)
val peerManager = PeerManager(...)
// Connect to a Lightning node
peerManager.connect_node(nodeId, socketAddr)
// Open a payment channel
channelManager.open_channel(nodeId, channelValue, pushMsat, channelConfig)| Feature | Status |
|---|---|
| On-chain Bitcoin Wallet | Complete |
| Lightning Peer Connection | Complete |
| Peer Discovery & Listing | Complete |
| Node ID Generation | Complete |
| Channel Opening | Complete |
| Channel Management | Complete |
| Payment Sending | Complete |
| Payment Receiving | Complete |
| Channel Closing | In Progress |
- Architecture Support: ARM64 and x86_64 builds included
- Memory Management: Automatic garbage collection prevents leaks
- Performance: Optimized for mobile devices with efficient resource usage
- Security: Industry-standard cryptographic operations
We welcome contributions to enhance Vaultix's capabilities. Please ensure all submissions follow the project's coding standards and include appropriate tests.