# Étape 4 — Déployer sur BSC Testnet + dossier `deployment/` > **Prérequis :** étapes 1–3 ✅ (`FGC42Forge.sol`, tests Mocha OK, `bscTestnet` dans `hardhat.config.ts`, `.env` local). > **Sujet :** déploiement sur **chaîne publique de test**, adresse + réseau dans le dépôt Git, explorer (BscScan). --- ## Objectif Avoir le contrat **FGC42Forge** déployé sur **BNB Smart Chain Testnet** (chainId **97**), avec l’adresse documentée dans `tokenizerRendu/deployment/` et le README école. --- ## 4.1 — Module Ignition (déjà dans le repo) Fichier : `tokenizerRendu/code/ignition/modules/FGC42Forge.ts` Il déclare uniquement `m.contract("FGC42Forge")` : pas d’arguments, le constructeur Solidity fait le mint. Vérifier la compile : ```bash cd tokenizerRendu/code npx hardhat build ``` --- ## 4.2 — Lancer le déploiement (à faire **toi-même**) ```bash cd tokenizerRendu/code npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts ``` | Problème possible | Piste | |-------------------|--------| | `ENV_VAR_NOT_FOUND` / clé manquante | `code/.env` avec `PRIVATE_KEY` et `BSC_TESTNET_RPC` | | `insufficient funds` | Recharger **tBNB** sur le compte deployer | | Mauvais réseau | MetaMask pas requis ici ; Hardhat signe avec `PRIVATE_KEY` | **Ne pas** coller la clé privée dans le chat. --- ## 4.3 — Enregistrer l’adresse 1. `cp deployment/addresses.json.example deployment/addresses.json` 2. Remplir `address`, `deployer`, `deployedAt`, `explorer` (URL BscScan). 3. Mettre à jour `tokenizerRendu/README.md` (table Token). --- ## 4.4 — Vérifier sur BscScan (sujet) - Ouvrir l’adresse sur https://testnet.bscscan.com/ - Vérifier **nom / symbole** du token si l’explorer les affiche. - Option **Verify and Publish** : publier le **code source** (fichier aplati ou standard JSON). --- ## Livrable pour vérification (chat) 1. « Étape 4 deploy OK » 2. Adresse du contrat `0x...` (publique) 3. Lien BscScan 4. Confirmation : `deployment/addresses.json` rempli, pas de secret commité --- ## Références - [deployment/README.md](../../../tokenizerRendu/deployment/README.md) - [decisions-projet.md](../decisions-projet.md) - [sujet ch. IV](../../sujets/tokenizer.md)