We are providing a Gnosis multisig wallets to our users and a market place where users can purchase/sell/transfer ERC721 tokens with other users. The ERC721 contract will also have a Blacklist registry in which all the addresses will be put, who were trying to be nostalgic. New addresses can only be added/removed by an Admin multisig wallet.
We want to limit our users to possess, lets say only 10 tokens at a time. We have come up with two possible solutions but couldn't decide which is the best for this problem.
1 .We monitor every transfer/mint/burn event on our contract and maintain cumulative balances offchain. These cumulative balances will be updated with every transaction and the admin will put an address in the Blacklist if this address was trying to breach the imposed limit.
2 .Make use of balanceOf mapping in ERC721 standard. Every transfer will check this mapping and refuse to execute a new transaction if the token limit is breached. Will this change the ERC721 standard?. This will also not take account of cumulative ERC721 tokens, A user purchases and then transfers his/her token to some other dummy addresses repetitively to avoid the token limit.