Might be this is the common question asked! , but still i have lots of confusion over here, As far as my knowledge all the tokens are released from Smart contract, so my question are :

  • For every Pre-Sale do we have to launch different contract if yes then the contracts are launched on Main Contract address ?

  • If any contract have lock-down period time then, when the tokens are released from them do we have to pay Ethereum to that smart contract ?

  • How is private sale work ?

  • Do we have to run Whole Geth Block chain over system in order to deploy Smart Contract ?

  • i have seen some ICO give free tokens upon registration ? How they avail their transaction since the tokens are released from Smart contract ?

  • Probably will have better luck if you ask each question one at a time 😉
    – tayvano
    Commented Apr 18, 2019 at 9:59

1 Answer 1


How crowdsales typically work is that you have (at least) two different contracts: the actual token contract and the crowdsale contract. The crowdsale contract then has some sort of an access to the tokens which are used in the crowdsale - perhaps all the tokens are owned by the crowdsale contract initially.

But in general all the contract compositions are up to you to decide. You can write everything inside one contract or separate it in multiple contracts. It's mostly a matter of how easy it is to manage, deploy and maintain the separate contracts. Also, after the crowdsale, the crowdsale contract is no longer needed so it doesn't make much sense to still have the crowdsale code inside the token contract code.

As for your question about lock-time period, yes, you have to pay for gas if you issue a transaction to the contract. Typically the crowdsale contract owner issues a transaction which changes some state inside the contract and after that token owners can issue their transactions to claim the tokens. Or maybe the owner's transaction already assigns all the tokens.

As for the rest of your questions: as I said, you can develop the contracts as you want. If you want a private sale, only allow certain whitelisted addresses to participate. If you want to give out free tokens based on some conditions just write such functionality in the crowdsale. To deploy your contracts you can use for example geth - but there are plenty of alternatives out there.

Not the answer you're looking for? Browse other questions tagged or ask your own question.