All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- NOTE: This version is a significant rewrite of this package, and virtually all existing usage will break upon migrating from a previous major version. All pre-existing functionality is supported through different means, and various new features have been added.
- Add extended public (
xpub
) and private (xprv
) keys (#58) - Add support for public key derivation (#56)
- Add support for non-secp256k1 curves via
SLIP10Node
class (#43, #37, #53)- Add support for ed25519 curve.
- With this and other changes in this release, this package offers full SLIP-10 support for all curves except nist256p1.
- These changes were made possible using the
@noble/*
suite of cryptography packages.
- Add extended key to BIP-44 coin type node (#59)
- Add convenience methods to get public keys and addresses (#50)
- Enable deriving hardened
change
andaddress_index
usingBIP44CoinTypeNode
(#37)
- BREAKING: Change key representation format (#58, #54)
- Encode string keys in hexadecimal instead of Base64.
- Always return a
SLIP10Node
(or child class) object from derivation functions.
- BREAKING: Separate private keys and chain code into separate fields (#54)
- BREAKING: Use named arguments instead of positional arguments in various functions (#56)
- BREAKING: Make all derivation functions async (#43, #54)
- All key derivation functions are now async, and node objects are initialized via a static, async
.from(...)
method. This is because some cryptographic dependencies are async.
- All key derivation functions are now async, and node objects are initialized via a static, async
- Update documentation to match new implementation (#60, #49)
- BREAKING: Refactor package API (#25)
- The new API is designed to make it harder to derive incorrect keys.
- The previous exports of this package can no longer be accessed from the main entry file.
- For the new API, please see the README.
- BREAKING: Bump minimum Node.js version to >=12.0.0 (#20)
- Add reference implementation tests (#25)
- The key derivation of this package is now tested against the BIP-32 specification and
ethereumjs-wallet
and@metamask/eth-hd-keyring
. - The key derivation was found to be sound.
- The key derivation of this package is now tested against the BIP-32 specification and
2.0.1 - 2021-02-27
- Correctly type
deriveKeyFromPath
parentKey
param as optional (#14) - Only accept lowercase BIP-39 seed phrases in
deriveKeyFromPath
(#15)
2.0.0 - 2021-02-25
- BREAKING: Add input validation to
deriveKeyFromPath
(#3, #4) - BREAKING: Change
deriveKeyFromPath
parameter order (#3) - Migrate to TypeScript, update types (#10)
1.0.0 - 2020-09-03
- Initial release.