# Run an ELDER Node

{% hint style="info" %}
GitHub access for Elder is currently limited to early partner projects and may not be available to everyone.
{% endhint %}

{% hint style="info" %}
The documentation may be outdated due to rapid development. Expect improvements as the code goes public and the project approaches its internal testnet phase.
{% endhint %}

### Run your first node

* Ensure `go` v1.22 or higher is installed, and `$GOPATH/bin` is added to the `PATH` variable. (Usually `GOPATH=~/go/bin`)
* Clone the elder repository, and install it.

```bash
$ git clone <https://github.com/0xElder/elder.git>
$ cd elder
$ go mod tidy
$ go build -o $GOPATH/bin ./cmd/elderd

# Check if elderd has been installed to $GOPATH/bin
$ elderd --help
```

* Instantiate validator and node config files. (`chain-id` will be used in later commands).

```bash
$ elderd init eldertest --chain-id elder

# This creates ~/.elder/{config, data}
```

* Set node config values.

```bash
$ cd ~/.elder/config

# Set the following values against the keys in respective file.

# app.toml
## min-gas-prices = "0elder"

# client.toml
## keyring-backend = "test"
```

* Add keys to test keyring.

```bash
$ elderd keys add alice
$ elderd keys add bob
```

* Create genesis account, and generate transaction to create validator with self delegation.

```bash
$ elderd genesis add-genesis-account bob 1000000000000000elder
$ elderd genesis gentx bob 10000000000elder
```

* Collect genesis transactions and start the full node.

```bash
$ elderd genesis collect-gentxs
$ elderd start
```

* The full node is now running. Check for the corresponding config values to interact via REST API endpoints or GRPC service methods.

```bash
# GRPC
## In ~/.elder/config/app.toml
## grpc.enable = true
## grpc.address = "localhost:9090" or "0.0.0.0:9090" to allow all incoming IP addresses.

# REST
## In ~/.elder/config/app.toml
## api.enable = true;
## api.address = "tcp://localhost:1317" or "tcp://0.0.0.0:1317" to allow all incoming IP addresses.
```


---

# 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://elder-2.gitbook.io/elder-docs/architecture/run-an-elder-node.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.
