A complete introduction into the wild world of Web3 - the decentralized web. Is Web 3.0 the future or is it all hype? Learn about the technologies and patterns used when building a dapp on the blockchain. https://fireship.io

#web3 #blockchain #webdev

🔗 Resources

Hardhat docs https://hardhat.org/
Web3 is BS https://www.stephendiehl.com/blog/web3-bullshit.html
Elon Tweet https://twitter.com/elonmusk/status/1466320998379175939
Solidity in 100 Seconds https://youtu.be/kdvVwGrV7ec
Chat Dapp https://youtu.be/J5x3OMXjgMc

Check out these channels:

HashLips for NFTs @HashLipsAcademy 
Nader Dabit for Web3 Wisdom @naderdabit 

📚 Chapters

00:00 Web1 vs Web2 vs Web3
00:48 Is Web 3.0 all hype?
02:05 Do you need crypto to build dapps?
02:38 How do dapps work?
03:42 How does user authentication work?
04:12 What is a token or NFT?
05:33 How to build a Web3 Frontend?
06:45 How to build a Web3 Backend?
07:41 How do I test a dapp with Ethereum?
08:11 Do I store all data in the blockchain?
08:47 Where to start?

🔥 Get More Content - Upgrade to PRO

Upgrade to Fireship PRO at https://fireship.io/pro
Use code lORhwXd2 for 25% off your first payment. 

🎨 My Editor Settings

- Atom One Dark 
- vscode-icons
- Fira Code Font

🔖 Topics Covered

-  Top 10 web3 questions
- Web Explained
- Building dapps on Ethereum blockchain
- Ethereum gas fees explained
- Web3 basics for beginners
- Web3 app architecture
- Fungible vs Non-Fungible Tokens
2024-02-04T13:52:18.431Z
nova-2
2-general-nova
2024-01-09.29447
30089e05-99d1-4376-b32e-c263170674af
7962026c-7bf7-4bdf-bbc8-a6be5643e6a0
34ded1fde46e5b95315d676ef6739a3aad8c297b7672812dc9542204095a29f6
67875a7f-c9c4-48a0-aa55-5bdb8a91c34a
deprecated
In the beginning, God created Web 1.0.
It was an information superhighway of documents connected together by hyperlinks, and it was good.
Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others.
It led to massive centralized tech corporations that dominate the flow of information and money on the Internet.
We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation.
Today's video is a complete introduction into the wild world of web 3 point o.
As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again.
We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it.
Like, is web 3 all hype and should I even while they're getting into it.
I would say yes to both.
There's obviously a ton of hype around Web 3, but not everybody's buying it.
Even Papa Elon said that it sounds like BS just stay a few days ago.
I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders.
That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for.
And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level.
The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself.
You could use the same logic for TikTok.
Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal.
Here's how I look at it.
I think the best case scenario is that it's like 1992 and things are just getting started.
Web 3 is going to grow for another 10 years and completely revolutionized the way the world works.
On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it.
For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived.
If Ethereum declines 90%, Just imagine what that will do to hashtag web 3.
But my next question is do we even need cryptocurrency to build decentralized apps?
I built a decentralized app on this channel just a few months ago with gun.
Js.
It uses cryptography and web technologies and has no requirement for a blockchain technology at all.
Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users.
That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there.
It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible.
Speaking of which, how does a decentralized app or dApp on the blockchain work?
Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there.
Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network.
Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data.
When you broadcast Action.
You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction.
This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources.
If you want things done faster, you pay more gas.
Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS.
For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts.
A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way.
So how does user identity work in a decentralized app?
Unlike web 2 point o, the end user owns all of their data.
There's no need for for you, the developer, to collect a username and password.
The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else.
The user can connect their wallet to a browser plug in like MetaMask.
Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT.
Um, but what is an NFT?
Well, Actually, what is a token?
A token is just a digital asset.
We already looked at one example in this video, ether, the currency of Ethereum.
It's a digital asset that you can trade with other people.
But the cool thing is that developers can create their own tokens in the form of smart contracts.
It's basically just a number in a smart contract mapped to a wallet address.
In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop.
Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich.
Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything.
In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size.
One coin is always worth the exact same as another coin.
But tokens can also represent assets that are not exactly alike.
Like baseball cards, real estate, digital artwork, and stuff like that.
These are examples of non fungible tokens.
Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency.
You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app.
Now, I wanna switch gears and talk about technology.
What does the front end of a web 3 application look like?
For the most part, it's not much different than a normal web app.
You'll likely use a UI library like React along with all your other favorite front end tools.
Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app.
Now the question becomes, how do we as developers connect to MetaMask?
It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet.
Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier.
The 2 most popular options are web3.js and ethers.js.
They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain.
Here's an example of how the process might look.
We create a provider with the window Ethereum object, which is used to then create a signer.
You can think of that as the current user.
We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself.
And that's all it really takes to initiate a transaction on the front end.
The front end stuff is pretty simple, but what does the back end look like in a web 3 application?
Well, it's probably a lot different than what you're to as an old timey web developer.
Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts.
There are frameworks out there designed to streamline development.
2 of the most popular options are hard hat and truffle.
When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language.
I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain.
That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate.
Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain.
It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain.
Now you might be wondering, How do I test this code before I deploy it?
Because I have no idea if this thing actually works.
That's another thing that Hardhat and Truffle can help you out with.
They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing.
In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network.
In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that.
That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain?
The answer is no.
It's not efficient or necessary to store everything in the blockchain.
And that's where off chain storage comes in.
In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only.
The most common solution is the interplanetary file system or IPFS.
It's a decentralized way to share files, very similar to the way BitTorrent works.
And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB.
If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started?
I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that.
The easiest way to start messing around Smart contracts is with the Remix IDE.
It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript.
On YouTube, there are a couple of really good channels that I wanna mention.
1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3.
I'm gonna go ahead and wrap things up there.
If you have more questions about Web 3, let me know in the comments.
And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger.
Thanks for watching, and I will see you in the next one.

Speaker 0: In the beginning, God created Web 1.0. It was an information superhighway of documents connected together by hyperlinks, and it was good. Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others. It led to massive centralized tech corporations that dominate the flow of information and money on the Internet. We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation.

Today's video is a complete introduction into the wild world of web 3 point o. As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again. We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it. Like, is web 3 all hype and should I even while they're getting into it. I would say yes to both.

There's obviously a ton of hype around Web 3, but not everybody's buying it. Even Papa Elon said that it sounds like BS just stay a few days ago. I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders. That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for. And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level.

The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself. You could use the same logic for TikTok. Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal. Here's how I look at it. I think the best case scenario is that it's like 1992 and things are just getting started.

Web 3 is going to grow for another 10 years and completely revolutionized the way the world works. On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it. For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived. If Ethereum declines 90%, Just imagine what that will do to hashtag web 3. But my next question is do we even need cryptocurrency to build decentralized apps?

I built a decentralized app on this channel just a few months ago with gun. Js. It uses cryptography and web technologies and has no requirement for a blockchain technology at all. Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users. That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there.

It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible. Speaking of which, how does a decentralized app or dApp on the blockchain work? Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there. Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network. Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data.

When you broadcast Action. You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction. This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources. If you want things done faster, you pay more gas. Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS.

For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts. A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way. So how does user identity work in a decentralized app? Unlike web 2 point o, the end user owns all of their data. There's no need for for you, the developer, to collect a username and password.

