This question already has an answer here:
I have a confusion, When we create new address/account for an ERC20 token then it have 0 Eth balance. When we send some tokens to this address and then withdraw token again from this address require a gas fee in ETH but this account don't have any ETH. So how we can send the transaction when account have 0 ETH for Gas fee. Can we use a separate address to pay ETH fee for all address of Token ? I am developing ERC20 token wallet application in C# so kindly answer accordingly.