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

Loading player…

Zora 101: Build, Expand, Enjoy

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Dan, Protocol Engineer at Zora, to learn about Expanding Ethereum with the Zora Protocols and L2 Network to create a place onchain that is Ours, Truly. Superhack is the perfect place to experiment with the OP Stack. We, like many others, are excited about the Superchain future, and Superhack is the perfect opportunity to test what’s possible alongside pioneers in the ecosystem. Let us introduce you to our amazing partners: 🔴 Optimism builds open-source software for running L2 blockchains, like OP Mainnet, and aims to address key governance and economic challenges in the cryptocurrency ecosystem 🔵 Base is a secure, low-cost, builder-friendly Ethereum L2 incubated by Coinbase built to bring the next billion users onchain 🪩 Worldcoin is building the world’s largest and most autonomous identity and financial network 🌜🌞🌛 Zora is an open protocol for creators and just recently launched on top of the OP Stack The Future is Multi-Layered Without a doubt, Layer 2 technologies have emerged as the solution for a variety of Ethereum network problems. These innovations, which offload some processing and computation from the main Ethereum network, have quickly become our great hope for scalability, performance enhancements and ultimately onboarding the masses onto Ethereum. ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

foreign [Music] Workshop Zora 101 build expand and joy joining us today is Dan Ovid who will be taking us through the session and with that I'll pass over to Dan to get the session started hey everyone um it's really great to be here um this is Workshop is called Zorro 101 build expand enjoy I am a protocol engineer at Zorro working on the NXT smart contracts technology um uh working on building new contracts and and deploying us on the multi-chain world that we're living in um so I uh used I was a previous youth Global participant um I've been to four equivalent hackathons and I'm very um eat globalist hackathons are what got me into web3 so I'm very glad to be kind of contributing from the other end um and I'm here to answer any questions so let's get started so uh first question is what is Zora um Zora is a open source protocol that enables creators to Mint nfts on their own ERC 721 or 1155 contracts uh using our user interface or from our smart contracts additionally it provides an minting interface and a place that you can mint uh tokens from all over any kind of all over many different evm compatible blockchains um we offer creators customizable Min Pages uh profile pages and all the profiles are stored stored on chain and we really think of Zora as like an on-chain destination to create and collect um nfts and kind of just General Media we've just launched a layer 2 which is a on the optimism stack which is a fast and cost effective evm compatible blockchain and the goal is to just make it really easy and cheap to create and collect um we really want to just Empower creators by giving them all the tools they need and a bunch of management tools and we don't charge anything for creators everything is free for creators the only thing you pay is transaction costs um first I'm going to talk about the layer 2 which was recently launched in the first month uh we had 160 about 161 000 nfts minted over 15 000 contracts deployed 995 each bridged and 2500 creators coming onto the layer 2 and 70 000 collectors what's difference between the zoil network versus other layer chooses we're really focused on nfts and uh create creators and the culture and Community around it so we're trying to build like an ecosystem around that um and we're just trying to yeah bring more expression and experimentation on chain um the nice thing about a layer the layer two is that it's still secured by ethereum but transactions confirm really quickly I believe the blog time is two seconds and minting in nft is very cheap as far as transaction costs um here's some examples of some nfts that have been uh NFC contracts that have been created on our platform I'm gonna open some of these this is uh probably many of you heard of this is the Oakland threat tradition let me just go to this this link uh you can see here 67 000 of this has been minted um not going to go into talking about what these are but it's just examples this is like a simple image uh this is a more this is kind of like a video um that's an ongoing mint it's a free mints this is uh we also support all different formats besides just images and video and gifs we also allow audio so this is a podcast that was minted um that was published and here is a you can see 7500 have been collected so far um and we also allow PDFs um so this is uh the get coin impact report um that was created and then we also have allow 3D files so like you can upload a glb and it'll render the 3D model and animation and one thing you'll notice is all these uh all these mint pages are fully customized or customizable and on the the attributes you can there's themes that can be purchased as nfts that that can be applied to in pages and this is a final example of a interactive HTML to anything [Music] so yeah we allow all different kinds of media attainmented um just want to walk over the Zora Network since it's been launched so uh around June I remember the exact date uh the Tsar Network layer 2 was launched um and these were the mints on mainnet before but by week and as soon as we launched layer 2 we launched on optimism and Azora Network you can see that there was a huge appetite for people to launch on something that's cheap best and efficient and um pretty much everyone now is minting using um the layer 2 Networks so this has been a really great CC um so we offer basically two different kinds of contracts uh that people can create on there's 721 ERC 721 which is you can think of I'm sure many of you are familiar with this but if you're not you can think of this is uh one token and one owner and each token can have its own piece of metadata at um Zora gear 171s can mean a little bit beyond that um so for example you can mint you can have a ERC 721 contract that is an addition so you can have like one piece of content with many many owners and many editions of it that's what we call an addition based an addition contract and then um or you could just mint individual tokens which are each one is going to be a unique one-on-one which is a traditional ERC 721 model more recently we watched ERC 1155 which is a multi-edition collection this is ideal for releasing related bodies of of work together so for example if you want to release an album you would do an ERC 1155 because you could have a bunch of different individual tracks on the album and each one of them could have multiple editions and multiple owners you could also think of the erc15 as a erc20 as a contract composed of multiple erc20s but each erc20 has metadata um we allow these the configuration for each ERC 1155 token to be configured independently so you could have like one token that um has a price of this amount and and can be purchased between these dates you could have another token with um that can be completely an open Edition has no limits and convenience it forever so we really allowed we allow these things to be configured on a token by token basis um and the code for these can all be browsed can be found at these repositories I believe we should have links on the the Bounty but if not join our join the Discord chat room and we can send these links um I'm more a more recent thing that we launched uh last week is a thing called protocol rewards so um traditionally even on on Freeman's Zora collected a small fee of 0.0077 0.00077 East um for each mint whether it was free or not and with these new protocol rewards we're actually passing back a lot of those fees to um the ecosystem so whether that's creators developers building on top of the contracts or people that are servicing mints on their own website um so in the first case if it's a Creator let's say you launch a an nft contract you launch an nft and there's your um um the it's in free mint uh you would you would be able to receive a portion of this fee in the form of a reward if you're a developer and you create tokens using our contracts uh you would be able to collect a small percentage of this a percentage of this fee in the formula reward and also if you let's say want to let create a website where people can you want to just take embed a mint on on another website that's not Zora you have a way to configure an address that will receive a part a portion of this fee in the form of a reward on instruments uh I'm actually going to go through a demo now on how to create an ERC 721 contracts uh using our JavaScript SDK without uh needing to really write any salinity code so I'm going to use the tools uh wagme and react and I can use their wag me CLI to kind of scaffold a simple next.js application and um create a drc721 drop and set whatever account I want as the referral that will collect this fee so I'm going to go into my terminal and I'm going to do uh yarn create wag me I'm using the magni CLI which um hcli uh this is going to the installation instructions and then you could basically you want to create something from scratch you could do yarn I forgot where that there's uh anyways I would do I would install that program and I would do uh yarn create wag me I'm going to call this um protocol words demon then next site and then it's going to create a a new scaffolded project um and then I'm going to show how to install our SDK which I'll show you is actually pretty nice it makes it very easy to connect to our contracts and develop against them um let me just it's just installing this one second foreign vs code okay so what this did the scaffold that wagme created created um a bunch of folders code that I don't need but I'm going to first show you let's say I start this application by doing yarn Dev all right let's open this so I'm going to connect my metamask um I'm going to use this wallet so right now this is I'm using ethereum this is only this this demo app that's with scaffold that only uses it during orally I'm going to switch it to use a Zord Networks so if you can open this this is the configuration they generated this file of log me.ts I'm going to replace this main edit and Lauralee with just uh if you can wag me already has our chains bigger so I could use Zoro access net here now when I reload the page it says I'm connected to Zorb early so I said I can switch to Zoro this would be connecting to ours or I may not our layer 2 and this is going to be connecting to our layer 2 test net which is free to use so um so great so now I have that and I'm connected to this this generated at a bunch of scaffolded code that I mostly don't need um I'm going to go just delete a bunch of that stuff and then I'm going to I'm going to delete basically this is kind of like the writing contract is all I care about I'm going to just quickly delete that and open right contract card so this is using the wagme's hooks which are very nice for um using typescript for connecting to Smart contract which is super helpful when you're trying to like make sure you're passing the right types of data so we have a using our SDK you can actually it fits a nice name to this and I'm going to quickly add it to my projects by doing um yarn add Zora lab this is Zora 721 contracts this is going to be this this repository is going to be in the final slide so it's just has to install this quickly and then I'm going to just install this one second and so this is what's here I can now show here there's um ERC 721 Zora entity uh Creator config so this is actually going to let me connect to our Factory contract which creates um which creates 721 contracts I'm going to quickly so basically that'll open so there's this documentation here on nft Creator which is instructions on how to create a 721 contract using our um if you want to call the solidity code directly um so this is a function that will create an addition which is basically a single a 721 with a single piece of content but multiple owners um and protocol rewards will show how you can um call that same function with referral and pass a create referral which means that this address will get a percentage of all mints fees in the form of rewards for each token that's minted so um I can now change this use prepared contract right to uh so it's going to ask you for the ABI so if I go to this if I go to definition here what's nice is this gives you um our nft Factory our 720 battery all the for every chain what address it's deployed to so you don't really have to and this will be if we ever update this address you just do npm install and install the latest version so this gives you both the ABI of that contract and where everywhere it's deployed so if I go to ABI I'm going to be Azora at ADI and then I do address or create creative dot address but the problem is this is a Json object so I can get now I could just get the chain ID from lag from wagme all right we're just gonna move yes ignore that it's always a fun thing to do what's nice is now if I had to do function name it'll give me all the possible functions on my ERC 721 Factory based on the ABI so we're going to use create Edition with referral and it's gonna that's gonna basically create this Edition and then it's going to ask me for the bunch of arguments and this is going to be based on the API and I'm not going to build this in this demo I've already done this somewhere else so I'm going to just copy and paste my code that already works and um so if I go here I'm just going to copy and paste this just give me an error because it's some something let me just fix that it wants the es next or later so I'm just going to fix this to be very big games seven you get the address one second I'm gonna publish this code that you can use later just choose and then so this is basically calling a conch or factory to um create a contract with a referral and I'm not going to go into these parameters because there's not enough time here but you can look at them on our documentation and then I'm going to just create a mint button that is going to um so now if I go to uh here I'm going to show a version that works because I'm not going to debug this right now but anyways um a more complete version is going to be here that I don't have those weird note errors so this is gonna um so if I go to uh test net by the way you want to go to testnet.

