 And we're going to start with the keynote and introduction. So we have with us Skyler with DevCon and DevConnet lead of Ethereum, and then Austin Griffith, developer onboarding of Ethereum, and Kevin Jones, developer relations and HNOTE. So I'll let you guys hear to them about the amazing things that we're going to do today. Awesome. Cool. OK, thank you, Marco. Good morning, everyone. Good morning. GMGM, welcome to the Ethereum Builder Day. So thanks all for coming. Thanks all for being early. Today, we're going to give an introduction to Ethereum. So we're guessing that many people here are not that familiar with Ethereum. Some of you may be developers. Some of you may not be developers. So today, at the end, you will hopefully have a better understanding of what is Ethereum, why it's important, how you can build on it, how you can use it, and things like that. So to kick it off, I'm going to ask some quick polls to get an idea of who we have here in the audience. First question is, who here has heard of Ethereum before? Before this week, who had heard of Ethereum? Raise your hand if you had heard of Ethereum before this week. OK. OK. OK, good number of people, maybe half. Who has used Ethereum before this week? Who has used Ethereum? OK. Couple of hands up, nice. All right, who is a university student? Who is a student in university? Cool, nice. All right, and who is a developer? Like, who is either a student learning to be a developer, a programmer? Raise your hand high, high. OK, nice. Cool, good amount of developers. What kind of developer? What kind of languages are you learning here? JavaScript. Who's learning JavaScript? JavaScript, web development, JavaScript. What else? Rust, anyone learning Rust? Rust, some Rust developers, cool. What else? What? Other languages, other Python. Python, anyone learning Python? Nice, Python, cool. OK, great. OK, great. So those are some quick polls to help us better understand where you are all coming from. I will quickly introduce some high-level concepts. So I work with the Ethereum Foundation. We have a couple of people here who are with the Ethereum Foundation. And maybe to explain to you all what the Ethereum Foundation is, the Ethereum Foundation is an organization that exists within the Ethereum ecosystem to support the Ethereum ecosystem. So the Ethereum Foundation helps support development of the protocol. It helps create education for education of Ethereum around the world like we are doing now. It also organizes an annual event as well, an event that's called DevCon. So some of us are also on the team, specifically within the Ethereum Foundation that's called the DevCon team. The DevCon is basically the global reunion of the Ethereum ecosystem. So the Ethereum ecosystem consists of people all around the world, developers, researchers, economists, cryptographers, artists of all types of people. They live all around the world. And DevCon is our attempt to reunite the global community. And every year, it goes to a different place. So last DevCon was in Bogota, Colombia. The year before that, it was in Osaka, Japan. The year before that, it was in the Czech Republic in Prague. The year before that, it was in Mexico, Cancun. And this year, it is coming to Bangkok, Thailand. So your neighbor, very close, I think a quick flight. And it will be in November. So I have a quick video that I'd like to play that they will play now, I think, which is basically to give you an overview of what happened at last DevCon in case you are interested in coming to this year's DevCon in Bangkok. Ready? Cool. So that was last DevCon. That was in Bogota, Colombia in 2022. And obviously, that DevCon was a lot more focused on Latin America. This year, we're bringing it to Thailand. And we're focused on all of Southeast Asia. So that is largely why we are here today to try to create more education around Ethereum, the impact it can have. And hopefully, to see a lot of you at DevCon, or at least a part of the Ethereum community in the future in Southeast Asia. So next, I would like to introduce Austin. Austin will explain to you all about the Biddle Guild and ScaffoldEath and some other stuff that you're going to be learning about today. Thank you, Skylar. Yeah, BuildGild is very developer-focused. We spend a lot of time creating material and tooling for building on Ethereum. So if you're interested in learning how to build on Ethereum, that's what we're going to be doing throughout the day today. There's going to be lots of introductions to Ethereum, but also we'll be going through specifically our workshop content. Tam will do a workshop on, I think, the token vendor. And Kevin will do a workshop on the staking app, or maybe the other way around, staking up token vendor. And I'll do kind of an initial one and get you guys set up. So our goal today will be to teach you how to build on Ethereum if you're a developer. And it's not just like how, but the what and the why. We'll get into that. And we'll use this curriculum called Speedrun Ethereum. Speedrun Ethereum is a way for a technical person to quickly get the download of how to build on Ethereum. And it takes you through a handful of challenges that we will guide you through today. And it's using this tool underneath. You'll see the little stickers. Tool called ScappledEath, which is a DAP building, a decentralized app building toolkit, and we'll teach you the ins and outs of that. And that's what we'll do today and we'll make sure we prepare you for that. Do I hand it here or to you? Back to Skyler. Thank you all for being here. Cool. All right, so you're gonna hear from Austin and Kevin Moore later today. So I wanna run through quickly what the agenda will be for, will be today. So right now we are in the opening keynote. Next you'll hear from Natan, who will explain to you what is Ethereum and introduction to Ethereum from the very basics. You'll then hear from Kevin, who will talk to you about Intro to Blockchain, Intro to the Ethereum Virtual Machine and Solidity Development, for those looking at developers. You'll then hear from Harith, which will talk, who will talk about the Southeast Asia Ethereum community, how you can get involved, how you can create your own community, perhaps here in Vietnam. We'll hear then from Jakub, who works with ethereum.org about how you can join the ethereum.org community, perhaps translating content into Vietnamese or into your local language. Jakub will then talk about Web 3 Pie, the Zen of Web 3 Pie. So if you are a Python developer, this might be an interesting talk for you, the Zen of Web 3 Pie. Afterwards, Austin will run through Scaffold E2, how to build a decentralized app. You'll then go through Speedrun Ethereum, more discussion around building decentralized apps, more Speedrun Ethereum. So this part is for developers, especially. So bring your laptops, get ready to code, get ready to learn how to deploy and develop applications on Ethereum. And then this afternoon later, we'll have some talks about data indexing, what does that mean, how to do it. You can learn about zero knowledge proofs at four o'clock. We'll have a talk about zero knowledge proofs, which is a really new cryptographic primitive that is really powerful. So it enables privacy, enables a lot of things, and you'll learn about what that is. And then you can learn also about multi-party computation. Nam is actually from Vietnam here. He works with the Ethereum Foundation and he'll give you an introduction to MPC, multi-party computation. And that's basically the agenda for today. So expect to learn a lot, expect to have some fun, and we'll have some breaks in between. So with that, I'll pass it off to Nhat Thanh, who will give you an introduction to Ethereum. Guys, if anyone wants to follow in Vietnamese, there is an app, a translation app that does the live translation, scan the QR code, and you can hear our wonderful, very fast-speaking guests in Vietnamese. Enjoy. Juan, thank you so much for coming today. I will give you a quick introduction on Ethereum. We'll go back to the basics and go back through memory lane of Ethereum. And I will give you a little bit of overview of the landscape of Ethereum coming back from the basics. I'm Nhat Thanh, I'm part of the programming, I'm a part of the DevCon team. I'm programming lead, and this is a team part of the Ethereum Foundation. So yeah, first, a little bit about me. I was fascinated by financial technologies, led me to discover Ethereum in 2015. I joined full-time in 2017, joined in Consensus, started working on projects like decentralized finance, finance projects, also joined Ethereum France. We're leading the community around Ethereum in France. I helped launching projects, like gaming projects on the blockchain, ZK projects that you will hear about later today. And today, yes, I'm supporting the ecosystem full-time, mainly with the Ethereum Foundation. So we're organizing DevCon that you've heard about. We've also done DevCon.net class here in Istanbul. And yeah, also vice president of Ethereum France, we do community initiatives like FCC, the FCC Week happening in Paris this year in Brussels. Also the DeFi Security Summit, and I have a podcast about Ethereum in French. So if you speak French, please listen to this one. But yeah, so in my talk, we'll review where Ethereum comes from. We, I will give you basically a very high level overview of Ethereum. Without entering into the technical details, because Kevin will do that right after me and much better than I could. But I think the idea is to give you an overview of the landscape, what happened in Ethereum. So we'll review the timeline of Ethereum very, very quickly and give you also use about the future of Ethereum. And also if I have time, talk a little bit about the links between Ethereum and open source. There are people waiting outside by the way. I'm not sure if they can enter, but just checking. Close it, all right. All right, so, oh, much better. All right, so the beginning of Ethereum, it all started with Bitcoin. It was launched in 2009 Bitcoin in response to the 2008 financial crisis. And you can see that in the first block ever generated on the blockchain, there was a reference to the Times article in 2009. So clearly stated the objective and the purpose of Bitcoin. It was created by someone called Satoshi Nakamoto. It's a pseudonymous founder. We don't know who he is really and there are still theories up to this day. Like yesterday there was a new theory on Satoshi Nakamoto. It has been deleted, so probably very true. Check that out. So this pseudonymous founder released a paper in 2008 called Bitcoin, a peer-to-peer electronic cash system and pretty much stated the objective of Bitcoin. That was aimed at being a peer-to-peer transactional system that worked with a currency that is called Bitcoin with a lower case B. It always introduced another concept that was the blockchain with a capital B and the blockchain is called Bitcoin. Today it's mostly used as a store of value and also basically to, you can change internationally, you can, sorry, send internationally money to your peers using this protocol. The body theorem now. It was created in 2014 and officially launched in 2015. It was released by someone called Vitalik Baturin. Very smart computer scientist. Also he won like a petition in math. He was also writing articles on Bitcoin. And so he released this paper at age 20 saying Ethereum, a next generation smart contracting decentralized application platform. That was largely inspired by Bitcoin taking the same concepts and values. But the goal was really to extend the capabilities of blockchain beyond money. And we'll see that a bit later today. The purpose of Ethereum is really to extend and to democratize the use of that underlying technology that we call blockchain. So the blockchain itself is called Ethereum. It works with a cryptocurrency called Ether or ETH that you will use to pay transaction fees on the network. So yeah, what is a blockchain? Very briefly, a blockchain is made of blocks and blocks are made of transactions. Transactions are basically objects that users send to each other or that they will send to applications to interact with them. So that's where the name comes from but what it is, it's basically a peer-to-peer network of computers that maintains a distributed ledger. So that basically have the record of all transactions since history of the blockchain and it's also worth mentioning that it is running with what we call consensus mechanism and economies for the network to work in an independent manner. So tokens will be here to incentivize all participants to behave in a correct way. And we'll talk about this a bit later as well. But basically about the features of a blockchain, when you build an application on a blockchain, when an application lies on a blockchain, we can say that it is censorship resistance in a way that it's also permissionless. People do not have to ask for permission to use a blockchain or to even develop an application on the blockchain, you just do it. No one can prevent you from using the blockchain and that's a very important feature. It's also available 24 seven, it never stops. It is decentralized so it's not relying on centralized parties. It is trustless so it does remove the need to trust other parties. And it's also transparent and open. So it's publicly auditable by anyone and anyone can see the whole history at any time. And this is a very, very important feature. About Ethereum, again, we'll let my colleagues describe that technically, but it is a general purpose blockchain, so I mentioned that Bitcoin was a blockchain mainly for financial applications, mainly to send money, mainly to hold value. Well, Ethereum is a general purpose blockchain so it aims at doing many other things. You can develop any kind of application on the blockchain using Ethereum and you can do any type of use case. Very briefly, I'll talk about its components, very, very high level. So you have the Ethereum virtual machine that is basically executing the logic of smart contracts. So smart contracts are used to develop applications on the blockchain. You have the Ethereum network with nodes and validators and nodes hold like a copy of the whole history of the blockchain and you have validators that ensure that all transactions that go through Ethereum are correct, are valid and they will earn cryptocurrencies for that. They will earn ether for that. And yeah, we can see again the blocks, that hold all the transaction of the blockchains, but this is a very, very high level overview. If you know how traditional application works, I think it's interesting to compare the two. That's again, a very high level overview, but in traditional applications, you have front end, backend and database. Well, you can view Ethereum as replacing the backend and the database. You can use the Ethereum blockchain as a decentralized database that will also emulate backend parts of traditional applications. If we dive a little bit deeper into that, users will still interact with applications using a browser very in a classic manner. You will use a signer for that. A signer is also what we call a wallet or your account. So you will interact with front end of your application in the same way that you do with traditional ones. And you have what we call provider that also allows user not to use a node. Apparently you have to go through nodes to or run your own node to use a blockchain. Well, you emulate that with providers, basically, interestingly in that graph, and we'll talk about these later on. So I wanted to mention them. There are layer two scaling solutions. You hear a lot about them when you hear about Ethereum. They basically allow Ethereum applications to inherit from Ethereum security without, but with like higher throughput. And so today most applications are actually being developed on layer two scaling solutions. So I think it's good for you to see that now. About what you can build with Ethereum, I think you can do two main things. One is building applications that were used to be centralized in a more decentralized fashion. That was a table published by Vitalik in a recent article that shows the different things you can build with Ethereum in a more decentralized fashion. I think, for example, you can look at the banking system that Ethereum is providing alternatives for. So you can use stable coins to send money abroad instead of going to the banking system. For example, you can use ETH of the currency and you can use Ethereum for global payments, basically. Another interesting thing you can do is, for example, build decentralized social media that allow you to remain in control of your data, to remain the owner of like your social graph, basically. And so that's the one big aspect of what you can build with Ethereum, decentralize the traditional style, decentralize the centralized applications. But I think it also brings a whole new branch of applications that comes with new behaviors, new ways of working. And for example, with what we call DAOS that can be used to replace corporations. DAOS are like decentralized autonomous organizations and with them come a lot of new behaviors and new ways of working in a more decentralized and autonomous manner. Now I will try to give you a rough overview of the timeline of Ethereum. So since the inception for you to have a lot of different terms, an idea of what, yeah, we've been through since the creation of Ethereum and hopefully it will give you a better idea of where we stand. So as I mentioned, it was created in 2014 when the Ethereum white paper got released, the ETH presale happened, the Ethereum foundation that were part of got created, mainly to support the development of the protocol but also support the ecosystem as a whole. In 2015, the Ethereum protocol went live. Antities that consensus got formed that the business side of things a little bit and that worked as a startup studio that developed products like MetaMask or Infra that we use a lot today. And they played a role by onboarding companies, large companies like Microsoft that endorsed or helped to give some legitimacy to the technology. 2016, something called the Dow hack happened. It was a massive event on Ethereum. It was a hack, but worth mentioning that blockchains like Bitcoin or Ethereum never got hacked really, only applications on top of them. So historically the blockchains have never been hacked but some applications can get hacked, some applications can have some vulnerabilities and that's what happened with that contract. So there was a big story at the time. Money got stolen and the community decided to hard fork and retrieve the phone that caused a lot of drama and that was interesting at the time. So if you want to read more about this, you will have plenty of information online but that was a big, big event at the time. Moving forward, in these years, after 2017, we really started to test the limits of the technology. In 2017, we had what we call initial corner offerings, a lot of them, money, projects raising a lot of money using cryptocurrencies, a lot of good projects, but also bad projects raising a lot of money. It was a whole craze at the time. But also we've seen the first mainstream applications, I would say, or applications like cryptokillies that got a lot of traction and those were the first applications that showed a little bit that there were some limits on the network and this is where we started to think really deeply about scaling solutions, I think, and prioritize them a little bit. In 2019, the ICO slowed down and we felt the need to realign a little bit the values of the ecosystem and there was this very famous read from Vitalik that says that if all we accomplish is number means and immature plans about charting, then I will leave. Spoiler alert, he's here around, so I think we redirected quite well. 2019, we ended up having a lot of users and a lot of applications built on the Ethereum and we were moving in the right direction. I will pause right here and talk about a very interesting concept concerning blockchains in general. So you have three very important aspects of a blockchain. First is the security, second is decentralization and can anyone guess the third one that is missing from this graph? Anyone? All right, so it's scalability, actually. When you build a blockchain, you have to think about the three parameters, you have to keep them in mind and we'd say that, for example, Ethereum never compromise on security or decentralization but had to take hard choices from the beginning to be, let's say, less scalable, also because you did not need that at the time when the network was not that popular but with the first applications like CryptoKillies that we mentioned like the ICO, for example, well, we really felt the need for more scalability and you'll see that later in the roadmap, well, that got included. Moving forward again, by the way, I'm mentioning like protocol upgrade and also try to mention a little bit of what happened on the ecosystem side of things so you always have development on the blockchain itself and then everything that happens at the application layer so a lot of things happen in the ecosystem all the time. Okay, and so during 2020, a lot of things happened, we'll talk about what happened with the Bitcoin chain but it got launched. In 2020, we had what we called the DeFi Summer so very large decentralized finance applications got launched DeFi, what we call DeFi so protocols like Kampound or Aave, Aave is a very famous lending protocol on Ethereum where you can borrow and then money in a decentralized fashion, it got launched this summer. Uniswap is a very famous, for example, decentralized exchange where you can train money on Ethereum. Well, it got launched and this protocol got very, very popular in 2020 2021, an EIP got released. An EIP is an Ethereum improvement proposal so this is how upgrades get passed on the protocol. Well, the EIP 1559 changed the way fees were working on Ethereum in, let's say for the better and also prepare for the merge. NFT summer also happened. It was interesting to mention because I think it was probably today the biggest mainstream adoption of Ethereum, of the blockchain, like everyone was buying and trading NFTs and celebrities were endorsing NFTs. For example, what's interesting is that people were using the blockchain without noticing but when you hear about NFTs, most often it happened on, they were minted on Ethereum and that was an interesting time to notice. 2022, the merge happened. That was one of the biggest, if not the biggest upgrade on the Ethereum protocol where we moved away from proof of work to proof of stake so we changed the consensus mechanism of the blockchain, we changed the way that the blockchain got validated. So proof of work is also the consensus mechanism that Bitcoin uses and that Ethereum used to use. So it's called the merge because we launched what they call earlier on the Bitcoin chain, it launched in parallel and then in, so that was launched in 2020 and it got merged in 2023. So a few years later on and one of the big effect that he had was to, among other things, reduce the energy consumption by 99.95%. So miners, the validators on the Bitcoin blockchain, well, it consumes a lot of energy, well, we're not consuming energy anymore on Ethereum. We use for that validators that where you put Ethereum collateral to validate the blockchain but we'll talk about this today, I'm sure. But the massive upgrade happened a few years ago. Moving forward again, 2023, more upgrades. Stakers were able to withdraw their funds. A lot of developer interest in general. There were the rise of alternative blockchains. I mentioned that earlier, but like layer twos and even other layer ones, other blockchains got more popular. So a lot of excitement around the space globally. In 2024, another interesting upgrade happened with the Dancon hard fork. He brought something called prototype charting and we did the concept of data blobs that basically allow for layer twos on top of Ethereum to become more efficient. And so that was also a massive upgrade on the network. I'll talk now a little bit about the future of Ethereum with a little bit of the roadmap. So you have the name here of the six major faces of the roadmap. I said faces, but in reality, there are being developed in parallel. We reviewed a little bit the merge, the search. I've mentioned it because prototype charting was part of it and aims at making the blockchain faster. And then you have two, like you have the scourge and the verge that the scourge aims at improving things like the proof of stake designs in general, improving the way we deal with liquid staking and MEV. I won't go too much into the details, but you also have the verge and the verge that improve the way we deal with data on Ethereum and the splurge that brings a lot of new, interesting upgrades, like account instruction. I will actually zoom into that later on. So I mentioned that a couple of times, the search that includes prototype charting that includes what I call the EIP4844. As I mentioned now today, most applications get developed on layer twos. So those layer twos inherit from the Ethereum security, but with simply like a higher throughput. So for example, the upgrade that just got passed, we can see that it got much cheaper to use. So these are names of layer twos. So layer twos like arbitram that I presented yesterday or optimism, well, we can see that was before the upgrade and after the upgrade, you can see like a 10 to 100X throughput improvement. So that was a very important upgrade that got passed last month actually. And it's also interesting to mention because for years we've been talking about a rollup centering roadmap. So put everything on basically additional layers on top of Ethereum. And that will, this is how things will move forward. They will keep developing, I mean, layer twos will keep getting developed. We'll push users to use applications on top of layer twos instead of developing application on Ethereum. So this is a major path moving forward. And another, like a zoom on another major part of the roadmap with the upgrade called the splurge that aims at solving things like user experience. This is one of the main challenge that we face on Ethereum, how to make Ethereum simpler to use. And we aim with that to solve things like, sorry, to bring things like their kind of abstraction. And with that kind of abstraction and the EAP-43-37, well, we will enforce, we will allow things like smart contract wallets to happen that will allow to pay fees for the users or bring features like social recovery that allow users to use the platform. Allow users to forget their, basically, C-phrase or a passcode, if you will. So that will make it much better to use. I mean, applications will get simpler to use in the future. Okay, I have two minutes left. I will just finish by talking a little bit about links with open source software. And since we're at Forsesha today, basically, Ethereum itself is one of the largest example of an open source project that got a lot of funding. It got billions in funding, basically, and also now its value is worth more than billions. So I think that blockchain technology and token economies can bring a lot of, like the new ways for open source projects to get funded, to get monetized. And on top of things you can do, like crypto economies, well, you have solutions like Retro-PGF or Geek and Grants that are being developed on top of Ethereum and that enable and incentivize free and open source software to get funded. Yeah, in ways that was simply not possible before. So I do think that Ethereum and blockchain technologies bring an additional layer of incentives for free and open source software. And so it is, I think, an incentive for you to also start building on that using these technologies. I also wanted to mention Geek and Grants number 20. They have applications open right now. And so if you develop technologies that run blockchains or decentralized networks, or I think you should check this out. So I put the QR code there. It's open until April 16th, and I think, yeah, it could be very interesting for you to investigate. That was it for me. Thank you very much. It was dense, I went quick, but get assured that you will hear more about everything I mentioned today and you will be able to ask a lot of questions today. So I hope you will learn a lot from today's, like today's and yeah, thank you so much for coming. Thank you. Sweet, it works. So yeah, my name is Kevin Jones. I am a developer relations engineer working edge in node, working on the graph protocol, which is a decentralized data indexing protocol. I'll be giving a talk later, diving into that. But I also work and help out supporting the build guild, supporting the scaffold east. I do a lot of like teaching, teaching developers. So today's really is, I'm aiming to at least give you guys some high level overview of some of the concepts when it comes to blockchain because I know when I first got started, it was a little overwhelming with everything that I was learning. So this is just to give you guys at least a good case and obviously the learning to build on a blockchain is kind of a journey and you need to kind of go through it on your own terms, but we'll try to help you arm you as much as we can today. So before I explain like what is a blockchain? What is EVM and what is solidity? I just wanted to say like, maybe we need to talk about like why first? Like why do we actually even need blockchains, right? If we start out and we look at the existing architecture of applications and the evolution of the internet, we can start by first looking at the 1990s, right? The early web, right? It was a means for just getting like static information out. Like you wanted to take a website, you wanted to provide some data out so that people could visit your website and get some data and just look at things. Very static HTML pages, some images, maybe some JavaScript, but everything was very static, didn't change much. Then we saw this kind of like boom, right? The dot com boom you've heard before. And we started seeing more advanced protocols, things like HTTP, HTTPS, now HTTP2, TCP, UDP. We started to see the use of databases, right? Actually like storing data that could dynamically change and provide a dynamic experience, right? And this was kind of just where we're at today. I guess this is what you would call like web two in the crypto world, which I think is at the buzzword, but it's kind of where we're at right now. So the concepts for like a blockchain application is completely different, right? The idea is that you want to actually build infrastructure that is shared, right? So it's shared data, it's shared resources and it's different concepts. It's really a different way of thinking. First of all, everything is aims to be decentralized in the sense that we can take these nodes and run them anywhere in the world. And they are blockchain based, which means that they use a ledger, which I'll get into that. They are secured by consensus and by some kind of cryptocurrency. So in the case of today, we're talking about ether. Everything is transaction based and everything is done in what are called atomic transactions. And these transactions are sent and signed using public key cryptography. So anyone can be involved with it, right? Anyone can own a private key and sign a transaction and make a connection on the network. And this makes things censorship resistant and open, right? Like truly like open source. So also the concepts of what are called a smart contract is that you can actually deploy infrastructure as code inside of that smart contract. And it kind of gives you the ability to take this ether that is securing the consensus, securing by consensus of the network and actually provide programmable money, right? Programmable use of that currency to do different things, right? And you're gonna learn a lot about that today, especially if you do the workshops, you'll kind of see how you can, you can kind of build stuff that's really cool using programmable money. And on top of that, everything is transparent, right? Everyone can kind of see what's going on with the blockchain and whatnot. So what is a blockchain? So in simple terms, right? A blockchain is a distributed ledger, right? So you can think of it like a database, right? That records these transactions across all the computers in a way that those changes cannot be altered retroactively, right? The concept of a blockchain is that you're actually taking the state and you're transitioning and you're securing the state along this path in these like blocks, right? So imagine if I want to take my wallet out and I wanna send my friend Austin here, you know, 10 ETH, I'm gonna take it out. I'm gonna send him a transaction. That transaction is gonna get packaged up into what's called a block, right? So a block is just a blob of data essentially that keeps track of like everything that needs to happen in terms of state, all the signatures that have been signed for the transactions, and that's sent to all the members in the chain. So anyone that's subscribing to the blockchain or is operating a node gets access to that data. And then everyone kind of comes through an agreement and says, okay, these are the valid transactions. I've executed these. Here is my verification of this data. It should be valid. And then everyone else comes through and validates that and verifies it. Once it's all added to the blockchain, then that's redistributed. So if a new node comes on, right? Let's say, you know, Joe over here wants to be a part of the blockchain, then he can spin up a node and then get that current state of the chain, right? So again, so decentralization. So unlike traditional databases, you know, that are controlled by central authorities, the blockchain operates on a peer-to-peer network. So nodes are communicating together, right? On the network. And they're communicating with each other. It's transparent. So everyone in the network can see those transactions, right? And they can see what the results are of the new blocks and they can kind of contest that, right? They're immutable. So once a transaction is recorded and added to the chain, it really can't be altered or deleted because of hashing and the way hashing works and the previous hash, you just cannot do it. That's impossible. If you would try to go back and say on the very first block of Ethereum that I had a million ether, it just wouldn't work. It wouldn't compute. And then blockchains use consensus models like proof of work you've probably heard of or proof of stake. In the case of Ethereum, you'll be hearing a lot about proof of stake along your journey to validate those new transactions. So what is the EVM, right? You probably have heard this term. We're talking about Ethereum today. Well, the EVM is the Ethereum virtual machine, right? The Ethereum virtual machine is basically like a world computer, a globally available world computer that allows you to essentially define the state for whatever you want to on the blockchain into this kind of single virtual machine. So imagine it's just a bunch of nodes that are all coming together and agreeing on a state. And particularly what's cool about Ethereum is you can deploy smart contracts, again, that execute specific code, define variables, have functions, just like computer programs, and you can make changes to that state. So if we look at, let's see what I might have here. So if we look under the hood of the EVM, again, it is a state transition. So you can imagine that every time that there's a new block every 10 seconds or so, things change, right? Balances change between users, accounts, which I'll get to in a little bit, change, have different balances, they have different states. And it is a stack-based virtual machine. So all of the people on the network are running the stack here. And essentially, as these smart contracts are executed and these transactions are executed, there's basically a stack-based architecture where it's like pushing and popping memory. I'm not gonna get too much into that. But for the most part, you can understand that it is an isolated environment to kind of run this execution. And these smart contracts, they are what we would call EVM programs. And you have this concept of gas as well, if you want to execute something onto the Ethereum virtual machine, you need to pay what's called gas, which is basically a form of ether, which is a form of currency. So basically you pay for your compute in that gas. And we'll kind of get to that a little bit as well. These programs, or these smart contracts that you write can be written in some kind of high-level language, like Solidity, there's also another language called Viper, which is a little less popular, but there's other options. Solidity is the most popular, so that's what we're gonna be talking about mostly today. And these Solidity programs are then compiled down into what's called bytecode. So it's kind of like machine-readable optimized bytecode that can then be executed on the Ethereum virtual machine. So we talked about that the blocks, as they go along, there is state. So again, all of the addresses have state. So imagine the first time that you come onto the network, you don't have any ether in your accounts. How you would earn ether is you might have a validator, or you might know somebody, or you might go to an exchange and buy some ether. And after you interact with the network, you might have a balance update, your account state will be updated and something like this. And so what happens is again, every single block, the world state changes, right? So you can think of a block has a bunch of different transactions in it. Those are gonna get bundled up. And so therefore the transactions are collated into these blocks. And then Ethereum is both a chain of states, and it's also a chain of blocks. So as these transactions happen, the state updates and the previous state is kind of changed using these blocked updates and transactions. Okay, so we talk about wallets. You've probably heard the concept wallets, right? So if I have a wallet on my phone or if I have a wallet on my browser, it's what we would call an account. So it's an externally owned account. So there's two kinds of accounts that you can have. You can have an externally owned account that has a private key, right? So the private key is like the password, right? It's something you don't want to just like share with everybody. A private key is something you should keep secret. And again, you have a wallet or you haven't have like a wallet on your computer. You should keep that private key safe. With an externally owned account, there is no smart contract code associated with it. So it's literally just a derived. So the address that you see, it's a zero X, yada yada yada, is derived based off the public and the private key. So again, everything on Ethereum uses public key cryptography. So you have a public and a private key. And so EOAs are generally just generated that way. But then you also have this concept of a smart contract, which basically is called a contract account. So it's the same kind of term. The thing about these is they do not have a private key, right? Because someone actually has to manage that smart account or a smart contract. So you as a developer can have your own private key and you can generate contract accounts using that private key, right? So you might create some code, you'd write something and then push that to the network with what's called a create. And you will basically generate a contract account and you could also send some value there and send some ether there. And then you can start operating as a, not only as an externally owned account user, but you could also have an application running by doing this. These are kind of the main differences. So again, we look at this here. We have an externally owned account. It has an address and it also has what's called a nonce, which is the number of transactions that have been initiated from that account. And it also has a balance, right? You need to be able to send value to other accounts. So if I wanna send someone in the audience, someone on ETH, then I need to be able to do that. And then I need to make sure that I'm not, what's called double spending. I need to make sure that the network needs to know that I'm not gonna spend that ether twice. So that's why you have a nonce. A nonce is kind of like, you know, zero, one, two, three, four, five, six, seven all the way as your account exists. And this basically checks to make sure you don't try to send a transaction twice and try to like cheat the system. And then you have a contract account, which is basically the same. It has an address. It also has a nonce and it has a balance because you can send value to it. The smart contract account can act as a bank, right? You can be like a bank, but it also has a storage hash and it has a code hash. So it can have like variables inside of there, right? It can store like information and it can also store the byte code for the actual execution. So imagine all the functions that are in there, the variables, the events, and we'll get to that in a little bit here. So what is the difference? So again, an external account can send messages to other external accounts or to a contract account by creating and signing a transaction using the private key. A message between two externally owned accounts is simply like a value transfer. So if I wanna send a message to anyone else here with an externally owned account, it's usually a value transfer because I'm actually like sending some kind of value. And then a message from an externally owned account to a contract account activates the contract to account code, allowing you to purport actions. So if there's variables or functions or some kind of business logic that's inside of the smart account by initiating a transaction to it, I can execute those functions, which we'll get to in a little bit. So unlike externally owned accounts, contracts can't initiate new transactions on their own. So someone has to, on behalf of the smart account, has to initiate a transaction, right? All right, so let's look at Solidity. So probably the easiest way is we think back about this concept of a blockchain. If you're a developer, what does this look like if you're a developer? You're probably writing some front end code in something like JavaScript. You might be using something like Next.js or React or some kind of other front end framework. And you're probably normally used to deploying your application on an API server, like NodeJ, maybe you're running a Node server or maybe you're using Lambda or you're doing some kind of cloud-based stuff. But for the most part, you're used to deploying it in a centralized way. So again, with this concept of a DAP, a decentralized application, you still are building your front end in something that is HTML, JavaScript, CSS, but you're actually deploying the actual logic for the application onto a blockchain. So the best way to do that is something you're gonna hear a lot about today, which is called ScaffoldEath. And so you deploy your smart contract code on the network and you can do that using a tool called Hardhat or there's another one called Foundry that allows you to kind of like have a virtualized blockchain running on your laptop. And so as a developer, you can build a DAP all locally using this setup. So you take your smart contract, you write it in Solidity, you deploy it using something like Hardhat or Foundry to the local node and you run Next.js or React or whatever front end framework you want as well right there. And then as you deploy your application and interact with your blockchain, you start to form blocks, right? That you can kind of test with. So what does Solidity look like? So the cool thing is, is if you've written any code ever in your life, Solidity is probably the easiest language to learn because it's got a really like basic, what the word is, basic functionality, I guess you would say. And so that makes it easy to read and easy to write. It's nothing crazy, it's not very complex. The current version today is 0.8.24 and it is object-orientated and it is a high-level language. So as you can see here, it is statically typed as well with curly braces. So it looks very similar to, I guess, JavaScript in some ways, but you have this ability to create what are called contracts, right? So that's like a smart account, right? And then you can name the contract, you can define variables, you can define functions, you can change values of variables, right? And then what happens is when you have this source code, you write it as this high-level language, one thing I'll mention too is that optimization is really a key. You wanna write as little code as possible because you need to pay for this code to be executed on the blockchain. So you have to pay that gas to put it on the blockchain. So it's very important that you just, always thinking about how you can optimize your code, but you deploy it, it's compiled down into bytecode and then it's pushed to the blockchain, as I mentioned before, and you need an ABI. It's called an Application Binary Interface to be able to read or interact with that bytecode. So imagine if like I just spoke a language that no one here understood, you would need some kind of like dictionary to be able to understand what I'm saying, right? It's the same thing with bytecode, right? So this is what it looks like if you were, this is actually a real example. So we have like a smart contract that has two, actually it's two contracts here. It's got some variables. It doesn't really matter what the contract's doing, but you can see it's just a solidity file. When you compile it down, this is what you get, right? You can't read that. It's not human readable, right? The EVM reads it like this. It reads what are called opcodes, right? So these are the optimized way and how the EVM works in an optimized way to like operate in the highest level possible or the lowest level possible. So this bytecode is read in here, but unless you're the EVM, you can't understand that. It's very, very complicated. So you need the ABI. So the cool thing is, is that when you actually write your front end code and you generate this bytecode, you also generate the ABI, which looks something like this. And the ABI again, is it's kind of like the map or the translator, right? For what your code does and how it works. So the cool thing about Scaffoldeath that you're gonna learn about today is that it takes this and it automatically injects it into your app for you so that you don't have to worry about this stuff. But I just want you guys to kind of get an understanding of how it works so you kind of know. So you can see here, we have like a contract. I shortened it up just to make it easier. It has a constructor that's empty so that way there's no data in there. But we can see there's a name of a function called bar. It doesn't have any inputs. It doesn't have any outputs. It's non-payable. It's got a certain type. So it's really a way for you to be able to define this stuff and be able to interact with it. And then you can see what the byte code looks like here as well. So if we go back, actually it should match, yeah. So if we say here is 0x6080, 0x6080, so it does match. So this is kind of what I guess from a high level what you need to understand for like a DAP. So if you're gonna write a contract to Ethereum, you have your source code, you've written your application in Solidity. You compile it down. When you compile it down, you compile it into byte code. You also generate an ABI. And then you deploy that just the byte code to the blockchain as bytes, just bytes. So raw data. Robestone's not around anymore, but this is like a testnet that used to exist. Reston piece ropes this in. But you basically deploy your contract as byte code on the blockchain. We can just consider this Ethereum. And then when you wanna read that data, you have your web application, right? Or maybe it's like a console that you have on your desktop or maybe whatever, it doesn't really matter. If you wanna be able to read that data from the blockchain, now what you do is you read it in, but you also apply the ABI and that allows you to understand the byte code. So hopefully that makes sense. So what is this term gas? So I briefly touched on it before. Again, in order to make the network secure and to make sure that no one will do like a denial of service attack against the network and to basically appropriately pay for network resources, there's this implementation of what's called gas. Because there are so many nodes on the Ethereum network and all of them are running this smart contract code and all of them are verifying blocks as they happen and validating blocks. You basically have this issue where there's a lot of validation going on. And so you need to kind of reimburse the validation, right? So you need to basically compensate those validators for the energy that they do and to validate those transactions. And you also need to make sure that no one's gonna like hurt the network by just trying to spam it, right? It would be too costly for them to do that because they would need to pay a lot of gas and it would be a waste of their money and they would not do it. So it's kind of like a security mechanism and it really just allows for the network to properly allocate resources. So imagine every time that you interact with the smart contract account or send some value between each other, you need to pay gas. The gas price fluctuates and there's lots of different websites you can go to to see what the gas price currently is. But for the most part, the gas price does fluctuate and there's some more advanced stuff like burning that happens that you can kind of read more about I'm not gonna go too much into that. But it's good to understand that you do need to pay this gas to execute transactions. So if you wanna get started for some reason, if you don't stay the whole day today, I would recommend going, and let's say you don't do the workshop, go to Solidity by example. It's a really good website that walks you through Solidity code for different functions and how to execute different things. And on top of that, if you don't, if there's anything you get out of today, go to speedrunatherium.com, okay? speedrunatherium.com is gonna kind of trust you and test you and teach you at the same time on how to build a decentralized application. So check that out. Any questions? You got five minutes for questions. So I would love to hear what you guys have to say. Any questions? No? Not even one. Oh, one question. There's one question. Hello, one more. If I want to send one blockchain to pay gas, so Web3, I have to pay gas, but I don't have to pay. I can't hear it, can you? Oh, okay. Yeah? So. Hello. So his question is, when you are using blockchain, I would like to know what you would like to know. I would like to know what you would like to know. So when you are using blockchain and you have to move the data from internet to blockchain and you have to pay, is it the weakness of the block? Or not? Cause when you are using, okay. So the question is, when you are using blockchain, you need to pay some fee to transfer some data from internet to blockchain. So is it the weakness of blockchain because when we are more familiar to Web2, we don't need to pay any fee when transfer the data? Yeah, that's a good question. So I think in terms of like putting data on the blockchain, there's some things that being able to pay that money or that gas or whatever it is to store that data forever is actually a little more valuable than something on, like if you were to store that data on a traditional database that could be deleted or you could be censored. So I think there's some value both ways. You don't wanna put everything on the blockchain. There's a lot of stuff that goes off chain and I'm gonna talk a lot about that later in my indexing talk, but I think there's just different use cases, for certain things to stay on chain and be able to pay for that and kind of guarantee that as long as Ethereum is running that that data is always available, there's a lot of value to that. But I don't think everything needs to be put on chain. Hopefully that's a good answer. Yeah. And I don't know if you have anything to add or... Okay, he's saying thanks. Yeah, you pay for security exactly. So that's what you're paying for that you're guaranteeing that that data is not changing. So if it's a value transfer of ETH, it's important, right? You don't want someone to be able to steal your ETH, but if it's a JPEG, maybe it's not that important. I don't know. Everyone has their own opinion, but all right, any other questions? No, one more? No? Oh, yeah, uh-huh. Yeah. Okay, cool. I think the question was actually really, really good. Because there is something that we sometimes don't realize what we pay when we use Web2 because we're using like so many services. For free, we think they are for free, but we pay a lot. We pay with, you may add, with what we do. Yeah, I think it's true. It's like, well, first of all, you're not kind of guaranteeing that the data is always gonna be available, which is a huge, you know, for me, that's a problem. But then when it comes down to it, yeah, I mean, yeah, it's just a different way of thinking that's all. So there's a saying, right? Like if you're not paying for a service, you are selling yourself to some degree. You are selling your data. Like when you use Twitter, when you use Instagram, when you use Facebook, you are not paying for those services, but you are selling your data. They are using you and selling you to the companies that pay for advertisement to advertise to you. So you are paying, and in some cases, you're paying more than you would, than you realize you are paying. So in Web 2, yes, you don't, you don't, you pay directly for your transaction right now, and you get things like security, you get things like censorship, resistance, and other benefits for that payment. Cool. Thank you guys, thank you so much. Thank you so much, Kevin. That was a great introduction, technical introduction to Ethereum. Now we'll welcome Harit. So Harit has been organizing communities for many time. He organized ETHKL based in Malaysia. I will work a little bit probably that people leave the room. And I'll do. Can I get a raise of hands? How many people here are students or not working full-time? Okay, cool. Four very brave students here. I think the rest are probably, some of them are also students, but not as maybe a bit more shy. And how many people here have been to like a crypto or Ethereum event? Okay, more people in the front. Yeah, so just a very quick introduction to myself. As Nathan said, I have been running an Ethereum community for six years in Malaysia. And one of the reasons I started, even outside of the technical kind of content, is that I've been to crypto events and in many cases you go to these conferences and you feel like someone's trying to sell you something. There is some token or ICO or some MLM that they're trying to sell you. But when you go to an Ethereum event, you don't feel that you feel that you're around people who are very smart and at the same time who are kind and hardworking and would like to share their knowledge. So that's one of the reasons I started an Ethereum community. And hopefully one of the reasons that someone here might want to start one as well. So a quick introduction. So ETHKL or Ethereum Malaysia, we are a meetup community based in Malaysia. We started in May 2018. The idea is to be like this shelling point or a meeting point for people with like-minded thoughts who want to make a positive change in the world to meet together and learn together from each other. We've organized more than 150 activities. This includes a conference, meetups, small hackathons, even a small hacker house for people to come and hang out and learn together. And in October last year, we did one conference with 800 participants. And hopefully October this year will do an even bigger conference. And maybe even including some of the people here from Hanoi who'd like to come and visit KL as well. So the first kind of lesson that I've learned from trying to run an Ethereum community is that you need to understand your why. It can't be because you want to like make money or become famous. If that's your main reason for doing this, then it won't last. It won't be a real community. At some point someone's gonna start politicizing things and someone's gonna try and become the big winner. And so the community will die out and not be able to sustain itself. So for me, as I mentioned earlier, one of the main motivations for me on a personal basis is that I get to spend a lot of my time with people who are smart, who are kind and who love to share with each other. One of the cool things that you'll find in an Ethereum event or meetup is that there are some people who are the smartest in the world at what they're doing and they might be sitting next to you. They might just be sitting in the audience trying to learn themselves about some new topic. And when you talk to them, you find out that they are some legendary developer in some niche that you might have even heard of on Twitter or internet, but you don't realize they are the builder of that tool or software who's sitting next to you. And by doing this, you kind of like get inspired. You sit around smart people who are kind and sharing. You also potentially absorb that smartness and hopefully also absorb that culture of giving and sharing to each other. And it's just a much more fun kind of environment to be in where you know you're all smart people who love to share and therefore you also want to share to other people after you. And for me, I'd like to think that when I'm old and I'm about to die, I can look back at this as some value that I've added to the world, some positive thing that I've made, even if it's a very small thing that I've contributed to the world that I live in. And for the community, it's important that there is this meetup community that's sharing and about learning and it's not about selling things to each other because then what you do is you become this signal, you become this meeting point for all these similar like-minded people to come and find each other. For those of you who've been in the technical space or open source space, you'll know that a lot of people, they do things at their own home. Like they don't interact with others because they might not necessarily trust that the other people have the same kind of interests or the same kind of values. And having a place like this allows people like that to come together and find each other. We've run for six years and every few months we'll find out that there is this super smart person who's been in KL this entire time and they just have never found other people like them. So having a meetup like this helps the community to find and so self-inforce this kind of values that ultimately is better for the society that you are living in. And for me, I mentioned I went to Ethereum events and I had this experience, I like to call it the DevCon vibe. So if any of you who are lucky enough to be able to go to DevCon in Bangkok this year, if you go there, you'll know what I mean because you just feel this air of people who are smart and kind and it's just this almost like an adrenaline rush in a good way because you feel like they are smart people and you get to absorb this kind of smartness from them. And so I wanted to introduce other Malaysians who'd never been had that experience to feel this vibe as well. So if you can do it in Hanoi then you can also get people in and inspire them to have this kind of vibe that they've experienced. And one really, really ambitious idea is that if one day, again, when I'm a lot older, I find out that there is this really cool project that is very successful. Maybe they're worth a billion dollars or maybe they've made some significant change to the world. And if I then find out that the founders met each other at some ETHKL meetup, then that's a really cool experience or feeling that no amount of money can buy. So if we can have that, let's say in Hanoi, then you also would feel that that sort of pride that the people who speak the same language, who eat the same food can become this global success that everyone else is using. And it's very important. So I put that meme there that you balance your interests. So I said you shouldn't do this for money or a glamour. At the same time, you don't want to just do it for free forever and burn out. You need to make sure that you also sustain yourself and your community so that you do get something out of it. Whether that is in the form of financial capital or social capital, you need to make sure that you get a personal incentive, but you need to balance that so that it doesn't overtake the interests of the community. And I'll mention a bit more on some thoughts that we have about that. And what you'll find if you've been running this kind of meetup is that at first it'll be very exciting, like you have maybe 50 people or 100 people show up and they're all very interested to learn. But after the first couple of times, people's interests naturally will wane. And unless you have some big speaker, like a famous speaker, then naturally the numbers will die down. And at some point you'll start feeling like a bit burnt out, especially if you're doing everything. So one key thing is that you find your crew. You find people who have the same values and goals. And ideally they have different skill sets. So like if you're a developer, you might not be the most social person around or you might not be as interested in like talking to people or speaking in front. But if you can find other people who can have those skill sets, then it would help. Even as simple as doing simple posters, like designing posters that I'm not particularly interested or talented in. But if someone can do that and they're good at it and it takes them like 10 minutes, then it makes a big difference to you. So yeah, find a good group of people, a core group of people who can work on these things together with you. And alongside that is not just the skill sets, but this balance of experience and energy. So what we found is that as people contribute to the community, after a couple of years they become more experienced and they get a job and that job brings a lot more responsibilities. And so they have less time to contribute to the meetup community. And that's fine. You should not blame them for spending less time on community stuff because they have their own lives. They might have a spouse or kids that they need to pay for. And it's natural that they need to focus more on their day job that is helping them to pay their bills than as much time on the community. But what they can provide is the experience. Like they've gone through a lot of stuff. They can help advice. They can help guide and maybe even settle some differences within the community. So if you have a good balance, a good mix of people with experience and people who are younger but have more energy, then that also helps to complement each other and you have a good self-sustaining meetup that comes out of it. And related to that is that preparing for turnover. So I wouldn't say EFKL is like this expert at doing this. We were also figuring it out, but just bear in mind that that turnover is natural. People will come and go and you value them for the contributions that they make and see how you can gracefully as much as you can distribute their knowledge to other younger people so that they can carry it on forward. And a good thing with that is that just remind yourself that this community is not about you. It's not you as the founder or organizer. The community will live on even when you're not there and your job is just to contribute while you can to the success of that community. One other thing is that you should find aligned partners. So people who are not necessarily members of the community but those who can help. So for example, KL is very fortunate. We have companies like EaterScan and CoinGecko to help us. And at a very early stage, just having someone like EaterScan to kind of support you gives you a big amount of credibility because otherwise instead of some group of random people, you have this company that is already trusted in the space to help you out. In Hanoi, you have maybe people like Kaiba who can help. So if you can, at first you have to start somewhere. But if you can prove that you are doing it right, doing it for the right reasons and the right ways, then if you can find these aligned partners who can help you that can unlock a lot more resources or a lot more reach that you might not have as an individual or group of individuals. And one thing that if anyone wants to set up a community today that you can benefit from is that there are other communities in the region, such as ETHKL, but also other communities around the region and they can help you out. They can share with you their experiences and share with you like some speakers who they know who might be passing your region so that you can help to get different resources as well. So for those who are actually interested to run these meetups, I can spend a lot more time here afterwards if you're interested, but some kind of summary of the things that you can do. So first of all, as a meetup committee, the obvious thing you can do is an in-person meetup and this is the easiest to do. Like if you have some famous speaker who is coming by your city, you can just arrange their time and have a meetup, make sure you have a good moderator who can handle questions that should work by itself. If you have someone from the Ethereum Foundation or Arbitrum, you don't really need that much to prepare. But at least for a city like KL, you might not get these kinds of speakers coming as often. So you need to also figure out other activities that can be done, even when you don't have a famous speaker around. So what you can do is, and what we've learned through COVID is that you can do online meetups via Zoom. In this case, you can have international speakers from all over the world and to them, it's just dialing in to a call. They can do it from their own bedroom. So it's very easy to be able to get these kinds of speakers. And what you'll find is that a lot of people in the Ethereum space are very kind and willing to share. We've had some very famous and busy people who lend us a couple of hours of their time to share about their knowledge, to share about the experience that they've had, the work that they're doing. And you can gain a lot of reach from these online meetups that you otherwise would never be able to do. And with things like Zoom, you can even automatically translate. When they're speaking English, it could be translated to Vietnamese automatically via Zoom itself. And that's another positive of an online meetup. One thing you can do is, another thing you can do is workshops where especially for the more technical, inclined folks, there's only so much you can learn from listening to someone speak. You wanna get hands on. So you can do these workshops either via Zoom again with an international speaker or even by your own local developers who can share with each other. What we found also works is that you can do study groups. So when it comes to a space like Ethereum or Web3, a lot of people might not be an expert. Like it's things are moving so fast and things are so new that no one really can teach other people with the credibility of an expert but you can learn together. So you have all these online sources like on YouTube, on other places with like some of the leading, let's say, lecturers in the world. Like for example, Tim Raffegarden has this whole course on YouTube about some economics of blockchains and you can learn together. You can like watch his videos and then come together once a week to like compare notes and help explain to each other what you might not be able to learn by yourself. We found this is very useful. For example, to learn about zero knowledge proofs that is this crazy moon math technology and everyone's afraid to come up in front and teach other people because they're not sure that they know everything that is to know. But when it's about a study group and you're sharing with each other instead of one person teaching everyone else, it's a lot more comfortable to learn that way as well. Some fun things you can do giveaways I'm sure over here for Lunar New Year, you also have this artist called Hong Bao, at least in Chinese. So you can give out packets. So you can come out with fun activities like that. Maybe combine it with a quiz to get people involved. So in Malaysia, we have something similar. Actually, tomorrow we have Eid. So we have this something like a Hong Bao. You give like this do it right here, like pocket money. So you can do fun activities like that to do giveaways. And you can even be simple things like sharing and a guide on how to set up a Metamask wallet or how to make an on-chain DeFi transaction. It doesn't have to be a technical thing. It can be something that anyone can do. And yeah, it's just a fun kind of gamifying thing so that you earn a little bit so that you get excited and you can share it with everyone else as well. Another thing that we found really, really helpful is that especially for younger people, either students or people who have just graduated, you can join these hackathons that are always there in Web3, either online or in person. And it might not last forever, but at least for the last few years, the amount of capital that's in this space is so much. So you can join hackathon where the prize money can be like $10,000 US and for someone from Vietnam or Malaysia, it's a huge amount. So if you can form groups together and join these hackathons, winning is one thing. Even if you don't win, you get to learn to be at these kinds of places where there are hundreds of very smart people and they come out with these crazy ideas. So just this osmosis, just this absorption of the knowledge that they have can help you become better as well. And it also helps you to create more of a bond between different members of the community that you are joining these hackathons. And I kid you not, there are people in Malaysia, young students or recent graduates who make it essentially their full-time job to join hackathons in different parts of the world, win some bounty or prize money, and they use that to pay off their bills and pay the flight and other costs for the next hackathon. I wouldn't say that's long-term sustainable, but probably in the current environment we live in, maybe for one year or two after you graduate, that could be an idea to go by. And again, the key thing is not so much making money. The key thing is that you get to go hands-on and learn directly from these companies that are organizing the hackathons, that are building these technologies that you can learn from. And who knows, just by engaging with them, they might get to know you more and they might be interested to hire you. And you could be someone who lives in Hanoi but earns in US dollars for a company that hires you remotely from the US. And that's a big difference maker for a young, recent graduate. Lastly, and I would say only when you've done like a bunch of meetups and smaller scale events, you could explore doing your own conference. It would be really cool if there was a grassroots community conference built out of Hanoi by people here, for people here, and people abroad. One thing I wanna highlight, so I mentioned the in-person meetups, if you can't get a famous speaker, what can you do so that you can, on a consistent basis, get people to be involved with the community? So one idea that we've had, kind of a rough agenda of a typical ETHKL meetup, is when you first come, someone does a roundup of the local and global news. So it can be sort of big Ethereum news such as the Dan Coon Hartfork that introduces blobs to Ethereum. Or it could be local news such as an exchange opening up in Vietnam. And just by having this kind of sharing, there's a lot of value already because so many things happen in the space that is very easy for you to miss. And if someone does this roundup for you in a local context that helps you keep up with the space without having to spend 24 hours on Twitter every day. What we then also do is we get a sharing by a local project. It could be a small hackathon project or a university sort of assignment or a project that someone's trying to build. They can do five or 10 minutes just to share about what they're doing and then get feedback from the rest of the community. And the other committee members also can get sort of inspired. You can see that someone who is from your community is building a product or a project that is interesting for you to learn about. We then divide into different groups. So you have the beginners who learn about basic stuff. You have the developers who can go and do a technical workshop or code together. And you have the non-developers who can learn a lot about the conceptual ideas around blockchain or even just new projects that come up and what are the cool things that they're doing. And then after that it's very important to come back together and just hang out. I don't know if in Vietnam you have this culture of hanging out, like in Malaysia we have this literally a word called lepah where people just come and hang out together. And I think sometimes, especially for developer kind of communities, they might not put as much thought about this, but there is a lot of value in just hanging out with each other, like go to some roadside stall and eat some fur and then just talk to each other about what's happening in your life or your work. And there's a lot of bonding that gets done in that by doing that. And even interesting ideas come up because you're not forcing people in a meeting. You're just hanging out and the ideas come from it. So very quick note on self sustainability. This is something that we were still exploring as well. So I mentioned earlier how to sustain the meetup. These are some thoughts from the EFKL community. One thing that might be not so popular in this space is that we're very careful about getting grants because of two major reasons. So one thing is grants are not sustainable. They're short-term and you get some sort of pocket money but next year you might not know where that money can come from again. And very importantly, it also might affect your independence. Even if the people who are giving you the grant money never tell you to market or advertise their products, you inside, especially I think for Asians, we have this kind of feeling where we feel like we owe them something, like we need to give them something back. So not to say that you should never take grants but these are a couple of reasons, points that you should think very carefully about because maybe in the short-term it might help you but you also wanna think about the long-term effects that you might have on your community. I mentioned if you wanna do a conference, don't do it immediately. You do it gradually, do smaller scale events and scale them up a bit bigger as and when time goes on. So one thing that we've got this idea with the help of Ethereum Foundation to help encourage us is we could do our own community conference and using the funds from there, if there are any surplus money, any income, we can then use that to fund other activities that the community has for the next one year and so on. And very importantly, while you do this, is you need to retain the soul of your community. If you make some money, generally what happens is people's intentives get a bit weird but you need to constantly remind yourself to retain that DevCon vibe, that magical air that people get very excited to learn and share about and try your best to keep that as you make some income. So I've been asked to share why Ethereum matters in Southeast Asia and honestly, I can't tell you because I'm only from Malaysia but I did talk to a bunch of other community organizers around the region. So from Myanmar says Ethereum provides an alternative and an opportunity and I'll take a little bit of time because Myanmar for those who know just had a coup in their government and literally people had their money frozen in banks. Like they couldn't spend any of that money at all. And when you have something like Ethereum, it allows you to still use your capital, still use your money and spend it in different ways. And that's something that even someone from Malaysia might not realize because it's been very peaceful for us but for certain countries like Myanmar, like Cambodia, that's a reality of life that they need to deal with. QZ from Singapore shared Ethereum lets us take our ideas global. Tin from Philippines says it inspires hope for a transparent and credibly neutral future. Jern from Thailas says it allows us to innovate on public goods, things that help the community without relying on like hierarchies or governments to tell us what's allowed and what's not allowed. Vincent says it allows people here to own things and develop much faster than without Ethereum or WebTree. And for myself, I think it gives us a chance to build new systems, whether financial or otherwise that helps to put the interests of the community over any particular individual. And with all that said, I hope someone here from Vietnam can share your thoughts on why Ethereum matters in Southeast Asia. And if someone wants to step up and start an Ethereum community or help to run an Ethereum community, you are more than welcome. I am happy to share any advice or any help that I can. And in the words of a friend of mine, Noah, we want to help build these Ethereum communities around the region and around the world. And the only one way we can build trust is if we can work together. So if hopefully the Vietnam community can come up and work together with the Malaysian communities and Singaporean communities and other communities in the region, then we can help to make a meaningful impact in the world using Ethereum and with each other's help. Thank you. Not sure if I have time for questions. I'm happy to take any questions if anyone has them. Hello, do you have any questions? 4, 2, 3, 4, 5. No one has any questions? About the Ethereum community in Vietnam? No. Okay. Alright. So I'll ask. Maybe you have mentioned that in the beginning, and I have missed that, what is from your perspective a good tool to keep the community engaged when they are all at home and offline, or not offline of course, but when there's no meetup, when there's to keep them together? What we've done is we have a telegram channel where people come and share and we have community moderators to make sure that the conversation doesn't go into trying to sell some token or stuff like that. So it's all about running and sharing. I think that's an easy way to do. One thing we're also exploring is we can have different channels. So for example, people want to look for jobs and some companies want to hire. So a community of ours is a good place to match them with like aligned values. So it could be stuff like that. Maybe even, this might be a controversial idea, but maybe even like a DGEN channel. So people who want to do DGEN stuff can hang out there and it doesn't affect the other conversations that people have. But sometimes some people find it very exciting to talk about memes and stuff like that. So that could be another way to have this kind of conversation running. And I think the key thing is just to not sometimes technical communities focus on technical stuff, but with all human beings. So if you can have a space to just have random normal conversations, that helps. And it helps to build that relationship with each other. Alright, thanks everyone. Thank you so much. Hey everyone, we're going to start again with Jakub, product designer at the ethium.org website. And he's going to tell you a bit more about how to learn about Ethereum and walk you through the websites and more. Thank you so much for coming. Test, test, test. Hello. So this talk will be just kind of introduction what ethium.org is about its community. We have a big open source community around the website. So you can also join. Also, this QR code will lead you to the slides of the presentation. If you want to follow them on your own time, you can also do that. I will wait one second and then start. Alright, cool. So ethium.org. It is basically considered to be kind of the main website for Ethereum at this point, but it wasn't always the case. About, let's say, six years ago, it was a very small website which had only a few pages. You know, there wasn't much you could learn about Ethereum, but then something changed. We changed our approach and started a contribution to the website and we opened it up. It became an open source website, basically. And since, like, five, six years ago, the community really stepped up and helped us create what is ethium.org today, which is basically the leading website on anything Ethereum. Just a small disclaimer, if you are looking for the Ethereum Foundation website, sometimes people confuse it with ethium.org because it's so popular, but actually the organization has its own website which you can find at ethium.foundation. That's where you can read about the organization, what Ethereum Foundation does, what is the philosophy and maybe what is the future. If you want to learn about Ethereum, then you should go to ethium.org. My colleagues earlier today have already given quite nice introduction into what is actually Ethereum, if you are wondering, but for those who have missed it, ethium.org would be exactly the place where you should go to learn what it actually is or how can you even start using Ethereum? How can you start using Ethereum apps? And it will also answer questions like what is even Ethereum used for today? Why is it valuable? Why people talk about Ethereum and why does it have a place in this world? For those who are more practical, for beginners, we also have kind of like prototypes, beginner walkthroughs, which will really show you step by step what it actually feels like using Ethereum applications. It will explain what it means to create Ethereum account, what are kind of maybe differences between what you're used to with Facebook, Twitter, etc. and what is Ethereum. Apart from that, for those who like to also do quizzes or kind of test whether you actually understand the topic, we have a lot of quizzes. I think some of you maybe yesterday tried some quizzes at our booth. So those were actually from the ethium.org website where we have many more and you can also actually, if you join our contribution program you can also propose your own quizzes that can be living on the website later. For those who are maybe studying more technical stuff, we have really big developer hub which is a great starting point for students to maybe read Ethereum documentation where you will get more technical background into what Ethereum is under the hood. If you want to start experimenting and learn by doing, we have great set of tutorials so that you can maybe create your first NFT, smart contract and also all the different tools that will help you have kind of smooth learning curve as you start. And last but not least, Ethereum is decentralized and it's all about communities. So we have also a dedicated section on communities. If you like the event like today and maybe want to join some other events in the future we have a list of all the events that are happening around the world for Ethereum. And basically there is some meet-up or conference every week somewhere in the world. And there might be some even here in Vietnam so you can check those out at the community. And one thing that we are really proud of and this is only thanks to our community the website is currently translated actually to 62 languages. So not everyone can speak English and this is why it's really important to translate the content of the website into other languages and one of them of course is Vietnamese. And this would not be possible without our ethereum.org community. So as I mentioned at the beginning ethereum.org isn't really like closed website, it's open source anyone can come and contribute to people like screenshot it that contributed recently but really since we started we had more than 10,000 people coming and helping us translate ethereum.org into all those 62 languages we had more than 3,000 developers and content writers coming to our github repository and proposing changes to it and we also have a discord I don't know if you're familiar but this is a communication kind of tool that we use where we have currently over 42,000 members and this is all just for ethereum.org the website, not for ethereum, just ethereum.org especially for the discord people come there also if they have questions about ethereum we have helpful guides who are basically people who cannot contribute maybe coding but still want to help others understand better what ethereum is about so you can just join the discord it's for free and ask questions and either the core team like myself can respond or the guides. We are also engaging with the community on discord basically every day just to show how active our community is. These are the statistics from last year we had almost 1,500 people translating the website and together people translated 3 million words last year. We also have actually Vietnamese translators who have their dedicated Vietnamese channel for Vietnamese translations on discord so if you are looking for a place to start you could start there so this is open to anyone at any point. You don't need to do anything to start contributing to ethereum.org if you decide that it is something interesting you can just come whenever and we will be very happy to have you guide you through the process it's not like you would be alone doing this our team will be telling you what to do etc if you are wondering why people do that why we have so many people joining and helping ethereum.org there are many different reasons but for beginners and students especially this is one way to start practicing your technical skills or translations or whatever and the really good part of this is that you are not alone. You have the community that will kind of look at what you are trying to do and help you out. We have also core team which again I am part of and we are all kind of senior professionals in our field and if you for example want to start coding and you are not sure if you are good enough to actually start contributing you don't have to be worried at all. You just come we have like a github board with a lot of small tasks like bugs, fixing typo even just Q&A or some harder features to implement we just say you want to contribute and we will guide you through the process. You can start and if you make mistakes that's ok our senior developers or translators or designers will look at what you are trying to improve and they will give you tips what is wrong, how to do it better so that you actually learn practically what you are coding in this case specifically I took this screenshot like 5 minutes before this presentation because I thought it would be good to share this just happened recently this is one of my colleague he was trying to help this contributor to do something better so I think this is a really good opportunity for anyone especially who is at the start of their professional journey you can get good relevant working experience that you can showcase maybe on your CV or on your LinkedIn wouldn't it be cool if you could say on LinkedIn that you contributed to Facebook or Twitter or Instagram or TikTok but you can't because they are closed company and they don't allow strangers to come and change things on their products but ethereum.org is open source so anyone can come and join us and start contributing and then you can say that on your LinkedIn speaking of which for every contribution we are actually creating NFTs NFTs are like blockchain certificates about your contribution this is provable on ethereum and anyone can verify that you have actually provided some value that you have contributed to the open source this way there can be like no doubt that you have actually done what you're saying that you can do and also we use these to maybe give community bags some t-shirts or give people more decision making power what is the future of ethereum.org and so there are so this is kind of good way how to build reputation also currently on our developer section in the documentation if you help us with the articles there we also list all the people who actually helped with the specific page on that page so if you contribute your name would be here on ethereum.org visible to anyone that you have helped with maybe translations or with the code or with the content we are hoping to have this on all pages across the domain later but right now it's in the developer section there will be a river hopefully one thing that I would like to highlight is that we also try with our community to have different events in August this year we will be organizing translated on so that's kind of like a hackathon but specifically for translations it will be online so you don't have to go anywhere you can just be at home you don't even have to create a team you can be an individual alone and you can join this hackathon and maybe help translate the website into Vietnamese I believe currently we need more translators in Vietnamese so that would be great and also maybe you can win some reward some good summer cash for extra activities we also have some other events that we do usually every month like community calls or office hours we have sometimes also meetups one will be in Befcon later this year in Bangkok I would like to highlight the office hours actually if you have any questions about ethereum we do these office hours where we try to work kind of educate more our community about some basics of ethereum and you can come and ask questions all this is happening by the way on the discord that I mentioned earlier if you want to join discord just follow our website I mean visit our website and there is a link to the discord in the footer so yeah what are you waiting for if you are a developer we are here with github this is our repo you can see almost 5000 people have already started worked it we have a board with tasks there it can be as simple as fixing a bug or fixing a typo or suggesting some small content change and you can see if you like it and maybe start implementing some in the course later we will be guiding you through the process with our core developers so you will not be alone you will get guidance how to do it and you will get feedback before it's published whether it's good whether it needs improvements and when it is eventually published you will get those NFTs and proof that you have contributed to open source this is the link specifically to our translation program so as I mentioned we need more Vietnamese translators currently I believe we have translated about 20% of our websites so there is still kind of a way to go that would be great an easy way if you can speak English and translate to Vietnamese and later this year as I mentioned we will have the translated on where on top of that you can also earn and win some prizes so maybe now is a good time to start to kind of see how the translation program works how the platform we use for translations works and when the translated on is ready you can be ready to march in translating as much as you want and as I mentioned you don't have to create teams to participate you can be also an individual so there is really not that much that stops you from contributing and that's basically Ethereum.org we are an educational portal probably one of the biggest in the ecosystem very well established and we are open source and join our community this is a page that will basically guide you through all the different ways that you can contribute I know I mentioned just the development and translations but we have many other ways you can contribute for example I am a UX designer and we are actually also working with the community and are trying to educate and mentor new designers maybe propose just visual changes to the website we are using Figma and yeah that's it alright I believe I have time for some questions if not I will be later today also at the Ethereum booth which is just outside of this room so you can also come meet me there and ask questions privately thank you ok thank you very much for your comprehensive and very clear presentation your English may be excellent live Vietnamese but I wonder that if I can use your translations maybe system or application we wonder about the precision or maybe some correction when we try to translate from foreign languages into Vietnamese and vice versa for example when use of the maybe idiomatic expression the first one the second one add verb and maybe verb and understand my slang and some maybe spoken languages but sometimes we can face with some error or mistakes how we can didn't resist to explain exactly what I want to say about that the first one the second one if we face some wrong but if we try to make correction it's wrong again ok how wrong or wrong ok yeah that's it I think I have a quick response ok those are really good questions so for the first part if you don't know how specifically translate something into Vietnamese we have in the platform we are using there is also kind of like for every word there is kind of like a discussion board where the translators can discuss together what is possibly the best translation another thing is as ethereum.org we are actually creating a glossary of terms so you know Ethereum is a technology it's a very new thing and there are lots of new terms and it's sometimes unclear how those terms should be translated in languages so for that point to unify kind of the explanation and the translations we have created glossary which basically defines that for specific terms that might be unclear and to the second part of your question so when you translate something it's not published immediately we are also working with an agency that helps us proofread to make sure that the translations are actually of certain quality and then they give us feedback on how good the translations are and we give this feedback to the translators so that you can also learn how to make things translate better, how to be more proficient as a translator so that's how it works thank you amazing, thank you so much Jakub alright we'll have time for questions later we need to move forward with the schedule thank you so much Jakub if you want to learn and contribute to Ethereum ethereum.org is a great place to start thank you again Jakub, that was great and we have another Jakub that is himself part of the DEF CON team as well DEF CON is the big Ethereum conference a yearly conference that will happen in Bangkok this year and Jakub is the DevOps in the DEF CON team and he will talk a little bit about Web3 Pi so yeah, I'll hand it over to Jakub while he gets prepared who knows about Python Python development okay, okay a few alright, hope you'll learn a lot from this talk over to you Jakub do you know what I should do when I connect to this it's important other keyboard no, it should be it's asking me it's not a basic item I think you don't have to I don't need a clicker okay okay, cool I have it alright, hey hello I'm just like starting my timer because I know I don't have too much of time okay can you see my screen on the two screens over there as well can you see it, yeah, awesome okay this is gonna be fun because I'll be also doing a little bit of life coding or live demo and you know how it works usually it breaks so bear with me if something goes wrong I'll try to explain and we'll talk about it maybe even like use the chair and I'm gonna like set myself like a improvised mic stand, let me how was it can you still hear me, I know okay, cool, say it again what do you mean I'll zoom in, gotcha I will I have zoomed my terminal already is this visible, kinda this is visible, yeah I'll zoom in a little bit more 1, 2, 3, 4, 5 1, 2, 3, 4, 5 and here the same thing, I'm gonna make it big okay, cool so about first I'll show you the slides so my name is Jakub like my predecessor here you can find me under my nickname on different platforms and I do Python, I do DevOps and I work with the DefCon team who's organizing the event in November in Bangkok but I'm here to show you a little bit of Python Web3 and also the old Web2, the traditional stuff that you may be more familiar and that's like how I started programming so the GitHub link which is up here under my GitHub slash KVBIK, slash Web3 Django is the app that I have built for you I've spent couple nights on it especially and this is a QR code if you wanna just scan it and go there's a source code that I have built and you can follow based on that we'll be using this source code for this workshop right now we're done you can see some people scanning it thank you very much very cool amazing sweet okay, cool so just a little bit of intro my colleagues already told you like Web1, Web2, Web3 especially my dear colleague Skyler at his keynote yesterday but it was mentioned that there are some evolution of how we build apps or how we think about it but I still use Python programming language I'm very passionate about it I'm a Python community in the Czech Republic where I'm from and there's something we call Zen of Python you can actually when you have shell open like Python shell I'll do it right now one hand and I'll do import this you get like you get a text you can test it on your computer you have all Python installed either it is Linux or macOS you definitely have some kind of version of Python just open Python, type import this and read it it's a nice way of thinking about how you code and I believe you are all programmers who's a programmer again let's do the raising hands who's a programmer here you study for it you use your computers wisely then you're programmers, perfect read Zen of Python what what it basically taught me and many many of colleagues in the Python community is that how to treat something, how to call something Pythonic and I'm going to try to show you two libraries today that I believe are very Pythonic what is also pretty common with Python and that's why I love it as well very often calls comes with batteries included which means that you have all the tools with you and that's what I said, like look at your computer, you have Python if you have Python you can do so many crazy things okay so we'll take a traditional Web 2 app, all right Web 2 I know we're here to tell you about Web 3 so maybe I shouldn't bother that much but it's usually out of two parts made of two parts a backend part and a frontend part and I was always a backend person so I cannot do that much JavaScript which is a pain and I need to work on that so I can be better with building decentralized apps for Web 3 but I'm going to show you what we can do on the backend also with Web 3 all right so the first library in Python that comes with a lot of batteries included is called Django anybody at all different type of question who haven't heard about Django so everybody knows Django sorry guys okay Django is a web framework it's an old library because I started using it 15 years ago but it's a really nice one what is a framework a set of libraries and tools and it's providing us like ways how to build a application usually maybe when you are building some software you may be familiar with MVC kind of concept model view controller in the Django it's MTV models, templates and views and today I'm going to show you mainly the models because we will build two of them so what we are going to build today is super simple eShop super simple we will try to sell something and we will try to buy something all right yes again we are using old technology we will use like relational database where we will store some of it and for that we will use the models of Django so we will create one database table and the first one is going to be this kind of let's call it order or maybe a shopping cart that's what you have when you are in an eShop you are clicking on items and you are adding them to your shopping cart I called it order I don't know why so what such an order needs to have at least I believe definitely it needs a price we need to know how much are we going to pay for it maybe it's useful to know when it was created definitely we need to have some kind of link to the user who bought it and maybe description is also helpful for some things and we are going to use the description right now to hack it a little bit to type something that we want to see so that's order, that's the shopping cart and please bear with me of course if you have like a full blown eShop and you have like sold items it would be a little bit more complex but I believe with this tiny example we can do something and then we can later make it better just double check the time ok cool so the second model that we are going to create today second database table we will call it a payment because we need to know if this order that we have created if it was already paid and we are going to pay so I call this table payment there is going to be a link to this order there is going to be a currency that we are going to pay in you probably know why already because we are talking about Ethereum even though not everybody is calling it a currency I don't call it a currency either but let's call it currency here how much of this currency we are going to need to pay account in this case it is like where are we going to send the money so if you are interacting with an eShop you are probably sending your money to some bank account of that eShop am I right I hope I am we are going to do a payment so it should have some kind of expiration because probably the eShop does not want to wait weeks for our payment and this last is paid it is like a mark for us that it was already paid ok so yeah why are we using Django and Web 2 because there is this kind of built in admin interface that is super cool it is very easy couple lines of code I am going to show you right now so let me use the first version that we have programmed is it big enough maybe a little bit bigger so this is python this is python code bunch of imports we are going to look in python code so I will do a little bit of dive here so import of libraries and here is a definition of a class for order that I was describing on the slides so we have description we have a buyer which is for simplicity sake just an email for now we have a price which is an integer just a number and there is some kind of time stamp when it was purchased we don't need to look at the rest of the functions just yet because they are basically helpers and as I said link to the order address token which is the currency I use different names in the code amount, how much of the token are we going to pay when it is expired and if it is paid yeah and because right now we are not doing anything web 3 we are doing it very simple there is just like just a simple method here like a function it is called confirm and what it does is that it is paid to true which by default is false and we are going to save it so this is like a hacky way for nothing is paid but we will just pretend that it is paid yeah there is some kind of helper functions and now I am going to show you the magic of the admin interface check this out you guys and again this is web 2 not as fancy as all the Ethereum stuff but it is going to be useful for us today I need to make sure that the server is running here and I am going to reload yeah it works we have orders here and payments and by the way all this user interface is built just thanks to like so I showed you the models pi and this admin.pi file it is like 27 lines including the blank lines and we have this so let's go to orders I haven't deleted the old ones so I am going to create an order so here I have created my test order the description I said there bunch of apples so let's create a new one let's do red car we are going to buy a car buyer is going to be again me my old email because it is short how much is a car $5,000 used car probably created today yep we have a new item and then that is what the system should create already on its own but we are doing this manually we are going to create a payment but not pay for it we need the payment that is not paid because we need to pay for it so yep for now something random I am going to explain in a second token we can leave blank just a random number right now and it is paid I am definitely not touching it so this is what I have just created red car $5,000 and I need to pay 1,000 of some tokens that is the basic of the app now we are going to make it a little bit more interesting so a little bit about Ethereum what you have not heard so there is like one Ethereum chain that we were talking about today we call this mainnet that we use for testing when we are not running in production when we are doing things like I am doing right now we call them testnets alright today we are going to be using Sepolia testnet which is the latest and with all the features that we need but then there are also layer 2s yesterday there was a whole day of arbitrum talks which is like a scaling solution for Ethereum we call them layer 2s and there are other more and then there are also other chains that are similar to Ethereum because they might be even like clones or forks because we basically can even run similar stuff or the same stuff if we upload it to them right now I am looking at a polygon which we also treat as a scaling solution for Ethereum sometimes there is BNB which is like Binance chain I am not saying anything about these I am just saying that they exist out there but what I am mentioning it is that there is a native token on these networks on Ethereum mainnet it is Ether on testnet on the Sepolia testnet we call this sometimes so Sepolia Ether but then on the other chains for example Polygon on Binance there are different native tokens the main tokens of the chain and that is what we pay the gas with right? speed up a little bit Ethereum addresses right? everybody can have an address on Ethereum that is where we hold these native tokens and you can basically look at that as your bank account thinking about the finance view but the cool thing is that you can have so many of them you can basically create out of thin air one, another one another one, another one all the time Ether scan is a tool is a web tool to like view these addresses for example just like you can click the link later and what I'm gonna do is I'm gonna set up a wallet right now really quick so bear with me because I just wanted to like show you that it's pretty easy so this is a browser wallet it's a browser plugin I'm in Chrome it's called MetaMask it's one of the older wallets but it's like pretty battle proven so I'm gonna create a new wallet I'm just gonna agree a bunch of things this is going to be like very temporary password not long enough not long enough weak but long enough secure remind me later skip never do this all right I'm serious never do this I'm doing this because I'm running out of time okay next done am I done? I really hope there's gonna be someone else later today who's gonna tell you how to properly use this but I'm happy because right now right now sorry it's small maybe I can make it bigger but probably not the plugin not growing anyways what I have just done I have created a wallet like a manager of my manager of my accounts on Ethereum and see there's one address here and I can like I can create new one and as I said and another one so right now they are all empty yes I have three accounts that easy I can say Nathan to send me some tokens on the first one Skyler to send me to the second one and Jakob to send me to the third one and they will never know that how much each one of them send me because only I know what are my addresses alright so why I'm doing this so let's use the first one alright I'm gonna copy the address I'm gonna go back to the admin oh and I'm gonna switch the version alright so okay let's try this it's gonna be faster oh that's so nice this is what you have when you work with great people okay I'm just gonna double check if I have the right version so what I'm doing here is thank you Nathan I'm basically adding couple lines of code but important ones so this is the second library I wanna talk today about with a lot of batteries included it's called Web3.py finally we're taking some Web3 steps here so Web3.py is basically a Python wrapper around all the like Ethereum functionality that comes with Ethereum blockchain lots of effort great developers are maintainers are taking care of that it's an open source library a lot of contributions from the people out in the wild yeah so what are we gonna do import the library and this is the first thing I wanna look at so yeah basically so we have some kind of amount we have some kind of symbol that it's called Ether yeah and we're doing some magic why are we doing this magic I need to show you something it's it's built by programmers so sometimes we just like talk about one Ether, two Ether or half of an Ether and when you look under the hood you realize that there's nothing like that there's some kind of huge huge numbers and we call them way why? because it's like it's the smallest division of an Ether that you can get and to be fair when you're building software, when you're building application you probably don't wanna deal that much but it's just an interesting point like decimal places so you basically say alright I'm gonna write everything in whole numbers and I just gonna know that I have some amount of decimals added sorry if I'm too computer sciencey here so it's just an interesting thing to know when you're programming with it is that one Ether is 10 in the power of 18 decimal points there's like Ether converter that we're gonna use right now this is just a web app and I just wanna say okay 15 Ether it's not working reload this site is not working anyways I know how to type 18-0s that's all good so let's delete these payments because we're not using them alright it's not running run server if this is web 3 we wouldn't have to do this everything would be just on the blockchain okay let's create a payment order for red car address and finally I'm finally gonna use the address oh my god so many new things okay this address this is the address where we are gonna need to send the funds alright and token is already Ethereum Ether it's a Polio Ether so we're gonna keep this blank and $5000 how much is Ether right now $3,600 something like that let's keep it easy oh I know why so how many zeros right now 16 alright 2, 4, 6, 8 10, 12 14 16 we're programmers we can definitely make this easier and we will so okay let's make this a little bit smaller right now so here oh yeah I have like a utility function that is like saying red car for $5000 in $1.5 so I did the number I did the zeros right good so now we will look at the second part the code which is the confirm function so what we are doing here is that slides okay yeah Ethereum nodes was it mentioned today basically when we're running the blockchain everybody around the globe is running some kind of node and together we share the state of Ethereum we like share all the data and this is what we call a node ideally you would like to run it yourself because like that's the biggest like the highest security for you that you know that nobody tempered with it but sometimes of course so we can use some kind of third party services that are hosting nodes and we will have to trust them right now again it's not the best approach but if we're running this eShop later we're like hosting it somewhere we will definitely run our own node for it so I'm gonna use Infura which is this like provider of nodes and they have an API and I'm going to use this API with some kind of token in my app so this is what we have here so I'm instantiating the web3 provider with like some kind of like API URL and we're finally getting to business because we will do we will call Ethereum we'll call the blockchain we'll call a function that is there and it's called getBalance it just like looks at the address and it says it tells me back what is the balance of that address alright I'm gonna just like convert some kind of number and check if the balance is more than the amount that I was supposed to pay if I have already paid this address more I'll mark it in the code as paid if not of course I'll keep it so so what have I done there so I have filled this address so let me look at Sepolia EtherScan here let me look at this address I have created and it's probably empty right I have shown you that it's empty check this out here out of time see this is the address that I have just created in my wallet and there's like zero Ether so I haven't paid for the car but I have good friends and these friends so to another browser with it's a pity that it's not see I have some Sepolia Ether in another browser so let's send them how much was I supposed to send? 1.5 right okay send send to this address and letters there are better ways how to do it again and we will tell you about them 1.5 next network is busy alright let's hope it's gonna go through something is happening it's saying pending let's look here, reload hmm is there something going on? no just yet wait pending, okay there's pending transaction in the meantime I can explain the rest so yeah I was I have shown you like the code, like what it does balance check uh huh right oh yeah hmm it is pretty not cool to use Ether that is going up and down to denote a payment in it is it? I had to do how much is Ether and how much to convert it from the $5,000 to something so there is of course a notion of different tokens on the Ethereum we call it most of the time ERC20 which is like a standard for different tokens that we can create and there are even tokens that are trying to pack its value to one normal currency so there are ERC20 tokens that are kind of packed to $2 and that would be pretty cool if we can if you can use this in our app we like yeah we said car for $5,000 and we would say it's gonna be $5,000 in that token right I was working on a code with ERC20 tokens tonight I made it work but but yeah of course I have found some pretty big bug in my app but it is already fixed on my github it is there but I am not going to talk about it but what I'm gonna show you right now is that we have on this wallet we have some less ether on this wallet oh should we use some alright thank you oh my god who said that I owe you an apple thank you very much I have 1.5 eth so now my last for today thing is I'm gonna go back to the admin where is the admin here okay so reload here okay it's paid it's not paid right I am going to do check payment payment oh my god oh my god address is not defined address where okay address get balance okay I'm gonna fix that really quickly Nathan can I have one more minute one more minute I'm gonna fix this of course oh my it's paid sorry guys live coding told you quick one okay I don't think it's a coincidence that Django 10 years ago had this logo and we have this logo for the DEF CON and I wanna see you all there and check out the github there's more code thank you so much Jacob that was a great introduction to live coding using yeah using ethereum and Django we're running a bit late on schedule but we have an amazing guest coming up it's Austin Griffith he's developer and working at the foundation on educating and onboarding developers so he's gonna be an amazing person to hear about coding on ethereum so please make sure you stay for that talk that's gonna be amazing it's gonna be a live workshop as well so yeah Austin thank you so much sorry for the delay thank you you got my view do I need to allow this I just hit allow oh no can I just steal this htmi there we go how's that you guys got a signal over there okay here we go I think there aren't too close hold it close okay this so for the next couple hours it's going to be for developers mostly how many people out there are developers is it mostly developers in the crowd or not because if not we'll do something a little differently you guys in the back any developers okay raise your hand if you're a human raise your hand humans I'm looking for humans okay about half of you are human okay so I don't think we have as many developers in here as I thought but I think the best way to do this tonight later after lunch you guys will go through speedrun ethereum my colleagues will run through two different examples where you build a smart contract application you learn why you would build a smart contract application and how they work so I want to prepare you for that and to do so I just want to go over a couple concepts I think the first concept I want to look at is a key pair we've kind of talked about private keys and public keys a little bit I just want to show that again real quick here is what a private key looks like right great big string 64 characters right and from that we derive a public key and from that public key we derive an address and some really neat things can happen here if you have a private key you can sign a message okay so we can have some message that goes across the network like attack at dawn I'm going to do how's that no that's not going to work is it no does it work can you hear me probably not yeah okay cool okay so let's say attack at dawn attack at dawn and that is going to go across the network so we're going to use our private key and we're going to sign this message and so we're going to get a signature out of that and this is really cool because a signature can go along with this message across the network and if anybody tampers with this it doesn't resolve it won't work but if it comes across the network untampered you can basically recover by putting the message and the signature in you're going to get out the address that signed it notice those two are the same so given some message and some signature using cryptography you can prove that or share this person did sign that message and that's kind of like the the basis of what we're doing here with these public keys we're able to have like these private keys that are this big number right here that is technically just a very large number you come up with a very large number and the space is so large that someone could sit and try to guess your very large number until the end of time and still never guess it and that's all a private key is with an elliptic curve and you can get in and look at elliptic curves and all of this stuff but basically this private key is your big secret and this public address is where people send money and you use this to as your identity so that's addresses I think we've kind of covered that this is what a wallet is basically this private key right here and sometimes you'll see a mnemonic and let me take that that's kind of going one step up and basically you have a phrase you have these 12 words that come out of a dictionary and they mix to make a sufficiently large number like this private key and so I can drop that in here and so this phrase basically hashes to this private key and that's a way that you can use just a simple phrase that's easy to remember with some kind of like index system to have wallet 3 to have wallet 4 to have wallet 5 you'll notice these addresses changing over here private key and address changes so that's an address that's how you create an address that's how you send money around you're basically just signing a message that says I want to send $10 to Bob and there's a blockchain and proof of work and now proof of stake and we can get into all of that stuff but I think this is the key concept you need to hold okay so you can send and receive money with this private key let me show you how to do that with a punk wallet and this will put some ETH kind of in circulation here and we can dink around with it so you could do this on Ethereum but it's probably going to cost me like $10 per transaction on Ethereum so I'm going to switch to an L2 and an L2 is still ETH all the same security just faster and cheaper with a settlement game so what I can do is I can scan so I have a wallet on my phone and I have a wallet here this is punkwallet.io and if I hit scan and I scan my punk you can see that little punk show up there I get a nice little picture and let's send him like $150 and so we'll see the money disappear from here and we'll see the money show up here really all you need is an internet connection to be able to do this kind of stuff sending $150 for a penny okay so I want to send a little bit to the people in the front row and I want them to send some money to the people behind them and then to send some money to the people behind them and let's see if we can get some money floating back here to people so I am going to go here here's what I want you to do I'm going to scan my phone at this QR code and it should give you a blank punkwallet do you get one of these when you do that okay cool now I'm going to scan yours so you'll notice yours is kind of purple in the bottom right it's because you're on Ethereum what you want to do is select optimism it's the one down there you can just kind of select it there but let me go ahead and scan your person let me send you I'm going to send you some money don't keep all of it it's 20 bucks send it back pass it on let me scan yours maybe like 15 bucks back or something send less than you have hey how's it going how are you good to see you okay let's see let me scan your address ooh it went dark yeah just kind of okay and then let me send you 25 and you'll see it if you go to optimism you can also hit that little reload button let me pull up a punkwallet again this little reload button right here will look for all your money on the different networks so if you guys don't see your money go ahead and just click this little reload button and it will go find the money that you have and find the optimism okay so if other people have punkwallet send it back that's a good way to send money around what's going on there so let me just go ahead and look at this this guy right here this private key this magic number that is your secret basically it's generating one of those for you on page load and you have a private key in local storage this is a terrible way to keep crypto and it could leak at any moment right you could lose it really easily but it's really easy to send around and this gives you a chance to kind of have it in your hand and send it around you'll be able to scan this into Skapled ETH and deploy smart contracts with the money I sent out in fact whoa yes yes you can also just go to punkwallet.io yeah okay so what we're doing here is sort of like showing how there's no central authority here that's keeping track of this money this money is on the blockchain and all you have to do is have this big number that's a password and you're able to use that really big password and cryptography public key cryptography elliptic curve cryptography to send money around and that hopefully shows this sort of decentralized nature of this thing but I just wanted to start with that to show how money is sent around just because there's fewer developers in here than I was expecting and I wanted to do something a little bit more fun so I'm going to continue that so private key is just 64 characters check this out so what I have here is 64 16 sided dice and so these dice are actually all rolling and coming up with a private key each one of these die each one of these dies has 16 sides to it it's really hard to see right now okay so what I'm going to do is I'm going to I've got $50 in this account and I'm going to start a game where we have just 5 dice that we have to find I'm going to do 4 dice it'll go even quicker no I'm going to yeah yeah 5 okay so what this is showing is I'm going to take one of those private keys and I'm going to leak the private key out to all of you guys except for 4 characters and then we're going to roll dice and if you roll the right amount of dice you'll win the $50 it'll automatically sweep it and this is just showing how hard it is to guess a private key it's supposed to give you some intuition about how big this number really is it's a really really big number and so we're only going to take 4 of these dice here and we're going to let all you guys roll as fast as you can and if you have the same number you'll win $50 except for this is not working Internet please the whole intuition that I want you to gain here is that your private key is safe not because someone is protecting it but because math is protecting it it's a difference this is how this whole decentralization thing works there's not one person protecting it it's protected by cryptography this is leading to this kind of new type of computing where we can deploy these apps on a blockchain and when we say they're censorship resistant and no one controls them it's kind of hard to intuitively understand but if these dice were rolling I feel like I could make it a little easier to understand but the intuition around guessing a private key I want you to have the intuition and it's very very hard to guess and I really can't do the demonstration without internet I think so this doesn't matter this is just a small demo I thought it would be fun to do instead of writing a bunch of code let me try one more time yeah maybe it's not the internet maybe something else is going on here but ok forget the dice hopefully you guys are sending some stuff up here let me get to what I was going to talk about so today after lunch we will have Tam doing the staking challenge this is really going to teach you how to build an app on Ethereum and it's going to teach you like the type of app that you build on Ethereum what you're going to do is you're going to build a staking app that allows an adversarial group of players so the people that are playing this game don't trust each other all they trust is the code in the system and that's what's really important here is the coordination mechanism that lets people work together even though they don't trust each other and you're going to set it up so people stake money and if something goes wrong no one loses their money the worst case thing that you can happen is you can build your app so people stake the money in and if something goes wrong and someone defects then everyone can get their money and you have to build the game to work that way and then a token vendor you're going to create a vendor contract you're going to mint an ERC money token we talked about those earlier and then you'll put it into the vendor and people can buy it out of the vendor smart contract to contract interaction lots of cool stuff Kevin and Tam will cover that stuff after lunch my job here is just to prepare you to be able to understand all the concepts that they're going to hit you with and that's why we're going to move over to solidity here in a second but burner wallets were the first thing let me make sure I have burner wallets understood do we understand this key pair is everything this is how you interact with the network you basically sign a message and then you pay some gas to interact with the network and that's how we'll use burner wallets in development too let me now pull up scaffolding ok so moving on scaffolding is a tool to help you build apps it's going to be the underlying technology and all of these things that you do when you're doing the speed run we'll build a couple different apps and we'll use scaffolding each time you can run mpx create or you can just clone scaffolding I think I've cloned it down here already I might need to kill something else to get this to work ok yarn chain and yarn start so I ran yarn start here I got my front end yarn chain here that brings up a local blockchain so now I have a development server and a blockchain running locally and those things are going to be talking to each other they're going to be tightly wound together and I'll show that in a second and then what we're going to do is we're going to write a quick smart contract and the way we're going to do it is using scaffold eats debug page so this is what scaffold eats looks like you can go to debug contracts and you can see your contract oh do we see a new contract come up there let me do it again we should see a new contract right here yeah we're not so something's wrong ok let's see if this comes up there we go and then if I yarn deploy dash dash reset let's see if we see it again what I'm checking here is am I deploying a contract and is it showing up in the front end there it is ok yeah so watch this contract address am I deploying the same contract over and over again but I get a new address here every time that's what I want to see ok time to write a smart contract right that's what really here to do is build on top of ethereum we saw some simple smart contracts earlier there was like a UINT and a counter scaffold eats lays out all of these data types for you really kind of simple template format here just an example smart contract we're keeping track of an address a string, a bool, a number right UINT so unsigned integer with 256 bits a map in right that's kind of like a hash map then we get in here and we show like events you don't need to know that yet constructor if you're a programmer you can kind of intuitively understand that like oh that's the thing that's going to run when I deploy the contract modifiers we don't really need to get into but here is the main function here there's a greeting so there's some greeting that's stored in this contract and then there's a function that allows people to call set greeting and set that greeting so I've got a burner wallet a private key and local storage I'm going to fund it with my local blockchain and then I'm going to go set the greeting so I'm going to go talk to my smart contract I'm going to say hello world this is going to send a transaction and that transaction is going to edit the state of the smart contract which is divided here in the smart contract and let's tinker with that a little bit so this is a payable function here which means that I can send money along with my message so if I send in one way and hit go something else happens it basically checks to see if the value is greater than zero and sets this premium flag for some reason we have some variable called premium and if I don't send any money premium is false and if I do send some money premium is true very simple code someone said earlier that solidity is going to be the easiest language it should be almost like an embedded controller you're writing very simple code that has to run exactly the same every time we have this function in our smart contract that lets someone set a greeting and then we have some extra code in here that does some different logic based on that okay so as you're going through and you're playing and you're learning someone already mentioned this but I'm going to show it again I think Kevin you mentioned this what you're going to want to do is go to solidity by example solidity by example has all of these really great examples of how to build things in solidity for instance if you wanted to learn about mappings we were just talking about that you can kind of just copy and paste so what happens if I put a mapping in here and I redeploy my contract well hopefully I'm going to see a new mapping there we go there's my map and I can access that I can send it an address and get some value back so for some address I'm going to get some number back and so let's just go ahead and set that so let's say in the constructor the map of this dude's address equals I don't know what should I make it equals 100 let's just say 100 okay and then let's deploy it so when the smart contract gets deployed it's going to set the mapping for this address the number for this address to 100 for some reason I don't know we're just kind of arbitrarily writing code and tinkering with it and testing it right but let's go see that that works let's paste in our address and let's do a read and it is 100 great okay so this is how you tinker with Solidity and after you go through speedrun ethereum or even before you go through speedrun ethereum you're going to want to be able to do this if you want to learn how to write smart contracts you want to get into this feedback loop where you can go find the next concept that you want to learn maybe it's arrays you can paste an array in here and you can see what it looks like and you just want to get in that that groove of trying things tinkering and then testing your assumptions what happens if we deploy this let's go ship it I have no idea what's going to happen I'm guessing we're going to get an array that has three values one two and three and let's go see right okay there's the array what's what's value one I think it's one oh no it's two what's value two it's three all right all right zero index okay so our array is there and it has values in it right we're able to go find these concepts at Solidity by example bring them into our smart contract and deploy them all locally and tinker with them and that's because scaffold eth is set up to do this for learning how to build your contract I think I'm supposed to go tell 12 30 is that right anybody know I think it's 12 30 yeah I yeah yeah yeah okay so we know we know how to hold funds now right if you want to hold funds on Ethereum you basically have this great big number and elliptic curve you right you have a special math trick that allows you to do that right and we know now how to tinker with Solidity by using scaffolding and there's a lot of details in between those two things that you'll have to fill in by yourself and I would recommend after today going back home and going to speed run Ethereum and going through these things at your own pace but we're going to speed run through them today so the first challenge is just an NFT challenge and I think I have up here somewhere all you're going to do is just go deploy an NFT and it's going to teach you about burner wallets it's just going to get you set up with the environment then we'll go through the staking and the token vendor you guys will do that later today and then you get into like dice game where you're learning randomness you learn how to build a dex which allows you to swap in a decentralized way we talk about state channels and scaling we talk about multisig and signatures SVG NFTs this is just a really focused curriculum that's meant to take a technical person and just give them the download of how to build on Ethereum as fast as possible so you've got the speed run which is your curriculum you've got scaffold which is like helping us right now tinker with our solidity but then let's deploy like an app live I think I have just enough time to probably like tinker with some kind of quick app that we could deploy live so I'm going to trash my entire smart contract here and I'm going to make like the dumbest smart contract ever what do I want I want a UN 256 counter right no no no let's call it price let's talk about money let's make it public price and I'm going to set it equal to 0.001 Ether and then I'm going to have a function called increment right what do you think that's going to do okay so now I need a counter now I do need to counter public counter right if you're a coder all of this should be very obvious to you what's going on here I'm writing the simplest dumbest code ever here we have 0.1 Ether we saw earlier you use way verse Ether and whole numbers and all of that decimal math is not for the EVM you don't want to do any it doesn't want to f around floating point math I think we already covered that mostly okay so increment right we're going to increment and what we're going to do is we're going to make sure they pay some money right this thing is like a vending machine in the sky that anyone can get to and not even I can stop right I'm building an unstoppable app that anyone can get to and what does this magic app do well it takes in some money I guess and it increments a counter okay so what do I want to do here what I want to do is I want the price to go up on a curve what I'm going to do is say price equals price times 102 divided by 101 now why didn't I just use a decimal there no floating point math right okay so our counter goes up our price goes up anyone can hit the increment button pay some money if they don't pay money it's going to fail if they do pay money the counter is going to increment and the price is going to go up 2% just a really weird kind of little price curve we got going on here but this is a cool little smart contract let's go make sure it works let's go deploy it and try it out and this is what you need to do you'll tinker with your smart contract and you'll get in this mode of tinkering and testing your assumptions let's see where are we at here something's not right oh constructor arguments I do not want any constructor arguments and I don't want this here here okay let's try that again I'm deploying a very simple smart contract here there it goes okay we can see the smart contract we can pay right so I'm going to pay the price and I'm going to hit send here and this should increment the counter there we go so we see the counter goes to 1 now if I pay that same price again it's going to fail and it's going to say not enough ether right I need to pay this new amount notice it went up by 2% and when I pay that amount it goes up by another 2% and we see our counter increment okay so our app is working I'm happy with the smart contract let's pretend that you will spend days or months building a really good smart contract and you will build tests for it and it will be awesome but let's pretend I did all of that and now I'm ready to build a front end on top of this app so we've been tinkering around in this debug contracts tab making sure things work but if I move over to the home tab we're going to write some goal write more you'll probably spend more time writing the react than you do the solidity which is very sad but that's how building decentralized apps works right now that's the state of the art so I'm going to clean out a bunch of things on this home page and then we'll write a little react I think I'm just going to make a button that does that lets you click let's see maybe I'll I'll read from the smart contract and then I'll write to the smart contract I think those are the two examples you need to see to be able to build an app so we are using what's called wagme you can go to wagme.sh for the docs we're also using tailwind css and daisy for components we're using nextjs for our app but wagme brings in that use account that gives us this thing right here it gives us this nice address here so now I'm going to read from the smart contract so to do that I'm going to use scaffold contract read and I'm going to read well let's see contract name is going to be your contract and function name is going to be this is really cool so remember how our smart contract is getting injected into our front end when I open this quote it's going to go to my smart contract and it's going to figure out the variables within the smart contract and prompt me with that so what do I want to read do I want to read the counter or the price I was going to read the price but now I kind of want to read the counter because that's kind of cool and then we'll get some data back and name it to counter and so now we have this variable in our state called counter and maybe I'll make like an h1 tag and throw the counter inside of it and hit save it doesn't like that does it what doesn't it like about that maybe it needs to be dot two string yep that's it alright so now we have a count yeah it's a two right there oh man where's our h tag that looks that's yeah come on uh slash div I don't know what style I want here though or class name here we go class name uh I have no idea I should look this up okay forget about all this stuff I'm just going to make a b and a slash b and yeah yeah yeah hard hitting stuff yeah now we should have a div and it's bold it's still not putting it on the next line here we go keep going keep going there we go there's our counter okay it's on its own line now for goodness sakes okay now let's increment the counter right so we're reading from the smart contract that's rad actually we need to read one other value we need to read the price also so I'm going to copy all of that and get price and price and now down here we can call this the count and we'll grab another one all right how's that look that looks great okay I actually want to format that make that look a little nicer I'm going to say format ether and I'm going to bring that in from oh gotta smell it spell it right there we go bring that in from vm hit save there we go now it's point zero zero one count goes up okay so we have the count we have the price we're able to read from the smart contract we're logged in as this person and showing it but now we need to write to the smart contract we need to be able to from the front end make a transaction that hits our smart contract so we're going to use another hook that's used scaffold contract right right to that same smart contracts our contract name is your contract well man zoomed in and the function name we're going to call let's see I don't remember what it's called it's called it's called an increment it's pretty easy yeah okay now there's some value that needs to go in here which is the price I think and then there are some odds there are no odds okay there we go let's see there now cool what how did price change types that's weird okay let's go back to price two string something weird is happening we'll find out in a second okay so hopefully what we're going to do is we're going to call increment we're going to pass in the price paying the money there's probably some right async here that is our function okay so now I need a button that calls increment and let's see what happens on click we're going to call increment and we're going to say increment what do we got that looks terrible give us some style class name equals button button primary notice how much time I spend on the react versus the smart contract that's really sad okay now if I hit increment does this work yes our counter is counting and our price is going up and I'm paying a new amount each time on a curve okay so our app is built let's pretend like I spent a lot of time on this and made it look really nice too but to rewind a little bit we wrote our smart contract we tinkered with the solidity and got it right then we wrote kind of a dinky little front end and now we're going to deploy all of those things together we'll deploy a front end that people can use but first we need to deploy our smart contract to a live network okay let's deploy this thing live so you know what like all this money is getting locked up if we put this on a real network I want this money to go somewhere let's see let's do a let's just make it way cheaper yeah yeah yeah because I don't want to spend a bunch of real money let's start let's go back to our contract and let's make it like zero there we go okay now when I'm doing this deploy here I'm just deploying locally what I want to do is deploy to the blockchain or a blockchain so I'm going to do a yarn deploy and then I'll do a dash dash network and then whatever blockchain I want to deploy to either Ethereum or Sepolia or base and this isn't going to work but let me just do it real quick to show it it's going to say that I don't have any money because when I'm deploying on my local chain I have a bunch of free money but on a real chain I've got to pay real money so I need to yarn generate sorry this is so small you can follow these docs you don't really need to know all these exactly I just want you to have the general idea of what's going on here I just generated one of those private keys remember the private key that we had local storage the private key just great bit number I generated one of those and I hit it in an environment file and it just gives me the address here so I'm going to use that same punk wallet I'm going to use some of that money earlier I'm going to switch it over to we were on optimism earlier I'm going to switch it over to base and I'm going to send in like five bucks or something I don't know oh I only have four dollars so hopefully this is not very expensive okay I'm going to send in three dollars and hope that's enough to deploy a smart contract we'll find out also there's something I'm remembering I need to take this out we don't want console law there's like a whole package that helps you debug you don't need that introduction okay let's see what happens when we yarn deploy to base now what's that oh base yeah base is a L2 is that what you're asking what is base yeah base is an L2 so we consider Ethereum L1 and then there's these other blockchains that run on top of that and settle to the L1 so base is just an L2 that is an optimistic roll up that settles to Ethereum okay but something is still not working here and I don't know if it's because I don't have any money is it funds okay so yarn account let's just make sure we have some money on base I don't know if the money that I sent in actually went yeah I don't think it did it's internet again let me try one more time I just wasn't able to like send the money to the dude hit send please go please go okay that time it went alright let's try to deploy again oh something's happening something's happening we're putting our smart contract out on a live network that anybody can talk to yes it worked we just deployed a smart contract to a live network and paid real money smart contract that anybody can interact with it's dumb as hell but as a programmer you kind of get what's going on here right we made a price curve and some mechanism here it's going to lock the money up doesn't make sense in a lot of ways but in another way it's really cool because that thing that we just put out there like I said not even I can stop it this thing is going to exist forever and not even I can stop it and that's really powerful if you think about building apps and uptime and redundancy you're building apps that are hella redundant they're better than nation states in a lot of ways okay so our app is our smart contract is deployed but now we need to deploy our app and point it at our smart contract so people can use our app right now if they wanted to use our smart contract they would have to like go to Etherscan and talk to it directly and that's not any fun at all so we need to make one change here I need to put my app on base so we've been talking to hardhat the whole time our local node if I change this one value here well I'm going to change a couple of values but you don't need to do this I'm just doing this because it's assuming that I just changed that I changed it from hardhat to base now our whole app underneath shifts over to base this is really powerful because now my whole app is now running on base if I click any of dresses it's going to take me to the base block explorer and if I hit debug on contracts here is our smart contract on base we can click this and we can go look at it here's the contract I just deployed right let's see what did it cost to deploy this thing two cents it costs two cents to deploy that smart contract to base that's awesome that is something has happened in here that is really cool ok so our smart contract is out on base and I have an app here and technically I can hit the increment button and I'm going to do that actually let me connect my metamask we saw metamask earlier and you'll notice that scaffolding bumps you over to the right network and then let me just hit increment with my base account yes there we go so I'm going to pay 37 US dollars 37 US cents and I'm going to increment a counter on a smart contract on base it looks like it works ok now we want to deploy our app live I'm going to yarn versell yolo prod I love this command it's ridiculous yarn versell yolo prod like don't do any checks just ship it put it out there ok that looks good no sure ok so that's going to take a couple minutes to ship the app but then we'll have basically a live app that's at a URL that anyone can go to they can connect their wallet they can hit the button and it's going to talk to our smart contract that we wrote in like 4 minutes and hopefully this shows you that you can tinker with Ethereum you can start with speedrun ethereum it's a very polished curriculum but you can always just dive over to scaffold E and you can have this same setup on your local machine you can have a local chain a local dev server you can tinker with your smart contract then you can deploy it you can build a front end for it it's a live app that anyone can use it's just going to take a while for this app to ship let me see if I've covered everything in my notes here yeah there's a few things I didn't cover but that's ok we sent money we did the dice sort of yes ok so you know you know how a wallet works you know how to send funds you know that there's no central authority it's just a big number that is your private key you know how to tinker with solidity right maybe solidity still a weird language to you but you can always go to solidity by example copy paste those things into your scaffold E and tinker with building your own smart contract then you can build your own app by writing all the react and doing all of this painful stuff that I did here but that gives you a nice front end where you can read and write to your smart contract then you deploy your smart contract live to a network and then you deploy your app live to Vercel and basically you've built a decentralized app and anyone can fork it hopefully you make it very open source we're very open source here and that's it oh look it looks like it's live let's go see oh it's still deploying darn it let's see is there anything else I want to show off before we go any questions I could definitely answer some questions if you have them oh yeah here we got to do stickers too I'll wait for this thing to deploy but before it does I've got this the buffalo and the zebra here from the NFT example I have those here and I think they're mostly set up but I'll pass them around while we're waiting for the app to deploy so here take a buffalo and pass it along yeah split it in half boom boom take a buffalo and pass it thank you yeah have a zebra too here comes a zebra yeah and so these are the NFTs that you'll mint when you do the NFT example speedrun at the earlier definitely open to questions if anybody sorry go ahead yeah any question for us here you go have a zebra okay let's see if our app is live is there a question yeah let's go another one here hello thanks for the speech pay for me a remix I'm not familiar with scaffold so I hope like equivalent to like remix but live locally it's very similar to remix in that you have your code here and you can tinker with it it's a little cleaner than remix and it's local so remix is in a browser very powerful tool for tinkering around scaffold eat is that same sort of UX but local on your own machine and then you end up being able to make a few more tweaks and deploy the app live so remix doesn't have the front end that we have here it sort of tries to auto generate the front end like our debug tab but it doesn't have the app building functionality that scaffold eat does so scaffoldies is like remix to tinker around but then you like go into front end mode and build your front end to talk to your smart contract so it's basically like a remix of steroids yeah yeah remix is awesome though I'm a big fan here you go thanks what is hard hard Sepolia all these terms hard hat is mentioned earlier hard hat and foundry are two different tools that you can use to compile your smart contracts and it basically compiles the code that we saw here into byte code that deploys to your so that's like a compiler testing environment hard hat and foundry Sepolia is a test network so we deployed to Ethereum but if you don't want to spend a bunch of money or you're still learning and testing you can deploy to a test network where it's basically a free network that has a faucet that you can get some extra ETH and then deploy your smart contracts there and tinker around first and then base and optimism are kind of like in the middle there where they're cheaper and faster but they still are live production networks does that answer that awesome let's see if our app is live yet here oh yeah here it is here it is here it is that's got to be that right there here we go ok so this if you go to this long ass URL right here anyone can go to it you can connect your wallet let's go with yeah just made a mask again I guess and I can increment a variable by paying what am I going to pay now 38 cents there we go so now our account goes to and I just used a live app within 30-40 minutes I was able to build a smart contract tinker with it, debug it, get it right and then build the front end on top of the smart contract deploy the smart contract live and then deploy the app live pointing to the smart contract and so you can do that too at home and to learn how start at speed run at the area thank you thank you so much Austin that was amazing and if you want to get into the weeds of development yourself please come back here at 1.30 between that time we'll have lunch there is a food room that we can access I'll show you where yeah make sure you come back at 1.30 here hello everyone right after this we will have a break until 1.30 and we have a dining room for VIP for the guests of STH and all the people who are in this room currently can also be invited to have lunch with my speakers and our dining place is for you to go out of the public that is the house and the next to the main street if you are standing from the outside then it is right on the left the whole house