I am new to Ethereum. We want to be able to receive funds (ETH and ERC20 tokens). It seems that exchanges do not allow to send funds to smart contracts, is it possible vice versa to send funds from contract address to exchanges or is it necessary to send them to a "normal" address first?

1 Answer 1


tl;dr - Yes, that should be possible.

Exchanges don't allow you to send to smart contracts because the gas needed to transfer the funds is higher and variable (depends on the smart contract that receives the funds). Also, if they don't use enough gas when sending the funds, the transaction fails, the gas is all burned and the funds don't reach their destination, while some amount of ETH is lost (the cost of gas). If the above is repeated several hundred times/day, we can imagine the loss they would incur.

When you deposit funds to them, they don't care where those funds are coming from, because the sender pays the gas.

  • sounds logical, do you have any proof? can they distinguish at all from which source the funds come?
    – jeff
    Commented Feb 14, 2018 at 14:36
  • I don't have any proof, because exchanges rarely (if ever) expose the way they manage the funds, mostly because they try to avoid hacks. You can find it yourself by trying to deposit funds to an exchange from a smart contract. Yes, it is possible to identify whether the deposit comes from a regular address, or from a smart contract, Here is how to do it. Commented Feb 14, 2018 at 14:40

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.