ERC-1155

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

  1. Approval surfacesetApprovalForAll grants 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.
  2. 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.
  3. 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.
  4. 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

  1. Radomski, W. et al. (2018/2019). EIP-1155: Multi Token Standard. Ethereum Improvement Proposals, GitHub.
  1. Wang, Q. et al. (2021). “Non-Fungible Token (NFT): Overview, Evaluation, Opportunities, and Challenges.” arXiv:2105.07447.
  1. Enjin (2018). Enjin Whitepaper: The Blockchain Ecosystem for Gaming. Enjin.com.
  1. Ante, L. (2022). “The Non-Fungible Token (NFT) Market and Its Relationship with Bitcoin and Ethereum.” FinTech, 1(3), 216–224.