Navigation dans les chemins de dérivation du Portefeuille Tangem

What is a Cold Wallet?

Lors de l'importation d'une seed phrase depuis un portefeuille tiers prenant en charge les comptes multiples, c'est-à-dire les portefeuilles qui créent de nouvelles adresses pour un coin après chaque transaction, vous ne verrez que le solde de la première adresse — dont le solde pourrait être de 0.

Pour résoudre ce problème, vous devez créer un jeton personnalisé avec le même chemin de dérivation que le portefeuille à partir duquel la seed phrase est importée.

Qu'est-ce qu'un chemin de dérivation ?

Le chemin de dérivation fait référence à la génération d'une adresse ou d'une clé publique spécifique à partir d'un seed maître ou d'une clé racine. Cela se fait en appliquant un chemin de dérivation, une séquence de chiffres et de barres obliques (/) qui spécifient la hiérarchie des clés.

Le chemin de dérivation crée une structure arborescente, chaque niveau représentant une nouvelle paire de clés. Le chemin définit la branche spécifique à suivre pour la paire de clés souhaitée.

Cela permet de générer plusieurs adresses et clés à partir d'un seul seed maître, facilitant ainsi la gestion et l'organisation des adresses pour différents usages ou comptes.

Par exemple, le chemin de dérivation « m/44'/0'/0 » générerait une adresse spécifique en partant du seed maître (m), puis en dérivant une paire de clés au niveau 44' (une hardened key), puis au niveau 0' (une autre hardened key), et enfin au niveau 0 (une clé non durcie).

La structure typique d'un chemin de dérivation est la suivante :

m/purpose'/coin_type'/account'/change/address_index

  • m : représente la clé maître (ou clé racine)
  • Purpose : Ce champ, ajouté via BIP43, indique la norme du chemin de dérivation. Il peut inclure 0 ou 44 faisant référence aux adresses BIP44 P2PKH / '1' legacy par défaut, 45 faisant référence aux portefeuilles multi-signatures multi-parties BIP45 P2SH (proposé), 47 faisant référence aux codes de paiement réutilisables BIP47 (projet), 48 faisant référence aux portefeuilles multi-sig matériels (pas de proposition BIP ou standard), 49 faisant référence aux adresses BIP49 P2WPKH-nested-in-P2SH / '3' SegWit, ou 84 faisant référence aux adresses BIP84 P2WPKH / 'bc1' native SegWit. 

Le Portefeuille Tangem prend en charge uniquement Legacy BIP44 (P2PKH) et SegWit BIP84, (P2WPKH).

  • Coin type : Ce champ indique quelle crypto-monnaie est utilisée dans un portefeuille multi-devises. Tous les coins, y compris le bitcoin testnet, se voient attribuer un numéro constant. Par exemple, un chemin de dérivation pour un compte Hedera (HBAR) serait m/44'/3030'. BIP45 désignerait ce niveau comme « Cosigner Index » à la place.
  • Account : Ce champ, dans un portefeuille multi-comptes, indique l'identité ou la collection d'adresses, ce qui permet aux utilisateurs de séparer les fonds pour différentes choses (par exemple, épargne, dons). Notez que BIP45 n'inclurait pas ce champ. BIP47 désignerait ce niveau comme « Identity », bien qu'il soit équivalent à « Account ».
  • Change : Ce champ, si la constante 0 est présente, indique les adresses de « chaîne externe » (régulières) ; si la constante est 1, il indique les adresses de « chaîne interne » ou de change. Note : BIP47 désignerait ce niveau pour les clés de notification et les codes de paiement éphémères.
  • Address Index : Ce champ indique le numéro d'adresse spécifique dans un compte dans une séquence.

'Account' et 'Address Index' commencent par zéro (0). Cela s'explique par l'utilisation d'une numérotation basée sur zéro, tout comme le « rez-de-chaussée » des bâtiments européens est considéré comme le niveau zéro, plutôt que le premier étage/niveau un aux États-Unis.

Par exemple, si vous avez un portefeuille Bitcoin conforme à BIP44 et que vous souhaitez trouver la deuxième adresse de change dans votre troisième compte. Le chemin de dérivation pour la deuxième adresse de change dans le troisième compte ressemblerait à ceci : m/44'/0'/2'/1/1.

Voici un tableau formaté pour les chemins Bitcoin basé sur les informations fournies :

Format

Chemin de dérivation

Commence par

Note

Legacy (P2WSH)

m/44'/0'/0'/0/*

« 1 »

Compatible avec tous les portefeuilles et échanges Bitcoin.

Nested Segwit (P2SH-P2WSH)

m/49'/0'/0'/0/*

« 3 »

Sécurité améliorée et frais de transaction réduits par rapport aux adresses Legacy.

Native Segwit (P2WSH)

m/84'/0'/0'/0/*

« bc1 »

Le format d'adresse Bitcoin le plus efficace et sécurisé, offrant des économies de coûts et une sécurité améliorée.

