A Rust library for generating cryptocurrency wallets

Overview

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

  • P2PKH
  • P2SH-P2WPKH
  • Bech32

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

  • BIP-39

  • Mainnet
  • Testnet
wagyu-ethereum
Crates.io

  • Standard

  • Ethereum
  • Ledger
  • Trezor
  • Keepkey
  • Custom

  • BIP-39

  • All
wagyu-monero
Crates.io

  • Standard
  • Integrated
  • Subaddress

  • N/A

  • Electrum

  • Mainnet
  • Testnet
  • Stagenet
wagyu-zcash
Crates.io

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




2. Build Guide

2.1 Install Rust

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

  • macOS or Linux:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • 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:

brew install wagyu

2.2b Build from Crates.io

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

cargo install wagyu

Now to use wagyu, in your terminal, run:

wagyu

2.2c Build from Source Code

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

# Download the source code
git clone https://github.com/AleoHQ/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:

./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 <count>        Generates a specified number of wallets
    -f, --format <format>      Generates a wallet with a specified format [possible values: bech32, legacy, segwit]
    -n, --network <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 <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 <count>                             Generates a specified number of wallets
    -i, --integrated <PaymentID>                    Generates a wallet with a specified payment ID
    -l, --language <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 <network>                         Generates a wallet for a specified network [possible values: mainnet, stagenet, testnet]
    -s, --subaddress <Major Index> <Minor Index>    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 <count>                Generates a specified number of wallets
        --diversifier <diversifier>    Generates a wallet with a specified Sapling address diversifier
    -f, --format <format>              Generates a wallet with a specified format [possible values: sapling, sprout, transparent]
    -n, --network <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 <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, "<custom path>"]
    -l, --language <language>        Generates an HD wallet with a specified language [possible values: chinese_simplified, chinese_traditional, english, french, italian, japanese, korean, spanish]
    -n, --network <network>          Generates an HD wallet for a specified network [possible values: mainnet, testnet]
    -p, --password <password>        Generates an HD wallet with a specified password
    -w, --word-count <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 <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, "<custom path>"]
    -i, --index <index>              Generates an HD wallet with a specified index
    -k, --indices <num_indices>      Generates an HD wallet with a specified number of indices
    -l, --language <language>        Generates an HD wallet with a specified language [possible values: chinese_simplified, chinese_traditional, english, french, italian, japanese, korean, spanish]
    -p, --password <password>        Generates an HD wallet with a specified password
    -w, --word-count <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 <count>                Generates a specified number of wallets
    -d, --derivation <"path">          Generates an HD wallet for a specified derivation path (in quotes) [possible values: zip32, "<custom path>"]
        --diversifier <diversifier>    Imports a wallet with a specified Sapling address diversifier
    -n, --network <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 <address>        Imports a partial wallet for a specified address
    -f, --format <format>          Imports a wallet with a specified format [possible values: bech32, legacy, segwit]
    -n, --network <network>        Imports a wallet for a specified network [possible values: mainnet, testnet]
        --private <private key>    Imports a wallet for a specified private key
        --public <public key>      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 <address>        Imports a partial wallet for a specified address
        --private <private key>    Imports a wallet for a specified private key
        --public <public key>      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 <address>                         Imports a partial wallet for a specified address
    -i, --integrated <PaymentID>                    Imports a wallet with a specified payment ID
    -l, --language <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 <network>                         Imports a wallet for a specified network [possible values: mainnet, stagenet, testnet]
        --private-spend <private spend key>         Imports a wallet for a specified private spend key
        --private-view <private view key>           Imports a partial wallet for a specified private view key
        --public-spend <public spend key>           Imports a partial wallet for a specified public spend key
        --public-view <public view key>             Imports a partial wallet for a specified public view key
    -s, --subaddress <Major Index> <Minor Index>    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 <address>            Imports a partial wallet for a specified address
        --diversifier <diversifier>    Imports a wallet with a specified Sapling address diversifier
        --private <private key>        Imports a wallet for a specified private key
        --public <public key>          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 a Bitcoin HD wallet, run:

