I'm referring to the source of of the most popular tokens on etherscan.
It looks like they don't have any payable functions. How do they accept ether and transfer the tokens automatically when someone sends ether to the contracts?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
The fallback function (accept-payment-by-default) is bad, becase
It allows easily the buyer to make a payment from incompatible wallet (Coinbase)
It prevents doing any meaningful KYC/AML/other tracking on token sale participants
As experience over dozens of token sale, I strongly advise against having a fallback payable Ethereum smart contract. If you do have you are just greedy and screwing over technically incompetent audience.
As an alternative, I recommend using web3.js wallet like MetaMask and having a single click "Pay with MetaMask" button.
The extended discussion can be found here:
One of good basic qus in Eth community.
Almost all popular tokens are listed in exchanges. While listing in exchange token owner(company) will give some commission(most of exchanges will charge for service) for listing token into the exchange. Once your place an order via exchange with some X Eth, exchange will take the responsable for transfer Eths to Company Eth account or convert Eth to fiat money and transfer to company account. So token owner no need to worry about the process, and he can able to change account for every exchange, If some one hacked one account, remaining accounts will be safe. And every exchange has own rules and laws.
So thats a reason they didn't mention any payable function. If you want to enable users to buy eths from their accounts you can provide or any other contract called your non exists method EVM will look for fallback function. In that you can do what ever you want.
The idea of a fully Ethereum-based ICO is one of the more romanticized ideas in the community. That is to say, it's the ideal and not the norm. In practice, many ICOs simply issue tokens, rather than having you perform a transaction on the Ethereum network in order to buy in. Why? There are a few good reasons.
First, ICOs are legal grey area. In the United States, on December 11, 2017, the Securities and Exchange Commission issued a notice that ICOs had to comply with securities laws. Because they're technically investments, many countries regulate how legal investments can be made -- paying particular attention to the risk that an investor makes when buying in. Many countries try to limit the damage from convincing so called "unaware buyers" from entering into investments that they don't understand, and then losing big time. This can create devastating losses that people aren't prepared for.
Second, many ICOs are launched with the intention of being bought through other platforms. As the first answer indicated, it can be that they would rather be sold on exchanges and then have tokens issued in bulk in order to simplify the process of running the ICO. Filecoin's ICO is a great example of this. Exchanges can handle compliance problems like KYC/AML and also shoulder some of the support burden from running one.
So, to summarize: ICOs are a complicated breed of investment with a lot of risks and a lot of technical issues that have to be accounted for during the process. A strictly ethereum contract based ICO where you can simply pay for tokens is idealized by the ethereum platform, but not necessarily the most applicable to reality.