Passer au contenu principal
Change page

Bibliothèques d'API JavaScript

Pour qu'une application web puisse interagir avec la chaîne de blocs Ethereum (c'est-à-dire lire les données de la chaîne de blocs et/ou envoyer des transactions au réseau), elle doit se connecter à un nœud Ethereum.

À cette fin, chaque client Ethereum implémente la spécification JSON-RPC, il existe donc un ensemble uniforme de méthodes sur lesquelles les applications peuvent s'appuyer.

Si vous souhaitez utiliser JavaScript pour vous connecter à un nœud Ethereum, il est possible d'utiliser du JavaScript pur, mais plusieurs bibliothèques pratiques existent au sein de l'écosystème pour rendre cela beaucoup plus facile. Avec ces bibliothèques, les développeurs peuvent écrire des méthodes intuitives en une seule ligne pour initialiser des requêtes JSON-RPC (en interne) qui interagissent avec Ethereum.

Veuillez noter que depuis La Fusion, deux logiciels Ethereum connectés - un client d'exécution et un client de consensus - sont nécessaires pour faire fonctionner un nœud. Veuillez vous assurer que votre nœud inclut à la fois un client d'exécution et un client de consensus. Si votre nœud ne se trouve pas sur votre machine locale (par exemple, votre nœud s'exécute sur une instance AWS), mettez à jour les adresses IP dans le tutoriel en conséquence. Pour plus d'informations, veuillez consulter notre page sur l'exécution d'un nœud.

Prérequis

En plus de comprendre JavaScript, il peut être utile de comprendre la pile Ethereum et les clients Ethereum.

Pourquoi utiliser une bibliothèque ?

Ces bibliothèques font abstraction d'une grande partie de la complexité liée à l'interaction directe avec un nœud Ethereum. Elles fournissent également des fonctions utilitaires (par exemple, la conversion d'ETH en gwei) afin qu'en tant que développeur, vous puissiez passer moins de temps à gérer les subtilités des clients Ethereum et plus de temps à vous concentrer sur les fonctionnalités uniques de votre application.

Fonctionnalités des bibliothèques

Se connecter aux nœuds Ethereum

En utilisant des fournisseurs, ces bibliothèques vous permettent de vous connecter à Ethereum et de lire ses données, que ce soit via JSON-RPC, Infura, Etherscan, Alchemy ou MetaMask.

Avertissement : Web3.js a été archivé le 4 mars 2025. Lisez l'annonce (opens in a new tab). Envisagez d'utiliser des bibliothèques alternatives comme ethers.js (opens in a new tab) ou viem (opens in a new tab) pour les nouveaux projets.

Exemple avec Ethers

// Un BrowserProvider enveloppe un fournisseur Web3 standard, ce qui est
// ce que MetaMask injecte en tant que window.ethereum dans chaque page
const provider = new ethers.BrowserProvider(window.ethereum)

// Le plugin MetaMask permet également de signer des transactions pour
// envoyer de l'ether et payer pour changer l'état au sein de la chaîne de blocs.
// Pour cela, nous avons besoin du signataire du compte...
const signer = provider.getSigner()

Exemple avec Web3.js

Une fois configuré, vous pourrez interroger la chaîne de blocs pour obtenir :

  • les numéros de bloc
  • les estimations de gaz
  • les événements de contrats intelligents
  • l'identifiant du réseau
  • et plus encore...

Fonctionnalité de portefeuille

Ces bibliothèques vous offrent des fonctionnalités pour créer des portefeuilles, gérer des clés et signer des transactions.

Voici un exemple avec Ethers

Lire la documentation complète (opens in a new tab)

Une fois configuré, vous pourrez :

  • créer des comptes
  • envoyer des transactions
  • signer des transactions
  • et plus encore...

Interagir avec les fonctions de contrats intelligents

Les bibliothèques clientes JavaScript permettent à votre application d'appeler des fonctions de contrats intelligents en lisant l'interface binaire de l'application (ABI) d'un contrat compilé.

L'ABI explique essentiellement les fonctions du contrat dans un format JSON et vous permet de l'utiliser comme un objet JavaScript normal.

Ainsi, le contrat Solidity suivant :

Donnerait le JSON suivant :

Cela signifie que vous pouvez :

  • Envoyer une transaction au contrat intelligent et exécuter sa méthode
  • Appeler pour estimer le gaz que prendra l'exécution d'une méthode lorsqu'elle sera exécutée dans l'EVM
  • Déployer un contrat
  • Et plus encore...

Fonctions utilitaires

Les fonctions utilitaires vous offrent des raccourcis pratiques qui rendent le développement avec Ethereum un peu plus facile.

Les valeurs en ETH sont en Wei par défaut. 1 ETH = 1 000 000 000 000 000 000 WEI – cela signifie que vous manipulez beaucoup de chiffres ! web3.utils.toWei convertit l'ether en Wei pour vous.

Et dans Ethers, cela ressemble à ceci :

// Obtenir le solde d'un compte (par adresse ou nom ENS)
balance = await provider.getBalance("ethers.eth")
// { BigNumber: "2337132817842795605" }

// Souvent, vous devrez formater la sortie pour l'utilisateur
// qui préfère voir les valeurs en ether (au lieu de Wei)
ethers.utils.formatEther(balance)
// '2.337132817842795605'

Bibliothèques disponibles

Web3.js - API JavaScript Ethereum.

Ethers.js - Implémentation complète de portefeuille Ethereum et utilitaires en JavaScript et TypeScript.

The Graph - Un protocole pour indexer les données Ethereum et IPFS et les interroger à l'aide de GraphQL.

Alchemy SDK - Enveloppe (wrapper) autour d'Ethers.js avec des API améliorées.

Viem - Interface TypeScript pour Ethereum.

Codex - API de données de chaîne de blocs enrichies en temps réel sur des dizaines de chaînes.

Drift - Méta-bibliothèque TypeScript avec mise en cache intégrée, hooks et simulations de test (mocks).

Complément d'information

Vous connaissez une ressource communautaire qui vous a aidé ? Modifiez cette page et ajoutez-la !

Tutoriels : API JavaScript et WebSockets sur Ethereum

  • Utiliser les WebSockets – Comment utiliser les WebSockets avec Alchemy pour s'abonner aux événements Ethereum et effectuer des requêtes JSON-RPC en temps réel.