A modern, open-source, and self-custody Monero light-wallet built with Flutter.
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
git clone https://github.com/magicgrants/skylight-wallet.git
cd skylight-walletflutter pub get- Install Android Studio and the Android SDK
- Accept Android licenses:
flutter doctor --android-licenses
- Set up a device:
- Use an Android emulator (AVD Manager in Android Studio), or
- Connect a physical Android device with USB debugging enabled
- Verify setup:
This will check for any missing dependencies
flutter doctor
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.
Build a debug APK for testing:
flutter build apk --debugThe APK will be located at: build/app/outputs/flutter-apk/app-debug.apk
Build a debug APK for release:
flutter build apk --releaseThe APK will be located at: build/app/outputs/flutter-apk/app-release.apk
flutter build apk --split-per-abi --releaseThis 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)
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.apkNote: Other platforms (iOS, Linux, macOS, Windows, Web) are not currently supported but may be added in future releases.
The app uses Flutter's internationalization framework. To add a new language:
- Create a new ARB file in
lib/l10n/(e.g.,app_es.arbfor Spanish) - Copy the structure from
app_en.arband translate the strings - Run code generation:
flutter gen-l10n
- The generated localization files will be in
lib/l10n/
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.
$ 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$ git clone https://github.com/vtnerd/monero_c --recursive
$ cd monero_c
$ git checkout lwsf
$ git submodule update --init
$ ./apply_patches.sh monero# 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)Pull requests welcome! Thanks for supporting MAGIC Grants.