Skip to Content
HardwareKonzepteProtocol V1 und V2
Auf dieser Seite

Protocol V1 und V2

Hardware SDK 1.2.0 kommuniziert über zwei Übertragungsprotokolle. Integratoren behalten eine JavaScript-API. Verzweigen Sie nicht anhand von USB-PID, BLE-Namen oder Produktzeichenfolge.

Protocol V1Protocol V2
Aktuelle GeräteClassic, Mini, Touch, ProPro 2, Neo
Wie das SDK es erkenntAktuelle Antwort nach dem VerbindenAktuelle Ping-Antwort / Protokollabfrage nach dem Verbinden
Öffentliche MethodenBestehende Hardware-SDK-MethodenDieselben Methoden, innerhalb von Core zugeordnet
AufrufregelIn der Praxis pro Gerät serialisierenPro Gerät serialisieren; erforderlich
Firmware-UpdatefirmwareUpdateV2 / firmwareUpdateV3firmwareUpdateV4
Chain-MethodenV1+V2-Familien sowie reine V1-FamilienNur V1+V2-Familien
GerätestatusgetDeviceState (getFeatures ist veraltet)Identisch

Stellar, Alephium, Nexa, Dynex, Nervos, SCDO, Benfen und die Neo-Chain unterstützen nur V1. Sie werden auf Pro 2 / Neo nicht unterstützt. Vollständige Matrix: Chain-Unterstützung. Geräte-USB / -BLE / -Air-Gap: Geräte.

Erkennung

Das SDK bestätigt das Protokoll anhand der aktiven Verbindung. Leiten Sie V1/V2 nicht ab aus:

  • USB-PID / -VID
  • Ausgesendeter BLE-Name
  • Produktzeichenfolge oder Gehäuse

Wenn Sie ein früheres Ergebnis speichern, binden Sie es pro connectId (USB und BLE desselben Geräts sind unterschiedliche Endpunkte). Das öffentliche Feld ist connectProtocol im Geräteobjekt.

Die Angabe von connectProtocol bei einem Aufruf ist eine verbindliche Erwartung: Das SDK wechselt nicht stillschweigend auf das andere Protokoll.

Was gleich bleibt

  • HardwareSDK.init({ env }) wählt weiterhin den Transport (USB / BLE / Low-Level), nicht Protocol V1 oder V2.
  • searchDevices → connectId → getDeviceState → Chain-Methoden.
  • PIN-, Passphrase- und Tastenbestätigung kommen weiterhin als UI_EVENT. Antworten Sie nur mit uiResponse bei Eingabeanfragen. Siehe die Core-API-Anleitung.

Was Sie nicht tun dürfen

  • Führen Sie nicht zwei fachliche Aufrufe gleichzeitig auf demselben Gerät aus.
  • Wiederholen Sie Signieren, Löschen oder Firmware-Updates nach Trennung oder Zeitüberschreitung nicht automatisch.
  • Lesen Sie keine Firmware-session_id aus Antworten aus, um sie zu speichern. Die Wallet-Identität ist deviceId + passphraseState. Siehe Wallet-Sitzungen.
  • Rufen Sie keine internen Protocol-V2-Funktionen auf (DeviceSessionGet, DeviceInfoGet, …). Sie sind keine öffentlichen CoreApi.

Gerätestatus

Verwenden Sie getDeviceState. getFeatures unterstützt nur Protocol V1 (Classic / Mini / Touch / Pro); Pro 2 und Neo lehnen dies vor jeder Kompatibilitätsdarstellung ab. getDeviceState enthält weiterhin einen Status im Features-Format für V1 und V2.

const state = await HardwareSDK.getDeviceState(connectId); if (!state.success) throw new Error(state.payload.error);

Verwenden Sie scope: 'settings' oder scope: 'firmware' nur, wenn diese Teilbereiche aktualisiert werden müssen. Der Rückgabewert bleibt ein vollständiger Status.

Weiter

Zuletzt aktualisiert am