Skip to content

cryptocurrency offline wallet

License

Unknown, Unknown licenses found

Licenses found

Unknown
COPYING
Unknown
LICENSE.GPLv3
Notifications You must be signed in to change notification settings

yancaitech/hodler-wallet

Repository files navigation

Hodler-Wallet

What is Hodler-Wallet ?

Hodler-Wallet is an open source cryptocurrency wallet written for Hodler.

Hodler-Wallet is composed of offline-application (Hodler) and online-application (Porter).

Porter supports custom btcd, ltcd, bchd nodes, and it is safer and faster to use self-built nodes.

Types currently supported by Hodler-Wallet 0.3.0:

  • Bitcoin
  • Litecoin
  • Bitcoin Cash
  • Bitcoin SV
  • Ethereum
  • Ethereum ERC20 token
  • Ripple

Supported platforms:

  • Windows
  • Macos
  • Linux (Ubuntu)
  • Android
  • iOS (Need to manually compile and install)

Twitter: https://twitter.com/yancaitech

Table of Contents

Hodler

Hodler

Hodler is an offline wallet application. For key security, it should be run on devices without WiFi / Bluetooth and Internet.

Hodler uses the root key to generate private keys and addresses for various cryptocurrencies.

Hodler receives and transmits crypto currency by communicating with the Porter application, and by using the camera to scan the QR code, Hodler and the Porter application communicate.

Porter

Hodler

Porter is an auxiliary tool used by Hodler. It can exchange information with the Hodler application and assist in the transmission of crypto currency addresses and transactions.

Porter itself does not store any key, only store the address and transaction content, and send the transaction by calling the blockchain-related service interface on the network.

The main function of Porter is to generate transactions from addresses, and then pass unsigned transactions to the Hodler application through QR codes. Hodler uses the corresponding private key to sign the transaction, and then also passes the signed transaction to Porter through the QR code. Finally Porter broadcasts the signed transaction to the blockchain to complete the transaction.

install

Install prebuilt packages

We host prebuilt binaries over at our distributions page.

Android Google Play:

From there:

  • Click the blue "Download Hodler / Porter" on the right side of the page.
  • Desktop version Open/extract the archive.
  • Android version install the .apk file.

Linux package

$ sudo dpkg -i porter-0.1.0.deb
$ sudo dpkg -i hodler-0.1.0.deb

Build from Source

Hodler-Wallet's build system requires Go 1.14 and some standard build tools:

  • Qt 5.12.8
  • Go 1.14.2
  • gomobile
  • Git
  • GCC (or some other go compatible C Compiler) (optional)
  • VS 2017 C++
  • XCode
  • Android SDK

Install Go

The build process for Hodler-Wallet requires Go 1.14.2 or higher. If you don't have it: Download Go 1.14+.

You'll need to add Go's bin directories to your $PATH environment variable e.g., by adding these lines to your /etc/profile (for a system-wide installation) or $HOME/.profile:

export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$GOPATH/bin

(If you run into trouble, see the Go install instructions).

Hodler-Wallet requires gomobile, If you don't have it: Go mobile

Compile mobile rpc library:

go get -u github.com/yancaitech/go-hodler-rpc

cd go-hodler-rpc/coinsrpc
gomobile init
gomobile bind -target=android
gomobile bind -target=ios

Replace to

  • hodler-wallet\hodler\android\libs\coinsrpc.aar
  • hodler-wallet\porter\android\libs\coinsrpc.aar
  • hodler-wallet\hodler\ios\Coinsrpc.framework

Compile desktop rpc library:

cd go-hodler-rpc
go build main.go

Replace to

  • \hodler-wallet\hodler\win\coinsrpc
  • \hodler-wallet\hodler\linux\coinsrpc
  • \hodler-wallet\hodler\macos\coinsrpc

Install Qt

The build process for Hodler-Wallet requires Qt 5.12.8. If you don't have it: Download Qt 5.12.8

If you use macos platform, you need to download XCode. Windows platform, need to download VS 2017.

To compile apk for android platform, you need to download Android SDK.

Download and Compile

$ git clone https://github.com/yancaitech/hodler-wallet

Use Qt Creator to open the project file

  • /hodler-wallet/hodler/hodler.pro
  • /hodler-wallet/porter/porter.pro

and select the corresponding platform to compile.

Troubleshooting

  • Some platforms may require manual configuration of OpenSSL

Getting Started

See also: https://github.com/yancaitech/hodler-wallet/doc

Some things to try

  • Use two devices to run Hodler and Porter
  • Hodler initializes the root key
  • Receive bitcoin, transfer it from other websites to the bitcoin address displayed by Hodler
  • Send bitcoin, use Porter to scan the QR code of the bitcoin address displayed by Hodler
  • Use "Create transaction", then use Hodler to scan the QR code and sign the transaction
  • Use Porter to scan the signed transaction QR code and send it to the blockchain network

Development

Some development dependencies:

Architecture Diagram

Map of Hodler-Wallet Subsystems

subsystems

Description: Hodler manages the keys and addresses, and signs the transactions passed by Porter. Porter generates transactions and broadcasts the signed transactions passed by Porter to the blockchain network.

Hodler Key Architecture

keyarch

Description: The root key is a 256-bit number, managed by mnemonic words, and each subkey is divided by bip32's m1 and m2.

Donation

The donation to this project will be used for development, maintenance, and deployment of blockchain service nodes.

bitcoin:

  • 1HoDLerRSWcYv8J9GVyscqrRyW8WWGczsR btcaddr

litecoin:

  • LYdhar6MnvWvbkXg1NHdDiVgKMeUd3qZKU

bitcoincash:

  • qq8n5ys4kgem8huhj669vesttq7dyarmxsse8dep88

ethereum:

  • 0x33835198dd1747b8fb4e688c76ac79457c82cc04

ripple:

  • rDi3LBiM7UTcDtx9wnPXf83k4BuX7KUy6o

License

The Hodler-Wallet project is under GNU GENERAL PUBLIC LICENSE version 3:

  • GNU GENERAL PUBLIC LICENSE (GPLv3)

Copyright © 2020 yancaitech yancaitech@gmail.com