Skip to Content
ハードウェア
このページの内容
HARDWARE SDK / ビットコイン / BABYLON

btcDeriveContextHash

選択した Bitcoin キー、アプリ、コンテキスト、ネットワークに対して、デバイス上で 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[]必須

接続済み Bitcoin キーの BIP32 パスで、少なくとも 3 つの要素が必要です。スクリプトタイプはパスから推定されます。内部 IKM 導出パスではなく、接続済みキーのパスを使用してください。

params.appNamestring必須

[a-z0-9-] に一致する 1–64 文字の ASCII 文字列です。

params.contextstring必須

0x プレフィックスなしの、小文字かつ偶数長の 16 進数文字列で、1–1024 バイトを表します。空のコンテキストは無効です。SDK はデコードしたバイト列をデバイスに送信します。

params.networkstring必須

bitcoin-mainnet、bitcoin-testnet、bitcoin-signet、bitcoin-regtest のいずれかを正確に指定します。testnet3 と testnet4 はどちらも bitcoin-testnet を使用します。ネットワークはパスから推定されません。

省略可能な共通パラメータ

例

このコード断片は、SDK が初期化され、標準ウォレットが選択済みであることを前提とします。例の path、appName、context、network を、ユーザーが承認した値に置き換えてください。以下のコンテキストは 16 進数でエンコードしたデータの例です。

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 で標準ウォレットを明示的に選択します。隠しウォレットの場合は、接続済み Bitcoin アカウントの確認時に使用したものと同じ passphraseState を渡してください。通常の PIN、パスフレーズ、デバイス確認のフローが引き続き適用されます。

レスポンス

ペイロードを読む前に success を確認してください。成功時の payload.secret は、小文字の 16 進数 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 をアプリに返します。機密値として扱い、ログ、テレメトリー、クリップボード、永続ストレージに含めないでください。導出はデバイス上で実行され、内部ウォレットキーはエクスポートされません。

次のステップ

最終更新日