operator-filter-registry
operator-filter-registry copied to clipboard
ERC2981 Royalty for Specific Token IDs
Hi, we are trying to implement an ERC2981 standard NFT, where the royalty receiver is different for every token IDs. After testing on OpenSea, it seems that only the minter of the first NFT is set as the royalty receiver for all token IDs, which can be seen from the creator fee:

In the contract we implemented _setTokenRoyalty(tokenId, to, defaultRoyalty)
function mintNFT(
address to,
string memory uri
) public onlyRole(DEFAULT_ADMIN_ROLE) returns (uint256) {
require(!hasRole(DEFAULT_ADMIN_ROLE, to), "Admins cannot receive NFTs");
uint256 tokenId = _tokenIdCounter.current();
_tokenIdCounter.increment();
_safeMint(to, tokenId);
_setTokenURI(tokenId, uri);
_setTokenRoyalty(tokenId, to, defaultRoyalty);
return tokenId;
}
Please advise if it is possible to have dynamic creator fee royalty, thank you.
I have the same problem here.
OS does not support this part of the EIP-2981. You cannot define multiple receivers for different token ids.