Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vaultix

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.

Overview

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.

Architecture

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

Key Features

Core Functionality

  • 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

Technical Capabilities

  • 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

Installation & Setup

Prerequisites

  • Android Studio Arctic Fox or later
  • Android SDK API level 24+
  • Kotlin 1.5+

Quick Start

  1. Clone this repository
  2. Download the latest LDK Android AAR from official releases
  3. Place the AAR file in the app/libs directory
  4. Build and run the project

Gradle Configuration

dependencies {
    implementation fileTree(include: ['*.aar'], dir: 'libs')
    // Additional dependencies as needed
}

Development Environment

For local testing and development, set up a Bitcoin regtest environment. Follow the comprehensive guide at Thunderbiscuit's Regtest Tutorial for complete setup instructions.

Usage

Basic Operations

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)

Implementation Status

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

Technical Notes

  • 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

Contributing

We welcome contributions to enhance Vaultix's capabilities. Please ensure all submissions follow the project's coding standards and include appropriate tests.

About

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.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages