Course Overview

What this Solidity course covers, how to use it, prerequisites.

A self-contained, hands-on course covering Solidity, the main language for smart contracts on Ethereum and every EVM-compatible chain: blockchain and EVM fundamentals, accounts, gas and transactions, the history of the language from 0.4 to 0.8.x, tooling (Remix, Foundry, Hardhat, solc, MetaMask), value and reference types, data locations (storage, memory, calldata, transient), functions, modifiers, events, errors, Ether transfers, inheritance, interfaces, libraries, user-defined value types, ABI encoding, low-level calls, CREATE2, storage layout, gas optimization, inline assembly (Yul), proxies and upgradeability (Transparent, UUPS, Beacon, Diamond), token standards (ERC-20, ERC-721, ERC-1155, ERC-4626, ERC-2612, EIP-712, ERC-165, ERC-4337), OpenZeppelin, security vulnerabilities with vulnerable-vs-fixed code, testing (unit, fuzz, invariant), static analysis, formal verification, auditing, DeFi, NFTs, DAOs, oracles, Layer 2s, frontend integration, deployment, and complete projects. Every chapter has compilable examples and exercises.

Course Map

Part I — Foundations Introduction to Blockchain, Ethereum & Solidity The EVM, Accounts, Gas & Transactions History & Versions (0.4 → 0.8.x)

Tools & Environment Setup (Remix, Foundry, Hardhat, solc, MetaMask) Your First Contract & Deployment

Layout of a Source File: SPDX, Pragmas, Imports, Comments Reference Types: Arrays, Bytes, Strings, Structs, Mappings

Data Locations: Storage, Memory, Calldata, Transient Operators & Control Flow Units & Global Variables State Variables, Constants & Immutables Part II — Core Language

Functions: Visibility, Mutability, Returns, Overloading, Function Types Constructors & Contract Lifecycle

Error Handling: require, revert, assert, Custom Errors, try/catch Sending & Receiving Ether Inheritance & C3 Linearization Abstract Contracts & Interfaces Libraries & Using For User-Defined Value Types & Operators ABI Encoding & Decoding

Contract Creation: new, CREATE2, Factories Part III — Advanced

Low-Level Calls: call, delegatecall, staticcall Storage Layout & Packing Inline Assembly & Yul

Proxies & Upgradeability (Transparent, UUPS, Beacon, Diamond)

Token Standards: ERC-20, ERC-721, ERC-1155, ERC-165 Advanced Standards: EIP-712, ERC-2612, ERC-4626, ERC-4337 Smart Contract Security

Testing with Foundry: Unit, Fuzz & Invariant Tests Testing with Hardhat, ethers.js & viem

Static Analysis, Formal Verification & Auditing Part IV — Ecosystem & Real-World

DeFi Patterns: AMM, Staking, Lending, Flash Loans NFTs, DAOs, Governance & Multisig Oracles, Layer 2s & EVM Chains

Frontend Integration: ethers.js, viem, wagmi Deployment, Verification & Gas Reporting Best Practices & Common Pitfalls

Appendices: Cheat Sheet, Keywords, Globals, Versions, Resources, Study Plan