0Pricing
Web3 & DApp Development Fundamentals · Leçon

Stockage, mémoire, pile

Emplacements des données de l’EVM

Stockage, mémoire, pile est une leçon Web3 & DApp Development Fundamentals gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Web3 & DApp Development Fundamentals, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Where Data Lives in the EVM

The EVM has several distinct places to keep data, each with different costs and lifetimes.

The three core data locations are the stack, memory, and storage. Choosing the right one is key to writing efficient contracts.

The Stack

The stack is the EVM's scratchpad for computation. It holds up to 1024 values of 256 bits each.

Opcodes push and pop from the top of the stack. It is extremely cheap but tiny and temporary.

PUSH1 0x02   // [2]
PUSH1 0x04   // [2, 4]
MUL          // [8]
// stack vanishes when the call ends

Memory

Memory is a temporary, linear byte array that exists only during a single transaction call.

It is used for things too big for the stack, like building a string or an array. It resets to empty when the call finishes.

memory[0x00..0x20] = some value
// readable/writable during the call
// erased after execution ends

Storage

Storage is the contract's permanent state, kept on the blockchain between transactions.

It is a key-value store mapping 256-bit slots to 256-bit values. State variables in a contract live here.

storage slot 0 -> owner address
storage slot 1 -> total supply
storage slot 2 -> paused flag
// persists forever on-chain

Cost Comparison

Cost rises sharply by location:

  • Stack — cheapest, a few gas per op
  • Memory — cheap, grows with size
  • Storage — very expensive, especially first writes

Why Storage Is Expensive

Storage writes are costly because every node must persist them forever. A fresh storage write (SSTORE) can cost 20000 gas.

This is why developers minimize storage writes and prefer memory for temporary work.

Storage Slots and Packing

Storage is organized into 32-byte slots. Smaller variables can be packed into one slot to save gas.

For example, two uint128 values fit together in a single 256-bit slot.

slot 0: [ uint128 a | uint128 b ]
// two values packed into one slot
// saves a storage slot = saves gas

Calldata

A fourth location, calldata, holds the read-only input data of a transaction or call.

It is the cheapest place to read function arguments and cannot be modified, making it ideal for inputs you only need to read.

Choosing the Right Location

Rules of thumb:

  • Use the stack for short-lived computation
  • Use memory for temporary structures
  • Use storage only for data that must persist
  • Use calldata for read-only inputs

Lifetime Summary

Each location has a different lifetime:

  • Stack and memory — die when the call ends
  • Storage — persists permanently on-chain
  • Calldata — exists for the duration of the call, read-only

Putting It Together

The EVM separates data into stack, memory, storage, and calldata, ordered roughly from cheapest and shortest-lived to most expensive and permanent.

Smart developers keep persistent storage writes to a minimum.

Quick Check

Test your knowledge of EVM data locations.

Recap: Storage, Memory, Stack

You learned that:

  • The stack is cheap, tiny, and temporary
  • Memory is temporary scratch space for a call
  • Storage is permanent but expensive
  • Calldata is cheap, read-only input

Next: opcodes in detail.

Questions Fréquemment Posées

La leçon « Stockage, mémoire, pile » est-elle gratuite ?

Oui — le texte complet de « Stockage, mémoire, pile » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Web3 & DApp Development Fundamentals, passe à CoddyKit PRO. Le cours Web3 & DApp Development Fundamentals comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Stockage, mémoire, pile » ?

Emplacements des données de l’EVM Tu pratiques Web3 & DApp Development Fundamentals avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Web3 & DApp Development Fundamentals ?

Aucune expérience préalable n'est requise. Web3 & DApp Development Fundamentals sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Stockage, mémoire, pile » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Web3 & DApp Development Fundamentals ?

Oui. Chaque leçon Web3 & DApp Development Fundamentals inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Machine virtuelle Ethereum
  2. Stockage, mémoire, pile
  3. Opcodes
  4. Comptes et état
← Retour à Web3 & DApp Development Fundamentals