New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Best Overall Use of the Proof of Creativity Protocol - ETHGlobal San Francisco 2024

ETHGlobalThu, Oct 9, 2025, 12:00 AM

Join us for a workshop with Jacob Tucker titled, "Best Overall Use of the Proof of Creativity Protocol " This workshops anticipates ETHGlobal San Francisco, a 3-day hackathon happening from October 18 to 20, 2024, bringing together the most skilled web3 developers, designers and product builders from all around the globe for a weekend-long adventure to advance the Ethereum ecosystem! ----------------- Follow us: https://x.com/ethglobal Check us out: https://ethglobal.com/ Email us at: hello@ethglobal.com

Transcript

hey there everybody this is Jacob Tucker from the story team and welcome to the global SF hackathon um if you clicked on this video it's probably because you are interested in building on story and so in this video I'm going to be giving you a brief overview of our available prizes for the hackathon what story actually is and at the end we're going to do a little dive into some coding so you can get a little bit of a quick start um but of course there's a lot more materials and videos available Beyond this one that will do a better job of diving into code and stuff like that um but first of all what is story well um I'm currently reading from our documentation site and so if you want to you know read this instead of listening to me you can always go to our docs instead um but story is the world's IP blockchain we are trying to make the legal system for intellectual property or IP more efficient by bringing IP on the blockchain so the reasoning for this is because in the current uh legal world for IP it's very difficult for creators to monetize and register their IP often times it requires cutting one-on-one licensing de and a lot of times those those licing deals are only available to the big players I.E Disney um who are you know very restrictive in how they can use their IP and and more importantly how others can build upon that IP and remix it um and if you are a Creator and you want to register your IP it's very difficult uh you know I I I don't even know how I would go about that so we're trying to make it more uh feasible and more efficient by putting it on the blockchain um and more importantly in the age of a where there's so much content and people are creating this content directly out of their own homes and what's happening is there's such a super abundance of content and so much IP out there and so much remixing that it's really hard to keep track of who owns what and who should be paid for their work um you can imagine that you know there's so many videos and content and characters and stories out there right now that other people are using or AI are using in their training data that they're not compensating original creators and so we're trying to automate this process by putting it on the blockchain and so in order to do that uh we have a you know sort of three- layered approach um one is we have built a purpose-built uh blockchain for IP called story Network um and on that blockchain we have natively deployed our proof of creativity protocol is what we're calling it which is a series of smart contracts that are automating the licensing uh the royalty flow um disputing of onchain Ip um and that is all through our modules which you can see on the left side here and if you want to dive more into those you can absolutely do that um and also we have something called the programmable IP license which is essentially a um a license that exists offchain in the real legal World um but we have mapped those terms on chain so for example if the license has a clause for transferability or has a clause for a commercial use of that IP or a clause for how derivatives of that IP can be created um we have mapped those terms onto our protocol so that you can register your IP and attach license terms to your IP very easily um and so others can can very easily know uh how they can remix your IP um and what the terms are for that IP so how much they would have to pay for it if they wanted to use it in a commercial setting Etc um and then lastly our amazing application e and so um if you want to dive more into the technical details of our protocol or our Network or even the the programmable IP license you should absolutely go to our documentation at docs. Foundation um and on the left side here we have a list of all of our major Concepts that are available for you to to look at um I'll briefly mention a few of them now an IP asset is essentially a piece of IP on our protocol so you register an nft as a IP asset on our protocol and that IP asset is what has the license terms attached um that is where everything really happens on our protocol um then we have various modules like the licensing module this is how uh you know you can create derivatives of other people's IP assets how you can register your your IP asset Etc um the royalty module automates royalty flow between uh parent and child IP assets so for example if I have a character and you want to use my character in your story you would register your story as a derivative of my IP asset and then anytime your story uh earns Revenue I would get a cut of that if that were in my license term so if I said you know what I want 5% of all uh Revenue that your story generates that would automatically flow up the chain and then the dispute module here is how we are handling onchain disputing so we recognize that there is so much IP out there again in this AI super abundance World um and so we think that the traditional legal system uh I.E courts are not um enabled or or not uh built to handle the sheer abundance of Ip and Mal use and so we are bringing disputing on chain where people can go on chain and just Ute IP in that way and so you can also check out that module as well and then of course our programmable IP license uh which dives into more of the uh legal terms that are surrounding our uh you know our pill license and how those terms get mapped on chain so again how can I commercially use your IP is there a minting fee to uh use your IP um how can I create derivatives of that IP Etc um and there's a whole backstory on how we came up with uh you know how our legal team came up with that license um how we uh you know used examples from the Creative Commons the token out nft license um and stuff like that um and then of course if you're a developer you can also dive into the developer section we have uh two major s available for you one is the typescript skk and one is the react SEK and then of course we have tutorials and examples uh about building directly on our smart contracts so if you want to check out a whole smart contract tutorial you can also view that under the smart contract section and then we have various tutorials available for you um you know how to add metadata to an IP asset how to register IP on story which we'll dive into in a second here um and then uh other helpful resources for you to use so that is more of the technical overview of story um you can also go ahead and check out uh learn. story.

