Table of Contents

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
Crates.io |

|
|
|
| | wagyu-ethereum
Crates.io|
|
|
|
| | wagyu-monero
Crates.io |
|
|
|
| | wagyu-zcash
Crates.io |
|
|
|
|

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

| Library | Standard Wallet | HD Wallet | Mnemonic | Network | |:-------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------| | wagyu_model
Crates.io |

|
|
|
|

2. Build Guide

2.1 Install Rust

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

2.2a Build from Crates.io

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

bash cargo install wagyu

Now to use wagyu, in your terminal, run: bash wagyu

2.2b Build from Source Code

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

```bash

Download the source code

git clone https://github.com/ArgusHQ/wagyu cd wagyu

Build in release mode

$ cargo build --release ```

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

3. Usage Guide

3.1 Generate a cryptocurrency wallet

To generate a cryptocurrency wallet, run: wagyu [CRYPTOCURRENCY] [FLAGS] [OPTIONS]

3.1.1 Bitcoin

To generate a Bitcoin wallet, run: wagyu bitcoin [FLAGS] [OPTIONS]

The command can be run with the following optional parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets -f, --format Generates a wallet with a specified format [possible values: bech32, legacy, segwit] -n, --network Generates a wallet for a specified network [possible values: mainnet, testnet] ```

3.1.2 Ethereum

To generate an Ethereum wallet, run: wagyu ethereum [FLAGS] [OPTIONS]

The command can be run with the following optional parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets ```

3.1.3 Monero

To generate a Monero wallet, run: wagyu monero [FLAGS] [OPTIONS]

The command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets -i, --integrated Generates a wallet with a specified payment ID -l, --language Generates a wallet with a specified language [possible values: chinese_simplified, dutch, english, esperanto, french, german, italian, japanese, lojban, portuguese, russian, spanish] -n, --network Generates a wallet for a specified network [possible values: mainnet, stagenet, testnet] -s, --subaddress Generates a wallet with a specified major and minor index ```

3.1.4 Zcash

To generate a Zcash wallet, run: wagyu zcash [FLAGS] [OPTIONS]

The command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets --diversifier Generates a wallet with a specified Sapling address diversifier -f, --format Generates a wallet with a specified format [possible values: sapling, sprout, transparent] -n, --network Generates a wallet for a specified network [possible values: mainnet, testnet] ```

3.2 Generate an HD cryptocurrency wallet

To generate an HD cryptocurrency wallet, run: wagyu [CRYPTOCURRENCY] hd [FLAGS] [OPTIONS]

3.2.1 Bitcoin

To generate a Bitcoin HD wallet, run: wagyu bitcoin hd [FLAGS] [OPTIONS]

This command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets -d, --derivation <"path"> Generates an HD wallet for a specified derivation path (in quotes) [possible values: bip32, bip44, bip49, ""] -f, --format Generates an HD wallet with a specified format [possible values: bech32, legacy, segwit] -l, --language Generates an HD wallet with a specified language [possible values: chinesesimplified, chinesetraditional, english, french, italian, japanese, korean, spanish] -n, --network Generates an HD wallet for a specified network [possible values: mainnet, testnet] -p, --password Generates an HD wallet with a specified password -w, --word-count Generates an HD wallet with a specified word count [possible values: 12, 15, 18, 21, 24] ```

3.2.2 Ethereum

To generate an Ethereum HD wallet, run: wagyu ethereum hd [FLAGS] [OPTIONS]

The command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets -d, --derivation <"path"> Generates an HD wallet for a specified derivation path (in quotes) [possible values: ethereum, keepkey, ledger-legacy, ledger-live, trezor, ""] -l, --language Generates an HD wallet with a specified language [possible values: chinesesimplified, chinesetraditional, english, french, italian, japanese, korean, spanish] -p, --password Generates an HD wallet with a specified password -w, --word-count Generates an HD wallet with a specified word count [possible values: 12, 15, 18, 21, 24] ```

3.2.3 Zcash

To generate a Zcash HD wallet, run: wagyu zcash hd [FLAGS] [OPTIONS]

The command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -c, --count Generates a specified number of wallets -d, --derivation <"path"> Generates an HD wallet for a specified derivation path (in quotes) [possible values: zip32, ""] --diversifier Imports a wallet with a specified Sapling address diversifier -n, --network Generates an HD wallet for a specified network [possible values: mainnet, testnet] ```

3.3 Import a cryptocurrency wallet

To import a cryptocurrency wallet, run: wagyu [CRYPTOCURRENCY] import [FLAGS] [OPTIONS]

3.3.1 Bitcoin

To import a Bitcoin wallet, run: wagyu bitcoin import [FLAGS] [OPTIONS]

This command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: --address

Imports a partial wallet for a specified address -f, --format Imports a wallet with a specified format [possible values: bech32, legacy, segwit] -n, --network Imports a wallet for a specified network [possible values: mainnet, testnet] --private Imports a wallet for a specified private key --public Imports a partial wallet for a specified public key ```

