2
votes

I'm working on Ethereum ICO project, I studied Solidity and created a test token and deployed to Ethereum blockchain using MetaMask & Etherscan. but I'm not sure how to proceed further. I'm trying to connect different dots to achieve my goal. I have few questions related to ICO:

  1. When launching an ICO, do we need to implement only ERC20 token standards into Smart Contracts or we need to write other logic's as well like how token buyers going to be benefited from this contract?
  2. When investors send Ethers against ICO token, where to store those Ethers or how those Ethers can be managed so later all can be used for further development?
  3. How to revert back Ethers if ICO goal is not reached?
  4. How to transfer tokens to investors if ICO goal is reached?
  5. Do we need Dapp for launching an ICO?
  6. How contract manages tokens reserved for developers?
  7. I studied Truffle but not sure how to use it for ICO launch?

It will be highly appreciated if anybody can guide me by replying all the above questions and share their personal experience launching an ICO.

Thanks in advance.

1
do you know openzeppelin?Ash
yes I studied regarding zeppling its a company who verify code of smart contract for any kind of loop holes and give their suggestions, so smart contract have bug free code.Surinder kumar

1 Answers

3
votes
  1. Its up to you but if you want people to be able to use your token in metamask / other exchanges to implement it you need to use ERC20 token, its tested and everyone knows how to implement
  2. All depends on how you configure the contract but usually the person who lunch the contract will have access to the contract and can transfer the funds ... of course your contract your contract needs to be ownable in order to have such a properties enabled
  3. You can do this by setting your crowdsale contract as RefundableCrowdsale
  4. There is contract for crowdsale and in it, in distribution section you've options to transfer funds, essentially token is just a database with a list of wallets and how much of the wallet they own. meaning you don't really transfer anything and more like recording the name in the contract.
  5. Not necessary, essentially investors just need to send ether to your contract.
  6. I think that could be a a separate contract holding the fund for x amount of time before it gets released. The zeppelin-solidity seems to provide Tokenvesting.sol for this purpose.
  7. Truffle is a framework, using industry standards of how you should deploy a contract it also helps with debugging

I would advice you to go through openzeppelin and by reading it you get a general idea of how everything works - helps with learning solidity