跳到主要内容

btcGetAddress

Bitcoin:获取地址

根据传入的 BIP32 路径派生地址,并将结果返回给调用方。用户需要在 Ukey Wallet 上确认导出操作。

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

参数

可选通用参数

导出单个地址

  • path - 必需 string | Array<number>,字符串数组最小长度限制为 3更多信息
  • showOnUKey - 可选 boolean,决定是否在设备上显示地址;默认值为 true
  • coin - 可选 string,用于指定 coins.json 文件中的网络定义。可以使用币种的 shortcutnamelabel;如果未设置 coin,API 会尝试从 path 推断网络定义。
  • multisig - 可选 MultisigRedeemScriptType,赎回脚本信息(仅用于多签地址)。
  • scriptType - 可选 InputScriptType,地址脚本类型。

导出批量地址

  • bundle - Array 数组对象,包含 pathshowOnUKeycoin 字段

获取不同类型的地址

不同类型的 BTC 地址需要使用对应的派生路径参数。

地址类型派生路径地址格式示例
Legacy BIP44m/44'/0'/x'/x/x通常以 "1" 开头,长度为 26 到 35 个字符
Nested SegWit BIP49m/49'/0'/x'/x/x通常以 "3" 开头,长度为 26 到 35 个字符
Native SegWit BIP84m/84'/0'/x'/x/x通常以 "bc1" 或 "tb1" 开头,长度为 41 到 62 个字符
Taproot BIP86m/86'/0'/x'/x/x通常以 "bc1" 开头,长度为 41 到 62 个字符

示例

在设备上展示第一个比特币账户的第二个地址:

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

批量获取第一个比特币账户的多个地址,并跳过设备展示:

HardwareSDK.btcGetAddress(connectId, deviceId, {
bundle: [
{ path: "m/49'/0'/0'/0/0", showOnUKey: false }, // 地址一
{ path: "m/49'/0'/0'/0/1", showOnUKey: false }, // 地址二
{ path: "m/49'/0'/0'/0/2", showOnUKey: false }, // 地址三
],
});

返回结果

单个地址返回示例

{
success: true,
payload: {
address: string, // 返回的地址
path: Array<number> // 强化路径
}
}

批量地址返回示例

{
success: true,
payload: [
{ address: string, path: Array<number> }, // 地址一
{ address: string, path: Array<number> }, // 地址二
{ address: string, path: Array<number> }, // 地址三
]
}

错误

{
success: false,
payload: {
error: string, // 错误消息
code: number // 错误码
}
}