Foundation which gives more uh less of a technical overview and more of just a conceptual overview of story and absolutely check that out as well so I want to also uh dive into our uh prize structure here um obviously uh you're probably very interested in how you can uh you know win prizes by building on story and so that's what I'm going to talk about now so um we have a a few prizes here um we're giving out $20,000 in total uh the biggest prize is for the best overall use of the proof of creativity protocol so um the the best example of building on story really um there's $10,000 in prizes available uh you know you can see the the the prize structure here with first place winning four grand and this is again award to the best overall use case of you building on our protocol we're specifically looking for projects who have thought much about IP and are using our various modules so as you can see here we want you to integrate with the SD API or our smart contracts directly and to use at least two out of three of our modules so the of the licensing royalty and dispute modules um and we have a link here that will go to the module section of our documentation to help you out with that um the next price we have available is $4,000 in total with the first place winner winning three grand um and this is for projects that are building applications around AI on stories so whether you want to use stability or any AI uh of your choice um this is a project that is really thinking about you know the intersection of Ip and AI so how can we license and keep track of all these you know pieces of content that are coming out through AI data sets right or how can we even license the training data that AI uh you know programs use to build their llms right um that is a big uh use case on story as well and so we also link an example application here which is Sakai Sakai is a um storytelling platform through panels so essentially um as you can see here you can create short meaningful stories in minutes um it allows you to create uh a story using various panels and you can license other people's characters environments or even objects in their story to use your own story um and so this is a fantastic example of AI and IP uh coming together to build a uh an amazing app here um in addition to that we have best IP application on story this is $4,000 in total with the first place winner winning three grand um and this is for um projects that are building ipy applications on story so uh a couple amazing use cases we've seen is um you know the license on story or um the license that gets attached or minted from an IP asset when you when you want to use that IP in your own uh you know application so for example again let's say I have a character and you have a story um and you want to use my character in your story you would Min a license token from my uh IP asset and that license token is essentially your onchain license or your right to use my IP based on the terms that I set well that license token is itself an nft and can be bought and sold um and so we would love to see applications around the license token right what does it mean to create dii Primitives from a license right um and on top of that we also have a few other things that work well in an ipy setting um one of them is royalty tokens so royalty tokens uh if you want to you can dive into the uh royy section of our documentation but royy tokens are essentially tokens that give you um a percentage of the total revenue that a certain IP asset is earning so each IP asset has I believe 10 million royalty tokens each giving you 0.001% uh total of that revenue or something like that um and so what you can do is people can people or anyone can buy on the secondary market for example um royalty tokens of an IP asset so let's say um let's say an IP asset is Obi-Wan Kenobi right from from Disney Star Wars and I own you know 10,000 of those royalty tokens anytime Obi-Wan Kenobi is used in a licensing deal or in a commercial setting I would get a certain percentage of that Revenue because I own uh the rights to a certain percentage of Revenue over Obi-Wan Kenobi and those royalty tokens themselves are ERC ERC tokens that can again be bought and sold on the secondary market and there can be a ton of defi Primitives around that as well we would love to see IP IPI applications story and if you want to check out an example application uh you can check out Piper x uh which is uh the first um ipy uh application on story uh and they've done an awesome job so far so you can definitely check them out so our next prize which is a bit smaller uh has 1.5000 uh in total uh this is for one project that has the most creative use case so outside of uh you know the the uh more typical AI ipfi application we're looking for a very creative uh use case of story right what does it mean to maybe register other types of Ip or you know however you want to I don't want to talk too much about it because otherwise it wouldn't be you know too unique or creative at that point um but you know again would love to see uh you know a creative use case of our protocol and and then uh our last one here we have $500 for the team who gives the best developer feedback however we will be giving prizes every single team um who submits developer feedback so if you submit feedback about building on story it can be negative it could be positive about our documentation about our tutorials about anything at all uh about our Concepts if something doesn't make sense uh we would love for you developer feedback in the form of a Google Document so when you submit your project U please also attach a Google Document um that had that contains information about or contains feedback about building on story and again every single project who submit feedback will earn some sort of a prize but the best develop feedback will win $500 so um that concludes this part of the video in the next part of the video I'm going to be building on story and showing you how to register IP using the typescript SDK but before we get to that part I just want to say I'm really looking forward to meeting all of you and building with all of you uh me and a lot of our team will be on the floor building with you at e Global so uh can't wait to meet you and uh hope you build some awesome things on story and lastly we will be having an event at story HQ our office after the East Global hackathon is over so if you're building on story and want to continue building on story even after East Global um come meet one of us on the floor building at eth Global and uh we'd be happy to send you an invite to uh to store HQ so enjoy the next part of the video and uh good luck so before we jump into this video I just want to quickly mention that this tutorial uh is a written tutorial that I'm going to be following um that it lives on our documentation that written tutorial also as you can see includes a completed code example of everything we're going to cover in this video so if you just want to jump there and copy and paste into your code uh go ahead and do that uh if it's faster for you and so we're going to be using story in this video to register our IP on the blockchain um so I'm just going to quickly before we jump into the code uh read through this explanation here so let's say you have some offchain IP you know example uh a book a character a drawing Etc in order to register that IP on story which is again a L1 purpose of blockchain you first need to maintain nft to represent that IP so you will have to have some nft in order to then register it on story um now if you don't have an nft that is perfectly fine we're going to be walking through that in in this video um but once you have an nft you're then going to register that nft on story turning it into what's called an IP asset now an IP asset on story is uh sort of what what what it seems like it's a piece of Ip um that has been registered on story or more specifically an nft that has been registered on story becoming an IP asset um which is a piece of Ip that has a bunch of superpowers uh with it um and those superpowers are are basically modules um we have a bunch of modules you can see on the Le hand side here in our documentation uh we have the licensing module royalty module dispute module grouping module and a bunch of other modules to come um and again these are like superpowers on your IP they enable your IP to do certain things so for example the light sying module allows you to not only register your IP but also register derivatives of that IP um to track you know the ancestors all on chain um and when you do that you know that also enables the royalty module which enables automatic royalty flow between parent and child IPS so let's say you have some uh parent uh you know let's say character that gets used in another story if that story uh were to receive Revenue it would automatically flow to the parent IP uh you know I.E that character um so there again there is automatic you know royalty flow the dispute module being onchain disputes of wrongfully registered IP or malicious IP Etc um so you know we're going to cover basically in this video U minting nft and then registering it as an IP asset um so anyways just to go back to this explanation here that is two transactions one is minting an nft right or if you already have an nft then you've covered that um and then registering that uh nft as an IP asset so uh to make things easy uh we actually provide a function that we're going to show in this video uh that combines these two operations called mint and register IPS with pill terms uh again which we will see below uh this function not only mints nft uh for you um but also registers it and then allows you to set certain license terms on that uh on that piece of Ip uh which means you know how can others use my IP so if I want others to just be able to remix it um create derivatives of it you know we could put non-commercial social remixing um you know terms on that IP or we could put certain commercial terms on that IP which says you know if you want to use my IP in a commercial setting you have to pay me five usdc or something like that or or 10 IP or something like that you know um and then uh lastly we will set metadata on that nft nip so that uh it properly displays on our Explorer um and other apps in the story ecosystem so what I have here on my screen uh is a cursor I'm using cursor uh instead of VSS code cursor is kind of like the AI um you know Super Power vs code which I've been really loving recently um and all I have here um is a empty typescript file now I have a bunch of other stuff on the left here but I will we you know we will walk through that uh in this video okay so let's just follow the before you start steps so uh you know we're going to add our uh our uh uh sorry private key to our uhv file now I already have myv file here I'm not going to show it uh for this video but there is a. example to show you everything you need to fill in so uh you know you would put your wallets private key in your EMV file um U moving on we're also going to add our pinata uh Json web token to ourv file pinata is what I'm using to upload files to ipfs which we will be doing in this video so grab your P Pata JWT and paste that into your EnV as well um third we're going to be using uh you know this basic the public default RPC provider URL which is just test net.