The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else. The user can connect their wallet to a browser plug in like MetaMask. Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT. Um, but what is an NFT? Well, Actually, what is a token?

A token is just a digital asset. We already looked at one example in this video, ether, the currency of Ethereum. It's a digital asset that you can trade with other people. But the cool thing is that developers can create their own tokens in the form of smart contracts. It's basically just a number in a smart contract mapped to a wallet address.

In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop. Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich. Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything. In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size. One coin is always worth the exact same as another coin.

But tokens can also represent assets that are not exactly alike. Like baseball cards, real estate, digital artwork, and stuff like that. These are examples of non fungible tokens. Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency. You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app.

Now, I wanna switch gears and talk about technology. What does the front end of a web 3 application look like? For the most part, it's not much different than a normal web app. You'll likely use a UI library like React along with all your other favorite front end tools. Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app.

Now the question becomes, how do we as developers connect to MetaMask? It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet. Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier. The 2 most popular options are web3.js and ethers.js. They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain.

Here's an example of how the process might look. We create a provider with the window Ethereum object, which is used to then create a signer. You can think of that as the current user. We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself. And that's all it really takes to initiate a transaction on the front end.

The front end stuff is pretty simple, but what does the back end look like in a web 3 application? Well, it's probably a lot different than what you're to as an old timey web developer. Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts. There are frameworks out there designed to streamline development. 2 of the most popular options are hard hat and truffle.

When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language. I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain. That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate. Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain. It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain.

Now you might be wondering, How do I test this code before I deploy it? Because I have no idea if this thing actually works. That's another thing that Hardhat and Truffle can help you out with. They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing. In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network.

In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that. That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain? The answer is no. It's not efficient or necessary to store everything in the blockchain. And that's where off chain storage comes in.

In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only. The most common solution is the interplanetary file system or IPFS. It's a decentralized way to share files, very similar to the way BitTorrent works. And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB. If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started?

I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that. The easiest way to start messing around Smart contracts is with the Remix IDE. It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript. On YouTube, there are a couple of really good channels that I wanna mention. 1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3.

