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