Hi i now read everywhere that a transaction fee has to be paid in ETH.

But I also found via the ethereum page the following page:


where it says


setFeeCurrency(address _feeCurrency)

Sets the currency that the fee is paid in

The latter two methods are optional; also, note that the fee may be charged either in ether or subcurrency;

So is it finally possible to create an ERC20 Token that is able to transfer its tokes and is paid in the token itself? If so, is there an example contract somewhere or do I just have to add it into the constructor? If so what exactly has to be the _feeCurrency variable? The AdminAddress of the contract?

2 Answers 2


Transaction fee on Ethereum is called Gas and is paid to the miners for the processing power they spent on the function call, here being ERC20 transfer(). Tokens on miner's level don't have any value and does not mean anything, rather than just a state change in a smart contract. Gas can only be the same coin/token that the blockchain is using to incentivize the miners, so here on Ethereum blockchain Gas is Ether.

To understand more of this concept you can read here: https://ethereum.stackexchange.com/a/62/3157


The reference which you mention in your post is from 2016 and outdated.
Right now, there exists the various ERC standards such as ERC20.
That being said, it is not possible to performing transactions on the Ethereum network without paying gas fees, an alternative solutions created by bokkypoobah can be seen below https://github.com/bokkypoobah/BokkyPooBahsTokenTeleportationServiceSmartContract

To summarize:
This allows you to transfer ERC20 tokens without having to pay for the Ethereum network transaction fees in ETH, Instead, the account pays for the token transfer fees in the token being transferred. The service interface/provider would then handle the ETH fee payments to the network.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.