Skip to Content
HardwareConceptsCommon Params
On this page

Common Params

Most chain and device methods take a params object; initialization, event and lifecycle APIs have their own signatures. The keys on this page are the shared set for address, signing, and device methods. They are not universal: openWalletSession rejects useEmptyPassphrase, initSession, deviceId, and passphraseState even when those values are false or spread from a shared defaults object. Chain- and device-specific fields (path, coin, tx, message, …) stay on each method page.

This page is the parameter reference. For the call lifecycle, see the Core API Guide. For response IDs (connectId, deviceId, uuid, session_id, …), see Identifiers.

ParamTypePurposeNotes
passphraseStatestringBind the call to a specific hidden walletObtain once via openWalletSession (or deprecated getPassphraseState); pass on every later call that must stay on that wallet. Cannot be combined with useEmptyPassphrase. This is a wallet fingerprint, not firmware session_id.
useEmptyPassphrasebooleanForce the standard walletPrevents a leftover hidden-wallet session from silently changing the address. Cannot be combined with passphraseState.
initSessionbooleanForce session init before the callPair with passphraseState on the compatibility path. New code should prefer openWalletSession({ mode }) instead of mixing mode with this flag.
deriveCardanobooleanPre-derive the Cardano sub-treeSet on the first Cardano call in a session.
retryCountnumberConnection establishment retry limitUsed by Core while establishing/initializing the connection. It does not replay a completed or failed signing operation.
pollIntervalTimenumberPolling interval (ms) between retriesPaired with retryCount during connection setup.
timeoutnumberConnection-attempt timeout (ms)Does not set the signing/firmware-transfer timeout.
detectBootloaderDevicebooleanFail fast if the device is in BootloaderUse on signing paths where Bootloader is never valid.
skipWebDevicePromptbooleanSkip the WebUSB chooser on re-entryWebUSB only. Reuses prior WebUSB authorization.
keepSessionbooleanHold the transport after the callControls whether Device.run() releases the link. Not a wallet binding and not replaced by passphraseState or openWalletSession. Keep it on USB consecutive signing / check-then-upgrade and Electron BLE firmware windows.

Transport-specific notes

ParamWebUSBBridgenode-usbAndroid BLEiOS BLEDesktop BLE
skipWebDevicePrompt✅—————
retryCount / pollIntervalTime / timeoutConnection setupConnection setupConnection setupConnection setupConnection setupConnection setup
passphraseState / useEmptyPassphrase / initSession✅✅✅✅✅✅
deriveCardano / detectBootloaderDevice✅✅✅✅✅✅

Common combos

Standard wallet — avoid accidental hidden-wallet prompts

await HardwareSDK.evmGetAddress(connectId, deviceId, { path: "m/44'/60'/0'/0/0", useEmptyPassphrase: true, });

Hidden wallet — reuse a binding across calls

const opened = await HardwareSDK.openWalletSession(connectId, { mode: 'select-hidden', }); if (!opened.success) throw new Error(opened.payload.error); if (opened.payload.walletType !== 'hidden') { throw new Error('A hidden wallet was not opened'); } const hiddenWallet = { passphraseState: opened.payload.passphraseState, }; await HardwareSDK.evmGetAddress(connectId, opened.payload.deviceId, { path: "m/44'/60'/0'/0/0", ...hiddenWallet, });

Deprecated compatibility path: getPassphraseState(connectId, { initSession: true }), then pass { initSession: true, passphraseState } on later calls. See Wallet Sessions.

BLE conservative retries (discovery / address / signing only)

const bleDefaults = { retryCount: 3, pollIntervalTime: 1000, timeout: 30_000, };

Do not spread bleDefaults onto firmwareUpdateV2 / V3 / V4. See Disconnects and reconnection.

HD path

A method’s minimum path length is an SDK input check, not a guarantee that every path of that length is supported. Firmware also enforces chain-specific derivation and hardening rules.

path: string | number[] follows BIP44. ed25519 chains (Solana, NEAR, …) must be fully hardened.

ChainExample pathNotes
EVMm/44'/60'/0'/0/0Standard EVM account
BTC (Nested SegWit)m/49'/0'/0'/0/0Use 84' for Native SegWit
Solanam/44'/501'/0'/0'Fully hardened
NEARm/44'/397'/0'/0'/1'Fully hardened
Cardanom/1852'/1815'/0'/0/0Stake at .../2/0
TRONm/44'/195'/0'/0/0EVM-style path

Number-array example: [(44 | 0x80000000) >>> 0, (0 | 0x80000000) >>> 0, 0x80000000, 0, 0]

Forbidden-path errors: check length and hardening on the chain method page.

On Protocol V1, select-hidden can return a standard wallet when passphrase protection is disabled. Check walletType before saving or using passphraseState.

Last updated on