Okay. So if you are watching right here, right now, then that's because you want to know how Monero's reference implementation GUI wallet works. You love the idea of Monero. You listen to all the talks. You're like, Diego, I need this. I need this in my life. I need to get on board with Monero. But just downloading things and using the wallet, it's all scary. What if my Monero just disappears? What if everything just goes away? So this is the workshop for you. I'm going to be kind of going through the... I'm going to be going through the Monero wallet, getting everybody comfortable with it. We're going to send a transaction. We're going to receive a transaction. We're going to go ahead and prove a transaction. So, you know, proving that I did in fact send from one place to another place. So, you know, and we'll talk about when somebody would want to do that, why they would want to do that, and then we'll go ahead and show you how we would go ahead and do that. And if you have any questions at any point in time, please, by all means, put them in the... put them in the chat. I have both a Twitch and a YouTube open. So I will go ahead and be watching both. Just put it in either. If you need me to slow down or any of these things. Ideally, as we're starting, I would recommend everyone to go to getmonero.org. There is a place for downloads. And, you know, as we're getting started here, if you want to follow along, go to getmonero.org slash downloads or click on the downloads in the navigation and go ahead and download the GUI wallet. Ideally, you would want to do the thing about where you're checking the hashes, which there is instructions for to do there as well. But we're not going to have time to go through that at present time. So you can go ahead and do that later. But you are going to want to check your hashes just to make sure you have the correct software that has not been hijacked or anything. So I'm going to go ahead and share my screen, if that's okay with everybody. Let's go ahead and do that. Just one second. Okay. So here is my lovely Monero wallpaper. And we have a freshly opened Monero GUI. It's not super freshly open, because when you do first open this, the first thing that you're going to see... oh, it's not this one. Although, hey, neat little feature. You can go ahead and switch light mode, dark mode. But basically, the first thing you're going to do is choose a language, I believe. Although maybe they updated that and it just takes it from your computer, but I don't think so. So you can go ahead and choose your language, and you're going to come to this thing. Simple mode, simple mode bootstrap, advanced mode. What do you choose? What do you do? How does this work? So this isn't really that scary. Basically, Monero wallets have two ways of connecting to the Monero network. Either you can download the blockchain onto your device. This is the one that has the least amount of trust, because now you're just... all the time, you're working with your own blockchain. You're not going to be working with anybody else's blockchain. You don't need to connect to any external computers. It's just all you, all the time. So you can do everything locally. But that's going to take time to download everything. That's going to take time to verify everything. That's going to take space. And right now, Monero blockchain is like, I don't know, like 80-ish. Somebody can correct me if I'm wrong. You can look it up. It's pretty easy. But 80-ish gigabytes. So it's a decent amount of space. It's a small investment. But with how big hard drives are these days, it's not too awful, I guess. So if that's what you want to do, you're probably going to want to go with simple mode bootstrap or advanced mode. And advanced mode just kind of lets you choose all the different things that you want to do. Simple mode bootstrap has fewer tweaking needed, but it still does put the blockchain onto your computer. Simple mode does the other way of connecting to the blockchain, which is basically this idea that you don't have the blockchain on your own computer, so you have to connect to somebody else's computer who is available to the internet, and you access their blockchain. So when you need to send a transaction and you need to kind of do the whole ring signature thing, you take stuff from them. You still have to scan the chain for your transactions, but you don't have to download the whole thing. So you're basically scanning somebody else's version. You don't have to have it on your own. This is so that way you don't have to use a bunch of bandwidth to put that all on your thing, and also so that way you don't have to store it yourself. For most people, unless you really want the blockchain, you could just go ahead and click simple mode, and it's going to take you and connect. It's going to find one of those and connect automatically the one that's going to be the closest to you. So I'm going to go ahead and click simple mode, and it's going to this thing. It's like, okay, are you sure? Just be aware. Just be aware. This is not the most private way that you can do it. Remote nodes could compromise some privacy. Let me go ahead and make this a little bit bigger. Wonderful. So we've made the window bigger, but we haven't scaled the text at all. I don't know if this is readable on the YouTube. I don't suspect that it is. Okay. We're just going to go ahead and move forward from here. You can ignore this. I'm going to go to advanced mode because I already have a local remote node set up that I'm going to connect to at my own place. But we're just going to pretend that you pressed simple mode and you pressed yes, I understand these consequences, and then you're going to come to here. Create new wallet. Create new wallet from hardware, open a wallet file, or restore wallet from keys and So these are pretty self-explanatory. Create a new wallet is what we're going to go through in just a second. That is going to let you create a brand new wallet. Hooray! Create a new wallet from hardware. I'm certain if you've been in the blockchain space for any length of time, you've probably heard the names Trezor and Ledger. These are hardware wallets that you can get. And they keep the keys on the hardware device. And in theory, they're supposed to be hard to extract, if not impossible. And it helps so that way, if you do have a virus on your computer, if you have any of these things, they really can't steal your Monero because all the keys are stored on the hardware and you need the hardware to be connected in order to send a transaction. So if you have access to one of those devices, you have one of those devices, or you want an extra layer of security, Monero does work with both Trezor and Ledger. So this is how you would make a new wallet if you were connecting it with the hardware. Open a wallet from file. So after you make a new wallet, it gets put on your file system. And so if you have multiple wallets for whatever reason, your wife has a wallet, your husband has a wallet, your dog has a wallet, and all of you guys have separate bank accounts, so to speak, right? You can click on this and navigate between wallets, if you have multiple ones on the computer. Restoring a wallet from keys or mnemonic seed. In just a second, when we create a new wallet, we're going to see what a seed looks like. It's basically 25 words that we're going to need to write down. And if your computer dies, if your phone dies, wherever the wallet is stored, you will be able to get your Monero by clicking on this option and typing those seeds in. And I will greatly stress the importance of seeds here in just a minute. They're extremely, extremely important. Is this bugging people that you want it more in the middle? I mean, yeah, we'll put it more in the middle. I don't know. Maybe some people are annoyed by that. So we're just going to go ahead. You can go ahead and ignore these ones right here. Change you back to simple, advanced, whatever. And change language is pretty self-explanatory. So we're going to go and create a new wallet. Okay. First thing we're going to find out. So on this virtual machine, I just named it funsies just because this is for funsies. And there is a wallet location. So this is where your wallet is actually going to be stored. You can click browse and change where that's going to be. Okay. So you can give your wallet a name. I'm going to call this Defcon new. You can name it whatever you want. Now we get to this thing, the mnemonic seed. And this is the single most important thing that you're going to do when you make a new wallet. You need to write these words down. You need to get out a pencil and a paper, 10 papers, and write these words down. Okay. If you lose your wallet, meaning your computer dies, or it explodes, your house catches fire, and you don't get to save anything, you know, anything could happen. If you lose your computer, if you lose your wallet, but you have these words, then you have your Monero. If you lose your wallet and you do not have these words, then you have lost your Monero and nobody can help you get them back. These words are like a human readable representation of your private key. So if you do not have these words, you don't have your Monero. And further, if somebody else sees these words, they now have your Monero. Your wallet has no way to distinguish between whether that person is the actual owner of the wallet or not. All they know is, okay, they have access to these words, so they can spend the Monero. If you have these words, you can spend your Monero. So you need to write them down. It's not recommended to put them digitally, because what happens if your computer gets hacked or any number of things, right? And it's important that you have more than one of these in a very safe place, because if you only have one paper copy and it gets burned up, or something happens to it, or there's a flood, then you have lost your Monero. You must, must write this down. Do it now. Do it now. And for this particular presentation, I mean, I just pressed brand new, so if I click back to menu and create a new one, you're going to see that it's a new set of seed. It's a new set. It's just going to be different every time. So I would not recommend writing these down. I also would not recommend using the wallet with this seed for anything, because now this is available to the public. This is available on YouTube, on Twitch. And if anyone's writing this down, hoping, okay, Diego's going to be sending money to this wallet to prove things, and I'll just steal it, because I have the seed, ha-ha, you're mistaken. I have other wallets set up that we're going to do that for. So write this down. Don't send to this one. Don't send to this one. Wallet restore height. What does this mean? This is basically... so Monero's chain is really, really big. I told you it's several, several gigabytes large. And if you make a brand new wallet, right, if you make a brand new wallet, why would you want to scan the whole chain to see if you have any transactions? Because in theory, if it's a new wallet, you have no previous transactions. If you're restoring a wallet, then maybe it's important. But for a brand new wallet, it's not important. So we're telling it, okay, start 2 million blocks up. Don't start at block zero. Start 2 million blocks up. And the GUI's going to chew something to you relatively close. So we're going to go ahead and click next here. This is where you're going to put your password. Okay. If you forget your password, but you have your seed, then you have your Monero. If you forget your password and you don't have your seed, you don't have your Monero. So the seed is the most important thing. Write it down. The password is to make sure that anyone who gets access to your computer that maybe shouldn't have access to your computer can't send your Monero away or something. Because it doesn't require you to put in your seed every time. And we'll see that in just a moment. So I'm going to go ahead and click next. You can put no password here. I would not recommend it. But for these purposes, this is what I'm going to do. I do have a bootstrap node. So just one second. This should have been already filled in. But it's not. Which is a little annoying. Just one second. This is where I have put my temporary node. So now you all know where that is. Fantastic. Uh-oh. No. Connect to a remote. Do it here. Do it here. Okay. Create wallet. So here's where you would be putting in your password if you had one. I just press okay because I didn't put a password for this. And you come to this screen. And you see okay. Now we're scanning. But it's not from the beginning of the blockchain. It's from block 2 million. And bam. It's done. Super quick. This would have taken a long time. Hours, probably, if it was scanning from the beginning. But once it scans once, it doesn't have to do it again. So if you do scan from the beginning, then after it's gone through those hours, the next time you open your wallet, it won't have to do that process every single time. It's just that once. So we've got several screens over here. The GUI starts you out on the send screen. And as you can see, we're gonna put the address that you want to send to, the amount that you want to send, your transaction priority, which determines the fee that you give the miners. The higher the fee, the more likely you're gonna get in, unless the blocks aren't super full. In which case, pretty much everybody's gonna get in. So if we click on this, you can see slow, normal, fast, fastest. These are how much fee you can put. Monero also has this cool thing where you can add a description. Just for your personal thing. So when you send a transaction, you're like, oh, I sent this to my cousin for this reason. And so you just know what everything's for. We also have an address book. So if you use, you know, if you're paying an employee and you do it consistently every month, you can save their address here. So you don't have to ask them for it every time. Why would we want to do that? Well, if you've never seen a Monero address before, let's go to the receive screen. And this address is very, very long. You can't see it here because it's truncated. So actually, let's go ahead and open up a notepad. Boom. This is what it looks like. Okay. This is a Monero address. It's very long. It's very, very, very long. So you can't call your grandma and be like, okay, grandma, here it is. It's four, five, lowercase p, lowercase h, lowercase p, uppercase L. You can see how that's going to be prone to errors and stuff. So you really got to copy and paste it in every time. You got to ask for it. So the addresses, saved addresses on your address book is going to help with that. You also have a QR code. This is the same thing as this. So if you scan this QR code, we do have mobile wallets available. Cake wallet for iOS and Android and Monero for Android as well. You can go ahead and scan that. And send to it rather quickly. Transactions is going to be a list of transactions. Because this is a brand new wallet, we don't have anything here yet. And I'll show you one of the other wallets that I've made here pretty quick. Advanced for the most part. We're not going to cover those. It's outside of the scope. I've only got about 15 minutes left. And we still need to do some things. But you can mine from this. The only one we are going to touch on is this prove and check. This is how we're going to prove a transaction. And we're going to get to that in just a minute. Settings is where you adjust some things in the wallet. And you can go ahead and click around those and see for yourself. Accounts. We're not going to go ahead and worry about accounts for now. But there's just this idea that you can generate multiple subaddresses, which are addresses that link back to this one address. So, you can make multiple subaddresses that all go down to this one thing. And you don't have to have new seeds or make new wallets or anything like that. You can also do this from the receive screen. Create new address. What is this? This is subaddress 1. And Monero addresses start with 4. Subaddresses start with 8. And you see that the QR code changes every time to match the thing. Okay. So, this is the new wallet. We're gonna go ahead and push this aside because we know the seed for this wallet. The seed is for everybody. So, we're gonna go ahead and push this aside. And I'm going to grab some other wallets and bring them onto the screen. And here, we have Defcon send and Defcon receive. Let's go ahead and put this this way. Both of these, you don't know the seed for them. That's the point. But they do have some Monero on them. This one has three Monero on it. This one has one Monero. And we're gonna go through a couple of the flows. Before I move on, let's see if there's any questions. Blah, blah, blah. What about JavaScript? What about JavaScript? I don't understand. Okay. I think we're good. All righty. So, as we can probably tell by the names of the wallet, Defcon send is going to be sending to Defcon receive. So, how we're gonna do that, it's as simple as this. On the wallet that you want to receive from. So, if you are the recipient of money, you're going to go to receive. You're going to copy this. If you press this icon, it copies the address to clipboard. Or you can give them this QR code, which you can save as an image or also copy that to clipboard. And on the wallet that's send, if you're the sender, you're gonna go ahead and paste this in here. Now, you want to double check the address. Because there are there is malware out there that will replace the address in your clipboard with their own. And you want to double check that. You want to make sure that this address didn't get replaced. You don't have to do the whole thing. So, in this case, we see 47BXR3PB. And if we look here at the recipient address, we indeed see 47BXR3PBMKWI. And this truncates it, but it also has some at the end. You know, the last four are LQCW. If you want to be 100% sure that you're the correct address, you verify the entire thing. Most people, like, if you just do the first four and the last four, that's probably too little. Because it may be easy for somebody to generate something that looks similar. Verifying any of them is better than nothing. But, you know, verifying the first maybe 10, 16, the last 10, 16, it's the more you verify, the harder it is for somebody to kind of cheat you and make it so that way you don't know what's going on. So we've went ahead and put this in here. We can go ahead and add this to our address if we want to. I'm not going to go and do that, but you can go ahead and do that. If you click this, it'll take you to the address book. You know what? I am going to go ahead and do that. I'm going to add an address. And this is Diego. He's so cool. All right. So that's what this is added as. So now from the address book, I can actually click on this and it will autofill on the address here. It will autofill that. So I'm going to go ahead and send Def Con receive one Monero. For the most part, we're just going to like automatic on transaction priority is going to be okay for 99% of the time. I don't recommend touching this unless you know what you're doing. Advanced options, we don't really need any of this, so let's not worry about it. So now it's creating the transaction. It's building the ring signature, getting the cryptography ready, all this stuff. It's like, okay, this is where you're sending it to. This is the amount. This is the fee. Here's the ring size. Here's the description. Does all this sound good? Yes. Okay. It's going to prompt you to put in your password, which if we had one, I'd put it, but we don't, so I'm just going to press okay. All right. Monero sent successfully, is what this says, because I think it's a little too small and blurry for everybody to see. Monero sent successfully. And then it's got this huge long string of alphanumeric string. This is your transaction ID, and we're going to come back to this when we prove transactions. You can go to a Monero block explorer and put this in there, and we can see when it comes out. Okay. So I just sent one Monero, and if we go to transactions, we can see... you've seen here on the transaction screen, you can see that I have put some Monero onto this wallet for these purposes. These are the past transactions. I sent one XMR 28 seconds ago to this address. And boom! Oh, wait, no, this is the one that we have already that was already on here. If we click on transactions, you'll see... ha-ha! We do have one. This was the one that was already on here, but this was 46 seconds ago. The reason it's not showing up here is because it needs to be included in a block first. If you don't understand how a blockchain works, transactions need to be included in blocks, which then need to be mined and da-da-da-da-da. There's a lot of great resources out there that talk about how a blockchain works from the ground up. I would recommend giving it a look. But although that isn't super important right now, Monero's block time is two minutes, which means that the average amount of time it takes to find one block is two minutes. So this will be about two minutes, but it may be more, it may be less. It depends on the luck of the miners before this is going to start showing up here. So that is the send and receive flow. It's really not difficult. If you want to be the sender, you just got to know the address, know how much you're going to send to them. You can send all of your Monero there if you want and set a fee, which automatic is going to be okay most of the time. If you're the receiver, you're going to either copy the address and give it to them, double check that it wasn't replaced, or they can scan this QR code, which you can save as an image and send to them or whatever the case may be. In all cases, you're going to want to check to make sure that the alphanumeric string was not changed and the QR code was not changed. You just want to make sure that it's actually going to go where you want it to go. Because if you accidentally send to the wrong address, you have no way of getting that money back. There's nobody to call. There's no customer service. There's nobody who can get it for you. It's all cryptographically enforced and nobody can save you. So we're going to go ahead and prove a transaction really fast. And I hope this goes well. I hope this goes okay. This is the reason why I put a previous transaction of one because I don't want to wait for this one to come into a block before we start proving. So this one was sent three hours ago. And we're going to prove that this DEFCON send did in fact send to this DEFCON receive. So if you imagine that DEFCON receive is a merchant and DEFCON send, they purchased something in Monero from that merchant and the merchant says, oh, well, I didn't receive this Monero. I didn't get it. You can prove that you did. So let's go ahead and go to advanced and proof check. And here advanced proof check as well. So we need the transaction ID. So actually, let's go back to transactions. This was the one that I sent prior. And if we click on this, we see that there's details that drop down. Here's the transaction ID. You just find what's labeled transaction ID. And we just left click on it and it automatically copies it to clipboard. Great. So we're going to go to advanced proof check and paste in this transaction ID. Let's just double check that it's correct. A89BB64 blah, blah, blah, blah, blah. Yeah. It's all good. The address. We have to know what address we sent to. Once again, if you go to transactions, it has in the data about the transaction at the bottom, it has the address to send to. It's this one right here. So we're going to go ahead and copy this and put it in this proof check. Now, you can put an optional message here. And this is just an extra kind of fail safe. But the other person has to put this exact same message, otherwise it's not going to check correctly. So we're going to go ahead and put Defcon as the message here. Now, we're going to click generate. Now, once we click generate, it gives me this payment proof. This thing that starts with out proof V1 something, something. So we're going to copy this, double tap to copy the clipboard. And we would send this to the recipient. We would send this to them and say, this is the proof. This is the proof. Okay. Now, I'm the merchant. I want to say, okay, Diego says he sent it to me. For some reason, I'm not seeing it or I don't know. Okay. Let's go ahead and check this out. We're going to scroll down to the second part, check a transaction. The first thing we're going to do, we're going to paste in the signature. The out proof something, something, something that it gave to me. Okay. The transaction ID. I'm just going to copy it from here. But the transaction ID is a public thing. It's known to everybody. So sharing this or you can get it from the block explorer or whatever, it's not a big deal. I'm going to put that here as well. The address, I know what my address is. It's the address that I told them to send to me on. Oh, by the way, the other one has popped up now. So we have one, not two. And the message. If we put an optional message, once again, it has to be the exact same thing. So I have to put Defcon or whatever it is that they put. And we're going to click check. And it says, okay, this address, if it's too small for you guys to read, it says this address received one Monero with 107 confirmations. This says you did indeed receive one Monero and there is 107 blocks on top of it. So you can look 107 blocks back and that's where you're going to find it. If any of these things is incorrect, so if we put an incorrect here and we click check, it's a bad signature. That's what it's going to say. It's going to say, nope, this isn't real, this isn't correct. So if the signature is not right or the address is not right or the transaction ID is not right, all of that stuff is going to be incorrect. It's only when everything matches 100%, which because everything is cryptographically generated, there is zero chance that if you put in everything correctly, the transaction ID, the address and the message that it will say bad. It's only if there's a big flaw in the software. Because all of the cryptography checks out, it's mathematically enforced, there's no way for somebody to... there's no way for a merchant to cheat you out and say, no, I didn't receive it. When you're watching them put in the ID, the address, the message and the signature and you verify that everything is correct, there's no way that this will be incorrect. So the address received one Monero. Great. Awesome. So that's how to prove and check a transaction. Not all wallets. So most mobile wallets and stuff come with this capability. So if you do need to prove or check a transaction, then, you know, where the ecosystem is still developing and blah, blah, blah. But there is a way to do it. There is a way to do it. And that's what I just showed you right here. That's the basics of the Monero wallet. As we're closing in, I got four minutes. That's the basics of Monero wallet and how it works. The last thing I'm gonna talk with you about is that this one Monero that I received, it's not yet spendable. You can see it says confirmations, 6 out of 10. The Monero protocol kind of has it so you have to wait 10 blocks before you can spend it again. And that's just a safety precaution to make sure that every organization doesn't ruin your transaction. And if that's a little technical, then I apologize. I don't have time to get into that at the moment. So are there any questions from anywhere? Can you please make the wallet a little bigger? Thanks. I'm sorry. I wish I could. But as you can see, when I make it bigger, the white space gets bigger. And the rest of the stuff doesn't. It's because the DPI of my monitor is too high, unfortunately. I don't know if there is a way to increase the size. Let's check it out. Settings. Interface. There's no way to change the size in there. You'd have to change it in the window settings or something. No, there's currently no way for us to make the interface bigger. That's something that should probably be there. We can talk. Maybe I'm just an idiot and it really is there and I just don't know. Yeah. So I do apologize for everybody. I do apologize, everybody, that the wallet transactions are so small. I hope you're able to squint and get a little bit of an idea. At the very least, where the general things are supposed to go. It's pretty self-explanatory where all the things are very neatly labeled. So hopefully this was marginally useful. If you get nothing else from this talk because everything is too small, write down your seed. Write down your seed. Remember that thing at the beginning? Those 25 words? Write them down. Write down your seed. Write it down. If you have your seed, you have your Monero. If you don't have your seed, you don't have your Monero. Write it down. And that's basically it for me, guys. Hope it was useful. Glad you all came. This will be available... you know, I'll probably record myself doing this a second time where you can actually see things if they're not too small. And we'll try to make that available on the Monero community YouTube channel that you're watching this on. So if you are still confused because you couldn't see anything, then be watching out for that. Hopefully within a week or so we can get that done and get that uploaded. That's it for me, ladies and gentlemen. We've got a meme competition coming up here fairly soon. I'm going to stop sharing my screen so you can see my lovely face. Hey, this is the guy that's been talking to you this whole time. Diego Sauzar. Rebrar.