Library to access the Monero blockchain from mobile devices.
  • Kotlin 59.9%
  • C++ 30.7%
  • CMake 6.5%
  • AIDL 2.2%
  • C 0.7%
Find a file
2026-01-02 10:35:27 +01:00
.github ci: unify test and snapshot workflows into build.yml 2025-05-31 10:29:59 +02:00
build-logic ci: fix snapshot version check 2025-05-31 01:08:28 +02:00
demo/android lib: rename RestorePoint.Genesis to GenesisBlock 2026-01-02 10:35:27 +01:00
gradle lib: prepare for publishing 2025-05-28 22:20:28 +02:00
lib/android lib: rename RestorePoint.Genesis to GenesisBlock 2026-01-02 10:35:27 +01:00
vendor monero: update submodule 2025-05-28 22:20:27 +02:00
.gitignore All downhill from here 2023-10-11 00:58:13 +02:00
.gitmodules All downhill from here 2023-10-11 00:58:13 +02:00
build.gradle.kts lib: prepare for publishing 2025-05-28 22:20:28 +02:00
gradle.properties build: disable jetifier 2024-05-14 09:29:24 +02:00
gradlew build: upgrade to AGP 8.10.0 2025-05-26 19:44:58 +02:00
gradlew.bat build: upgrade to AGP 8.8.0 2025-01-23 00:32:43 +01:00
LICENSE All downhill from here 2023-10-11 00:58:13 +02:00
README.md ci: unify test and snapshot workflows into build.yml 2025-05-31 10:29:59 +02:00
settings.gradle.kts build: downgrade JDK to 17 2025-04-19 22:04:22 +02:00

Monero Wallet SDK for Android

Build Maven Central Snapshot

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 suspend functions and Flow.
  • Sandboxed native code: All C++ runs in a zero-privilege, isolated process.
  • Pluggable storage: Bring your own persistence layer (files, DB, cloud) via the StorageProvider interface.
  • 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:

  1. Clone the repository with submodules:
    git clone --recursive https://github.com/mollyim/monero-wallet-sdk
    
  2. Open the root project directory in Android Studio (Meerkat or later).
  3. 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.