3.3.2 Ethereum

To import an Etheruem wallet, run: wagyu ethereum import [FLAGS] [OPTIONS]

This command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: --address

Imports a partial wallet for a specified address --private Imports a wallet for a specified private key --public Imports a partial wallet for a specified public key ```

3.3.3 Monero

To import a Monero wallet, run: wagyu monero import [FLAGS] [OPTIONS]

This command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: --address

Imports a partial wallet for a specified address -i, --integrated Imports a wallet with a specified payment ID -l, --language Imports a wallet with a specified mnemonic language (requires private spend key) [possible values: chinese_simplified, dutch, english, esperanto, french, german, italian, japanese, lojban, portuguese, russian, spanish] -m, --mnemonic <"mnemonic"> Imports a wallet for a specified mnemonic (in quotes) -n, --network Imports a wallet for a specified network [possible values: mainnet, stagenet, testnet] --private-spend Imports a wallet for a specified private spend key --private-view Imports a partial wallet for a specified private view key --public-spend Imports a partial wallet for a specified public spend key --public-view Imports a partial wallet for a specified public view key -s, --subaddress Imports a wallet with a specified major and minor index ```

3.3.4 Zcash

To import a Zcash wallet, run: wagyu zcash import [FLAGS] [OPTIONS]

This command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: --address

Imports a partial wallet for a specified address --diversifier Imports a wallet with a specified Sapling address diversifier --private Imports a wallet for a specified private key --public Imports a partial wallet for a specified public key ```

3.4 Import an HD cryptocurrency wallet

To import an HD cryptocurrency wallet, run: wagyu [CRYPTOCURRENCY] import-hd [FLAGS] [OPTIONS]

3.4.1 Bitcoin

To import an Bitcoin HD wallet, run: wagyu bitcoin hd [FLAGS] [OPTIONS]

This command can be run with the following parameters: ``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -a, --account Imports an HD wallet for a specified account number for bip44 and bip49 derivations -c, --chain Imports an HD wallet for a specified (external/internal) chain for bip44 and bip49 derivations [possible values: 0, 1] -d, --derivation <"path"> Imports an HD wallet for a specified derivation path (in quotes) [possible values: bip32, bip44, bip49, ""] --extended-private Imports a partial HD wallet for a specified extended private key --extended-public Imports a partial HD wallet for a specified extended public key -f, --format Imports an HD wallet with a specified format [possible values: bech32, legacy, segwit] -i, --index Imports an HD wallet for a specified index -m, --mnemonic <"mnemonic"> Imports an HD wallet for a specified mnemonic (in quotes) -n, --network Imports an HD wallet for a specified network [possible values: mainnet, testnet] -p, --password Imports an HD wallet with a specified password ```

3.4.2 Ethereum

To import an Ethereum HD wallet, run: wagyu ethereum hd [FLAGS] [OPTIONS]

This command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -d, --derivation <"path"> Imports an HD wallet for a specified derivation path (in quotes) [possible values: ethereum, keepkey, ledger-legacy, ledger-live, trezor, ""] --extended-private Imports a partial HD wallet for a specified extended private key --extended-public Imports a partial HD wallet for a specified extended public key -i, --index Imports an HD wallet for a specified index -m, --mnemonic <"mnemonic"> Imports an HD wallet for a specified mnemonic (in quotes) -p, --password Imports an HD wallet with a specified password ```

3.4.3 Zcash

To import an Zcash HD wallet, run: wagyu zcash hd [FLAGS] [OPTIONS]

This command can be run with the following parameters:

``` FLAGS: -h, --help Prints help information -j, --json Prints the generated wallet(s) in JSON format

OPTIONS: -a, --account Imports an HD wallet for a specified account number for bip44 and bip49 derivations -d, --derivation <"path"> Imports an HD wallet for a specified derivation path (in quotes) [possible values: zip32, ""] --diversifier Imports an HD wallet with a specified Sapling address diversifier --extended-private Imports a partial HD wallet for a specified extended private key --extended-public Imports a partial HD wallet for a specified extended public key -i, --index Imports an HD wallet for a specified index ```

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 http://opensource.org/licenses/MIT)

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.