# 2 Install the CDT

This section provides guidance on how to install `cyberway.cdt` tools on your server.

The CyberWay Contract Development Toolkit (CyberWay CDT) is based on EOSIO CDT and is a collection of tools related to contract compilation. CyberWay CDT is primarily used for compiling contracts and generating ABI.

It is recommended to build and debug contracts on a specific server. Therefore, the server where CDT is installed, must meet the following characteristics (or above):

* RAM size (a min. of): 8 GB
* disk space (a min. of): 20 GB

One of the following operating systems must also be installed on the server:

* Ubuntu 16.04
* Ubuntu 18.04
* MacOS Darwin 10.12 (or later versions)
* Centos 7
* Fedora 25 (or later versions)
* Mint 18

**Attention**

* If you have previously installed CyberWay.CDT, run the `uninstall.sh` script (it is in the root of CyberWay.CDT repository) before downloading and using the binary releases.

## Install cyberway.cdt on local server

Installing `cyberway.cdt` requires you to perform the following actions:\
1\. Cloning the `cyberway.cdt` repository to your server\
2\. Building binaries\
3\. Tools installation

The last two actions are performed by scripts `build.sh` and `install.sh` located in the root of `cyberway.cdt`. These scripts are universal and designed for all operating systems supported by the CyberWay platform.

### Clone the cyberway.cdt repository

The location where `cyberway.cdt` is cloned is not that important because `cyberway.cdt` will be installing as a local binary in later steps. You can clone `cyberway.cdt` to "contracts" directory previously created or to any other location on your local system that is fit.

```bash
 $ cd CONTRACTS_DIR
 $ git clone --recursive https://github.com/cyberway/cyberway.cdt
```

### Build binaries

```bash
 $ cd cyberway.cdt
 $ ./build.sh
```

### Install tools

```bash
 $ sudo ./install.sh
```

The following tools will be installed to your local machine:

* cyberway-abidiff
* cyberway-cpp
* eosio-abigen
* eosio-cc
* eosio-init
* eosio-ld
* eosio-objcopy
* eosio-pp
* eosio-wasm2wast
* eosio-wast2wasm
* llvm-ar
* llvm-nm
* llvm-objdump
* llvm-ranlib
* llvm-readelf
* llvm-readobj
* llvm-strip

### Uninstall

```bash
 $ cd cyberway.cdt
 $ sudo ./uninstall.sh
```

The `install.sh` and `uninstall.sh` scripts need to be ran with `sudo` because various binaries of `cyberway.cdt` will be installed locally. It needs to be typed computer's account password.

## Important

Installing `cyberway.cdt` will make the compiled binary global, therefore it can be accessable anywhere. For this tutorial, it is strongly suggested that you do not skip the install step for `cyberway.cdt`, failing to install will make it more difficult to follow this and other tutorials and make usage more difficult in general.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cyberway.io/development_environment/install_cdt.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
