I'm creating a DApp platform which allows customers to send and receive USDT (ERC-20 Token). The problem I have is that if customer want to send some Tethers out, he should have enough ETH too as the gas, while he might did not receive any ETH on his account.
I have 3 different ideas about this.
- Charge the customer's ETH by myself, and send USDT directly from his account.
- Move customer's USDT to my account (in someway without transaction fee), and send the desired USDT to final recipient using the ETH provided in my own account.
- Send USDT from customer's account, but using my own account to provide the fee for transaction instead of using customer's one.
For some reasons, I need to implement the way 2 or 3, but I don't know how? Are they practical at all? If so, how can I do them?