Skip to main content
Explore
Log in
Get started
Someone wanted to learn this too, so Grasp built them a personal learning path.
Create your own
Ethereum development in 2026
Module 1
Ethereum & Smart Contract Fundamentals
1
EVM Execution Environment: Memory, Storage, and Stack
Describe the Ethereum Virtual Machine (EVM) execution environment, including the roles of memory, storage, and the stack.
Describe the Ethereum Virtual Machine (EVM) execution environment, including the roles of memory, storage, and the stack.
2
Transaction Lifecycle Explained
Explain the transaction lifecycle, from creation and signing to inclusion in a block.
Explain the transaction lifecycle, from creation and signing to inclusion in a block.
3
Understanding Gas and EIP-1559
Analyze the factors determining transaction cost (gas) and the fee market mechanism (EIP-1559).
Analyze the factors determining transaction cost (gas) and the fee market mechanism (EIP-1559).
4
EOAs vs. Smart Contract Accounts
Differentiate between Externally Owned Accounts (EOAs) and Smart Contract Accounts.
Differentiate between Externally Owned Accounts (EOAs) and Smart Contract Accounts.
Module 2
Modern Development & Testing Toolchain
5
Hardhat & TypeScript Setup
Set up a Hardhat development environment with TypeScript configuration.
Set up a Hardhat development environment with TypeScript configuration.
6
Foundry Fundamentals: Fast, Native Testing & Deployment
Configure Foundry for fast, Solidity-native testing and deployment workflows.
Configure Foundry for fast, Solidity-native testing and deployment workflows.
7
Foundry vs. Hardhat: Testing Philosophies and Workflows
Compare the testing philosophies and workflows of Foundry (Solidity-scripted) and Hardhat (JavaScript/TypeScript-scripted).
Compare the testing philosophies and workflows of Foundry (Solidity-scripted) and Hardhat (JavaScript/TypeScript-scripted).
8
Local Blockchain Setup with Mainnet Forking
Set up local blockchain nodes using Anvil or Hardhat Network with mainnet forking capabilities.
Set up local blockchain nodes using Anvil or Hardhat Network with mainnet forking capabilities.
9
Unit Testing: Happy Path, State Changes, and Return Values
Write unit tests for a contract's happy path, covering state changes and return values.
Write unit tests for a contract's happy path, covering state changes and return values.
10
Testing Reverts and Custom Errors
Write tests for failure conditions, including expected reverts with custom errors.
Write tests for failure conditions, including expected reverts with custom errors.
11
Testing Event Emissions
Write tests to verify correct event emission and parameter values.
Write tests to verify correct event emission and parameter values.
12
Fuzz Testing with Foundry
Implement fuzz testing with Foundry to discover edge cases in contract logic.
Implement fuzz testing with Foundry to discover edge cases in contract logic.
13
Testing Multi-Contract Interactions
Write integration tests for multi-contract interactions within a single protocol.
Write integration tests for multi-contract interactions within a single protocol.
14
Test Coverage Analysis
Perform test coverage analysis to ensure comprehensive test suites.
Perform test coverage analysis to ensure comprehensive test suites.
Module 3
Advanced Solidity & Secure Development
15
Custom Errors for Gas Optimization
Implement custom errors to replace require/revert strings for gas optimization and improved developer experience.
Implement custom errors to replace require/revert strings for gas optimization and improved developer experience.
16
Preventing Reentrancy with Checks-Effects-Interactions
Apply the Checks-Effects-Interactions pattern to prevent reentrancy attacks.
Apply the Checks-Effects-Interactions pattern to prevent reentrancy attacks.
17
Reentrancy Auditing with Slither and Manual Review
Audit contracts for reentrancy vulnerabilities using static analysis (Slither) and manual review.
Audit contracts for reentrancy vulnerabilities using static analysis (Slither) and manual review.
18
Implementing and Auditing Access Control with OpenZeppelin
Implement access control using OpenZeppelin's AccessControl and Ownable patterns, and audit for common flaws.
Implement access control using OpenZeppelin's AccessControl and Ownable patterns, and audit for common flaws.
19
Preventing Arithmetic Over/Underflow in Unchecked Blocks
Identify and prevent arithmetic issues (overflow/underflow), particularly when using unchecked blocks for gas optimization.
Identify and prevent arithmetic issues (overflow/underflow), particularly when using unchecked blocks for gas optimization.
20
Efficient Event Querying with Indexed Parameters
Use events with indexed parameters for efficient off-chain data querying.
Use events with indexed parameters for efficient off-chain data querying.
21
Upgradeability Patterns: Trade-offs and Choices
Compare different upgradeability patterns (e.g., Transparent vs. UUPS) and their trade-offs.
Compare different upgradeability patterns (e.g., Transparent vs. UUPS) and their trade-offs.
22
Implementing UUPS Upgradeable Contracts
Implement an upgradeable contract using the UUPS proxy pattern.
Implement an upgradeable contract using the UUPS proxy pattern.
Module 4
Fungible Tokens & DeFi Primitives
23
ERC-20 Token with Mint, Burn, and Pause
Implement an ERC-20 token with mint, burn, and pausable functionality.
Implement an ERC-20 token with mint, burn, and pausable functionality.
24
Implementing ERC-2612 Permits for Gasless Approvals
Add permit functionality (ERC-2612) to an ERC-20 token for gasless approvals.
Add permit functionality (ERC-2612) to an ERC-20 token for gasless approvals.
25
Building an AMM: The Constant Product Swap
Implement the core swap logic of an Automated Market Maker (AMM) using the constant product formula (x * y = k).
Implement the core swap logic of an Automated Market Maker (AMM) using the constant product formula (x * y = k).
26
Time-Based ERC-20 Staking Rewards
Build a staking contract for an ERC-20 token with a time-based reward distribution mechanism.
Build a staking contract for an ERC-20 token with a time-based reward distribution mechanism.
27
Building the Lending Pool: Deposit & Borrow
Implement core lending pool functions for depositing collateral and borrowing assets.
Implement core lending pool functions for depositing collateral and borrowing assets.
28
Integrating a Price Oracle for Collateralization Ratios
Integrate a price oracle (e.g., Chainlink) to calculate an account's collateralization ratio.
Integrate a price oracle (e.g., Chainlink) to calculate an account's collateralization ratio.
29
Liquidating Underwater Debt
Implement the liquidation logic to repay underwater debt and seize collateral.
Implement the liquidation logic to repay underwater debt and seize collateral.
30
DeFi Front-End Data Architecture
Architect the data flow for a DeFi front-end, handling asynchronous state, transaction confirmations, and potential chain reorganizations.
Architect the data flow for a DeFi front-end, handling asynchronous state, transaction confirmations, and potential chain reorganizations.
Module 5
NFTs & Marketplace Ecosystems
31
Building an ERC-721 NFT Contract
Build an ERC-721 NFT contract with metadata URI management.
Build an ERC-721 NFT contract with metadata URI management.
32
Building an ERC-1155 Multi-Token Contract
Implement an ERC-1155 multi-token contract for combined fungible and non-fungible assets.
Implement an ERC-1155 multi-token contract for combined fungible and non-fungible assets.
33
Decentralized Storage for NFT Metadata
Integrate decentralized storage (e.g., IPFS) for NFT metadata, managing on-chain URIs and off-chain asset retrieval.
Integrate decentralized storage (e.g., IPFS) for NFT metadata, managing on-chain URIs and off-chain asset retrieval.
34
Merkle Proof Allowlist for NFT Minting
Implement an NFT mint with an allowlist using Merkle proofs.
Implement an NFT mint with an allowlist using Merkle proofs.
35
Implementing ERC-2981 Royalties
Implement on-chain royalty mechanisms using the ERC-2981 standard.
Implement on-chain royalty mechanisms using the ERC-2981 standard.
36
Building an NFT Marketplace Smart Contract
Build the smart contract logic for a simple NFT marketplace supporting fixed-price listings and purchases.
Build the smart contract logic for a simple NFT marketplace supporting fixed-price listings and purchases.
37
Implementing an Auction System in the Marketplace Contract
Extend the marketplace contract to support a basic auction system, including placing bids and settling the auction.
Extend the marketplace contract to support a basic auction system, including placing bids and settling the auction.
38
Dynamic NFTs: Responding to On-Chain Events
Implement a dynamic NFT that changes its metadata based on on-chain state or external events.
Implement a dynamic NFT that changes its metadata based on on-chain state or external events.
Module 6
The Multi-Chain Ecosystem: L2s & Interoperability
39
Deploying to Ethereum Layer 2 Networks
Deploy and verify a contract to an Ethereum Layer 2 network (e.g., Arbitrum, Optimism).
Deploy and verify a contract to an Ethereum Layer 2 network (e.g., Arbitrum, Optimism).
40
Cross-Chain Communication: Architectures and Security Trade-offs
Describe the architectures and security trade-offs of different cross-chain communication patterns (e.g., native bridges, third-party protocols).
Describe the architectures and security trade-offs of different cross-chain communication patterns (e.g., native bridges, third-party protocols).
41
Sending Cross-Chain Messages
Implement a simple contract on a source chain that sends a message using a generic messaging protocol (e.g., LayerZero, CCIP).
Implement a simple contract on a source chain that sends a message using a generic messaging protocol (e.g., LayerZero, CCIP).
42
Receiving and Processing Cross-Chain Messages
Implement a corresponding contract on a destination chain that receives and processes the message.
Implement a corresponding contract on a destination chain that receives and processes the message.
43
Cross-Chain Communication Scripting
Write a script to deploy and test the end-to-end cross-chain communication flow between two testnets.
Write a script to deploy and test the end-to-end cross-chain communication flow between two testnets.
Module 7
Advanced On-Chain Optimization & Operations
44
Gas Optimization: Storage Packing & Calldata Efficiency
Apply gas optimization techniques using storage packing and efficient use of calldata.
Apply gas optimization techniques using storage packing and efficient use of calldata.
45
Optimizing Solidity with Yul for Gas Efficiency
Rewrite a Solidity function using a Yul assembly block to reduce gas costs for complex operations.
Rewrite a Solidity function using a Yul assembly block to reduce gas costs for complex operations.
46
Reusable Deployment Scripts for Multiple Networks
Author a reusable deployment script (e.g., using Hardhat-deploy) for multiple networks.
Author a reusable deployment script (e.g., using Hardhat-deploy) for multiple networks.
47
Deploying UUPS Proxies for Upgradeable Contracts
Integrate a UUPS proxy pattern into a deployment script to manage contract upgrades.
Integrate a UUPS proxy pattern into a deployment script to manage contract upgrades.
48
Monitoring Your Smart Contracts
Set up a monitoring service (e.g., Tenderly, OpenZeppelin Defender) to observe a deployed contract.
Set up a monitoring service (e.g., Tenderly, OpenZeppelin Defender) to observe a deployed contract.
49
Custom Alerts for Critical Events
Configure custom alerts for critical contract events and function failures.
Configure custom alerts for critical contract events and function failures.
Module 8
Account Abstraction & Gasless Transactions
50
Gasless Transactions with EIP-2771
Implement gasless transactions using a relayer-based meta-transaction pattern (EIP-2771).
Implement gasless transactions using a relayer-based meta-transaction pattern (EIP-2771).
51
Gasless Transactions with ERC-4337 Paymasters
Build a gasless transaction flow using Account Abstraction (ERC-4337) with a Paymaster.
Build a gasless transaction flow using Account Abstraction (ERC-4337) with a Paymaster.
52
Relayers vs. Account Abstraction: Gasless Transactions
Compare relayer-based meta-transactions (EIP-2771) with native account abstraction (ERC-4337) for enabling gasless user experiences.
Compare relayer-based meta-transactions (EIP-2771) with native account abstraction (ERC-4337) for enabling gasless user experiences.
53
ERC-4337 Roles: Bundler, EntryPoint, and Paymaster
Describe the roles of the Bundler, EntryPoint, and Paymaster in the ERC-4337 ecosystem.
Describe the roles of the Bundler, EntryPoint, and Paymaster in the ERC-4337 ecosystem.