Ethereum Application Developers Course

The goal of this course is to provide the methods, skills, tools, and techniques so you can successfully create dAPPs on the Ethereum blockchain.
Ethereum Developers Course

Testimonials

This course is not just teaching a project.

Yadi

⭐️⭐️⭐️⭐️⭐️ “This course is not just teaching a project. The course is teaching everything you possibly want to know about Solidity. I'm halfway through section 4, and blown away! Thank you!”

Hands on course. Thank you Thomas

Alfred

⭐️⭐️⭐️⭐️⭐️ “It was a very hands on course. Thank you Thomas for bringing the right mix of theory, and practice to keep it engaging till the end.

This course helped me to get up to speed with blockchain.

⭐️⭐️⭐️⭐️⭐️ “I am a complete newbie, however this course helped me to get up to speed with blockchain. The course is well structured & comprehensive, with all the required study materials added.”

Course curriculum

  • 1

    Section 1: Welcome to Ethereum blockchain application development

  • 2

    Section 2: Transactions, Wallets and Hashing Step by Step

    • How to install MetaMask and get Ether into the Wallet

    • Assignment: Download, Install and Configure MetaMask

    • Look behind the scenes: MetaMask, Infura, Blockchain nodes and the Ledger

    • Send your first transaction using MetaMask

    • Behind the Scenes: Ethereum Transactions and Signatures, Private/Public

    • Assignment: Send Ether between Accounts in MetaMask

    • See how blocks are chained together: Cryptographic Hashing explained

    • Assignment: Observe how Blocks are linked together

    • Knowledge Check - Quiz for Section 2 – Transactions, Wallets and Hashing Step by Step

  • 3

    Section 3: Learning Solidity (the programming language for Ethereum) Step by Step with Labs

    • Lab - Creating your first Smart Contract

    • Assignment: Create your First Smart Contract

    • Create your first Smart Contract – explained

    • Lab – Understanding Blockchain Nodes

    • Understanding Blockchain Nodes – explained

    • Assignment: Deploy Smart Contracts into Ganache

    • Assignment: Download: Solidity Variables Cheat Sheet

    • Lab: Variables – (Unsigned) Integers in Solidity

    • Lab: Variables – Booleans

    • Lab: Variables – Understanding Integer wrap around

    • Lab: Variables – Addresses and Balances

    • Lab: Variables – Strings in Solidity

    • Solidity Value type variables – explained

    • Assignment: Understand simple variables in Solidity

    • Lab: Understanding Address and the Msg-Object – step by step

    • Addresses and the Global Msg-Object – explained

    • Assignment: Addresses and the global Msg.Object

    • Lab: Starting, Stopping, Pausing and Deleting Smart Contracts

    • Assignment: Starting, Stopping, Pausing and Deleting …

    • LAB: Introduction to Mappings

    • Assignment: Simple Mappings

    • Lab: Understanding Mapping by Example

    • Lab: Understanding Solidity Structs - Step by Step

    • Mappings, Structs and Arrays - Explained!

    • Assignment: Understanding Mappings and Structs

    • Lab: Exception handling in Solidity - Require + Assert

    • Exception: Require Assert Revert - Explained

    • Assignment: Exception Handling – Require Assert and Revert

    • Lab: Constructor, the Fallback Function and View/Pure Getter Functions

    • Constructor, the Fallback Function and View/Pure Getter Functions - explained

    • Assignment: Constructor, Fallback Function and View/Pure

    • LAB: Modifier, Inheritance, Importing of files

    • Modifier, Inheritance, Importing of files - explained

    • LAB: Events and Return Values

    • Events and Return Variables - Explained

    • LAB: The ABI Array, Debugging and Gas

    • ABI Array, Debugging and Gas – Explained

    • Understanding Gas and Gas Costs Step By Step

    • LAB: Libraries and Using

    • Libraries and Using… – Explained

    • Update: Solidity 0.6.0 Breaking Changes Walkthrough

    • Knowledge Check - Quiz for Section 3 – Learning Solidity (the programming language) Step by Step with Labs

  • 4

    Section 4: Solidity Project – Create a Shared Wallet

    • Introduction to the Project we are developing

    • Step 1: Define the basic smart contract

    • Step 2: Securing the Smart Contract

    • Step 3: Re-Using OpenZeppelin Smart Contract

    • Step 4: Add allowance Functionality

    • Step 5: Add Reduce Allowance

    • Step 6: Improve Smart Contract Structure for better Audibility

    • Step 7: Add Events for the Allowance Smart Contract

    • Step 8: Add Event for Simple Wallet Smart Contract

    • Step 9: Add the SafeMath Library

    • Step 10: Renounce Renounce/Ownership Functionality

    • Step 11: The Final Smart Contract from our Project

    • Congratulations you have completed this project

  • 5

    Section 5: Understanding Web3.js and Browser – Smart Contract Interaction

    • Installing NodeJS to get our environment set up

    • Use Web3.js in the Node Console to send Ether from one account to the other

    • Use Web3.js in the Node Console to interact with Smart Contracts

    • Using Web3.js with Chrome to interact with Smart Contracts – step by step

    • Behind the Scenes: Web3.js, Blockchain nodes, RPC, IPC, WebSocketet

    • knowledge Check - Quiz for Section 5 – Understanding Web3.js and Browser – Smart Contract Interaction

  • 6

    Section 6: Supply Chain Project

    • Project Introduction: This is what we are building

    • A demo of the final Smart Contract Functionality

    • Solidity Part: Implement Approach 1 for Payment Notifications

    • Solidity Part: Test Approach 1 for Payment Notifications

    • Solidity Part: Approach 2: Separate Items

    • Solidity Part: Add Own able Functionality

    • Truffle: Introduction to the Truffle Framework and Truffle Boxes

    • The Truffle React Box – Explained

    • Replace Smart Contracts in the Truffle React Box

    • Modify the App.js and HTML part in the React Box

    • Implement the add-item functionality to our Smart Contracts for item-tracking

    • Add Event-Triggers to Track Payments and start the delivery process

    • Create Unit-Tests in Truffle to maintain code-quality

    • Congratulations you have completed this project

  • 7

    Section 7: Project Tokenization

    • Project Tokenization Introduction – What we are building

    • Assignment: Download the Full Project Walk-through here

    • Fungible vs Non-Fungible tokens summarized

    • This is how we approach this Project – The implementation path

    • Step 1 - Install Truffle and initialize our Project using Truffle Boxes

    • Step 2 - Add in the ERC20 Smart Contracts from OpenZeppelin

    • Step 3 - Add in the Migration for Truffle Smart Contracts

    • Step 4 - Add unit test using Mocha, Chai, Chai-Expert and Chai-as-promised

    • Step 5 - Add more unit tests

    • Step 6 - Add the Crowdsale Smart Contract

    • Step 7 - How to use the Crowdsale Smart Contract

    • Step 8 - Add Migration

    • Step 9 - Fix the Unit Test

    • Step 10 - Consolidate our configuration on Truffle using the Dotenv Package

    • Step 11 - Write the Crowdsale Unit Test using Mocha and Chai

    • Step 12 - Fix multiple Truffle tests using a common set up

    • Step 13 - Add the remaining unit tests into our Crowdsale

    • Step 14 - Add in a Know Your Customer (KYC) checking

    • Step 15 - Adapt the Frontend for our TokenSale App

    • Step 16 - Add the KYC Whitelisting to the Frontend

    • Step 17 - Fixing Common Errors with Accounts Contracts and Private Keys

    • Step 18 - Use the Truffle HDWallet Provider to deploy Smart Contracts

    • Step 19 - Buy Tokens using MetaMask

    • Step 20 - Display Tokens within MetaMask

    • Step 21 - Display and Buy Tokens via the Website using Web3,js

    • Step 22 - Deployment of the Smart Contracts to Ropsten using Infura

    • Congratulations you have completed this project and this is the end of the course

  • 8

    What is Next?

    • This is the end of the course - here is what is next

  • 9

    Resources for: Section 2 - Transactions - Wallet and Hashing step by step

    • Assignment - Download and install MetaMask

    • Download and Install a Wallet and send your first transaction

    • Send a Transaction using your Wallet

    • Assignment - Observe how blocks are linked

  • 10

    Resources for: Section 3 - Learning Solidity Step by Step with Labs

    • Create your first Smart Contract_Solidity

    • Blockchain Network

    • Variables

    • Accounts and Addresses

    • Starting Stopping Updating Smart Contracts

    • Mappings Introduction

    • Complex Variables Mappings and Structs

    • Exception Handling

    • Functions Constructor Fallback

    • Modifier

    • Events

    • Understanding the Compiler and the ABI

    • Libraries

  • 11

    Resources for: Section 4 - Solidity Project - Create a Shared Wallet

    • Project Shared Wallet

  • 12

    Resources for: Section 5 - Smart Contract Interaction

    • Using Web3js

    • Using Web3Js to Interact with Smart Contracts

    • Using the Browser to Interact with Smart Contracts

    • Web3js and Events as Return Values

    • Web3js and Events as Triggers

  • 13

    Resources for: Section 6 - Supply Chain Project

    • Project Supply Chain using Solidity and Truffle

  • 14

    Resources for: Section 7 - Project Tokenization

    • Project Tokenization