232 lines
14 KiB
Markdown
232 lines
14 KiB
Markdown
# É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)
|