Giter VIP home page Giter VIP logo

kronosmobile's Introduction

Kronos Mobile Wallet Icon

Kronos Mobile Wallet

Website: kronowallet.org

Send Transaction Main Receive Transaction

Kronos Wallet is a homebrewed, open-source, non-custodial, Bitcoin/Litecoin/Denarius Electrum wallet for iOS & Android.

Built with React Native, Kronos Wallet utilizes Electrum's JSON-RPC methods to interact with the Bitcoin/Litecoin/Denarius networks.

Kronos Wallet'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/Denarius on it at any given time.

Features

  • Bitcoin/Litecoin/Denarius 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

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/carsenk/kronosmobile && cd kronosmobile && 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/carsenk/kronosmobile && cd kronosmobile && 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'

Meta

Corey Phillips โ€“ @coreylphillips Carsen Klock - @carsenjk

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.

kronosmobile's People

Contributors

metaspartan avatar

Watchers

 avatar Emre avatar

Forkers

equisde

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.