[Ethereum] Bittrex using smart contract address to get funds [ ERC-20] deposit

erc-20etherexchanges

This question is not Just specific to bittrex, but i wanna know it in general that can any exchange ask its user to deposit tokens to a smart contract?
I have been using ETH since a long time, i have also happened to deposit Tokens to big exchanges but never got a address which is a contract address to get my funds deposit.

Is it possible?

Best Answer

It's completely possible. If the exchange creates a separate contract for ERC-20s for each user, they can know when that user deposits an ERC-20. They'd likely then send all the tokens to a central wallet, and keep most of it in cold storage of course.

The sad thing about the ERC-20 standard is that there's no way to trigger code on deposit of an ERC-20, e.g. yes I can send ERC-20 to the contract that the exchange created for me, but that contract can't automatically forward the tokens to another contract in the same transaction. Of course the exchange can just detect when it receives tokens and create another transaction to move the tokens. This is the main purpose of the ERC-223 standard that is in the works, allowing a tokenFallback function to execute if the receiving function is a contract and implements tokenFallback.

Related Topic