7 releases

0.0.16 Jun 30, 2022
0.0.15 Nov 9, 2021
0.0.12 Mar 16, 2021
0.0.5 Sep 21, 2020
0.0.2 Jul 21, 2020

#2931 in Magic Beans


Used in 3 crates

LGPL-3.0-or-later

280KB
5.5K SLoC

WASM bindings for keyvault

This crate is to be reexported in other WASM crates, like we do it in sdk-wasm. It is not meant to be used on its own.


lib.rs:

Keyvault

Keyvault is a general purpose hierarchical deterministic (HD) generator for asymmetric keys. It is based on the same concepts as a Bitcoin HD-wallet and is built on the same specifications like HD wallets of Bip32, Mnemonic word lists of Bip39 and Purpose fields of Bip43.

Though keyvault is capable of generating wallet addresses as defined in Multi-Account cryptocurrency wallets of Bip44, it is not only an address generator for multiple cryptocurrencies. Keyvault can also derive all the keys you might need in other software stacks and aims to be your all-in-one Swiss Army knife identity manager.

Keyvault can

  • use the same seed to derive keys with multiple cipher suites, currently ed25519 and secp256k1
  • use any purpose field and account hierarchy, not only Bip43 and Bip44
  • handle several purposes (i.e. attached subhierarchies) at the same time
  • be used from other platforms via its C and WebAssembly bindings

Keyvault was originally created as part of the Mercury communication protocol but being a general-purpose tool it was reused in other components as well, hence was separated into its own repository then finally merged into this monorepository.

This documentation is optimized for reading after it is copied into JSDoc

For more information on this crate and potential usage, see the IOP developer site.

Dependencies

~11MB
~247K SLoC