On this page
CryptoHDKey
The CryptoHDKey class represents hierarchical deterministic key information.
OneKey can export this registry object as a QR code so the wallet can derive addresses from public key data.
Parameters
| Parameter | Type | Description |
|---|---|---|
isMaster | boolean | Whether it is a master key |
isPrivateKey | boolean | Whether it is a private key |
key | Buffer | The key data |
chainCode | Buffer | The chain code |
useInfo | CryptoCoinInfo | Usage information |
origin | CryptoKeypath | The origin path |
children | CryptoKeypath | The children path |
parentFingerprint | Buffer | The parent fingerprint |
name | string | The name (optional) |
note | string | The note (optional) |
Note Values
'account.standard'– BIP44 Standard account'account.ledger_live'– Ledger Live account'account.ledger_legacy'– Ledger Legacy account
UR Example
UR:CRYPTO-HDKEY/PDAXHDCLAOZTRDKBTKFPRFKBCWVEWYBGDPNTCPVLEOENJSWMBKFTLTRESNWTNLTLMKJYVYMWBSAAHDCXCSBNNLLNBZIAJZTPKPPKJOSTCEZSJEKGYKJOCSKNHFTPSWTIGHVABDIEGTBWWLTEAHTAADEHOYADCSFNAMTAADDYOYADLNCSDWYKCSFNYKAEYKATTAADDYOYADLRAEWKLAWKAYAEASINFPIAIAJLKPJTJYCXEHBKKOGHISINJKCXINJKCXHSCDecoding Example
import { URDecoder } from '@ngraveio/bc-ur';
import { CryptoHDKey } from '@keystonehq/bc-ur-registry';
const dec = new URDecoder();
// push each scanned frame string into the decoder
// dec.receivePart(frame)
if (dec.isError()) throw new Error('Could not decode account QR code');
if (dec.isSuccess()) {
const ur = dec.resultUR();
if (ur.type !== 'crypto-hdkey') throw new Error('Expected crypto-hdkey');
const hdkey = CryptoHDKey.fromCBOR(ur.cbor);
if (hdkey.isPrivateKey()) throw new Error('Expected a public account export');
const name = hdkey.getName();
const note = hdkey.getNote();
const chainCode = hdkey.getChainCode();
const origin = hdkey.getOrigin();
const xfp = origin?.getSourceFingerprint();
}Last updated on