Существует два способа отправки токенов:
1) Если пользователь отправляет ETH на ваш смарт-контракт, он автоматически получает токены (согласно коду смарт-контракта).Пользователь платит за транзакцию.
2) Вы генерируете ETH / BTC / any_altcoin адрес для пользователя.Пользователь отправляет количество альткойнов и получает фантомные токены, которые вы храните в базе данных.Со временем вам необходимо отправить токены каждому пользователю вручную или с помощью скрипта (если мы говорим об erc20 - пользователи должны предоставить свой ETH-адрес).Вы платите за транзакцию.