Skip to content
Branch: master
Clone or download
Pull request Compare This branch is even with itinance:master.
itinance Fixed an issue in TokenVesting contract where the final balance after…
… end of every vesting period was calculated wrong
Latest commit 6524f64 Aug 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci try to run truffle in Jul 2, 2019
.netlify Initial commit Jun 10, 2019
contracts Fixed an issue in TokenVesting contract where the final balance after… Aug 16, 2019
migrations Initial commit Jun 10, 2019
test Fixed an issue in TokenVesting contract where the final balance after… Aug 16, 2019
.gitignore Initial commit Jun 10, 2019 Fixed typos in DEPLOYMENT Jul 3, 2019
LICENSE Added LICENSE Jun 10, 2019 README improvements Aug 13, 2019
solhint.json Initial commit Jun 10, 2019
zos.json version bump 1.3.0 Jul 1, 2019
zos.mainnet.json Deployment Jul 2, 2019
zos.ropsten.json Added Docs into README how to setup Aug 8, 2019

What is it about?

The NCDT-Token are part of the ICO of Nuco.Cloud.




Deployment Protocol


Getting started


Install the following tools globally (or using npx)

  • node
  • npm
  • ganache-cli
  • truffle-suite

We assume that you are already familiar with Ethereum development and its toolset including Ganache, Truffle-Suite and also OpenZeppelin as framework (or even better ZeppelinOS) and that you have everything setup on your development machine.

Let's continue:


Checkout and intall dependencies

git clone
cd ncd-token
npm install 

Running tests:

  1. start ganache
ganache-cli --mnemonic “your twelve word mnemonic here”
  1. In a new terminal, run tests:
truffle test

Vesting / Team Tokens

The following rules has been defined for minting Team tokens into a specific vesting contract:

  1. Crowdsale goes 12 months
  2. Every sold token is doubled into a special vesting contract
  3. these vesting tokens can be released 12 months later on a monthly basis, but only 10% each month
  4. Within vesting contract multiple people has separate shares into the vesting (some get 20%, some only 1% and so on)


  • Month 1 Crowdsale: 100 Token sold
  • Month 2 Crowdsale: 50 Token sold
  • Month 3 Crowdsale: 150 token sold

Therefor in the 13th Month can 100 Token get released into the vesting contract, but only 10% (per month) can be transferred out of it to wallets of team members. In the 14th Month further 50 Token can get released into the vesting contract, which got in total 150 token yet, which means that 15 token can be withdrewed into team members wallets and 10 Token from first Month as well. In the 15th Month another 150 Token can get released into VC, which got now in total 300 token which means that 30 token can get withdrewed into teams wallets. And so on ...

Since date-related arithmetic is not that easy in Solidity and Ethereum, we are going to work with "ideal 31 days month" (means: in Token Vesting Contract every month is 31 days long). This enhances the vesting period for team tokens for some days but this will not affect any investor!

Known issues in Unit tests

"Cannot increase current time (6214995149) to a moment in the past (6214995148)"

From time to time, in 1 out of 10,11,12... test runs this error is thrown running on ganache-cli. We use quiet offen openzeppelin-test-helpers in order to increase the blockchain timestamp/block height for testing events that will happen in the future. Sometimes, this error is happening then for no known reasons.

You can’t perform that action at this time.