zar.com because this is where you can experiment with test Nets and not use any gas so if I'm logged in these are my collections I have nothing here I'm going to create an ERC 721 Edition using the same code they had before but this isn't like a separate repository that everything works so this is going to create it using the JavaScript SDK and wag me the ABI and contracts and that succeeded so now if I go here my collection should show up scale X100 anyways I'm going to switch to another account I'm probably just having issues with like um accounts law but um let's say then that would have created if that they was working correctly uh one of these contracts this is I just clicked another account these were all created via that SDK um and so then this contract now has an address as a create referral which was configured um here this create referrals last arguments and then every mint on on the contract is going to um that create referral is going to get a portion of of the the form of a reward there's also another example of how to then actually I'll just show quickly inventing so let's say I go to mint so I've already configured this other function to Mint with the referral configure it and just quickly what that looks like is uh what that function looks like is you recall a function on the erc7 contract metric rewards uh you give it the recipient is going to be the recipient of the nft the quantities how much they're going to get it's like a comment anything you want to add which will go on chain comment and then in mint referrals so this is going to be the address instead of get the referral fee and this is very useful if you want to like place them into anything on your website and let people move there and so this thing minted this thing minted on that transaction and then if I go to tal rewards you can see here that my account has rewards that I can withdraw um this is the the contract Creator so then these were generated from a combination of these were generated based on the create referrals um I don't have time to go through all the details but you can kind of get a sense of what's possible um and I'll I'll just publish that repository later so you can look at the code and understand it better and all the parameters so then I could withdraw this and it'll withdraw from this rewards contract into my account [Music] um let's see anything else so this yeah this is basically shows a creator for all you can from our um I just want to show a nice example of create referrals the dream I'm talking about so this is the open pen which many if you've probably heard about there's an option now to um kind of make a derivative work and you can change parameters and then um and then I can mint this on Zora says redirecting to Zora and then I would connect my and then this would create another token with the original Creator this is configured to create another token with the original Creator as the referral recipient and the nice thing about this is it kind of allows like forking of nfts and content and like passing back um like rewards to the original creator of the original token so um yeah this is just the mint with rewards function and this is uh you can go to our website to find out more about these fees but I think also what I'm trying to show you is you can interact with all these contracts through SDK through solidity um it's all open source and decentralized um so Horizon showing up um I'm actually going to stop sharing and just leave this screen here and I want to leave five minutes for questions I wish I had more time yet these are just some resources that you can follow definitely use testnet in this tag I thought I use tests.org.com to just test stuff out um you can Bridge uh to our testing out using Gore leads using British azora.world our docs are here these are our JS sdks if you want to use JavaScript and or um solidity repositories are here so yeah any any questions yeah there was a question earlier in the chat can we do attestation Zora um can you explain what attestation means oh Julio are you yeah could you want to maybe take yourself off mute and kind of clarify the question what you're looking for yeah hello yeah uh well we're seeing another thing another uh change we can do at the station what is I like to make sure maybe has something there or maybe the auction is with the only smart contract uh similar to another one so stations I think the way the rasterization happens is you would call our Factory to create a contract and then you would build like the contract can communicate with other contracts I think the attestation but as far as attestation didn't prove that the contract is a real ERC 721 or 1155 or what exactly do you mean by attestation is like a type when you can say you can say okay this one uh to pass a smart contract you have those address and you can say hey I say this one is true this person is like this or they have this role something like that no we using we see that one in another uh change that you start using that one but I'd like to make sure you already have something like that already in that case I don't need to deploy a contract in order to mimic that one um I'm not entirely clear what that is but maybe you can ask in the Discord so that that testations are are essentially like messages on chain uh like arbitrary data that sets into like like a EAS is something you can look up there and they're in the the role of sponsors but they're used to basically confirm real life real life things on chain so like it'll be like your Twitter address or you can like you can make schemas in data points for a lot of things to go from real life John chain so like an attestation would be like a basic question and answer with like a variable type like a Boolean right or a number or you know any type of data that you want to put into that attest Nation for the user to confirm or deny if that makes sense yeah I don't know we I don't believe we currently have that now yeah correct I'm sorry yeah the L2 yeah it's um it's it's a it's an optimism it's a op stock base there too so it's yeah you could just uh deploy any contract there thank you yeah and I have one question did you guys did you guys have a Brit are the do you guys have a contract with the ccip uh protocol like let's see that's because is there a line to get to you guys we don't currently I think the only bridges that are currently supported as a are you talking about like um we'll adjust they just released kind of a couple weeks ago so it's like brand new but um a lot of us are trying to use ccip to bridge messaging to different chains and I was just curious I'll learn I don't think we have it now but um I think bridging is something we're definitely we want to make better um and support more technologies that enablement so um yeah as far as I'm aware we don't we do not currently have that uh there was another question of any support for ERC 6551 um ERC 665 51 I would probably have to Google that um we just as could you mind uh explaining what that is yeah this is this is uh nft accounts so basically uh an nft can basically uh own other entities and other assets on chain so I'll just want to find out something like whether you guys either have any support or whether you have any plans in terms of that and what those will sort of looking like um we've certainly discussed something along that both lines internally um but uh currently we don't have that built in but I mean we would welcome you know had it on projects that explore that all right it's really interesting um for sure that's something we've discussed but we haven't um done I mean the closest thing we have is ERC 1155 but that's not really what you're talking about but it would be really nice if yeah like there's an album and you could just own the nft and it owns all the tracks and you could sell it all as like one thing yeah or okay there was a question about billion test net so uh our our hackers eligible for the soar Bounty if they only Deploy on the test slot or build it yeah I guess yeah we should probably make that clear we should be you shouldn't have to spend real Zora to do that so definitely just on the test that's fine we should make that clear in in the in the prize description um I think we did but if it's not clear then yeah definitely just use the test Network and use um test.

