Ethereum and Solidity: The Complete Developer's Guide
4.5 (10,049 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
44,158 students enrolled

Ethereum and Solidity: The Complete Developer's Guide

Use Ethereum, Solidity, and Smart Contracts to build production-ready apps based on the blockchain
Bestseller
4.5 (10,049 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
44,158 students enrolled
Created by Stephen Grider
Last updated 5/2020
English
English [Auto-generated], French [Auto-generated], 6 more
  • German [Auto-generated]
  • Indonesian [Auto-generated]
  • Italian [Auto-generated]
  • Japanese [Auto-generated]
  • Portuguese [Auto-generated]
  • Spanish [Auto-generated]
Current price: $65.99 Original price: $94.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 24 hours on-demand video
  • 17 articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understand the why engineers would want to create an app with Ethereum
  • Build compelling blockchain applications using the Ethereum Blockchain
  • Design, test, and deploy secure Smart Contracts
  • Learn the true purpose and capabilities of Ethereum and Solidity
  • Use the latest version of Ethereum development tools (Web3 v1.0)
  • See practical examples to comprehend what the blockchain and mining are
Course content
Expand all 250 lectures 23:58:50
+ What is Ethereum?
28 lectures 02:49:05
Link to Completed Code on Github
00:04
Link to Original Bitcoin White Paper
00:07
Interfacing with Ethereum Networks
03:14
Metamask Setup
05:24
Ethereum Accounts
05:28
Receiving Ether
03:34
What's a Transaction?
07:43
Why'd We Wait?
05:00
A Quick Note
00:16
Basic Blockchains
17:49
Block Time
10:49
Smart Contracts
06:55
The Solidity Programming Language
05:03
Our First Contract
05:41
Quick Note - Remix Deprecation Warnings
00:21
Contract Structure
05:39
Function Declarations
08:59
Testing with Remix
10:57
Redeploying Contracts
02:34
Behind the Scenes of Deployment
05:43
More on Running Functions Than You Want to Know
14:15
Wei vs Ether
04:07
Gas and Transactions
11:24
Mnemonic Phrases
11:28
Getting More Ether
04:17
+ Smart Contracts with Solidity
31 lectures 02:44:54
Don't Skip! Node JS Versioning
00:16
Contract Deployment
05:31
Boilerplate Requirements
05:09
Project File Walkthrough
04:32
Syntax Highlighters
00:23
Solidity "AssertionError [ERR_ASSERTION]: Invalid callback specified" errors
00:30
Compiling Solidity
06:22
The Compile Script
06:09
Testing Architecture
03:48
Web3 Install Issues on Windows
00:58
Installing Modules
04:15
Web3 Versioning
04:18
Web3 Providers
04:47
Testing with Mocha
18:16
Mocha Structure
04:44
Fetching Accounts from Ganache
06:43
Refactor to Async/Await
02:39
Deployment with Web3
06:11
Deployed Inbox Overview
11:18
Asserting Deployment
05:22
Web3 Version Fix
00:49
Verifying the Initial Message
08:25
Testing Message Updates
06:24
Deployment with Infura
06:57
Infura Signup
04:18
Wallet Provider Setup
06:40
Updated Deploy Code
00:17
Deployment to Rinkeby
07:21
Observing Deployment on Etherscan
04:51
Deployed Contracts in Remix
07:13
Project Review
09:27
+ Advanced Smart Contracts
28 lectures 02:28:12
The Lottery Contract
02:36
Lottery Design
02:49
Basic Solidity Types
09:43
Starting the Lottery Contract
04:44
The Message Global Variable
05:53
Overview of Arrays
11:06
Overview of Mappings and Structs
03:42
Big Solidity Gotcha
06:28
Entering the Lottery
03:57
Validation with Require Statements
09:48
The Remix Debugger
04:03
Pseudo Random Number Generator
10:34
Selecting a Winner
04:58
Sending Ether from Contracts
05:08
Resetting Contract State
04:07
Requiring Managers
05:03
Function Modifiers
06:18
Returning Players Array
02:13
Contract Review
02:51
New Test Setup
03:04
Test Project Updates
02:04
Test Helper Review
04:33
Asserting Deployment
02:54
Entering the Lottery
06:27
Asserting Multiple Players
02:39
Try-Catch Assertions
05:57
Testing Function Modifiers
03:29
End to End Test
11:04
+ Building Interactive Front-Ends
16 lectures 01:30:26
Ethereum App Architecture
09:20
Application Overview
07:56
Getting Started with Create-React-App
02:36
Multiple Web3 Instances
08:42
Web3 Setup
06:10
Updated Deploy Code
00:16
Deploying the Lottery Contract
05:32
Local Contract Instances
06:26
Rendering Contract Data
07:04
Instance Properties
01:58
Accessing More Properties
05:33
The 'Enter' Form
03:50
Form Setup
06:47
Entering the Lottery
06:35
Picking a Winner
08:34
Project Review
03:07
+ Real Projects with Ethereum
28 lectures 02:57:15
Solving Real Problems with Contracts
06:01
Fixing Kickstarter's Issues
07:48
Campaign Contract Design
09:05
Campaign Constructor
04:16
Contributing to the Campaign
03:07
A Quick Test
02:14
The Request Struct
08:58
More on Function Modifiers
05:15
Creating Struct Instances
05:33
Instance Creation Syntax
09:31
Storage and Memory
06:27
More on Storage vs Memory
16:23
Voting System Requirements
02:49
The Wrong Voting System
05:12
Issues with Arrays
06:14
Mappings vs Arrays
04:01
Basics of Mappings
11:08
Refactoring to Mappings
06:45
Refactoring Request Stucts
02:15
More on Struct Initialization
02:52
Approving a Request
07:53
Testing Request Approvals
05:22
Finalizing a Request
07:24
Last Remix Test
03:03
Thinking about Deployment
09:46
Solution to Deployment
06:33
Adding a Campaign Factory
07:53
Testing the Factory
03:27
+ Ethereum Project Infrastructure
15 lectures 01:27:42
Project Setup
02:16
Directory Structure
02:56
A Better Compile Script
04:41
Single Run Compilation
08:46
More on Compile
06:20
Test File Setup
08:21
Creating Campaign Instances
10:19
Testing Warmup
03:11
Accessing Mappings
09:55
Requiring Minimum Contributinos
03:13
Array Getters
06:07
One End to End Test
13:00
Deployment
02:16
Updated Deploy Code
00:16
Refactoring Deployment
06:05
+ Advanced Multi-Page Front-Ends
70 lectures 06:53:19
App Mockups
11:05
CRA vs Next
04:59
Next's Pages Architecture
05:07
Basics of Next Routing
04:51
Root Routes
05:23
CampaignFactory Instance
07:12
Getting a Test Campaign
05:35
Fetching Deployed Campaigns
06:27
Why Next.js, Anyways?
09:50
Server vs Client Web3 Instances
10:41
GetInitialProps Function
10:14
Semantic UI React
05:49
Card Group Setup
06:42
Rendering Card Groups
06:10
Adding CSS
04:40
Adding a Button
06:47
The Need for a Layout
06:16
The Layout Component
07:13
Assembling a Header
07:35
Constraining Content Width
04:28
Two Column Layout
01:58
Nested Routing
04:27
Final CSS Fix
05:20
Form Creation
04:31
Input Change Handlers
06:20
Form Submittal
05:58
Testing Submittal
03:44
Form Error Handling
12:49
Button Spinners
06:56
Routing Issues
03:13
Next Routes Setup
10:54
Automatic Navigation
04:43
Header Navigation
05:52
Routing to Campaigns
05:52
Restarting the Server
00:05
Route Mappings
07:01
Planning CampaignShow
03:59
Redeploying CampaignFactory
08:53
CampaignShow's GetInitialProps
07:10
Accessing a Campaign
08:03
Summary Translation Layer
04:15
Custom Card Groups
07:44
One Card Per Property
04:38
The Contribute Form
07:22
Grid Layouts
04:07
Form State
02:44
Communicating the Campaign Address
04:24
Making a Contribution
04:55
Refreshing Contract Data
06:17
Spinners and Error Handlers
04:56
Listing Requests
06:29
Grids vs Columns
03:36
More Routing!
08:32
Request Creation Form
10:35
Creating a Request
09:51
Form Polish
07:43
Creating a Request
01:12
Requests One by One
03:32
Fancy Javascript
07:35
Small Typo!
00:18
Rendering a Table
03:22
Request Row Component
06:17
Request Row Content
07:23
Approvers Count Cell
05:51
Approving a Request
06:58
Finalizing Requests
05:19
Testing Finalization
02:33
Row Status Styling
06:45
Finishing Requests Index
02:30
Wrapup
00:44
+ Appendix: Basic React
33 lectures 03:07:42
A Note on This Section
00:10
Purpose of Boilerplate Projects
03:41
Environment Setup
01:45
Project Setup
02:53
JSX
11:29
More on JSX
04:35
ES6 Import Statements
03:58
ReactDOM vs React
02:26
Component Instances
03:38
Render Targets
05:53
Component Structure
06:26
Youtube Search API Signup
06:39
Export Statements
08:40
Class Based Components
08:11
Handling User Events
09:30
Introduction to State
05:13
State Continued
06:04
Controlled Components
07:47
Breather and Review
03:37
Youtube Search Response
04:26
Refactoring Functional Components to Class Components
07:43
Props
07:42
Building Lists with Map
07:06
List Item Keys
03:54
Video List Items
07:53
Detail Component and Template Strings
07:05
Handling Null Props
04:41
Video Selection
11:39
Styling with CSS
03:43
Searching for Videos
07:51
Throttling Search Term Input
05:46
React Wrapup
05:24
Vue Flavored Version
00:13
Requirements
  • Basic Knowledge of Javascript and NPM
  • A Mac, PC, or Linux Machine
Description

Smart Contracts? They're here.  The Ethereum Blockchain?  Covered.  Solidity?  Yep!

There can be no understating it: Ethereum and Blockchain technology is the most disruptive force in years.  Companies cannot hire developers who understand blockchain technologies fast enough, but there are a tiny number of resources published to help you truly understand what blockchains are used for, let alone build apps with them.  That's the purpose of this course: to be the best resource online for learning about Ethereum, blockchains, and how to build apps with this new technology.

The development community is still figuring out the best way to use Ethereum in the creation of new and exciting apps.  I spent a tremendous amount of time to research and create best practice for interfacing with Ethereum from Javascript.  I can't overstate it enough; this course will show you the best and most easily repeatable patterns for creating production-ready apps with Ethereum.


What tools and libraries are used?

The Ethereum tech ecosystem is in constant change.  Don't be fooled by other courses that mention how you'll learn a dozen different libraries!  Every library that you'll use with Ethereum breaks and is deprecated on a near-weekly basis!  Instead, this course will teach you how to assemble your own boilerplate package to develop, compile, and test Smart Contracts.  By learning the core technologies, you'll be prepared to adjust to Ethereum no matter how the ecosystem changes.

What is Ethereum?

Ethereum is a cryptocurrency much like Bitcoin, and it has been heralded as Bitcoins successor.  Whereas Bitcoin currently has issues scaling with an increasing backlog of transactions, Ethereum is poised to surpass Bitcoin in performance, popularity, and value.  Ethereum was created to help developers like you create applications focused around transferring money or value from one party to another.

What is Solidity?

Solidity is a programming language for writing Smart Contracts.  Essentially, think of it as a way to control a bank account with code.  With Solidity, we can write applications that simulate a crowd funding campaign, a lottery, a loan, or any other type of financial instrument.  Don't be intimidated by learning 'another' programming language; Solidity is known to be quite similar to Javascript and exceptionally easy to pick up for anyone who has previous JS experience.  This course will give you all the tools you need to master Solidity.


Who this course is for:
  • Programmers looking to leverage blockchain technology for advanced apps
  • Engineers who want to understand Ethereum and how to build apps with it