# 1. Environment Setup

> **\[MUST] For this tutorial, you must follow the versions specified on the** [**first page**](https://docs.klaytn.foundation/dapp/tutorials/count-dapp#testing-environment) **when you are setting up the environment. Please change the node version to 10.16.0 by using nvm before downloading caver-js.**

## 1) Install Node.js (npm) <a href="#id-1-install-node-js-npm" id="id-1-install-node-js-npm"></a>

* Download Node.js (npm) from the official site: <https://nodejs.org/>
* Install the package by clicking the download file.
* Type `$ node --version` in your terminal to verify `node` has been successfully installed.

  ```
  v10.16.0
  ```

⚠ At the time of writing, the latest LTS version that is compatible with `caver-js` is 10.16.0. If you have a higher Node version, `caver-js` cannot be installed. Reinstall the Node or use [NVM (Node Version Manager)](https://github.com/nvm-sh/nvm) to set up a stable environment.

## 2) Install Truffle <a href="#id-2-install-truffle" id="id-2-install-truffle"></a>

Truffle is a great tool for compiling and deploying contract files.

> Use `nvm` to set the node version to 12.0.0 only if you are using truffle.

* Type `$ nvm install 12.0.0`
* Type `$ nvm use 12.0.0`
* Type `$ sudo npm install -g truffle` in your terminal to install the truffle.
* Type `$ truffle version` in your terminal to verify `truffle` has been installed successfully.
* (**Deploy your smart contract by using truffle**)
* Type `$ nvm use 10.16.0` to come back node v10.16.0 after using truffle.

⚠ If the version is lower than 5, install the truffle version 5.\
`$ sudo npm install -g truffle@5`
