Fweb3 Update - Going from Zero to One in Web3

Sahil Lavingia built Fweb3, a month-long game that teaches Web3 basics through on-chain tasks like token transfers and NFT minting. About 50 players have completed it so far. He's automating verification with smart contracts and adding leaderboards and trophy NFTs next.
Chapters
So I wanted to give an update, uh, sort of for just to kind of quickly recap. Uh, I decided to build, to spend the week or the month, excuse me, of February, uh, building. Let's see if I can find the post. I changed the logo. Please don't cancel me for, uh, stealing the FWB brand. I thought it would be kind of funny, but they were annoyed, so I changed it. It's now Comic Sans and Courier. But basically I had this idea that I, you know, uh, I thought it'd be fun to build a project, uh, in Web3 over the course of a month. And so we're sort of 23, looks like, days into this. We have 5 days left to kind of improve the quality of the game, and it would be awesome to kind of like launch this, uh, February 28th or March 1st or something like that. Um, so yeah, uh, and then just real quickly, uh, and I did write this memo that you can find if you, you know, from the website, but the kind of core comp, uh, to make here is that basically NaNoWriMo is a game, uh, challenge sort of thing that exists for writers to write a novel in the month of November, which is National Novel Writing Month, 50,000-word novel. Uh, and so I thought it'd be fun to kind of like use that framing, uh, except kind of do a kind of a crypto game. And so that's what we decided to build, or I decided to build, I guess, though certainly the community has grown since then. And it's actually like blown me away, like how much progress we've made. Like when I wrote that post, I, you know, it was probably like 5 to 10% odds that like we would really do anything that interesting. Like sort of far surpassed that, which is, I guess, kind of the promise of crypto, I guess, is kind of this incentive alignment that allows you to kind of like reward people for helping out and all these sorts of things. So that's been been pretty cool. Why did— obviously there's just the selfish reason for me, I want to learn and build. And I find that the best way that I learn is I just commit to building something in public and then I build it in public. And if I run into a bug, I'm like, well, too bad. I have to fix this bug by the end of February. And I'll talk a little bit about some of those events that happen. But I think the moonshot and the goal is to basically just onboard more people into crypto. There's a lot of NFT haters. I have plenty of those in my own audience and in Gumroad's audience. There's plenty of people who love crypto and NFTs, but the truth is everyone, I think, agrees that it's too expensive, too difficult to get into. I don't really know exactly how to make that easier, or at least I didn't at the beginning of the month, but I thought that building in it would force me to learn about all the challenges and things that are difficult about Web3, and then maybe I can help contribute to actually making it easier. So the MVP that we kind of decided to build is basically this kind of like game that exists on, on the website, uh, and then all the kind of social components exist in Discord, right? So that's where you start, uh, by getting your tokens. We actually change this to 222 so you have enough to kind of send it to somebody else and burn some and, and things like that. Um, and then the goal is if this works, and it seems to be working, um, that by the end of the month, um, hopefully I can kind of like give everyone the tokens, and then next year we can kind of like you know, over the course from like now until February of next year, we can kind of like improve the game and add features as we go. Um, and then kind of do like a much cooler kind of larger game next year, uh, that will also kind of be token gated. Um, and if the price of the token goes up, we'll just, you know, I assume the community will agree to like lower the, the, the count so that it should always quote unquote cost that we should generally be giving people with these tokens for them to be able to play. Um, you know, like a dollar, right? Roughly 153 tokens. It's like 161 or something like that to $1. It's kind of like, I think if you go to Uniswap on Polygon or Ethereum mainnet, you'll kind of see what roughly this is kind of equivalent to. So yeah, let me kind of go through what we've built so far. So this is the game. I'm logged into a wallet. So that's kind of the first task. And each of these tasks is kind of a different on-chain activity. The first one is to go, you click this, you'll be taken to a walkthrough. I've kind of documented I guess I'm logged out on, on the, on the web, but I've documented kind of some steps and we have some great videos from Brian, uh, that go through like all the things you would have to do. Uh, we've had about at this point like 50 people who've completed the game. We haven't even really officially launched, uh, which is pretty awesome. We have around, and we, there's actually a dashboard. One of the really great things about it, you know, doing this all kind of in this way is that anyone can build this kind of stuff, right? So, so this is kind of a dashboard of all the This should actually say Polygon, I believe, but these are the wallets on Polygon. So kind of daily, it's kind of growing basically organically. I mean, obviously I'm talking about it and doing stuff like this, but like, we're not really— there's no growth hacking, there's no venture capital dollars. Like, there's no Twitter account really even. Like, I tweeted once from it yesterday, which is, I think, really cool. Like, it seems like people just like— it's fun and people want to learn and people want to play, and that's awesome. And so that will kind of remain the focus. But if you go through here, you'll see this game, the first big decision we made was, and you can go through this here, is to go to Polygon. And there's a long video that Brian did about it. But the real reason we did this is because Ethereum is just way too expensive. And there's a trade-off around decentralization and security, things like that. But we felt like we can move 10% of the supply, 10 million of the tokens to Polygon. And effectively reduce the cost drastically. And this was the cost of the airdrop, so it was sort of 12x cheaper. But effectively, once you're on Polygon, it's even cheaper. It's effectively almost free to send transactions and to do things. So doing the game is 100% free. To really honor that part of the mission, it's 100% free. How is it free when there's gas costs? Well, what happens is— you, you join the Discord, you get 100 token— 100 tokens sent to you. So if you go into here, you can ask for it. We'll create a separate room. Like, we're continuously updating the game, but you'll notice that there's a bunch of people in here who are asking for tokens, uh, and you see these check marks. So basically you just ask for some tokens, and then someone who's won the game and has earned kind of 1,000+ tokens will effectively be nice to you and send you them. So you'll see that happening in here, which is pretty awesome. So you'll get the tokens. Once you get the tokens, this thing will just automatically light up. You don't have to do anything. You don't have to confirm. Like, we just look at the on-chain data. By the way, this is all open source. So if you want to actually see what the codebase looks like, you can go into the codebase. You can see what we're working on. And I'll go through kind of like what's next. I know a lot of people are kind of curious about that. But you can— this is just like a Next.js app. It takes you literally within 10, 15 minutes. You can kind of create your own version of this. All you need is a Polygon Scan API key and you should be good to go. But if you, if you're familiar with Next.js, which honestly I wasn't up until 4 weeks ago, I believe everything should be in the pages. Yeah. Pages API Polygon, which Slin Lee just converted. Slin, oh, interesting name. Slin converted to, or Slin maybe, I don't know. To TypeScript recently this morning. But this is the code, right? Which is basically just like looks at, again, like I'm not trying to say that we're doing something crazy awesome. Like the goal is to actually do the opposite and build something like that everyone feels like they can wrap their entire head around. But you can see kind of like what we do, which is we have all these booleans and then we check using Polygon Scan, using your wallet address, right? If you've done all of these sorts of things. So at the bottom, you can see all the things that we check. Each one roughly maps to like one of those lit up dots, right? Do you have a token balance? Like, do you have enough Web3 tokens? Have you used the faucet? Et cetera, et cetera. So that will light up. Then you can use the faucet. So if you go to the faucet— and again, the walkthrough kind of has instructions about all of this. And if you're scared, like, really try. Like, you may be surprised at how much you accomplish. So you can use our faucet, which if you go here, the way to use the faucet, you go to the contract, you connect your wallet. Da da da. I'm now connected. And then I basically just have to specify my address. And if I have enough tokens, which I do— I do actually, we might have to refill this, so this might fail actually. Um, but effectively you'll see that like the costs are— yeah, so maybe anyway, uh, actually the right way to do it is to go to this website. The reason is we've made it free, so if you connect MetaMask here, the contract itself will absorb the cost. Um, and so that's how you get MATIC. You get 0.1 MATIC from the faucet. I have 40— get $40 worth of MATIC. Effectively unlimited, right, in this, in this network. It's just easily enough for like thousands and thousands of transactions. Once you have the gas, then boom, you're ready to go, right? You're on Polygon. By the way, if you don't— there's— if you've never created a wallet before, like, there's also instructions on how to do that. Really easy. Click the dot, you'll be asked to install MetaMask, then go to the bottom of PolygonScan and add the network, and then, and then you'll have the wallet. Go to the Discord, you have the tokens, use the tokens, you get the gas, boom, right? You have the wallet, you have the gas, and you have some tokens. So now you can do all the rest of the tasks. So that's kind of like layer 1 if you, if you want to consider this like level 1. Now you can start playing, right? And you play by sending people tokens. You have to send 100 tokens to somebody else. We might change this to be lower. Again, we want to make this as easy and accessible for as many people as possible. Then you can, uh, you, you can mint a Web3 NFT, which you can see all the cool— actually, the best way to go is we created this channel so you can see all the diamonds that people are minting in here, which is pretty cool. Uh, you can go to the, the OpenSea collection and see all of them. So there's 157 that have been minted. Uh, again, the code for this is also open source. Everything is open source, right? Um, and so you can see all these, uh, diamonds that are minted, and, and you can see the code that we, that we use to kind of mint these and generate these kind of like random, uh, colors of the diamonds and the backgrounds, right, using the token ID. So there's that. And then, doo doo doo, you keep going. You mint that. You get that DOT. You burn one. The way we've hacked that kind of together is you basically just send at least one of your tokens to this address, which is kind of like throwing a dollar bill in the river, right? Like, once you've sent it to that address, which we know kind of no one owns, it's effectively kind of deflationary, right? You can swap a token. This is like one of the coolest things about crypto is these decentralized exchanges. So I can go in here and say, you know, I have some FWEB3 tokens, uh, and I want to exchange them for MATIC, and there's some conversion rate, right? So I can exchange— in theory, I should be able to exchange 1 FWEB3 token for some MATIC, right? And this is kind of the conversion right here. So if I just hit this button, you know, you can kind of confirm swap. Oh, I don't know why that happened. Polygon sometimes has some issues, so sometimes you have to, you know, turn it off and on again. But you can swap some tokens, you can vote in this proposal. Here's another on-chain thing. So you can see sort of vote no, vote yes. What are you voting on? I get to decide that based on how people vote. And then you can kind of check the number of voters, et cetera, which is pretty cool. This is kind of like the first poll. And then finally, you can create your own token. And this is probably the sort of scariest thing for people because you're sort of now doing basically what I did, which is to spin up my own token. Uh, but it's not that hard, I promise you, it's not that hard. I'll actually show you how to do it right now. Uh, so if you go to this repo, you'll see all the contracts that we've been using so far. You can see the token contract. So this is the, the token that I, I, you know, contract, super simple. Uh, just inherit— it's just an ERC-20 token with 10 million, uh, supply. And I basically just deployed this to, to— I actually deployed it to Ethereum, but you can deploy it straight to Polygon. This is the Diamond NFT contract. So you can notice the way that we come up with the random colors. You know, the diamond is effectively just an SVG of shapes, and then we use the token ID to generate a random-esque hue and saturation and background color. And then we use that to kind of compile this string, which is effectively rendered as that SVG, right? And so this is kind of how Loot, if you're familiar with Loot, did it, which is you effectively just— this is fully on-chain, right? There's no like reference to an external file or anything like that, right? Um, so you can see that, uh, you can see the poll that we did, also super, super simple. Effectively, it's not an ERC-20 token or a 721 token like the other two, right? This is our first kind of like bare metal contract. We're not inheriting necessarily from anything. We do import the ERC-20 interface, uh, so that we can check if you have tokens. You can only vote in that poll if you have enough tokens, right? You'll see that right here if you want to vote. One, you can— if you've already voted, you can't vote again. But two, you need 100 Web3 tokens to, to vote. Um, so you can kind of see this code. And again, you can kind of— if you take this contract and deploy it, like, boom, you have your own version of the poll that, you know, has the same— is referencing the same token. So you can kind of have, in theory, you can have like Web3, you know, Web4.xyz, right? And, uh, and build your own version of the game because we're just doing the same thing, which is just referencing, uh, all the data on the, on the blockchain, which is kind of the point of this whole, whole thing. Um, and so what does it look like to actually deploy something, right? So really, really simple. I use Remix, uh, personally. So you can just go to remix.ethereum.org, I believe, uh, and you, you'll notice I have some of these already saved here, but this is like an in-browser IDE. So if I wanted to spin up like a totally new thing, this is, I believe, the smart contract that I had from before. You can just copy paste it from GitHub or you can go to OpenZeppelin Smart Contract Wizard. I prefer this. And you can go through their contract wizard and generate one. So if you want to say Web4— oops, muscle memory— Web4, these can be duplicated. What matters is eventually when you reference this, you use the address of the contract. So you can do that. You can say it's mintable, which basically means that there's this ownership concept and all these things. But that doesn't really matter because ultimately what happens is all the tokens get minted and sent to the person creating this contract anyway. And then you can actually just hit this button to open in Remix. So now it's open in Remix, and you can compile it. So let's say we want to compile it down. Uh, you can go here, you can, you can run in your local kind of— or not local, I guess, but like a JavaScript blockchain. So this is kind of like effectively testing testnet. So this is like, you know, these are all made-up accounts that I could be using. So each one has, you know, 100 Ether on this kind of testnet. I just have to select the contract, uh, and then I can just hit deploy, and then it'll, it'll deploy. So you'll see that it's kind of deployed here, and I can do, you know, I can hit this function, it says I have 10 million. This looks a lot more than 10 million because there's 18 decimal places to allow for sending fractions of a token, et cetera, if the token ends up being worth enough that it makes kind of sense to do that. And if I wanted to deploy to the— and that's it. I can kind of send. I can do all the things that I want it to do. If I wanted to transfer from or transfer, I can just— effectively, these are like API methods that I can call. If I wanted to deploy this to mainnet, Then I just change this to injected Web3, which now basically means that it's using MetaMask, right? Whatever is here, right? Which inherently right now means the Polygon Matic chain, which you can see here, custom 139, 137, which is the chain ID of that MetaMask uses to sort of reference the Polygon Matic chain. And then just hit deploy again and you'll get a pop-up. I guess there's some issue happening right now with gas. You can probably modify that to do this, but you'll get a popup. You'll hit this button and then you're done. It'll basically show up on the chain. I will say one thing that you will have to do is you should verify the bytecode. So ultimately what that means is when you go to— actually, let me try it. Let's see what happens. So now it's, you know, it's creating this. This is me declining the last one, but now it's creating it and you'll see that it's queued. It might take a while because it's a new contract. So you can click here, you know, eventually it'll, you know, it'll have a button if you want to speed it up or whatever. So let's see if this— it failed because I didn't specify probably enough gas. So yeah, there's some areas that you have to kind of work through sometimes, but generally just doing it again often fixes it. You can go in here, you can You know, say I want to give more gas, try again, see what happens, right? We'll come back to that later. And then in theory, you should be able to go to Polygon Scan and see your contract. So for now, I will just go to the contract, which is right here. Do, do, do. Paste that into Polygon Scan. And you will find the Fweb3 token. And you'll see that the contract— is here and you can see the code, right? So if you just scroll down, you'll see basically my few lines of code somewhere that basically say 10 million. I don't know where that is. Or maybe not. Maybe, uh, no, this should be in here. I don't know where it is. I don't know why I'm not able to find it. Maybe I'm doing something wrong. Someone watching this is probably like, knows exactly what I'm doing wrong, but first it should show here. Maybe I'm looking at the— oh, you know why? Oh yeah, because this is probably referencing— this contract is kind of special because we ported Web3 from ETH to Polygon. But if you go to a different contract, I'll show you maybe the NFT contract, right? You'll be able to see all this, just the code that I was showing on GitHub. You'll be able to see right here. You'll see all the stuff that it kind of imports as well. Effectively, I flattened the file. To verify it. But if you scroll down, you'll see somewhere in here the actual code to generate those, that diamond shape right here. Boom. So yeah, let's see what happened to Polygon. Did it finish? Oh, it still failed. So yeah, you sometimes you have to do it over and over again. And it's 100% open for contribution. First question. Yes. So let me talk now. That's kind of the game. And, you know, if you— if I go back to this and I connect this wallet, which I believe you just hit this or no, let me reconnect my wallet. Boom, you'll see that I finished it. And then once you— once you complete all these tasks, you just go to Discord and paste your wallet address. And so now is a great time to talk about like, well, what next, right? Are we done with the game? No, definitely not. There's a lot of these kind of manual hacks. Uh, the next thing that I'm currently working on is to kind of automate this to some degree. You'll see if you go to GitHub, this is linked at the bottom of the website. We are definitely looking for kind of engineers to help out with this. Um, and other people just join the Discord. You'll see the building, you'll see all these channels and would love your participation in them. Uh, cuz ultimately, you know, I can't work on this forever. Uh, um, But yeah, you can see that I'm currently working on making the game more self-serve, which is to basically take this idea of, right now, you go to Finish Line, and you can see all these people are completing the game by pasting their wallet address. I basically take this wallet address, I go here. You can use this to kind of check. So this person has not finished it. Right. And then once I see that they have, I basically take this and then I manually send people and this shows their accounts. So if I go back to mine, it'll show how much I have. So I have enough to kind of send them Web3. So let me just do that here if it allows me to. Polygon is really having some issues. You can see all the improvements we need to make to this stuff to be better. And then because they won, They didn't actually win, but I'll be nice to them, and I will send the tokens just to show everybody how much it costs, which is effectively free. Confirm, and then it'll be queued. It might fail just like this failed, but effectively, it should in theory work, and now it's kind of on its way. But you can here see a successful transaction that I did. We just click this, and you can see that I sent this person 222 tokens. And that'll be reflected here. It'll be reflected in all the places. So yeah, so that's kind of what currently happens. What should happen is there should be a smart contract, right? So ideally, just like in the beginning of the game, if you go to web3.xyz without a wallet, it has this Connect Your Wallet button. When you finish the game, instead of saying you should paste your wallet address into Discord, there should be a button. If you've completed all these 9 dots, we should know. And they should just say, like, request verification of winning or something of that nature, which effectively is a trigger, is a function on a smart contract, which— I have a lot of stuff open. Let me go back to this. Which would be a function on this smart contract that I have merged but still need to test before deploying it to mainnet. But you'll see that, you know, there's this, this contract that I've run. It's kind of the most intense one I've run so far, but you'll effectively see that the way that we're thinking about it is that the player will be able to call this function, which is seek verification, which you need enough tokens for so we don't get a bunch of spam. Uh, this emits this event that we will listen for, uh, probably put it in Discord so it'll still show up there, but it'll be kind of automated because, you know, from the UI, like, the user won't have to do it. And then a judge, which I will basically nominate or approve certain judges, right, by adding or removing them, will be able to verify these players by effectively doing what I did, right, which is going to the URL, making sure they've done the things. And then instead of, you know, manually doing it, they'll hit a button saying, you know, verify, uh, that only judges will be able to do, which will emit another another notification. And then the player can kind of run this, you know, call this function win, and then they'll get the tokens sent to them from the smart contract directly. Uh, and also this will toggle on. Why is this hasOne important? Well, this is when the composability sort of stuff starts to matter, right? Which is effectively, if you have a method that allows, you know, to sort of reference for example, in this case, has someone won the game based on their wallet address, then anyone can deploy a smart contract, reference this smart contract, and say, hey, I only want winners to be able to do X, right? Or not. You can say, I only want people who haven't won the game to do X, right? So for example, here's a demo smart contract that I built. This, this will be the commemorative NFT that we still have to design. Also help needed with that. Hopefully we can get this done by the end of the month. So that anyone who wins the game can effectively hit a button and generate, mint this NFT, but only if they're a winner. So this is the— you can see they have to be a winner. And you can see here, how is that generated? Well, it basically pings the game and says, hey, is this person a winner? And that is— this address is specified when I spin up this contract. So when I deploy this contract, it's going to basically ask, well, what's the game? What are you referencing here? And I'll specify whatever this contract address ends up being once I deploy that. So there's kind of this like multi-stage deployment. I deploy the token that the game uses, and then I deployed the trophy, which uses the game, right? So there's this kind of like many-step. And this is— you can kind of start to see how— why this is interesting is you kind of have things that can kind of talk to each other, but you kind of only have to rely on like the inputs and outputs like one layer deep, right? Like for example, the trophy doesn't need to know anything about the token, right? All it needs to know is, did this person win this game? And the game can change the rules at some point in the future. And it doesn't matter to the trophy contract in this case. It's always going to just assume the winner, the winner function of the game. So that's what I'm currently working on is to— I'm basically starting from what's most broken for me, which is I have to manually send everybody these tokens, scale that up, make sure that works, and then basically start going backwards and start making the game better and better and better. And eventually, like, I'm pretty confident that there's kind of enough demand, quote unquote, that I want to make the game really, really, really darn good for the people who are currently playing to see what happens. And then like the last, basically like the last thing I want to do is promote the crap out of it, to be honest. Like I want to make the game as great as possible. Um, so yeah. Um, awesome. Let's go through some questions. So that's, that's the thing. I'm going to upload this video to YouTube so anyone can kind of consume it. See kind of what we've done so far. Um, now I'll take some questions. And yeah, Aditya, any resource you recommend to learning all this? Well, first off, this is the best resource, right? The best resource. I mean, the reason we built this game is so that it acts as a resource. Like, you will, by going through this, learn how to deploy a smart contract to the blockchain, which I think is like pretty darn cool. That's like the equivalent of shipping a website, right, uh, of Web2. Or actually, it's like Web1, shipping a website or a WordPress blog or something like that. Web2 would be making an app, putting it on the App Store. Web3, right, deploying a smart contract. So there's plenty here. And ultimately, you will run into issues like I did. You'll have to Google, you have to figure stuff out. You can go into Discord and ask for help. Um, so yeah, that's the best. Um, I don't have any specific references. Uh, Brian Schuster put together some awesome documentation. So if you ever get stuck, for example, like, I got stuck, you can watch this video. He has like, I think it's like a 9-minute video and how to deploy a contract using Remix, right? And there's like a bunch of these. You can go find your own if you want on YouTube. Um, I generally recommend using more recent stuff because things get out of date and updated all the time. Um, and you have to make sure, you know, might be like Polygon specific or not or whatever. Um, but yeah, all the resources, like, this is enough to, to complete the game. And we, I know this because like many people have completed the game. Uh, and by the way, when I say complete the game means fill the 9 dots, then I have to go send you the tokens. I'm behind on that by like 2 days because there's way more people playing the game than I even expected already. Um, so yeah, you'll have to be patient for those. I want to work on the smart contract and deploy that, and then you'll be able to get your own tokens. Um, awesome. Um, Brian Schuster asked, do you have an Infura endpoint for MetaMask? I believe I do, I think, but it might not be connected properly. I think I messed around and it's somewhere in my config, but I don't think I have it set up properly. So maybe that's the issue. Priyanka asks, what happens March 1st, 2022? What are the plans come Feb 2023? So if you go to the, the memo, or not the memo, sorry, the, the main Notion, which you can see by going to the memo and then clicking through here. Right, you'll just go here and click that. You'll have, um, kind of a timeline. Hey Dorian, what's up? Nice hearing from you. Uh, I wanna see your pomegranate painting. Um, you can see kind of what we've done so far and this is kind of what's, you know, so we completed the MVP, which is kind of like me manually, you know, a lot of manual duct tape, right? But it works like the game works. You can play and you can win, which is kind of like what a game is. Everything else is kind of optional. Uh, next up, I mentioned already the game smart contract. I want to do that trophy NFT for winners. I think there's plenty of UX improvements we can make, like for example that external faucet. I think we can probably, similarly to connect your wallet, we could probably bring that into the website as, you know, as part of the onboarding itself. Um, I think profile pages would be pretty cool. Um, so we, you know, since Slim started, uh, talking about this, but how cool would it be— everyone has a, you know, you don't have to create an account on Web3, right? You just have one, right? You have a wallet address. So in theory, you could do something like you could just go here and this would just, you know, check the ENS. We'd have to make sure— figure out like, I think it should work. Like we'd have to just do the, you know, with Polygon and ENS, like we'll figure that out. But should be possible to basically get the ENS from the— from their wallet address. And then we should be able to share, you know, obviously we already showed their dots, but we could also show like the NFT that they minted. We could show like who they've received tokens from, who they've sent them to, etc. Right. Like we could build like a nice little, little page, a leaderboard. I do like currently have about— and I'll link, I'll link to this actually, because I just started writing this thing because to Priyanka's question, which is like what happens March 1st? One, I want to kind of officially launch the game, which we want to do next week. And then I want to, uh, see how many people play it. I want to make the game better. And then I basically want to give away all my tokens. Like, I don't want— currently I have, I think if I went to mainnet, it says something like I have 7,400,000 tokens, right? And basically my plan is some combination of rewarding winners, uh, you know, map to, let's say, for every token you have, like, just take how much tokens I have left and just like donate them effectively, give them away. To the people who have them. I want to do that with some percentage of them, uh, and then for the rest, I want to do a token sale. And I know plenty of people who, you know, sort of investors in the crypto space, whatever, but effectively, like, uh, I want to get rid of them all. Like, I just don't want most of them. I really— like, the only way that this project becomes sustainable is that if, like, I'm no longer the person doing most of the work. Um, and so I kind of want to, like, give my tokens away for free. Brian will get a bunch of them. Anyone who's, like, contributed or built anything, like, when you win, I basically just say, I'll just send you, like, 30,000 tokens instead of 10,000 or instead of 1,000. So I'll just basically give all my tokens away, hopefully in the next month or so, in a variety of different ways. Hopefully I can make back my— I spent like $25,000 so far on this. Crypto is expensive. And then we'll see what happens. There are these ideas. There's obviously DAOs and there's Treasury and Snapshot and Gnosis Safe. There's all sorts of stuff that we could build on top of this, but I think it's really important to go slowly. I'm not in a rush really here. I think of this as— the reason I like the February concept, even if we don't have to explicitly say it, you can obviously play this whenever you want. You don't have to only play it in the month of February. Is that it allows for this longer-term thinking of, okay, how do we think through what we want to ship so that when February 2023 comes along, we can do another relaunch, a web 3v2, and we can think through things in a much more long-term way, because I believe that we have the ability to onboard lots and lots and lots of people into crypto. Already, I believe, I mean, you can go here, you can see there's 2,000 people who at least, not including those folks, obviously there's going to be a lot of overlap here, but this thing seems to— I mean, it's pretty cool. I'm really excited about what we've been able to do so far. And I don't want to just say, hey, we've built this thing, crypto's awesome, you can make tons of money in it if you just sell the tokens or list them all on Uniswap or do whatever, or constrain supply or whatever. There's plenty of ways to do that. And I just don't really want to. I want to play this long-term game. I think learning first, earning last. Even between learning and earning, there's probably building, contributing, creating. Earning, this is kind of— I plan to be alive for a few decades, so there's no rush in my mind. We have about 150 to 100 winners. So the way I kind of think about it is, what can we ship to get to 1,000 winners? What can we ship to get to— from them, We don't have to think too far on, right? We can just kind of think about how to get to 1,000 winners. Then we can think about what do we want to change to get to 10,000 winners, and then 100,000 winners, 1 million winners, et cetera. Right. And yeah, I just think it has a lot of potential. I've sort of been— my expectations have been surpassed by sort of this community already. And generally, there's this cool lesson from stochasticity. That is, if you make a prediction and the result ends up surpassing your prediction, it's normally a predictor that your prediction is actually off by much more. For example, if you say, hey, let's say in 2010, you said, hey, I think Bitcoin is going to be worth $100. Someone said, I'm from the future and I'm telling you that it's going to be worth more than $100. Generally, I think a lot of humans are like, oh, if it wasn't $100, then it was like $110 or $120 or $130, right? Something like that. You anchor it to your actual prediction because you think more linearly. The human brain just ends up doing that. But in practice, and obviously I use that as an example because it wasn't $100, it's like $60,000 or $40,000 or whatever it is today. And the reason is because when something When you're wrong, you really underestimate how wrong you may be by. You haven't really incorporated the fact that you were wrong. What you should really do is like, "Wow, I was off by— I was wrong. And so in theory, I could be wrong by 10x or 100x more." And you learn this by— I learned this investing in startups basically, this kind of making bets that are asymmetric upside bets. Making a lot of them, most of them go to zero, but every once in a while something goes up way more than you could ever expect. And so when things like this work more than I expect, and by the way, most of the products I ship don't work. I've shipped, I don't know, 3, 4, or 5 things in the last 6 months or so. Most don't work and most don't get any traction. So this is already in the top 5% or so of my bets that I've made. So when that happens, I double down. I'm like, okay, maybe there's more here. Maybe there's a lot more room to run. And I think the The wrong thing to do would be to say, hey, we figured it out. Let's try to increase the value of our tokens and do whatever and we're done. No, let's focus on what matters here, which is building a really, really great experience. Awesome. So yeah, sorry, that was a bit of a rant. Junisha asks, what's the utility of these tokens that we earn playing the game? I mean, it's up to you, right? I mean, it's up to everybody. I built— me, not just me, right? A lot of people, Al, Jack, Brian, a lot of people of Slin have contributed to this stuff so far, even this dashboard that's open. But it's up to you. I mean, either nothing or something. I mean, that's sort of impossible to predict. It's kind of like US dollars. What's the utility of US dollars? I mean, it's like you can pay taxes with it, right? You can buy stuff at your grocery store. Right, it's, it's just sort of whatever the community decides to support. Um, so yeah. Um, Mark asks, for non-devs, what's the best way to contribute? Um, honestly, just like bring people into the game. Like, you know, that's basically it. Like, use your tokens, give them away, give them to people. I will build at some point a dashboard that will show me who's actually onboarding more people. Uh, oh yeah, Brian says write documentation, that would be awesome. Um, and then, uh, I will basically just refill people and probably generously. You know, if you've sent, let's say, you know, 10,000 tokens to people, I'll give you 20,000 tokens. I don't really care. Um, I want to sort of— I basically want to like disperse tokens efficiently, efficiently mapped to how helpful are you to the actual community. Um, remember, learning and building, like, those are kind of key. Um, so if you like go into the Discord and you're like, token price, whatever, like, I will just ban you. Like, I, I really am not that interested in that, in that rhetoric. Um, or I will be more incentivized to do annoying things that will, you know, lower the token price. Um, so beware. Um, so yeah, jump into the Discord and then You know, I have 7 million tokens. I could just burn them. Actually, that might be really good for the— yeah, maybe I won't do that. But yeah, I would just say, ask me for more tokens. I'm happy to like, you know, if you represent a community or whatnot, I'm happy to like help you airdrop a bunch of tokens or give you a bunch to give out or whatever. But like, my goal is to just like have as many people slowly over time play this game, and make the game better. That's kind of the goal here, right? Um, Daniel says, seems like scaling up the Web3 request and support will be tricky with more folks in there since folks have already linked their address. Could also— could probably be handled by an additional page or bot. So I've purposefully made it annoying as hell to get tokens. The reason is, again, like, I want to improve the quality of the game, and I think a great way to measure that is basically making the onboarding annoying and manual and hacky, and then seeing how many people still play the game and win the game. That stuff is easy to fix. What's hard to do is make a game that's compelling and people want to play and win and getting the tokenomics right and all that kind of stuff. I'm confident that we could easily do 10x or 100x the onboarding. But I think it's important that when— this stuff's kind of complicated and weird and difficult. I like the idea that you have to kind of get tokens from somebody. That human being is going to help you if you have problems and questions. But yeah, at least we will probably spin up a separate page called Token Requests. We'll at least start there. Eventually, we'll probably have similar to the faucet, like a way, you know, and the winning contract to kind of have judges. And, you know, we can scale over time. But I think that's sort of like going from, I would say, sort of from like 10,000 to 100,000 or something along that lines. And I don't really try to— sort of spend too much time thinking about that stuff, right? Because so much is going to change and happen between now and then. Uh, hopefully that answered both your questions, Mark and Daniel. Um, and just contributing, honestly contributing the Discord. Like, I, I think the more conversations that are happening, the more just like interesting stuff is happening on the Discord, I think the better. Um, Junisha says, from a business perspective, how is it sustainable? I mean, I don't care, to be honest. This is not a business. So again, I'm not doing this for the money. I'm not doing this because I want to make another salary or something like that. I want to learn and build and have fun with smart people. So yeah, I mean, the fun thing about this stuff is you realize how weird money is. All your critiques around crypto also apply to US dollars, right? Money is, is weird. Jovan asked, or Jovan asks, uh, how the tokenomics are affected by having Web3 on both ETH and Polygon. Any thoughts? So yeah, this is kind of an interesting thing, right? When I created the token initially, one of the big hurdles we had in the beginning was I created 10 million tokens, uh, and you can kind of go through my I was originally thinking, oh, maybe there's a free NFT you can mint that ended up becoming the diamond, but I decided to just do a fungible token, airdropped them for free to a bunch of people, and then on ETH mainnet, and then realized no one can use these things because it's just too expensive to transact. And so Brian showed up and said, hey, why don't we do this Polygon airdrop, which basically means you can move a bunch of tokens over. So 10 million on ETH mainnet, you can bridge them. So if you just Google Polygon bridge, there's a way to bridge tokens over. Polygon has some risks associated with it. So I moved 1 million, so 10% of the supply. So now there's 9 million effectively on ETH mainnet. And you notice I had 7.4 million. Where's the other million? Either I airdropped it over there, or it's providing liquidity to a Uniswap pool or something. I think it's basically where all of it is right now. Then I moved a million over, so there's a million on Polygon. But you can think of it like, it's just like two different economies. There's America, let's say America is Ethereum, and then there's India, which is Polygon. I just use those examples. Polygon happens to be based out of India. You have US dollars in the United States, you have US dollars in India. Exchange rates are close, but not the same, because there's supply demand that's slightly different over here and over here. So it's just like that. It will affect the price to some degree, but these markets are relatively liquid. So one of the interesting things about money is that you assume for— as a kid, you're like, oh, a dollar is a dollar. But no, a dollar is just what we determine it. The way For example, you can't measure inflation. Inflation isn't a single number. We say it's like 6% or whatever, but the way we do that is we kind of have a— The way to do it for yourself would be to look at all the stuff you've bought and you'll be like, oh, this restaurant charges a dollar more for their entree than they did a year ago. Why? Because they changed the price and you paid for it. This is the thing, a lot of people think NFTs are a scam and this and that, and there's whatever, but the truth is You only need one buyer. So as long as there's going to be one buyer in the future, there is enough of a market. And if there's— I think there's sort of a lot of these things, I don't know, hurts your brain to think about sometimes, but that's kind of the fun of this game is you kind of have to wrap your head around some of these ideas. So hopefully that helps. One question would be, well, are you going to move all the tokens over from ETH to Polygon and then send them to people who want to participate in the token sale? Or do it on ETH. And maybe ETH is like the gold equivalent where like most of the supply is there, most of the people play the game, but there's like sort of the asset value is kept on ETH. I'm not sure. Um, I'm excited to see like what just what people want. I'm, you know, I'm learning as much as everybody else is here. Um, Krishna says we can add Solana and other chains. Totally, right? I mean, there's Solana, there's Starknet, there's Who knows? I mean, February 2023 is a long way away. There's a lot of stuff that's going to happen. For example, the game doesn't really get into staking or yield or liquidity, being a liquidity provider. There's so much more we could do. I was basically scared we were never going to ship anything by the end of February. And so I just pared down the scope as much as possible. And now once we ship, we can always expand the scope over time and ship more. More. But really it's up to you. It's up to everybody to participate, contribute, build together. If someone, you know, opens a PR for some awesome profile page, I'll open it up and be like, oh wow, that's really cool. Merge. Boom. It's live. Or you can say, I hate the black and pink. I'm gonna fork it and have like a green and yellow version of it at like Sprite web3.com or whatever, right? And boom, awesome. Welcome to do that too, right? So there's sort of a lot of different approaches on how you can help and add value. There's like the Web3 token, there's adding value on the layer 2, et cetera, et cetera, et cetera. Yeah, Brian just kind of figured out the Polygon stuff and was like, hey, do you want to do this? And I was like, sure. I watched his video. I was like, yeah, this makes sense to me. Like, whatever, right? So on one hand, it's super centralized in the fact that I control the GitHub repo and a lot of the token supply. But if you're like, hey, I have this awesome thing, I built all this work, I will reward people for— it is risky, right? Your time investment. And I don't know if these Web3 tokens will be worth anything someday, right? They're still super, super speculative and early. But You know, you will be rewarded for taking risks in this way that may mean something or not one day in the future. So yeah, anyway, that's basically all I wanted to say. Give kind of an update, walk through the kind of the walkthrough. I highly encourage everybody to play the game. It's really fun. I think it's also fun to build the game so you can go into GitHub and see all this stuff that is currently here. Going to join the Discord, highly recommend, even if you don't want to I don't know, play the game. You feel like you're not capable of doing it. I know, by the way, there are certainly people who are like, "There's no way in hell I will ever be able to deploy a smart contract. That's insane." And then 2 hours later, they finish the game. The beauty of games is that they're fun and they make you do things that you may not have wanted to do otherwise. And the point is to learn. The point is to not play this game to get some tokens that end up being worth $6 in a year or whatever. It's to learn and be prepared so that as crypto develops and things change, you are in a better position to be able to react to whatever shows up. At least that's why I did it. I don't have plans to say, "Oh, Gumroad's going to do any NFT thing." I promise you, if you're watching this, I just want to learn. Yeah. That's what I did. Yeah. Um, yeah, anyway, I covered everything, I believe. Uh, Shashank joined late. I will be uploading this video to YouTube, and I answer that question, uh, on how we cover gas for everybody. So, um, yeah, hopefully that was helpful to everybody. I will see everybody in the Discord. See everybody, bye!