I'm gonna go ahead and wrap things up there. If you have more questions about Web 3, let me know in the comments. And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger. Thanks for watching, and I will see you in the next one.
In the beginning, God created Web 1.0. It was an information superhighway of documents connected together by hyperlinks, and it was good. Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others. It led to massive centralized tech corporations that dominate the flow of information and money on the Internet. We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation. Today's video is a complete introduction into the wild world of web 3 point o. As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again. We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it.
youtube
telecommunications
video gaming
internet
technology
google
infrastructure
software development
websites
multimedia
networking
social media
god
Like, is web 3 all hype and should I even while they're getting into it. I would say yes to both. There's obviously a ton of hype around Web 3, but not everybody's buying it.
Even Papa Elon said that it sounds like BS just stay a few days ago. I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders. That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for. And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level. The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself. You could use the same logic for TikTok. Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal. Here's how I look at it. I think the best case scenario is that it's like 1992 and things are just getting started. Web 3 is going to grow for another 10 years and completely revolutionized the way the world works. On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it. For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived. If Ethereum declines 90%, Just imagine what that will do to hashtag web 3. But my next question is do we even need cryptocurrency to build decentralized apps? I built a decentralized app on this channel just a few months ago with gun. Js. It uses cryptography and web technologies and has no requirement for a blockchain technology at all. Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users. That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there. It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible. Speaking of which, how does a decentralized app or dApp on the blockchain work? Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there. Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network. Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data. When you broadcast Action. You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction. This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources.
cryptocurrency
internet
commerce
amazon
banking
telecommunications
computers
technology
If you want things done faster, you pay more gas. Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS. For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts. A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way.
cryptocurrency
So how does user identity work in a decentralized app? Unlike web 2 point o, the end user owns all of their data. There's no need for for you, the developer, to collect a username and password.
The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else. The user can connect their wallet to a browser plug in like MetaMask. Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT. Um, but what is an NFT? Well, Actually, what is a token? A token is just a digital asset. We already looked at one example in this video, ether, the currency of Ethereum. It's a digital asset that you can trade with other people. But the cool thing is that developers can create their own tokens in the form of smart contracts. It's basically just a number in a smart contract mapped to a wallet address. In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop. Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich. Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything. In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size. One coin is always worth the exact same as another coin. But tokens can also represent assets that are not exactly alike. Like baseball cards, real estate, digital artwork, and stuff like that. These are examples of non fungible tokens. Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency. You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app. Now, I wanna switch gears and talk about technology. What does the front end of a web 3 application look like?
cryptocurrency
internet
technology
candy
commerce
customer support
capitalism
For the most part, it's not much different than a normal web app.
You'll likely use a UI library like React along with all your other favorite front end tools. Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app.
cryptocurrency
Now the question becomes, how do we as developers connect to MetaMask? It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet.
Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier. The 2 most popular options are web3.js and ethers.js. They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain. Here's an example of how the process might look. We create a provider with the window Ethereum object, which is used to then create a signer. You can think of that as the current user. We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself.
cryptocurrency
And that's all it really takes to initiate a transaction on the front end. The front end stuff is pretty simple, but what does the back end look like in a web 3 application?
Well, it's probably a lot different than what you're to as an old timey web developer. Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts. There are frameworks out there designed to streamline development. 2 of the most popular options are hard hat and truffle. When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language. I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain. That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate. Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain.
databases
software development
patents
software
intellectual property
It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain. Now you might be wondering, How do I test this code before I deploy it? Because I have no idea if this thing actually works.
That's another thing that Hardhat and Truffle can help you out with. They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing. In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network. In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that. That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain?
internet
cryptocurrency
The answer is no. It's not efficient or necessary to store everything in the blockchain. And that's where off chain storage comes in. In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only.
The most common solution is the interplanetary file system or IPFS. It's a decentralized way to share files, very similar to the way BitTorrent works. And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB. If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started? I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that. The easiest way to start messing around Smart contracts is with the Remix IDE.
databases
networking
internet
youtube
computers
It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript.
On YouTube, there are a couple of really good channels that I wanna mention. 1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3. I'm gonna go ahead and wrap things up there. If you have more questions about Web 3, let me know in the comments.
youtube
internet
And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger. Thanks for watching, and I will see you in the next one.
In the beginning, God created Web 1.0. It was an information superhighway of documents connected together by hyperlinks, and it was good. Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others. It led to massive centralized tech corporations that dominate the flow of information and money on the Internet. We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation. Today's video is a complete introduction into the wild world of web 3 point o. As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again. We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it. Like, is web 3 all hype and should I even while they're getting into it. I would say yes to both. There's obviously a ton of hype around Web 3, but not everybody's buying it. Even Papa Elon said that it sounds like BS just stay a few days ago. I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders. That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for. And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level. The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself. You could use the same logic for TikTok. Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal. Here's how I look at it. I think the best case scenario is that it's like 1992 and things are just getting started. Web 3 is going to grow for another 10 years and completely revolutionized the way the world works. On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it. For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived. If Ethereum declines 90%, Just imagine what that will do to hashtag web 3. But my next question is do we even need cryptocurrency to build decentralized apps? I built a decentralized app on this channel just a few months ago with gun. Js. It uses cryptography and web technologies and has no requirement for a blockchain technology at all. Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users. That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there. It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible. Speaking of which, how does a decentralized app or dApp on the blockchain work? Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there. Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network. Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data. When you broadcast Action. You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction. This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources. If you want things done faster, you pay more gas. Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS. For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts. A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way. So how does user identity work in a decentralized app? Unlike web 2 point o, the end user owns all of their data. There's no need for for you, the developer, to collect a username and password. The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else. The user can connect their wallet to a browser plug in like MetaMask. Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT. Um, but what is an NFT? Well, Actually, what is a token? A token is just a digital asset. We already looked at one example in this video, ether, the currency of Ethereum. It's a digital asset that you can trade with other people. But the cool thing is that developers can create their own tokens in the form of smart contracts. It's basically just a number in a smart contract mapped to a wallet address. In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop. Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich. Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything. In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size. One coin is always worth the exact same as another coin. But tokens can also represent assets that are not exactly alike. Like baseball cards, real estate, digital artwork, and stuff like that. These are examples of non fungible tokens. Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency. You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app. Now, I wanna switch gears and talk about technology. What does the front end of a web 3 application look like? For the most part, it's not much different than a normal web app. You'll likely use a UI library like React along with all your other favorite front end tools. Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app. Now the question becomes, how do we as developers connect to MetaMask? It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet. Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier. The 2 most popular options are web3.js and ethers.js. They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain. Here's an example of how the process might look. We create a provider with the window Ethereum object, which is used to then create a signer. You can think of that as the current user. We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself. And that's all it really takes to initiate a transaction on the front end. The front end stuff is pretty simple, but what does the back end look like in a web 3 application? Well, it's probably a lot different than what you're to as an old timey web developer. Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts. There are frameworks out there designed to streamline development. 2 of the most popular options are hard hat and truffle. When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language. I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain. That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate. Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain. It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain. Now you might be wondering, How do I test this code before I deploy it? Because I have no idea if this thing actually works. That's another thing that Hardhat and Truffle can help you out with. They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing. In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network. In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that. That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain? The answer is no. It's not efficient or necessary to store everything in the blockchain. And that's where off chain storage comes in. In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only. The most common solution is the interplanetary file system or IPFS. It's a decentralized way to share files, very similar to the way BitTorrent works. And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB. If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started? I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that. The easiest way to start messing around Smart contracts is with the Remix IDE. It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript. On YouTube, there are a couple of really good channels that I wanna mention. 1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3. I'm gonna go ahead and wrap things up there. If you have more questions about Web 3, let me know in the comments. And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger. Thanks for watching, and I will see you in the next one.
In
in
the
the
beginning,
beginning
God
god
created
created
Web
web
1.0.
1.0
It
it
was
was
an
an
information
information
superhighway
superhighway
of
of
documents
documents
connected
connected
together
together
by
by
hyperlinks,
hyperlinks
and
and
it
it
was
was
good.
good
Around
around
2004,
2004
we
we
saw
saw
the
the
emergence
emergence
of
of
web
web
2.0,
2.0
where
where
more
more
people
people
started
started
participating
participating
in
in
the
the
web
web
through
through
platforms
platforms
like
like
Facebook,
facebook
YouTube,
youtube
Twitter,
twitter
and
and
many
many
others.
others
It
it
led
led
to
to
massive
massive
centralized
centralized
tech
tech
corporations
corporations
that
that
dominate
dominate
the
the
flow
flow
of
of
information
information
and
and
money
money
on
on
the
the
Internet.
internet
We
we
live
live
in
in
interesting
interesting
times,
times
because
because
we're
we're
at
at
the
the
tipping
tipping
point
point
of
of
web
web
3
3
point
point
o,
o
a
a
decentralized
decentralized
but
but
secure
secure
Internet
internet
where
where
people
people
can
can
exchange
exchange
money
money
and
and
information
information
without
without
the
the
need
need
for
for
an
an
unnecessary
unnecessary
man,
man
like
like
a
a
bank
bank
or
or
tech
tech
corporation.
corporation
Today's
today's
video
video
is
is
a
a
complete
complete
introduction
introduction
into
into
the
the
wild
wild
world
world
of
of
web
web
3
3
point
point
o.
o
As
as
an
an
experienced
experienced
developer,
developer
it's
it's
humbling
humbling
to
to
get
get
into
into
because
because
it
it
makes
makes
to
to
feel
feel
like
like
you
you
know
know
nothing
nothing
again.
again
We'll
we'll
take
take
a
a
look
look
at
at
the
the
ecosystem
ecosystem
from
from
a
a
high
high
level
level
and
and
try
try
to
to
answer
answer
all
all
the
the
stupid
stupid
questions
questions
that
that
you'll
you'll
have
have
when
when
you
you
first
first
get
get
into
into
it.
it
Like,
like
is
is
web
web
3
3
all
all
hype
hype
and
and
should
should
I
i
even
even
while
while
they're
they're
getting
getting
into
into
it.
it
I
i
would
would
say
say
yes
yes
to
to
both.
both
There's
there's
obviously
obviously
a
a
ton
ton
of
of
hype
hype
around
around
Web
web
3,
3
but
but
not
not
everybody's
everybody's
buying
buying
it.
it
Even
even
Papa
papa
Elon
elon
said
said
that
that
it
it
sounds
sounds
like
like
BS
bs
just
just
stay
stay
a
a
few
few
days
days
ago.
ago
I
i
love
love
the
the
vision
vision
of
of
putting
putting
the
the
web
web
back
back
in
in
the
the
hands
hands
of
of
the
the
people,
people
but
but
the
the
reality
reality
is
is
that
that
many
many
of
of
these
these
companies
companies
and
and
the
the
cryptocurrencies
cryptocurrencies
that
that
they
they
issue,
issue
are
are
controlled
controlled
by
by
vulture
vulture
capitalists
capitalists
and
and
Silicon
silicon
Valley
valley
insiders.
insiders
That's
that's
not
not
always
always
the
the
case,
case
but
but
much
much
of
of
the
the
industry
industry
is
is
propped
propped
up
up
by
by
FOMO,
fomo
and
and
there's
there's
a
a
lot
lot
of
of
scams
scams
and
and
shady
shady
stuff
stuff
to
to
watch
watch
out
out
for.
for
And
and
there
there
are
are
smart
smart
people
people
out
out
there
there
making
making
a
a
very
very
good
good
argument
argument
about
about
how
how
web
web
3
3
doesn't
doesn't
have
have
the
the
computing
computing
power,
power
bandwidth,
bandwidth
or
or
storage
storage
to
to
scale
scale
on
on
in
in
a
a
practical
practical
level.
level
The
the
shills
shills
out
out
there
there
will
will
tell
tell
you
you
that
that
crypto
crypto
is
is
growing
growing
faster
faster
than
than
the
the
Internet
internet
was
was
in
in
the
the
nineties,
nineties
but
but
that's
that's
a
a
dumb
dumb
argument
argument
because
because
crypto
crypto
is
is
built
built
on
on
top
top
of
of
the
the
Internet
internet
itself.
itself
You
you
could
could
use
use
the
the
same
same
logic
logic
for
for
TikTok.
tiktok
Crypto
crypto
is
is
never
never
going
going
to
to
be
be
as
as
revolutionary
revolutionary
as
as
the
the
Internet
internet
was,
was
but
but
that
that
doesn't
doesn't
mean
mean
it's
it's
not
not
going
going
to
to
be
be
a
a
big
big
deal.
deal
Here's
here's
how
how
I
i
look
look
at
at
it.
it
I
i
think
think
the
the
best
best
case
case
scenario
scenario
is
is
that
that
it's
it's
like
like
1992
1992
and
and
things
things
are
are
just
just
getting
getting
started.
started
Web
web
3
3
is
is
going
going
to
to
grow
grow
for
for
another
another
10
10
years
years
and
and
completely
completely
revolutionized
revolutionized
the
the
way
way
the
the
world
world
works.
works
On
on
the
the
other
other
hand,
hand
the
the
worst
worst
case
case
is
is
that
that
the
the
cryptocurrency
cryptocurrency
bubble
bubble
has
has
already
already
burst,
burst
and
and
as
as
it
it
crashes,
crashes
it's
it's
going
going
to
to
take
take
web
web
3
3
down
down
with
with
it.
it
For
for
perspective,
perspective
When
when
the
the
dotcom
dotcom
bubble
bubble
burst,
burst
the
the
stock
stock
of
of
Amazon
amazon
declined
declined
by
by
90%,
90%
and
and
they
they
were
were
one
one
of
of
the
the
lucky
lucky
companies
companies
that
that
actually
actually
survived.
survived
If
if
Ethereum
ethereum
declines
declines
90%,
90%
Just
just
imagine
imagine
what
what
that
that
will
will
do
do
to
to
hashtag
hashtag
web
web
3.
3
But
but
my
my
next
next
question
question
is
is
do
do
we
we
even
even
need
need
cryptocurrency
cryptocurrency
to
to
build
build
decentralized
decentralized
apps?
apps
I
i
built
built
a
a
decentralized
decentralized
app
app
on
on
this
this
channel
channel
just
just
a
a
few
few
months
months
ago
ago
with
with
gun.
gun
Js.
js
It
it
uses
uses
cryptography
cryptography
and
and
web
web
technologies
technologies
and
and
has
has
no
no
requirement
requirement
for
for
a
a
blockchain
blockchain
technology
technology
at
at
all.
all
Decentralized
decentralized
tech
tech
has
has
Been
been
around
around
forever,
forever
like
like
peer
peer
to
to
peer
peer
file
file
sharing
sharing
with
with
Napster
napster
back
back
in
in
the
the
nineties,
nineties
or
or
BitTorrent,
bittorrent
which
which
has
has
a
a
100,000,000
100,000,000
monthly
monthly
active
active
users.
users
That
that
being
being
Instead,
instead
cryptocurrency
cryptocurrency
is
is
still
still
kind
kind
of
of
essential
essential
because
because
you
you
need
need
some
some
form
form
of
of
payment
payment
to
to
build
build
up
up
a
a
creator
creator
economy,
economy
and
and
banks
banks
are
are
not
not
an
an
acceptable
acceptable
solution
solution
there.
there
It
it
also
also
provides
provides
the
the
incentive
incentive
for
for
people
people
to
to
provide
provide
the
the
computing
computing
infrastructure
infrastructure
that
that
make
make
the
the
whole
whole
thing
thing
possible.
possible
Speaking
speaking
of
of
which,
which
how
how
does
does
a
a
decentralized
decentralized
app
app
or
or
dApp
dapp
on
on
the
the
blockchain
blockchain
work?
work
Let's
let's
use
use
the
the
Ethereum
ethereum
blockchain
blockchain
as
as
our
our
Although,
although
there
there
are
are
many
many
alternatives
alternatives
with
with
different
different
trade
trade
offs
offs
out
out
there.
there
Ethereum
ethereum
is
is
like
like
a
a
giant
giant
network
network
of
of
computers,
computers
where
where
all
all
the
the
participants
participants
agree
agree
on
on
the
the
same
same
state
state
of
of
the
the
data
data
throughout
throughout
the
the
network.
network
Now
now
ether
ether
is
is
the
the
cryptocurrency
cryptocurrency
on
on
the
the
Ethereum
ethereum
network,
network
which
which
is
is
used
used
to
to
create
create
transactions
transactions
that
that
change
change
the
the
state
state
of
of
the
the
data.
data
When
when
you
you
broadcast
broadcast
Action.
action
You
you
also
also
offer
offer
up
up
a
a
small
small
amount
amount
of
of
ether,
ether
which
which
provides
provides
incentive
incentive
for
for
another
another
computer
computer
in
in
the
the
network
network
to
to
execute
execute
the
the
transaction.
transaction
This
this
is
is
also
also
called
called
a
a
gas
gas
And
and
conceptually,
conceptually
it's
it's
similar
similar
to
to
paying
paying
AWS
aws
for
for
cloud
cloud
computing
computing
resources.
resources
If
if
you
you
want
want
things
things
done
done
faster,
faster
you
you
pay
pay
more
more
gas.
gas
Normally,
normally
when
when
you
you
build
build
a
a
web
web
application,
application
you
you
write
write
some
some
back
back
end
end
code,
code
then
then
deploy
deploy
it
it
to
to
a
a
centralized
centralized
server
server
like
like
AWS.
aws
For
for
a
a
decentralized
decentralized
app
app
on
on
the
the
Blockchain,
blockchain
your
your
back
back
end
end
code
code
is
is
contained
contained
in
in
a
a
smart
smart
contract,
contract
usually
usually
written
written
in
in
the
the
Solidity
solidity
language,
language
which
which
is
is
just
just
an
an
application
application
that
that
lives
lives
on
on
the
the
Blockchain
blockchain
That
that
can
can
govern
govern
the
the
behavior
behavior
between
between
multiple
multiple
accounts.
accounts
A
a
decentralized
decentralized
app
app
also
also
needs
needs
to
to
have
have
a
a
front
front
end,
end
which
which
can
can
be
be
built
built
just
just
like
like
a
a
normal
normal
website,
website
except
except
for
for
the
the
fact
fact
that
that
User
user
authentication
authentication
works
works
in
in
a
a
completely
completely
different
different
way.
way
So
so
how
how
does
does
user
user
identity
identity
work
work
in
in
a
a
decentralized
decentralized
app?
app
Unlike
unlike
web
web
2
2
point
point
o,
o
the
the
end
end
user
user
owns
owns
all
all
of
of
their
their
data.
data
There's
there's
no
no
need
need
for
for
for
for
you,
you
the
the
developer,
developer
to
to
collect
collect
a
a
username
username
and
and
password.
password
The
the
end
end
user
user
has
has
a
a
public
public
wallet
wallet
address
address
that
that
can
can
receive
receive
payments
payments
and
and
a
a
private
private
key
key
that
that
can
can
sign
sign
transactions
transactions
to
to
send
send
payments
payments
to
to
someone
someone
else.
else
The
the
user
user
can
can
connect
connect
their
their
wallet
wallet
to
to
a
a
browser
browser
plug
plug
in
in
like
like
MetaMask.
metamask
Your
your
front
front
end
end
application,
application
like
like
a
a
React
react
app,
app
for
for
example,
example
can
can
then
then
interact
interact
with
with
that
that
user's
user's
wallet
wallet
to
to
do
do
something
something
interesting
interesting
in
in
the
the
UI,
ui
like
like
purchase
purchase
an
an
NFT.
nft
Um,
um
but
but
what
what
is
is
an
an
NFT?
nft
Well,
well
Actually,
actually
what
what
is
is
a
a
token?
token
A
a
token
token
is
is
just
just
a
a
digital
digital
asset.
asset
We
we
already
already
looked
looked
at
at
one
one
example
example
in
in
this
this
video,
video
ether,
ether
the
the
currency
currency
of
of
Ethereum.
ethereum
It's
it's
a
a
digital
digital
asset
asset
that
that
you
you
can
can
trade
trade
with
with
other
other
people.
people
But
but
the
the
cool
cool
thing
thing
is
is
that
that
developers
developers
can
can
create
create
their
their
own
own
tokens
tokens
in
in
the
the
form
form
of
of
smart
smart
contracts.
contracts
It's
it's
basically
basically
just
just
a
a
number
number
in
in
a
a
smart
smart
contract
contract
mapped
mapped
to
to
a
a
wallet
wallet
address.
address
In
in
fact,
fact
if
if
I
i
wanted
wanted
to
to
create
create
my
my
own
own
cryptocurrency,
cryptocurrency
I
i
could
could
do
do
so
so
by
by
writing
writing
a
a
smart
smart
contract
contract
that
that
gives
gives
myself
myself
an
an
initial
initial
balance
balance
of
of
1
1
quadrillion
quadrillion
tokens,
tokens
which
which
I
i
can
can
then
then
sell
sell
to
to
you
you
for
for
$1
$1
a
a
pop.
pop
Then
then
you
you
sell
sell
it
it
to
to
your
your
friends
friends
for
for
$2,
$2
then
then
they
they
sell
sell
it
it
to
to
their
their
friends
friends
for
for
$3,
$3
and
and
we
we
all
all
get
get
super
super
rich.
rich
Now,
now
I
i
know
know
that
that
sounds
sounds
like
like
a
a
Ponzi
ponzi
scheme,
scheme
But
but
everything
everything
is
is
a
a
goddamn
goddamn
Ponzi
ponzi
scheme,
scheme
with
with
the
the
US
us
dollar
dollar
being
being
the
the
leader
leader
in
in
this
this
space,
space
so
so
no
no
need
need
to
to
worry
worry
about
about
ethics
ethics
or
or
anything.
anything
In
in
this
this
example,
example
we've
we've
created
created
a
a
fungible
fungible
token,
token
which
which
means
means
that
that
one
one
token
token
It's
it's
always
always
the
the
same
same
value
value
as
as
another
another
token
token
of
of
the
the
same
same
size.
size
One
one
coin
coin
is
is
always
always
worth
worth
the
the
exact
exact
same
same
as
as
another
another
coin.
coin
But
but
tokens
tokens
can
can
also
also
represent
represent
assets
assets
that
that
are
are
not
not
exactly
exactly
alike.
alike
Like
like
baseball
baseball
cards,
cards
real
real
estate,
estate
digital
digital
artwork,
artwork
and
and
stuff
stuff
like
like
that.
that
These
these
are
are
examples
examples
of
of
non
non
fungible
fungible
tokens.
tokens
Each
each
token
token
is
is
unique
unique
and
and
represents
represents
a
a
different
different
item,
item
which
which
means
means
that
that
its
its
actual
actual
market
market
value
value
might
might
be
be
different
different
when
when
you
you
go
go
to
to
trade
trade
it
it
in
in
for
for
some
some
other
other
kind
kind
of
of
currency.
currency
You've
you've
probably
probably
seen
seen
the
the
NFT
nft
craze
craze
with
with
entire
entire
marketplaces
marketplaces
like
like
OpenSea
opensea
is
is
popping
popping
up
up
to
to
sell
sell
digital
digital
artwork
artwork
as
as
non
non
fungible
fungible
tokens,
tokens
which
which
is
is
actually
actually
a
a
great
great
example
example
of
of
a
a
highly
highly
polished
polished
web
web
3
3
app.
app
Now,
now
I
i
wanna
wanna
switch
switch
gears
gears
and
and
talk
talk
about
about
technology.
technology
What
what
does
does
the
the
front
front
end
end
of
of
a
a
web
web
3
3
application
application
look
look
like?
like
For
for
the
the
most
most
part,
part
it's
it's
not
not
much
much
different
different
than
than
a
a
normal
normal
web
web
app.
app
You'll
you'll
likely
likely
use
use
a
a
UI
ui
library
library
like
like
React
react
along
along
with
with
all
all
your
your
other
other
favorite
favorite
front
front
end
end
tools.
tools
Things
things
become
become
different
different
when
when
we
we
start
start
talking
talking
about
about
user
user
authentication
authentication
because,
because
like
like
I
i
mentioned
mentioned
earlier,
earlier
the
the
end
end
user
user
uses
uses
a
a
plug
plug
in
in
like
like
MetaMask
metamask
to
to
make
make
their
their
public
public
wallet
wallet
details
details
available
available
to
to
a
a
decentralized
decentralized
app.
app
Now
now
the
the
question
question
becomes,
becomes
how
how
do
do
we
we
as
as
developers
developers
connect
connect
to
to
MetaMask?
metamask
It's
it's
actually
actually
really
really
easy
easy
because
because
MetaMask
metamask
creates
creates
a
a
Global
global
object
object
on
on
the
the
browser
browser
window
window
that
that
we
we
can
can
use
use
to
to
access
access
details
details
about
about
the
the
wallet.
wallet
Now,
now
figuring
figuring
out
out
what
what
to
to
do
do
with
with
this
this
data
data
is
is
actually
actually
pretty
pretty
complicated,
complicated
but
but
luckily,
luckily
there's
there's
libraries
libraries
out
out
there
there
to
to
make
make
our
our
lives
lives
easier.
easier
The
the
2
2
most
most
popular
popular
options
options
are
are
web3.js
web3.js
and
and
ethers.js.
ethers.js
They
they
provide
provide
a
a
JavaScript
javascript
based
based
API,
api
making
making
it
it
much
much
easier
easier
to
to
interact
interact
with
with
the
the
end
end
user
user
and
and
smart
smart
contracts
contracts
on
on
the
the
blockchain.
blockchain
Here's
here's
an
an
example
example
of
of
how
how
the
the
process
process
might
might
look.
look
We
we
create
create
a
a
provider
provider
with
with
the
the
window
window
Ethereum
ethereum
object,
object
which
which
is
is
used
used
to
to
then
then
create
create
a
a
signer.
signer
You
you
can
can
think
think
of
of
that
that
as
as
the
the
current
current
user.
user
We
we
then
then
connect
connect
to
to
a
a
smart
smart
contract,
contract
then
then
change
change
the
the
state
state
of
of
it,
it
which
which
will
will
require
require
the
the
user's
user's
approval
approval
and
and
is
is
based
based
on
on
the
the
logic
logic
and
and
the
the
smart
smart
contract
contract
itself.
itself
And
and
that's
that's
all
all
it
it
really
really
takes
takes
to
to
initiate
initiate
a
a
transaction
transaction
on
on
the
the
front
front
end.
end
The
the
front
front
end
end
stuff
stuff
is
is
pretty
pretty
simple,
simple
but
but
what
what
does
does
the
the
back
back
end
end
look
look
like
like
in
in
a
a
web
web
3
3
application?
application
Well,
well
it's
it's
probably
probably
a
a
lot
lot
different
different
than
than
what
what
you're
you're
to
to
as
as
an
an
old
old
timey
timey
web
web
developer.
developer
Instead
instead
of
of
a
a
server
server
and
and
database,
database
like
like
PHP
php
and
and
MySQL,
mysql
you'll
you'll
be
be
writing
writing
smart
smart
contracts.
contracts
There
there
are
are
frameworks
frameworks
out
out
there
there
designed
designed
to
to
streamline
streamline
development.
development
2
2
of
of
the
the
most
most
popular
popular
options
options
are
are
hard
hard
hat
hat
and
and
truffle.
truffle
When
when
you
you
add
add
them
them
to
to
your
your
project,
project
they'll
they'll
Give
give
you
you
a
a
place
place
to
to
write
write
a
a
smart
smart
contract
contract
in
in
the
the
Solidity
solidity
programming
programming
language.
language
I
i
have
have
a
a
100
100
second
second
video
video
if
if
you
you
wanna
wanna
learn
learn
more,
more
but
but
it's
it's
basically
basically
an
an
object
object
oriented
oriented
language
language
Designed
designed
specifically
specifically
for
for
writing
writing
smart
smart
contracts
contracts
on
on
the
the
blockchain.
blockchain
That
that
may
may
sound
sound
intimidating,
intimidating
but
but
there's
there's
a
a
project
project
out
out
there
there
called
called
OpenZeppelin
openzeppelin
that
that
provides
provides
templates
templates
for
for
writing
writing
smart
smart
contracts
contracts
That
that
complied
complied
to
to
industry
industry
standards,
standards
making
making
it
it
extremely
extremely
easy
easy
to
to
implement
implement
reliable
reliable
code
code
out
out
of
of
the
the
gate.
gate
Now
now
the
the
other
other
thing
thing
a
a
development
development
tool
tool
chain
chain
will
will
do
do
for
for
you
you
is
is
provide
provide
script
script
to
to
deploy
deploy
your
your
smart
smart
contract
contract
to
to
the
the
blockchain.
blockchain
It's
it's
just
just
a
a
simple
simple
node
node
script
script
that
that
signs
signs
a
a
contract
contract
with
with
your
your
credentials
credentials
and
and
deploys
deploys
it
it
to
to
an
an
address
address
on
on
the
the
blockchain.
blockchain
Now
now
you
you
might
might
be
be
wondering,
wondering
How
how
do
do
I
i
test
test
this
this
code
code
before
before
I
i
deploy
deploy
it?
it
Because
because
I
i
have
have
no
no
idea
idea
if
if
this
this
thing
thing
actually
actually
works.
works
That's
that's
another
another
thing
thing
that
that
Hardhat
hardhat
and
and
Truffle
truffle
can
can
help
help
you
you
out
out
with.
with
They
they
can
can
create
create
a
a
testing
testing
network
network
on
on
localhost,
localhost
Then
then
generate
generate
a
a
bunch
bunch
of
of
wallet
wallet
addresses
addresses
loaded
loaded
up
up
with
with
fake
fake
crypto
crypto
that
that
you
you
can
can
use
use
for
for
testing.
testing
In
in
the
the
browser,
browser
you
you
can
can
connect
connect
MetaMask
metamask
to
to
your
your
testing
testing
network
network
instead
instead
of
of
operating
operating
on
on
the
the
actual
actual
Ethereum
ethereum
network.
network
In
in
addition,
addition
if
if
you're
you're
building
building
a
a
serious
serious
app,
app
you
you
should
should
consider
consider
writing
writing
automated
automated
tests
tests
for
for
it,
it
and
and
there's
there's
a
a
library
library
called
called
Waffle
waffle
that
that
can
can
help
help
you
you
do
do
that.
that
That's
that's
what
what
a
a
basic
basic
decentralized
decentralized
app
app
looks
looks
like,
like
but
but
one
one
more
more
stupid
stupid
question
question
you
you
might
might
have
have
is,
is
do
do
I
i
store
store
all
all
my
my
data
data
in
in
the
the
blockchain?
blockchain
The
the
answer
answer
is
is
no.
no
It's
it's
not
not
efficient
efficient
or
or
necessary
necessary
to
to
store
store
everything
everything
in
in
the
the
blockchain.
blockchain
And
and
that's
that's
where
where
off
off
chain
chain
storage
storage
comes
comes
in.
in
In
in
some
some
cases,
cases
data
data
might
might
be
be
too
too
large
large
to
to
store
store
on
on
the
the
blockchain,
blockchain
or
or
it
it
might
might
need
need
to
to
be
be
modified
modified
or
or
deleted,
deleted
which
which
is
is
not
not
possible
possible
in
in
a
a
blockchain
blockchain
where
where
all
all
the
the
data
data
is
is
read
read
only.
only
The
the
most
most
common
common
solution
solution
is
is
the
the
interplanetary
interplanetary
file
file
system
system
or
or
IPFS.
ipfs
It's
it's
a
a
decentralized
decentralized
way
way
to
to
share
share
files,
files
very
very
similar
similar
to
to
the
the
way
way
BitTorrent
bittorrent
works.
works
And
and
there's
there's
also
also
databases
databases
built
built
on
on
top
top
of
of
IPFS,
ipfs
as
as
like,
like
Warbit
warbit
DB
db
and
and
ThreadDB,
threaddb
which
which
is
is
kind
kind
of
of
like
like
a
a
peer
peer
to
to
peer
peer
version
version
of
of
MongoDB.
mongodb
If
if
you've
you've
made
made
it
it
this
this
far
far
in
in
the
the
video,
video
you
you
might
might
be
be
thinking,
thinking
web
web
3
3
looks
looks
awesome,
awesome
Um,
um
but
but
how
how
do
do
I
i
get
get
started?
started
I'm
i'm
working
working
on
on
a
a
full
full
step
step
by
by
step
step
tutorial
tutorial
that
that
will
will
be
be
out
out
on
on
the
the
channel
channel
soon,
soon
so
so
make
make
sure
sure
you're
you're
subscribed
subscribed
to
to
catch
catch
that.
that
The
the
easiest
easiest
way
way
to
to
start
start
messing
messing
around
around
Smart
smart
contracts
contracts
is
is
with
with
the
the
Remix
remix
IDE.
ide
It's
it's
a
a
browser
browser
based
based
tool
tool
that
that
will
will
handle
handle
all
all
the
the
compilation
compilation
and
and
everything
everything
for
for
you,
you
so
so
you
you
don't
don't
have
have
to
to
mess
mess
around
around
with
with
any
any
JavaScript.
javascript
On
on
YouTube,
youtube
there
there
are
are
a
a
couple
couple
of
of
really
really
good
good
channels
channels
that
that
I
i
wanna
wanna
mention.
mention
1
1
is
is
HashLips
hashlips
for
for
working
working
with
with
NFTs,
nfts
and
and
the
the
other
other
one
one
is
is
NaderDabit
naderdabit
just
just
for
for
all
all
around
around
wisdom
wisdom
related
related
to
to
Web
web
3.
3
I'm
i'm
gonna
gonna
go
go
ahead
ahead
and
and
wrap
wrap
things
things
up
up
there.
there
If
if
you
you
have
have
more
more
questions
questions
about
about
Web
web
3,
3
let
let
me
me
know
know
in
in
the
the
comments.
comments
And
and
I'm
i'm
curious
curious
to
to
know
know
if
if
you
you
think
think
web
web
3
3
is
is
the
the
future
future
or
or
if
if
you
you
think
think
it's
it's
just
just
a
a
big
big
nothingburger.
nothingburger
Thanks
thanks
for
for
watching,
watching
and
and
I
i
will
will
see
see
you
you
in
in
the
the
next
next
one.
one
success
The development of web 3.0, a decentralized but secure Internet, is essential for creating a creator economy. cryptocurrencies are controlled by vulture capitalists and Silicon Valley insiders, and the industry is moving towards decentralization and blockchain technology. The benefits of cryptocurrency include the ability to create decentralized apps and a front-end for developers to create their own cryptocurrency, and the importance of creating a creator economy. The process of creating a blockchain is discussed, including the use of openZeppelin and HashLips for building smart contracts and testing networks.
Is Web3 all Hype? Top 10 Web 3.0 Questions & Answers
In the beginning, God created Web 1.0. It was an information superhighway of documents connected together by hyperlinks, and it was good. Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others. It led to massive centralized tech corporations that dominate the flow of information and money on the Internet. We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation. Today's video is a complete introduction into the wild world of web 3 point o. As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again. We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it. Like, is web 3 all hype and should I even while they're getting into it. I would say yes to both. There's obviously a ton of hype around Web 3, but not everybody's buying it. Even Papa Elon said that it sounds like BS just stay a few days ago. I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders. That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for. And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level. The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself. You could use the same logic for TikTok. Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal. Here's how I look at it. I think the best case scenario is that it's like 1992 and things are just getting started. Web 3 is going to grow for another 10 years and completely revolutionized the way the world works. On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it. For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived. If Ethereum declines 90%, Just imagine what that will do to hashtag web 3. But my next question is do we even need cryptocurrency to build decentralized apps? I built a decentralized app on this channel just a few months ago with gun. Js. It uses cryptography and web technologies and has no requirement for a blockchain technology at all. Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users. That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there. It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible. Speaking of which, how does a decentralized app or dApp on the blockchain work? Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there. Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network. Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data. When you broadcast Action. You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction. This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources. If you want things done faster, you pay more gas. Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS. For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts. A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way. So how does user identity work in a decentralized app? Unlike web 2 point o, the end user owns all of their data. There's no need for for you, the developer, to collect a username and password. The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else. The user can connect their wallet to a browser plug in like MetaMask. Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT. Um, but what is an NFT? Well, Actually, what is a token? A token is just a digital asset. We already looked at one example in this video, ether, the currency of Ethereum. It's a digital asset that you can trade with other people. But the cool thing is that developers can create their own tokens in the form of smart contracts. It's basically just a number in a smart contract mapped to a wallet address. In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop. Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich. Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything. In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size. One coin is always worth the exact same as another coin. But tokens can also represent assets that are not exactly alike. Like baseball cards, real estate, digital artwork, and stuff like that. These are examples of non fungible tokens. Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency. You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app. Now, I wanna switch gears and talk about technology. What does the front end of a web 3 application look like? For the most part, it's not much different than a normal web app. You'll likely use a UI library like React along with all your other favorite front end tools. Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app. Now the question becomes, how do we as developers connect to MetaMask? It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet. Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier. The 2 most popular options are web3.js and ethers.js. They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain. Here's an example of how the process might look. We create a provider with the window Ethereum object, which is used to then create a signer. You can think of that as the current user. We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself. And that's all it really takes to initiate a transaction on the front end. The front end stuff is pretty simple, but what does the back end look like in a web 3 application? Well, it's probably a lot different than what you're to as an old timey web developer. Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts. There are frameworks out there designed to streamline development. 2 of the most popular options are hard hat and truffle. When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language. I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain. That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate. Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain. It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain. Now you might be wondering, How do I test this code before I deploy it? Because I have no idea if this thing actually works. That's another thing that Hardhat and Truffle can help you out with. They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing. In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network. In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that. That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain? The answer is no. It's not efficient or necessary to store everything in the blockchain. And that's where off chain storage comes in. In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only. The most common solution is the interplanetary file system or IPFS. It's a decentralized way to share files, very similar to the way BitTorrent works. And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB. If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started? I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that. The easiest way to start messing around Smart contracts is with the Remix IDE. It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript. On YouTube, there are a couple of really good channels that I wanna mention. 1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3. I'm gonna go ahead and wrap things up there. If you have more questions about Web 3, let me know in the comments. And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger. Thanks for watching, and I will see you in the next one.
The development of web 3.0, a decentralized but secure Internet, is essential for creating a creator economy. cryptocurrencies are controlled by vulture capitalists and Silicon Valley insiders, and the industry is moving towards decentralization and blockchain technology. The benefits of cryptocurrency include the ability to create decentralized apps and a front-end for developers to create their own cryptocurrency, and the importance of creating a creator economy. The process of creating a blockchain is discussed, including the use of openZeppelin and HashLips for building smart contracts and testing networks.

        [INST]
        You are youtuber called Fireship you make engaging high-intensity and entertaining coding tutorials and tech news. 
        you covers a wide range of topics relevant to programmers, aiming to help them learn and improve their skills quickly.
        
        Given the title of the video : Is Web3 all Hype? Top 10 Web 3.0 Questions & Answers 
        and a small summary : The development of web 3.0, a decentralized but secure Internet, is essential for creating a creator economy. cryptocurrencies are controlled by vulture capitalists and Silicon Valley insiders, and the industry is moving towards decentralization and blockchain technology. The benefits of cryptocurrency include the ability to create decentralized apps and a front-end for developers to create their own cryptocurrency, and the importance of creating a creator economy. The process of creating a blockchain is discussed, including the use of openZeppelin and HashLips for building smart contracts and testing networks.
        [/INST]
        
        Generate the video : In the beginning, God created Web 1.0. It was an information superhighway of documents connected together by hyperlinks, and it was good. Around 2004, we saw the emergence of web 2.0, where more people started participating in the web through platforms like Facebook, YouTube, Twitter, and many others. It led to massive centralized tech corporations that dominate the flow of information and money on the Internet. We live in interesting times, because we're at the tipping point of web 3 point o, a decentralized but secure Internet where people can exchange money and information without the need for an unnecessary man, like a bank or tech corporation. Today's video is a complete introduction into the wild world of web 3 point o. As an experienced developer, it's humbling to get into because it makes to feel like you know nothing again. We'll take a look at the ecosystem from a high level and try to answer all the stupid questions that you'll have when you first get into it. Like, is web 3 all hype and should I even while they're getting into it. I would say yes to both. There's obviously a ton of hype around Web 3, but not everybody's buying it. Even Papa Elon said that it sounds like BS just stay a few days ago. I love the vision of putting the web back in the hands of the people, but the reality is that many of these companies and the cryptocurrencies that they issue, are controlled by vulture capitalists and Silicon Valley insiders. That's not always the case, but much of the industry is propped up by FOMO, and there's a lot of scams and shady stuff to watch out for. And there are smart people out there making a very good argument about how web 3 doesn't have the computing power, bandwidth, or storage to scale on in a practical level. The shills out there will tell you that crypto is growing faster than the Internet was in the nineties, but that's a dumb argument because crypto is built on top of the Internet itself. You could use the same logic for TikTok. Crypto is never going to be as revolutionary as the Internet was, but that doesn't mean it's not going to be a big deal. Here's how I look at it. I think the best case scenario is that it's like 1992 and things are just getting started. Web 3 is going to grow for another 10 years and completely revolutionized the way the world works. On the other hand, the worst case is that the cryptocurrency bubble has already burst, and as it crashes, it's going to take web 3 down with it. For perspective, When the dotcom bubble burst, the stock of Amazon declined by 90%, and they were one of the lucky companies that actually survived. If Ethereum declines 90%, Just imagine what that will do to hashtag web 3. But my next question is do we even need cryptocurrency to build decentralized apps? I built a decentralized app on this channel just a few months ago with gun. Js. It uses cryptography and web technologies and has no requirement for a blockchain technology at all. Decentralized tech has Been around forever, like peer to peer file sharing with Napster back in the nineties, or BitTorrent, which has a 100,000,000 monthly active users. That being Instead, cryptocurrency is still kind of essential because you need some form of payment to build up a creator economy, and banks are not an acceptable solution there. It also provides the incentive for people to provide the computing infrastructure that make the whole thing possible. Speaking of which, how does a decentralized app or dApp on the blockchain work? Let's use the Ethereum blockchain as our Although, there are many alternatives with different trade offs out there. Ethereum is like a giant network of computers, where all the participants agree on the same state of the data throughout the network. Now ether is the cryptocurrency on the Ethereum network, which is used to create transactions that change the state of the data. When you broadcast Action. You also offer up a small amount of ether, which provides incentive for another computer in the network to execute the transaction. This is also called a gas And conceptually, it's similar to paying AWS for cloud computing resources. If you want things done faster, you pay more gas. Normally, when you build a web application, you write some back end code, then deploy it to a centralized server like AWS. For a decentralized app on the Blockchain, your back end code is contained in a smart contract, usually written in the Solidity language, which is just an application that lives on the Blockchain That can govern the behavior between multiple accounts. A decentralized app also needs to have a front end, which can be built just like a normal website, except for the fact that User authentication works in a completely different way. So how does user identity work in a decentralized app? Unlike web 2 point o, the end user owns all of their data. There's no need for for you, the developer, to collect a username and password. The end user has a public wallet address that can receive payments and a private key that can sign transactions to send payments to someone else. The user can connect their wallet to a browser plug in like MetaMask. Your front end application, like a React app, for example, can then interact with that user's wallet to do something interesting in the UI, like purchase an NFT. Um, but what is an NFT? Well, Actually, what is a token? A token is just a digital asset. We already looked at one example in this video, ether, the currency of Ethereum. It's a digital asset that you can trade with other people. But the cool thing is that developers can create their own tokens in the form of smart contracts. It's basically just a number in a smart contract mapped to a wallet address. In fact, if I wanted to create my own cryptocurrency, I could do so by writing a smart contract that gives myself an initial balance of 1 quadrillion tokens, which I can then sell to you for $1 a pop. Then you sell it to your friends for $2, then they sell it to their friends for $3, and we all get super rich. Now, I know that sounds like a Ponzi scheme, But everything is a goddamn Ponzi scheme, with the US dollar being the leader in this space, so no need to worry about ethics or anything. In this example, we've created a fungible token, which means that one token It's always the same value as another token of the same size. One coin is always worth the exact same as another coin. But tokens can also represent assets that are not exactly alike. Like baseball cards, real estate, digital artwork, and stuff like that. These are examples of non fungible tokens. Each token is unique and represents a different item, which means that its actual market value might be different when you go to trade it in for some other kind of currency. You've probably seen the NFT craze with entire marketplaces like OpenSea is popping up to sell digital artwork as non fungible tokens, which is actually a great example of a highly polished web 3 app. Now, I wanna switch gears and talk about technology. What does the front end of a web 3 application look like? For the most part, it's not much different than a normal web app. You'll likely use a UI library like React along with all your other favorite front end tools. Things become different when we start talking about user authentication because, like I mentioned earlier, the end user uses a plug in like MetaMask to make their public wallet details available to a decentralized app. Now the question becomes, how do we as developers connect to MetaMask? It's actually really easy because MetaMask creates a Global object on the browser window that we can use to access details about the wallet. Now, figuring out what to do with this data is actually pretty complicated, but luckily, there's libraries out there to make our lives easier. The 2 most popular options are web3.js and ethers.js. They provide a JavaScript based API, making it much easier to interact with the end user and smart contracts on the blockchain. Here's an example of how the process might look. We create a provider with the window Ethereum object, which is used to then create a signer. You can think of that as the current user. We then connect to a smart contract, then change the state of it, which will require the user's approval and is based on the logic and the smart contract itself. And that's all it really takes to initiate a transaction on the front end. The front end stuff is pretty simple, but what does the back end look like in a web 3 application? Well, it's probably a lot different than what you're to as an old timey web developer. Instead of a server and database, like PHP and MySQL, you'll be writing smart contracts. There are frameworks out there designed to streamline development. 2 of the most popular options are hard hat and truffle. When you add them to your project, they'll Give you a place to write a smart contract in the Solidity programming language. I have a 100 second video if you wanna learn more, but it's basically an object oriented language Designed specifically for writing smart contracts on the blockchain. That may sound intimidating, but there's a project out there called OpenZeppelin that provides templates for writing smart contracts That complied to industry standards, making it extremely easy to implement reliable code out of the gate. Now the other thing a development tool chain will do for you is provide script to deploy your smart contract to the blockchain. It's just a simple node script that signs a contract with your credentials and deploys it to an address on the blockchain. Now you might be wondering, How do I test this code before I deploy it? Because I have no idea if this thing actually works. That's another thing that Hardhat and Truffle can help you out with. They can create a testing network on localhost, Then generate a bunch of wallet addresses loaded up with fake crypto that you can use for testing. In the browser, you can connect MetaMask to your testing network instead of operating on the actual Ethereum network. In addition, if you're building a serious app, you should consider writing automated tests for it, and there's a library called Waffle that can help you do that. That's what a basic decentralized app looks like, but one more stupid question you might have is, do I store all my data in the blockchain? The answer is no. It's not efficient or necessary to store everything in the blockchain. And that's where off chain storage comes in. In some cases, data might be too large to store on the blockchain, or it might need to be modified or deleted, which is not possible in a blockchain where all the data is read only. The most common solution is the interplanetary file system or IPFS. It's a decentralized way to share files, very similar to the way BitTorrent works. And there's also databases built on top of IPFS, as like, Warbit DB and ThreadDB, which is kind of like a peer to peer version of MongoDB. If you've made it this far in the video, you might be thinking, web 3 looks awesome, Um, but how do I get started? I'm working on a full step by step tutorial that will be out on the channel soon, so make sure you're subscribed to catch that. The easiest way to start messing around Smart contracts is with the Remix IDE. It's a browser based tool that will handle all the compilation and everything for you, so you don't have to mess around with any JavaScript. On YouTube, there are a couple of really good channels that I wanna mention. 1 is HashLips for working with NFTs, and the other one is NaderDabit just for all around wisdom related to Web 3. I'm gonna go ahead and wrap things up there. If you have more questions about Web 3, let me know in the comments. And I'm curious to know if you think web 3 is the future or if you think it's just a big nothingburger. Thanks for watching, and I will see you in the next one.
        