All Projects → edunuzzi → go-bip44

edunuzzi / go-bip44

Licence: MIT License
A Golang implementation of the BIP44 for Hierarchical Deterministic (HD) addresses.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to go-bip44

mnemonic-sdk
Mnemonic bip39 bip32 bip44 生成助记词 私钥
Stars: ✭ 25 (+8.7%)
Mutual labels:  bip44, bip32
python-hdwallet
Python-based library for the implementation of a hierarchical deterministic wallet generator for more than 140+ multiple cryptocurrencies.
Stars: ✭ 210 (+813.04%)
Mutual labels:  bip44, bip32
cashuwallet
Cashu is a cryptocurrency wallet for smartphones. Be your own bank. Accept payments or spend crypto directly from your phone.
Stars: ✭ 35 (+52.17%)
Mutual labels:  bip44, bip32
ethereum-hdwallet
CLI and Node.js library for Ethereum HD Wallet derivations from mnemonic
Stars: ✭ 44 (+91.3%)
Mutual labels:  bip44, bip32
ed25519-hd-key
🔐 Key Derivation for ed25519
Stars: ✭ 54 (+134.78%)
Mutual labels:  bip44, bip32
Multy-android
Mobile multy-blockchain wallet client.
Stars: ✭ 17 (-26.09%)
Mutual labels:  bip44, bip32
bitcoincashj
A library for working with Bitcoin Cash
Stars: ✭ 38 (+65.22%)
Mutual labels:  bip44, bip32
Multy-IOS
Mobile multy-blockchain wallet client.
Stars: ✭ 25 (+8.7%)
Mutual labels:  bip44, bip32
ChainWallet
一个以研究技术为目地的基础项目,也只有最基本 Bitcoin、Ethereum 、EOS 相关的加密算法。
Stars: ✭ 26 (+13.04%)
Mutual labels:  bip44, bip32
python-bip32
Minimalistic implementation of BIP32
Stars: ✭ 28 (+21.74%)
Mutual labels:  bip32
hdwallet
HD wallet BIP-32 related key derivation utilities.
Stars: ✭ 20 (-13.04%)
Mutual labels:  bip32
btclib
btclib: a python3 library for 'bitcoin cryptography'
Stars: ✭ 60 (+160.87%)
Mutual labels:  bip32
btc-address-generator
Bitcoin address generator (bech32, segwit, paper wallets, BIP39 seed, etc.)
Stars: ✭ 80 (+247.83%)
Mutual labels:  bip32
BIP44
Java microlibrary implementation of BIP0044
Stars: ✭ 40 (+73.91%)
Mutual labels:  bip44
vite-app-ios
Vite Official App for iOS
Stars: ✭ 40 (+73.91%)
Mutual labels:  bip44
create-xpub
Create a BIP32 extended public key
Stars: ✭ 20 (-13.04%)
Mutual labels:  bip32
Multy-Core
Cross-platform mobile-first library for HD wallets and creating raw transactions of Bitcoin and Ethereum.
Stars: ✭ 23 (+0%)
Mutual labels:  bip44
technical-indicators
Finance package written in Golang, mainly with TA indicators.
Stars: ✭ 56 (+143.48%)
Mutual labels:  golang-lib
Bitcoinj
A library for working with Bitcoin
Stars: ✭ 4,162 (+17995.65%)
Mutual labels:  bip32

Go-BIP44 (Unmaintained!!!)

Go Report Card

A Golang implementation of the BIP44 for Hierarchical Deterministic (HD) addresses. It currently only supports Bitcoin.

Released under the terms of the MIT LICENSE.

Should I use this in production?

This library is in very early stages. Please be aware that some bugs may exist.

Can I trust this code?

Do not trust. Verify.

Since this lib is in its early days, we recommend every user of this library audit and verify any underlying code for its validity and suitability. You can do so by using this tool.

Installation

go get -u github.com/edunuzzi/go-bip44 

Usage

New 24-word Mnemonic and Seed

// bitSize must be a multiple of 32
bitSize := 256
mnemonic, _ := bip44.NewMnemonic(bitSize)
seedBytes := m.NewSeed("my password")

Master key From Seed Hex - (Unstable yet)

xKey, _ := bip44.NewKeyFromSeedHex("your secret seed in hex format", bip44.MAINNET)

Master key From Seed bytes - (Unstable yet)

xKey, _ := bip44.NewKeyFromSeedBytes(seedBytes, bip44.MAINNET)

From base58-encoded Extended Key

ak, _ := bip44.NewAccountKeyFromXPubKey(xPubKey)

externalAddress, _ := accountKey.DeriveP2PKAddress(bip44.ExternalChangeType, 0, bip44.MAINNET)
internalAddress, _ := accountKey.DeriveP2PKAddress(bip44.InternalChangeType, 0, bip44.MAINNET)

Deriving P2PK addresses

coin account chain address path
Bitcoin first external first m / 44' / 0' / 0' / 0 / 0
xKey, _ := bip44.NewKeyFromSeedHex("your secret seed in hex format", bip44.MAINNET)
accountKey, _ := xKey.BIP44AccountKey(bip44.BitcoinCoinType, 0, true)

externalAddress, _ := accountKey.DeriveP2PKAddress(bip44.ExternalChangeType, 0, bip44.MAINNET)

coin account chain address path
Bitcoin first external second m / 44' / 0' / 0' / 0 / 1
xKey, _ := bip44.NewKeyFromSeedHex("your secret seed in hex format", bip44.MAINNET)
accountKey, _ := xKey.BIP44AccountKey(bip44.BitcoinCoinType, 0, true)

externalAddress, _ := accountKey.DeriveP2PKAddress(bip44.ExternalChangeType, 1, bip44.MAINNET)

coin account chain address path
Bitcoin Testnet second internal first m / 44' / 1' / 1' / 1 / 0
xKey, _ := bip44.NewKeyFromSeedHex("your secret seed in hex format", bip44.TESTNET3)
accountKey, _ := xKey.BIP44AccountKey(bip44.TestnetCoinType, 1, true)

externalAddress, _ := accountKey.DeriveP2PKAddress(bip44.InternalChangeType, 0, bip44.TESTNET3)

TODO

  • Report badge
  • Unit Tests
  • Create GoDoc
  • Stellar
  • Ethereum

Contribution

Please feel free to contribute with both suggestions and pull requests :D

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].