Installer Hardhat et créer son premier projet

Table of contents
- 🔧 C’est quoi Hardhat et pourquoi l’utiliser ?
- Étape 1 : Préparer ton environnement
- Étape 2 : Créer ton projet Hardhat
- Étape 3 : Compiler ton smart contract
- Étape 4 : Lancer ton propre réseau Ethereum local
- Étape 5 : Déployer ton contrat
- Petit détour : Que fait le contrat Lock.sol ?
- Ressources vidéo et docs utiles
- 🧪 Pour aller plus loin : ajout de plugins
- 🚨 Pièges fréquents à éviter
- Liens vers les autres articles
- 🎯 À toi de jouer !

Un guide complet pour poser les bases de ton environnement de développement Web3 avec Hardhat.
👋 Hey ami(e) développeur(se) Web2 ! Si tu lis ceci, c’est que tu es prêt(e) à passer de la théorie à la pratique. Bravo 🙌
On a déjà parlé de la différence entre Bitcoin et Ethereum, de la structure des comptes dans Ethereum, et de ce que le Web3 change pour toi en tant que dev Web2.
Mais aujourd’hui, place au concret. On va coder, compiler et déployer un smart contract avec un outil phare : Hardhat.
🧠 Tu n’as pas encore lu les premiers articles ? Pas de souci :
➡️ Pourquoi Ethereum et pas seulement Bitcoin ?
➡️ Comprendre les comptes externes vs contrats intelligents
➡️ Ethereum pour les développeurs Web2 – Ce qu’il faut savoir
🔧 C’est quoi Hardhat et pourquoi l’utiliser ?
Imagine un instant : tu es un développeur Web2 aguerri, à l’aise avec des stacks comme React, Next.js ou Express. Tu démarres un projet, tu installes des dépendances, tu compiles ton code, tu testes en local… Tout ça te parle, n’est-ce pas ? Eh bien, dans le monde du Web3, ce workflow a aussi son équivalent : il s’appelle Hardhat. C’est un framework de développement Ethereum conçu pour rendre la création de smart contracts aussi fluide et structurée que le développement frontend avec Create React App. Hardhat te permet de générer un projet solide dès le départ, tout comme CRA te donne un squelette React clé-en-main. C’est l’outil idéal pour franchir le pont entre tes habitudes Web2 et les exigences techniques du Web3.
Ce qui rend Hardhat si puissant, ce n’est pas juste sa simplicité d’installation, mais sa capacité à tout centraliser : compilation de contrats en Solidity, gestion de tests unitaires, déploiement automatique sur un réseau Ethereum local ou testnet, interaction avec des outils comme Ethers.js, et même la simulation d’un réseau complet en local. En Web2, on parle souvent de serveurs de développement ou de mock APIs pour simuler un backend. En Web3, Hardhat fait bien plus : il simule une blockchain complète, avec des comptes, des fonds virtuels, et une capacité à explorer le moindre comportement d’un contrat avant de le lancer dans le grand bain du réseau principal.
Hardhat est également extensible grâce à des plugins : tu peux lui ajouter des outils comme OpenZeppelin pour la sécurité, Ethers.js pour interagir avec tes contrats, ou encore Dotenv pour gérer tes clés privées. Si dans ton environnement Web2 tu configures Webpack, Babel, ESLint et des scripts npm pour rendre ton app robuste, ici tu fais pareil avec des modules spécifiques au Web3. C’est la boîte à outils moderne de l’ingénieur blockchain, et l’un des meilleurs moyens pour toi, développeur Web2, de prendre tes repères dans cet écosystème décentralisé.
En bref, utilises HardHat pour:
✅ Créer un projet de smart contracts (Solidity)
✅ Compiler ton code
✅ Déployer localement ou sur testnet
✅ Simuler un réseau Ethereum local (comme un localhost
de blockchain)
✅ Exécuter des tests, interagir avec Ethers.js
✅ Étendre ton environnement avec des plugins puissants
💬 En Web2, tu as l’habitude d'utiliser Express.js, React, Webpack ou Next.js pour monter un environnement de travail.
En Web3, Hardhat est ce point de départ.
Étape 1 : Préparer ton environnement
Tu vas avoir besoin de :
Node.js (v16 ou supérieur recommandé)
NPM ou Yarn
Un terminal (cmd, PowerShell, Terminal macOS, etc.)
Un éditeur de code : VS Code recommandé
✅ Vérifie si Node.js est installé
npm -v
Sinon, installe-le depuis https://nodejs.org
Étape 2 : Créer ton projet Hardhat
Créons notre environnement de base :
mkdir mon-premier-projet-hardhat
cd mon-premier-projet-hardhat
npm init -y
npm install --save-dev hardhat
Puis lance Hardhat :
npx hardhat
Choisis : Create a basic sample project
Et accepte les options par défaut (appuie sur Entrée à chaque question).
🔍 Ce que Hardhat génère pour toi
Voici l’architecture typique que Hardhat crée :
├── contracts
│ └── Lock.sol # Ton premier smart contract
├── scripts
│ └── deploy.js # Script de déploiement
├── test
│ └── Lock.js # Tests automatisés
├── hardhat.config.js # Configuration principale
└── package.json
En Web2, tu aurais un fichier
webpack.config.js
ouvite.config.js
. Ici,hardhat.config.js
joue un rôle similaire pour le Web3.
Étape 3 : Compiler ton smart contract
npx hardhat compile
Si tout se passe bien, tu verras apparaître le dossier artifacts/
contenant les bytecodes et ABIs de tes contrats.
⚠️ L’ABI (Application Binary Interface), c’est comme un fichier
.d.ts
en TypeScript : il décrit les fonctions, événements et structures du smart contract pour les apps front-end.
Étape 4 : Lancer ton propre réseau Ethereum local
Hardhat embarque un nœud Ethereum local. Pour le lancer :
npx hardhat node
Cela simule un mini Ethereum sur ta machine, avec 20 comptes préremplis en ETH fictif. Tu verras :
Accounts
========
0: 0xabc123... (10000 ETH)
1: 0xdef456...
...
En Web2, tu aurais utilisé un serveur local comme
localhost:3000
. Ici, c’est ton nœud blockchain local.
Étape 5 : Déployer ton contrat
Dans un autre terminal :
npx hardhat run scripts/deploy.js --network localhost
Si tout va bien, tu obtiendras un message de confirmation du déploiement et l’adresse du contrat sur ton réseau local.
🧠 En Web2, tu "pushes" ton app sur Netlify ou Vercel.
En Web3, tu "déploies" un smart contract sur un réseau Ethereum (ici local, plus tard un testnet réel).
Petit détour : Que fait le contrat Lock.sol
?
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;
contract Lock {
uint public unlockTime;
address public owner;
constructor(uint _unlockTime) payable {
unlockTime = _unlockTime;
owner = msg.sender;
}
function withdraw() public {
require(block.timestamp >= unlockTime, "Not yet!");
require(msg.sender == owner, "Not the owner");
payable(msg.sender).transfer(address(this).balance);
}
}
Ce contrat est simple : il verrouille des fonds jusqu’à une certaine date.
Il ressemble un peu à un coffre-fort déverrouillable dans le temps.
Comparaison Web2 : un
setTimeout()
géant, qui débloque un fichier ou une action après une durée donnée.
Ressources vidéo et docs utiles
📘 Documentation officielle Hardhat
🧪 Pour aller plus loin : ajout de plugins
Installe les outils pratiques :
npm install dotenv ethers @nomicfoundation/hardhat-toolbox
Puis dans hardhat.config.js
:
jsCopierModifierrequire("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();
module.exports = {
solidity: "0.8.18",
};
Grâce à dotenv
, tu pourras stocker tes clés API ou clés privées sans les exposer.
🚨 Pièges fréquents à éviter
Ne pas oublier d’installer
dotenv
avant de l’utiliser.Toujours ouvrir un second terminal pour exécuter
deploy.js
pendant quenpx hardhat node
tourne.Ne pas mélanger les versions de Solidity (vérifie dans
hardhat.config.js
et dans ton contrat).Pour les Windows Users : utiliser PowerShell ou Git Bash peut éviter des bugs liés au terminal.
Liens vers les autres articles
📌 Tu as loupé la base théorique ?
👉 Pourquoi Ethereum et pas seulement Bitcoin ?
📌 Besoin de comprendre les comptes dans Ethereum ?
👉 Comprendre les comptes externes vs contrats intelligents
📌 Tu viens du monde Web2 ? Cet article est pour toi :
👉 Ethereum pour les développeurs Web2 – Ce qu’il faut savoir
👉 Et pour la suite ? On va apprendre à manipuler Ethers.js pour interagir avec les smart contracts comme un pro.
➡️ Lire l’article suivant → Ethers.js pour les nuls
🎯 À toi de jouer !
Maintenant que ton environnement est prêt, tu peux :
Modifier le contrat
Lock.sol
pour créer ton propre logicDéployer sur Goerli, Sepolia ou autre testnet
Brancher une interface React pour une vraie DApp !
Tu veux un tuto vidéo complet ? Un souci à l’installation ?
👉 Viens discuter avec nous sur Twitter ou envoie un message 💬
✨ De Web2 à Web3 – Le Guide Francophone ✨
Une série pensée pour les devs Web2 comme toi.
Subscribe to my newsletter
Read articles from Daniel Kambale directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Daniel Kambale
Daniel Kambale
Hello! I’m Daniel, a Web3 developer specializing in Solidity and smart contract development. My journey in the blockchain space is driven by a vision of a fully decentralized world, where technology empowers individuals and transforms industries. As a Web3 ambassador , I’m committed to fostering growth and innovation in this space, helping to shape a future that values transparency and security. Fluent in both English and French, I enjoy connecting with diverse communities and sharing my insights across languages. This is why you’ll find some of my articles in French, while others are in Swahili, as I believe knowledge should be accessible to all. I use my Hashnode blog to document my learning process, explore decentralized solutions, and share practical tutorials on Web3 development. Whether it's diving deep into Solidity, discussing the latest in blockchain, or exploring new tools, I’m passionate about contributing to a decentralized future and connecting with others who share this vision. Let’s build the future together!