What is the difference between the three main types of smart contracts used for tokens?
In this article, we'll give you a general overview of the three different token standards, and some of the main differences between them.
The three token standards
You may have heard of three different token standards on EVM-compatible blockchains: ERC-20, ERC-721, and ERC-1155.
ERC-20 contracts always create fungible tokens. "Fungible" means all the tokens created by a single contract will be indistinguishable from each other. You might know fungible tokens by their more common name: cryptocurrency.
ERC-721 contracts create non-fungible tokens, also known as NFTs. "Non-fungible" means each token is distinguishable from one-another. This can mean anything from them being fully unique, to having an NFT where there are several numbered instances of a single piece of art.
ERC-1155 contracts create tokens that can be considered semi-fungible, although they will almost always still be referred to as NFTs. Some of the places where we're seeing ERC-1155 contracts used a lot these days include tickets or passes for events, or game items - instances where the tokens wouldn't be considered currencies, but also don't have any need to be fully unique.
If you really wanted, you could use any of these three standards to mint any sort of token you'd like - fungible, non-fungible, or semi-fungible. But just because you can do something doesn't mean you should, so let's dig a little deeper into the differences between the three.
ERC-20 is fairly straightforward, and probably the standard you're least likely to use for a smart contract if you're involved with NFTs.
This token standard is pretty much used just for crypto coins and currency, since that's what it's intended for.
If you wanted, you could create an ERC-20 smart contract that mints a single token, in which case it would technically be considered non-fungible. But ERC-20 does not include any way to add the metadata needed for more complex NFTs, and it cannot be listed on secondary markets such as OpenSeas, so it's not a feasible way to create art-based NFTs.
ERC-20 is also unique in the fact that you're able to transfer or own partial tokens. If you've ever done anything on a blockchain, then there's a good chance that you've bought something like 0.3 of a ETH, or had to pay 0.007 ETH as gas prices. When transferring tokens minted using the other two standards (ERC-721 or ERC-1155), it's not possible to transfer a partial token (it would get pretty confusing real fast if multiple people all owned parts of the same Bored Ape!)
ERC-721 and ERC-1155
When it comes to the non-fungible token standards (ERC-721 and ERC-1155), the two standards have a lot of overlap. So how do you decide which smart contract you should use for your NFTs?
If there's only a single, 100% unique instance of the item? There's a good chance you'll choose to use ERC-721.
If there's 100 of the same item? ERC-1155 might be a better choice.
But realistically, it's not so clear-cut. In some instances, you may want to use ERC-721 for mass-produced tokens, just as there may be some places where it's better to use ERC-1155 for a unique item. Ultimately it comes down to what is the best choice for your specific use case, so let's get into one of the main differences between the two so you can make the right decision for yourself.
ERC-1155 tokens are stackable. ERC-721 tokens are not.
When you mint tokens from an ERC-721 smart contract, each token always gets a unique ID on the blockchain.
Tokens minted from an ERC-1155 contract, on the other hand, can all have the same ID.
Generally on secondary marketplaces such as OpenSea, each unique token ID gets its own listing. So ERC-721 tokens will each get their own listing, whereas ERC-1155 tokens can be stacked - whether you mint one or 100 from a single contract, if they all have the same ID, then they will all be listed together.
The Stampu collection is a good example of stacked ERC-1155 tokens - each stamp is only listed once, but there are dozens of each stamp available for sale.
(There are a lot of other differences, such as whether or not tokens are trackable, how metadata is managed, batching and efficiency, etc., but this article is focusing mainly on the differences in token types. If you're interested in hearing more about any of this, or have any other questions about smart contracts or NFTs, leave a comment below!)
The choices are yours and yours alone
Way back in the day (in the distant past of 2021), a lot of services supported ERC-721 but not ERC-1155, which meant ERC-721 ended up being the default choice for most developers. ERC-721 is also older, so it's had the advantage of being established for longer.
These days, many services support ERC-1155 as well (for example, EtherScan added support in the second half of 2021), so this is becoming a more popular option for semi-fungible-type tokens, especially in gaming contexts.
What have we learned?
ERC-20 contracts create coins.
ERC-721 tokens are unique.
ERC-1155 tokens are stackable.
There's much more to dive into in the world of blockchains and NFTs, so keep up with us on the @NFToyz Twitter so you don't miss a single insight!
Join the newsletter to receive the latest updates in your inbox.