Advanced NFT Mechanics Flashcards
7 cards from real NFT practice questions. Tap to flip, then mark Knew It or Still Learning — missed cards come back until you master them.
Read the first 7 Advanced NFT Mechanics flashcards as text
What does setApprovalForAll allow in an ERC-721 contract?
Answer: Approve an operator for all of an owner's tokens
setApprovalForAll grants or revokes an operator permission over every token an owner holds in that contract.
Why might a developer use OpenZeppelin's ERC721Enumerable extension?
Answer: To enable on-chain enumeration of all tokens and per-owner tokens
ERC721Enumerable adds totalSupply and indexing functions so tokens can be enumerated on-chain.
What is a reentrancy risk when handling NFT purchases with ETH refunds?
Answer: An external call letting an attacker re-enter before state updates
An external call before updating state can let a malicious receiver re-enter and exploit stale balances.
Which pattern is recommended to prevent reentrancy in withdrawal functions?
Answer: Update state before external calls
Following checks-effects-interactions—updating state before the external call—prevents reentrant exploitation.
What does a minimal proxy (ERC-1167) clone primarily save on?
Answer: Deployment gas costs
ERC-1167 clones delegate to a single implementation, drastically reducing per-deployment gas.
In an NFT marketplace, why is using a signed off-chain order (e.g., EIP-712) useful?
Answer: It enables gasless listings verified on-chain at fill time
EIP-712 signed orders let sellers list without gas; the signature is verified on-chain only when an order is filled.
What is the risk of storing NFT metadata on a centralized server?
Answer: Metadata can be altered or go offline
Centralized hosting means the metadata or image can change or disappear, breaking the NFT's permanence.