co to access like all the same tools user interface in in the test net yeah thank you I also wanted to just quickly clarify I missed the uh the minting of the um nft that we had I I originally saw that it was a bridge transaction but could you explain that just a little bit again um sure the um I I I've been looking um so there's there's a couple ways if you want to go into the technical details of doing um bridging and and minting um there is just like a high level version like I'm I'm seeing stuff on on uh Zora mint before but um I just went in real quick and I was like oh I only had five minutes and I was like oh I want to Mint this before we run out of time and when I clicked mint it immediately switched over to bridge you know right on the mint page and from the L1 it it's I'm not familiar with that page but it switched to it switched to the mainnet and wanted you to bridge there yeah yeah and I'm just talking you know just specifically about our internal um you know not not that big of a deal this is really cool Global kind of released an nft for us to claim but um yeah so it's a really bridging is a really interesting thing and I'll just point you to some documentation about where you could how to do that um yes so this is like a nice um you basically there's a we have a there's a L1 cross domain messenger contract deployed it in a specific address which you could look up I don't know the exact address now but basically you can send a message from the L1 to the L2 to any L2 contract um with East and and encoded uh you basically specified a Target contract the encoded call data which is a message and how much gas you think the L2 transaction will cost and you can also send each with it so that could be a way you could do like bridging like minting on an L2 from an L1 by basically sending the message from the L1 to the L2 contract that calls immense so this is like how this is the one way this is there's there's this one and there's also um deposit transaction which is kind of more lower layer but it's more risky but it uses this one uses a quite a bit of gas but there's a deposit transaction function which is more risky because if not enough gas is sent then the funds will be locked forever but that deposit transaction is like a lower a cheaper gas way to send messages from L1 to L2 but there's more risk involved we've been look yeah we've been looking at this quite a bit but I mean cool cool projects that projects that do interesting thing with this are are great too for the hackathon I would say very cool and thank you for the presentation today I appreciate your time sure and there was a question on well where's the repo that you're working from the one that I'm just working from let me um push it to GitHub and I'll paste it in the chat let me just let me just uh I'll just publish it on my personal [Music] quickly and then I'll share link here and then maybe I'll move it to the Zora word um let me just push it here I think people have found it useful um let me just quickly create it sorry I'm doing is starting to call but I think it's my useful um doesn't have a readme if they don't have time but um I'm just going to create it and then I'm going to push the code there and then it thread okay so now I'll add a readme after this call but uh this is the I'll paste it in the chat here whereas the chat all right oh there it is and I'll add a readme and I could do more examples and better commented code but yeah just one of the things you'll find there is that the SDK makes you really easy to work with wag me and react or even just vanilla like VM and JavaScript um with uh with our smart contract awesome we're a little over time but uh thank you Dan for the the great workshop and thank you all for attending this was the last workshop for the day so uh nothing tomorrow but then uh the Thursday we have a few more workshops and also the second project feedback session so uh thanks thanks all for attending have a great rest of the day and cheers thanks again down again thank you

Automatic transcript — names and jargon may be misspelled.