Рассказываю, как сделать шахер-махер
1. Создаете маппинг для адресов address -> bool
2. в функции balanceOf делаете возврат двух значений:
- если маппинг из п. 1 == true - то текущий баланс
- если false - то дефолтный, то есть, сумма бонусных токенов
3. В функции transfer при первой транзакции с адреса устанавливаете значение маппинга из п. 2 в true
4. Отдельная функция, в которую передается список адресов и по ним генерируется event Tansfer с сумой бонуса.
Профит