Blockchain & Smart Contracts (Solidity)
Learn blockchain and Solidity: the EVM and gas, contract design, ERC-20 and NFTs, upgrades, oracles, security and audits, Foundry testing and dApps.
Start course →
What you'll learn
- Explain how blockchains, Ethereum accounts, the EVM, gas fees, keys and layer 2s work.
- Write Solidity contracts with correct types, data locations, functions, modifiers, events and errors.
- Design contracts with inheritance, interfaces, libraries, OpenZeppelin and role-based access control.
- Implement ERC-20, ERC-721 and ERC-1155 tokens, pull payments, upgradeable proxies and oracle integrations.
- Prevent reentrancy and other common vulnerabilities with secure patterns, fuzzing, invariants and audits.
- Test, deploy, verify and optimise contracts with Foundry and Hardhat, and connect dApp front ends with viem and wagmi.
Syllabus
Blockchain and Ethereum Foundations
- What a Blockchain Is
- Ethereum, the EVM, Accounts and Gas
- Keys, Wallets, Testnets and Layer 2s
Solidity Basics
- Your First Contract
- Types, Mappings and Structs
- Functions, Modifiers, Events and Errors
Contract Design and Reuse
- Storage, Memory, Calldata and Transient Storage
- Inheritance, Interfaces, Abstract Contracts and Libraries
- OpenZeppelin and Access Control
Token Standards
- ERC-20 Fungible Tokens
- ERC-721 NFTs
- ERC-1155, Signatures and Merkle Allowlists
Ether, External Calls and Upgrades
- Sending and Receiving Ether
- Calling Other Contracts and Upgradeability
- Oracles, Time and Randomness
Smart Contract Security
- Reentrancy and Checks-Effects-Interactions
- Common Vulnerabilities
- Security Process: Testing, Tools and Audits
Development Tooling and Deployment
- Foundry: forge, cast and anvil
- Hardhat, ethers.js and viem
- Deploying, Verifying and Operating Contracts
Gas, dApps, DeFi and Revision
- Gas Optimisation
- Building dApp Front Ends
- DeFi Building Blocks and Layer 2s
- Revision and Interview Questions