How to calculate rate for a crowdsale?

I’m also having some trouble understanding how to calculate rate. The target decimals is 5 not 18, and I want the initial rate to be $.01 per token. I’m not sure how to calculate this for my rate variable for the crowdsale

1 Like

Hi @Roodiger

The Crowdsale documentation gives an example of how to calculate the rate:
https://docs.openzeppelin.com/contracts/2.x/crowdsales#crowdsale-rate

Using this example for decimals of 5 and an initial rate of $0.01 per whole token:

If you want to issue “1 TKN for every 0.01 dollar (USD) in Ether”, we would calculate it as follows:

  • assume 1 ETH == $200
  • therefore, 10^18 wei = $200 or (20,000 cents)
  • therefore, 0.01 USD is 10^18 / 20000 , or 5 * 10^13 wei
  • we have a decimals of 5, so we’ll use 10^5 TKNbits instead of 1 TKN
  • therefore, if the participant sends the crowdsale 5 * 10^13 wei we should give them 10^5 TKNbits
  • therefore the rate is 5 * 10^13 wei === 10^5 TKNbits , or 1 wei = 2*10^-9 TKNbits
  • therefore, our rate is 2*10^-9

Testing this out:

  • If a participant paid 0.01 USD they should get 1 TKN or 10^5 TKNbits
  • 0.01 USD is 5 * 10^13 wei
  • Using the rate of 2*10^-9
  • (5 * 10^13) * (2*10^-9) = 10^5 TKNbits or 1 TKN

Update: The above calculation results in an invalid rate, as 2*10^-9 is not an integer. Need to change to a larger decimals, e.g. 18.

1 Like

Hi @Roodiger Did the explanation of rate calculation make sense?

If it answered your question can you mark my reply as the solution. Thanks :smile:

1 Like

A post was split to a new topic: Token sale for fixed fiat rate