I am working on my first NFT project so sorry if this is a newbie question. I want to deploy my smart contract independently then allow the tokens to be sold on any marketplace platform. The goal is to allow anyone to call the mint function on my contract and create a token, but I (as the smart contract owner) want to be able to collect a royalty on any sales/resales of any token on any marketplace. I am not sure how to accomplish this as it seems like royalties are handled differently by each marketplace. For example it seems like OpenSea allows me, as the smart contract owner, to direct all token sale royalties to a wallet address of my choosing. Is it possible to do this for every marketplace? Rarible looks like they have their own interface for managing royalties on-chain. It would be nice to set the behavior of royalties consistently across all marketplaces. I've looked into the EIP2981 standard but I'm not sure if this is compatible with every/many marketplaces. Any suggestions for how to achieve this functionality?
Extension of ERC721 with the ERC2981 NFT Royalty Standard is a standardized way to retrieve royalty payment information.
You can see the contract functions here: https://docs.openzeppelin.com/contracts/4.x/api/token/erc721#ERC721Royalty
Royalty information can be specified globally for all token ids via
ERC2981._setDefaultRoyalty, and/or individually for specific token ids via
ERC2981._setTokenRoyalty. The latter takes precedence over the first.
You can read more about how to implement such a functionality here: https://eips.ethereum.org/EIPS/eip-2981#optional-royalty-payments
You will need to register accounts and/or negotiate with every marketplace to get those monies. (Including marketplaces on bridged networks) Then you will need to do your own double account. And then you need to manage payouts of incoming royalties to outgoing accounts.
EIP-2981 may possibly help, more so in the future than today.
This will be a significant undertaking.