Unlock Protocol 🛠️ Integrating Membership Smart Contracts Into Your Project with Unlock Protocol
ETHGlobal·Mon, Oct 9, 2023, 12:00 AM
Join Julien Genestoux from Unlock Protocol for a workshop titled "Integrating Membership Smart Contracts Into Your Project with Unlock Protocol". Welcome to back to ETHGlobal Waterloo, where it all began! Returning to Canada's tech hub, we're thrilled to bring together international enthusiasts and local talent for an unforgettable hackathon experience. This year we had 650+ attendees from 29 different countries and 47% were new to Web3! We concluded the weekend with 168 projects submitted and gave away $250,000+ in prizes ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com
Transcript
foreign [Music] everyone thanks for your patience here my name is Junior genistu and I'm gonna tell you about unlock percon um unlock is a is a project that has been built uh about four and a half years ago already we were here the last East Waterloo which was in November 2019. what is unlock unlock is a protocol from memberships uh we'll talk about this uh for about half hour to which we'll go first through a bit of theory and then we'll move uh to a more practical uh live coding example um so first start with a quick overview of unlock the protocol then overview of the ecosystem the tools including subgraphs and existing integration then we'll go into live field example as I said to see how you can add unlock to your front-end applications um then we'll give a little bit of an intro about how you can also integrate this into smart contracts via the user books and finally we'll have a bunch of pointers to docs guides repos and tutorials that we have and that you're more than welcome to use as a basis for your own work first quick note about myself so my name is Junior journis2 I'm the CEO and founder at unlock uh before that I was actually a Founder at a company called superfeeter which was sold to medium and we're building RSS feed API apis I'm a big big fan of the open web uh the idea that this kind of gigantic brain of ours shouldn't be controlled by anyone and that we should all be able to play uh in the way we want I work with the w3c worldwide web consolation for a little bit and I'm also a big open source Advocate and I'm currently on the graph Council the graph is also a sponsor here you should definitely check them out you can find me online at julian61 everywhere or on my own blog at Watts which literally means open box in English and invite you to check it out what is unlike protocol unlock protocol is a protocol for memberships one of my core beliefs is that the web shouldn't have a primitive for memberships because we have memberships everywhere where you think about your Netflix account it is a membership sub stack subscription as a membership but also you know the fact that you follow someone on Twitter even though it might be free it's a membership you're a member of that very exclusive Club of people that follow that person again memberships are everywhere they're also everywhere in the physical world your gym membership is obviously your membership your driver license if you're in the US and I think it's the same in Canada expires it's kind of a membership to the local DMV you're a member of the people that can drive on the road um to unlock as a protocol to do all kinds of membership um subscription the one that are recurring ticketing so if you go to a conference the ticket to the conference is a membership for that specific conference you can do stuff like token dealing and that's actually what we're going to Showcase you can also do certifications certifications is also a membership you're a certified driver as I just said or you know when you get a diploma from a school you're also a member of the class of Euro 2021 or something like this as I said found it about five years ago and we have a team of people that have worked at Google Facebook good any and multiple other names and companies that you think talk about memberships uh if you've been around for the last two years you've seen all of these nfts emerge and so well you can say well with any membership uh any nft could be a membership uh the answer is no and the reason for this is like most nfts are Collectibles they're not supposed to represent the fact that you're a member of a group and one of the key missing attributes is the idea that they're Perpetual once you have a board ape you have bought it forever unless you sell it and that is not a good membership model for the people that are selling these apps to you because they need to provide you Services imagine that you bought your gym membership by paying once and then you should be able to go your whole life the gym will probably close and go out of business same for Netflix so really you need to think of memberships as kind of nfts that would have some kind of expiration mechanism obviously the fact that they have an expression means that they can be renewed and you can move from something that is one time to something that is recurring something that happens every month every week every year depending on what is the base duration here it goes from the idea that communities and creators will make money through royalties which is kind of a very strange model to something that is continuous Netflix makes money continuously as people keep paying for the service because they keep streaming good shows hopefully um at unlock we also build the protocol around the membership that's assuming that not all membership will be paid and not all memberships will be paid with crypto so we have natively in the smart contract support from mechanism that would allow to pay with credit cards or for example erc20s as well like most nfds are priced in the base currency of the chain so if it's on mainnet or you know medic episode polygon we assume that many membership will be priced in stable coins like usdc or die etc etc and you can also easily verify off chain the validity of a membership uh maybe even verify its reality in the form of a QR code and we'll come back to this in a couple minutes but you can also do on-chain Access Control by verifying from other smart contracts that a given membership is is still valid obviously if you thought about nfts you probably think transferable not all Nifty shouldn't be transferable there's a concept of sold bound tokens with unlocked you can definitely create a contract for which the nfts are transferable non-transferable or anything in between you can say they're only transferable if short-term requirements are met and also we move away from the idea that NFC should be immutable to something that is more practical which is nft should be able to evolve based on the membership based on what kind of services are being offered so the smart contract that you deploy when you deploy your membership to unlock are upgradable by you obviously we cannot upgrade them but you can decide to upgrade and add more features as time goes and change how they behave um so unlocked protocol is a major right contract that are updateable we can change the terms of membership you can change the price change the supply change the duration of your membership uh you can change kin solution term transferability all of that as I said they're also upgradable not by us at least email by you you can choose to change once the protocol support new features you can choose to opt in for these new features and that's perfectly up to you and and fine but they're also programmable and will very quickly allude to this and you're more than welcome to store by our booth to get more details on this the smart contract has a lot of hooks built in so mechanism to alter how it behaves based on your own logic here which I think is pretty interesting and you can build things like discount codes or you know airdrops when people buy memberships uh change how something works on the smart contract change the price on every single purchase etc etc so key use cases uh we grouped here eight we'll go through three that are the most common ones uh but you're more than welcome to do uh anything that involves the other one and you should find more use cases we're happy to hear about them first one I talked about it earlier it's even ticketing if you have a ticket to a conference to a concert you are a member of that conference of that concert for the duration of the conference or the concert um second one a recurring subscription I mentioned your Netflix account uh if you have a sub stack account that is also kind of a recurring subscription you pay every month every week depending on what the duration is to keep accessing the content that is obviously possible to imagine a world in which you have a video streaming platform you can create you know a social network where people pay to access more content on a recurring basis podcasts before we all listen to uh podcasts that have uh you know time components and premium fees in there so you should definitely check that out the next one is the idea of time-based memberships so you think seasonal or I mean Community dollars and things like this so you can think of you know a dollar that has every year a new class and you need to pay to be part of that class or that group and that's a good example of this it doesn't have to be automatically recurring we also talk about certification gaming obviously is a big one that you can play with as well you know if you play a game uh maybe the fact that you I mean first the subscription would be a thing in the game but maybe you're going to earn items that are going to expire after some time and so these items could shouldn't be nfts you're a member of the people that have the sword of some kind etc etc another use case that we're hearing a lot of in the crypto space right now is everything around loyalty so you think you're a brand you might want to you know create perks for your most loyal customers unlock is a great contract to actually do this attendance nfts you probably have all heard of poapps at this point um that's another way of building these kind of things and then obviously digital Collectibles they're still possible to do and what's interesting about the time component here is that you can have these old Collectibles that are Dynamic that evolve over time so imagine a boarding that actually gets old that will be funny as you know as you as you keep um keep it in your wallet um getting more a bit more into detail so even ticketing uh what's interesting here is like as an organizer you get all of the proceeds of the ticket that you've sold uh it's fully entering control by the organizer the conference uh across multiple um you know mechanisms uh you can enable security markets or not if you want to by making the nfts tickets non-transferable you can what's interesting that you can create introoperable experiences that apply to both the offline the in-person events but also online so imagine a scenario where only attendees of a conference can join a Discord or a telegram server before or maybe you have discounts at local hotels and restaurant because they can prove that they have a ticket rather than say hey I'm at the conference XYZ can you give me a discount well here you can actually prove it because you can prove that you have the nft which are pretty cool other uses actually example of this adapcon you probably know of this conference it's one that happens in Germany every year they use unlock every year at this point and we're pretty happy to have them in here uh subscription so token enabled access to experience services and and and and and and features um it creates it's really important and critical a sustainable revenue for the business so rather than have you know the crypto space we love like numbers go high well here you don't actually have to bet on numbers going high you can just sell your service to the people that are excited about using it and we'll pay for this we all have I mean I'm sure we'll have cell phones and we pay for some apps in here because they provide good Services well you can build the crypto version of this obviously we support as I said crypto and query card on ramps we also support Apple pay Google pay and a bunch of other uh similar system uh what's interesting here is like the relationship between the app creator and the consumer the app user is direct there is no apple approval in the middle in the middle you if you follow a little bit you know that uni swap for example got uh took them months for Apple to approve this uh well if you have a membership system that is between you and your customers you can just offer that you don't have to wait somebody else's approval that works for Content you know blogs and stuff software features instead of application music video podcast everything you can think of here um an example of this one of our most popular uses these days and you bring don't see it here but it's because they charge about 300 bucks per membership uh is something called uh alphabots uh D5 robot uh they provide D5 insights uh and they have a monthly uh subscription that people pay for uh they're at this point generally about 150 000 a year in revenue from from that little little app uh in Bots that they have on telegram so it's actually a pretty cool use case here membership I'm sorry time based membership uh told you a little bit earlier um no necessarily you need to go much further easier but a cool example of this is something called cabin you probably know of of them it's um it's a it's an offline group of people that are you building cabins or purchasing cabins all around the world and using them as cold leading spaces and they use unlock for their yearly membership a really cool product project if you want to check it out at camp in that City all right summarizing again the use cases events uh even ticketing recurring subscription time-based membership certification DMB like things uh gaming loyalty attendance nfts and digital collectibles let's move into tooling so unlock set of smart contract that's the core there's a ton of tools that are built on top of it that are completely optional that you can use start with user scaffolding and then remove uh once you're done with this first we have a dashboard which is really the way for creators to deploy the contract without actually initially having to do that with code no code tool connect your wallet set a bunch of terms deploy the contract and then can manage the contract as well change the terms change the visual aspect of the nfts airdrop nfts to people that might you might want to have at NHC in their wallet we also have a similar flow which we call the checkout which is a way for people to buy these nfts so as I said the nfts can be fairly or the it's very Dynamic so there's a ton of stuff that you can do for example charge as I said with erc20s while rather actually implements the approval mechanism all of that you can use our checkout UI to easily do that and support uh you know your users without having to initially build all of the system where they would be able to check out you can also do build that yourself but again use the tool that we provide as scaffolding more tools subgraphs I mentioned on Euro so aggregating a ton of data listing members very useful here uh we have a JavaScript library called unlock.js that supports deploying the contract updating them listing uh things purchasing that's actually the library that we use in our own dashboard we have the paywall and we'll go through that in a couple seconds which is this checkout UI that can be embedded on any website in webhooks hooks at the Smart contract level so you can change the behavior of the contract so for example you should say every time one of the membership is sold we we double the price for the next one that is something that can easily done with these hooks existing integration so unlock contract or EOC 721 I should clarify this there are 721 plus we add a ton of feature on the base one so any existing integration that works with 721 will work there so if you use ethers JS well you know that should work we're actually in the third web um directory so you can use that as well web3.js wag me that the example that I'm going to show the demo action I'm going to use wag me here or any other kind of wallet that works with vlc721 that works custom Integrations are available in sub application we have for example a WordPress plugin that's actually pretty cool we have integration with magic so you know the wallet provider here we've strive for the credit card with super fluid with uni Swap and a bunch of other things I will go through there and we're if you build something cool let us know we'd love to feature this integration on our end pretty large I mean the typical ecosystem play uh you might have seen a lot of these names already uh there is ways to work with unlock in all of these uh projects and Etc maybe the interesting part about the networks we're actually on nine different chains you can only see eight here uh the ninth one is called Palm it's not a very popular one but we have a customer that wants to use this so we are on mainnet polygon optimism arbitrary cello binance kenosis and I'm sure I forgot one but you get the logos here um cool let's jump into a quick front-end live coding demo hopefully the demo gods are with me today um I'm gonna just start by showing you what I built um which is the the starting point for this um this exercise I built kind of a very dummy blog using actually the uh the one the next features on their site as a template so it's a Blog in which I write a bunch of stories and my goal here is to tokengate some of these stories so here it's a lot token getting obviously you can see all of the content and we're going to go through the steps that are required um to tokengate the content on that block so you can build your own decentralized sub stack if you want the first step that we're going to have to do is obviously authenticate the user we need to know who the user is so for this we're going to add a mechanism for users to connect their wallet and you can use any of the existing tools in the ecosystem uh somebody talked about connect kit earlier rainbow kit actually supervised this we have a version of this we're going to just use that but again you can use the one that you want um for this let me switch to my code editor here and get started with that coding session I also have a very handy readme here and that code is like oh um ah this code is live on on GitHub so I'm going to first maybe share that link with you guys so if you want to look at this common Wi-Fi work please it's going to be helpful yes cool and I'm pulling in because in the real me I have the step by step and I'm definitely going to use this here so the first step is to introduce to install a couple dependencies which I should be able to do yes cool uh first step to install a couple dependencies I'm using yarn in that project you can obviously use any of the tools of your choice here and I'm installing four or five different annuities first one is unlock protocol contracts that's the ABI uh the description of the uh the contracts here second one is the paywall that's the little embed UI that will add virtual to purchase we have a Network stackage that has all of the configuration for unlocking the networks all of these packages are completely optional I'm using them here for convenience you're more than more than welcome to rebuild whatever they provide ethers a JavaScript framework that allows you to interact with smart contract wag me kind of a front-end tooling for react with hooks and VM which is a similar um to White me I suspect the Wi-Fi is not going to allow me to run all this it shouldn't take that much time so maybe I'll I'll let's give it another second or two otherwise I'll go through the I've got a recording of that demo but I'd rather try to show it the live um let's actually go and copy that into the next step so you'll see that uh inside of the app.tsx file uh right here is the default version uh you are familiar this if you use next in the past I'm just going to add the basic configuration for wagme uh which is basically creating a client this is nothing about unlock right this is not specific to unlock I think wag me here where this is specific to unlock incisioning a paywall object that is um an iframe to be clear that will allow you to easily connect the user's wallet as in a connected and rebook you do but also provide the the checkout UI that we'll come into and then I'm just wrapping my component um inside the wagme config so that's available inside of the rest of the app at this point I haven't done much coding the next step is to add a connect button and I'll just again copy that and we'll describe what that is precisely but if I go to my components I'm just going to create a new file called connect.
tsx and then I'll paste this this connect component is fairly basic it is using uh oh the paywall object and looks like it's not included here so I'm just going to include it here um to create a provider which is the object that is being used by webme to connect to the wallet here so we're also using the use connect from wagme to again link the provider to the application and then we have a pretty basic logic like if the user is connected or sorry if the user is not connected we show a connect button that will call that connect function and the user is connected we will show the the address of the user let's uh see if my dependencies have been sold yes they have cool okay so I'm going to just restart the app for the sake of making sure that everything is up to date and now if I go to the blog we'll see that I have not added the button yet so nothing has changed but I'm going to add the button obviously to my UI I'm probably going to add that into say the intro let's do that here so we have this uh blog and I'm just going to add the connect component here and just save and at that point you'll see that a little connect button appears here if I click on that one and again the Wi-Fi is going to kill me here but we're going to load an iPhone it's not too bad uh we'll say hey um I actually previously connected so it shows this message that I'm already connected but I'm just going to sign in with ethereum the typical uh um authentication methods here click sign in and at that point we see welcome back this is my address here um and now I'm authenticated inside of the app that is kind of the first step if I click through uh to see a post it's still not talking getting we haven't done this but at least the app knows who I am the code size yes all right I will increase the code size a bit hope better cool awesome so that's with user is connected now next step let's make sure that we can uh and I think it's next up but it's kind of also the the actually no we have a one quick step to do we're going to deploy a membership contract now I'm going to go ahead and say okay this is how much I want to charge for accessing the content on my blog I created a another account for this demo on on here so I'm just going to go to the unlock dashboard again a tool that you can use to deploy your contract and manage them I would definitely recommend that you do So eventually if you want to you know create this your own experience for this you should go ahead cool looting oh uh all right I'm going to go ahead and click on create log uh I'm going to deploy it on Gertie and so I'm going to do my blog membership uh let's make it you know last one day uh I'm gonna sell an unlimited amount of these membership so it's not like some stack where I'm going to charge every month I'm going to start per day but I'm gonna make it really cheap I will actually maybe something like that and still may be expensive for one day but uh click on looks good and hopefully yep made a mask is going to pop up and I'm going to just from here deploy the contract as you can see the function here minims does a decent job at translating it but it says create upgradable lock ad version we're deploying a membership contract here on the goody Network in confirms here and now we're going to wait for girly to mine this hopefully it won't take too much time did one earlier today it was like three seconds fingers crossed um once this is done this is my contract it's been deployed from a factory unlock I mean me as I'm not good I have zero control with this Chris is unlocked with a zero control over this it's my contract exactly as if I went to open the plane compile it and pushed it myself except that it's deployed from a template so I actually didn't have to do this template is audited verified by multiple firms so I actually don't have to do any uh complicated things it has been mined uh but it looks like we're taking a couple more seconds to refresh yay done and I can start managing it obviously there's not much to do right now because it's kind of you know empty but the one thing that I will be doing is copy its address into my app we ensure a default image for the membership it's obviously changeable and here once this is loaded I mean it's going to be an empty list but that would be where you would see all of the members so I'm just going to take the address of the contract here uh and you know I'm going to bring it back to the code um actually I'll do that afterwards one of the next thing we're gonna do and that's what we um change here is change the blog posts so that when somebody in displays the blog well if they're connected we will see whether they actually have a valid membership for this I'm going to use I'm just going to copy that but I'm going to use especially this function from webme called use contract read that allows you to query through the through rugby as my contract um and check whether something in the contract I mean check the data of the contract and so we'll just copy that into the blog post itself uh nope yep and I'm going to do this and so let's actually go through the code quickly that connect component oh overwrite cool um did I change this I don't think I did but let's see afterwards so I'm going to paste the address of the contract that we just deployed here as the lock address here and we'll go through that so basically the top part isn't changes the default that we got from next then we're actually going to see um use the user account Hook from wegme to check the user's address and check if the user is connected more importantly once the user is connected um we will check using this use contract read the balance of the user so basically using the argument address we're going to check whether the user has a valid membership and since this is the your c721 we can use the function balance off that function will return zero if I don't have a membership or if that membership is expired or one or more if I have one valid or non-expired membership does that make sense yes we're passing the Smart Control address we're passing the ABI we're passing the chain ID it's on girly here uh and we're also for simplicity's sake uh just returning a Boolean rather than the number of membership yes the user should have access or know the user shouldn't have access uh we'll come back to this in a second but we're adding a function here that's called on purchase that will let the user purchase a membership unless they have one and then we're just moving to the the display logic here if this was not connected we'll just show the you know you're not connected connect with the button that we created earlier if the user is connecting but doesn't have access we'll just show hey you don't have access but you can purchase a membership and that's when we'll call that on purchase Method that we just discussed and if the user is connected and it has access well we'll just show the content of the button makes sense nothing too fancy here hopefully just going to save that and move back to the Live code actually the post is already there it's self updated it turns out that I'm connected uh we connected earlier but I don't have access so I'm just going to click on that purchase membership button at that point we load the checkout UI from unlock including the UI is fine querying the RPC endpoint shouldn't take too much time hey we're showing this option uh what's interesting here is you only see that my blog membership but I could have had like two or three different types of membership for different prices different tiers like I could have the gold plan or the silver plan if I just have one we show the price we show it's unlimited we show it for one day click on next I'm already identified because I connected myself earlier and I'm going to be able to change the recipient It's actually an interesting idea where I can buy the membership either for me you see this is my address or for another wallet if I want to offer somebody a membership I can just go use that flow and then they won't get the nft in their wallet and then they can come read the blog if they wanted to and click next here I'm going to choose a payment method by default obviously we show the currency that the user has enabled here so 0.01 eth but we're also trying to find other options in for example we support native meaning the concept of Swap and purchase which is a mechanism where if I don't have enough East but I do have usdc in one single transaction the user will be able to spend the usdc that would get swept into ease into a membership I once it's taking further to it I suspect this is the still Wi-Fi there's actually not going to be a lot of other option because that wallet that I have only have only has usdc oh sorry only as uh Gertie if I'm just going to click here seeing the confirmation screen uh uh and it's loading yep um one key that's the name of the membership for me at that address is going to be 0.01 each I'm just going to okay pay with crypto minims is going to pop up please minimize it's a minimask when you click this is actually running a simulation and that's why it's taking time there's a network call involved here I'm going to spend 0.01 East plus a little bit of gas as you know uh confirms here we now have this little wave screen and hopefully it won't take too much time but you will see that right away when that membership has been bought and the transaction has been confirmed the content underneath the screen will update so hopefully again shouldn't take too much time but can hide this oh I use a different account so yes I didn't even connect with the if Waterloo address that I had but you'll get the you'll get the confirmation anyway yay so many messages that confirmed we pretty use a different RPC endpoint hopefully we'll get that shortly yay return to sites and uh what me should update please work me update this ah okay so we use this flag in wag me that allows you to uh watch that allows you to refresh I guess it's not refreshing here let's refresh the page just to make oh ha what is going on here the demo effects full force what's going on did I mess up my why is window is not defined of course window is defined all right let's actually hide this for a sec baby all right now I'm confused about this thing okay connect my wallet again oh my God that's when things Bridge that's the one they use connect ah well yeah I should be fine is this the Wi-Fi yeah it was the Wi-Fi okay sign in your wallet all right uh going back to the blog post what is going on here I'm going to choose a pretty made a mistake somewhere in my code here but let's refresh that page so I'm not connected again just going to uncomment this connect yay sign your what sign again I do have the membership though all right well maybe there is a little [Music] um something that is not working as I wanted to I'm just gonna double check this if it's my code maybe there's something here and show the address as access false and 61 that's the address that I'm connected with though well I'll take a year down to the sticker we can create that's mainly what I was thinking but it looks like it's the same one though if you look here at 61 and then 61 here so looks like when I created the contract uh maybe I didn't write the wrong one okay let's do it again this one yeah it looks like this one doesn't have one so which is I guess I didn't buy with that one before ah confirmed Google's being blocked normal I don't know why as soon go ahead mint mint mint has minted now yay you see it now so I can close now I have access to the content don't know what happened the first time but now I have access to the front end cool make sense all right uh one final step obviously I go back to dashboard you see there's two I guess I bought with that other address which is you're right I think it was a different address I don't know why I did this but I have two members that were my blog they're both me uh you can see when they expire both of them and I can do a bunch of things so I'm not connected as the block manager anymore I switch account but if I go back to that account that I had the Eastward one which is the manager for this I'm a manager again and I can do things like extend refund so it's like oh this person actually didn't want one I can refund them if I wanted to extend their membership I can do a bunch of different things as well a fun thing to do is as I said instead of unlock week the transferability is really something that is programmable and we have the concept of the owner of the nft so on or off in your C7 21 cents we also have the concept of a manager of the nft and it could be that the owner owns the manager has the transfer right so you can make it so that my hot wallet is the owner I can show around and like look at this nft my the manager the person that the address that I have to transfer right is my cold wallets and this is maybe something that I store at home or some somewhere else making it a lot more secure so if my hot water gets compromised my NFC is not lost I can just go to my cold wallet transfer the owner from this previous hot to the new hot and keep it safe where I'm at so that's one thing that I can do obviously you can also transfer the nft as their manager here make sense so that's kind of the rough demo again sorry about the little uh issues let's go back to the slideshow um so live coding we did this kind of I think it worked um it's loading YouTube here so forget about that slide we also have as I said the ways to do backend and smart contract I'm not going to go into details but there's actually a video here you're more than welcome to check that out uh mention the hooks the hooks are ways to alter the behavior of the contract when there is a new membership being purchased I'm going to try to make speak even faster we can cancel uh change the behavior on cancellation change the determination whether a membership is valid so you can say it's valid only if it's Tuesday well okay a membership is valid only if it's Tuesday you can easily do that on the smart contract a quick video that we have you're more than welcome to show up on our booth for more details um resources uh okay quick point if you want to add any kind of monetization to your project just use unlock that's the way to do this um we have as a quitter you we have a dashboard that you can use to deploy membership sell verify tickets all of that ad credit card processing if you want to allow for people to pay in Fiat you can check these check out URL which is similar to what we had in that model and as a developer you can integrate directly into your smart contract into your front end into your backend and all kinds of application quick inspiration uh unlocked life here live here live streaming you can create a hey something where I live stream in every you know from time time only the members can see their content unlock plus lens create kind of token gated posts unlock plus xmtp messaging so only messaging to subscribers uh etc etc other inspiration uh you can create nft learning platform subscription tools uh for people that have multiple subscription a fun thing to do is like you can have voting just for people that have a specific nft with Tally etc etc we have prices and the hackathon so please build on top of this and hopefully you'll earn some of these team members myself Junior and Chris in the back uh Kenny in the back as well Michael at the booth right now and Charlie was hopefully making it from Montreal where she's based and scan these YouTube um tutorials so you're more than welcome to scan that QR code then you can look at my face even more if you really want to um we also have docs and tutorials so again take a picture scan that as well if you want to go to our dock site where there's a bunch of obviously guides and tutorials and details about this protocol and then we have full creators can have a lot of no code guides that let you do a bunch of things uh from token getting uh you know a Discord server all the way to a WordPress etc etc we're also available on Discord so if you don't find us at the booth feel free to pick us on Discord we have team members all across the world so someone will be awake at 3am to help you if you're stuck and that's pretty much it thanks for your time
Automatic transcript — names and jargon may be misspelled.