wagyu bitcoin import-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 <account>                      Imports an HD wallet for a specified account number for bip44 and bip49 derivations
    -c, --chain <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, "<custom path>"]
        --extended-private <extended private>    Imports a partial HD wallet for a specified extended private key
        --extended-public <extended public>      Imports a partial HD wallet for a specified extended public key
    -i, --index <index>                          Imports an HD wallet for a specified index
    -m, --mnemonic <"mnemonic">                  Imports an HD wallet for a specified mnemonic (in quotes)
    -n, --network <network>                      Imports an HD wallet for a specified network [possible values: mainnet, testnet]
    -p, --password <password>                    Imports an HD wallet with a specified password

3.4.2 Ethereum

To import an Ethereum HD wallet, run:

wagyu ethereum import-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, "<custom path>"]
        --extended-private <extended private>    Imports a partial HD wallet for a specified extended private key
        --extended-public <extended public>      Imports a partial HD wallet for a specified extended public key
    -i, --index <index>                          Imports an HD wallet with a specified index
    -k, --indices <num_indices>                  Imports an HD wallet with a specified number of indices
    -m, --mnemonic <"mnemonic">                  Imports an HD wallet for a specified mnemonic (in quotes)
    -p, --password <password>                    Imports an HD wallet with a specified password

3.4.3 Zcash

To import a Zcash HD wallet, run:

wagyu zcash import-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 <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, "<custom path>"]
        --diversifier <diversifier>              Imports an HD wallet with a specified Sapling address diversifier
        --extended-private <extended private>    Imports a partial HD wallet for a specified extended private key
        --extended-public <extended public>      Imports a partial HD wallet for a specified extended public key
    -i, --index <index>                          Imports an HD wallet for a specified index

3.5 Generate a cryptocurrency transaction

To import an HD cryptocurrency wallet, run:

wagyu [CRYPTOCURRENCY] transaction [FLAGS] [OPTIONS]

3.5.1 Bitcoin

To generate a Bitcoin transaction, run:

