Skip to content

ERC-721 vs ERC-1155: NFT standards explained

ERC-721 gives every NFT token ID exactly one owner. ERC-1155 holds many token types in one contract and tracks how many of each type every address holds.

evmquery team6 min readEthereum, explained, part 6 of 13

What is an NFT?

An NFTAn NFT is a token that is unique, so it can represent ownership of a single item such as art, a ticket or a name.See it in the glossaryRead the explainer (non-fungible token) is a numbered entry in a Smart contractA smart contract is a program stored at an address on the blockchain that anyone can call and that runs exactly as written.See it in the glossaryRead the explainer’s ledger. The contract is a small program at one blockchain AddressAn address is the public identifier of a wallet or contract on Ethereum, a long string starting with 0x.See it in the glossary, and it records facts such as “token number 1 belongs to this wallet”. Wallets and marketplaces read those records to show what you own.

“Non-fungible” means each token can be told apart from the others. A dollar bill is fungible, because any bill swaps for any other. A numbered concert seat is not, because row 4, seat 12 is one specific thing.

Standards let every wallet and marketplace read every contract the same way. The Ethereum community writes them as proposals, and the ones about apps and tokens are called ERCAn ERC is an application-level Ethereum standard, such as the rules for how tokens behave, so apps can work with them.See it in the glossaryRead the explainer. The hub post on EIPs and ERCs explains the naming. For NFTs, two ERCs matter in practice: ERC-721 and ERC-1155.

What is ERC-721?

ERC-721 is the original NFT standard, defined in EIP-721. Its rule is that every token ID has exactly one owner. Think of numbered concert seats, where seat 1 belongs to one person and seat 2 to another.

A contract that follows the standard answers a short list of questions that any wallet can ask:

  • ownerOf(tokenId): who owns this token?
  • balanceOf(owner): how many tokens does this address own in this collection?
  • transferFrom and safeTransferFrom: move one token to another address.
  • approve: let another address, such as a marketplace, move one specific token for you.
  • setApprovalForAll: let an operator, usually a marketplace, move every token you hold in this collection. This is the broader and riskier permission.

Two features that people expect from collections are optional extras. name(), symbol() and tokenURI(tokenId) come from the MetadataMetadata is the descriptive data attached to a token, such as its name, image and traits, usually stored outside the chain.See it in the glossaryRead the explainer extension, and totalSupply() comes from the enumerable extension. Most collections offer both, which is why marketplaces show a collection name and a supply count.

Because each ID is its own record, ERC-721 fits one-of-a-kind items. Examples are a 10,000-piece profile-picture collection, a name or domain, a piece of digital art, or a deed-like record.

What is ERC-1155?

ERC-1155 is the multi-token standard, specified in EIP-1155. One contract holds many token types, and each type has a balance per person. Think of a shop shelf with several kinds of item and a stock count for each customer. Ana has 40 gold coins, Ben has 3, and Ana also has one sword.

The question changes from “who owns token 1?” to “how many of token 1 does this address hold?”. The standard answers it with balanceOf(account, id). A balance of 40 makes the token behave like a currency, and an ID with only one unit behaves like an ERC-721 token. One contract can mix both, which is why game studios use it. If a page says you “own 3 of” something, you are looking at an ERC-1155 balance.

Two panels. Left, concert seats for ERC-721: seat 1 belongs to Ana and seat 2 belongs to Ben, one owner per seat. Right, a shop shelf for ERC-1155: gold coin with Ana holding 40 and Ben holding 3, and a sword held by Ana, so each item type has a stock count per person.
ERC-721 records one owner per numbered ID. ERC-1155 records how many of each item type every person holds.

ERC-1155 also adds batch operations. safeBatchTransferFrom sends several token types in one TransactionA transaction is a signed instruction that changes something on the blockchain, such as sending ETH or calling a contract.See it in the glossary, and balanceOfBatch reads several balances in one call. A game that gives a player a sword, a shield and 100 coins needs one transaction instead of three.

