Why ERC721 sucks and we need a new NFT standard
ETHCC 5 · July 2022 · 17:05
Anett Rolikova examines ERC-721 and ERC-1155 from a developer perspective. The speaker discusses problems with current standards, possible alternatives and the NFT Standards Working Group's documentation.
Speakers
Topics
From ETHCC 5, hosted by Ethereum France.
Transcript
hey guys today i'm going to talk about erc721 and why we need a new standard and although like behind the story why i wrote the why year c721 sucks article uh last year uh just a quick introduction i work for ethereum magicians i'm like ethereum standard coordinator but i do so many stuff behind this title but the title looks cool but you know it's just a thing that sounds fancy uh so let's talk about erc's um i'm not sure if you guys are aware but ethereum goes to a role like a process like a governance process um which yeah through which we create eips and ercs are a part of eip process the
chart there is just for like the process which ips goes through before it got finalized and how like the governance process behind ethereum works uh just erc introduction uh erc stands for ethereum request of four comments and it's the application layer ap there are many other aps as well like core aips which are mainly protocol layer ips but also like networking for example and there should be like five categories of eips but ears is one is one of them and the ears is what i'm going to talk today about introduction uh also erc20 is like the most
used standard it calls like the revolutionary standard and the most of the tokens that are out there the functional tokens that has real value are using the erc20 standard from my last research uh the 70 of tokens out there are using the this cool standard uh to function and um this is like a smart contract uh standard which defends the main feature is how the smart contract operates and it's sort of like the standardized way how um what's like for example total supply balance off and transfer functions and it defines like how the tokens are being transferred on chain train
yeah so this is like what the erc does and here are some examples that i don't want to mention because people will think that i'm shelling backs of some tokens so i added just logos of some tokens examples of which are using erc20 token standard for that but today is not about the erc20 but today i'm going to talk mainly about do you want to like take a picture of that i can move that okay cool uh so year 721 this is the most popular non-fungible standard i have no idea why the heck i have like twice uh the nft in like the first line but i just noticed that when i was practicing my slides so bear with me
with that uh so the 721 it was the standard that got introduced uh by dieter shelley and william entrican back in 2017 it got implemented in 2018 when the chain was like in a total different stage as it is right now but that was like the evolution of the ethereum and the chain itself um so this token uh this standard is mainly used for non-functional tokens um and it's like everywhere like all of the nft standards or like all of the nfts should use either uh erc721 or erc 1155 uh i don't have erc 1155 in my slides
but uh the difference between 721 and 1155 is that 1155 is sort of like a hybrid between 20 and 721 the 1155 introduced mainly atomic swaps which allows you to transfer tokens within one contract and so i feel like those 721 is a great definition um because i'm going to talk uh in my next slide on like the good and the bad of the 721 but i feel like the good definition how to talk when we are talking why the 721 sucks uh is because it's so basic and so
um like classic standard that it feels like a big house for me or like you know it's like lay down the uh base for like how the non-functional tokens should be defined on chain or like what is the nft itself from the backend perspective and then there are many other uh erc's that were built later on uh which we can like sort of like have example that you know the 721 is like the house and then the other aips are like the parts of the house itself i'm not sure if that's a good definition but i feel like that's like the most the closest that i can come up with in order to like explain it to like beginners as well um so 721 the
good it's very simple uh which is also like good and bad it has basic function it works it's good you know like the 721 there is like nothing bad with it really uh but it has also so many flaws um so it's missing many functions but also like it was developed in like 2017 2018 right and the ethereum itself as a chain was in totally different stage there was different ideas how we think uh about the nfts itself and like the use cases and what we need like what kind of functions the nft should have the metadata that's like totally mess
but also like the metadata is just like the worst thing ever when it comes to nfts and i'm going to talk about it later but also it's not so up to date which is like obviously but also that's very questionable like how we can keep our standards up to date but that's probably good discussion uh to talk about when we are going to talk about ethereum governance itself and when we are going to talk uh with like ib editors for example so the struggle was yes i have this word on the slides because it's funny and i love to using that when there is something not so funny so this standard the 721 was implemented
before it hit the finalized stage i recently learned that as well which was new for me and that's why it actually sucks and that's why the 721 is so bad but also there is a good question like how uh we know that the erc is ready when it reached final status uh i personally feel like it reaches the uh final status when it goes into like software or fork or hard fork itself uh but also it's years and years are going these days through like different process and i feel like there probably will be even separatists from the iep process itself uh so it's this is like what just being
in process and i don't have like any rights to like um uh yeah i don't like work on that that's like out of my scope but i wanted to like present that as uh that's like something that is happening and this also seems to be problem with other erc's not only erc 721 but there are many other ercs that were implemented before they were like finalized and they were like alleged to be used um one of the many issues the security issue with 721 which i found out recently when i was actually getting ready mooded slides and i was reading some samsung's articles uh so they have the transfer function
which is supposed to be safe but it's not safe uh it is kind of funny uh and i thought that it would be good to mention because it calls like unsafe transfer actually and you know it's like funny like why would you like add these words to um like as a function smart contract function right uh metadata this is like the biggest issue that we face in the nft industry like metadata when it comes to like not even like the from the art perspective but also like the music nft industry from metadata oh my gosh they have like headaches but there are like groups of people that are working on that uh but metadata are basically nft
attributes which are traits uh which easy as example openopenc any kind of nft scroll down uh and then the attributes the trades it should be the trades right um so like in the description you can find like trades and like the best example is like if you will open any pfp project as well [Music] so it's optional yeah 721 has metadata optional uh and also which is like not cool because why you should have metadata optional right in the 721 contract when the metadata is like like it's like the key
uh component of the nfts itself because metadata is like everything it can be also like a description it's not even like a trade itself of the nft itself but it's also just like optional um one thing json data that's where you can find all the metadata of the nft itself but it's start of chain and the 721 has the token uri which points out to storage url best case scenario it's in ipfs link which is the centralized worst case centralized storage which is the pain in the ass
especially if you guys are building an nft marketplace and nfc has centralized storage that's like the worst thing ever because then it's like hard to fetch them um and that's like a trouble also wanted to point out to the standard there's even interrupt but it's the metadata integrity erc which points out the schemas and schemas are just like a huge list of definitions how metadata are described but it's mainly connected to the physical physical components or like physical functions so it defines like graphic designs and whatever
yeah uh so highlighting the optional um in the erc 721 contract um i mean okay my face is not there but yeah okay you guys can see that as well uh so this is just like a proof that metadata are optional metadata extension um yeah there was proposal to add metadata extension to 721 uh from what i mean sorry i understood this as they made 721 with metadata optional and then they made metadata extension which they wanted to just extend the erc20 token interface to like support the metadata itself
which means that we would have 721 with optional metadata but then also erc20 with metadata extension doesn't really make sense but it's the solution that is like out there and wanted to point it out and there are many versions of erc721 so one of them is the one is the gas optimized implementation from azuki team which is kind of cool it saves a lot of gas also the chart is very cool but it was uh made when one each was like uh 3.5 k was like 3050 for one each so the numbers may differ right now
uh so that's why there is like such a a huge difference uh in the numbers uh but this is like one of their implementation from azuki team and there is also like there are many other eips and ercs that want to like either extend functions of the 721 or support the initial uh base functions of the 721 and 12 one of them is the user and expires extension which is basically ownership erc uh which adds another address to the contract itself who can like use it which can be usable for like gaming and lending for example
this is very new erc by the way it came out like probably two weeks ago i believe uh also by people who are in the nfc standard working group so another eeip which is kind of cool this is funky eap because it's about the permits permits are the signed messages for alpha tokens but what this ap does they took the eap 2612. this is good okay so they took eip2612 and they extend it with token id functions because non-functional tokens are defined by
token id and erc20 tokens are defined by value so this is just like extension and this was supposed to do its department ip uh which was supposed to extend the [Music] the transfer value so uh i wanted to i mean i hate healing and i'm really very against healing but i feel like this is like very cool way how to highlight my work uh so i've been working on the nft standards wiki uh which is a very cool documentation of all things that are happening around like nfts and ercs it's like a sum of everything like you guys like this is
like kind of cool um so this is like documentation of everything or of like all standards regarding that i did also research on security of nft standards as well and bunch of others uh there is a telegram working group as well which there are so much you're going on and there are like new standards being shared and discussed which i feel like it's quite a cool and can be very helpful for the community itself so um kind of takeaways and i'm ending right now so um i would love to encourage you as a community to build simple but well written ear seas uh because there is uh
i mean is there so many ercs but so many years since that's like uh not really much of a things and are very simple and you know they kind of suck and also but also don't write erc's to fill your project like bright erc that can be used outside of your project um the unemployment years is if they're not in final status because if they're not in final status uh there may be something wrong with it or the erc itself can be edited before it reaches final status uh which means the that there can be something wrong either like there can be bag or the erc itself can be edited afterwards or it can be like
improved ethereum magicians forum is very cool place where for discussing all eap things and ercs and gaining the community input and feedback for your ieps and with the standard tweaking and also if you guys will see the github grants like ethereum additional git can grant please donate to us because that's like how we run and that's like how we support the eap development and that's pretty much it from me here my social media links everything and enjoy ecc and i think i'm open to questions right so yay you have any questions