NFT Marketplace Royalty Standards (EIP-2981) 2 — Questions and Answers
Question 1: What does the royaltyInfo function in EIP-2981 return?
- The receiver address and the royalty amount (Correct answer)
- Only the royalty percentage
- The token owner and creator
- A boolean indicating royalty support
Correct answer: The receiver address and the royalty amount
royaltyInfo(tokenId, salePrice) returns a tuple of the receiver address and the royaltyAmount to pay.
Question 2: Which parameters does royaltyInfo accept?
- _tokenId and _salePrice (Correct answer)
- _owner and _amount
- _buyer and _seller
- _contract and _value
Correct answer: _tokenId and _salePrice
royaltyInfo takes the token ID and the sale price, then computes the royalty owed.
Question 3: EIP-2981 specifies royalty information but does NOT do what?
- Enforce or transfer the royalty payment (Correct answer)
- Return a receiver address
- Calculate a royalty amount
- Use ERC-165 detection
Correct answer: Enforce or transfer the royalty payment
EIP-2981 only signals the amount and receiver; actual payment enforcement is left to the marketplace.
Question 4: How is EIP-2981 support advertised to other contracts?
- Via ERC-165 supportsInterface (Correct answer)
- Via an emitted RoyaltySet event
- Via a public bytes32 constant
- Via the contract name
Correct answer: Via ERC-165 supportsInterface
Contracts implement ERC-165 so marketplaces can detect the IERC2981 interface ID.
Question 5: In what unit is royaltyAmount denominated?
- The same unit of exchange as _salePrice (Correct answer)
- Always in wei of ETH
- Always a basis-point percentage
- Always in USD stablecoin
Correct answer: The same unit of exchange as _salePrice
royaltyAmount is expressed in the same currency/unit as the salePrice passed in.
Question 6: A marketplace calls royaltyInfo with a salePrice of 0. What is the expected royaltyAmount?
- 0 (Correct answer)
- A default minimum fee
- The full creator royalty
- Reverts the transaction
Correct answer: 0
Royalty is calculated as a fraction of salePrice, so a zero salePrice yields a zero royalty.
Question 7: Why was EIP-2981 created?
- To provide a standard, marketplace-agnostic way to signal royalties (Correct answer)
- To force every marketplace to charge fees
- To replace ERC-721 entirely
- To store royalties on a centralized server
Correct answer: To provide a standard, marketplace-agnostic way to signal royalties
It standardizes royalty signaling so any compliant marketplace can read the same data.
What does the royaltyInfo function in EIP-2981 return?