ERC-1155: The U...
ERC-1155: The Ultimate Guide to Token Standards
Everything that happens on Ethereum, at the most fundamental level, is represented by data. Whether you swap ETH for USDC on Uniswap or buy a CryptoPunk on OpenSea, everything included in the transaction—your wallet address, fungible tokens, non-fungible tokens, decentralized applications, etc.—is broken down into smaller, computer-readable chunks of data.
For a transaction to be considered legitimate, its data must be shared across the network, validated, and processed by computers that then store the transaction data in a block. A transaction's size and complexity determines the cost and time required to process it.
In the same way that not all transactions are created equal, not all tokens on Ethereum are created equal. Some tokens are generic and easily interchangeable (for example, UNI, COMP and GRT) while others are unique (for example, non-fungible tokens or NFTs). As such, different token standards exist to address different use cases.
This article discusses ERC-1155, a flexible Ethereum token standard that allows for the transfer of multiple types of tokens at once.
All updates to Ethereum go through the Ethereum Improvement Proposal (EIP) process. Anyone from the community can submit a proposal. If it meets certain standards, it becomes an EIP which is then discussed and voted on. If the proposal passes, Ethereum will be updated with its improvements.
"ERC" stands for Ethereum Request for Comments. It is a type of EIP focused on standards for Ethereum applications, a category that includes tokens.
Tokens are transferable units of value. Colloquially they are referred to as cryptocurrencies or (technically incorrectly) coins. Tokens generally fall into one of two buckets: fungible or non-fungible. Fungible tokens are mutually interchangeable, like dollar bills or pesos. Non-fungible tokens are unique and noninterchangeable, like a painting or book.
Prior to ERC-1155, the two predominant token standards were ERC-20 for fungible tokens and ERC-721 for non-fungible tokens. They could not (and cannot) be wrapped into the same smart contract. This limitation meant that if someone wanted to transfer, say, USDC (ERC-20) and a CryptoKitties NFT (ERC-721), they would need to execute multiple transactions, which was inefficient and expensive.
ERC-1155 solves for this by combining the two token standards. ERC-1155 is a token standard that enables the efficient transfer of fungible and non-fungible tokens in a single transaction. Witek Radomski, Andrew Cooke, Philippe Castonguay, James Therien, Eric Binet, and Ronan Sandford proposed the new standard in June 2018 with EIP-1155.
The initial motivation behind ERC-1155 was to address challenges faced by blockchain game developers and players. There are plenty of examples of ERC-1155 being used outside of gaming. However, gaming is a great reference use case for understanding how ERC-1155 works.
Massively multiplayer online games (MMOs) contain tens of thousands of items—armor, weapons, shields, skins, coins, badges, castles, etc—that players can collect and trade with one another. Some items like coins are fungible while others like a sword are non-fungible. On the blockchain, each one of these items is a token.
Prior to ERC-1155, each item required its own smart contract. In a game with 100,000 items that means 100,000 smart contracts! As ERC-1155 developer Witek Radomski pointed out, that's like needing a different phone for each app you use. It creates lots of unnecessary redundancy and is an inefficient use of space and money.
With an ERC-1155 token, multiple items can be stored in a single smart contract and any number of items can be sent in a single transaction to one or more recipients. This means if you wanted to send a sword to one friend, a shield to another, and 100 gold coins to both, you could do so in only one transaction.
As well as allowing for the transfer of multiple token types at once, and the attendant gains in efficiency and lower transaction costs, ERC-1155 has a number of other special characteristics:
The initiation of ERC-1155 aimed to bridge the two realms into a single contract, conquering the constraints of its predecessors - ERC-20 and ERC-721 tokens, and optimizing their administration. It mitigates the prevalent token fragmentation by allowing a unified contract to regulate both token types.
Thus, DApp developers employing ERC-1155 can enable users to enlist fungible (payment currencies) and non-fungible tokens (DApp’s in-game collectibles, tradeable items) via a singular contract and address, refining DApp and relevant smart contract logic. It ensures a resource-efficient approach, indispensable in blockchains like Ethereum with its confined resources.
Some highlighted benefits include:
Bulk transfers as a default
The capability for native bulk transfers is embedded within ERC-1155, allowing for concurrent transfers of NFT or fungible tokens, or both, in a solitary operation, ensuring economic transaction costs and lessening network impact while facilitating a trading system (escrow/atomic swap) with these tokens with heightened ease.
Concurrent management of multiple tokens
Moreover, an ERC-1155 can represent and manage numerous tokens concurrently. This means it can generate one or multiple fungible (like ERC-20) and non-fungible tokens (like ERC-721) within one contract, simplifying its deployment and coding.
Incorporated token-type identification
Another feature within the ERC-1155 token is the incorporation of ERC-165 functionality (the Standard Detection Interface), enabling the ERC-1155 token to discern the token's interface and modify its behavior accordingly, crucial due to its multi-token nature, and simplifying application development.
Robust token transfer security
One of the most notable features of the ERC-1155 token is the secure token transfer. This ensures that the transaction has been executed, and if not, it reverts, returning control of the tokens to its issuer. Especially handy when a transcription or address copy error occurs, the transfer is nullified, and the issuer retrieves the tokens, enabling verification of the address and a second attempt at the operation. To prevent double-spending attacks, certain rules are laid out to secure it against such attacks and additional pitfalls.
Enjin, a well-known game producer noted for creating Minecraft, stands out as one of the few platforms actively utilizing ERC-1155 tokens. Being one of the standard’s creators, Enjin has notably invested in endorsing this new standard. Through Enjin Coin (an ERC-20 token), attached to various smart contracts that game developers dispatch to ENJ to generate new, unique fungible or non-fungible ERC-1155 tokens, Enjin has showcased the potency of this new token.
Tokens can be traded on the Enjin Marketplace or swapped for your ENJ anytime. The minting of more custom tokens withdraws more ENJ from the ecosystem, increasing its scarcity. The functionality and technical superiority of ERC-1155 over ERC-20 and ERC-721 underlines its gradually expanding reach and application.
Despite being available for four years, ERC-1155’s utilization lags behind its ERC-20 and ERC-721 counterparts. This might seem unexpected considering its versatility. It's plausible that existing non-ERC-1155 projects might migrate to the new standard to broaden their functionality. ERC-1155 is likely to persist as a choice in blockchain games developed on Ethereum. The emergence of play-to-earn games might hasten this adoption.
Q: What does ERC-1155 mean?
A: ERC-1155 is a multi-token standard on the Ethereum blockchain that enables a single contract to manage both fungible and non-fungible tokens, optimizing resource use and management efficiency.
Q: What is the main difference between ERC-721 and ERC-1155?
A: The primary distinction is that ERC-1155 allows a single contract to manage multiple fungible and non-fungible tokens, whereas ERC-721 requires a separate contract for each non-fungible token type.
Q: Is ERC-1155 safe?
A: Yes, ERC-1155 includes secure token transfer functionality, ensuring that transactions are executed correctly, and if not, the tokens are reverted to the issuer.
Q: Which wallet is ERC-1155?
A: ERC-1155 tokens can be stored in various Ethereum wallets that support this standard, such as MetaMask, Trust Wallet, and Enjin Wallet.
Q: How does ERC-1155 differ from other Ethereum token standards like ERC-20 and ERC-721?
A: Unlike ERC-20 and ERC-721, ERC-1155 enables the management of both fungible and non-fungible tokens within a single contract, streamlining management and deployment, and reducing resource consumption on the Ethereum network.
Q: What is the purpose of ERC-1155 tokens in the Ethereum ecosystem?
A: ERC-1155 tokens aim to efficiently manage and facilitate the transaction of both fungible and non-fungible tokens under a single smart contract in the Ethereum ecosystem.
Q: Can ERC-1155 tokens represent multiple assets within a single contract?
A: Yes, ERC-1155 can manage multiple fungible and non-fungible tokens within a single contract.
Q: What are the advantages of using ERC-1155 tokens for managing assets?
A: Advantages include efficient bulk transfers, concurrent multiple token management, integrated token type identification, and secure token transfers.
Q: How do you create and manage ERC-1155 tokens?
A: ERC-1155 tokens are created and managed using smart contracts on the Ethereum blockchain, which specify the rules for generating and handling these tokens.
Q: Are there any notable projects or platforms that have adopted ERC-1155 tokens?
A: Yes, Enjin, a prominent gaming platform, has actively adopted and promoted the use of ERC-1155 tokens in its blockchain-based games and marketplace.
Q: What is the role of ERC-1155 in the gaming and digital collectibles industries?
A: ERC-1155 plays a pivotal role in gaming and digital collectibles by enabling the creation, management, and transfer of both fungible and non-fungible tokens under a single contract, facilitating in-game transactions and collectible trading.
Join Stader’s newsletter
Get the latest updates, new DeFi strategies and exclusive offers right in your email box