Passer au contenu principal

Comment effectuer une transaction sans dépôt auprès de Quicknode

Mis à jour le
26 novembre 2025

7 minutes de lecture

Aperçu

Les clés privées comptent parmi les données les plus sensibles en matière de cryptographie et de blockchain. Cependant, le choix entre les portefeuilles avec garde (où le fournisseur du portefeuille détient la clé privée de l’utilisateur) et les portefeuilles sans garde (où l’utilisateur du portefeuille détient lui-même sa clé privée) a toujours fait l’objet de débats et de confusion. Ce guide vous permettra de mieux comprendre la différence entre les portefeuilles avec garde et sans garde, et vous expliquera comment effectuer une transaction sans garde à l'aide de Quicknode.

Prérequis

  • Node.js est installé sur votre système.
  • Éditeur de texte.
  • Terminal, également appelé « ligne de commande ».

Qu'est-ce qu'un portefeuille non dépositaire ?

Un portefeuille non dépositaire est un portefeuille blockchain dont le propriétaire exerce un contrôle total et détient la clé privée. Il existe deux méthodes pour créer un portefeuille non dépositaire et y accéder : à l'aide de la clé privée (une chaîne alphanumérique) ou à l'aide d'une phrase mnémonique, composée de 12 à 24 mots, conservée par le propriétaire du portefeuille (généralement notée par écrit et rangée dans un endroit sûr, hors d'Internet et d'un ordinateur).

Voici quelques avantages d'un portefeuille non dépositaire :

  • Autonomie: les utilisateurs ont le contrôle total de leurs fonds, car ils sont les seuls à disposer d'un contrôle total sur ceux-ci. Ils n'ont pas besoin de faire appel à un tiers pour gérer ou sécuriser leur portefeuille.
  • Sécurité: comme les utilisateurs conservent leurs clés privées hors d'Internet et sur un support autre qu'un ordinateur, les risques de faille de sécurité sont pratiquement négligeables.
  • Retrait instantané: avec les portefeuilles non dépositaires, les utilisateurs n'ont pas besoin de passer par un tiers pour valider leur demande de retrait. Cela simplifie l'ensemble du processus et permet d'effectuer des retraits instantanés.

Portefeuille non dépositaire vs portefeuille dépositaire

Abonnez-vous à notre chaîne YouTube pour découvrir d'autres vidéos !
  • Détenteur de la clé privée – Le premier critère à prendre en compte lors de la comparaison de portefeuilles cryptographiques est la détention de la clé privée. Dans le cas d’un portefeuille non dépositaire, c’est l’utilisateur qui détient la clé privée. Dans le cas des portefeuilles dépositaires, c’est un tiers (généralement un fournisseur de portefeuille ou une plateforme d’échange) qui contrôle la clé privée.
  • Type de transaction - Les transactions effectuées à partir de portefeuilles non dépositaires sont visibles instantanément sur la blockchain. En revanche, les transactions effectuées à partir de portefeuilles dépositaires doivent passer par divers contrôles effectués par un tiers et sont sujettes à des délais.
  • Sécurité - Dans les portefeuilles non dépositaires, l'utilisateur conserve sa clé privée en local. Le portefeuille est très sécurisé, sauf si l'utilisateur partage sa clé privée ou si son appareil est volé. Dans les portefeuilles dépositaires, toutes les données sensibles de l'utilisateur, telles que les clés privées, sont stockées sur un support de stockage « à chaud » (mis à jour instantanément) et sur un support de stockage « à froid » (mis à jour de temps à autre), qui sont généralement vulnérables au piratage.
  • Accessibilité hors ligne — Les portefeuilles non dépositaires ne nécessitent pas de connexion Internet active. Les portefeuilles dépositaires nécessitent une connexion Internet, car les données sont généralement stockées sur un serveur centralisé.
  • Sauvegarde et récupération — Le seul inconvénient des portefeuilles non dépositaires est qu’une fois la clé privée ou la phrase mnémonique perdue, il n’y a aucun moyen de récupérer le portefeuille. En revanche, les utilisateurs de portefeuilles dépositaires peuvent faire appel à un tiers pour récupérer leurs fonds.

Utilisation d'un nœud sans garde

