Question: I have just discovered that you can do both a combined smart contract that includes both the token and the crowdsale OR have the token in a separate contract from the crowdsale contract.

Can anyone tell me what the advantages are to either of these methods please?

Many Thanks,

Phil.

Answer: 
You should test your deployment process on private network or test network throughly before trying mainnet. I am testing mine on Rinkeby because in Ropsten block gas limit is too low.

In my experience gasPrice setting in truffle.js is effective. I have successfully deployed my contracts using the following syntax:

```
    geth_mainnet: {
      host: "127.0.0.1",
      port: 8545, // geth-mainnet
      network_id: "1",
      gasPrice: 2000000000, // 2 GWei
      from: "0x...your-address-goes-here..."
    }

```

See [2'505'437 Gas \* 2 Gwei = $6](https://etherscan.io/tx/0x6e993c5b21b6910af99ae46ab2cd6bd91cafcfdf04ebe866af8d7a9228a3cf37) and [5'435'035 Gas \* 2 Gwei = $13](https://etherscan.io/tx/0xca530e98f14147826122b378e2443afa11ae0fc71ccffd5b885fc42a5b049018).

Couple caveats:

* Make sure your account has enough funds not only for your smartcontract deployment, but also for deployment of truffle's Migration contract and calls to that contract.
* If you use low gasPrice, you better make sure mainnet is not too busy, check <https://ethgasstation.info/>. If your transaction does not get enough priority and fails to be mined in 50 blocks, truffle/web3 will timeout. Depending on how far you are in truffle-migrate process, your actual contract deployment might still be ongoing and finish successfully, but contract address will not be recorded under build/.
This is not the answer to the question, but I would like to add this to the previous answers.

When you commit your transaction, Ethereum client calculates, how much transaction would cost if transaction uses all provided gas up to gas limit.

So, if you have gas limit set to `6,700,000` and gas price set to `20 gwei`, then client would require you to have at least `0.134 ETH` on your wallet. I am unsure if it is possible to disable this check.

You can try lowering gas limit for your transactions or gas price, but this would cause longer confirmation time