evmGetPublicKey

Ethereum: get public key

Retrieves BIP32 extended public derived by given BIP32 path. User is presented with a description of the requested key and asked to confirm the export.

const result = await HardwareSDK.evmGetPublicKey(connectId, deviceId, params);

Params

Optional common params

Exporting single public key

  • pathrequired string | Array<number> minimum length is 3. read more

  • showOnOneKeyoptional boolean determines if address will be displayed on device. Default is set to true

  • chainId - optional number The ChainId in ETH is a unique identifier for a specific Ethereum network, used to distinguish different versions of the blockchain. Reference.

Exporting bundle of public keys

  • bundle - Array of Objects with path, coin fields

Example

Return public key of first ethereum account:

HardwareSDK.evmGetPublicKey(connectId, deviceId, {
    path: "m/44'/60'/0'/0/0",
    showOnOneKey: true,
    chainId: 1
});

Return a bundle of public keys for multiple ethereum accounts:

HardwareSDK.evmGetPublicKey(connectId, deviceId, {
    bundle: [
        { path: "m/44'/60'/0'/0/0", chainId: 1 }, // account 1
        { path: "m/44'/60'/0'", chainId: 1 }, // account 2
        { path: "m/44'/60'/0'/0/1", chainId: 1 }  // account 3
    ]
});

Result

Result with only one public key

{
    success: true,
    payload: {
        path: Array<number>, // hardended path
        xpub: string,        // xpub in legacy format
        publicKey: string,   // BIP32 serialization format
    }
}

Read more about BIP32 serialization format

Result with bundle of public keys

{
    success: true,
    payload: [
        { path, xpub, publicKey }, // account 1
        { path, xpub, publicKey }, // account 2
        { path, xpub, publicKey }, // account 3
    ]
}

Error

{
    success: false,
    payload: {
        error: string, // error message
        code: number // error code
    }
}

Last updated