# Unstoppable Wallet for Android splits one app per chain and per store

> The horizontalsystems/unstoppable-wallet-android repository is a Kotlin crypto wallet for Bitcoin, Ethereum, Binance Smart Chain, Avalanche, Solana and other chains, and its structure is the interesting part: chain support lives in separate walletkit modules and the build is split into separate subscription apps for F-Droid, Google Play and a development build.

**horizontalsystems/unstoppable-wallet-android** — A powerful non-custodial multi-wallet for Bitcoin, Ethereum, Binance Smart Chain, Avalanche, Solana and other blockchains. Non-custodial crypto and NFT storage, onchain decentralized exchange, institutional grade analytics for cryptcurrency and NFT markets, extensive privacy controls and human oriented design. Implemented on Kotlin.

- Repository: https://github.com/horizontalsystems/unstoppable-wallet-android
- Website: https://unstoppable.money
- Stars: 1,264 · Forks: 510
- Language: Kotlin
- License: MIT
- Published: 2026-10-19 · Updated: 2026-10-19 · Language: en
- Canonical page: https://hysenlabs.com/projects/horizontalsystems-unstoppable-wallet-android

## The premise is that only the user controls the money

The README states the position directly: the project exists because of an obsession with a world where private property is untouchable and market access is unconditional, and that led to engineering a crypto wallet that is equally open to all, lives online forever and unconditionally protects the user's assets, with only the user in control of the money. The feature description follows from that. It is a non-custodial multi-wallet for Bitcoin, Ethereum, Binance Smart Chain, Avalanche, Solana, Zcash, The Open Network and other blockchains, providing non-custodial crypto and NFT storage, on-chain decentralized swaps, institutional grade analytics for cryptocurrency and NFT markets, extensive privacy controls and a human oriented design. The implementation is entirely in Kotlin, and the project describes it as built with care and adhering to best programming practices and implementation standards in the cryptocurrency world.

## One module per chain, in the same repository

The top level directory listing is the clearest evidence of how the project is architected. There is a `walletkit/` directory and then a family of `walletkit-chain-` directories, one for each chain: bitcoin, evm, monero, solana, stellar, thorchain, ton, tron, xrp, zano and zcash. That separation is the design decision worth understanding. A wallet that supports a dozen chains has to deal with a dozen address formats, a dozen transaction formats and a dozen fee models, and putting each of those behind its own module boundary means adding a chain does not mean touching the shared code. It also means the shared core stays small, which matters because the shared core is where a bug in key handling would be worst. The separate `walletkit-chain-evm` module is the one that covers the Ethereum-compatible chains the README names, including Binance Smart Chain and Avalanche.

## Three subscription builds, one source tree

There are three `subscriptions-` directories alongside the shared `subscriptions-core`, and they are `subscriptions-dev`, `subscriptions-fdroid` and `subscriptions-google-play`. The structure says that the difference between the distributed builds is a distribution channel concern rather than a code concern, with the shared behaviour in the core and the channel specifics in the thin layer. That is a sensible way to keep a Play build and an F-Droid build from drifting apart, and it is also the answer to the question of how a single repository produces an app for a proprietary store and a F-Droid package at the same time. The `app/` directory holds the application module itself, `components/` holds shared UI components, and there are separate `dapp-core` and `dapp-wallet-connect` directories for the decentralized application side and the wallet connection protocol.

## Three distribution channels, including a sideloading one

The download section lists three ways to get the application, and the third is the one that distinguishes it from a typical wallet. There is an F-Droid listing for the package `io.horizontalsystems.bankwallet`, a Google Play listing with the same package identifier, and an Obtainium badge, which points at the repository URL with an obtainium scheme. Obtainium is the channel that lets a user follow a repository and receive builds directly, without a store in the middle, and for a wallet that is a meaningful option because the user is not depending on a proprietary store's review and update policy. The application identifier being the same across all three channels means a user switching channels keeps the same app identity. The README states the supported devices plainly: Android 8.1 and above.

## Security tooling is part of the repository layout

Several top level entries point at how the project treats security and automation. There is a `.semgrep.yml`, which configures static analysis rules for the codebase, and a `maestro/` directory, which is where end-to-end UI tests live. There is an `AGENTS.md` and a `CONTRIBUTE.md`, and a `Development.md` that covers the development environment, plus a `RELEASE.md` for the release process. The build is a Gradle project with Kotlin DSL, using `build.gradle.kts`, `settings.gradle.kts` and `gradle.properties`, with the `gradlew` and `gradlew.bat` wrappers present. There is also an `assetlinks/` directory, which holds the Android asset links file for verified app links, and a `metadata/` directory, and a `docker/` directory at the top level, which is presumably how a local or CI environment is reproduced. A `docs/` directory holds the user facing documentation.

## What the README does not tell you

The gap here is worth naming rather than papering over. The README is a page long and covers the positioning, the supported Android versions, where to download the app, the source code link and the licence. It does not describe the key derivation or storage model, the seed phrase handling, the backup and restore procedure, the transaction signing flow, or the security model for the decentralized swap feature. It also does not explain how the modules for Monero, Zcash, Zano and Stellar handle chain-specific privacy, which for several of those chains is the whole difficulty. Those details are in the source and in the documentation directory, and for a wallet they are the details that decide whether you want to depend on the project at all. The MIT licence is permissive and the code is open, which means the audit trail is available, but reading it is on the adopter.

## Conclusion

Adopt Unstoppable Wallet for Android if you want a non-custodial multi-chain wallet whose chain support and store builds are separated so you can see exactly what goes into a given binary, since the repository makes that structure explicit. Do not adopt it if you need a custodial or custodial-plus wallet, because the whole design is non-custodial with the user in control of the keys, and treat the key management code as a security-critical dependency rather than a convenience. Verify first that your device runs Android 8.1 or above, check which subscription build matches your distribution channel, and read the MIT licence file before you ship a build under your own name.

## FAQ

### Which blockchains does Unstoppable Wallet for Android support?

The README names Bitcoin, Ethereum, Binance Smart Chain, Avalanche, Solana, Zcash, The Open Network and other blockchains, and the repository has a separate walletkit chain module for bitcoin, evm, monero, solana, stellar, thorchain, ton, tron, xrp, zano and zcash.

### Where can I download Unstoppable Wallet for Android?

From F-Droid, from Google Play, and through Obtainium, which follows the repository directly. All three use the package identifier `io.horizontalsystems.bankwallet`.

### What Android versions does Unstoppable Wallet support?

Devices running Android 8.1 and above, according to the README's supported Android versions section.

### Is Unstoppable Wallet custodial?

No. It is described as a non-custodial multi-wallet, with the README stating that only the user is in control of the money, and it provides non-custodial crypto and NFT storage along with on-chain decentralized swaps.

### What licence is Unstoppable Wallet released under?

The wallet is open source and available under the terms of the MIT License, with the licence file in the root of the repository. The most recent releases are 0.52.1 and 0.52.0.

## Sources

- [horizontalsystems/unstoppable-wallet-android on GitHub](https://github.com/horizontalsystems/unstoppable-wallet-android)
- [License: MIT](https://github.com/horizontalsystems/unstoppable-wallet-android/blob/master/LICENSE)
- [Project website](https://unstoppable.money)
- [README](https://github.com/horizontalsystems/unstoppable-wallet-android/blob/master/README.md)
- [Releases](https://github.com/horizontalsystems/unstoppable-wallet-android/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/horizontalsystems-unstoppable-wallet-android
