Skip to main content

btcGetAddress

Bitcoin: get address

Display the requested address derived from the given BIP32 path on the device and return it to the caller. The user is asked to confirm the export on Ukey Wallet.

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

Params

Optional common params

Exporting single address

  • path - required string | Array<number> minimum length is 3. read more
  • showOnUKey - optional boolean determines whether the address will be displayed on the device. Default is true.
  • coin - optional string determines the network definition specified in the coins.json file. Coin shortcut, name, or label can be used. If coin is not set, the API will try to get the network definition from path.
  • multisig - optional MultisigRedeemScriptType redeem script information (multisig addresses only)
  • scriptType - optional InputScriptType address script type

Exporting bundle of addresses

  • bundle - Array of objects with path, showOnUKey, and coin fields

Get different types of addresses

Different BTC address types require different derivation path parameters.

TypePathEg.
Legacy BIP44m/44'/0'/x'/x/xIt starts with a "1" and consists of 26 to 35 characters
Nested SegWit BIP49m/49'/0'/x'/x/xIt starts with a "3" and consists of 26 to 35 characters
Native SegWit BIP84m/84'/0'/x'/x/xStart with "bc1" or "tb1" and consist of 41 to 62 characters
Taproot BIP86m/86'/0'/x'/x/xIt starts with "bc1" and consists of 41 to 62 characters

Example

Display the second address of the first bitcoin account:

HardwareSDK.btcGetAddress(connectId, deviceId, {
path: "m/49'/0'/0'/0/1",
coin: "btc",
});

Return a bundle of addresses from the first bitcoin account without displaying them on the device:

HardwareSDK.btcGetAddress(connectId, deviceId, {
bundle: [
{ path: "m/49'/0'/0'/0/3", showOnUKey: false }, // address 4
{ path: "m/49'/0'/0'/0/4", showOnUKey: false }, // address 5
{ path: "m/49'/0'/0'/0/5", showOnUKey: false }, // address 6
],
});

Result

Result with only one address

{
success: true,
payload: {
address: string, // displayed address
path: Array<number> // hardened path
}
}

Result with a bundle of addresses in the same order as the request

{
success: true,
payload: [
{ address: string, path: Array<number> }, // address 4
{ address: string, path: Array<number> }, // address 5
{ address: string, path: Array<number> }, // address 6
]
}

Error

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