Ethereum’s token standards have been a real game changer for the crypto industry. The advent of ERC-20 made the creation of Ethereum-based fungible tokens a relatively straightforward affair. Then, the ERC-721 token standard emerged, giving rise to a whole new movement centered around non-fungible tokens, or NFTs.
The differences between these two standards is generally well understood and people have a pretty good general idea of what fungible and non-fungible tokens are and what they are used for. But things have been further complicated with the more recent emergence of another Ethereum token standard – ERC-1155. Described as a ‘multi-token standard’, ERC-1155 seems to be aimed at combining some distinct characteristics of the two earlier standards. So what exactly is a multi-token standard and who’s winning the ERC-721 vs ERC-1155 race? Is there even such a race? In this article we’re looking to answer all these questions and more. But first, let’s start from the beginning.
What is a token standard?
The early days of blockchain were characterized by a relatively small number of crypto currencies, which was not surprising because the main method for creating new protocols and crypto assets was to copy and modify the Bitcoin codebase – not the easiest of tasks. All this changed with the arrival of Ethereum for one simple reason – the Ethereum Virtual Machine and smart contracts. Suddenly, developers received the means to write logic and execute operations on a blockchain. One such operation was minting new tokens. In that sense, the analogy with vending machines that’s commonly used to describe smart contracts is particularly apt – for example, you can ‘slot’ some ETH into a token smart contract and, in return, receive a set amount of newly mined tokens.
While smart contracts introduced a way for creating new crypto assets, they alone could not make the process entirely straightforward. After all, developers would still need to write the logic that informed the different functionalities and properties of a given token, as well as its ability to interact with the Ethereum blockchain. In addition, there was also a need for common principles that token minting contracts would follow to ensure interoperability between different Ethereum-based tokens. All this provided ample motivation for the creation of true unified and commonly accepted token standards.
In essence, token standards are token interfaces that instruct how a smart contract should be written and structured in order to produce a token with certain properties and functionalities.
The first Ethereum token standard, ERC-20, covered the creation of fungible, or interchangeable, tokens. Following the introduction of standard we saw a boom of so called initial coin offerings (ICOs), a controversial fundraising scheme that saw blockchain projects selling newly minted tokens in exchange for ETH or other crypto assets. The ICO boom led to an influx of new tokens and, in fact, the majority of crypto assets that we see on the market today were created during that time.
The success of ERC-20 proved the value of token standards and paved the way for new standards. And this brings us to the ERC-721 vs ERC-1155 discussion.
ERC-721 vs ERC-1155
Fungible tokens have found various applications in DeFi and for online payments, but they have limitations in other respects. For example, ERC-20 tokens cannot represent unique digital assets on a blockchain. This is where NFTs come in.
Curiously, the ERC-721 standard wasn’t responsible for the birth of NFTs. In fact, the standard was inspired by what is arguably the most influential NFT project ever – CryptoPunks. The creation and subsequent success of CryptoPunks showed us a new vision for digital art and collectibles underpinned by blockchain technology. Naturally, this led to the creation of a token standard aimed at streamlining NFT development.
The ERC-721 standard outlines a set of methods and events that enable certain functionalities like token transfers and getting token balance, among others. A smart contract that implements ERC-721 methods and events can be considered an ERC-721 NFT contract.
Under ERC-721, each NFT also has a numerical identifier (uint256) called TokenID. Each contract address-TokenID pair must be unique. This practically ensures that NFTs remain unique even if they come from the same smart contract. It’s also how NFT collections can be created – the entire collection comes from a single ERC-721 contract, with each item having its own TokenID.
ERC-1155 is considered a multi-token standard and for a good reason. Its goal is to create an interface capable of managing any number of token types, be it fungible or non-fungible. This is in sharp contrast with ERC-20, where each token type requires its own smart contract, and ERC-721, where the smart contract manages a single NFT collection.
To achieve this, ERC-1155 makes use of TokenID, just like ERC-721, but there is one key difference. In ERC-1155 contracts each unique identifier represents a configurable token type that can have its own attributes, like supply, metadata and so on. If the supply is set at one, that token is treated as an NFT.
In addition to these and other familiar features and functionalities like token transfers and getting the balance of an account, EIP-1155 comes with a number of interesting features aimed at addressing some of the limitations of ERC-20 and ERC-721.
Let’s take a look at some of the most interesting features supported in the standard:
Batch transfers: As the name suggests, this allows for multiple assets to be transferred in a single call. The feature is enabled by the safeBatchTransferFrom function, which is similar to the standard ERC-20 TransferFrom function, but instead of a single value and id, here we pass an array of values and an array of corresponding ids, which is exactly what allows us to transfer multiple crypto assets in a single call.
Unlike in the ERC-20, in ERC-1155 we do not have a transfer function. However, the transferFrom equivalent can be tweaked to function as a transfer function.
Batch balance: This feature gets the balance of multiple assets in a single call. It is triggered by the balanceofBatch function, which resembles ERC-20’s balanceof function, but similarly to how the safeBatchTransferFrom function works, we pass an array of token owners and an array of token ids.
Batch approval: Enabled by the setApprovalForAll function, batch approval is a feature designed with simplicity in mind. It means that in ERC-1155, it is only possible to approve everything – or nothing at all – for a given address.
ERC-721 vs ERC-1155: use cases
ERC-721 NFTs have certainly become an important part of the Web3 ecosystem and have introduced users to a new way of owning and managing digital assets. On these pages, we’ve talked at length about the various applications of NFTs, so we won’t be having another extensive overview of the topic in this article too. Still, here’s a brief refresher.
NFTs have been used to facilitate ownership and exchange of digital art, collectibles and other digital assets. They’re also being utilized to power a new wave of loyalty programs and user engagement initiatives, as NFTs can be programmed to provide certain perks and rewards to their holders. NFTs have also been an integral part of Web3 gaming and are at the heart of promising Metaverse projects like Decentraland and The Sandbox.
Because of its somewhat hybrid approach, the ERC-1155 standard is an interesting case, indeed. It can be used effectively for creating NFTs, similarly to ERC-721. But the rationale behind this hybrid approach gives us a pretty good hint about what some of main use cases for ERC-1155 tokens.
The driving force behind the creation of the standard was Enjin, a platform for creation of digital assets with a particular focus on Web3 gaming. Enjin’s primary goal was to create the perfect standard for generating Ethereum-based in-game items. A standard capable of handling a wide range of in-game items, from utility items, through caracter skins and other cosmetic items, to in-game currencies.
So while ERC-1155 can be used for a variety of purposes and as a viable alternative to either ERC-20 or ERC-721, it was specifically designed with the Web3 gaming space in mind. Naturally, it’s where it shines the brightest.
This is why any ERC-721 vs ERC-1155 debate is particularly misplaced. Instead of focusing on which the superior standard is, we need to recognize that each standard has been designed with specific goals in mind. There is a reason why ERC-721 tokens gained such traction in the Web3 space and became an important part of Web3 gaming. That said, ERC-1155 introduces many features that are specifically designed to make it easier for Web3 game devs to create tokens.
A closer look at the history of Ethereum token standards reveals that a new standard typically reflects our deepening understanding of the underlying technology. This is hardly surprising, given that a token standard is, in essence, a set a guidelines designed to help us utilize the power of Ethereum to accommodate specific use cases. The ERC-20 standard gave us a much needed way for creation of fungible tokens and practically made the DeFi movement possible. The ERC-721 sparked a digital art boom and created new markets for digital assets. And perhaps ERC-1155 will be a similar boon to the Web3 gaming space and will help developers across the industry to create better and more compelling products.