Glossaire Solidity A-Z

Tous les termes essentiels de Solidity et la blockchain expliqués avec des exemples de code concrets. 58 définitions disponibles.

A

ABI (Application Binary Interface)

EVM

L'ABI est la spécification qui définit comment interagir avec un smart contract. Il décrit les fonctions, leurs paramètres, types de retour et événements au format JSON. C'est l'équivalent d'une API pour les smart contracts, permettant aux applications frontend et aux autres contrats de communiquer correctement avec le bytecode déployé sur la blockchain.

Address

Solidity

Type de données Solidity qui stocke une adresse Ethereum (20 bytes / 160 bits). Chaque compte (externe ou contrat) possède une adresse unique. C'est le type principal pour interagir avec d'autres contrats, envoyer de l'ether, ou gérer les permissions.

Alchemy

Outils

Fournisseur de nœuds Ethereum (node provider) et suite d'outils pour le développement blockchain. Propose des RPC endpoints, monitoring, webhooks, et fonctionnalités avancées comme le support multi-chain. Alternative à Infura pour se connecter aux réseaux sans héberger son propre nœud.

Approve

Standards

Fonction standard ERC-20 qui autorise un contrat (ou une adresse) à dépenser vos tokens à votre place. Nécessaire avant tout swap, staking ou interaction DeFi. Créé une allowance que le contrat peut utiliser avec transferFrom(). Attention : approuver une somme illimitée expose à des risques si le contrat est malveillant.

Assembly (Yul)

Solidity

Langage bas niveau intégré à Solidity permettant d'écrire du code au niveau de l'EVM. Utilisé pour optimiser le gas, accéder à des opcodes non exposés en Solidity classique (comme SELFBALANCE, BASEFEE), ou manipuler directement la mémoire/storage. Réservé aux développeurs avancés car sans garde-fous (pas de vérification de type).

E

Emit

Solidity

Mot-clé pour déclencher un événement (event). Les événements sont stockés dans les logs de transaction (pas dans le storage du contrat) et peuvent être écoutés par les frontends via Web3. Utilisés pour notifier les changements d'état importants. Beaucoup moins cher que stocker dans le storage.

ERC-1155

Standards

Standard multi-token permettant de gérer plusieurs types de tokens (fongibles ET non-fongibles) dans un seul contrat. Plus efficace en gas que déployer plusieurs ERC-20/721. Utilisé dans les jeux blockchain (un contrat = toutes les armes, armures, etc.). Permet les transferts batch (plusieurs tokens en une transaction).

ERC-20

Standards

Standard de token fongible le plus utilisé sur Ethereum. Définit 6 fonctions obligatoires (totalSupply, balanceOf, transfer, approve, allowance, transferFrom) et 2 événements (Transfer, Approval). Implémenté par la majorité des tokens (USDC, USDT, LINK, UNI, etc.). Permet l'interopérabilité entre tous les protocoles DeFi.

ERC-721

Standards

Standard de token non fongible (NFT) où chaque token possède un ID unique. Contrairement à l'ERC-20, les tokens ne sont pas interchangeables. Utilisé pour les NFTs d'art, les objets de jeu, les noms de domaine (ENS), etc. Définit ownerOf(), transferFrom(), approve(), et les événements Transfer/Approval.

Ethers.js

Outils

Bibliothèque JavaScript pour interagir avec Ethereum depuis le frontend ou Node.js. Alternative moderne à Web3.js : plus légère, meilleure documentation, API plus intuitive. Permet de se connecter aux wallets (MetaMask), signer des transactions, appeler des smart contracts, écouter les événements, etc.

Event

Solidity

Mécanisme pour émettre des logs depuis un smart contract. Les événements sont stockés dans les logs de transaction (EVM), pas dans le storage (beaucoup moins cher). Utilisés pour notifier le frontend des changements d'état. Les paramètres indexed (max 3) permettent de filtrer efficacement les événements.

EVM (Ethereum Virtual Machine)

EVM