ERC-721 vs ERC-1155: the difference

ERC-721 tracks who owns each token ID, while ERC-1155 tracks how many of each token ID every address holds. Everything else follows from that.

ERC-721 ERC-1155
Everyday picture Numbered concert seats A shop shelf with stock counts
Ownership question ownerOf(id) returns one address balanceOf(account, id) returns a number
Supply per ID Exactly one Any number, including one
Token types per contract One collection, all non-fungible Many types, fungible and non-fungible mixed
Moving tokens One token per transfer call Several types per transaction (safeBatchTransferFrom)
Metadata link tokenURI(id), already resolved uri(id), may contain a {id} placeholder
Typical use Profile pictures, art, names, deeds Game items, editions, tickets, memberships

Neither is better in general. ERC-721 is simpler to reason about and is the default for one-of-a-kind items. ERC-1155 is more efficient when many tokens share one contract and some come in quantities.

Where does the NFT picture live?

The picture is usually not on the blockchain. The contract stores a link to a small JSON file with a name, a description and an image link. That file points to the image. Storing an image onchain is expensive, so almost every collection keeps its files elsewhere.

The link comes from tokenURI(tokenId) on ERC-721 and uri(id) on ERC-1155. It often starts with ipfs://, which means the file lives on IPFS. IPFS is a network that finds files by a fingerprint of their content instead of a server address. Some collections use an ordinary web address instead.

Three steps from left to right: the contract, which answers tokenURI with a link and lives on the blockchain; an info card in JSON with a name and an image link; and the picture file. The info card and picture are usually stored offchain on IPFS or a web server.
The contract is onchain. The info card and the picture usually are not, so a token can show a broken image while ownership stays intact.

The blockchain settles ownership, but what the token looks like depends on files kept elsewhere. If the collection owner changes the base link or the server behind it disappears, the picture can change or vanish. The ownership record stays as it was. Content-addressed IPFS links are harder to swap quietly, so collections that care about permanence prefer them.

ERC-1155 adds one wrinkle. Its uri(id) may return a template containing the text {id}, which the app must replace with the token ID in a specific format. The ERC-1155 URI and metadata guide covers that rule.

See it on a real contract

The card shows the total supply of Bored Ape Yacht Club, an ERC-721 collection. The ERC-721 Inspector reads its name, owner and tokenURI for any token ID. For ERC-1155, the ERC-1155 Inspector on adidas Originals (0x28472a58A490c5e09A238847F66A68a47cC76f0f) showed a supply of 4363 for token 0 and 5569 for token 1. That was on 2026-11-11 at block 26391463: thousands of copies of each ID in one contract.

Total supply of Bored Ape Yacht Club

Reading live from Ethereum

Inspect Bored Ape Yacht Club in the ERC-721 Inspector

Show the querybayc.totalSupply()

Common mix-ups

  • “The picture is stored on the blockchain.” Usually the contract holds only a link to a file kept elsewhere.

  • “ERC-1155 is the newer, better ERC-721.” ERC-721 suits one-of-a-kind items, and ERC-1155 suits items that come in quantities.

  • “Listing an NFT only approves that one token.” Not always. setApprovalForAll lets a marketplace move every token you hold in that collection.

  • “ERC-1155 tokens are always interchangeable.” They can be, but an ID with a supply of one behaves like an ERC-721 token.

Summary

  • ERC-721 gives every token ID exactly one owner, which suits one-of-a-kind items.
  • ERC-1155 tracks how many of each token type every address holds, which suits game items, editions and tickets.
  • The picture usually lives outside the blockchain, so only the ownership record is guaranteed to last.

For developers

You can read both kinds of contract with one evmquery request each and no ABI file. The ERC-20, ERC-721 and ERC-1155 ABI reference lists the function signatures for all three standards.

Share

Read any NFT contract without writing an ABI

Create a free API key and read owners, balances and metadata links from any NFT contract in one request.