0.4.2 • Published 8 years ago

bip32-path v0.4.2

Weekly downloads
6,251
License
MIT
Repository
github
Last release
8 years ago

BIP32 Path

Bitcoin BIP32 ("HD Wallet") path helpers.

There are multiple path representations being used by different implementations. These includes:

  • m/44'/0'/0'/0/0 where the apostrophe means hardened key
  • m/44h/0h/0h/0/0 where the letter h means hardened key
  • and a binary representation predominantly used by Trezor & compatible wallets and some software tools, such as bitcoinjs-lib

Some useful links:

API

  • BIPPath.fromString(path, reqRoot) - creates an instance from a path written as text. Set reqRoot to true if the m/ prefix is mandatory.
  • BIPPath.fromPathArray(path) - creates an instance from a binary path array
  • new BIPPath(path) - alias for BIPPath.fromPathArray(path)
  • <bippath>.toString(noRoot, oldStyle) - returns a text encoded path. Set to noRoot to true to omit the m/ prefix. Set oldStyle true to use h instead of ' for marking hardened nodes.
  • <bippath>.toPathArray() - returns a binary path array
  • BIPPath.validateString(path, reqRoot) - returns true if the input is a valid path string
  • BIPPath.validatePathArray(path) - returns true if the input is a valid binary path array

Binary path arrays contain each node as a separate number, where hardened nodes are marked by setting the 32th bit: m/44'/1/1/0 corresponds to [ 0x8000002c, 1, 1, 0 ]

Examples

var bippath = require('bip32-path')

bippath.fromPathArray([0x8000002c, 1, 1, 0]).toString() // m/44'/1/1/0

bippath.fromString("m/44'/0'/0'").toString(false, true) // m/44h/0h/0h

bippath.fromString("m/44h/0h/0'").toString(true) // 44'/0'/0'

bippath.fromString("m/44'/0'/0'").toPathArray() // [ 0x8000002c, 0x80000000, 0x80000000 ]
@coral-xyz/common@ledgerhq/live-commonkapilteztest2ledgerjs-hw-app-ergo@everything-registry/sub-chunk-1237@hardfork/trezor-wallet-provider@hirishh/lisk-ledger.js@infinitebrahmanuniverse/nolb-bip@jafri/ledger-bitcoin@levino/trezor-wallet-provider@loon3/hw-app-btc@metalblockchain/metal-wallet-sdk@ledgerhq/hw-app-btc@ledgerhq/hw-app-cosmos@ledgerhq/hw-app-elrond@ledgerhq/hw-app-helium@ledgerhq/hw-app-polkadot@ledgerhq/hw-app-solana@ledgerhq/hw-app-algorand@ledgerhq/hw-app-xrp@moonstake/conseiljszabo-connect-utilszswjs-ledger-signature-providerweb-hd-sdkledgerhw-app-bitcoin-new-js@pontem/hw-app-aptos@pollum-io/sysweb3-keyring@pocketbitcoin/hw-app-btc@teleportdao/ledgerhw-bitcoin-client-js@teleportdao/ledgerhw-ledger-bitcoin-client-jsledger-xtzledger-bitcoinledger-ergo-js@qiushaoxi/hw-app-eosio@obsidiansystems/hw-app-avalanche@savannah-labs/savannah-wallet-sdk@owdin/live-common@zee-ava/hd-wallet-axia@zee-ava/axia-wallet-sdk@zalastax/nolb-bipeosjs-ledger-signature-provider@vite/ledgerjs-hw-app-vite@vutr/purser-trezorecanna-wallet-sdk@ecanna/ecanna-wallet-sdk@engrave/ledger-app-hive@engrave/hw-app-koinos@elmutt/hdwallet-ledger@exodus/key-utils@exodus/hd-key-slip-10@fluent-wallet/hw-app-conflux@ezclabs/ezchain-wallet-sdkezchain-wallet-sdkardor@aeternity/hd-wallet@aeternity/aepp-sdk@avalabs/avalanche-wallet-sdk@backpacker69/hw-app-btcflare-wallet-sdkperferendisquibusdamhw-app-iotahw-app-nanohw-app-nano-xrohw-app-unohw-app-xtzhw-app-bananohw-app-ckbhw-app-ckb-testhw-app-cschw-app-dfi@colony/purser-trezor@coinflect/hw-app-coinflect@codewarriorr/hw-app-btcv@codewarriorr/live-common@axiaglobal/hd-wallet@axiaglobal/wallet-sdk@axia-systems/hd-wallet@axia-systems/wallet-sdk@casinocoin/ledger@factoid.org/hw-app-fct@coti-io/ledger-sdk@dcomm-tech/wallet-sdkimaginea-aepp-sdkconseiljs-ledgersigner@area/purser-trezor@bloks/ledger@blooo/hw-app-klaytn@blooo/hw-app-velas@blooo/hw-app-vtb@camino/avalanche-wallet-sdk@c4tplatform/avalanche-wallet-sdk@c4tplatform/camino-wallet-sdkillumrecusandaesolutavitae@deltalabs/eosjs-ledger-signature-providersymbol-ledger-typescript@daonomic/trezor-wallet-providerdhealth-walletrerumcupiditatedpos-ledger-api
0.4.2

8 years ago