Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

History
184 lines (142 loc) · 5.59 KB

File metadata and controls

184 lines (142 loc) · 5.59 KB

LaChispa ⚡

Ask DeepWiki
Ask questions about this project using DeepWiki AI

LaChispa Logo

A modern and easy-to-use mobile Lightning Network wallet

Flutter Dart Bitcoin Lightning


📱 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

Welcome Screen Home Screen Sending Bitcoin Receive Screen Transaction History
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:

  1. Open the application
  2. Go to "Change server"
  3. Select "Custom server"
  4. 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:

  1. Fork the repository
  2. Create a branch for your feature (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

📄 License

This project is under the MIT License - see the LICENSE file for more details.