I know that if someone owns tokens he can simply call transfer method of contract to send money. I also know that for ERC20 contract owner of tokens can call approve for my account, and then I can call transferFrom to send his money. But I don't know if it's possible for me to transfer money from someone's account if I know his key without him calling approve before. In other words, is it possible to make transaction with transfer call to contract where transaction "from" field and "from" in a parameter to contract are different? I want to have the ability to make a lot of transactions from specific account to contract, such that they will transfer money from other accounts that I have keys to. It would be convinient, because in this case I can pay fee in eth only from one account and I don't need eth on all other accounts. With approve/transferFrom scheme I still need to call approve from all these accounts (and pay for fee) before every transferFrom which makes the whole idea useless.

If this helps, I want to interact with a specific token -- USDT

1 Answer 1


An ERC20 token has two standard ways to make transfers as you said.

  • transfer: need owner to all transfer.
  • transferFrom: needs onwer to call approve.

In both cases the owner has to pay ether fees.

There are some proposals to create contracts that allow a third party to pay fees on behalf on someone else but USDT doesn't support it.

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.