Files
tokenizer/docs/pedagogie/etapes/etape-01-cadrage-wallet-testnet.md
2026-10-20 09:07:47 +02:00

232 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Étape 1 — Cadrage + wallet testnet (tBNB)
> **Sujet (chapitre IV) :** choisir une blockchain ; nom du token avec **`42`** ; **pas d’argent réel** — test chains + faucet (chapitre I).
> **Pas encore de code** dans `tokenizerRendu/code/` — uniquement des **décisions** documentées côté travail.
---
## Ce que le sujet exige à ce stade
| Exigence PDF | Action étape 1 |
|--------------|----------------|
| Plateforme blockchain | Choisir et noter : **BNB Smart Chain Testnet** (recommandé partenariat BNB) |
| Nom avec `42`, pas d’insultes | Choisir **nom** + **symbole** (ticker) |
| Standard de la chaîne | Noter : **BEP-20** (équivalent ERC-20 sur BSC) |
| Pas de vrai argent | Wallet **dédié test** + **tBNB** via faucet uniquement |
| README choix (plus tard) | Préparer les décisions ici ; README école à l’étape 5 |
---
## À faire (checklist)
### A. Décisions produit (à écrire dans [decisions-projet.md](../decisions-projet.md))
- [x] **Nom** / **symbole** validés : **`FGC42Forge`** / **`FG42`** (voir [decisions-projet.md](../decisions-projet.md))
- [ ] Compléter le reste des tableaux si pas déjà fait
- [ ] **Décimales** (souvent `18` — standard ERC-20)
- [ ] **Supply** : fixe au deploy **ou** mint réservé au owner (justifier en une phrase)
- [ ] **Chaîne** : BSC Testnet, **chainId `97`**
- [ ] **Stack prévue** : Solidity + Hardhat + OpenZeppelin (pour étape 2+)
### B. Wallet de test — voir [marche à suivre détaillée](#marche-à-suivre-metamask-chrome--faucet-tbnb) ci-dessous
### C. Faucet tBNB — idem section détaillée
### D. Sécurité (dès maintenant)
- [ ] Ne **pas** committer `.env` ni clé privée (`.gitignore` rendu déjà prévu)
- [ ] Ne pas partager la **seed phrase** dans le chat 42 / Discord / Git
---
## Pourquoi on ne « crée » pas le tBNB soi-même
| Question | Réponse |
|----------|---------|
| Peut-on **générer** du tBNB comme on écrira **FGC42Forge** plus tard ? | **Non** sur le **testnet public** : le **tBNB** est la **monnaie native** de la chaîne (gas). Seuls le **réseau** (validateurs) et les **faucets** officiels / communautaires en **envoient** à ton adresse `0x…`. |
| Et en local (Hardhat) ? | Sur une chaîne **locale** (`npx hardhat node`), Hardhat te donne des ETH de test **fictifs** — utile pour coder (étape 2–3), mais le **sujet 42** exige aussi un déploiement sur une **blockchain publique** + explorer ([ch. IV](../../sujets/tokenizer.md#déploiement-2ᵉ-dossier)). Il faudra donc du **vrai testnet** tBNB à un moment. |
| Pourquoi Discord / Telegram ? | Ce ne sont pas des « contournements » : la [doc officielle BNB](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/) liste **faucet web**, **Discord**, **Telegram** et faucets tiers. Quand le site [bnbchain.org testnet-faucet](https://www.bnbchain.org/en/testnet-faucet) demande **0,002 BNB mainnet**, les autres canaux restent la voie normale. |
| Exemple projet 42 | [BdClement/Tokenizer](https://github.com/BdClement/Tokenizer) (BEP-20, BSC Testnet 97) : *« I obtained tBNB via a faucet available on the **BNB Discord server** »* + deploy Truffle / Alchemy RPC. |
Le sujet PDF (ch. I) renvoie au **BNB Chain Faucet** : en 2025–2026 l’écosystème a **resserré** les faucets web (mainnet ou réserves vides). **Demander des tBNB** = étape d’intégration Web3 réaliste, pas une erreur de parcours.
---
## Marche à suivre MetaMask (Chrome) + faucet tBNB
> Retour d’expérience projet FGC — compte **`FGC_account`**, réseau **testnet 97**, faucet **BNB 0,3**.
### 1. Installer et créer le compte
| Étape | Action |
|-------|--------|
| 1 | Installer l’extension [MetaMask](https://metamask.io) depuis le **Chrome Web Store** (site officiel uniquement). |
| 2 | **Créer un wallet** avec un **mot de passe** (déverrouille l’extension sur ce PC). |
| 3 | **Sauvegarder la seed phrase** (12 mots) : Paramètres → Sécurité → **Révéler la phrase secrète de récupération** — noter sur papier, **jamais** Git / chat / `.env`. |
| 4 | Renommer le compte (optionnel) : ex. **`FGC_account`** — un compte dédié au projet Tokenizer. |
### 2. Comprendre réseau vs adresse
| Idée | Détail |
|------|--------|
| Menu du haut MetaMask | Liste de **réseaux** (Ethereum, BNB Chain, …), pas une « adresse BNB » différente par chaîne. |
| Même compte EVM | **`FGC_account`** a **une** adresse publique `0x…` sur Ethereum, BSC testnet, etc. |
| **BNB Chain** (sans « Testnet ») | Souvent le **mainnet** (chainId **56**) → **ne pas** utiliser pour ce projet. |
| **BNB Smart Chain Testnet** | chainId **97** → réseau du sujet + **tBNB**. |
### 3. Ajouter BNB Smart Chain Testnet (souvent absent par défaut)
**Méthode manuelle**
1. MetaMask → clic sur le **nom du réseau** en haut.
2. **Ajouter un réseau** → si besoin **Ajouter un réseau manuellement**.
3. Remplir :
| Champ | Valeur |
|-------|--------|
| Nom du réseau | `BNB Smart Chain Testnet` |
| URL RPC | `https://data-seed-prebsc-1-s1.binance.org:8545/` |
| ID de chaîne | `97` |
| Symbole | **`BNB`** (évite l’avertissement MetaMask) ou `tBNB` |
| Explorateur | `https://testnet.bscscan.com` |
4. Enregistrer → **basculer** sur ce réseau.
**Alternative :** [chainlist.org](https://chainlist.org) → activer **Include Testnets** → chercher BSC Testnet (97) → Add to MetaMask.
### 4. Copier l’adresse dans MetaMask (étape A)
1. Réseau sélectionné : **BNB Smart Chain Testnet** (en haut de l’extension).
2. Compte : **FGC_account**.
3. Sous le nom du compte tu vois une ligne du type **`0x1a2b…9f0c`** (tronquée).
4. Clique cette ligne **ou** les **trois points** → **Détails du compte** → bouton **Copier** / icône copier à côté de l’adresse.
5. Tu dois obtenir **une seule chaîne** : `0x` + **40** caractères (0–9, a–f) — **pas** d’espaces, **pas** de retour à la ligne.
**Ce n’est pas :** la seed (12 mots), la clé privée, le mot de passe MetaMask, l’URL RPC, le chainId `97`.
### 4 bis. Où coller l’adresse — et où **ne pas** la coller
```
MetaMask (FGC_account) ──copier 0x…──► SITE WEB du faucet ──► ton compte reçoit tBNB
│
└── PAS dans MetaMask "Ajouter réseau" (sauf URL RPC officielle, pas ton 0x)
```
| Endroit | Coller ton `0x…` ? | Pourquoi |
|---------|-------------------|----------|
| **Site faucet** — champ « Wallet address » / « Enter your address » | ✅ **OUI** | C’est **ici** que le site envoie les tBNB. |
| **Site faucet** — bouton « Connect wallet » | ✅ **OUI** (alternative) | MetaMask remplit l’adresse tout seul — souvent plus simple. |
| MetaMask → Ajouter réseau → **URL RPC** | ❌ **NON** | On met l’URL `https://data-seed-prebsc-1-s1…`, **pas** ton adresse. |
| MetaMask → Ajouter réseau → **Chain ID** | ❌ **NON** | On met `97`, pas `0x…`. |
| Fichier `.env` à l’étape 1 | ❌ **pas obligatoire** | Plus tard : **clé privée** (autre format), pas l’adresse seule pour Hardhat. |
| [decisions-projet.md](../decisions-projet.md) | ✅ **OUI** (suivi perso) | Pour documenter ton étape 1. |
| Barre de recherche **testnet.bscscan.com** | ✅ (pour **vérifier**) | Pas pour recevoir des tBNB — seulement pour voir ton solde. |
### 5. Faucet — QuickNode (recommandé si erreur mainnet)
1. Ouvre **dans Chrome** (pas dans MetaMask) : https://faucet.quicknode.com/binance-smart-chain/bnb-testnet
2. Vérifie que la page indique **Binance Smart Chain** + **Testnet** (pas Mainnet).
3. **Option 1 — la plus simple :** bouton **Connect wallet** → choisis **MetaMask** → compte **FGC_account** → autorise.
4. **Option 2 :** champ du type **« Drop in your wallet details »** / adresse → **colle** le `0x…` copié à l’étape 4.
5. Passe captcha / Continue → confirme la demande.
6. **Ne colle pas** l’adresse dans un menu déroulant « Token » (BNB/BTC) : le token **BNB** est ce qu’on **reçoit**, pas un champ d’adresse.
### 5 bis. Faucet officiel BNB (si tu l’utilises malgré tout)
1. Ouvrir [BNB Chain Testnet Faucet](https://www.bnbchain.org/en/testnet-faucet).
2. Grand champ **adresse du wallet** (souvent au centre) → **colle `0x…`**.
3. Ensuite seulement : choisir token **BNB** et montant **0,3** → bouton **Request** / **Send**.
- **Token : BNB** (sur testnet = **tBNB**, pas de valeur réelle).
- **Montant : 0,3 BNB** — suffisant pour deploy + démos.
- **Ne pas** choisir BTC / autres tokens pour ce projet (inutiles sur BSC testnet).
4. Valider (captcha / connexion si demandé).
5. Attendre 1–5 min → MetaMask sur réseau **Testnet** : solde **tBNB** ≈ 0,3.
6. Noter dans `decisions-projet.md` : **tBNB reçu : oui** + date.
### 6. Dépannage rapide
| Problème | Piste |
|----------|--------|
| Pas de « Testnet » dans la liste | Ajout **manuel** (§ 3), pas seulement « BNB Chain ». |
| Faucet OK mais solde 0 | Mauvais réseau sélectionné dans MetaMask (revenir à **97**). |
| Adresse invalide sur BscScan | Re-copier l’adresse sans espace. |
| Limite faucet | Réessayer plus tard (souvent 1× / 24 h). |
| **« less than 0.002 BNB on BSC Mainnet »** | Le [faucet BNB officiel](https://www.bnbchain.org/en/testnet-faucet) exige parfois un peu de **BNB mainnet** sur la même adresse — **inutile d’acheter** pour le sujet 42 (pas d’argent réel). Utiliser un **faucet alternatif** (§ 7). |
| **QuickNode : « Low balance for this chain and network »** + **Continue** grisé | Souvent le **faucet QuickNode est à sec** (plus de tBNB côté serveur), **pas** que tu as mal connecté MetaMask. Réessayer plus tard ou utiliser **Discord / Telegram** (§ 7 bis). |
### 7. Faucets alternatifs (sans BNB mainnet)
Aligné sujet : **testnet uniquement**, pas d’achat de BNB réel.
| Faucet | URL | Remarque |
|--------|-----|----------|
| **QuickNode** (recommandé) | https://faucet.quicknode.com/binance-smart-chain/bnb-testnet | Réseau **Testnet**, coller `0x…` ou connecter MetaMask ; pas de solde mainnet requis (cooldown ~12 h). |
| **Bot Telegram BNB Chain** | [@bnbchain_official_bot](https://t.me/bnbchain_official_bot) | Message du type : `I would like to get tBNB to my wallet 0x…` — voir [doc officielle](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/). |
| **Discord BNB Chain** | Serveur officiel (ticket support) | Même idée que Telegram — doc ci-dessus. |
| Chainstack | https://faucet.chainstack.com/bnb-testnet-faucet | **Évite** si tu n’as pas **0,002 ETH mainnet** (même type de blocage). |
Après toute source : vérifier le solde **tBNB** sur MetaMask (réseau **97**) et sur https://testnet.bscscan.com.
### 7 bis. Discord BNB Chain (si QuickNode + officiel bloqués)
Souvent le moyen le plus fiable quand les faucets web sont vides ou demandent du mainnet :
1. Rejoindre le **Discord officiel** BNB Chain (lien depuis [bnbchain.org](https://www.bnbchain.org/) ou [doc faucet](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/)).
2. Canal **#roles** → prendre le rôle **Developer** (ou les rôles proposés) pour voir **#testnet-faucet**.
3. Dans **#testnet-faucet** : commande **`/faucet`** → coller ton adresse `0x…` (compte **FGC_account**).
4. Limite typique : ~0,3 tBNB / jour.
**Telegram :** [@bnbchain_official_bot](https://t.me/bnbchain_official_bot) — message : `I would like to get tBNB to my wallet 0x…`
### 8 bis. Avertissement MetaMask « symbole du jeton natif » (tBNB vs BNB)
**Symptôme :** icône ⚠️ *« Il pourrait s’agir d’une arnaque »* — *vous avez saisi **tBNB** alors que le symbole attendu…*
| Cause | Ce n’est en général **pas** une arnaque si : |
|-------|---------------------------------------------|
| Tu as ajouté le réseau **manuellement** avec symbole **tBNB** | MetaMask compare au **registre** des chaînes (chainId **97** = symbole officiel souvent **BNB**, pas `tBNB`). |
| Ta tx BscScan est **Success** sur **Bsc Testnet** | Comme ta capture : 0,1 **BNB** reçu de `0xF2D4…` → `0xB6bE…` — c’est le **bon** testnet. |
**Correction (retour d’expérience FGC) :**
1. Vérifier le **nom exact** du réseau : **`BNB Smart Chain Testnet`** (pas de faute, pas d’espaces parasites dans RPC / chainId).
2. Chain ID **`97`**, explorer **testnet.bscscan.com**.
3. Symbole **`tBNB`** ou **`BNB`** selon ce que MetaMask accepte sans ⚠️ — les deux désignent le gas testnet.
4. Le solde (ex. **0,1 tBNB**) ne change pas après correction du réseau.
**À ne pas faire :** supprimer le réseau en paniquant ; **ne pas** « ignorer » des tx inconnues — ici tu as **vérifié** le hash sur testnet.bscscan.com.
### 9. BNB ou tBNB sur l’écran du faucet ?
Sur le **testnet**, quand le faucet affiche **« BNB »**, tu reçois bien du **tBNB** (gas de test). MetaMask peut l’afficher en **tBNB** une fois le réseau **Testnet (97)** sélectionné. Pas besoin d’une ligne « tBNB » séparée sur le site.
### 10. Fichier `.env` (pas à l’étape 1 obligatoire)
| Emplacement | Usage |
|-------------|--------|
| `tokenizer/.env` à la racine | Éviter d’y mettre la **seed** ; racine déjà dans `.gitignore`. |
| `tokenizerRendu/code/.env` | **Étape 2+** : `PRIVATE_KEY` du compte **test** pour Hardhat uniquement. |
**Ne jamais committer** `.env`. La clé privée (MetaMask → Détails du compte → Afficher la clé privée) = compte test seulement, plus tard pour deploy.
---
## Livrable pour demander la vérification
Quand tout est fait, envoie dans le chat :
1. « Étape 1 terminée »
2. Le **nom** et **symbole** du token
3. Confirmation : **tBNB** visible (sans donner ta clé privée)
4. *(Optionnel)* les 4 premiers caractères de ton adresse publique pour qu’on vérifie que `decisions-projet.md` est cohérent
L’assistant lira [decisions-projet.md](../decisions-projet.md) et validera avant l’**étape 2** (projet Hardhat dans `tokenizerRendu/code/`).
---
## Références
- [Sujet — partie obligatoire](../../sujets/tokenizer.md#chapitre-iv--partie-obligatoire)
- [BNB / faucet](../../sujets/tokenizer.md#faucet-testnet)
- [BEP-20 / ERC-20](../../sujets/tokenizer.md#erc-20-et-bep-20-éclaircissement)