ERC-1155 is the Ethereum token standard that lets a single smart contract handle multiple token types simultaneously — fungible, non-fungible, and semi-fungible — within one deployment. Proposed by Witek Radomski, Andrew Cooke, Philippe Castonguay, James Therien, Eric Binet, and Ronan Sandford in June 2018 (finalized in 2019 as EIP-1155), the standard emerged from the gaming industry’s need to manage thousands of distinct in-game assets — weapons, currencies, skins, and collectibles — without deploying a separate contract for every item. The ERC-20 standard handles fungible tokens; ERC-721 handles one-of-a-kind NFTs; ERC-1155 handles both in the same contract, with significant gas savings from batch operations.
How It Works
An ERC-1155 contract maps every token to a unique token ID (a uint256). The total supply behind each token ID determines whether it’s fungible, non-fungible, or semi-fungible:
- Fungible → Token ID with supply > 1 and all units identical (e.g., 10,000 units of in-game gold)
- Non-Fungible → Token ID with supply of exactly 1 (equivalent to ERC-721 behavior)
- Semi-Fungible → Token ID with supply > 1 but finite and limited (e.g., 100 “First Edition” sword NFTs — all identical within the edition, but scarce)
Core interface functions:
“`
balanceOf(account, id) → Balance of a specific token ID for an address
balanceOfBatch(accounts[], ids[]) → Batch balance lookup (multiple owners × multiple IDs)
safeTransferFrom(from, to, id, amount, data) → Transfer amount of token ID
safeBatchTransferFrom(from, to, ids[], amounts[], data) → Batch transfer (multiple IDs in one tx)
setApprovalForAll(operator, approved) → Approve all tokens to an operator
isApprovedForAll(owner, operator) → Check operator approval
“`
Events:
“`
TransferSingle(operator, from, to, id, value)
TransferBatch(operator, from, to, ids[], values[])
ApprovalForAll(account, operator, approved)
URI(value, id)
“`
The gas efficiency gain is substantial: an ERC-721 airdrop of 100 NFTs to 100 users requires 100 separate transactions. An ERC-1155 safeBatchTransferFrom can move multiple token IDs to one recipient, or the contract can iterate a batch mint in a single call — one of the most-cited advantages for gaming and collectible platforms.
Semi-Fungible Tokens and the “Edition” Model
ERC-1155 popularized the edition model: a token ID with a supply of, say, 500 represents 500 identical copies of the same item. Each of the 500 holders owns a unit indistinct from any other — they’re fungible within the edition — but the edition itself is scarce relative to the total supply. This maps naturally to:
- Numbered edition prints in digital art
- Event tickets (100 VIP seats, 2,000 general admission — different IDs, different supplies)
- Gaming consumables like potions (thousands of units, interchangeable)
- Physical-backed tokens proving ownership of a specific batch of goods
Marketplaces like OpenSea support ERC-1155 collections, but UX historically defaulted to ERC-721 for high-value 1-of-1 NFT drops because “100 copies of the same item” feels less exclusive to collectors.
ERC-1155 vs. ERC-721
| Feature | ERC-721 | ERC-1155 |
|---|---|---|
| Token types per contract | One (NFT only) | Unlimited |
| Batch transfers | No (one per tx) | Yes (many IDs at once) |
| Semi-fungible tokens | No | Yes |
| Gas cost (large drop) | High | Significantly lower |
| Metadata per token ID | Per tokenId | Per id (shared if same ID) |
| Separate fungible token | Needs ERC-20 contract | Same contract |
| OpenSea support | Full | Full |
History
- 2018, June — Witek Radomski (Enjin) drafts EIP-1155 on GitHub, motivated by Enjin’s need to manage thousands of distinct gaming assets in one contract.
- 2018 — Enjin Coin ecosystem begins testing ERC-1155 for its “Multiverse” gaming items — weapons and armor usable across multiple partner games.
- 2019, June — EIP-1155 finalized as an Ethereum Improvement Proposal after audit and community review.
- 2021 — OpenSea adds full ERC-1155 support, enabling fractional editions on its platform.
- 2021–2022 — Gaming NFT boom drives ERC-1155 adoption through Axie Infinity, Gods Unchained, and Sandbox — all use ERC-1155 for in-game assets.
- 2022 — ERC-2981 royalty extension becomes a common pairing with ERC-1155 to handle creator royalties on multi-edition drops.
Common Misconceptions
“ERC-1155 tokens can’t be true NFTs because they have multiple copies.”
A token ID with a supply of exactly 1 is functionally equivalent to an ERC-721 — it has a unique holder and is non-fungible. The standard doesn’t prohibit 1-of-1s; it simply doesn’t enforce them. A creator can choose supply = 1 per ID for genuine uniqueness.
“ERC-1155 replaced ERC-721.”
The standards coexist. High-value 1-of-1 art drops and blue-chip collections (CryptoPunks, BAYC) remain ERC-721. ERC-1155 dominates gaming and multi-edition use cases where batch efficiency matters. NFT platforms support both.
“Batch transfers mean lower fees for buyers.”
Batch transfers are efficient when one sender moves many items to one recipient. A buyer purchasing a single NFT on a secondary marketplace pays similar gas either way; ERC-1155 batch savings mainly benefit platforms doing bulk mints or game item distributions.
Criticisms
- Approval surface —
setApprovalForAllgrants an operator access to every token ID in the contract, not just one. Users approving a marketplace grant access to their entire ERC-1155 holdings in that contract, which has led to phishing exploits. - Collector perception — The edition model can feel less premium than ERC-721 for high-value art. “100 copies” reduces perceived scarcity even if each unit is legitimately distinct in meaning.
- Metadata limitation — All tokens sharing an ID share the same metadata URI (only the ID changes). Creating fully unique metadata per token within a large ERC-1155 contract is possible but requires URI templating that adds complexity.
- Less ecosystem tooling for pure NFT use — Rarity tools, portfolio trackers, and wallet display logic were originally built for ERC-721; ERC-1155 support was retrofitted and sometimes shows edge case issues.
Social Media Sentiment
On r/ethereum and r/ethdev, ERC-1155 discussions are typically technical — gas benchmarks, contract architecture for gaming projects, and debates on approval security. Developer communities broadly view ERC-1155 as the correct choice for gaming and edition-based drops.
NFT collector Twitter/X is divided: indie artists appreciate the lower gas cost of minting editions on ERC-1155, but high-end collectors equate “multiple copies” with lower status — CryptoPunks’ ERC-721 rarity is a badge of honor. The debate flares every major bull cycle.
Gaming Discord servers are nearly unanimously pro-ERC-1155 for in-game assets — managing 200 different item types in one contract rather than 200 contracts is an obvious practical win for game developers.
Last updated: 2026-04
Related Terms
Sources
- Radomski, W. et al. (2018/2019). EIP-1155: Multi Token Standard. Ethereum Improvement Proposals, GitHub.
- Wang, Q. et al. (2021). “Non-Fungible Token (NFT): Overview, Evaluation, Opportunities, and Challenges.” arXiv:2105.07447.
- Enjin (2018). Enjin Whitepaper: The Blockchain Ecosystem for Gaming. Enjin.com.
- Ante, L. (2022). “The Non-Fungible Token (NFT) Market and Its Relationship with Bitcoin and Ethereum.” FinTech, 1(3), 216–224.