aleohq/wagyu

Wagyu Etherum blockchain ledger and wallet in Rust

Cross platform ether wallet generator that makes automated creation of crypto wallets easy

Table of Contents

  • 1. Overview
  • 2. Build Guide
    • 2.1 Install Rust
    • 2.2a Build from Homebrew
    • 2.2b Build from Crates.io
    • 2.2c Build from Source Code
  • 3. Usage Guide
    • 3.1 Generate a cryptocurrency wallet
    • 3.2 Generate an HD cryptocurrency wallet
    • 3.3 Import a cryptocurrency wallet
    • 3.4 Import an HD cryptocurrency wallet
  • 4. License

1. Overview

Wagyu is a feature-rich command-line utility to generate a cryptocurrency wallet.

Wagyu enables developers to build their own cryptocurrency application using the following modules.

Library Standard Wallet HD Wallet Mnemonic Network
wagyu-bitcoin

  • P2PKH
  • P2SH-P2WPKH
  • Bech32

  • BIP-32
  • BIP-44
  • BIP-49
  • Custom

  • BIP-39

  • Mainnet
  • Testnet
wagyu-ethereum

  • Standard

  • Ethereum
  • Ledger
  • Trezor
  • Keepkey
  • Custom

  • BIP-39

  • All
wagyu-monero

  • Standard
  • Integrated
  • Subaddress

  • N/A

  • Electrum

  • Mainnet
  • Testnet
  • Stagenet
wagyu-zcash

  • P2PKH
  • Sprout
  • Sapling

  • ZIP-32

  • N/A

  • Mainnet
  • Testnet

Wagyu can support new cryptocurrencies by implementing the model as outlined in this module.

Library Standard Wallet HD Wallet Mnemonic Network
wagyu_model

  • Address
  • Public Key
  • Private Key

  • Derivation Path
  • Extended Public Key
  • Extended Private Key

  • Mnemonic
  • Wordlist

  • Network

2. Build Guide

2.1 Install Rust

We recommend installing Rust using rustup. You can install rustup as follows:

  • macOS or Linux:

  • Windows (64-bit):

    Download the Windows 64-bit executable and follow the on-screen instructions.

  • Windows (32-bit):

    Download the Windows 32-bit executable and follow the on-screen instructions.

2.2a Build from Homebrew (for macOS)

For macOS users, we recommend installing wagyu via Homebrew as follows:

2.2b Build from Crates.io

We recommend installing wagyu this way. In your terminal, run:

Now to use wagyu, in your terminal, run:

2.2c Build from Source Code

Alternatively, you can install wagyu by building from the source code as follows:

This will generate an executable under the ./target/release directory. To use wagyu, run the following command:

3. Usage Guide

3.1 Generate a cryptocurrency wallet

To generate a cryptocurrency wallet, run:

3.1.1 Bitcoin

To generate a Bitcoin wallet, run:

The command can be run with the following optional parameters:

3.1.2 Ethereum

To generate an Ethereum wallet, run:

The command can be run with the following optional parameters:

3.1.3 Monero

To generate a Monero wallet, run:

The command can be run with the following parameters:

3.1.4 Zcash

To generate a Zcash wallet, run:

The command can be run with the following parameters:

3.2 Generate an HD cryptocurrency wallet

To generate an HD cryptocurrency wallet, run:

3.2.1 Bitcoin

To generate a Bitcoin HD wallet, run:

This command can be run with the following parameters:

3.2.2 Ethereum

To generate an Ethereum HD wallet, run:

The command can be run with the following parameters:

3.2.3 Zcash

To generate a Zcash HD wallet, run:

The command can be run with the following parameters:

3.3 Import a cryptocurrency wallet

To import a cryptocurrency wallet, run:

3.3.1 Bitcoin

To import a Bitcoin wallet, run:

This command can be run with the following parameters:

3.3.2 Ethereum

To import an Etheruem wallet, run:

This command can be run with the following parameters:

3.3.3 Monero

To import a Monero wallet, run:

This command can be run with the following parameters:

3.3.4 Zcash

To import a Zcash wallet, run:

This command can be run with the following parameters:

3.4 Import an HD cryptocurrency wallet

To import an HD cryptocurrency wallet, run:

3.4.1 Bitcoin

To import a Bitcoin HD wallet, run:

This command can be run with the following parameters:

3.4.2 Ethereum

To import an Ethereum HD wallet, run:

This command can be run with the following parameters:

3.4.3 Zcash

To import a Zcash HD wallet, run:

This command can be run with the following parameters:

3.5 Generate a cryptocurrency transaction

To import an HD cryptocurrency wallet, run:

3.5.1 Bitcoin

To generate a Bitcoin transaction, run:

This command can be run with the following parameters:

3.5.2 Ethereum

To generate an Ethereum transaction, run:

This command can be run with the following parameters:

3.5.3 Zcash

To generate a Zcash transaction, run:

This command can be run with the following parameters:

3.5.4 Transaction Remarks

wagyu CLI operates offline without chain state, and thus cannot immediately craft Monero transactions or Zcash Sapling spends (Zcash Sapling outputs are supported).

4. License