story RPC doio uh you can also check out a list of any other RPC URLs you want in our documentation under the story Network guide um however again I'm just going to use the public default one and then lastly we're going to install the dependencies which I've already done but you would just paste this into your uh you know package Json we're going to be using the story protocol typescript SDK uh otherwise known as the core SDK the pinata SDK to upload files to fpfs and then VM just for you know basic blockchain interactions so once you've done all that set up we're going to Now set up our story config so so um what I'm going to do is copy this into our application here so I'm going to go to my metadata example and copy this in here now we're going to move our Imports to the top of the file here and then we should be all set up all right so all we've done so far and I'm going to increase the the font here so you can see it um is we have again we've set our uh you know private key inside of our um inside of ourv um and then what we're going to do is take that uh private key and convert it to an account which we will need for our story conf so again we've taken our private key here we're converting it to an account in these two steps and then we're going to initialize the story config so the story config we need an account to actually run transactions um and then we need to specify the transport HTTP RPC URL uh this is also coming from ourv file that we just set up and then we're going to be using uh Iliad in this video if you're watching this in the future this may be Odyssey test net um or this may be uh even main net if you're watching this way in the future um but for now Iliad is the currently live uh test net uh that we have going on at story and then we're going to use this config to initialize our client by saying story client. new client um and then we're going to pass in our config here all right so that is all good and done now now we've set up our story config oh and also by the way for each of these sections there is an Associated doc so you can check out uh if you want a further explanation on these steps but it should be pretty straightforward so in this next step here we're going to initialize our IP metadata now instead of copy and pasting this I'm actually going to walk us through this directly because I think it's uh maybe better to to to slow down a bit here um but what we're going to do is we're going to say con IP metadata and and for the the reason that we're doing this is because um we want to set proper metadata on our uh IP asset when we register it so that's why we're doing this step right now so uh IP metadata equals client which we just set up um do IP asset. generate IP metadata um and so you'll see a little suggestion here actually which I love that that cursor does uh but we're going to pass in here uh we're going to pass in the title which is going to be my we'll just say you know my IP asset um then we're also going to pass in a description which is like this is my IP asset we will also pass in out a watermark image which uh for this video I'm going to use um a website that just passes in example images um if we uh paste this in this is pix some. photos we can actually go to our browser and I'll show you um it's a really cool website where every time you paste it in it gives you a different random image great for testing purposes so that's what I'm going to be using for uh this video so I'm going to paste that in there and then I'm also going to pass in some attributes um these attributes are uh basically an array here um where you can pass in a object that just has um you know key let's just say Rarity um and oops Rarity and then the value we will just say uh it's a legendary uh IP asset um and this should be attributes now there's actually a whole list of this um you know the there's there's a whole documentation that will walk you through this it's the IPA metadata standard so if you click on that link in the tutorial you'll see this actually brings you to an entire table um of uh different um you know attributes that you can pass in so we use a title description we used a watermark image and we also use attributes there's a bunch of other stuff here that you can pass in um and this function generate IP metadata will help you to generate that whole um you know list of attributes automatically but you can specify a certain couple in here um and if you want to you can also which I will paste in here as well you can also import the IP metadata type and specify that right here um and this will just uh give you a better idea of the type that is expected uh for this object so um there is our IP metadata and again uh we will be using this when we register our IP asset so the next step uh which is also pretty straightforward is the nft metadata this follows the basic ERC 721 metadata standard so uh because this is very forward I'm just going to go ahead and copy this into our application uh this is just you know again nft metadata that you are used to if you've ever uh you know worked nfts in the blockchain space just a name description and image uh for the name I'm just going to say test nft the description this a test nft and then image uh is a another uh random photo um now again you may be wondering you know what is the difference between the nft and the IP to answer that question you can uh again go back and check out that IPA metadata standard which uh provides explanation for this but essentially uh nft metadata data is not as important it's just basic information about the nft uh you know again you can provide test info here for the IP metadata that's where you can be more specific um about your title so again is this a book What's the title of the book what's a description of the book an image of the book maybe and then attributes of that book um you can dive much more into the details there um and then to make things simple you can just you know copy those things for the nft side okay so once we've done that we're now going to upload our IP and nft metadata to ipfs now um this is a function here to up again upload uh Json data to ipfs we can see um in my application I already have that under utils upload to ipfs I already have this code here just because this video is not meant to be a tutorial on how to upload to ipfs but that code is here and copy and pastable for you so um that is what is right here okay awesome so um now that we have done that let's go back to our application here and we're going to use this in our code now so um again uh we're going to uh take this code here actually you know what I will type this out because I think it's maybe better for us to just do it together so I'm going to say cons IP ipfs hash equals await upload Json to ipfs and we're going to pass in our um you know metadata there we're also going to import this into our file awesome so this will upload uh this you know Json to ipfs and then provide us with an ipfs hash here um now we're going to also say cons IP hash equals create hash uh and then I'm just going to uh click enter here so this is shot 256 we're just going to basically hash this object here um and we can also import this um like that and that's going to import it from the crypto Library which should be already installed okay so that's for our IP metadata we're going to do the same for our nft metadata so we're going to just say con nft ipfs hatch and I love again I love the cursor automatically does this for you you should definitely use cursor if you're not already we're going to upload our uh nft metadata to ipfs and then we're also going to and I'm going to delete this cuz we're not ready for this part yet um but then we're also want to convert um you know the the nft object to a hash as well okay um great so now that we've done that we're actually ready to register our IP which is uh insane that we're already there um so let's go ahead and do that now we're on step five now there's two up you know two options for step five either a you already have an nft minted which we're not going to cover in this video but it's again very straightforward and if you already have an nft minted or let's say you have a custom nft contract that you want to use you would go through step 5A so um you would basically just use this register function again you can literally just copy and paste this into your app instead um this is again if you already have an nft minted and it's your own custom contract so let's say you have your own nft contract address you would put that in your EnV file the the token ID of that nft you could also put in your EMV file and then this would register that uh using the metadata that we just set okay so you can go through 5A if you want but this video is going to cover um you don't have an nft and you want to have a single function that will mint and register the nft in the same step so we're going to skip to 5B here um okay great so now that we're at step 5B um what we're going to say is uh in order to um you know use this function in order to use I'll scroll down a bit here in order to use the mint and register IPS that with pill terms we actually need to create a SBG nft collection now this may be a bit confusing but essentially the SBG on story and if you want to check out more documentation on the SPG by the way before I dive into this check out the SPG section but the SPG is basically a periphery or utility smart contract on story that allows you to combine multiple operations into one so registering or minting in nft and registering nft are two separate transactions usually but the SVG is a utility contract that allows us to combine them into one transaction namely in the mint and register IP asset with pill terms function so in order for the SVG to uh you know mint and register an nft in the same transaction you need to create a SBG nft collection first so there's two ways to do this either a you can uh Implement your own uh contract and just make sure that it uh inherits the IBG nft interface or we can use the SDK one time to create a new SVG nftc collection and then we'll never have to do it again which is uh a very helpful so we're going to quickly take a break from the metadata example and go to this script which is create SBG nft collection which is just a basic script um again uh where just like the metadata example well actually I'll make this very similar to uh our medad example so it's a lot so it's maybe a bit easier to understand um where we basically set up a private key an account we initialize the story config the client all the same the only thing uh that we have covered in this video is we're going to create a new collection here so I will show you how to do that right now so all we would say is and actually I'll just get rid of all the comments here just so that it's a lot uh you know easier to look at I guess um what we will say is const new collection equals await client. nft client.

