Moonshine is a homebrewed, open-source, non-custodial, Bitcoin wallet for iOS & Android.
MIT License
Moonshine is available on iOS & Android
Website: moonshinewallet.com
Moonshine is a homebrewed, open-source, non-custodial, Bitcoin/Litecoin Electrum wallet for iOS & Android.
Built with React Native, Moonshine utilizes Electrum's JSON-RPC methods to interact with the Bitcoin/Litecoin network.
Moonshine's intended use is as a hot wallet. Meaning, your keys are only as safe as the device you install this wallet on. As with any hot wallet, please ensure that you keep only a small, responsible amount of Bitcoin/Litecoin on it at any given time.
If you are looking for secure cold storage solutions please consider purchasing a Trezor or a Ledger
For an up-to-date list of features that are in progress please refer to Moonshine's issue page. If you do not see a feature that you want feel free to create a new issue requesting it or reach out at [email protected] and let me know.
git clone https://github.com/coreyphillips/moonshine && cd moonshine && yarn install
react-native run-ios
react-native run-android
git clone https://github.com/coreyphillips/moonshine && cd moonshine && yarn install && yarn bundle
This method requires docker to create a reproducible build and takes quite some time. However, it will allow you to verify against the most recently available build on Google Play.
A few things to note though. First, this method only works if using the same version that is currently available on the Play Store. Second, you'll need to be sure that you're comparing the correct apk files depending on the device you're using (x86, x86_64, v7a, arm64-v8a). Third, make sure you're building with a clean, unmodified clone of moonshine by following the steps below. Modifying the code in any way will result in a failed apkdiff.py check.
basename $(curl -Ls -o /dev/null -w %{url_effective} https://github.com/coreyphillips/moonshine/releases/latest) | { IFS= read -r tag; git clone -b ${tag} https://github.com/coreyphillips/moonshine; }
cd moonshine
docker run --rm --name moonshine-build -v ${PWD}:/pwd -w /pwd coreylphillips/react-native-android bash -c "source ~/.bash_profile && yarn install && cd nodejs-assets/nodejs-project && yarn install && cd ../../android && ./gradlew clean && cd .. && yarn bundle"
python apkdiff.py googleplay.apk local.apk
git checkout -b feature/fooBar
)git commit -am 'Add some fooBar'
)git push origin feature/fooBar
)Please be aware and take note that my primary focus is on expanding the core functionality of this wallet and not on adding altcoins. However, for those wishing to add a specific altcoin for personal use, I have created the following guide so that you may fork off in a proper fashion: Altcoin Implementation Guide
If you have any questions regarding this guide I'm always happy to help so don't hesitate to reach out.
Supported Derivation Paths: m/44' | 49' | 84' /0'/0'
Again, if you have any questions, feature requests, etc., please feel free to create an issue on Github, reach out to me on Twitter or send an email to [email protected].
I built this app to learn and have fun. I never intend to monetize or turn a profit on this app so if you found it useful, cool or interesting please consider donating:
Corey Phillips – @coreylphillips
Distributed under the MIT license. See LICENSE
for more information.
https://github.com/coreyphillips/moonshine