# Tokenizer — Build your own token > **Version :** 1.1 > **Résumé :** Exercice lié au **Web3**. > **Traduction française** — source : [tokenizer_subject.pdf](originaux/tokenizer_subject.pdf) --- ## Table des matières 1. [Chapitre I — Avant-propos](#chapitre-i--avant-propos) 2. [Chapitre II — Introduction](#chapitre-ii--introduction) 3. [Chapitre III — Objectifs](#chapitre-iii--objectifs) 4. [Chapitre IV — Partie obligatoire](#chapitre-iv--partie-obligatoire) 5. [Chapitre V — Bonus](#chapitre-v--bonus) 6. [Chapitre VI — Rendu et évaluation par les pairs](#chapitre-vi--rendu-et-évaluation-par-les-pairs) 7. [Éléments visuels du PDF](#éléments-visuels-du-pdf) 8. [Éclaircissements (lecture facilitée)](#éclaircissements-lecture-facilitée) --- ## Page de garde (PDF page 1) | Champ | Texte officiel (EN) | Traduction | |-------|---------------------|------------| | Titre | Tokenizer | Tokenizer | | Sous-titre | Build your own token | Construis ton propre token | | Résumé | This document is a Web3 related exercise. | Ce document est un exercice lié au **Web3** → voir [définition détaillée](../pedagogie/02-web3-comprendre.md). | | Version | 1.1 | 1.1 | ### Référence visuelle — couverture ![Page de garde](captures/page-01.png) | Zone | Description | |------|-------------| | Illustration centrale | Motif vertical en facettes (style low-poly), tons gris/noir — **élément graphique 42**, pas une maquette de smart contract | | Fond | Motif géométrique léger (triangles) sur toutes les pages | | En-têtes | « Tokenizer » à gauche, « Build your own token » à droite | --- ## Chapitre I — Avant-propos Ce sujet est réalisé en **partenariat entre 42 et BNB Chain**. **BNB Chain** (*Build N Build*) est un réseau blockchain distribué sur lequel développeurs et innovateurs peuvent construire des **applications décentralisées (DApps)** dans la mouvance **Web3**. En octobre 2022 (chiffres du sujet), BNB Chain était parmi les plus grands réseaux de smart contracts au monde en volume de transactions et utilisateurs actifs quotidiens : plus de 3 milliards de transactions, 232 millions d’adresses uniques, plus de 1 500 DApps actives. La nature **décentralisée** du réseau permet de déployer un produit **sans permission** centrale et d’atteindre un large public. ### Faucet (testnet) Tu peux obtenir des **tBNB** (BNB de **test**, sans argent réel) via le faucet officiel : - [BNB Chain Faucet](https://www.bnbchain.org/en/testnet-faucet) (lien cité dans le sujet : *BNB Chain Faucet*) ### BNB, Binance et BNB Chain Le sigle **BNB** désigne à la fois l’**écosystème blockchain** du sujet (**BNB Chain**, *Build N Build*) et la **monnaie native** utilisée pour payer le **gas**. Sur testnet, on utilise **tBNB** (sans valeur réelle). **Rapport avec Binance :** oui, **historiquement** — Binance a lancé et porté cet écosystème (l’actif s’appelait souvent *Binance Coin* ; la chaîne s’appelait **Binance Smart Chain**, **BSC**). Aujourd’hui la communication officielle parle surtout de **BNB Chain** comme réseau pour développeurs et DApps. Ce n’est **pas** le même produit que l’application d’**échange** Binance : pour Tokenizer, tu n’as en principe **pas besoin** d’un compte Binance — wallet + **testnet** + faucet suffisent. | Terme | En bref | |-------|---------| | **Binance** | Exchange centralisé (entreprise) | | **BNB Chain / BSC** | Blockchain smart contracts (ton déploiement) | | **BEP-20** | Standard de **ton** token sur cette chaîne | | **BscScan (testnet)** | Explorateur pour prouver le contrat déployé | → Développement détaillé : [section 10 — BNB, BNB Chain et Binance](../pedagogie/02-web3-comprendre.md#10-bnb-bnb-chain-et-binance-partenaire-du-sujet). ### Référence visuelle — Figure I.1 (PDF page 2) ![Chapitre I — BNB Chain](captures/page-03.png) | Zone | Description | |------|-------------| | Logo | Hexagone jaune + mention **BNB CHAIN** | | Légende | *Figure I.1: https://www.bnbchain.org/* — site officiel de l’écosystème | | Message implicite | Le partenaire du sujet pousse vers l’écosystème **BSC / BNB** ; le standard token y est **BEP-20** (équivalent fonctionnel d’**ERC-20** sur Ethereum) | --- ## Chapitre II — Introduction Bienvenue dans le monde de la **technologie blockchain**. Tu vas pouvoir **créer ton propre token numérique**. La blockchain permet de créer et distribuer des actifs numériques uniques (**tokens**) : monnaie, parts, représentation d’œuvres, ou lien avec un actif du monde réel (selon le design que tu documentes). Ce n’est pas trivial : il faut comprendre ce que tu déploies. Avec les bonnes ressources (testnet, faucet, outils), c’est un projet formateur et concret. ### Référence visuelle (PDF page 3) ![Introduction — illustration token / puce](captures/page-04.png) | Zone | Description | |------|-------------| | Illustration | Style « peinture numérique » : **jeton doré** sur une base type **puce / circuit** | | Sens | Métaphore **hardware + actif numérique** — le token est un programme (smart contract) exécuté par le réseau, pas un simple fichier | --- ## Chapitre III — Objectifs En participant à ce projet, tu contribues à la création d’un **actif numérique on-chain**. Le sujet te challenge sur : - la maîtrise d’**au moins un langage** lié à ta chaîne (ex. **Solidity** pour BSC/ETH) ; - la familiarité avec une **blockchain publique** (réseau, explorer, adresses, transactions) ; - l’**adaptation** : pas besoin d’être cryptographe expert au départ, mais tu dois apprendre en chemin. Objectif final : compétences utiles + participation à un écosystème innovant (Web3). ### Référence visuelle (PDF page 4) ![Objectifs](captures/page-05.png) | Zone | Description | |------|-------------| | Illustration | Jetons / pièces stylisées — rappel que le livrable est un **token** avec règles économiques et techniques définies par **toi** (dans les contraintes du sujet) | --- ## Chapitre IV — Partie obligatoire Pour créer un token, plusieurs exigences techniques et organisationnelles s’appliquent. ### Contraintes sur le token | Règle | Détail | |-------|--------| | **Nom** | Libre, mais le nom doit contenir **`42`** | | **Insultes** | Interdites — sanctions école | | **README racine** | Fichier **`README.md`** à la racine du dépôt **école** : expliquer tes **choix** et **pourquoi** | | **Standard** | Respecter le standard de la chaîne (**ERC-20** sur Ethereum, **BEP-20** sur BSC, etc.) | | **Argent réel** | **Jamais** demandé — utiliser des **chaînes de test** | ### Plateforme et outils 1. Choisir une blockchain qui supporte la création de tokens. 2. Maîtriser le langage et la toolchain de cette chaîne : **IDE**, **Remix**, **Hardhat**, **Truffle**, etc. ### Code (`code/`) - Dossier **`code/`** à la **racine** du dépôt école. - Code **commenté**, noms de variables et fonctions **lisibles**. - En soutenance : **revue de code** (*code review*). ### Démonstration et sécurité Tu dois pouvoir faire des **actions minimales** qui prouvent que le token fonctionne. Réfléchir explicitement à la **sécurité** : **propriété** (*ownership*), **privilèges** (qui peut mint, pause, transférer des rôles, etc.). ### Déploiement (2ᵉ dossier) - Tout le nécessaire au **déploiement** dans un **second dossier** à la racine — le sujet donne l’exemple **`deployment/`** (nom libre mais structure claire attendue). - Déployer sur une **blockchain publique** (en pratique : **testnet public** pour ne pas dépenser de vrai argent). - Définir le **ticker** (symbole, ex. `TK42`) et **publier** le contrat sur un **explorateur** (ex. **BscScan**, **Blockscan** selon la chaîne). - Dans le dépôt Git : indiquer l’**adresse du smart contract** et le **réseau** utilisé. ### Documentation (`documentation/`) - Dossier **`documentation/`** à la racine du dépôt école. - On doit comprendre **comment ça marche** et **comment utiliser** le token. - Envisager un contenu type **whitepaper** léger : rôle du token, fonctionnalités, limites. - La doc sera **relue en évaluation** — claire et explicite. ### Vidéo démo (optionnelle) - Pas obligatoire ; **ne améliore pas la note**. - Si tu en fais une : **lien** dans le README suffit (pas besoin de pousser la vidéo dans Git). ### Encadrés d’avertissement (PDF pages 5–7) ![Partie obligatoire — extraits](captures/page-06.png) | Encadré | Message | |---------|---------| | Rose / ⚠️ | **Revue de code** pendant l’évaluation | | Rose / ⚠️ | Documentation **claire** — relue en eval | | Bleu / ℹ️ | Vidéo : **lien** seulement, pas le fichier dans le repo | | Rose / ⚠️ | Vidéo **non requise**, pas de bonus de note | ### Arborescence attendue (exemple officiel, PDF page 7) ![Structure du dépôt](captures/page-08.png) ``` README.md code/ deployment/ # nom d’exemple ; un autre nom explicite est possible si le sujet l’accepte en soutenance documentation/ ``` → Dans ce dépôt perso, le paquet école est préparé dans [`../../tokenizerRendu/`](../../tokenizerRendu/). --- ## Chapitre V — Bonus Pour renforcer la sécurité (ex. transactions sensibles), tu peux implémenter un **multisig** (*multisignature*) : plusieurs signataires doivent approuver une action avant exécution. - Smart contract dédié ou extension adaptée à **ta** partie obligatoire. - Définir le **nombre de signatures** et **qui** peut signer. ### ⚠️ Règle bonus Le bonus n’est évalué **que si la partie obligatoire est PARFAITE** (intégrale, sans dysfonctionnement). Une seule exigence obligatoire manquante → **bonus non évalué**. ![Bonus multisig](captures/page-09.png) --- ## Chapitre VI — Rendu et évaluation par les pairs Dépôt Git habituel. **Seul le contenu du dépôt** est évalué. Vérifier **noms de dossiers et fichiers**. Exception : le sujet **recommande** de partager le projet sur un **compte Git personnel** une fois valide (hashtags `#web3`, langage, etc.) — **en plus** du rendu Vogosphere, pas en remplacement. ![Rendu](captures/page-10.png) --- ## Éléments visuels du PDF | Page PDF | Fichier | Contenu visuel | |----------|---------|----------------| | 1 | [page-01.png](captures/page-01.png) | Couverture | | 2 | [page-03.png](captures/page-03.png) | Texte BNB + logo Figure I.1 | | 3 | [page-04.png](captures/page-04.png) | Introduction + illustration token | | 4 | [page-05.png](captures/page-05.png) | Objectifs + illustration | | 5–6 | [page-06.png](captures/page-06.png), [page-07.png](captures/page-07.png) | Partie obligatoire, encadrés | | 7 | [page-08.png](captures/page-08.png) | Exemple `ls -al` | | 8 | [page-09.png](captures/page-09.png) | Bonus | | 9 | [page-10.png](captures/page-10.png) | Soumission | *(La page PDF « Contents » / table des matières correspond visuellement à [page-02.png](captures/page-02.png).)* --- ## Éclaircissements (lecture facilitée) Ces points ne sont pas toujours explicites dans le PDF ; ils servent de fil conducteur pour le [guide de réalisation](../pedagogie/guide-realisation.md). | Terme | En bref | |-------|---------| | **Token** | Contrat intelligent qui suit une norme (souvent **20** : solde, `transfer`, `approve`, etc.) | | **BEP-20 / ERC-20** | Interface standard ; sur BSC testnet, BscScan reconnaît les tokens BEP-20 | | **Déploiement** | Transaction qui enregistre le bytecode du contrat sur la chaîne → **adresse** unique | | **tBNB** | Monnaie native de **test** pour payer le gas sur BNB Smart Chain testnet | | **Ownership** | Souvent `Ownable` (OpenZeppelin) : qui peut `mint`, changer des paramètres, etc. | | **Démo minimale** | Ex. : lire `name`, `symbol`, `totalSupply` ; `transfer` ; éventuellement `mint` si prévu — montrable sur explorer + script ou Remix | | **3 dossiers** | `code` = source ; `deployment` = scripts, config réseau, adresses déployées ; `documentation` = guide **utilisateur** du token (distinct de `docs/` du dépôt perso) | **Chaîne recommandée (alignée partenaire sujet)** : **BNB Smart Chain Testnet** + Solidity + BEP-20. Autre chaîne EVM possible si tu justifies en README et respectes le standard équivalent. --- ## Prochaine étape → [Plan de réalisation](../pedagogie/README.md) · [Apports pédagogiques](../pedagogie/01-apports-pedagogiques.md)