need some advice.
Let’s say I am a company that has a list of 100000 customers and let’s assume also that I have all their public addresses (if needed).
Now, what would be the best way to mint and drop an ERC20 token (or tokens) to each of these 100000 users?
I assume a ‘push’ is not the way as not only would it cost too much gas, it would also be a huge transaction with a high chance of rollback if one piece failed half way through that 100000 iteration loop - right ?
Is the correct way to instead, mint the tokens into a contract, contact the users to tell them to claim… and then when they do claim to record the successful customer claim in a mapping in the contract e.g.
mapping(address => boolean) addressesClaimed ?
While I think this would work… the problem is that logically it would be possible for any random/non-customer to also claim those tokens (if they somehow found out about the drop).
But maybe this could be solved by having customers initially ‘register’ with my contract so that I know anyone claiming is a real customer or not.