← All languages
Solidity
The EVM contract language — compiled for real with solc in your browser.
Theory — 50 written topics
Prefer to read first? The written Solidity topics and their multiple-choice questions now live under the Learn tab.
Open Solidity theory →Easy
Lessons 1-20 — fundamentals
- 1. Hello, SolidityYour first contract — store and return a string.
- 2. Numbers & uintUnsigned integers and basic arithmetic.
- 3. Booleans & ifBranching with boolean expressions.
- 4. Addresses & msg.senderTrack the contract owner.
- 5. MappingsKey/value storage.
- 6. Dynamic ArraysPush, length, indexed access.
- 7. StructsGroup related fields.
- 8. EnumsNamed constants.
- 9. For loopsSum an array.
- 10. require & revertGuard your functions.
- 11. ModifiersReusable access checks.
- 12. EventsEmit logs for off-chain readers.
- 13. view vs pureState-read vs state-free.
- 14. Constructors with argsInitialize state on deploy.
- 15. receive & fallbackAccept plain ether transfers.
- 16. Strings & bytesCompare strings via hashing.
- 17. Global variablesblock.timestamp, block.number.
- 18. Removing from an arraySwap & pop technique.
- 19. constant & immutableCheap storage alternatives.
- 20. Multiple return valuesTuples and destructuring.
Medium
Lessons 21-37 — patterns and real code
- 21. InheritanceExtend a base contract.
- 22. virtual & overridePolymorphism in Solidity.
- 23. Abstract contracts & interfacesDefine contracts to implement.
- 24. Libraries & using forAttach helpers to a type.
- 25. Custom errorsCheaper reverts than strings.
- 26. try / catchHandle external call failures.
- 27. ERC-20 TokenThe fungible token standard.
- 28. ERC-721 NFTNon-fungible tokens.
- 29. ERC-1155 Multi-tokenMany token IDs in one contract.
- 30. Role-based access controlMultiple admins, not just owner.
- 31. Pausable patternEmergency stop switch.
- 32. Reentrancy guardBlock recursive calls.
- 33. Checks-Effects-InteractionsOrder matters when sending ether.
- 34. Signature verificationUse ecrecover to authenticate signers.
- 35. Merkle proof verificationVerify membership cheaply.
- 36. Low-level call & delegatecallForward arbitrary calldata.
- 37. Payment splitterDistribute ether proportionally.
Hard
Lessons 38-50 — advanced and capstone
- 38. Minimal proxy (EIP-1167)Cheap clones of an implementation.
- 39. Upgradeable storage layoutEIP-1967 implementation slot.
- 40. CREATE2 deterministic deployPredict addresses before deploy.
- 41. Inline assembly basicsRead storage directly.
- 42. Bitmap booleansPack 256 booleans into one slot.
- 43. Flash loan providerLend within a single tx.
- 44. Constant-product AMMUniswap V2 swap formula.
- 45. EIP-2612 permit (typed data)Gasless approvals via signed messages.
- 46. N-of-M multisigConfirm before executing.
- 47. Linear vestingRelease tokens over time.
- 48. Governor patternOn-chain voting.
- 49. LayerZero OFT skeletonOmnichain fungible tokens.
- 50. Capstone — Staking + RewardsCombine everything you learned.