Chez Quicknode, nous exploitons de nombreux nœuds à l’échelle mondiale. Tous ces nœuds sont connectés en permanence à Internet et sont dynamiques. L’API Quicknode est reliée à un réseau mondial de nœuds puissants. Ces nœuds ne sont pas toujours connectés à un seul composant d’infrastructure. L’API est conçue pour effectuer des basculements dynamiques entre les différents composants d’infrastructure afin d’assurer une meilleure stabilité et une disponibilité optimale. Il n’est donc pas recommandé de stocker des données sensibles sur un nœud, car ceux-ci sont en constante évolution. Il y a également un aspect sécuritaire à prendre en compte, car ces nœuds sont exposés à Internet. Nous ne leur permettons pas de stocker des clés privées afin de garantir la sécurité des données de nos utilisateurs.  En raison de leur nature dynamique, ils changent souvent d’état afin d’offrir de meilleures performances. Cela signifie que les clés peuvent être perdues, entraînant la perte des données de l’utilisateur. Telles sont les raisons qui nous ont poussés à exploiter des nœuds non dépositaires et à faire en sorte que nos utilisateurs soient les seuls à contrôler leurs portefeuilles. Dans les sections suivantes, nous verrons comment créer un portefeuille à l’aide d’une bibliothèque, effectuer une transaction non dépositaire et l’envoyer via Quicknode.

Configurer votre point de terminaison Quicknode pour Ethereum

Pour ce que nous allons faire aujourd’hui, nous pourrions utiliser pratiquement n’importe quel client Ethereum, comme Geth ou OpenEthereum (anciennement Parity). Comme cela s’avère un peu trop compliqué pour envoyer des transactions, nous allons simplement créer un compte Quicknode gratuit ici et générer facilement un point de terminaison Ethereum. Nous utiliserons la chaîne de test Kovan pour effectuer les transferts. Une fois que vous aurez créé votre point de terminaison Ethereum gratuit, copiez l’URL de votre fournisseur HTTP :

Une capture d'écran de la page « Premiers pas » du point de terminaison Ethereum de Quicknode, comportant un lien HTTP et WSS

 

Tu en auras besoin plus tard, alors copie-le et enregistre-le.

Créer un portefeuille et obtenir un peu d'ETH à des fins de test

Nous pourrions utiliser n'importe laquelle des nombreuses bibliothèques Web3 disponibles pour créer un portefeuille. Aujourd'hui, nous allons utiliser ethers.js, une bibliothèque JavaScript, pour créer un portefeuille capable de signer et d'envoyer des transactions. Vous pouvez également consulter nos guides sur la création d'un portefeuille Ethereum en Go, Python, Ruby ou PHP.

Nous allons installer Ethers à l'aide de npm (Node Package Manager), qui est fourni avec Node.js. Ouvrez votre invite de commande/terminal et tapez la commande suivante pour vérifier si Node.js est installé ou non :

node -v 

Cette commande devrait afficher la version installée de Node.js ; si le logiciel n'est pas installé, téléchargez la version LTS de Node.js depuis son site officiel.

Créons un nouveau répertoire pour notre projet, puis définissons ce répertoire comme répertoire de travail actuel dans la ligne de commande/le terminal :

mkdir noncusTransaction
cd noncusTransaction

Installez maintenant Ethers en saisissant la commande suivante :

npm i ethers@5.7

Assurez-vous d'installer la version 5.7 d'Ethers.js

Le problème le plus courant à cette étape est une erreur interne liée à `node-gyp`. Vous pouvez suivre les instructions d'installation de node-gyp disponibles ici.

Remarque: si vous rencontrez le problème lié à node-gyp, vous devrez vous assurer que la version de Python que vous utilisez correspond à l'une des versions compatibles répertoriées dans les instructions ci-dessus. 

Un autre problème courant est un cache obsolète ; pour vider votre cache npm, il suffit de taper la commande suivante dans votre cmd/terminal :

npm cache clean

Si tout se passe bien, ethers.js sera installé sur votre système.

À présent, ouvrez un éditeur de texte et créez un nouveau fichier JavaScript nommé transaction.js. Copiez-collez le code suivant dans ce fichier.

var éthers = require('ethers');  
var cléPrivée = "0x0111111111111111111122222222222222222223333333333333333333344445";
var wallet = new ethers.Portefeuille(clé privée);
console.log("Adresse : " + wallet.adresse);

Explication du code ci-dessus :

Ligne 1 : Importation de la bibliothèque « ethers ».

Ligne 2 : Enregistrez une clé privée dans la variable `privateKey` ; veillez à utiliser votre propre clé privée. Pour savoir comment en générer une, consultez ce guide sur la génération d'une clé privée à l'aide de JavaScript.

Remarque: si vous comptez publier votre code sur Internet (par exemple dans un dépôt GitHub public), il est toujours recommandé de stocker la clé privée dans un fichier .env et de l'importer dans votre code principal via une variable d'environnement. 

Ligne 3 : Création d'une nouvelle adresse de portefeuille à l'aide de la clé privée et enregistrement de celle-ci dans la variable « wallet ».

Ligne 4 : Affichage de l'adresse du portefeuille accompagnée d'une chaîne de caractères.

Enregistrez maintenant le fichier et exécutez le script.