create nft collection all right and in here we're just going to pass a few things one is the name which is just we'll just say test nft uh the symbol which we will just say is test and then we're also going to pass in transaction options which we will just say wait for transaction is true this way we can get some return values from uh this uh this function okay so oh this this should be create nft collection sorry not create SG collection and then we're going to console log some of the information here okay um and we have to also add this parenthesis so again this is just going to deploy a new uh SPG nft contract where the name is test nft the symbol is test um and just remember again if you want to implement your own you can always do that and in implement the inft or isbg isbg nft interface but uh for this video it's a lot easier just to use the SDK to do that okay so what we're going to do is I've already configure my package Json to just run this script if I uh if I paste in uh this command so I'm just going to in my terminal say uh mpm run uh create SVG collection and that's going to quickly run uh this script and we we should see in the output let me actually increase the font here that uh it logs uh the new um you know nft contract address right here so what I'm going to do is quickly um on a separate screen here I'm going to add um that to myv file um and go back here okay great so then I have now added that nft contract address to mymv file okay so I'm going to go back to my metadata example and we're going to actually go back to the tutorial as well and so we've already done this step now which is awesome and again we only have to do this one time so once we have our SBG NFD collection we should be able to use the mint and register IPS it with P terms function as many times as we need so it's pretty convenient um and again you would just have to set that NFD contract address you get in your terminal to your EnV file okay so now that we've done that let's go back to our tutorial here and we're going to uh now do what we've all been waiting for which is mint and register and nft as an ipset so we're going to say const response uh equals await client. IP asset. mint and register um IP asset uh register IP asset with uh pill terms open up a function here and oh this should say mint and register oops mint and register all right and so in here we're going to pass our nft contract which is just our process. uh. nft contract address as address right um this should be NFD contract all right and then we're going to say uh pill type which again before um or I'll explain this in a second after I said it um and actually we should just uh import pill type here all right cool um noncommercial remix oops non-commercial remix and what this part is the pill type is again the license terms that we want to add to our IP asset so um if we want to we could go to the programmable uh IP license tab on the left of our docs and go to pill flavors you can see the three options here one is non-commercial social remixing this gives us the ability for for others to remix this work distribute the remix everywhere uh they have to credit us appropriately um you know uh and you know you can see all the different terms here uh if we wanted them to use it in their commercial use they could uh you know commercial remix you can check out all the terms here but for this video we're using non commercial social remixing which basically just says you know what you can use this anywhere you want um but you know just just just not commercially so let's go back to our tutorial here scroll down to 5B and okay now we're back so now what we're going to do is set all the uh metadata that we that we um described earlier so we're going to say okay the IP metadata uh there is four things one is the IP metadata URI which is just uh you know your whatever ipfs link you want to use I like using using ipfs.

