Sur cette page
Connecter votre premier appareil
Installez le Hardware SDK 1.2.x, connectez un appareil et confirmez votre première adresse.
Cette page décrit le premier lancement. Une fois celui-ci réussi, choisissez un guide de transport et lisez le Guide de l’API Core pour le PIN, la phrase secrète, les événements et la signature.
Hardware SDK 1.2.0 communique en Protocol V1 (Classic / Mini / Touch / Pro) et Protocol V2 (Pro 2 / Neo) via la même API JavaScript. Vous ne choisissez pas le protocole dans init().
- Un appareil OneKey configuré et un câble USB prenant en charge les données
- Un navigateur compatible WebUSB, comme Chrome ou Edge sur ordinateur
- Une origine HTTPS, ou localhost pour le développement
1. Choisir un paquet
| Environnement d’exécution | Paquet | Guide suivant |
|---|---|---|
| WebUSB navigateur / ordinateur | @onekeyfe/hd-common-connect-sdk | WebUSB |
| BLE React Native | @onekeyfe/hd-ble-sdk | BLE React Native |
| Pont natif Android / iOS / Flutter | @onekeyfe/hd-common-connect-sdk (env: 'lowlevel') | BLE natif |
| Hôte iframe de navigateur uniquement | @onekeyfe/hd-web-sdk | Hôte iframe du plugin |
npm
npm i --save-exact @onekeyfe/[email protected] @onekeyfe/[email protected] @onekeyfe/[email protected]La commande sélectionne les paquets publiés 1.2.x et enregistre les versions exactes. Gardez les paquets SDK, core et shared sur la même version et commitez votre fichier de verrouillage. Si vous embarquez @onekeyfe/hd-web-sdk, omettez connectSrc pour qu’il corresponde au paquet installé.
2. Initialiser une seule fois
import HardwareSDK from '@onekeyfe/hd-common-connect-sdk';
const initialized = await HardwareSDK.init({
env: 'webusb',
debug: false,
fetchConfig: true,
});
if (!initialized) throw new Error('SDK initialization failed');Appelez init() une seule fois au point d’entrée de l’application. Ne mélangez pas @onekeyfe/hd-web-sdk et @onekeyfe/hd-common-connect-sdk dans le même environnement d’exécution.
3. Rechercher, identifier, lire une adresse
Enregistrez le gestionnaire d’événements d’interface avant les appels protégés pour que les appareils verrouillés puissent terminer la saisie du PIN. Pour WebUSB, autorisez l’appareil depuis le bouton de connexion de l’utilisateur avant la découverte :
import { ONEKEY_WEBUSB_FILTER } from '@onekeyfe/hd-shared';
// Run directly in the Connect button handler.
if (!navigator.usb) throw new Error('WebUSB is unavailable in this browser');
await navigator.usb.requestDevice({ filters: ONEKEY_WEBUSB_FILTER });Découvrez ensuite les appareils. Cet exemple nécessite un seul candidat ; si plusieurs appareils sont disponibles, laissez l’utilisateur en sélectionner un avant de continuer.
const devices = await HardwareSDK.searchDevices();
if (!devices.success || !devices.payload.length) {
throw new Error('No OneKey device found');
}
// Select explicitly in the application when more than one device is available.
if (devices.payload.length !== 1) throw new Error('Select exactly one device before continuing');
const { connectId } = devices.payload[0];
if (!connectId) throw new Error("Missing connectId");
const state = await HardwareSDK.getDeviceState(connectId);
if (state.success === false) throw new Error(state.payload.error);
const deviceId = state.payload.identity.deviceId;
if (!deviceId) throw new Error("Device has no wallet identity");
const address = await HardwareSDK.evmGetAddress(connectId, deviceId, {
path: "m/44'/60'/0'/0/0",
useEmptyPassphrase: true,
showOnOneKey: true,
});
if (address.success === false) throw new Error(address.payload.error);
console.log(address.payload.address);Vérifiez toujours success avant de lire payload. useEmptyPassphrase: true maintient ce premier appel sur le portefeuille standard pour qu’une session de portefeuille caché restante ne change pas silencieusement l’adresse.
getDeviceState() est la lecture V1/V2. getFeatures() est uniquement Protocol V1 ; Pro 2 et Neo doivent utiliser getDeviceState().
WebUSB nécessite HTTPS et une action utilisateur. BLE nécessite l’autorisation Bluetooth du système.
Prise en charge des appareils et des portefeuilles
- Le SDK détecte Protocol V1 ou V2 à partir de l’appareil connecté. Ne différenciez pas le comportement selon le PID USB, le nom BLE ou la chaîne produit. Consultez Protocol V1 et V2.
- Pro 2 et Neo utilisent les mêmes méthodes que Classic / Pro. Les différences entre appareils sont répertoriées dans Appareils.
- Ouvrez ou changez de portefeuille avec
openWalletSession.getPassphraseStateest obsolète. Consultez Sessions de portefeuille.
Suivant
ETHEREUM ET EVMSigner votre première transactionParamètres, types de frais et réponse de signature.- Déjà sur 1.1.x : Passer à Hardware SDK 1.2
- Connecter les événements d’interface PIN / phrase secrète : Guide de l’API Core
- Établir une vraie connexion sur votre plateforme : Transport
- Gérer les interruptions : Déconnexions et reconnexion
- Quelles chaînes sur quel appareil : Prise en charge des chaînes
- Signer une transaction : Guides de signature
- Micrologiciel : Mise à jour du micrologiciel
- Essayer sans matériel : Environnement de test