Lachispa
A mobile interface to easily connect with any LNbits instance
Install / Use
/learn @lachispame/LachispaREADME
LaChispa ⚡
Ask questions about this project using DeepWiki AI
A modern and easy-to-use mobile Lightning Network wallet
📱 About LaChispa
LaChispa is a modern mobile application developed in Flutter that allows you to manage Bitcoin through Lightning Network using LNBits as backend. Designed with an intuitive interface and attractive visual effects, it makes Lightning Network usage accessible for everyone.
✨ Key Features
- 🔐 Secure Authentication: Login and registration with multiple LNBits servers
- 💼 Wallet Management: Support for multiple wallets with automatic selection
- ⚡ Lightning Payments: Send and receive instant Lightning payments
- 📧 Lightning Address: Create and manage personalized Lightning Addresses
- 🎯 Multiple Formats: Support for BOLT11, LNURL, and Lightning Address
- 💱 Currency Conversion: Integration with Yadio.io for USD, CUP and sats (more denominations coming)
- 📊 Complete History: Detailed visualization of all transactions
- 🌐 Multiplatform: Android, iOS, Web, Windows, macOS and Linux
🚀 Screenshots
<div align="center"> <img src="assets/images/welcome_screen.jpg" alt="Welcome Screen" width="200"> <img src="assets/images/home_screen.jpg" alt="Home Screen" width="200"> <img src="assets/images/sending_bitcoin.jpg" alt="Sending Bitcoin" width="200"> <img src="assets/images/receive_screen.jpg" alt="Receive Screen" width="200"> <img src="assets/images/history_screen.jpg" alt="Transaction History" width="200"> </div>| Welcome Screen | Home Screen | Send Payment | Receive Payment | Transaction History | |:--:|:--:|:--:|:--:|:--:| | Easy onboarding | Wallet management | Multiple formats | QR code generation | Complete transaction log |
🔧 Technologies Used
Frontend
- Flutter 3.0+: Cross-platform framework
- Dart: Programming language
- Provider: State management
- QR Flutter: QR code generation
- Mobile Scanner: QR code scanning
Backend & APIs
- LNBits: Lightning Network server
- Yadio.io: Exchange rate conversion
- Lightning Network: Payment protocol
Technical Features
- Secure Storage: Secure credential storage
- Dio HTTP Client: Optimized HTTP requests
- Real-time Updates: Automatic balance updates
- Responsive Design: Automatic adaptation to different screen sizes
📦 Installation
Prerequisites
- Flutter SDK (>=3.0.0)
- Dart SDK
- Configured LNBits server
Clone the Repository
git clone https://github.com/Forte11Cuba/lachispa.git
cd lachispa
Install Dependencies
flutter pub get
Run the app in emulator
flutter run
Build for your Platform
Android:
flutter build apk --release
iOS:
flutter build ios --release
Web:
flutter build web --release
Desktop:
flutter build windows --release # Windows
flutter build macos --release # macOS
flutter build linux --release # Linux
⚙️ Configuration
LNBits Servers
The application comes preconfigured with public LNBits servers, but you can add your own server:
- Open the application
- Go to "Change server"
- Select "Custom server"
- Enter your LNBits server URL
🏗️ Architecture
Project Structure
lib/
├── main.dart # Entry point
├── models/ # Data models
│ ├── wallet_info.dart
│ ├── lightning_invoice.dart
│ └── ln_address.dart
├── providers/ # State management
│ ├── auth_provider.dart
│ ├── wallet_provider.dart
│ └── ln_address_provider.dart
├── screens/ # Application screens
│ ├── 1welcome_screen.dart
│ ├── 6home_screen.dart
│ └── ...
├── services/ # API services
│ ├── auth_service.dart
│ ├── wallet_service.dart
│ └── invoice_service.dart
└── widgets/ # Reusable components
├── qr_scanner_widget.dart
└── spark_effect.dart
🔐 Security
- Secure Storage: Locally encrypted credentials
- HTTPS Only: All communications encrypted
- No Logging: No sensitive information logging
- Session Management: Secure session management
- Input Validation: Comprehensive input validation
📱 Compatibility
Supported Platforms
- ✅ Android (API 21+)
- ✅ iOS (iOS 12.0+)
- ✅ Web (Chrome, Firefox, Safari)
- ✅ Windows (Windows 10+)
- ✅ macOS (macOS 10.14+)
- ✅ Linux (Ubuntu 18.04+)
🤝 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/new-feature) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Open a Pull Request
📄 License
This project is under the MIT License - see the LICENSE file for more details.
