A focused learning path containing 86 selected core Solidity topics, grouped into their relevant subject folders. This README and its diagram cover the core list only.
Scope note: This is a curated learning-priority map, not an official 86-item Solidity specification. Advanced topics such as standalone Yul and inline assembly are intentionally outside this core list.
The 86 numbered Solidity topics remain the primary learning order. The Blockchain Concepts roadmap is a support reference: study only the EVM, ABI, storage, architecture, transaction, or RPC concepts that help with the Solidity topic you are working on. Do not wait to complete all six blockchain stages before starting Solidity.
📚 Companion prerequisite repository: Blockchain Concepts Learning Roadmap — open the repository containing the six relevant stages. You can also open the concepts directory and browse the stages.
➡️ Open the complete Solidity ↔ Blockchain Concepts Prerequisite Map — includes a topic-by-topic table for all 86 items, readiness labels, direct links to the exact prerequisite articles in the six-stage blockchain concepts repository, and recommended checkpoints.
- None — no blockchain-specific prerequisite is needed to learn the Solidity feature.
- Familiarity — understand the basic mechanism; a deep dive can wait.
- Required before deep study — learn the linked concepts before expecting to explain the feature's runtime behavior confidently. You can still study its Solidity syntax earlier.
- Study alongside / revisit — useful context or a later deepening point, not a blocker.
The links in the last column open the relevant stage inside the Blockchain Concepts Learning Roadmap, which contains the six stages used by this guide.
| Solidity topics | Focus | Blockchain concepts to prioritize |
|---|---|---|
| 1–34 | Solidity language foundations | Start coding; no blockchain prerequisite for most topics. Optional reference: the six-stage Blockchain Concepts roadmap. |
| 35–59 | Contracts, functions, inheritance, events, and errors | Use Stage 01 — EVM Execution, Stage 02 — ABI and Contract Interaction, and selected Stage 04 — Smart Contract Architecture concepts as needed. |
| 60–63 | Storage, Memory, Calldata, and data layout | Deep study: Stage 01 — EVM Execution + Stage 03 — Storage and Data Layout. |
| 64–76 | Global values, hashing, deployment, and contract calls | Prioritize Stage 01 — EVM Execution and Stage 02 — ABI and Contract Interaction; add Stage 03 — Storage and Data Layout, Stage 04 — Smart Contract Architecture, and Stage 05 — Advanced Transactions and Gas where relevant. |
| 77–80 | Function selectors and ABI encoding | Deep study: Stage 02 — ABI and Contract Interaction, plus calldata/returndata concepts in Stage 01 — EVM Execution and Stage 03 — Storage and Data Layout. |
| 81–85 | Compiler, bytecode, arithmetic, rollback, and language semantics | Focus on Solidity/compiler behavior; use Stage 01 — EVM Execution and Stage 05 — Advanced Transactions and Gas to explain runtime effects. |
| 86 | External calls and reentrancy | Integration checkpoint: Stage 01 — EVM Execution + Stage 02 — ABI and Contract Interaction + Stage 03 — Storage and Data Layout + Stage 04 — Smart Contract Architecture. Add Stage 05 — Advanced Transactions and Gas for Gas and failed-transaction context. |
Application connectivity is learned when it becomes useful. You do not need to finish JSON-RPC, transaction signing, or node concepts before writing Solidity. Prioritize Stage 06 — Application Connectivity when you begin connecting a website or another external application to your contracts.
- ✅
01-solidity-source-files.md - ✅
02-spdx-license-identifier.md - ✅
03-pragma-and-solidity-version.md - ✅
04-import-directives.md
- ✅
05-identifiers-and-keywords.md 06-literal-syntax.md07-declaration-syntax.md08-expression-block-and-statement-syntax.md
12-state-variables.md13-local-variables.md14-function-parameters-and-return-variables.md15-initialization-and-default-values.md16-state-variable-visibility.md17-constant-and-immutable-variables.md
18-bool-type.md19-uint-and-int-types.md20-address-and-address-payable.md21-bytes-and-string-types.md22-fixed-and-dynamic-arrays.md23-mapping-type.md
24-arithmetic-operators.md25-comparison-and-equality-operators.md26-logical-operators.md27-bitwise-and-shift-operators.md28-assignment-increment-and-decrement.md29-conditional-operator.md30-delete-operator.md
31-if-and-else-statements.md32-for-while-and-do-while-loops.md33-break-and-continue-statements.md34-return-and-function-exit.md
35-contract-definition-and-body.md36-constructor.md37-receive-and-fallback-functions.md38-structs.md39-enums.md40-interfaces.md41-abstract-contracts.md
42-function-declaration-and-signature.md43-function-calls-and-return-values.md44-function-visibility.md45-view-pure-and-payable.md46-function-modifiers.md47-function-overloading.md48-virtual-and-override.md
54-events-and-emit.md55-indexed-event-parameters-and-log-topics.md56-require-input-validation.md57-revert-and-custom-errors.md58-assert-and-panic-errors.md59-try-catch.md
60-storage-memory-and-calldata.md61-copying-and-referencing-arrays-and-structs.md62-storage-slots-and-packing.md63-mapping-and-dynamic-array-storage-layout.md
64-ether-and-time-units.md65-msg-global-variables.md66-block-global-information.md67-keccak256-and-hashing.md68-address-balance-and-code.md69-tx-origin-vs-msg-sender.md
70-contract-creation-with-new.md71-external-interface-calls.md72-call-options-value-and-gas.md73-call-delegatecall-and-staticcall.md74-ether-transfer-with-call-and-result-checking.md75-call-context-and-msg-sender.md76-receive-and-fallback-dispatch.md86-external-calls-control-transfer-and-reentrancy.md
77-function-signatures-and-selectors.md78-abi-encode-and-decode.md79-abi-encodepacked-and-encoding-ambiguity.md80-calldata-and-returndata-structure.md
83-checked-and-unchecked-arithmetic.md84-revert-and-transaction-state-rollback.md85-expression-evaluation-order-and-short-circuit.md
- Study the topics in sequence, using the numbered filenames as a checklist.
- For each topic, learn the concept, write a small example, and test both expected and failing behavior.
- Keep each topic file focused on one subject at a time.
- Add more advanced Solidity and EVM topics after the core concepts are understood.