transaction de nœud

Ça devrait ressembler à ça.

Maintenant, récupérons un peu d'ETH de test à envoyer lors de la transaction et pour payer les frais de gaz. Copiez l'adresse figurant dans la sortie, rendez-vous sur le site Kovan Faucet, connectez-vous via GitHub ou GitLab, collez l'adresse du portefeuille dans le champ de texte du site, puis cliquez sur « Send me KETH ! ».

Vous pouvez vérifier si vous avez bien reçu l'ETH de test en collant l'adresse dans l'Etherscan de Kovan; vous verrez alors le solde en ETH.

Envoi d'une transaction sans dépôt fiduciaire

Créons une transaction de transfert de jetons à l'aide du portefeuille que nous avons créé précédemment, puis envoyons cette transaction sur la chaîne via Quicknode.

Modifiez votre fichier transaction.js comme suit :

var ethers = require('ethers');  
var url = ''ADD_YOUR_ETHEREUM_NODE_URL'';
var customHttpProvider = new ethers.providers.JsonRpcProvider(url);
var privateKey = "0x0111111111111111111122222222222222222223333333333333333333344445";
var wallet = new ethers.Wallet(privateKey);
console.log("Address: " + wallet.address);
tx = {
to: "0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE",
value: ethers.utils.parseEther("0.05"),
chainId: 42,
nonce: 11
}
customHttpProvider.estimateGas(tx).then(function(estimate) {
tx.gasLimit = estimate;
tx.gasPrice = ethers.utils.parseUnits("3.14085197", "gwei");
wallet.signTransaction(tx).then((signedTX)=>{
customHttpProvider.sendTransaction(signedTX).then(console.log);
});
});

N'hésitez donc pas à remplacer `ADD_YOUR_ETHEREUM_NODE_URL` par le fournisseur HTTP indiqué dans la section ci-dessus.

Explication du code ci-dessus.

Ligne 1 : Importation de la bibliothèque « ethers ».

Ligne 2 : Enregistrement de notre URL Quicknode dans la variable « url ».

Ligne 3 : Instanciation d'un nouveau fournisseur Ethers et stockage dans la variable `customHttpProvider`.

Ligne 4 : Enregistrement de la clé privée dans la variable `privateKey` (vous devez générer votre propre clé privée).

Ligne 5 : Création d'un nouveau portefeuille à partir de la clé privée.

Ligne 6 : Affichage de l'adresse du portefeuille accompagnée d'une chaîne de caractères.

Lignes 7 à 12 : Initialisation de notre objet de transaction et transmission de paramètres tels que « to », qui contient l’adresse du destinataire (n’importe quelle adresse à laquelle la transaction doit être envoyée). Ensuite, « value », qui contient la valeur en ETH à transférer. Enfin, « chainId » correspond à l’identifiant du réseau de la chaîne (42 ici, car nous utilisons le testnet Kovan). Enfin, « nonce » correspond au nombre de transactions envoyées par l’expéditeur. Cette valeur doit toujours être égale au nombre de transactions précédentes + 1.

 Nous pouvons également obtenir le nonce d'une adresse donnée à l'aide de la méthode getTransactionCount() de ethers.js.

Lignes 13-14 : Estimation du « gas » à l'aide du fournisseur, puis enregistrement de cette valeur dans la variable `gasLimit` de l'objet transaction.

Ligne 15 : Définition du prix du gaz et enregistrement de celui-ci dans la variable « gasPrice » de la transaction.

Ligne 16 : Signature de la transaction à l'aide du portefeuille.

Ligne 17 : envoi de la transaction signée via le fournisseur et affichage des détails de la transaction sur la console.

Enregistrez le fichier et exécutez-le à l'aide de la commande suivante :

transaction de nœud

Le résultat sera similaire à celui-ci :

Copiez le hachage de la transaction et collez-le dans la barre de recherche de Kovan Etherscan pour vérifier si elle a été confirmée ou non.

Conclusion

Félicitations : vous venez d'effectuer une transaction sans dépôt fiduciaire et vous êtes désormais l'unique détenteur de vos fonds. Ne communiquez jamais votre clé privée à qui que ce soit ; conservez-la toujours en lieu sûr afin de garantir la sécurité de votre portefeuille et de vos fonds.

Abonnez-vous à notre newsletter pour découvrir d'autres articles et guides sur Ethereum. Vous pouvez également nous retrouver à tout moment sur Twitter et sur notre serveur Discord, où vous rencontrerez certains des développeurs les plus géniaux qui soient :)

Nous ❤️ les commentaires !

Faites-nous savoir si vous avez des commentaires ou des suggestions de nouveaux sujets. Nous serions ravis de vous entendre.

Partager ce guide