hal -- the Bitcoin companion

============================

hal is a command line tool that provides all kinds of Bitcoin-related utilities.

Installation

$ cargo install hal

Summary of commands:

  • address

    • inspect: get information about addresses
    • create: create addresses using public keys or scripts
  • bech32

    • decode: parse the elements of the Bech32 format
    • encode: encode data in the Bech32 format
  • bip32

    • derive: derive keys and addresses from extended keys
    • inspect: inspect a BIP-32 xpub or xpriv
  • bip39

    • generate: generate a new BIP-39 mnemonic
    • get-seed: get the seed value and BIP-32 master key for a given BIP-39 mnemonic
  • block

    • create: create a binary block from JSON
    • decode: decode a binary block to JSON
  • key

    • generate: generate a random keypair
    • inspect: inspect private keys
    • verify: verify signatures
  • ln

    • invoice
      • decode: decode Lightning invoices
  • message

    • hash: get hashes of Bitcoin Signed Message
    • sign: sign a message using Bitcoin Signed Message
    • verify: verify a Bitcoin Signed Message
    • recover: recover the pubkey or address that signed a message
  • psbt

    • create: create a PSBT from a raw unsigned transaction
    • decode: decode a PSBT to JSON
    • edit: edit a PSBT inline
    • finalize: finalize a PSBT into a fully signed transaction
    • merge: merge multiple PSBTs into one
  • script

    • decode: decode a PSBT to JSON
    • coming soon: script descriptor support
  • tx

    • create: create a binary transaction from JSON
    • decode: decode a binary transaction to JSON

Extensions

hal allows the use of extensions that can be installed separately.

Known extensions:

  • hal-elements: support for Elements sidechains like Liquid

Ideas:

  • optional Trezor and Ledger integration
Issues

Collection of the latest Issues

happysalada

happysalada

0

it looks like the latest version 0.8.2 is not a github release. Just a detail when you have a moment.

Thank you for the great software!

mikejnpc

mikejnpc

0

[E0512]: cannot transmute between types of different sizes, or dependently-sized types --> C:\Users\M.cargo\registry\src\github.com-1ecc6299db9ec823\lightning-invoice-0.2.0\src\lib.rs:59:11 | 59 | unsafe { std::mem::transmute::<SystemTime, [u8; 16]>(UNIX_EPOCH); } | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: source type: SystemTime (64 bits) = note: target type: [u8; 16] (128 bits)

error: aborting due to previous error

For more information about this error, try rustc --explain E0512. error: could not compile lightning-invoice

error: failed to compile hal v0.7.2,

ChristopherA

ChristopherA

1

Any thoughts on integrating the latest x-only BIP-Schnoor PR https://github.com/bitcoin-core/secp256k1/pull/558 into some hal tools? @ncklr says it is ready.

I know that I'd like to see soon for file signing [minisign])(https://jedisct1.github.io/minisign/) but with SecP-based Schnorr and maybe optional signtoconttract-like sighacker signing.

Another tool I'd like to ported to use x-only BIP-Schnorr public keys is minilock for encrypting files (a c-version is at https://gitlab.com/saalen/mikrolock), but the minilock format probably needs some rethinking as you might be able to leverage key aggregation.

-- Christopher Allen

P.S. There is some possible funding for these as paid projects from @BlockchainCommons if you are interested, as we've been receiving bitcoin from Patrons to support open source blockchain projects.

Versions

Find the latest versions by id

Information - Updated May 14, 2022

Stars: 77
Forks: 15
Issues: 11

Repositories & Extras

Command line interface to manage clipboard

you can download a cb-bin (Only x64 is supported)

Command line interface to manage clipboard

Command Line Argument Parser for Rust

It is a simple-to-use, efficient, and full-featured library for parsing command line arguments and subcommands when writing command line, console or terminal applications

Command Line Argument Parser for Rust

Command-line tool for working with LNP/BP technology stack

If the build fails, make sure you are using nightly channel for rust compiler:

Command-line tool for working with LNP/BP technology stack

Command Line Utility for Phylum

The command line interface (CLI) allows users to submit their project package dependencies to Phylum's API for analysis

Command Line Utility for Phylum

Command line json text parsing and processing utility

parsing json compliant with rust and cargo

Command line json text parsing and processing utility

Command line interface for Re:infer

re is the official command line interface for Linux (x86_64-unknown-linux-musl)

Command line interface for Re:infer

Command line interface for TMC, written in Rust

Published Builds will be located to the here

Command line interface for TMC, written in Rust

Command line application for searching in Usage

Command line application for searching in

Command line application for searching in Usage
CLI

171

Command-line tool to mirror installed software on multiple machines

Outputs a human-readable (RON) file to sync between machines:

Command-line tool to mirror installed software on multiple machines

Command-line tool for working with SAS binary — sas7bdat — files

ReadStat library developed by ReadStat repository is included as a readstat-sys crate is created

Command-line tool for working with SAS binary — sas7bdat — files
Facebook Instagram Twitter GitHub Dribbble
Privacy