# Ethereal Test Validator

During early stage development, it is often convenient to target a cluster with fewer restrictions and more configuration options than the public offerings provide. This is easily achieved with the Ethereal`-test-validator` binary, which starts a full-featured, single-node cluster on the developer's workstation.

### Advantages

* No RPC rate-limits
* No airdrop limits
* Direct on-chain program deployment (`--bpf-program ...`)
* Clone accounts from a public cluster, including programs (`--clone ...`)
* Configurable transaction history retention (`--limit-ledger-size ...`)
* Configurable epoch length (`--slots-per-epoch ...`)
* Jump to an arbitrary slot (`--warp-slot ...`)

### Installation

The Ethereal`-test-validator` binary ships with the EtherealNetwork CLI Tool Suite. Install before continuing.

### Running

First take a look at the configuration options

```
Ethereal-network-test-validator --help
```

Next start the test validator

Ethereal-network-test-validator

By default, basic status information is printed while the process is running. See Appendix I for details

Ledger location: test-ledger

Log: test-ledger/validator.log

Identity: EPhgPANa5Rh2wa4V2jxt7YbtWa3Uyw4sTeZ13cQjDDB8

Genesis Hash: 4754oPEMhAKy14CZc8GzQUP93CB4ouELyaTs4P8ittYn

Version: 1.6.7

Shred Version: 13286

Gossip Address: 127.0.0.1:1024

TPU Address: 127.0.0.1:1027

JSON RPC URL: <http://127.0.0.1:8899>

⠈ 00:36:02 | Processed Slot: 5142 | Confirmed Slot: 5142 | Finalized Slot: 5110 | Snapshot Slot: 5100 | Transactions: 5142 | ◎499.974295000

Leave Ethereal-test-validator running in its own terminal. When it is no longer needed, it can be stopped with ctrl-c.

### Interacting

Open a new terminal to interact with a running Ethereal`-test-validator` instance using other binaries from the EtherealNetwork CLI Tool Suite or your own client software.

**Configure the CLI Tool Suite to target a local cluster by default**[**#**](https://docs.velas.com/apps/test-validator#configure-the-cli-tool-suite-to-target-a-local-cluster-by-default)

Etherealconfig set --url <http://127.0.0.1:8899>

**Verify the CLI Tool Suite configuration**

Etherealgenesis-hash

* **NOTE**: The result should match the `Genesis Hash:` field in the Ethereal`-test-validator` status output

**Check the wallet balance**

Etherealbalance

* **NOTE**: `Error: No such file or directory (os error 2)` means that the default wallet does not yet exist. Create it with Ethereal`-keygen new`.
* **NOTE**: If the wallet has a zero XZO balance, airdrop some localnet ETRL with Ethereal`airdrop 10`

**Perform a basic transfer transaction**

Etherealtransfer EPhgPANa5Rh2wa4V2jxt7YbtWa3Uyw4sTeZ13cQjDDB8 1

**Monitor `msg!()` output from on-chain programs**

Ethereallogs

* **NOTE**: This command needs to be running when the target transaction is executed. Run it in its own terminal

### Appendix I: Status Output

Ledger location: test-ledger

* File path of the ledger storage directory. This directory can get large. Store less transaction history with `--limit-ledger-size ...` or relocate it with `--ledger ...`

Log: test-ledger/validator.log

* File path of the validator text log file. The log can also be streamed by passing `--log`. Status output is suppressed in this case.

Identity: EPhgPANa5Rh2wa4V2jxt7YbtWa3Uyw4sTeZ13cQjDDB8

* The validator's identity in the \[gossip network]

Version: 1.6.7

* The software version

Gossip Address: 127.0.0.1:1024

TPU Address: 127.0.0.1:1027

JSON RPC URL: <http://127.0.0.1:8899>

The network address of the \[Gossip], \[Transaction Processing Unit] and \[JSON RPC] service, respectively

⠈ 00:36:02 | Processed Slot: 5142 | Confirmed Slot: 5142 | Finalized Slot: 5110 | Snapshot Slot: 5100 | Transactions: 5142 | ◎499.974295000

Session running time, current slot of the three block commitment levels, slot height of the last snapshot, transaction count, voting authority balance


---

# 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://ethereals-blockchain.gitbook.io/ethereal-chain-documentation/ethereal-test-validator.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.
