Skip to content

MAGICGrants/skylight-wallet

Repository files navigation

Skylight Wallet

A modern, open-source, and self-custody Monero light-wallet built with Flutter.

License Flutter

Prerequisites

Before you begin, ensure you have the following installed:

  • Flutter SDK (3.8.1 or higher) - Installation guide
  • Dart SDK (3.8.1 or higher) - Usually comes with Flutter
  • Android Studio - For Android development
  • Android SDK - API level 21+ (Android 5.0 Lollipop or higher)
  • Java JDK - Version 11 or higher

Getting Started

1. Clone the Repository

git clone https://github.com/magicgrants/skylight-wallet.git
cd skylight-wallet

2. Install Dependencies

flutter pub get

3. Configure Android Development Environment

  1. Install Android Studio and the Android SDK
  2. Accept Android licenses:
    flutter doctor --android-licenses
  3. Set up a device:
    • Use an Android emulator (AVD Manager in Android Studio), or
    • Connect a physical Android device with USB debugging enabled
  4. Verify setup:
    flutter doctor
    This will check for any missing dependencies

Development

Running the App

Debug Mode (Development)

Run the app in debug mode with hot reload:

# Run on connected device or emulator
flutter run

# List available Android devices/emulators
flutter devices

# Run on a specific device
flutter run -d <device_id>

Make sure you have an Android emulator running or a physical device connected before running the app.

Building for Android

Debug APK

Build a debug APK for testing:

flutter build apk --debug

The APK will be located at: build/app/outputs/flutter-apk/app-debug.apk

Release APK

Build a debug APK for release:

flutter build apk --release

The APK will be located at: build/app/outputs/flutter-apk/app-release.apk

Split APKs by ABI (smaller file sizes)

flutter build apk --split-per-abi --release

This creates separate APKs for each architecture:

  • app-armeabi-v7a-release.apk (32-bit ARM)
  • app-arm64-v8a-release.apk (64-bit ARM)
  • app-x86_64-release.apk (64-bit x86)

Installing the APK

To install the built APK on your device:

# Install debug APK
flutter install

# Or manually using adb
adb install build/app/outputs/flutter-apk/app-release.apk

Note: Other platforms (iOS, Linux, macOS, Windows, Web) are not currently supported but may be added in future releases.

Localization

The app uses Flutter's internationalization framework. To add a new language:

  1. Create a new ARB file in lib/l10n/ (e.g., app_es.arb for Spanish)
  2. Copy the structure from app_en.arb and translate the strings
  3. Run code generation:
    flutter gen-l10n
  4. The generated localization files will be in lib/l10n/

Building libmonero_libwallet2_api_c.so

This is needed for the wallet functions and is located at android/app/src/main/jniLibs/<platform>/.

These instructions should work on Ubuntu 22.04. You can use the ubuntu:22.04 Docker image if you don't use Ubuntu as your OS.

Install dependencies

$ apt update
$ apt install -y build-essential pkg-config autoconf libtool \
    ccache make cmake gcc g++ git curl lbzip2 libtinfo5 gperf \
    unzip python-is-python3 llvm

Prepare source

$ git clone https://github.com/vtnerd/monero_c --recursive
$ cd monero_c
$ git checkout lwsf
$ git submodule update --init
$ ./apply_patches.sh monero

Building

# For armeabi-v7a
$ ./build_single.sh monero armv7a-linux-androideabi -j$(nproc)

# For arm64-v8a
$ ./build_single.sh monero aarch64-linux-android -j$(nproc)

# For x86_64
$ ./build_single.sh monero x86_64-linux-android -j$(nproc)

Contributing

Pull requests welcome! Thanks for supporting MAGIC Grants.

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •