Bulk ERC-20 issue token

Hello Team,

I am trying to build a reward system, wherein the user will be rewarded for their activity on the platform and the reward ranges from 1 Token - 10 Token maximum.
All the tokens will be owned by the contract owner (who deploys the ERC20 contract)
Upon each user activity, number of reward tokens will be transferred from the owner to the user’s public address.

Given the transaction fees on Ethereum Mainnet, invoking transfer() for 1, 2, 3, … n tokens individually for a specific user for different activities will not be economical this is what I think?

What could be the best approach to move forward and have a economical feasible solution for the above use case?

Hi, welcome! :wave:

I am not sure, maybe you can use an airdrop contract to distribute rewards for one time.

Instead of running the transfer on chain, you can generate a signature off chain. The signature can be of the user address and their total accumulated rewards. The user can the claim their rewards by submitting this signature to a smart contract in a transaction, or requesting someone else to submit it for them. Since each signature is of the accumulated rewards, a single transaction is enough to get all their previous rewards thus saving on transactions, but this needs to be paired with a mechanism at the smart contract that keeps track of how much of the reward has been claimed until that point, so it is deducted from future claims.

I believe this idea is sound but there may be some flaw in it so please analyze it carefully and do testing.