(Mastering) Solidity, the Ethereum Programming Language
Requirements
-
I try to make this course as accessible as possible and prior programming experience is not strictly required, but certainly useful.
-
For Chapters 3 – 5 that explain tools to work with Solidity, it would be good to be familiar with JavaScript.
-
For Chapter 6 that shows how to make a user interface that interacts with a smart contract deployed on the Ethereum blockchain, it would be good to be familiar with JavaScript and other web technologies
Description
This course aims to give an overview of what you need to know to program in Solidity.
The course consists of two parts:
- In the first part, I explain best practices about developing Solidity code, without explaining the Solidity language much. The idea of the first part is to get you quickly started programming Solidity code.
- In the second part, I explain the Solidity language in depth.
The first part of the course is ready and consists of the chapters 2 – 6. I have recorded the videos for the Sepolia testnet. Before the Sepolia testnet is end-of-life in Q4 2026, I will record the videos again for the following Ethereum testnet.
In chapter 2, I explain some basic theory for people who do not know what a blockchain is.
In chapter 3 – 5, I explain tools that are used to develop blockchain applications:
- These chapters explain the development tools Hardhat and Remix.
- You will see Solidity code for making your own cryptocurrency.
- You will see the JavaScript libraries ethers.js and web3.js that are used to interact with the Ethereum blockchain.
- You will see how you can connect a wallet with a blockchain application. I will show MetaMask, which is a popular wallet and also WalletConnect, which acts as a bridge to connect multiple kinds of wallets with an application. I will also show how you can transfer cryptocurrencies in MetaMask.
- You will see how to set up a local test blockchain on your computer and also how to interact with an Ethereum testnet on the Internet.
- You will see how you can register and configure an Ethereum Name.
In chapter 6, I show how you can make a user interface that interacts with the Ethereum blockchain through the ethers.js library, it shows
- how to retrieve the address of a smart contract through an Ethereum Name
- how to read data from the blockchain through a default provider
- how to connect MetaMask or a wallet through WalletConnect with the user interface
- how to execute functions that write data to the blockchain through a connected wallet
- how to search for events emitted by a smart contract
I am still working on the second part of the course that consists of all the chapters beginning from chapter 7. I will add more chapters over time. At the time of writing I have the following chapters online:
- Chapter 7 that explains what the following chapters of this part will be.
- Chapter 8 that explains the lexical elements of Solidity.
- Chapter 9 that explains an SPDX license and pragma directives
Who this course is for:
- Aspiring Solidity developers