Skip to content
Learni
Voir tous les tutoriels
Blockchain

Comment utiliser Ethers.js pour Ethereum en 2026

14 minBEGINNER
Read in English

Introduction

Ethers.js est la bibliothèque JavaScript la plus populaire pour interagir avec la blockchain Ethereum. Elle permet aux développeurs de lire des données on-chain, d'appeler des contrats intelligents et d'envoyer des transactions de manière simple et sécurisée. Contrairement à Web3.js, Ethers.js met l'accent sur la lisibilité du code et la sécurité. En 2026, elle reste essentielle pour toute dApp moderne. Ce tutoriel vous guide pas à pas depuis l'installation jusqu'à l'envoi d'une transaction. Vous apprendrez à connecter un provider, à lire un solde et à interagir avec un contrat ERC-20. Chaque étape inclut du code complet et fonctionnel que vous pouvez copier-coller directement.

Prérequis

  • Node.js 18 ou supérieur
  • Connaissances de base en JavaScript/TypeScript
  • Un portefeuille comme MetaMask avec des ETH de test (Sepolia)

Installation du projet

terminal
npm init -y
npm install ethers

Cette commande initialise un projet Node.js et installe la dernière version d'Ethers.js. Vérifiez toujours que vous utilisez la version 6 pour bénéficier des dernières améliorations de sécurité et de performance.

Connexion au provider

provider.ts
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://rpc.sepolia.org');
const network = await provider.getNetwork();
console.log('Connecté au réseau:', network.name);

Ce code crée une connexion à un nœud Ethereum via JSON-RPC. Le provider permet de lire des données de la blockchain sans clé privée. Utilisez toujours un RPC public de testnet pour vos premiers essais.

Lire le solde d'une adresse

balance.ts
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://rpc.sepolia.org');
const address = '0x742d35Cc6634C0532925a3b844Bc454e4438f44e';
const balance = await provider.getBalance(address);
console.log('Solde:', ethers.formatEther(balance), 'ETH');

La méthode getBalance retourne le solde en wei. La fonction formatEther convertit automatiquement en ETH pour une lecture humaine. C'est la première opération utile dans toute dApp.

Interagir avec un contrat ERC-20

contract.ts
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://rpc.sepolia.org');
const abi = ['function balanceOf(address) view returns (uint256)'];
const contract = new ethers.Contract('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', abi, provider);
const balance = await contract.balanceOf('0x742d35Cc6634C0532925a3b844Bc454e4438f44e');
console.log('Tokens:', ethers.formatUnits(balance, 18));

On fournit uniquement l'ABI minimal nécessaire. Cela réduit la surface d'attaque et améliore la lisibilité. Le contrat est en lecture seule grâce au provider.

Écouter un événement Transfer

events.ts
import { ethers } from 'ethers';

const provider = new ethers.JsonRpcProvider('https://rpc.sepolia.org');
const abi = ['event Transfer(address indexed from, address indexed to, uint256 value)'];
const contract = new ethers.Contract('0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984', abi, provider);
contract.on('Transfer', (from, to, value) => {
  console.log(`Transfert de ${from} vers ${to} : ${ethers.formatUnits(value, 18)} UNI`);
});

L'écoute d'événements permet de réagir en temps réel aux transferts. Ce pattern est fondamental pour les dashboards et les notifications dans les dApps.

Bonnes pratiques

  • Toujours utiliser des variables d'environnement pour les clés privées et les URLs RPC
  • Valider les adresses avec ethers.isAddress avant toute opération
  • Gérer les erreurs réseau avec try/catch et des timeouts
  • Utiliser le pattern de connexion unique au provider dans toute l'application
  • Préférer les fonctions view aux appels on-chain coûteux

Erreurs courantes à éviter

  • Oublier de convertir les unités (wei ↔ ether) avec formatEther ou parseEther
  • Utiliser un provider sans signer pour des transactions qui nécessitent un wallet
  • Ignorer les rejets de promesse lors des appels réseau
  • Hardcoder des adresses de contrat sans vérifier le réseau

Pour aller plus loin

Découvrez nos formations complètes sur la blockchain et le développement Web3 sur Learni Group.