NFT Cheat Sheet 2026

The 30 highest-yield NFT facts, distilled from real exam questions. Print it, save it as a PDF, or study it here — free, no sign-up.

50 questions
60 min time limit
70% to pass
  1. Which event does ERC-1155 emit for a single burn operation? TransferSingle with the 'to' field as the zero address
  2. Which storage pattern enforces a hard cap on the number of NFTs that can ever be minted? A require check comparing totalSupply() against a MAX_SUPPLY constant
  3. What does a minimal proxy (ERC-1167) clone primarily save on? Deployment gas costs
  4. Which gas consideration favors a default royalty over per-token royalties? A default avoids writing storage for every token
  5. Why are NFT images and metadata often stored on IPFS rather than directly on-chain? On-chain storage of large files is prohibitively expensive in gas
  6. What is the risk of storing metadata at a centralized HTTP URL instead of IPFS? The server could go down or content could change, breaking the NFT
  7. An ERC-721 contract uses _mint instead of _safeMint in a public function. Why might an auditor flag this? _mint skips the onERC721Received recipient check
  8. What is the purpose of an on-chain royalty enforcement registry like an operator filter? Block transfers via marketplaces that skip royalties
  9. Why might a large 10,000-item PFP collection still choose ERC-721 over ERC-1155? Marketplace and tooling support plus per-token uniqueness expectations favor ERC-721
  10. What does setting up an event listener with contract.on('Transfer', ...) enable in a live minting UI? Real-time updates as mints happen, including the live supply count
  11. What does ERC-721's safeTransferFrom do that transferFrom does not? Checks the recipient can receive ERC-721 via onERC721Received
  12. Which access control pattern best restricts who can call a mint function? A modifier like onlyOwner or onlyRole(MINTER_ROLE)
  13. What is 'lazy minting' in NFT development? Deferring on-chain minting until the first purchase or claim
  14. What is the purpose of the approve() function in ERC-721? To grant another address permission to transfer a specific token
  15. Which storage approach makes NFT image data most resistant to disappearing? Arweave permanent storage
  16. A security concern when setting the royalty receiver via a public function is what? Missing access control could let anyone redirect royalties to themselves
  17. Why might dynamic NFTs use a Chainlink oracle? To update metadata based on real-world data
  18. Which event must ERC-721 emit when ownership of a token changes? Transfer
  19. To mitigate reentrancy during minting, which principle should be followed? Checks-Effects-Interactions: update state before external calls
  20. What advantage does ERC-1155 offer over ERC-721? It can manage multiple token types (fungible and non-fungible) in one contract
  21. Why is on-chain (fully generative) NFT art notable compared to off-chain images? The artwork is generated and stored entirely on the blockchain
  22. Which Solidity pattern helps prevent reentrancy attacks during minting or withdrawals? Checks-Effects-Interactions
  23. What is the primary gas benefit of using `uint256` for token IDs rather than `uint128` in ERC-721 contracts? uint256 fits exactly in one storage slot, avoiding costly masking operations
  24. Which two parameters does royaltyInfo take as inputs? tokenId and salePrice
  25. What happens to the totalSupply tracking when a token is burned in an enumerable ERC-721? It decreases by one
  26. Which standard natively defines a TransferBatch event for multi-ID movements? ERC-1155
  27. What does the ERC-721 'ownerOf' function return? The address that owns a given token ID
  28. How does ERC-1155 typically handle metadata URIs to support many tokens? A single URI template with an {id} substitution placeholder
  29. What does the royaltyInfo function in EIP-2981 return? The receiver address and royalty amount
  30. What advantage does a library like wagmi or RainbowKit provide over raw window.ethereum calls in a React NFT app? Hooks and connectors that manage wallet state, caching, and multiple wallet types
Turn these facts into recall: