Skip to Content
硬件接入
本页目录
HARDWARE SDK / 比特币 / BABYLON

btcDeriveContextHash

在设备上为选定的比特币密钥、应用、上下文和网络派生 32 字节的 Babylon 上下文哈希。响应中的 secret 是供应用使用的敏感值。

SDK 1.2.8-alpha.6 已提供此方法。需要 Classic 1s 或 Classic 1s Pure 固件 3.21.0 及以上版本,且使用 Protocol V1。其他设备系列和 Protocol V2 不支持此方法。

const result = await HardwareSDK.btcDeriveContextHash(connectId, deviceId, params);
01 准备上下文02 在设备上确认03 使用派生值

调用前准备

参数

connectIdstring必填

设备发现返回的连接标识。

deviceIdstring必填

getDeviceState 或 openWalletSession 返回的钱包标识。

params.pathstring | number[]必填

已连接比特币密钥的 BIP32 路径,至少包含 3 个路径分量。脚本类型由路径推断。使用已连接密钥的路径,不要使用内部 IKM 派生路径。

params.appNamestring必填

1–64 个 ASCII 字符,匹配 [a-z0-9-]。

params.contextstring必填

小写、偶数长度且不带 0x 前缀的十六进制字符串,表示 1–1024 字节。上下文不能为空。SDK 将解码后的字节发送给设备。

params.networkstring必填

只能是 bitcoin-mainnet、bitcoin-testnet、bitcoin-signet 或 bitcoin-regtest。Testnet3 和 testnet4 均使用 bitcoin-testnet。网络不会从路径推断。

可选通用参数

调用示例

此代码片段假定 SDK 已初始化,并已选择标准钱包。请将示例中的 path、appName、context 和 network 替换为用户授权的值。下方上下文仅为十六进制编码数据的示例。

const result = await HardwareSDK.btcDeriveContextHash(connectId, deviceId, { path: "m/84'/0'/0'/0/0", appName: 'babylon-example', context: '48656c6c6f', network: 'bitcoin-mainnet', useEmptyPassphrase: true, }); if (result.success === false) throw new Error(result.payload.error); const secret = result.payload.secret; // Use only for the approved application and context. Do not log or persist it.

示例通过 useEmptyPassphrase: true 明确选择标准钱包。对于隐藏钱包,请传入确认已连接比特币账户时使用的同一个 passphraseState。正常的 PIN、passphrase 和设备确认流程仍然适用。

响应

读取 payload 前,先检查 success。成功时,payload.secret 是 64 个字符的小写十六进制字符串(32 字节)。下方标签页展示的是响应类型,并非真实敏感值。

type SuccessResponse = { success: true; payload: { secret: string; // 64 lowercase hexadecimal characters (32 bytes) }; };

错误与敏感值处理

无效的 path、appName、context 或 network 会在发送派生命令前返回 CallMethodInvalidParameter(405)。不支持的设备系列或 Protocol V2 返回 DeviceNotSupportMethod(415);低于 3.21.0 的固件需要升级。

在设备上取消会返回标准的 success: false 响应。停止当前请求,处理 payload.error 和 payload.code 后,再决定是否重新调用。

SDK 会向应用返回真实的 secret。请将其作为敏感值处理,不要写入日志、遥测、剪贴板或持久化存储。派生在设备上执行,内部钱包密钥不会被导出。

后续步骤

最后更新于