This repository contains Go example implementations related to several cryptographic constructs used in various DLTs.
It contains the following general packages:
slip10
implements the SLIP-10 private key derivation with full BIP-32 compatibility.bip32path
provides utilities for BIP-32 chains.bip39
implements the BIP-39 specification and mnemonic word lists.bech32
implements Bech32 addresses based on the format described in BIP-173.ed25519
implements Ed25519 signatures with particular validation rules around edge cases as described in ZIP-215.merkle
implements a simple Merkle tree hash.
All these packages are tested against the full test vectors provided in the corresponding specifications.
bech32
encode and decode addresses using the bech32 address scheme.
Run the example withgo run examples/bech32/main.go
and use-help
to see the available commands.kdf
shows the private and public key derivation using SLIP-10 and BIP-39 mnemonics + passphrase.
It performs the Ed25519 key derivation following SLIP-10.
Run withgo run examples/kdf/main.go
and use-help
to see the available command-line flags.merkle
prints the Merkle tree of several random transaction hashes on the console.
Run withgo run examples/merkle/main.go
and use-help
to see the available command-line flags.