Skip to Content
MatérielConceptsProtocol V1 et V2
Sur cette page

Protocol V1 et V2

Hardware SDK 1.2.0 utilise deux protocoles de communication. Les intégrateurs conservent une seule API JavaScript. Ne différenciez pas le comportement selon le PID USB, le nom BLE ou la chaîne produit.

Protocol V1Protocol V2
Appareils actuelsClassic, Mini, Touch, ProPro 2, Neo
Comment le SDK le détecteRéponse en direct après connexionPing / interrogation du protocole en direct après connexion
Méthodes publiquesMéthodes existantes du Hardware SDKMêmes méthodes, adaptées dans Core
Règle d’appelSérialiser par appareil en pratiqueSérialiser par appareil ; obligatoire
Mise à jour du micrologicielfirmwareUpdateV2 / firmwareUpdateV3firmwareUpdateV4
Méthodes de chaîneFamilles V1+V2 et familles V1 uniquementFamilles V1+V2 uniquement
Instantané de l’appareilgetDeviceState (getFeatures est obsolète)Identique

Stellar, Alephium, Nexa, Dynex, Nervos, SCDO, Benfen et la chaîne Neo sont uniquement V1. Ils ne sont pas pris en charge sur Pro 2 / Neo. Matrice complète : Prise en charge des chaînes. USB / BLE / Air-Gap de l’appareil : Appareils.

Détection

Le SDK confirme le protocole à partir de la connexion active. Ne déduisez pas V1/V2 à partir de :

  • PID / VID USB
  • Nom annoncé par BLE
  • Chaîne produit ou boîtier

Si vous persistez un résultat précédent, associez-le par connectId (USB et BLE d’une même unité sont des points de terminaison différents). Le champ public est connectProtocol dans l’objet appareil.

Transmettre connectProtocol lors d’un appel impose une exigence stricte : le SDK ne bascule pas silencieusement vers l’autre protocole.

Ce qui reste identique

  • HardwareSDK.init({ env }) sélectionne toujours le transport (USB / BLE / bas niveau), pas Protocol V1 ou V2.
  • searchDevices → connectId → getDeviceState → méthodes de chaîne.
  • Le PIN, la phrase secrète et la confirmation par bouton arrivent toujours sous forme de UI_EVENT. Répondez uniquement avec uiResponse sur les demandes de saisie. Consultez le Guide de l’API Core.

Ce qu’il ne faut pas faire

  • Ne lancez pas deux appels métier simultanés sur le même appareil.
  • Ne rejouez pas automatiquement une signature, un effacement ou une mise à jour du micrologiciel après une déconnexion ou un délai dépassé.
  • Ne lisez pas le champ de micrologiciel session_id dans les réponses pour le stocker. L’identité du portefeuille est deviceId + passphraseState. Consultez Sessions de portefeuille.
  • N’appelez pas les éléments internes de Protocol V2 (DeviceSessionGet, DeviceInfoGet, …). Ce ne sont pas des éléments publics CoreApi.

État de l’appareil

Utilisez getDeviceState. getFeatures est limité à Protocol V1 (Classic / Mini / Touch / Pro) ; Pro 2 et Neo le rejettent avant toute projection de compatibilité. getDeviceState inclut toujours un instantané de forme Features pour V1 et V2.

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

Utilisez scope: 'settings' ou scope: 'firmware' uniquement lorsque vous devez actualiser ces sections. La valeur renvoyée reste un instantané complet.

Suivant

Dernière mise à jour le