to get notified when new material releases.
Why Learn the EVM?
What the EVM is and why you should learn it.
About This Course
What to expect out of this course and how to navigate it.
Demystifying EVM Opcodes
A primer for what you will learn in this course.
The Ethereum Virtual Machine
What a virtual machine is and how it differs from an actual machine.
Why the EVM is important to Web3
All the ways the industry is using, adopting, and extending the EVM.
The Execution Environment
How and why context matters.
Binary and Types
How the EVM sees and works with real data.
Working with the Stack
The central structure of all operations.
Working with Memory
When your data is too large to fit onto the stack.
Working with Contract Storage
The method and costs to contract data persistence.
How Contract Deployment Works
The somewhat unintuitive way the EVM handles contract deployments.
Deploying via an EOA Transaction
How the ecosystem of smart contracts began.
Deploying via the CREATE Opcode
Contracts deploying contracts.
CREATE vs CREATE2
The advantages and security implications of the newer EVM opcode.
Deployment Through a Multisig
An advanced way to deploy contracts, with some Solidity-specific details.
How EVM Function Calls Work
The entire process at a high level.
The CALL opcode
The foundation of contract-to-contract communication.
CALL vs STATICCALL vs DELEGATECALL
Similar functionality, more secure.
Built-in EVM Functions
Contract functions that were baked into the chain.
Why Learn ABI Encoding?
The standardizing data encoding that is used everywhere.
The Anatomy of an ABI-Encoded Function Call
Understand how contracts talk to each other.
ABI Encoding for Common Types
Learn to see the Matrix.
ABI Encoding in Solidity
How the popular language uses ABIs behind the scenes.
Decoding Function Calls in Opcodes
Demystify them at the lowest level.
The Simplest Smart Contract
Look ma, no solidity!
The Greeter Contract
A reimplementation of the classic generated contract.
Internal Function Calls
How internal function calls are implemented in Solidity.
How Storage Slots Work
Learn how Solidity chooses storage keys and compacts storage data.
How Solidity Implements Mappings
Why you can't iterate a mapping's keys.
How Solidity Implements Strings and Bytes
How strings vary in number of words required.
How Solidity Implements Arrays
How dynamic arrays can exist in storage.
How Solidity Manages Memory
Interesting facts about Solidity's memory management.
Sign up for our newsletter to get notified when we release more advanced content for Solidity and EVM developers – Certora, Zero Knowledge, Solidity pitfalls, and more.