๐ Course purpose: This course teaches you how to build decentralized applications (dApps) using blockchain technology and smart contracts. You will learn the fundamentals of blockchain, how to write smart contracts in Solidity, and how to deploy them on Ethereum. No prior blockchain experience needed.
| Aspect | Details |
|---|---|
| Target audience | Beginners interested in blockchain, Web3, and smart contract development |
| Prerequisites | Basic understanding of programming (JavaScript or similar) is helpful but not required |
| Delivery mode | Self-paced with practical projects and code examples |
| Total duration | ~4โ6 hours (over 1โ2 weeks) |
| Certification | Certificate of Completion |
By the end of this course, you will be able to:
| Module | Title & focus | Key activities & takeaways |
|---|---|---|
| 1 | Introduction to Blockchain Understanding the technology |
Learn what blockchain is, how it works, and why it is important. Understand blocks, hashes, and consensus. ๐น Task: Explore a blockchain explorer. |
| 2 | Ethereum and Smart Contracts The foundation of Web3 |
Learn about Ethereum, the Ethereum Virtual Machine (EVM), and smart contracts. Understand gas and transactions. ๐น Task: Create a MetaMask wallet. |
| 3 | Solidity Basics Write your first smart contract |
Learn Solidity syntax, data types, functions, and modifiers. Write a simple "Hello World" contract. ๐น Task: Write and deploy a simple contract on Remix. |
| 4 | Advanced Solidity Build more complex contracts |
Explore inheritance, events, mappings, and error handling. Create a token or voting contract. ๐น Task: Build a simple ERC-20 token contract. |
| 5 | Testing and Deployment Deploy your contracts |
Learn to test contracts using Hardhat or Truffle. Deploy to testnets like Sepolia. ๐น Task: Deploy a contract to a testnet. |
| 6 | Building dApps Connect frontend to blockchain |
Connect your smart contract to a web frontend using ethers.js or web3.js. Build a complete dApp. ๐น Task: Build a simple dApp with a frontend. |
| Component | Description |
|---|---|
| Practical exercises | After each module, complete a coding task (e.g., write a contract, deploy it). |
| Project journal | Document your code and learning progress. |
| Final project | Build a complete dApp with a smart contract and frontend. |
| Peer review | Share your code and get feedback. |
| Week | Modules to cover | Estimated time |
|---|---|---|
| Week 1 | Modules 1, 2, 3 | 2โ3 hours |
| Week 2 | Modules 4, 5, 6 | 2โ3 hours |
| Question | Answer |
|---|---|
| Do I need to know programming? | Basic programming knowledge is helpful, but we start from the basics. |
| Is Ethereum the only blockchain covered? | We focus on Ethereum, but the concepts apply to other chains. |
| Do I need to pay for gas? | We use test networks (testnets) with free ETH, so no real money is needed. |
| How long does it take? | About 4โ6 hours total. You can go at your own pace. |
| Is there a certificate? | Yes, you will receive a Certificate of Completion. |
After finishing all modules and the final project, you will receive a Certificate of Completion. You can use your new skills to start building dApps, join Web3 projects, or explore advanced topics like DeFi and NFTs.
After this course, you can explore advanced topics like security audits, Layer 2 solutions, or cross-chain development โ or just start building!
Hello, future blockchain developer! Welcome to the very first module of "Blockchain and Smart Contract Development". This is a very special course because it will teach you about a new way of storing and sharing information โ called blockchain. You will also learn how to create smart contracts, which are like automatic agreements that run on the blockchain.
In this module, we will start from the very beginning. We will learn what blockchain is, why it matters, and how it works. You don't need to know anything about technology or finance. We will go slowly and use lots of examples. By the end of this module, you will understand the basics of blockchain and be ready to learn more.
Imagine a village where everyone shares one big notebook. Every time someone buys or sells something, they write it in the notebook. Everyone can see it. No one can erase it. The notebook is kept in a public place so everyone can check it.
One day, a villager tried to cheat by erasing a transaction. But everyone noticed because they all had copies of the notebook. The cheater was caught. The village trusted the notebook because it was shared and transparent.
This is how blockchain works. It is like a shared notebook that everyone can see, but no one can change. Every transaction is recorded forever. Because everyone can see it, no one can cheat. This is what makes blockchain so powerful โ it is honest and transparent.
Definition: Blockchain is a digital record book that stores information in a secure and transparent way.
Why important: Blockchain is the technology behind cryptocurrencies like Bitcoin and many other applications.
Simple explanation: Like a big notebook that everyone can see, but no one can change.
Real-life example: A shared ledger for a group of people.
School example: A class attendance record that everyone can see.
Home example: A family budget that everyone can see.
Nigerian example: A community record of land ownership.
Illustration:
+----------------------+
| Blockchain = |
| Digital record book |
| Transparent |
| Secure |
| No one can change |
+----------------------+
Mini summary: A blockchain is a transparent, secure digital record book.
Definition: Blockchain works by grouping transactions into "blocks" and linking them together in a "chain."
Why important: This linking makes the record secure and unchangeable.
Simple explanation: Each block contains a list of transactions. When a block is full, a new block is created and linked to the previous one.
Real-life example: A chain of linked train cars.
School example: A chain of connected paper pages in a notebook.
Home example: A chain of receipts for purchases.
Nigerian example: A chain of land titles.
Illustration:
Block 1 โ Block 2 โ Block 3 โ Block 4
(transactions) (transactions) (transactions)
Mini summary: Blocks are linked together to form a chain.
Definition: A block is a group of transactions that are recorded together.
Why important: Blocks are the building blocks of a blockchain.
Simple explanation: Like a page in a notebook that contains several transactions.
Real-life example: A page in a ledger that contains 10 transactions.
School example: A page in a class record book.
Home example: A list of weekly expenses.
Nigerian example: A page of market sales.
Illustration:
+----------------------+
| Block |
| Transaction 1 |
| Transaction 2 |
| Transaction 3 |
| ... |
+----------------------+
Mini summary: A block is a group of transactions.
Definition: A chain is a sequence of blocks linked together.
Why important: The chain ensures that the record is continuous and secure.
Simple explanation: Each block points to the previous block, creating a chain.
Real-life example: A chain of train cars connected together.
School example: A series of linked class pages.
Home example: A chain of family photos in an album.
Nigerian example: A chain of receipts for a business.
Illustration:
Block 1 โ Block 2 โ Block 3 โ Block 4
(Chain)
Mini summary: A chain is a sequence of linked blocks.
Definition: Blockchain is secure because it is very difficult to change any information once it has been recorded.
Why important: Security is why people trust blockchain for financial transactions.
Simple explanation: Once a block is added, it cannot be changed without changing all the blocks after it.
Real-life example: Like engraving words in stone โ they cannot be erased.
School example: Like a permanent school record.
Home example: Like a permanent family photo.
Nigerian example: Like a permanent land title.
Illustration:
Secure = Hard to change
Once recorded, it stays forever.
Mini summary: Blockchain is secure because records cannot be changed.
Definition: Transparency means that everyone can see the transactions on the blockchain.
Why important: Transparency builds trust because everyone can verify the transactions.
Simple explanation: Everyone can see the transactions, so no one can cheat.
Real-life example: A public record of property ownership.
School example: A class grade record that everyone can see.
Home example: A shared family budget.
Nigerian example: A public record of community contributions.
Illustration:
Transparent = Everyone can see
No secrets, no cheating.
Mini summary: Blockchain is transparent โ everyone can see the transactions.
Definition: Decentralization means that no single person or company controls the blockchain. It is shared among many people.
Why important: Decentralization makes blockchain fair and resistant to control by any one party.
Simple explanation: No one person is the boss. Everyone has a copy.
Real-life example: A group of friends sharing a video game account.
School example: A class project where everyone contributes.
Home example: A family where everyone has a say.
Nigerian example: A community where decisions are made together.
Illustration:
Decentralized = No one in charge
Shared among many
Mini summary: Decentralization means no single person controls the blockchain.
Definition: Blockchain is used for many things: cryptocurrencies, supply chain tracking, voting, and more.
Why important: Blockchain is not just for money โ it can be used for many industries.
Simple explanation: Blockchain can be used to track food, verify identities, and even vote.
Real-life example: Bitcoin uses blockchain.
School example: A school uses blockchain to verify certificates.
Home example: A family uses blockchain to track items.
Nigerian example: A Nigerian company uses blockchain for supply chain.
Illustration:
Uses:
๐ฐ Cryptocurrencies
๐ฆ Supply chain
๐ณ๏ธ Voting
๐ Identity
Mini summary: Blockchain has many uses beyond cryptocurrencies.
Definition: You have learned the basics of blockchain โ what it is, how it works, and why it is important.
Why important: You now have a solid foundation to learn more about smart contracts and blockchain development.
Simple explanation: You know what blockchain is and how it helps people.
Real-life example: You can explain blockchain to a friend.
School example: You can use blockchain concepts in a project.
Home example: You can discuss blockchain with your family.
Nigerian example: You can explore blockchain solutions in Nigeria.
Illustration:
+----------------------+
| You understand |
| Blockchain! ๐ |
| โ Blocks |
| โ Chain |
| โ Transparency |
| โ Decentralization |
+----------------------+
Mini summary: You now understand the basics of blockchain!
Step 1: A sends money to B.
Step 2: Computers verify the transaction.
Step 3: It is added to a block.
Step 4: The block is added to the chain.
Step 5: Transaction is complete.
+----------------------+
| Block 1 |
| Hash: 123 |
+----------------------+
|
V
+----------------------+
| Block 2 |
| Hash: 456 |
| Previous: 123 |
+----------------------+
|
V
+----------------------+
| Block 3 |
| Hash: 789 |
| Previous: 456 |
+----------------------+
| Centralized | Decentralized |
|---|---|
| One person in control | No one in control |
| Single point of failure | No single point of failure |
| Less transparent | Transparent |
| Example: Bank | Example: Blockchain |
Cryptocurrency: Bitcoin, Ethereum
Supply Chain: Tracking goods
Voting: Secure voting systems
Identity: Digital IDs
In this module, we learned the basics of blockchain. We discovered that blockchain is a transparent, secure digital record book. We learned that blocks are linked together to form a chain, making the record unchangeable. We also learned about decentralization, transparency, and the many uses of blockchain. With this foundation, you are now ready to learn more about smart contracts and blockchain development. Great job!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. Blockchain | A) A group of transactions |
| 2. Block | B) Digital record book |
| 3. Chain | C) Sequence of linked blocks |
| 4. Transparency | D) Everyone can see |
| 5. Decentralization | E) No one in control |
(Answers: 1-B, 2-A, 3-C, 4-D, 5-E)
Scenario 1: A friend asks you: "What is blockchain?" How would you explain it to them?
Scenario 2: You hear about a new blockchain project. What questions would you ask to understand it?
In groups of 3, discuss blockchain and its uses. Share what you learned and any questions you have.
Think of a problem that blockchain could solve. Write down your idea and share it with the class.
Create a poster or diagram that explains blockchain to a beginner. Include blocks, chain, transparency, and decentralization.
Write a short paragraph explaining blockchain to someone who has never heard of it. Use simple language.
Research a real blockchain project (like Bitcoin, Ethereum, or a supply chain project). Write a brief summary of what it does and how it uses blockchain.
Fill-in-the-blank: 1-record book, 2-block, 3-chain, 4-transparent, 5-Decentralization
True/False: 1-F, 2-T, 3-F, 4-T, 5-F
Matching: 1-B, 2-A, 3-C, 4-D, 5-E
In Module Two, we will learn about Ethereum and smart contracts. We will explore the Ethereum Virtual Machine (EVM) and how smart contracts work. Before the next session, think about what a "smart contract" might be.
See you in Module Two! ๐
End of Module One ยท Welcome to Blockchain!
Hello, future blockchain developer! In Module One, we learned the basics of blockchain โ what it is, how it works, and why it is important. We learned about blocks, chains, transparency, and decentralization. Now it is time to learn about Ethereum and smart contracts.
Ethereum is a special blockchain that allows people to create smart contracts. Smart contracts are like automatic agreements that run on the blockchain. They execute themselves when conditions are met. In this module, we will learn about Ethereum, how it works, and why smart contracts are so powerful. By the end of this module, you will understand the foundation of Web3 and be ready to write your first smart contract.
Imagine a vending machine. You put in money, press a button, and the machine gives you a snack. The machine does everything automatically โ no person is needed. This is like a smart contract.
Now imagine that this vending machine is on the blockchain. Everyone can see it. No one can cheat it. It works exactly as programmed. This is what Ethereum does. It allows people to create "vending machines" for agreements โ like sending money, voting, or buying a house โ all automatically and securely.
This story shows the power of Ethereum and smart contracts. They are like automatic vending machines for agreements.
Definition: Ethereum is a blockchain platform that allows developers to build and run smart contracts and decentralized applications (dApps).
Why important: Ethereum is the most popular platform for smart contracts and is the foundation of Web3.
Simple explanation: Ethereum is like a giant computer that runs programs (smart contracts) on the blockchain.
Real-life example: Ethereum is used for DeFi (decentralized finance), NFTs, and many other applications.
School example: A school uses Ethereum to issue certificates.
Home example: A family uses Ethereum to track ownership.
Nigerian example: A Nigerian company uses Ethereum for supply chain tracking.
Illustration:
+----------------------+
| Ethereum = |
| Blockchain + |
| Smart Contracts |
| + dApps |
+----------------------+
Mini summary: Ethereum is a blockchain platform for smart contracts and dApps.
Definition: The Ethereum Virtual Machine (EVM) is the environment where smart contracts run. It is like the "brain" of Ethereum.
Why important: The EVM makes Ethereum a global, decentralized computer.
Simple explanation: The EVM is like a universal machine that executes code.
Real-life example: A computer processor that runs programs.
School example: A school computer lab where students run programs.
Home example: A smart TV that runs apps.
Nigerian example: A developer uses the EVM to run smart contracts.
Illustration:
+----------------------+
| EVM = |
| Runs smart contracts |
| Decentralized |
| Secure |
+----------------------+
Mini summary: The EVM is the environment where smart contracts run.
Definition: A smart contract is a self-executing agreement with the terms directly written in code. It runs on the blockchain.
Why important: Smart contracts automate agreements without the need for intermediaries.
Simple explanation: A smart contract is like a vending machine โ you put in something, and it automatically gives you something in return.
Real-life example: A smart contract for a loan that automatically releases funds when conditions are met.
School example: A smart contract for a class project submission.
Home example: A smart contract for splitting bills.
Nigerian example: A smart contract for a farmer's insurance payout.
Illustration:
+----------------------+
| Smart Contract = |
| Automatic agreement |
| Runs on blockchain |
| No middleman |
+----------------------+
Mini summary: A smart contract is an automatic agreement on the blockchain.
Definition: Smart contracts work by following simple rules: "If this happens, then do that."
Why important: This logic makes them reliable and automatic.
Simple explanation: You write the rules, and the contract follows them automatically.
Real-life example: "If A pays B, then B gives A the goods."
School example: "If a student submits homework, they get a grade."
Home example: "If a child does chores, they get pocket money."
Nigerian example: "If a farmer pays for seeds, the seeds are delivered."
Illustration:
If (condition) then (action)
Example: If you send money โ you receive the product.
Mini summary: Smart contracts execute automatically when conditions are met.
Definition: Gas is the fee you pay to run a transaction or smart contract on Ethereum. It is paid in ETH.
Why important: Gas makes the network secure and prevents spam.
Simple explanation: Gas is like the fuel you pay for your transaction to be processed.
Real-life example: You pay a fee to send money.
School example: You pay for a bus ticket.
Home example: You pay for electricity.
Nigerian example: You pay for data on your phone.
Illustration:
Gas = Fee to run a transaction
Paid in ETH
Prevents spam
Mini summary: Gas is the fee for running transactions on Ethereum.
Definition: ETH (Ether) is the cryptocurrency used on the Ethereum network. It is used to pay for gas and transactions.
Why important: ETH is what makes the Ethereum economy work.
Simple explanation: ETH is the money you use on the Ethereum network.
Real-life example: ETH is used to pay for smart contract execution.
School example: A school uses ETH to pay for blockchain services.
Home example: A family uses ETH for transactions.
Nigerian example: A Nigerian developer uses ETH to deploy contracts.
Illustration:
ETH = Cryptocurrency on Ethereum
Used to pay for gas and transactions
Mini summary: ETH is the currency used on Ethereum.
Definition: A wallet is a tool that lets you interact with Ethereum. It stores your ETH and allows you to send transactions.
Why important: You need a wallet to use Ethereum.
Simple explanation: A wallet is like a bank account for your ETH.
Real-life example: MetaMask is a popular Ethereum wallet.
School example: A student uses a wallet to receive ETH.
Home example: A family uses a wallet for savings.
Nigerian example: A Nigerian developer uses a wallet to deploy contracts.
Illustration:
Wallet:
๐ฐ Stores ETH
๐ Private keys
๐ Connect to dApps
Mini summary: A wallet is used to interact with Ethereum.
Definition: dApps are applications that run on the blockchain. They are decentralized and open.
Why important: dApps are the future of apps โ they are transparent and secure.
Simple explanation: dApps are like regular apps, but they run on the blockchain.
Real-life example: Uniswap is a dApp for trading.
School example: A dApp for tracking school records.
Home example: A dApp for family tasks.
Nigerian example: A dApp for Nigerian farmers.
Illustration:
dApp = App on blockchain
Decentralized
Transparent
Mini summary: dApps are decentralized applications on the blockchain.
Definition: You have learned the basics of Ethereum, smart contracts, gas, wallets, and dApps.
Why important: You now understand the foundation of Web3 development.
Simple explanation: You know what Ethereum is and how smart contracts work.
Real-life example: You can explore Ethereum and smart contracts.
School example: You can build a simple dApp.
Home example: You can discuss blockchain with your family.
Nigerian example: You can start learning Solidity.
Illustration:
+----------------------+
| You understand |
| Ethereum and |
| Smart Contracts! ๐ |
| โ EVM |
| โ Gas |
| โ Wallets |
| โ dApps |
+----------------------+
Mini summary: You are now ready to start building smart contracts!
Step 1: "If A pays B, then B gives A the goods."
Step 2: The contract is deployed.
Step 3: A pays B.
Step 4: Contract executes and transfers goods.
Step 5: Transaction is recorded.
+----------------------+
| Ethereum |
| โ |
| EVM |
| โ |
| Smart Contracts |
| โ |
| dApps |
+----------------------+
| Feature | Bitcoin | Ethereum |
|---|---|---|
| Purpose | Digital money | Smart contracts |
| Programming | Limited | Turing-complete |
| Applications | Payments | dApps, DeFi, NFTs |
Transaction: Send 1 ETH
Gas: 21,000 units
Gas price: 50 Gwei
Total fee: 21,000 * 50 Gwei
In this module, we learned about Ethereum and smart contracts. We discovered that Ethereum is a blockchain platform for smart contracts and dApps. We learned about the EVM, gas, wallets, and how smart contracts work. With this knowledge, you now understand the foundation of Web3 and are ready to start building smart contracts. Great job!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. Ethereum | A) Automatic agreement |
| 2. Smart contract | B) Blockchain platform |
| 3. EVM | C) Fee for transactions |
| 4. Gas | D) Runs smart contracts |
| 5. ETH | E) Cryptocurrency on Ethereum |
(Answers: 1-B, 2-A, 3-D, 4-C, 5-E)
Scenario 1: You want to create a smart contract for a simple agreement. What would you need to do?
Scenario 2: You want to send a transaction on Ethereum. What do you need to pay?
In groups of 3, discuss the role of Ethereum and smart contracts. Share examples of how they could be used in your community.
Think of a problem that could be solved with a smart contract. Write down your idea and explain how it would work.
Create a diagram or poster explaining Ethereum and smart contracts. Include the EVM, gas, and wallets.
Write a short explanation of how a smart contract works. Use a simple example like a vending machine.
Research a real dApp built on Ethereum. Write a brief summary of what it does and how it uses smart contracts.
Fill-in-the-blank: 1-blockchain, 2-smart contract, 3-EVM, 4-Gas, 5-ETH
True/False: 1-T, 2-T, 3-F, 4-F, 5-T
Matching: 1-B, 2-A, 3-D, 4-C, 5-E
In Module Three, we will learn about Solidity โ the programming language for writing smart contracts. We will write our first smart contract. Before the next session, think about what you would like your first smart contract to do.
See you in Module Three! ๐
End of Module Two ยท Ethereum and Smart Contracts
Hello, future blockchain developer! In Module Two, we learned about Ethereum and smart contracts. We learned how Ethereum works and why smart contracts are powerful. Now it is time to learn how to write smart contracts using Solidity.
Solidity is the programming language used to write smart contracts on Ethereum. It is designed to be easy to learn and powerful enough to build complex applications. In this module, we will learn the basics of Solidity โ data types, variables, functions, and more. By the end of this module, you will be able to write your first smart contract.
Chidi is a young developer in Lagos. He wanted to write his first smart contract. He opened Remix, an online tool for writing Solidity. He wrote a simple contract that stored a message. He deployed it to a test network. He was amazed when it worked.
His contract was simple: it stored a string and allowed anyone to read it. It was like a digital notice board. Chidi learned that Solidity is not as hard as he thought. He continued to learn and eventually built more complex contracts.
Definition: Solidity is a programming language used to write smart contracts for Ethereum and other blockchain platforms.
Why important: Solidity is the most popular language for smart contract development.
Simple explanation: Solidity is the language you use to tell the blockchain what your smart contract should do.
Real-life example: A developer writes a smart contract for a token.
School example: A student writes a contract for a class project.
Home example: A hobbyist writes a contract for a game.
Nigerian example: A Nigerian developer writes a contract for a DeFi app.
Illustration:
+----------------------+
| Solidity = |
| Language for |
| smart contracts |
| โ Ethereum |
| โ dApps |
+----------------------+
Mini summary: Solidity is the language for writing smart contracts.
Definition: A Solidity contract is a collection of code (functions and data) that lives on the blockchain.
Why important: Every smart contract starts with a structure.
Simple explanation: Like a blueprint for a house.
Real-life example: A contract for a token.
School example: A contract for a class record.
Home example: A contract for a family agreement.
Nigerian example: A contract for a land registry.
Illustration:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract MyContract {
// Code goes here
}
Mini summary: A contract is the basic building block of Solidity.
Definition: Pragma is a statement that tells the compiler which version of Solidity to use.
Why important: It ensures your contract works with the right version.
Simple explanation: Like saying "Use this version of the language."
Real-life example: pragma solidity ^0.8.0;
School example: A student specifies the version for their project.
Home example: A family uses a specific recipe version.
Nigerian example: A developer specifies the version for their contract.
Illustration:
pragma solidity ^0.8.0;
Mini summary: Pragma specifies the Solidity version.
Definition: Data types define the kind of data you can store in a variable. Common types are uint, string, bool, and address.
Why important: You need to know what type of data you are working with.
Simple explanation: Like different containers for different things.
Real-life example: uint for numbers, string for text.
School example: A student uses uint for grades.
Home example: A parent uses string for names.
Nigerian example: A developer uses address for wallet addresses.
Illustration:
uint: 100
string: "Hello"
bool: true
address: 0x123...
Mini summary: Data types define the kind of data you store.
Definition: Variables are containers that store data. In Solidity, you can have state variables (stored on the blockchain) and local variables (temporary).
Why important: Variables store the data your contract needs.
Simple explanation: Like boxes that hold information.
Real-life example: uint public count = 0;
School example: A student stores their name.
Home example: A family stores a message.
Nigerian example: A developer stores a balance.
Illustration:
uint public count = 0;
string public message = "Hello";
address public owner;
Mini summary: Variables store data in your contract.
Definition: Functions are blocks of code that perform specific tasks. They can be called by users or other contracts.
Why important: Functions are how you interact with a smart contract.
Simple explanation: Like buttons that do something when pressed.
Real-life example: function setMessage(string memory _message) public { message = _message; }
School example: A function to update a grade.
Home example: A function to add a chore.
Nigerian example: A function to transfer tokens.
Illustration:
function setMessage(string memory _message) public {
message = _message;
}
Mini summary: Functions perform actions in your contract.
Definition: Visibility determines who can call a function or access a variable. The main types are public, private, and internal.
Why important: It controls access to your contract's data and functions.
Simple explanation: Like who is allowed to enter a room.
Real-life example: public means anyone can call it.
School example: A public function can be used by anyone.
Home example: A private variable is only for the contract.
Nigerian example: A public function for users.
Illustration:
public: Anyone can call
private: Only this contract can call
internal: Only this contract and derived contracts
Mini summary: Visibility controls access to functions and variables.
Definition: The Hello World contract is the simplest smart contract. It stores and returns a message.
Why important: It is the first step in learning Solidity.
Simple explanation: Like writing your first program.
Real-life example: A contract that says "Hello, World!"
School example: A student writes their first contract.
Home example: A family stores a greeting.
Nigerian example: A developer writes a test contract.
Illustration:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
string public message = "Hello, World!";
}
Mini summary: Hello World is the simplest smart contract.
Definition: You have learned the basics of Solidity โ data types, variables, functions, and visibility.
Why important: You are now ready to write your own smart contracts.
Simple explanation: You know how to write a simple contract.
Real-life example: You can write a Hello World contract.
School example: You can build a simple project.
Home example: You can store a message on the blockchain.
Nigerian example: You can start building dApps.
Illustration:
+----------------------+
| You can write |
| Solidity! ๐ |
| โ Data types |
| โ Variables |
| โ Functions |
| โ Visibility |
+----------------------+
Mini summary: You are now ready to write Solidity!
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract HelloWorld {
string public message = "Hello, World!";
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract MyContract {
// State variables
// Functions
}
| Type | Description |
|---|---|
| uint | Non-negative integer |
| string | Text |
| bool | True/False |
| address | Ethereum address |
public: Anyone can call
private: Only this contract
internal: This contract and derived
In this module, we learned the basics of Solidity. We discovered that Solidity is the language used to write smart contracts on Ethereum. We learned about the structure of a contract, data types, variables, functions, and visibility. We also wrote a simple "Hello World" contract. With this knowledge, you can now start writing your own smart contracts. Great job!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. Solidity | A) A non-negative integer |
| 2. uint | B) A block of code |
| 3. Function | C) The language for smart contracts |
| 4. Visibility | D) Controls access |
| 5. Pragma | E) Specifies the version |
(Answers: 1-C, 2-A, 3-B, 4-D, 5-E)
Scenario 1: You want to store a message on the blockchain. What contract would you write?
Scenario 2: You want to create a counter that increments. What functions would you write?
In groups of 3, write a Hello World contract in Remix. Deploy it and test it. Share your experience.
Write a simple contract that stores and retrieves a message. Deploy it on a test network.
Write a contract that stores and updates a message. Add a function to change the message. Deploy it and test it.
Write a Hello World contract in Remix. Take a screenshot of the deployed contract and share it.
Write a contract that stores a number and allows users to increment it. Add a function to reset the number.
Fill-in-the-blank: 1-smart contracts, 2-contract, 3-Pragma, 4-uint, 5-Function
True/False: 1-T, 2-T, 3-F, 4-T, 5-F
Matching: 1-C, 2-A, 3-B, 4-D, 5-E
In Module Four, we will learn advanced Solidity concepts like mappings, events, and inheritance. We will build more complex contracts. Before the next session, think about what you would like your contract to do.
See you in Module Four! ๐
End of Module Three ยท Solidity Basics
Hello, future blockchain developer! In Module Three, we learned the basics of Solidity โ data types, variables, functions, and visibility. We wrote our first "Hello World" smart contract. Now it is time to take your skills to the next level with Advanced Solidity.
In this module, we will learn about more powerful features of Solidity โ mappings, events, inheritance, modifiers, and error handling. We will also learn how to build more complex contracts like a token or a voting system. By the end of this module, you will be able to write real-world smart contracts.
Ada is a developer in Lagos. She wanted to build a digital address book on the blockchain. She needed to store names and wallet addresses. She used a mapping to connect each name to an address. She added functions to add and get addresses. She used events to log every time a new address was added.
She also used modifiers to make sure only the owner could delete entries. She learned that these advanced features made her contract powerful and secure. Ada was proud of her digital address book.
Definition: A mapping is a data structure that stores key-value pairs. It is like a dictionary or a phone book.
Why important: Mappings are used to store and retrieve data efficiently.
Simple explanation: Like a phone book where you look up a name (key) to find a number (value).
Real-life example: mapping(address => uint) public balances;
School example: A student uses a mapping to store grades.
Home example: A family uses a mapping to store chores.
Nigerian example: A developer uses a mapping to store user balances.
Illustration:
mapping(address => uint) public balances;
balances[0x123...] = 100;
Mini summary: Mappings store key-value pairs.
Definition: Events are used to log information on the blockchain. They can be read by applications.
Why important: Events help you track what happens in your contract.
Simple explanation: Like a notification that something happened.
Real-life example: event Transfer(address indexed from, address indexed to, uint amount);
School example: A student uses events to log grades.
Home example: A family uses events to log chores.
Nigerian example: A developer uses events to log transactions.
Illustration:
event Transfer(address indexed from, address indexed to, uint amount);
emit Transfer(msg.sender, to, amount);
Mini summary: Events log information on the blockchain.
Definition: Inheritance allows a contract to inherit properties and functions from another contract.
Why important: It promotes code reuse and organisation.
Simple explanation: Like a child inheriting traits from a parent.
Real-life example: contract MyToken is ERC20 { ... }
School example: A student inherits a project template.
Home example: A family inherits a tradition.
Nigerian example: A developer inherits a base contract.
Illustration:
contract Parent { ... }
contract Child is Parent { ... }
Mini summary: Inheritance allows contracts to reuse code.
Definition: Modifiers are used to change the behaviour of functions. They are often used for access control.
Why important: Modifiers make your code cleaner and more secure.
Simple explanation: Like a gatekeeper that checks conditions before allowing entry.
Real-life example: modifier onlyOwner() { require(msg.sender == owner); _; }
School example: A student uses a modifier to restrict access.
Home example: A family uses a modifier to control permissions.
Nigerian example: A developer uses a modifier to restrict admin functions.
Illustration:
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function changeOwner(address _newOwner) public onlyOwner { ... }
Mini summary: Modifiers control access and behaviour.
Definition: Error handling is used to check conditions and revert transactions if something is wrong.
Why important: It prevents invalid actions and protects your contract.
Simple explanation: Like a safety check before doing something.
Real-life example: require(msg.sender == owner, "Not owner");
School example: A student checks if they have permission.
Home example: A family checks if they have enough funds.
Nigerian example: A developer uses require to validate inputs.
Illustration:
require(condition, "Error message");
revert("Error message");
assert(condition);
Mini summary: Error handling prevents invalid actions.
Definition: A simple token contract is a contract that manages a digital token. It includes functions to transfer tokens and check balances.
Why important: Tokens are the foundation of many blockchain applications.
Simple explanation: Like a digital currency you can create and transfer.
Real-life example: A token for a local community.
School example: A token for a class project.
Home example: A token for a family reward system.
Nigerian example: A token for a Nigerian startup.
Illustration:
mapping(address => uint) public balances;
function transfer(address to, uint amount) public { ... }
Mini summary: A simple token contract manages digital tokens.
Definition: A voting contract allows users to vote on proposals. It tracks votes and determines the winner.
Why important: Voting contracts are used in DAOs and governance.
Simple explanation: Like a digital ballot box.
Real-life example: A voting contract for a community decision.
School example: A voting contract for a class election.
Home example: A voting contract for family decisions.
Nigerian example: A voting contract for a Nigerian organisation.
Illustration:
struct Proposal { string description; uint voteCount; }
mapping(address => bool) public hasVoted;
function vote(uint proposalId) public { ... }
Mini summary: A voting contract tracks votes on proposals.
Definition: You have learned advanced Solidity concepts like mappings, events, inheritance, modifiers, and error handling.
Why important: You can now build real-world smart contracts.
Simple explanation: You know how to build complex and secure contracts.
Real-life example: You can build a token or voting contract.
School example: You can build a project for school.
Home example: You can build a family contract.
Nigerian example: You can build a DeFi or DAO contract.
Illustration:
+----------------------+
| You can build |
| Advanced Contracts! ๐ |
| โ Mappings |
| โ Events |
| โ Inheritance |
| โ Modifiers |
| โ Error handling |
+----------------------+
Mini summary: You are now ready to build advanced smart contracts!
mapping(address => uint) public balances;struct Proposal { string description; uint voteCount; }Proposal[] public proposals;
// Simple Token Contract
mapping(address => uint) public balances;
event Transfer(address indexed from, address indexed to, uint amount);
function transfer(address to, uint amount) public {
require(balances[msg.sender] >= amount, "Insufficient balance");
balances[msg.sender] -= amount;
balances[to] += amount;
emit Transfer(msg.sender, to, amount);
}
mapping(address => uint) public balances;
balances[0x123...] = 100;
event Transfer(address indexed from, address indexed to, uint amount);
emit Transfer(msg.sender, to, amount);
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
In this module, we learned advanced Solidity concepts. We discovered mappings, events, inheritance, modifiers, and error handling. We also built simple token and voting contracts. With these skills, you can now build real-world smart contracts. Great job!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. Mapping | A) Logs information |
| 2. Event | B) Key-value data structure |
| 3. Inheritance | C) Controls access |
| 4. Modifier | D) Reusing code |
| 5. require | E) Checks a condition |
(Answers: 1-B, 2-A, 3-D, 4-C, 5-E)
Scenario 1: You want to build a digital address book on the blockchain. What would you use to store names and addresses?
Scenario 2: You want to create a voting system. What would you use to track votes?
In groups of 3, build a simple token contract. Add transfer and balance functions. Test it together.
Build a simple voting contract with proposals. Add functions to vote and get results. Deploy and test it.
Build a simple token contract with transfer and balance functions. Add an event for transfers. Deploy it on a test network.
Write a contract that stores a mapping of addresses to balances. Add functions to deposit and withdraw. Use require for validation.
Build a voting contract with multiple proposals. Add a modifier to prevent double voting. Deploy and test it.
Fill-in-the-blank: 1-mapping, 2-event, 3-Inheritance, 4-modifier, 5-require
True/False: 1-T, 2-T, 3-F, 4-T, 5-T
Matching: 1-B, 2-A, 3-D, 4-C, 5-E
In Module Five, we will learn about testing and deploying smart contracts. We will use tools like Hardhat and deploy to testnets. Before the next session, think about how you would test your contract.
See you in Module Five! ๐
End of Module Four ยท Advanced Solidity
Hello, future blockchain developer! In Module Four, we learned advanced Solidity concepts like mappings, events, inheritance, modifiers, and error handling. We built more complex contracts like tokens and voting systems. Now it is time to learn how to test and deploy your smart contracts.
Testing ensures your contract works correctly and is secure. Deployment puts your contract on the blockchain so others can use it. In this module, we will learn how to test contracts using Hardhat and deploy them to test networks like Sepolia. By the end of this module, you will be able to deploy your own smart contracts.
Ada is a developer in Lagos. She had written a smart contract for a token. She wanted to share it with her friends. But first, she needed to test it and deploy it.
She used Hardhat to test her contract. She wrote tests to check every function. She made sure everything worked. Then she deployed her contract to the Sepolia testnet. She shared the address with her friends. They could interact with her token. Ada was proud of her first deployed contract.
Definition: Testing is the process of checking if your smart contract works as expected.
Why important: Testing catches bugs and prevents security issues.
Simple explanation: Like checking your work before submitting it.
Real-life example: A developer tests a contract before deploying.
School example: A student checks their homework before submitting.
Home example: A family tests a recipe before serving.
Nigerian example: A Nigerian developer tests contracts before launch.
Illustration:
+----------------------+
| Testing = |
| Check before |
| deploying |
| โ Catch bugs |
| โ Ensure security |
+----------------------+
Mini summary: Testing ensures your contract works correctly.
Definition: Hardhat is a development environment for Ethereum. It helps you compile, test, and deploy smart contracts.
Why important: Hardhat is one of the most popular tools for smart contract development.
Simple explanation: Like a workshop for building and testing contracts.
Real-life example: A developer uses Hardhat to test contracts.
School example: A student uses Hardhat for a project.
Home example: A hobbyist uses Hardhat to learn.
Nigerian example: A Nigerian developer uses Hardhat for dApps.
Illustration:
Hardhat:
๐จ Compile
๐งช Test
๐ Deploy
Mini summary: Hardhat is a tool for developing smart contracts.
Definition: Setting up Hardhat involves installing it and creating a project.
Why important: You need Hardhat to test and deploy contracts.
Simple explanation: Like installing a game before playing.
Real-life example: A developer runs npm install --save-dev hardhat.
School example: A student sets up Hardhat for a project.
Home example: A hobbyist installs Hardhat.
Nigerian example: A Nigerian developer sets up Hardhat.
Illustration:
npm init -y
npm install --save-dev hardhat
npx hardhat
Mini summary: Set up Hardhat to start developing.
Definition: Tests are code that checks if your contract functions work correctly.
Why important: Tests give you confidence that your contract is safe.
Simple explanation: Like checking if a button works.
Real-life example: A test for a transfer function.
School example: A student tests a function.
Home example: A family tests a new appliance.
Nigerian example: A developer tests a token contract.
Illustration:
describe("Token", function () {
it("Should transfer tokens", async function () {
// Test code
});
});
Mini summary: Tests check if your contract works correctly.
Definition: Testnets are blockchain networks used for testing without real money.
Why important: You can deploy and test for free.
Simple explanation: Like a practice version of the blockchain.
Real-life example: Sepolia is a testnet.
School example: A student uses a testnet for practice.
Home example: A family uses a testnet to learn.
Nigerian example: A developer deploys to Sepolia.
Illustration:
Testnets:
๐ต Sepolia
๐ต Goerli
๐ต Rinkeby (deprecated)
Mini summary: Testnets are free environments for testing.
Definition: Deploying means putting your contract on the blockchain.
Why important: Deployment makes your contract available to users.
Simple explanation: Like publishing a website.
Real-life example: A developer deploys a token contract.
School example: A student deploys a project.
Home example: A family deploys a family contract.
Nigerian example: A developer deploys to Sepolia.
Illustration:
npx hardhat run scripts/deploy.js --network sepolia
Mini summary: Deployment puts your contract on the blockchain.
Definition: After deployment, you can interact with your contract using a wallet or frontend.
Why important: This is how users use your contract.
Simple explanation: Like using an app after it's built.
Real-life example: A user interacts with a token contract.
School example: A student interacts with a deployed contract.
Home example: A family interacts with a contract.
Nigerian example: A user interacts with a Nigerian dApp.
Illustration:
Interact with Contract:
1. Connect wallet
2. Call functions
3. View data
Mini summary: Interaction allows users to use your contract.
Definition: You have learned how to test and deploy smart contracts.
Why important: You can now share your contracts with the world.
Simple explanation: You know how to test and deploy your contracts.
Real-life example: You can deploy a token or voting contract.
School example: You can deploy a project.
Home example: You can deploy a family contract.
Nigerian example: You can deploy a Nigerian dApp.
Illustration:
+----------------------+
| You can deploy |
| Smart Contracts! ๐ |
| โ Test with Hardhat |
| โ Deploy to testnet |
| โ Interact with it |
+----------------------+
Mini summary: You are now ready to deploy smart contracts!
npm install --save-dev hardhatnpx hardhattest folder.npx hardhat testscripts folder.npx hardhat compilenpx hardhat run scripts/deploy.js --network sepolia
// test/Token.js
const { expect } = require("chai");
describe("Token", function () {
it("Should deploy and assign initial supply", async function () {
const Token = await ethers.getContractFactory("Token");
const token = await Token.deploy(1000);
await token.deployed();
expect(await token.totalSupply()).to.equal(1000);
});
});
Write Contract โ Compile โ Test โ Deploy โ Interact
| Testnet | Mainnet |
|---|---|
| Free to use | Costs real money |
| For testing | For production |
| No real value | Real value |
const hre = require("hardhat");
async function main() {
const Token = await hre.ethers.getContractFactory("Token");
const token = await Token.deploy(1000);
await token.deployed();
console.log("Token deployed to:", token.address);
}
main().catch((error) => {
console.error(error);
process.exitCode = 1;
});
In this module, we learned about testing and deploying smart contracts. We discovered that testing is crucial for catching bugs and ensuring security. We learned about Hardhat, testnets, and how to deploy a contract to a testnet. With this knowledge, you can now test and deploy your own smart contracts. Great job!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. Testing | A) A development tool |
| 2. Hardhat | B) Free blockchain for testing |
| 3. Testnet | C) Putting a contract on the blockchain |
| 4. Deployment | D) Checking if your contract works |
| 5. Interaction | E) Using a deployed contract |
(Answers: 1-D, 2-A, 3-B, 4-C, 5-E)
Scenario 1: You have written a smart contract. Before deploying, what should you do?
Scenario 2: You want to deploy your contract without spending real money. What would you do?
In groups of 3, set up Hardhat and deploy a simple contract to a testnet. Share the contract address.
Write a simple contract, test it with Hardhat, and deploy it to Sepolia. Record the contract address.
Deploy a simple token contract to Sepolia. Test it using Hardhat. Share the contract address with the class.
Write a test for a simple contract. Run the test and share the results.
Deploy a voting contract to Sepolia. Write tests for the contract. Share the address and test results.
Fill-in-the-blank: 1-Testing, 2-Hardhat, 3-testnet, 4-Deployment, 5-Interaction
True/False: 1-F, 2-T, 3-F, 4-T, 5-F
Matching: 1-D, 2-A, 3-B, 4-C, 5-E
In Module Six, we will learn about building dApps โ connecting your smart contract to a frontend. We will use ethers.js and React to build a complete dApp. Before the next session, think about how you would like your dApp to look.
See you in Module Six! ๐
End of Module Five ยท Testing and Deployment
Hello, future blockchain developer! In Module Five, we learned about testing and deploying smart contracts. We learned how to test with Hardhat and deploy to testnets. Now it is time to learn how to build a dApp โ a decentralized application.
A dApp is an application that connects to the blockchain. It has a frontend (like a website) and a backend (smart contracts). In this module, we will learn how to connect a frontend to a smart contract using ethers.js. By the end of this module, you will be able to build a complete dApp.
Kemi is a developer in Lagos. She had deployed a token contract on Sepolia. She wanted to build a website where people could interact with it. She used React and ethers.js to build a simple dApp.
Her dApp had a button to check the token balance and a button to transfer tokens. She connected MetaMask so users could sign transactions. She was amazed when her dApp worked. She had built a full-stack Web3 application.
Definition: A dApp (decentralized application) is an application that runs on a blockchain. It has a frontend (user interface) and a backend (smart contracts).
Why important: dApps are the future of applications โ they are transparent and decentralized.
Simple explanation: Like a regular app, but it connects to the blockchain.
Real-life example: Uniswap is a dApp for trading tokens.
School example: A student builds a dApp for a project.
Home example: A family uses a dApp for tasks.
Nigerian example: A Nigerian developer builds a dApp.
Illustration:
+----------------------+
| dApp = |
| Frontend + |
| Smart contracts |
| โ Decentralized |
+----------------------+
Mini summary: A dApp is an application that connects to the blockchain.
Definition: ethers.js is a library that allows you to interact with Ethereum from a JavaScript frontend.
Why important: It is the most popular library for connecting dApps to the blockchain.
Simple explanation: Like a bridge between your app and the blockchain.
Real-life example: A dApp uses ethers.js to read contract data.
School example: A student uses ethers.js for a project.
Home example: A hobbyist uses ethers.js.
Nigerian example: A Nigerian developer uses ethers.js.
Illustration:
dApp โ ethers.js โ Blockchain
Mini summary: ethers.js connects your dApp to the blockchain.
Definition: A frontend is the user interface of your dApp. It is usually built with HTML, CSS, and JavaScript.
Why important: Users interact with your dApp through the frontend.
Simple explanation: Like the website part of your app.
Real-life example: A React app for a token dApp.
School example: A student builds a frontend for a project.
Home example: A family uses a frontend to interact.
Nigerian example: A developer builds a frontend in Nigeria.
Illustration:
Frontend:
๐ HTML
๐จ CSS
๐ง JavaScript
Mini summary: The frontend is the user interface of your dApp.
Definition: MetaMask is a wallet that lets users interact with dApps. You can connect it to your dApp.
Why important: Users need a wallet to sign transactions.
Simple explanation: Like logging in with your wallet.
Real-life example: A dApp connects to MetaMask.
School example: A student connects MetaMask.
Home example: A family uses MetaMask.
Nigerian example: A user connects MetaMask in Nigeria.
Illustration:
dApp โ MetaMask โ Blockchain
Mini summary: MetaMask connects users to your dApp.
Definition: Reading from the contract means getting data from the blockchain without sending a transaction.
Why important: This is how you display information like balances.
Simple explanation: Like checking your balance without paying.
Real-life example: A dApp reads a token balance.
School example: A student reads data from a contract.
Home example: A family reads a contract.
Nigerian example: A user reads a balance.
Illustration:
const balance = await contract.balanceOf(address);
Mini summary: Reading gets data from the contract.
Definition: Writing to the contract means sending a transaction that changes the state of the contract.
Why important: This is how users interact with your dApp โ like transferring tokens.
Simple explanation: Like clicking a button that does something.
Real-life example: A dApp transfers tokens.
School example: A student writes to a contract.
Home example: A family updates a contract.
Nigerian example: A user transfers tokens.
Illustration:
await contract.transfer(to, amount);
Mini summary: Writing sends a transaction to change the contract.
Definition: A simple dApp has a frontend that connects to a smart contract.
Why important: This is the first step to building more complex dApps.
Simple explanation: Like a website that connects to the blockchain.
Real-life example: A token dApp with balance and transfer.
School example: A student builds a simple dApp.
Home example: A family builds a simple dApp.
Nigerian example: A developer builds a Nigerian dApp.
Illustration:
dApp:
1. Connect wallet
2. View balance
3. Transfer tokens
Mini summary: A simple dApp connects a frontend to a contract.
Definition: You have learned the basics of building dApps.
Why important: You can now build your own dApps.
Simple explanation: You know how to connect a frontend to the blockchain.
Real-life example: You can build a token dApp.
School example: You can build a project.
Home example: You can build a family dApp.
Nigerian example: You can build a Nigerian dApp.
Illustration:
+----------------------+
| You can build |
| dApps! ๐ |
| โ Frontend |
| โ ethers.js |
| โ Smart contracts |
+----------------------+
Mini summary: You are now ready to build dApps!
// Connect to MetaMask
const provider = new ethers.providers.Web3Provider(window.ethereum);
await provider.send("eth_requestAccounts", []);
const signer = provider.getSigner();
// Contract instance
const contract = new ethers.Contract(contractAddress, abi, signer);
// Read balance
const balance = await contract.balanceOf(await signer.getAddress());
console.log("Balance:", balance.toString());
// Transfer tokens
await contract.transfer(to, amount);
Frontend (React) โ ethers.js โ Blockchain (Smart Contracts)
| Read | Write |
|---|---|
| Free | Costs gas |
| No transaction | Sends transaction |
| Instant | Takes time |
// Connect wallet
const provider = new ethers.providers.Web3Provider(window.ethereum);
await provider.send("eth_requestAccounts", []);
const signer = provider.getSigner();
// Read balance
const balance = await contract.balanceOf(address);
// Transfer
await contract.transfer(to, amount);
In this final module, we learned about building dApps. We discovered that dApps are decentralized applications that connect a frontend to smart contracts. We learned about ethers.js, MetaMask, reading and writing to contracts, and built a simple dApp. With this knowledge, you can now build complete dApps. Great job completing this course!
Match the word with its meaning:
| Word | Meaning |
|---|---|
| 1. dApp | A) A library for interacting with Ethereum |
| 2. ethers.js | B) A decentralized application |
| 3. MetaMask | C) A wallet for dApps |
| 4. Reading | D) Getting data from the contract |
| 5. Writing | E) Sending a transaction |
(Answers: 1-B, 2-A, 3-C, 4-D, 5-E)
Scenario 1: You want to build a dApp that displays a user's token balance. What would you do?
Scenario 2: You want to build a dApp that allows users to transfer tokens. What would you do?
In groups of 3, build a simple dApp with a frontend and a smart contract. Test it together.
Build a simple dApp that connects to a token contract. Display the user's balance and allow them to transfer tokens.
Build a complete dApp with a frontend and a smart contract. Include reading and writing functions.
Build a dApp that allows users to check their token balance and transfer tokens. Use ethers.js and MetaMask.
Build a dApp with a voting contract. Allow users to view proposals and vote. Use ethers.js and React.
Fill-in-the-blank: 1-dApp, 2-ethers.js, 3-MetaMask, 4-Reading, 5-Writing
True/False: 1-T, 2-T, 3-F, 4-F, 5-T
Matching: 1-B, 2-A, 3-C, 4-D, 5-E
Congratulations! You have completed all 6 modules of the "Blockchain and Smart Contract Development" course. You now have the skills to build, test, deploy, and connect smart contracts to a frontend.
Here are some ideas for your next steps:
Thank you for being part of this course. You are now a blockchain developer! ๐
End of Module Six ยท Building dApps
End of Course ยท Blockchain and Smart Contract Development