# Getting started

Here is a guide on how to install **dncli** command line interface and connect to **dfinance**.

## Installation using precompiled binaries

First of all download the latest version of **dncli** for your system from [release pages](https://github.com/dfinance/dnode/releases).

Install downloaded **dncli** binary.

For Mac OS/Linux:

```
mv <downloaded binary path> ./dncli
chmod +x ./dncli
mv ./dncli /usr/local/bin/dncli
```

For Windows:

1. Go to **"Program Files"** directory.
2. Create there **"dn"** directory.
3. Rename the downloaded file to **"dncli"** and put it into **"dn"** directory.

Now **"cmd"** and execute:

```
setx path "%path%;%ProgramFiles%\dn"
```

Now restart **"cmd"**.

Check that installation successful done by running the command:

```
dncli version
```

Your should see your current version of **dncli** in output.

## Configuration

Let's configure **dncli** and after go to the next step:

```
dncli config chain-id dn-testnet
dncli config output json
dncli config indent true
dncli config trust-node true
dncli config compiler tcp://pub.dfinance.co:50051
dncli config node https://rpc.dfinance.co:443
dncli config keyring-backend file
```

These configurations will connect your local **dncli** with remote nodes.

Check that **dncli** configurated correctly:

```
dncli status
```

## Installation from sources

Before we start you should have a correct 'GOPATH', 'GOROOT' environment variables, also installed [Golang](https://golang.org/).

Required:

* golang 1.13.8 or later.
* protoc - here is [installation instruction](https://www.grpc.io/docs/quickstart/go/).

### Build and Install using Makefile

Clone dfinance node repository to suitable place

```
git clone https://github.com/dfinance/dnode.git
```

Build and install **dncli** as binary using Makefile

```
make install-dncli
```

So after this command **dncli** will be available from console

```
dncli version --long
```

### Build without Makefile

And let's build **dncli**:

```
GO111MODULE=on go build -o dncli cmd/dncli/main.go
```

Command must execute fine, after it you can run **dncli**:

```
./dncli version --long
```


---

# 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.dfinance.co/getting_started.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.
