mirror of
https://github.com/mollyim/monero-wallet-sdk.git
synced 2026-02-22 01:47:14 +00:00
Library to access the Monero blockchain from mobile devices.
- Kotlin 59.9%
- C++ 30.7%
- CMake 6.5%
- AIDL 2.2%
- C 0.7%
| .github | ||
| build-logic | ||
| demo/android | ||
| gradle | ||
| lib/android | ||
| vendor | ||
| .gitignore | ||
| .gitmodules | ||
| build.gradle.kts | ||
| gradle.properties | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle.kts | ||
Monero Wallet SDK for Android
A modern Kotlin library that embeds Monero's wallet2 inside a sandboxed Android Service and exposes an idiomatic, asynchronous API for mobile apps.
Key Features
- Kotlin-native API: Asynchronous by design, using
suspendfunctions andFlow. - Sandboxed native code: All C++ runs in a zero-privilege, isolated process.
- Pluggable storage: Bring your own persistence layer (files, DB, cloud) via the
StorageProviderinterface. - Custom HTTP stack: Inject any networking code (plain, Tor, I2P, QUIC, …) to talk to Monero remote nodes.
- Client-side load-balancing: Automatic node selection for faster sync & fail-over.
- Tiny library (~6.5 MB AAR): LTO, dead-code elimination, and static vendored deps keep the footprint small.
- Jetpack-Compose demo wallet: Full sample app following Google's official architecture guidelines.
Setup
The SDK is available on Maven Central:
dependencies {
implementation("im.molly:monero-wallet-sdk:<latest-version>")
}
Make sure mavenCentral() is in your repositories block.
To use snapshot versions:
repositories {
maven {
name = "Central Portal Snapshots"
url = uri("https://central.sonatype.com/repository/maven-snapshots/")
content {
includeModule("im.molly", "monero-wallet-sdk")
}
}
}
dependencies {
implementation("im.molly:monero-wallet-sdk:<snapshot-version>")
}
Replace <latest-version> or <snapshot-version> with the version you want to use.
Demo App
A fully functional demo wallet is included in demo/android, implemented using Jetpack Compose
and following Android's modern app architecture best practices.
To try it out:
- Clone the repository with submodules:
git clone --recursive https://github.com/mollyim/monero-wallet-sdk - Open the root project directory in Android Studio (Meerkat or later).
- Select the demo run configuration and press Run.
The demo app showcases wallet creation, sync, transaction sending, and more.
Requirements
- Android 8.0 (API 26+)
- Kotlin 2.1.0
- Android Gradle Plugin 8.1.0+
Roadmap
| Feature | Status |
|---|---|
| Wallet management (create/open) | ✅ Done |
| Balance, history, sync | ✅ Done |
| Send XMR | ✅ Done |
| Seraphis migration support | 🔜 Planned |
Acknowledgements
- Funded by the Monero Community Crowdfunding System (CCS).
License
This project is licensed under the GNU General Public License v3.0.