Machine virtuelle qui exécute le bytecode des smart contracts. C'est l'environnement d'exécution d'Ethereum : une machine à états déterministe et répliquée sur tous les nœuds. L'EVM interprète les opcodes, gère la mémoire, le storage et le call stack. Adopté par de nombreuses blockchains (Polygon, BSC, Avalanche, Arbitrum, Optimism).

M

Mapping

Solidity

Structure de données clé-valeur (comme un dictionnaire/hashmap). Très efficace en gas, pas de limitation de taille. Pas itérable (impossible de lister toutes les clés). Stocké dans le storage du contrat. Syntaxe : mapping(KeyType => ValueType). Les clés inexistantes retournent la valeur par défaut (0, false, address(0), etc.).

Memory

Solidity

Zone de stockage temporaire utilisée pendant l'exécution d'une fonction. Moins coûteuse que le storage. Reset à chaque appel de fonction. Obligatoire pour les types complexes (arrays, strings, structs) passés en paramètres ou retournés. Déclaration : string memory, uint256[] memory, etc.

MetaMask

Outils

Wallet Ethereum le plus populaire, disponible en extension navigateur (Chrome, Firefox, Brave) et mobile. Permet de gérer des comptes, signer des transactions, interagir avec des dApps, et se connecter à plusieurs réseaux (Mainnet, testnets, L2). Injecte window.ethereum dans les pages web pour que les dApps puissent demander des connexions.

Modifier

Solidity

Fonction réutilisable qui modifie le comportement d'autres fonctions. Utilisé principalement pour les vérifications d'accès (onlyOwner) ou les conditions (whenNotPaused). Le symbole _; marque l'endroit où le code de la fonction modifiée s'exécute. Peut accepter des paramètres. Empilable : plusieurs modifiers sur une même fonction.

msg

Solidity

Variable globale Solidity contenant les informations du message/appel actuel. msg.sender = adresse de l'appelant, msg.value = montant d'ether envoyé (en wei), msg.data = calldata brute, msg.sig = signature de la fonction (4 premiers bytes de msg.data). Essentiel pour l'authentification et la gestion des paiements.

S

Selfdestruct

Solidity

Fonction pour détruire un contrat et envoyer son ether restant à une adresse. Le bytecode reste sur la blockchain (historique immuable) mais les appels futurs échouent. Coûte du gas négatif (remboursement) mais DÉPRÉCIÉ depuis EIP-6049. Ne devrait plus être utilisé dans les nouveaux contrats. Alternative : désactiver le contrat avec un flag.

Signature

Sécurité

Cryptographie à courbe elliptique (ECDSA) utilisée pour prouver la possession d'une clé privée. Une signature se compose de (v, r, s). Permet les meta-transactions, les permits (ERC-20 sans approve), les votes off-chain, etc. Standard : EIP-712 (typed structured data hashing). Vérifiable on-chain avec ecrecover().

Solc (Solidity Compiler)

Outils

Compilateur officiel Solidity qui transforme le code .sol en bytecode EVM. Disponible en CLI (solc), JavaScript (solc-js), ou intégré dans Hardhat/Foundry. Génère le bytecode, l'ABI, les métadonnées, et les optimisations. Versioning strict : pragma solidity ^0.8.0; spécifie les versions compatibles.

Storage

Solidity

Zone de stockage persistante du contrat, conservée entre les transactions. Très coûteuse en gas (SSTORE = 20k gas pour une nouvelle valeur, 5k pour une mise à jour). Organisée en slots de 32 bytes. Les variables d'état (state variables) sont stockées dans le storage. À minimiser pour optimiser le gas.

Struct

Solidity

Type personnalisé regroupant plusieurs variables sous un même nom. Similaire aux objets/structs dans d'autres langages. Peut contenir n'importe quel type (uint, address, mapping, array, autres structs). Stocké dans storage, memory ou calldata selon le contexte. Utilisé pour organiser des données complexes.

Prêt à mettre en pratique ces concepts ?

Apprends Solidity avec 1000+ exercices interactifs et un IDE intégré.

Commencer gratuitement