All Projects → coreyphillips → moonshine

coreyphillips / moonshine

Licence: MIT license
Moonshine is a homebrewed, open-source, non-custodial, Bitcoin wallet for iOS & Android.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to moonshine

Crypto-Wallet
Open source SHA-512 loginless bitcoin wallet
Stars: ✭ 24 (-57.14%)
Mutual labels:  wallet, bitcoin-wallet, litecoin
desktop
CoinApp is a simple to use minimal Cryptocurrency Wallet for Ethereum, ERC20 Tokens, Bitcoin and Litecoin built for Windows, Mac and Linux.
Stars: ✭ 60 (+7.14%)
Mutual labels:  wallet, bitcoin-wallet, litecoin
Blixt Wallet
Bitcoin Lightning Wallet with focus on usability and user experience
Stars: ✭ 40 (-28.57%)
Mutual labels:  wallet, bitcoin-wallet
Walletwasabi
Open-source, non-custodial, privacy focused Bitcoin wallet for Windows, Linux, and Mac. Built-in Tor, CoinJoin, and coin control features.
Stars: ✭ 1,197 (+2037.5%)
Mutual labels:  wallet, bitcoin-wallet
Multicurrencywallet
Bitcoin, Ethereum, ERC20 crypto wallets with Atomic Swap exchange. Release announce: https://twitter.com/SwapOnlineTeam/status/1321844352369500160
Stars: ✭ 136 (+142.86%)
Mutual labels:  wallet, litecoin
Edge React Gui
Edge Wallet React Native GUI for iOS and Android
Stars: ✭ 303 (+441.07%)
Mutual labels:  wallet, litecoin
Coinbin
Javascript Bitcoin Wallet. Supports Multisig, Stealth, HD, SegWit, Bech32, Time Locked Addresses, RBF and more!
Stars: ✭ 694 (+1139.29%)
Mutual labels:  wallet, bitcoin-wallet
Django Cc
Django wallet for Bitcoin and other cryptocurrencies
Stars: ✭ 105 (+87.5%)
Mutual labels:  wallet, litecoin
cryptowallet-cli
CW is a crypto wallet generator CLI tool for a lot of blockchains: Bitcoin, Ethereum, Binance Smart Chain and many others
Stars: ✭ 45 (-19.64%)
Mutual labels:  wallet, litecoin
scpx-wallet
Scoop Wallet: Core open-source, multi-asset & cross-platform CLI
Stars: ✭ 18 (-67.86%)
Mutual labels:  wallet, litecoin
Electrum
Electrum Bitcoin Wallet
Stars: ✭ 5,353 (+9458.93%)
Mutual labels:  electrum, bitcoin-wallet
gwallet
gwallet is a minimalistic and pragmatist opensource lightweight crossplatform brainwallet for people that want to hold the most important cryptocurrencies in the same application with ease and peace of mind
Stars: ✭ 26 (-53.57%)
Mutual labels:  wallet, litecoin
ergvein
Multiplatform BTC wallet with client side filters
Stars: ✭ 35 (-37.5%)
Mutual labels:  wallet, bitcoin-wallet
Arcbit Android
arcbit - Android bitcoin wallet http://arcbit.io
Stars: ✭ 34 (-39.29%)
Mutual labels:  wallet, bitcoin-wallet
wallet-address-validator
Useful library for validation of Bitcoin, Litecoin, Ethereum and other cryptocoin addresses
Stars: ✭ 240 (+328.57%)
Mutual labels:  wallet, litecoin
Bitbox Wallet App
The BitBoxApp for desktop and mobile.
Stars: ✭ 98 (+75%)
Mutual labels:  wallet, litecoin
Hdwallet
Simple Swift library for creating HD cryptocurrencies wallets and working with crypto Coins/ERC20 tokens.
Stars: ✭ 80 (+42.86%)
Mutual labels:  bitcoin-wallet, litecoin
Golden Wallet React Native
Golden - Best Wallet Ever
Stars: ✭ 201 (+258.93%)
Mutual labels:  bitcoin-wallet, litecoin
Arcbit Ios
arcbit - iOS bitcoin wallet http://arcbit.io
Stars: ✭ 142 (+153.57%)
Mutual labels:  wallet, bitcoin-wallet
arcbit-web
arcbit - web wallet http://arcbit.io
Stars: ✭ 31 (-44.64%)
Mutual labels:  wallet, bitcoin-wallet

Moonshine Icon

Moonshine

Moonshine is available on iOS & Android

Website: moonshinewallet.com

Send Transaction Main Receive Transaction

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

Features

  • Bitcoin/Litecoin Mainnet & Testnet supported
  • Bech32 support
  • Multiple wallet support
  • Electrum
    • Support for both random and custom peers
  • Encrypted storage
  • Biometric + Pin authentication
  • Custom fee selection
  • Import mnemonic phrases via manual entry or scanning
  • RBF functionality
  • BIP39 Passphrase functionality
  • Support for Segwit-compatible & legacy addresses in settings
  • Support individual private key sweeping
  • UTXO blacklisting
    • Accessible via the Transaction Detail view, this allows users to blacklist any utxo that they do not wish to include in their list of available utxo's when sending transactions. Blacklisting a utxo excludes it's amount from the wallet's total balance.
  • Ability to Sign & Verify Messages
  • Support BitID for passwordless authentication
  • Coin Control
    • This can be accessed from the Send Transaction view and basically allows users to select from a list of available UTXO's to include in their transaction.
  • Broadcast raw transactions

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.

Installation

  1. Clone Moonshine and Install Dependencies: git clone https://github.com/coreyphillips/moonshine && cd moonshine && yarn install
  2. Start the project:
    • iOS: react-native run-ios
    • Android: react-native run-android

Create Your Own Build

  • git clone https://github.com/coreyphillips/moonshine && cd moonshine && yarn install && yarn bundle

Create a Reproducible Build

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.

  1. Clone and cd into the latest release:
    • 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
  2. Run docker and create the build. Once built, the apks will be located in "moonshine/android/app/build/outputs/apk/release/":
    • 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"
  3. Fetch the apk from Google Play using a service of your choice. I've listed a few below:
  4. Use apkdiff.py to compare the apk files. Example usage:
    • python apkdiff.py googleplay.apk local.apk

Contributing

  1. Fork it (https://github.com/coreyphillips/moonshine)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

Altcoin Support

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.

Support

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].

Donate

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:

Meta

Corey Phillips – @coreylphillips

Distributed under the MIT license. See LICENSE for more information.

https://github.com/coreyphillips/moonshine

License MIT

Acknowledgments

  • Giant shoutout to the authors and contributors of the following projects along with everyone who has taken the time to provide feedback and help me through this process of learning and development. You are all awesome:
    • bitcoinjs-lib
      • For providing a powerful library with detailed documentation capable of handling all of the necessary client-side, Bitcoin-related heavy-lifting.
    • Electrum
      • For providing a simple and flexible way to interact with the Bitcoin network.
    • Lightning-App
      • For providing the initial inspiration for the main UI of this app and for providing a wonderful guide/example of how to implement Lightning via Neutrino.
    • Testers!
      • Thank you for the encouragement, exceptional feedback and help troubleshooting throughout the development process. You are a large part of what makes this community great. Thank you!
      • Special shoutout to the Groestlcoin team for their awesome help with QA and bug catching as they setup their own fork.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].