Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Web3 101
Section 1: Introduction and Overview
Lecture 1: Welcome to the course (5:43)
Lecture 2: About the instructor (3:07)
Lecture 3: What is a Web3 developer path? (2:32)
Lecture 4: Course Resources
Section 2: Welcome to Blockchain
Lecture 1: Before Web3.0 and Blockchain: History of the Web (10:04)
Lecture 2: Learn the basic concepts of blockchain - Immutable and Distributed ledger (7:53)
Lecture 3: Blockchain Consensus - PoW and PoS (4:32)
Lecture 4: How does bitcoin actually work? (6:21)
Lecture 5: What is ethereum and how does it work? (4:45)
Lecture 6: Transactions, Addresses and Wallets (7:37)
Lecture 7: Make your first blockchain transaction (8:50)
Lecture 8: Smart Contracts: Software on the blockchain (5:59)
Lecture 9: The “Hello World” smart contract (10:48)
Lecture 10: Gas, transactions and Ethereum accounts (11:17)
Lecture 11: What is the Ethereum Virtual Machine? (5:39)
Lecture 12: What is a Decentralized application(DApp)? (10:21)
Lecture 13: General Intro: Solidity, Web3.js, Ethers.js, Remix, Hardhat, Truffle, Ganache, Infura, Etherscan (6:35)
Section 3: Solidity Basics in Remix
Lecture 1: Right mindset for learning Solidity (3:37)
Lecture 2: Basics of Solidity by Example: Voting Contract (11:39)
Lecture 3: Basics of Solidity by Example: Auction Contract (9:09)
Lecture 4: Structure of a smart contract (8:58)
Lecture 5: Writing a Simple Contract (8:13)
Exercise 5: Simple Contract
Lecture 6: Value Types (9:44)
Lecture 7: Built-in variables and functions (7:32)
Exercise 7: Built in Vars and Funcs
Lecture 8: Constructor (3:35)
Exercise 8: Constructor
Lecture 9: Control structures: if-else, for, while, do-while (16:59)
Exercise 9: Control Structures
Lecture 10: Scoping and Declarations (5:28)
Exercise 10: Scoping and Declaration
Lecture 11: Functions (16:08)
Exercise 11: Functions
Lecture 12: Variable and Function Visibility (8:51)
Lecture 13: Function Modifiers (4:51)
Exercise 13: Function Modifiers
Lecture 14: Memory, Storage and Calldata (10:13)
Exercise 14: Data Location
Lecture 15: Arrays (8:46)
Exercise 15: Arrays
Lecture 16: Structs (7:11)
Exercise 16: Structs
Lecture 17: Mapping (10:31)
Exercise 17: Mapping
Lecture 18: Dealing with errors: require, throw (11:21)
Exercise 18: Errors
Lecture 19: Revisiting Voting and Auction contracts (6:15)
Section 4: Writing Simple and Complete Contracts
Lecture 1: Intro to Ether wallet smart contract (1:56)
Lecture 2: Build, Deploy and Test the Ether wallet smart contract (11:50)
Exercise 1: Update the Ether wallet smart contract
Lecture 3: Intro to Escrow smart contract (11:58)
Lecture 4: Build, Deploy and Test the Escrow smart contract on Remix (10:46)
Exercise 3: Update the Escrow smart contract
Lecture 5: Build a Lottery smart contract - Create a betting round function (10:31)
Lecture 6: Build a Lottery smart contract - Pick a winner via random function (9:17)
Lecture 7: Build a Lottery smart contract - Bet and cancel the round functions (5:15)
Lecture 8: Build a Lottery smart contract - Deploy and Test the functions (12:40)
Exercise 5: Update the Lottery smart contract
Lecture 9: Deploy smart contracts to a testnet (11:17)
Section 5: DApp development & Testing with React.js, Hardhat and Solidity
Lecture 1: Intro to the section and demo on the DApp being built
Lecture 2: Install the dependencies (9:30)
Lecture 3: Structure of the Ether Wallet DApp code - React Component (5:46)
Lecture 4: Structure of the Ether Wallet DApp code - Hardhat Component (10:44)
Lecture 5: Playing around with Hardhat (8:16)
Lecture 6: Creating tasks with Hardhat (5:25)
Lecture 7: Write a simple test function for initial deployment of the contract (10:42)
Lecture 8: Running the tests with Hardhat (6:22)
Lecture 9: Connect Metamask with the Hardhat Network (4:22)
Lecture 10: Build the Ether Wallet frontend - Part 1 - Create a Connect to Metamask button using bootstrap (7:04)
Lecture 11: Build the Ether Wallet frontend - Part 2 - Implement the functionality for Connect to Metamask (9:42)
Lecture 12: Build the Ether Wallet frontend - Part 2.5 - Display address and balance correctly (4:56)
Lecture 13: Build the Ether Wallet frontend - Part 3 - Build connection to our EtherWallet.sol contract on the Hardhat network (8:08)
Lecture 14: Build the Ether Wallet frontend - Part 4 - Creating a form for the Deposit function (5:29)
Lecture 15: Build the Ether Wallet frontend - Part 5 - Implement the Deposit function of the EtherWallet smart contract (10:14)
Lecture 16: Write tests for the deposit and withdraw functions of the contract (10:36)
Exercise 16: Update the DApp by implementing withdraw functionality
Section 6: Deep dive into Solidity
Lecture 1: Introduction to the section
Lecture 2: Events and Logging (11:18)
Exercise 2: Events
Lecture 3: Custom Errors in Solidity (7:06)
Exercise 3: Custom Errors
Lecture 4: Inheritance in Solidity (10:22)
Exercise 4: Inheritance
Lecture 5: Abstract contracts and Interfaces (7:51)
Exercise 5: Abstract Contracts
Lecture 6: Libraries (3:29)
Lecture 7: Using For (2:54)
Exercise 7: Using For
Lecture 8: Three ways to send Ether - call, send, transfer (10:34)
Exercise 8: Send Ether
Lecture 9: Calling parent contracts (7:55)
Lecture 10: Calling other contracts (7:43)
Exercise 10: Calling other contracts
Lecture 11: Contract that creates other contracts (9:15)
Exercise 11: Contract that creates other contracts
Lecture 12: Difference between string and bytes in Solidity (9:11)
Section 7: Connect your DApp to multiple networks
Lecture 1: Using RainbowKit to build a Web3 DApp (9:05)
Lecture 2: Preparing our EtherWallet DApp for modification (11:00)
Lecture 3: Integrate wagmi library on src/index.js file (9:27)
Lecture 4: Integrate RainbowKit library on src/App.js file (4:15)
Lecture 5: Add hardhat network to list of supported networks (9:50)
Lecture 6: Implement deposit function using wagmi library (9:13)
Lecture 7: Using Alchemy node to deploy EtherWallet Smart contract to Goerli testnet (2:40)
Exercise 7: Update the DApp by implementing withdraw functionality
Section 8: Project - Multisignature Wallet
Intro to Multisignature wallet DApp
Exercise 2: Smart Contract: Initialize state variables
Exercise 3: Smart Contract: Constructor and modifiers
Exercise 4: Smart Contract: Deposit and Withdraw
Exercise 5: Smart Contract: Retrieve the transaction status
Exercise 6: Hardhat: Create a react project with hardhat integration
Exercise 7: Frontend Development: Build UI for the Multisig Wallet DApp
Demo of the entire application (8:05)
Section 9: Openzeppelin Integration
Lecture 1: Intro to Openzeppelin
Lecture 2: Create ERC20 token (4:10)
Lecture 3: Decimals function in ERC20 tokens (9:18)
Lecture 4: Explaining different ERC20 functions (8:50)
Lecture 5: Deploy ERC20 token and test in Remix (7:52)
Lecture 6: ERC20 Extensions like Burnable, Pausable, etc (8:41)
Lecture 7: SafeERC20 and TokenTimeLock (5:55)
Lecture 8: Create ERC777 using Openzeppelin (11:40)
Lecture 9: Create ERC721 token (3:21)
Lecture 10: Explaining different ERC721 functions (11:28)
Lecture 11: Deploy ERC721 token and test in Remix (8:14)
Lecture 12: ERC721 Extensions like Burnable, Pausable, etc (6:35)
Lecture 13: Using ERC721URIStorage for helper URI functions (8:10)
Lecture 14: Openzeppelin wizard to auto generate Solidity code (2:22)
Lecture 15: Create ERC1155 token (9:11)
Lecture 16: Using Ownable contract for Access Control (4:52)
Lecture 17: Using AccessControl contract for Access Control (8:03)
Lecture 18: Testing AccessControl contract in Remix (9:58)
Lecture 19: Utilities contracts in Openzeppelin (10:16)
Section 10: Final Project - Smart Staking Wallet
Intro to Smart Staking Wallet DApp
Exercise 2: Smart Contract: Write Smart Staking Wallet smart contract
Exercise 3: Smart Contract: Run tests to make sure your contract works as expected
Exercise 4: Frontend Development: Build UI for the Smart Staking Wallet DApp
Exercise 5: Deploy the app to production connecting to the testnet
Demo of the entire application (12:35)
Section 11: Closing and Summary
Finished the course. Now what? (4:31)
Lecture 11: Functions
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock