ERC-721 is the standard for non-fungible tokens (NFTs) on Ethereum, tokens where each one has a unique ID and is not interchangeable with another. ERC-1155 is a multi-token standard that handles both fungible and non-fungible tokens in one contract, reducing gas costs for collections. Together they define how unique digital ownership works on Ethereum.
What Is an NFT Standard (ERC-721/1155 Explained Simply)?
3 min read
The short version
ERC-20 is like currency, every dollar bill is identical and interchangeable. ERC-721 is like concert tickets, each has a unique seat number and is not equivalent to another. ERC-1155 is like a game inventory system, it handles unique items (legendary sword, seat #1) and stackable items (100 arrows, 50 gold coins) in the same contract.
How It Works
ERC-721 defines: ownerOf(tokenId), who owns a specific NFT. transferFrom(from, to, tokenId), move ownership of one NFT. approve/setApprovalForAll, grant permission to transfer. tokenURI(tokenId), returns a URL pointing to metadata (name, description, image). Each token has a uint256 ID; the combination of contract address + token ID is globally unique. ERC-1155 extends this: balanceOf(account, id), how many of token ID does an account hold. safeBatchTransferFrom, transfer multiple token types in one transaction (significant gas savings for games and collections). A single ERC-1155 contract can manage both unique items (supply = 1, functionally NFTs) and fungible items (supply = millions, functionally tokens).
Minting and selling an NFT on OpenSea
An artist deploys an ERC-721 contract with 10,000 possible token IDs. During the mint: each buyer sends a transaction calling mint(), which assigns the next available tokenId to their address and emits Transfer(address(0), buyer, tokenId). The contract stores ownerOf[tokenId] = buyer. The tokenURI points to IPFS metadata: {"name": "Art #4521", "image": "ipfs://Qm...", "attributes": [...]}. To sell on OpenSea: the seller calls setApprovalForAll(opensea_contract, true). When a buyer purchases, OpenSea's contract calls transferFrom(seller, buyer, tokenId) and routes payment. Total chain of ownership is visible on-chain forever.
What People Get Wrong
Buying an NFT means you own the image
You own the token (a blockchain record). Whether that grants copyright, usage rights, or IP depends on the project's terms. Most NFTs grant limited personal-use rights, not full copyright transfer. The legal ownership layer is separate from the token ownership layer.
NFT images are stored on the blockchain
Usually no. The token points to metadata (often on IPFS or Arweave). The on-chain token stores only: owner, tokenId, and a URI. If the metadata host goes down and it is not on permanent storage, the link can break. On-chain NFTs (where art is stored in contract storage) exist but are rare due to high gas costs.
ERC-1155 is always better than ERC-721
ERC-1155 is more gas-efficient for batch operations and multi-token systems. But ERC-721 is simpler, better supported by marketplaces, and has clearer single-ownership semantics. For straightforward 1-of-1 art or PFP collections, ERC-721 remains standard.
Keep Reading
Sources & Further Reading
- EIP-721: ERC-721 Non-Fungible Token Standard
The specification defining how NFTs work on Ethereum
- EIP-1155: Multi Token Standard
The standard for contracts managing both fungible and non-fungible tokens
Questions People Also Ask
- Can NFTs be on chains other than Ethereum?
- Yes. Solana, Bitcoin (Ordinals), Polygon, Tezos, and many others support NFTs. They use different standards (Metaplex on Solana, BRC-721E experimental on Bitcoin) but the concept is the same: unique, non-interchangeable digital tokens.
- What is token metadata?
- A JSON file containing the NFT's properties: name, description, image URL, and traits/attributes. The tokenURI function returns a link to this file. Standards like OpenSea's metadata standard define the expected JSON structure for marketplace display.
- Why do some NFTs cost so much gas to mint?
- Gas depends on what the mint function does. Simple mints (increment counter, assign owner) cost ~50-100k gas. Complex mints (on-chain art generation, multiple storage writes, reveal mechanics) can cost 200-500k+ gas. Batch mints via ERC-1155 or ERC-721A reduce per-unit cost significantly.