Let’s cut to the chase… There’s a new Ethereum Standard Proposal around the corner that could change the face of Ethereum Smart Contracts forever.
In this blog post I’ll give a primer on Ethereum and its smart contracts (and tokens), the current standards that are in place and what the new standard proposal by Witek Radomski is and how it will change Ethereum forever.
Before moving on to more advanced topics, I would like to get the basics and a few terminologies out of the way, in order for everyone to be able to follow this post.
ERC-20 is a standard interface for tokens which was proposed by Vitalik Buterin and Fabian Vogelsteller in November, 2015. This standard “allows any tokens on Ethereum to be re-used by other applications: from wallets to decentralized exchanges.”
In order for a token to be ERC-20 compliant and allow seamless interaction with other smart contracts and decentralized applications (dApps), they need to support the following functionality:
ERC-20 is geared towards representing Fungible Tokens. A fungible token is not unique and is interchangeable with another identical token. The importance of fungibility will come into play later in the post.
An example of an ERC-20 token is the Enjin Coin (ENJ). For gamers, it is a common currency between multiple ENJ-implemented games. It will also provide portability and transferability of virtual goods and digital assets. You can find more information about ENJ, in one of my previous blog posts, here.
ERC-721 is standard interface for Non-Fungible Tokens (NFT) and was proposed by Dieter Shirley in September, 2017. The proposal was accepted as an official ERC-721 interface in March, 2018.
NFTs are unique in nature and each can be uniquely identified from each other. They can represent ownership over digital or physical assets. NFTs can represent a diverse universe of assets, including:
In general, all houses are distinct and no two kittens are alike. NFTs are distinguishable and you must track the ownership of each one separately.
The motivation behind ERC-721 was the fact that ERC-20 is insufficient for tracking NFTs because each asset is distinct (non-fungible) whereas each of a quantity of tokens is identical (fungible).
An existing example of such ERC-721 NFT are the ‘Kitties’ in the hugely popular CryptoKitties game. Each CryptoKitty is unique in nature and uniquely identified. No two CryptoKitties can ever be the same.
ERC-1155 is a standard interface for multiple item/token definitions in a single deployed contract proposed by Witek Radomski (Enjin Co-Founder & CTO) in June 2018. Witek created the code for the first non-fungible token in June 2017, which inspired the creation of ERC-721.
The main motivation behind the ERC-1155 proposal, was the fact that ERC-20 and ERC-721 require a separate contract to be deployed for each fungible or NFT token/collection. As you can imagine, this is highly inefficient and “limits certain functionality by the nature of separating each token contract into its own permissioned address”.
The ERC-1155 proposal comes with a host of advantages over ERC-20 and ERC-721, including:
Figure A
Figure B
Figure C
As an ode to the Enjin team (and their CTO who proposed ERC-1155) I will be using games to present an example. Games have become highly sophisticated… Characters have different skins, can load different weapons, use different potions, etc.
I will be using World of Warcraft as a case study and put points across as if it were to launch on the Ethereum blockchain. At the time of writing, World of Warcraft has a mind-boggling 109,429 items! Some of these items are uniquely identifiable and some are not. For example, a Chromatic Sword is uniquely identifiable (with a limited number in existence) whereas an Ancient Healing Potion is not. Taking current standards, each Chromatic Sword would need to be represented using an ERC-721 token and an Ancient Healing Potion would be represented with an ERC-20 token.
Unfortunately, these two token types don’t play very well together. Additionally, the ERC-721 standard would require each and every one of the non-fungible items, to have a separate contract. More often than not, the code powering these items would look almost identical with some minor alterations, however, the current standards don’t cater for code re-use. In essence, these would need to be individually stored on the blockchain, polluting it with duplicate code. For example, if 100 Chromatic Swords existed, each and every one of them would require a separate ERC-721 token.
With ERC-1155 you can have the best of both worlds; a Fungibility Singularity (I’ll take credit for this catchphrase). Depending on the game mechanics, you could create thousands of different item types; some of them being uniquely identifiable whilst others being fungible. You could represent unique Chromatic Swords and fungible Ancient Healing Potions with the same standard.
Going a step further, ERC-1155 could treat NFTs in a group, thus retaining some fungibility. For example, you would be able to tell that your token is a Chromatic Sword with a unique identifier of it being the first that was ever created.
Finally, trading between two parties can now contain a basket of fungible and non-fungible items. For example, Alice could trade her Chromatic Sword and 10 Ancient Healing Potions for Bob’s Poseidus and 5 Astral Mana Potions, in a single transaction.
To conclude, I firmly believe the ERC-1155 proposal is a step in the right direction. ERC-20 and ERC-721 have served the Ethereum network well, however, ERC-1155 will take us to a whole new level giving the ability to developers to represent their fungible and non-fungible tokens under a single standard whilst also making transactions cheaper and lighter.
You can also show your support by donating to the following address:ETH/ENJ: 0x4c7195E074cf0Ab6F77Bdb7C97Fd2567066Bb712
Disclaimer: All information and data on this blog post is for informational purposes only. My opinions are my own. I do not provide personal investment advice and I am not a qualified licensed investment advisor. I make no representations as to the accuracy, completeness, suitability, or validity, of any information. I will not be liable for any errors, omissions, or any losses, or damages arising from its display or use. All information is provided as is with no warranties and confers no rights.