I'm currently deciding which crypto platform to go for (Ethereum or Waves). So I'm asking this question because I just wonder if the people, who will buy my newly created token, will HAVE TO buy Ether as well since they need to pay transaction fee in ETH whenever they transfer the bought token forward to other people. Please Help explaining for me in Clear-but-plain English. Thank you in advance!
Short answer is: not necessary.
ERC-20 standard requires token owner to personally initiate, or at least approve all transfers of his tokens, so when using ERC-20 functions, token owner has to execute some transaction from his own address in order to move tokens forward. If token owner uses an Externally Owned Address (EOA) to hold tokens, then executing any transaction from this address requires transaction fee to be paid in ether from this very address, so in such case token owner will have to have some ether.
However, there are at least two options how token owners may avoid touching ether when moving their tokens:
- use non-ERC-20 functions, or
- use non-EOA to hold tokens.
The first option ought to be supported by token smart contract, while the second option should work with any token contracts.
Here is how the first option works:
- Token owner signs transfer order with his private key
- Token order sends gives signed transfer order to a third party called “relayer”
- The relayer sends signed order to token smart contract (the relayer pays transaction fee in ether here)
- Smart contract verifies token owner's signature
- Smart contract executes transfer
The second option works like this.
- Token owner hold tokens on a wallet smart contract.
- Token owner controls the wallet by signing orders and asking a third party to send them to the wallet (third party pays transaction fee in ether)
In this schema wallet smart contract may be deployed for token owner by the third party, so token owner does not need ether even for setting up wallet.
Mostly: yes. They can receive the tokens but if they want to transfer them onwards they need Ether to pay for the gas fees.
There are various schemes to let someone else pay for the gas, see for example here: How to make someone else pay for Gas? . One option not (directly) mentioned there is meta transactions but that is also something quite new and not widely adopted (yet).
So for most scenarios the user has to pay for the fees with Ethers but this situation may change in the future when the aforementioned projects get more widespread.