Tokenizer
Création du token GOLD42 (G42) sur la BNB Smart Chain Testnet : mon premier smart contract.
Présentation
Un token BEP-20 GOLD42 (G42) déployé sur la BNB Smart Chain Testnet : solde, transferts, autorisations, création et destruction de tokens, le tout sur la blockchain.
Contexte
Projet solo réalisé dans le cadre du partenariat 42 × BNB Chain.
L'objectif : comprendre concrètement le fonctionnement d'une blockchain en créant, testant et déployant un token BEP-20 réel sur un réseau de test, sans jamais engager d'argent réel.
Mon rôle
Projet 100 % solo, mené de bout en bout :
- Conception de la tokenomics : supply plafonnée, répartition 80 % / 20 %
- Rédaction du smart contract
g42.solen Solidity - Déploiement sur la BSC Testnet via Remix + MetaMask
- Vérification du code source sur BscScan
- Rédaction de la documentation (livre blanc, guide de déploiement, tutoriel pas à pas)
Architecture
Un contrat unique GOLD42 qui hérite de l'implémentation ERC20 d'OpenZeppelin (standard de référence). L'héritage fournit les fonctions natives : transfer, approve, transferFrom, balanceOf, totalSupply.
Le contrat ajoute sa logique métier : un mécanisme de propriété maison (onlyOwner), un mint plafonné par la supply maximale, un burn public et un transfert de propriété protégé.
GOLD42 is ERC20 (OpenZeppelin)
├── from ERC20 : transfer, approve, transferFrom, balanceOf, totalSupply…
├── mint() : création de tokens, réservée au propriétaire, plafonnée
├── burn() : destruction de ses propres tokens, public
└── transferOwnership() : changement de propriétaire, refuse l'adresse zéro
Technologies
Solidity ^0.8.0
Typé et compilé pour l'EVM
OpenZeppelin Contracts
l'implémentation ERC-20 de référence
Remix IDE
IDE en ligne pour écrire et compiler le contrat
MetaMask
portefeuille connecté (Injected Provider)
BscScan Testnet
explorateur et vérification du contrat
BNB Smart Chain Testnet
blockchain EVM, Chain ID 97
Fonctionnalités
| Fonction | Rôle | Accès |
|---|---|---|
transfer(to, amount) | Envoyer des G42 | Tous |
balanceOf(account) | Consulter un solde | Lecture |
approve(spender, amount) | Autoriser un tiers à dépenser | Tous |
transferFrom(from, to, amount) | Dépenser via une autorisation | Spender autorisé |
mint(recipient, amount) | Créer des G42 (limité au plafond) | Propriétaire |
burn(amount) | Détruire définitivement ses propres G42 | Tous |
transferOwnership(newOwner) | Transférer la propriété du contrat | Propriétaire |
Problème | Solution
| Problème | Solution |
|---|---|
| Comprendre la blockchain avant d'écrire une ligne de code | Assimiler les concepts clés - wallet, gas, transaction, explorateur de blocs - via la documentation du dépôt |
| Manipuler les unités avec précision | Travailler en unités de base (wei) : 1 G42 = 10^18, pas en décimales flottantes |
| Garantir une offre prédictible | Supply plafonnée absolue dans le contrat : mint() rejette tout dépassement de 1 000 000 G42 |
| Sécuriser les actions sensibles | Modificateur onlyOwner maison : seuls mint et transferOwnership sont restreints au propriétaire |
| Déployer sans argent réel | Testnet BSC + faucet de tBNB gratuit - zéro argent réel engagé |
Résultats
- Smart contract déployé et vérifié sur BscScan :
0xB03B454DDa79A522603f2a21471A6bC6B24dDb80 - 1 000 000 G42 de supply maximale, 800 000 (80 %) créés au déploiement, 200 000 (20 %) mintables par le propriétaire
- 18 décimales, coût de déploiement : 0,001544511 BNB
- Token importable dans MetaMask : transferts et échanges testés entre wallets
Ce que j'ai appris
La blockchain n'est pas magique : chaque transaction est un appel de fonction sur un contrat, et le vrai coût est la compréhension des unités (wei) et de la gestion de la propriété.
Débugger un smart contract est radicalement différent du C : pas de printf, pas de gdb ; il faut raisonner sur l'état du contrat avant de le déployer.
Tutoriel : Créer votre token BEP-20
Tu veux reproduire ce projet ? Consulte ce tutoriel qui couvre l'intégralité du processus, de l'installation de MetaMask à la vérification sur BscScan.