Keyrings and Keycontroller for safe cryptography
npm install @iov/keycontrol
Keycontrol manages all private keys and keeps them safe.
Please stick to using the
public API
even if you are importing from JavaScript, where private is not enforced.
Please see the following documents for how to get started using the@iov/keycontrol classes:
1. @iov/multichain README
2. @iov/cli README
https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/
As you see above, everything goes through the
UserProfile,
which is the main entry point into this package.
The main wallet types you can add are
- Ed25519Wallet,
which stores arbitrary Ed25519 keypairs.
- Ed25519HdWallet,
which generates HD keys à la SLIP-0010 (BIP-0032), with an arbitrary path (not
chain-dependent).
- LedgerSimpleAddressWallet
which allows you to connect to a Ledger device for signing BNS transaction.
Ed25519HdWallet and Secp256k1HdWallet use SLIP-0010 HD key derivation. The class
HdPaths
can be used to generate derivation paths.
| Coin | Derivation path for
account index a = 0,1,… | Code |
| -------- | ------------------------------------------------ | ------------------------ |
| IOV | m/44'/234'/a' | HdPaths.iov(a) |
| Ethereum | m/44'/60'/0'/0/a | HdPaths.ethereum(a) |
| Lisk | m/44'/134'/a' | HdPaths.bip44(134, a) |
| RISE | m/44'/1120'/a' | HdPaths.bip44(1120, a) |
| Stellar | m/44'/148'/a' | HdPaths.bip44(148, a) |
This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
NOTICE and
LICENSE).