0%
HomeBlogNFTs
Your Guide to ERC-1155: Comparing ERC-721 to ERC-1155

Your Guide to ERC-1155: Comparing ERC-721 to ERC-1155

Author: Alchemy Team

Reviewed by Brady Werkheiser


Published on November 17, 20215 min read

The arrival of new applications on Ethereum has led to development teams designing new kinds of token standards. In its early years, the ERC-20 token standard, which defines how a traditional token such as DAI or UNI functions, dominated the market. This approach to crypto treats all assets as completely interchangeable (known as fungibility), functioning conceptually like a currency such as USD.

However, in the past 18 months NFTs have captured the market’s attention, which rely on a newer standard termed ERC-721. This standard allows for the creation of one-off, custom tokens: for instance, a collectible trading card, or personal avatar that is totally unique and can’t be replicated.

Lately, attention in the crypto market has been moving towards another standard, which has a newly revised set of properties — the ERC-1155 token standard. This debate of ERC-721 vs. ERC-1155 can perplex teams, and it’s worth knowing when to employ each. Though ERC-1155 is a newer standard and has some technical benefits that may give it an edge in the future, it’s not a strict upgrade and differs in certain ways.

Why has this choice between the two token standards become such a pain point? After all, many NFT projects today continue to use the ERC-721 standard.

Ethereum’s ecosystem initially had little need for a new token standard. After all, most were eager to use the highly praised smart contract feature, which set Ethereum apart in the early days. Creating a blockchain network with an accompanying ERC-20 token was comparatively easy and resulted in the birth of numerous new projects, such as Crypto.com and Circle’s USDC.

But the Ethereum ecosystem experienced a seismic shift when developers saw the potential for other use cases with its smart contract feature. Unlike fungible tokens which are fully interchangeable and function similar to a dollar bill, non-fungible tokens that uniquely identified each token allowed for a swathe of new applications. 

Both token standards have their applications, and it’s worth knowing their unique properties to help decide which to implement in your project.

The ERC-721 token standard kicked off the NFT craze. It was the first of its kind, and consequently, the most popular standard for creating these unique tokens. NFTs have a long history, but along with the ERC-721 token standard, they only truly came to the forefront with the CryptoKitties project

Dapper Labs, the company behind CryptoKitties, introduced ERC-721 via an Ethereum Improvement Proposal (EIP) in 2017. CryptoKitties are a set of collectible, randomly generated kittens that can be individually traded, similar to Tamagotchis or Pokemon. Each CryptoKitty is 100% unique - they can’t be replicated, and they have a transaction history letting the public know exactly who has owned the kitty over its entire lifespan.

A limited edition CryptoKitty partnering with Operation Jairo to fund sea turtle conservation.
A limited edition CryptoKitty partnering with Operation Jairo to fund sea turtle conservation.

In addition to being completely, unique, here are some of the additional feature specifications of ERC-721: 

  • It allows you to transfer NFTs between accounts, allowing NFTs to be traded for other currencies.

  • It allows you to identify the total supply of a set of NFTs on the network.

  • It allows you to query for the owners of a specific asset.

Just four years later, NFTs based on ERC-721 have taken over the crypto ecosystem. Projects range from blockchain ownership of original copies of digital art sellings in the tens of millions, to unique avatars that have become a public membership into an exclusive club, to fractional ownership of private land

The ERC-1155 token standard was developed by the team behind the Enjin project, which focuses on blockchain-based solutions for games. Enjin introduced the token standard in 2019, and it is a middle ground between the ERC-20 standard and the ERC-721 standard.

Enjin identified a number of challenges associated with the comparatively limited ERC-721 standard — in particular, the inability to conduct batch transfers. 

With ERC-721 standard, if one were to transfer multiple NFTs, each NFT would require a single transaction — because each NFT is represented by a single smart contract. This results in exorbitantly high transaction costs when minting or trading individual NFTs. The ERC-1155 allows batch transfers — multiple assets on a single smart contract — that result in all tokens being transferred at once with, leading to a less congested network and consequently lower gas costs. For example, when a user wants to sell a thousand items in a game to another user, he or she can use the batch token transfer of ERC-1155 to send them all in one go 💸. 

Another major feature of this multi-token standard is it supports both fungible and non-fungible tokens — because of its ability to support multiple states — on the same address and contract. In practical terms, this means you can make in-game payments using a fungible token on that address and simultaneously transfer unique NFT assets as well.

An additional feature of ERC-1155 is that it supports the creation of semi-fungible tokens. SFTs trade as fungible tokens, but once redeemed, they convert into NFTs. For example, a ticket to a concert prior to the event may be considered a fungible asset - any ticket will give you identical GA entry into the concert. However, after the concert, the ticket loses its tradeable value and becomes a unique item of memorabilia. SFTs enable that type of functionality directly into the code of the ticket itself. 

Lastly, token transfers on this standard can be reverted in the event of a mistake. On the ERC-721 standard, you can’t reclaim assets if they are sent to the wrong address. However, ERC-1155 contains a function that addresses this. The safe transfer function and a number of other rules are in place to prevent exploitation.

A piece of artwork by Beeple - a prominent NFT artist.
A piece of artwork by Beeple - a prominent NFT artist.

The ERC-1155 token standard could see much more prominent use than the ERC-721 token standard in the near future, thanks to its additional features. Both allow you to be able to mint new NFTs, but there are some key differences: 

  • ERC-1155 permits the creation of both semi-fungible tokens and non-fungible tokens, whereas ERC-721 permits only the latter.

  • In ERC-1155, smart contracts are linked to multiple URIs and do not store additional metadata (such as file names). In comparison, ERC-721 only supports static metadata stored directly on the smart contract for each token ID, increasing deployment costs and limiting flexibility.

  • ERC-1155’s smart contracts support an infinite number of tokens, whereas ERC-721 needs a new smart contract for each type of token.

  • ERC-1155 also allows batch transfers of tokens, which can reduce transaction costs and times. With ERC-721, if you want to send multiple tokens, they happen individually.

If you’re looking for additional resources towards learning about NFTs or building your own, we’ve got you covered! At Alchemy, one of our primary goals is to help educate blockchain developers on the tooling available in the space, and to provide resources to help you become a better developer. Here’s a few tutorials that might help you get started minting your own NFTs: 

Additionally, we’ve just released an NFT API that will help you fetch this metadata without relying on the limited toolset available to you via web3.js or ethers.js! Sign up for the waitlist below.

And finally, we're always available to help 24/7 on our Alchemy Discord. Stop by and say hi - we'd love to help you on your journey to becoming a full-fledged blockchain developer!

Desktop section background image

Build blockchain magic

Alchemy combines the most powerful web3 developer products and tools with resources, community and legendary support.

Get your API key