What is ERC-1155?
ERC-1155 is an Ethereum multi-token standard that lets one contract hold many token types, both fungible and unique, and move several in one transaction.
ERC-1155 is a token standard on Ethereum that lets one smart contract manage many different tokens at once. Each token ID in the contract can be its own type with its own supply, so a single contract can hold a currency, a stack of identical items and a one-of-a-kind collectible side by side. Before it, each fungible token needed its own contract under ERC-20.
What is an ERC-1155 token?
An ERC-1155 token is a balance of a given token ID inside a multi-token contract. If the contract creates many units of an ID, those units are interchangeable, like an ordinary token. If it creates exactly one, that ID works as an NFT. ethereum.org says the same contract can also hold semi-fungible tokens, which sit somewhere between the two.
The standard was written by Witek Radomski and five co-authors, several of them linked to Enjin and Horizon Games. The proposal says the idea came from Enjin and targets games that need thousands of token types, though it is not limited to gaming. That fit is why it shows up in web3 gaming.
OpenZeppelin's documentation gives a game example. One contract defines gold, silver, swords and shields minted in large numbers, plus a single Thor's Hammer. The first four behave like fungible items, while the hammer, with a supply of one, is effectively an NFT.
How does ERC-1155 work?
The core functions take lists instead of single values:
- safeBatchTransferFrom sends several token IDs and amounts in one transaction. ethereum.org's example moves 100 of ID 3, 200 of ID 6 and 5 of ID 13 at once. A single-transfer version exists too.
- balanceOfBatch checks many owners and IDs in one call.
- setApprovalForAll lets an operator, such as a marketplace, move tokens for the owner.
Every transfer to a contract is a safe transfer. The receiving contract must confirm it can accept the tokens, or the transfer is reversed, which stops tokens getting stuck.
Metadata uses one address template containing the text {id}. Apps swap in each token's ID to find its description file, so thousands of items can share one template instead of storing a separate link for each.
What is the difference between ERC-721 and ERC-1155?
ERC-721 contracts handle unique tokens only, and each collection is usually its own contract. ERC-1155 covers the same case when a token's supply is one, and can also hold fungible tokens in the same contract.
Other differences:
- Balances. OpenZeppelin notes that ERC-721's balanceOf counts how many tokens an account owns, while ERC-1155 keeps a separate balance for each ID.
- Batching. ERC-1155 can move many token types in one transaction, which the proposal says lowers costs and saves deploying many contracts.
- Approvals. ERC-721 can approve a single token. ERC-1155 has no per-token or per-amount approval, only approval for all, so an operator gets every token in the contract. That is the broad kind of permission that wallet drainers seek, as covered in crypto phishing and wallet drainers.
OpenZeppelin also notes that ERC-1155 metadata usually lives off the blockchain, so a developer could change it.
This guide explains how things work. It is not financial, legal or tax advice. Last updated .