I'm currently building a feature where users can exchange their ERC20 token for a that can be used within our DApp. This therefore requires a transaction from the user to us (their ERC20 token to us), and then we credit their account on the DApp with the app credits, in a ratio of 1:1. The issue is how are we able to do the transaction between them and us, without it costing them any ETH?
Is there a way for us to pay this transaction for the user?
Upon further reading, it seems this isn't possible with Ethereum. It seems that the only person that can pay the transaction fees is the person sending the transaction. It also seems that this is something that the Ethereum community would like to address in Serenity.