Taproot (P2TR)

m/86'/0'/0'/*

« bc1p »

Utilisation des signatures Schnorr, qui offrent une meilleure sécurité, des frais réduits et des transactions multi-clés plus flexibles.

Quelles blockchains nécessitent un chemin de dérivation spécifié ?

Certaines blockchains génèrent une nouvelle adresse pour chaque transaction entrante en utilisant le protocole UTXO (Unspent Transaction Output). Un UTXO est le montant de crypto-monnaie restant après une transaction de crypto-monnaie. Le modèle UTXO permet aux utilisateurs de suivre la propriété de toutes les portions de crypto-monnaie. Pour découvrir leur chemin de dérivation, vous devrez trouver la clé XPUB pour la blockchain afin d'importer automatiquement toutes les transactions.

Exemples de blockchains utilisant le modèle UTXO :

  • Bitcoin
  • Bitcoin Cash
  • BitcoinGold
  • Dash
  • DigiByte
  • Dogecoin
  • Dash
  • Kaspa
  • Litecoin

Votre clé xpub varie pour chaque blockchain, vous devrez donc l'exporter séparément pour chaque actif que vous souhaitez exporter.

Comment importer un portefeuille avec un chemin de dérivation

Vous avez importé votre portefeuille avec une seed phrase, mais certains jetons sont manquants ou ont un solde nul. Le problème pourrait venir du fait que ces adresses de jetons ont un chemin de dérivation différent, non pris en charge par Tangem. Voici ce qu'il faut faire en prenant Bitcoin comme exemple.

1. Découvrir le chemin de dérivation depuis le portefeuille source

La plupart des portefeuilles crypto fournissent le chemin de dérivation des adresses de jetons dans leurs fichiers XPUB. Vous pouvez trouver le fichier XPUB de votre portefeuille dans les paramètres du portefeuille ou chercher dans la documentation ou les guides fournis par le développeur ou le fabricant du portefeuille. Ils peuvent avoir une section sur les chemins de dérivation ou la gestion des clés.

Voici des exemples pour trouver votre clé xpub selon votre portefeuille.

Trezor :

  • Connectez votre portefeuille Trezor et ouvrez l'application de bureau Trezor Suite ou l'application web.
  • Sélectionnez le compte souhaité dans le menu latéral.
  • Sélectionnez l'onglet Details et copiez la clé de dérivation m/84'/0'/0.

Ledger :

  • Ouvrez le compte pour lequel vous souhaitez récupérer le xpub.
  • Cliquez sur l'icône de la clé à molette.
  • Dans la fenêtre Edit Account, développez la section Advanced Logs.
  • Trouvez et copiez le fresh Address Path, qui ressemble à ceci : « 44'/0'/0'/0'/1 ».

Kaspa :

  • Le portefeuille web KDX/Kaspanet utilise le chemin de dérivation m/44'/972'/0' avec des seed phrases de 12 mots.
  • Le portefeuille Core Golang CLI et Kaspium utilisent le chemin de dérivation m/44'/111111'/0' avec des seed phrases de 24 mots. Note : 972 et 111111 sont des coin types différents.

Les portefeuilles KDX ne sont pas compatibles BIP-32, donc vos jetons n'apparaîtront pas automatiquement dans le portefeuille Tangem car le chemin de dérivation KDX est considéré comme obsolète. Vous pouvez faire apparaître ces jetons en suivant les étapes décrites ci-dessous.

Comment obtenir un chemin de dérivation à l'aide du xpub

Pour obtenir un chemin de dérivation à l'aide de votre xpub (Extended Public Key), vous pouvez utiliser un explorateur blockchain.

Voici un guide étape par étape :

  1. Allez sur https://bitcoinexplorer.org/
  2. Entrez votre xpub dans le champ « search ».
  3. Copiez le BIP32 PATH affiché.

2. Créer des jetons personnalisés dans le Portefeuille Tangem

Maintenant, vous devez créer un jeton personnalisé avec le chemin de dérivation du portefeuille source. Voici comment procéder :

1. Ouvrez votre Portefeuille Tangem et appuyez sur Manage tokens.

2. Appuyez ensuite sur l'icône + dans le coin supérieur droit.

3. Un menu pour ajouter un jeton personnalisé apparaît.

4. Sélectionnez le réseau, par exemple, Bitcoin.

5. Appuyez sur BIP44 coin type et sélectionnez Custom derivation.

6. Entrez le chemin de dérivation de votre portefeuille source, par exemple, m/84'/0'/0. Lors de la saisie du chemin de dérivation, il est important de commencer par m/ sinon le Portefeuille Tangem ne peut pas valider le jeton.

7. Entrez votre code d'accès ou votre identifiant biométrique et scannez votre carte Tangem pour autoriser ces modifications.

Le jeton dérivé apparaîtra sur la page d'accueil de votre application Tangem avec son solde correct.