io ipfs and then we're going to pass in our IP hash here or actually this should be IP ipfs hash here the the hash we get from uploading to ipfs then we're going to say IP metadata hash and that's literally just the um you know actually we should say ox and then IP hash here just to properly format it um so again this is just the hash of the object and then we're going to do the same thing for the nft side so nft metadata URI and this is again uh the ipfs.io nft ipfs hash here and then the nft metadata hash which is just the nft hash all right and then lastly we're just going to set transaction options which just says you know what wait for the transaction to end that way we can get uh some results from this transaction and then I'm going to uh go to our tutorial here and copy the two console logs just so that we can get some output here um and hopefully this should all work oh and this should also actually say respond so I will change that in the tutorial so that is fixed Okay so again I have configured this to run if I if I run the metadata script here so let's just say mpm run metadata and hopefully all should work so it's going to Mint a nft and then register it as IP um if everything works and also upload all of our metadata to ipfs in the process so let's let us see if this goes through and it does so it says uh the root IPA was created at this transaction hash this is the IPA or IP asset ID of that um IPA and then it also gives us a link to do this on the Explorer so let's go ahead and open this link and hopefully everything should work um so we open the Explorer here and it may take a second to actually load the metadata so we might have to refresh the page a few times so I'm going to try to refresh the page um a few times here and see if it goes through and it does so we can see test nft here we can see the image that it registered we can see the IP details so if we go ahead and click on the IP metadata URI here which is what we set we can actually view this on ipfs we can see all of our metadata that we set um right here in uh ipfs and you can also see that even though we only specified title description Watermark image and attributes you we should also see relationships created at media creators uh this is because we use the generate IP metadata function which automatically formats all of our um you know metadata or IP metadata and if you also want to see we can go to nft details we can see the nft metadata U here and if we click on view metadata this is the nfts metadata right um and so this is actually what this image is coming from and we can see that because if we take oh actually this will generate a random photo but uh you get the idea so really awesome thank you so much for everyone who watched this video and it's interested in building on story I would love for you to come check us out at eth Global we will be on the floor building with all of you uh until the hackathon ends so please stop by ask some questions and uh I'll see you there thanks everyone for watching have a good one

Automatic transcript — names and jargon may be misspelled.