wagyu bitcoin transaction [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:
        --createrawtransaction <inputs> <outputs>          Generates a raw Bitcoin transaction
                                                               Inputs format: '[{"txid":"txid", "vout":index},...]'
                                                               Outputs format: '{"address":amount,...}'                                           
        --lock-time <lock time>                            Specify a Bitcoin transaction lock time
        --signrawtransaction <transaction hex> <inputs>    Sign a raw Bitcoin transaction
                                                               Inputs format: '[{"txid":"txid", "vout":index, "amount":amount, "address":"address", "privatekey":"private_key"},...]'
                                                               (Optional: manually specify scriptPubKey and redeemScript)
        --version <version>                                Specify a Bitcoin transaction version

3.5.2 Ethereum

To generate an Ethereum transaction, run:

wagyu ethereum transaction [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:
        --createrawtransaction <'{"to":"address", "value":"value", "gas":"gas", "gasPrice":"gas_price", "nonce":nonce, "network":"network"}'>    Generates a raw Ethereum transaction
        --network <network>                                                                                                                      Specify an Ethereum transaction network
        --signrawtransaction <transaction hex> <private key>                                                                                     Sign a raw Ethereum transaction

3.5.3 Zcash

To generate a Zcash transaction, run:

wagyu zcash transaction [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:
        --createrawtransaction <inputs> <outputs>          Generates a raw Zcash transaction
                                                               Inputs format: '[{"txid":"txid", "vout":index},...]'
                                                               Outputs format: '{"address":amount,...}'
        --expiry-height <expiry height>                    Specify a Zcash transaction expiry height
        --lock-time <lock time>                            Specify a Zcash transaction lock time
        --signrawtransaction <transaction hex> <inputs>    Sign a raw Zcash transaction
                                                               Inputs format: '[{"txid":"txid", "vout":index, "amount":amount, "address":"address", "privatekey":"private_key"},...]'
                                                               (Optional: manually specify scriptPubKey and redeemScript)
        --version <version>                                Specify a Zcash transaction version [possible values: sapling]

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.

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.

Comments
  • Roadmap Question

    Roadmap Question

    First off, this is a fantastic project! Thank you for building it.

    How deep down the wallet features past wallet generation and importing do you plan on going? I imagine wagyu would be a useful component in an offline signing solution for instance.

    opened by jubos 8
  • Compilation produces errors and fails

    Compilation produces errors and fails

    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/bitcoin/address.rs:28:13
       |
    28 |             Type::P2PKH => Address::p2pkh(private_key),
       |             ^^^^^^^^^^^ help: consider using a reference: `&Type::P2PKH`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/bitcoin/address.rs:29:13
       |
    29 |             Type::P2WPKH_P2SH => Address::p2wpkh_p2sh(private_key),
       |             ^^^^^^^^^^^^^^^^^ help: consider using a reference: `&Type::P2WPKH_P2SH`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/bitcoin/address.rs:75:13
       |
    75 |             Network::Testnet => TESTNET_ADDRESS_BYTE,
       |             ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Testnet`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/bitcoin/privatekey.rs:90:13
       |
    90 |             Network::Testnet => TESTNET_BYTE,
       |             ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Testnet`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/monero/network.rs:18:9
       |
    18 |         Network::Testnet => Some(&[0x35]),
       |         ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Testnet`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/monero/network.rs:19:9
       |
    19 |         Network::Mainnet => Some(&[0x12]),
       |         ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Mainnet`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/monero/network.rs:20:9
       |
    20 |         Network::Error => Some(&[0x00]), // fix
       |         ^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Error`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/zcash/address.rs:24:13
       |
    24 |             true => private_key.to_public_key().serialize().to_vec(),
       |             ^^^^ help: consider using a reference: `&true`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/zcash/address.rs:25:13
       |
    25 |             false => private_key
       |             ^^^^^ help: consider using a reference: `&false`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/zcash/address.rs:36:13
       |
    36 |             Network::Testnet => TESTNET_ADDRESS_BYTES,
       |             ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Testnet`
    
    error[E0658]: non-reference pattern used to match a reference (see issue #42640)
      --> src/zcash/privatekey.rs:90:13
       |
    90 |             Network::Testnet => TESTNET_BYTE,
       |             ^^^^^^^^^^^^^^^^ help: consider using a reference: `&Network::Testnet`
    
    
    bug 
    opened by Swader 6
  • Update bitvec dependency to  0.17.4

    Update bitvec dependency to 0.17.4

    cargo update is giving me an error about bitvec.

    cargo update
        Updating crates.io index
    error: failed to select a version for the requirement `bitvec = "^0.15.2"`
      candidate versions found which didn't match: 0.17.4
      location searched: crates.io index
    required by package `wagyu-ethereum v0.6.2`
        ... which is depended on by `myproject v0.1.0 (/home/ski/code/myproject)`
    

    Importantly, 0.17.2's changelog says "This crash is considered a severe bug, as it indicates memory unsafety. Users are strongly encouraged to update to 0.17.2 immediately."

    I haven't tested this yet, but I will soon.

    dependencies 
    opened by WyseNynja 3
  • Bump bitvec from 0.15.2 to 0.17.3

    Bump bitvec from 0.15.2 to 0.17.3

    Bumps bitvec from 0.15.2 to 0.17.3.

    Changelog

    Sourced from bitvec's changelog.

    0.17.3

    Fixed

    GitHub users [@Alexhuszagh] and [@obeah] noted in [Issue #43] that the sequence storage constructors used by the bits! macro yielded incorrect behavior. The error was a copy-paste error in the production of byte reรถrdering functions used by the macro.

    0.17.2

    Fixed

    GitHub user [@ImmemorConsultrixContrarie] reported [Issue #40], and provided [Pull Request #41]. The defect report was a STATUS_ILLEGAL_INSTRUCTION event that occurred only under x86_64-pc-windows-gnu (running the test under -msvc failed to reproduce) when using BitSlice::get_mut to produce a BitMut structure.

    While PR #41 did not directly resolve the problem, during review, Immemor suggested a rewrite of the BitMut structure to shrink it from three words to two. This rewrite changed the computation of the memory address to modify in a manner that resolved the illegal-instruction failure.

    This crash is considered a severe bug, as it indicates memory unsafety. Users are strongly encouraged to update to 0.17.2 immediately.

    Thanks again to [@ImmemorConsultrixContrarie] for the report and solution!

    0.17.1

    Added

    This patch restores the cursor module and its types, as aliases to the order module and their equivalents, with a deprecation warning. Removing these names entirely, without a deprecation redirect, is technically permissible but morally in error.

    Changed

    In addition, the Bits trait has been renamed to AsBits, to better reflect its behavior and reduce the chances of name collision, as it is a prelude export.

    Removed

    The AsBits::as_{mut_,}bitslice deprecation aliases have been removed.

    0.17.0

    ... (truncated)
    Commits
    • e3b5ca2 Backport [#43](https://github.com/myrrlyn/bitvec/issues/43) to the 0.17 series
    • 5ccb4a6 Closes #43
    • c4013af Update to 0.17.2
    • b87a81e Restructure BitMut to fit in two words
    • a4b7c6d Add Nika and ICC to the AUTHORS document, in recognition of their work
    • 5ad5cdf Rollup of PR #41
    • 997b359 Move the AsBits trait into the slice module, to deconflict crate::bits ...
    • a90e931 Patch for 0.17.1
    • 2c3318e Address lints
    • 5977bbb Have BitVec::split_off use the better ToOwned implementation
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Explicitly require language flag for non-english mnemonics

    Explicitly require language flag for non-english mnemonics

    Fixes #274.

    Before:

    $ wagyu ethereum import-hd --mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treatt"
    Error: MnemonicError(WordlistError(InvalidWord("candy")))
    
    $ wagyu ethereum import-hd --mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat"
    ... success
    

    After:

    $ wagyu ethereum import-hd --language "english" --mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treatt"
    Error: MnemonicError(WordlistError(InvalidWord("treatt")))
    
    $ wagyu ethereum import-hd --language "english" --mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat"
    ... success
    

    Note how much easier it is to track down the error when the correct error for the language is returned!

    opened by lightclient 2
  • Bump serde from 1.0.106 to 1.0.111

    Bump serde from 1.0.106 to 1.0.111

    Bumps serde from 1.0.106 to 1.0.111.

    Release notes

    Sourced from serde's releases.

    v1.0.111

    • Process borrowed lifetimes inside of interpolated macro_rules metavariables, such as in the case of #[derive(Deserialize)] struct S<'a> { field: $field } (#1821)

    v1.0.110

    • Support deriving Serialize impl for a repr(packed) struct (#1791, thanks @alvardes)

    v1.0.109

    • Allow adjacently tagged newtype variants containing Option to omit the content field when deserializing (#1553, #1706, thanks @zth0)
    • Avoid panicking when a SystemTime older than UNIX_EPOCH is serialized (#1702, thanks @hjiayz)

    v1.0.108

    • Provide a Serializer impl that can write primitives and unit variants to a &mut fmt::Formatter (#1705, thanks @jethrogb)

      use serde::Serialize;
      use std::fmt::{self, Display};
      

      #[derive(Serialize)] #[serde(rename_all = "kebab-case")] pub enum MessageType { StartRequest, EndRequest, }

      impl Display for MessageType { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.serialize(f) } }

    v1.0.107

    • Fix panic during macro expansion when using serde(skip) and serde(other) in the same enum (#1804)
    Commits
    • 9f331cc Release 1.0.111
    • ef16c81 Merge pull request #1821 from dtolnay/ungroup
    • c45a809 Look inside of None-delimited groups when examining types
    • f7d06ca Add failing test involving macro_rules metavariable
    • 31fe82a Resolve match_wildcard_for_single_variants pedantic lint
    • ef6ed1d Copy some new links from serde.rs to the crate-level doc
    • 9d12515 Mirror 'Getting help' from github readme to crates.io readme
    • c20730e Remove reference to mozilla irc
    • afd51ef Merge pull request #1808 from dtolnay/help
    • 3167f98 Update 'Getting help' section
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump sha2 from 0.8.1 to 0.8.2

    Bump sha2 from 0.8.1 to 0.8.2

    Bumps sha2 from 0.8.1 to 0.8.2.

    Commits
    • 627696d sha2 v0.8.2
    • 8845e15 Merge pull request #94 from rodoufu/code_imp
    • 5502150 Merge pull request #109 from linkmauve/use-libc
    • afe50ee Use libc for AArch64 consts too
    • 30b416a Merge pull request #108 from ZcashFoundation/expose-utils
    • c1afa05 Rename flag to 'compress', export just compress* instead of whole module
    • a968a8d Coalesce sha256_util export
    • 789e705 utils feature has no dependencies
    • f9b35c0 Expose sha256_utils with the utils feature flag
    • 87d1cb0 Merge pull request #104 from linkmauve/compile-time-aarch64-crypto
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump cmake from 0.1.42 to 0.1.43

    Bump cmake from 0.1.42 to 0.1.43

    Bumps cmake from 0.1.42 to 0.1.43.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump libc from 0.2.68 to 0.2.70

    Bump libc from 0.2.68 to 0.2.70

    Bumps libc from 0.2.68 to 0.2.70.

    Release notes

    Sourced from libc's releases.

    0.2.70

    Bump patch version to 0.2.70

    0.2.69

    Bump patch version to 0.2.69

    Commits
    • b61d8c6 Merge pull request #1758 from tblah/version-0.2.70
    • 88cfeb1 Bump version to 0.2.70
    • 87de910 Merge pull request #1752 from JohnTitor/i686-2004
    • cf63ea1 Merge pull request #1587 from Susurrus/termios_breaks_consts
    • 23d73d5 Merge pull request #1753 from overdrivenpotato/psp
    • 524ec8f Add TIOCSBRK/TIOCCBRK to more supported platforms
    • d44f9b7 Reorder consts for sparc64 to match header
    • 5dfe013 Add c typedefs for the Sony PSP
    • ecfd7a3 Update Ubuntu image to 20.04
    • bb734e3 Merge pull request #1754 from JohnTitor/armeabi
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump serde from 1.0.106 to 1.0.110

    Bump serde from 1.0.106 to 1.0.110

    Bumps serde from 1.0.106 to 1.0.110.

    Release notes

    Sourced from serde's releases.

    v1.0.110

    • Support deriving Serialize impl for a repr(packed) struct (#1791, thanks @alvardes)

    v1.0.109

    • Allow adjacently tagged newtype variants containing Option to omit the content field when deserializing (#1553, #1706, thanks @zth0)
    • Avoid panicking when a SystemTime older than UNIX_EPOCH is serialized (#1702, thanks @hjiayz)

    v1.0.108

    • Provide a Serializer impl that can write primitives and unit variants to a &mut fmt::Formatter (#1705, thanks @jethrogb)

      use serde::Serialize;
      use std::fmt::{self, Display};
      

      #[derive(Serialize)] #[serde(rename_all = "kebab-case")] pub enum MessageType { StartRequest, EndRequest, }

      impl Display for MessageType { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { self.serialize(f) } }

    v1.0.107

    • Fix panic during macro expansion when using serde(skip) and serde(other) in the same enum (#1804)
    Commits
    • 078b171 Release 1.0.110
    • da8d6f6 Simplify finding of repr(packed) attributes
    • 548eb8f Format PR 1791 with rustfmt
    • 1fe3904 Simplify access of packed struct fields in derived Serialize impls
    • c211449 Add test of Serialize impl for packed struct
    • 9f47c47 Add support for packed structs.
    • d6b39fd Merge pull request #1807 from dtolnay/31
    • 4d6d0ae Add a CI builder on 1.31.0
    • dda070f Fix borrow error on pre-NLL compilers
    • b97a183 Release 1.0.109
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Bump serde_json from 1.0.52 to 1.0.53

    Bump serde_json from 1.0.52 to 1.0.53

    Bumps serde_json from 1.0.52 to 1.0.53.

    Release notes

    Sourced from serde_json's releases.

    v1.0.53

    • Reduce unhelpful indentation in the {:#?} format of serde_json::Value
    • Remove some unnecessary runtime checks from Serializer::collect_str
    Commits
    • 5c3711e Release 1.0.53
    • 6ca3752 Downgrade some unnecessary runtime asserts to debug_assert
    • eb383c0 Update arbitrary_precision Debug impl of Number to match normal one
    • 351d847 Omit a layer of unnecessary nesting from Debug impl
    • baae6d9 Add test for {:#?} format of Value
    • 800a8d5 Update build status badge to GitHub Actions
    • cb40c10 Remove AppVeyor configuration
    • f255356 Add Windows CI in GitHub Actions
    • edb1c31 Avoid repeating slow doctests and compiletests
    • dffbe44 Remove Travis configuration
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in your Dependabot dashboard:

    • Update frequency (including time of day and day of week)
    • Pull request limits (per update run and/or open at any time)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 2
  • Wagyu build fails

    Wagyu build fails

    Hi @howardwu,

    When trying to run cargo install wagyu I'm hit with the following:

        Updating crates.io index
      Downloaded wagyu v0.6.3
      Downloaded 1 crate (48.9 KB) in 0.48s
      Installing wagyu v0.6.3
    error: failed to compile `wagyu v0.6.3`, intermediate artifacts can be found at `/run/user/1000/cargo-installoftX6F`
    
    Caused by:
      failed to select a version for the requirement `aes = "^0.2"`
      candidate versions found which didn't match: 0.8.2, 0.8.1, 0.8.0, ...
      location searched: crates.io index
      required by package `wagyu-zcash v0.6.3`
          ... which satisfies dependency `wagyu-zcash = "^0.6.3"` of package `wagyu v0.6.3`
    

    Not sure if I'm doing something wrong or the app needs some update.

    opened by jocelynthode 0
  • Is this project still maintained?

    Is this project still maintained?

    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

    opened by staktrace 0
  • Allow outputting different formats for bitcoin import-hd command

    Allow outputting different formats for bitcoin import-hd command

    This allows doing things like bitcoin import-hd -m <...> -f bech32 which then prints the address in bech32 format; previously this was not possible.

    Fixes #277.

    opened by staktrace 0
  • Support Tron network

    Support Tron network

    Started out quite a while ago, I think it's time for contributing.

    With this PR wagyu can generate or import standard/HD trx/trc20 wallets. However, tron transaction isn't implemented yet.

    opened by joeky888 1
  • Allow showing bech32 keys for imported wallet

    Allow showing bech32 keys for imported wallet

    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?

    opened by staktrace 1
  • `ethereum import-hd` fails with valid mnemonic

    `ethereum import-hd` fails with valid mnemonic

    $ ./target/release/wagyu ethereum import-hd --mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat" --derivation "m/44'/60'/0'/0/0/"
    Error: MnemonicError(WordlistError(InvalidWord("candy")))
    

    Not sure why this is not working, this is clearly a valid mnemonic.

    opened by lightclient 1
Releases(v0.6.1)
Owner
Aleo
Where Applications Become Zero-Knowledge
Aleo
OpenID login for wallets owning an nft.

nft-login OIDC login for wallets owning an nft. context Non fungible tokens are a proof for a digital ownership. This ownership can be used to give ac

NFT Login 49 Dec 2, 2022
Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

BPNS 1 May 2, 2022
Using flashbots to mint Otherside metaverse land safely with purchased KYC'd wallets.

Work in progress. Hardcoded to mint 2 lands for 610 APE and approves 100k ape for spending atm, will be updated. Building Install rust, https://rustup

cc 6 May 5, 2022
An open source Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers. written in rust(๐Ÿฆ€) with โค๏ธ

Les.rs - Rust Cryptocurrency Exchange Library An open source Rust high performance cryptocurrency trading API with support for multiple exchanges and

Crabby AI 4 Jan 9, 2023
โ‹ฐยทโ‹ฐ Feeless is a Nano cryptocurrency node, wallet, tools, and Rust crate.

โ‹ฐยทโ‹ฐ Feeless What is Feeless? Feeless is a Nano cryptocurrency node, wallet, tools, and Rust crate. This is not the official project for Nano, only an

null 127 Dec 5, 2022
Library and CLI tool for generating Radix Babylon Accounts.

Wallet Compatible Derivation This repo is a package containing two crates - a library named wallet_compatible_derivation and binary named wallet_compa

Radix DLT 3 Feb 28, 2024
Kubernetes controller written in Rust for automatically generating and updating secrets

Kubernetes controller written in Rust for automatically generating and updating secrets

Loc Mai 6 Nov 8, 2022
tool for generating wordlists or extending an existing one using mutations.

gorilla gorilla is the ultimate wordlist tool packing a lot of amazing utilities like: building wordlists based on patterns (like crunch) building wor

andrei 348 Jan 3, 2023
A fast, simple and powerful open-source cross platform utility tool for generating strong, unique and random passwords

password-generator-pro A fast, simple and powerful open-source cross platform utility tool for generating strong, unique and random passwords. Feature

Sebastien Rousseau 3 Dec 16, 2022
Lockbox is a command-line tool for generating and managing passwords

Lockbox is a command-line tool for generating and managing passwords. It uses strong encryption algorithms to securely store your passwords, so you can be sure that your data is safe.

Sonu Bardai 15 Oct 9, 2023
Common protocol for generating ZK proofs for blocks on different blockchains.

Proof Protocol Decoder A flexible protocol that clients (eg. full nodes) can use to easily generate block proofs for different chains. Specification I

Polygon Zero 3 Oct 5, 2023
High-level networking library that extends the bevy_replicon library to allow snapshot interpolation and client-side prediction

bevy_replicon_snap A Snapshot Interpolation plugin for the networking solution bevy_replicon in the Bevy game engine. This library is a very rough pro

Ben 3 Oct 15, 2023
A Rust library for working with Bitcoin SV

Rust-SV A library to build Bitcoin SV applications in Rust. Documentation Features P2P protocol messages (construction and serialization) Address enco

Brenton Gunning 51 Oct 13, 2022
A modern TLS library in Rust

Rustls is a modern TLS library written in Rust. It's pronounced 'rustles'. It uses ring for cryptography and libwebpki for certificate verification. S

ctz 4k Jan 9, 2023
Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium)

sodiumoxide |Crate|Documentation|Gitter| |:---:|:-----------:|:--------:|:-----:|:------:|:----:| |||| NaCl (pronounced "salt") is a new easy-to-use h

sodiumoxide 642 Dec 17, 2022
rabe is an Attribute Based Encryption library, written in Rust

Rabe rabe is a rust library implementing several Attribute Based Encryption (ABE) schemes using a modified version of the bn library of zcash (type-3

Fraunhofer AISEC 52 Dec 15, 2022
A Rust library for lattice-based additive homomorphic encryption.

Cupcake Cupcake is an efficient Rust library for the (additive version of) Fan-Vercauteren homomorphic encryption scheme, offering capabilities to enc

Facebook Research 365 Dec 11, 2022
Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order).

Mundane Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order). Issues and

Google 1.1k Jan 3, 2023
The most advanced Merkle tree library for Rust

rs-merkle rs-merkle is the most advanced Merkle tree library for Rust. Basic features include building a Merkle tree, creation, and verification of Me

Anton Suprunchuk 85 Dec 31, 2022