This work is licensed under either of the following licenses, at your discretion.

  • Apache License Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (LICENSE-MIT or #404)

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Issues

Collection of the latest Issues

staktrace

staktrace

Comment Icon0

This is a great library/tool, but doesn't seem to have much activity from owners for last year or so. Is this project still being maintained?

cc @howardwu

staktrace

staktrace

Comment Icon1

I'd like to be able to do something like wagyu bitcoin import-hd -m "..." -d "m/84'/0'/0'/0/0" -f bech32 such that it prints out the address in bech32 format instead of P2PKH. Currently there doesn't appear to be any way to do this without code modification.

I'm happy to write a PR for this, but is this something you'd be interested in?

dependabot-preview[bot]

dependabot-preview[bot]

Comment Icon0

Dependabot can't resolve your Rust dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

mehranj73

mehranj73

Comment Icon0

Hey, Where is the doc for using this as a library? All examples are about command line.

WyseNynja

WyseNynja

enhancement
Comment Icon2

Hello! Thanks for the awesome library!

I have an ethereum mnemonic and am trying to generate 10 addresses using BIP44. What's the best way to do this?

If I run wagyu ethereum hd --count 10 it generates 10 separate wallets, which is not what I want.

There sure are a lot of different ways of handling the path, but BIP44 defines the path as m / purpose' / coin_type' / account' / change / address_index. import-hd only has a flag for --index. I would like to set the account (and maybe change), too.

This probably belongs on a separate issue, but while trying to figure this out, I think --index is not working like I expect it to.

I expected "Path" to be m/44'/60'/0'/0/9 like Ganache uses:

For now, I can build the path manually, but it would be nice if wagyu could do this for me.

howardwu

howardwu

enhancement
Comment Icon6

Summary

  • Implement Zcash transaction builder
  • Implement test suite for Zcash transaction builder
howardwu

howardwu

enhancement
Comment Icon1

Summary

  • Implement Monero transaction builder
  • Implement test suite for Monero transaction builder
cyberpunkbln

cyberpunkbln

Comment Icon0

Hello, i have only one short questions, do you know a site where i can get informations about other cryptocurrencys and the variables that i must replace when i want to expand your prg? thx

Versions

Find the latest versions by id

v0.6.1 - Sep 17, 2019

🏎 Improved reliability 🐛 Bug fixes

Major Changes

  • Fixes ZcashExtendedPublicKey prefix
  • Fixes ExtendedPublicKey derivation
  • Adds Format trait and refactors implementations
  • Refactors Mnemonic trait and implementations
  • Updates dependency versions

Installation

v0.6.0 - Aug 13, 2019

🎉 New wallet features 🏎 Improved reliability 🐛 Bug fixes

Major Changes

  • Adds subaddress and integrated address support for Monero
  • Adds shielded (Sprout and Sapling) wallet support for Zcash
  • Adds HD wallet support for Bitcoin, Ethereum, and Zcash
  • Adds mnemonic wallet support for Bitcoin, Ethereum, and Monero

Installation

v0.5.0 - Sep 04, 2018

We're very excited to be sharing this tool with the world. Install using the one line cargo command:

More information can be found in the readme!

This tool is not yet audited nor battle tested. Do not use it for high value storage!

Information - Updated Jun 17, 2022

Stars: 495
Forks: 79
Issues: 25

Repositories & Extras

Bitcoin Wallet Tracker

⛓️ on-chain or ⚡ lightning via BTCPay

Bitcoin Wallet Tracker

Bitcoin Wallet Tracker - C FFI

Support development: bwt, libbwt-nodejs

Bitcoin Wallet Tracker - C FFI

Bitcoin Wallet Tracker - JNI bindings

Java Native Interface bindings for HTTP API

Bitcoin Wallet Tracker - JNI bindings

Bitcoin Hashes Library

This is a simple, no-dependency library which implements the hash functions

Bitcoin Hashes Library

Bitcoin vault architecture for multi-party situations

as well as the #revault on Libera

Bitcoin vault architecture for multi-party situations

Bitcoin vault architecture for multi-party situations

Released under the BSD 3-Clause Licence

Bitcoin vault architecture for multi-party situations

Bitcoin vault architecture for multi-party situations

#revault on Libera for discussing Revault development

Bitcoin vault architecture for multi-party situations

Bitcoin Mining Pool Identification

This Rust crate implements a new PoolIdentification trait on rust-bitcoin's

Bitcoin Mining Pool Identification

bitcoin_analyzer

Analyze Bitcoin Blockchain Transactions

bitcoin_analyzer

bitcoin-exporter

Serve bitcoind core metrics under /metrics path

bitcoin-exporter

Bitcoin's libbitcoinconsensus with Rust bindings

This project builds the libbitcoinconsensus library from Bitcoin's C++ sources using cargo and provides Rust bindings to its API

Bitcoin's libbitcoinconsensus with Rust bindings

Bitcoin Push Notification Service SDK for Rust

The library is in an ALPHA state, things that are implemented generally work but the API will change in breaking ways

Bitcoin Push Notification Service SDK for Rust
Facebook Instagram Twitter GitHub Dribbble
Privacy