3

Is it possible to create a feeless ERC20 token?

Or paying fees through another address?

I have a solution in mind, to refund the transaction fee amount to receiver’s adress from a central address.

Any ideas?

Eugene Oz
  • 39
  • 1

1 Answers1

1

You can't have another address pay for transaction fees. You have two options:

  1. Create a centralized server that your app makes calls to which will then delegate all of the activity to your contract. However, this approach is centralizing your app when one of the goals of the blockchain is decentralization. It's up to you to decide if you're ok with this (For example, MetaMask is a popular tool, but that centralizes your provider...is that wrong?).
  2. As you said, you can refund the transaction fee back to the user. Have your contract track individual balances and periodically issue refunds. Your contract can hold funds (which you can replenish through an ownersOnly payable fallback function) and process refunds when appropriate. Be sure to follow appropriate withdrawal patterns.
Adam Kipnis
  • 10,175
  • 10
  • 35
  • 48
  • hi Adam,thanks for clarifying my points. your answer is exactly what i'm looking for... my token will not be mineable, and will only be produced by the users of my app but i also wish it to be exchangable through exchanges without accessing to a centralized server. so the transactions through my app will be feeless; but other transactions can be. i know it is hard to escape from centralization in this model, what wld be your way of doing this? any comments appreciated. thanks – Eugene Oz Jan 04 '18 at 08:14
  • Your app and token exchange are separate. The token itself should be a standard ERC20 contract which is solely responsible for managing the token inventory. As an ERC20 token, it can be made available to be listed on an exchange (which is a separate process requiring you to work with the exchanges to get listed). Separate from that, your application also interacts with the ERC20 contract to handle payments, but is responsible for the business logic for your app. The app can have a centralized server for interaction with your business logic contract, or be decentralized as well. – Adam Kipnis Jan 04 '18 at 17:53