> ## Documentation Index
> Fetch the complete documentation index at: https://docs.verity.usher.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Network Nodes & CLI

> This topic covers operating the Verity Network Nodes via the CLI, and additional tools for verifying TLS proofs.

Verity Network Nodes are isolated binaries, operable from the **Verity CLI**.

These Network Nodes include:

1. Verity Prover
2. Verity Notary

Their isolation as binaries, operated as a separate process from the host environment orchestrating the data pipeline, was a design decision that allows for various languages to be used by the developer. This decision also allows for intricate optimisations specifically for the TLS proving mechanic. All private data processed over network requests to data sources remains isolated in the **Verity Prover**. Interfacing with the Verity Prover is the primary action that the developer will perform. [Verity Clients](/build/clients/rust) exist to support the developer in this process.

Usher Labs offers a fully managed Verity Prover as a service, minimising overhead in operating the Prover. To learn more, please review: [📓 Managed Services](/build/managed-services).

The Verity CLI comes with tools for verifying TLS proofs from the command line.

In essence, the Verity CLI encompasses technologies that establish our data pipeline through verifiable data sourcing.

## CLI Binary Download

```bash theme={null}
curl -fsSL https://get.verity.usher.so -o get-verity.sh
sudo bash ./get-verity.sh
```

*The script automatically installs the appropriate binary based on the host environment and operating system.*

## Start a Verity Notary Node

```bash theme={null}
verity notary start --config ./config/notary.yaml
```

<Note>
  **In Production**:
  Usher Labs will manage a Notary on your behalf. This is advised, as Notary operators require PoS to secure their participation in the [Verity Protocol](/tech/architecture). A managed Notary URL can be shared on request. Please advise the specific region where you intend to deploy your Prover to ensure we can optimise latency in the MPC setup.
</Note>

## Start a Verity Prover Node

```bash theme={null}
verity prover start
```

## Use

### Generate a Request ID

```bash theme={null}
uuidgen
# 678D765E-B6D0-4BFA-AD4C-EBBC92815B25
```

### **Subscribe to Async Proofs**

To receive proofs delivered via Server-Sent Events (SSE), use the `curl` tool. Open a terminal and listen for SSE at the `/proof/[request_id]` endpoint:

```
curl -N http://localhost:8080/proof/678D765E-B6D0-4BFA-AD4C-EBBC92815B25
```

### Call the Prover

```bash theme={null}
curl http://localhost:8080/proxy -X POST \
-H "T-PROXY-URL: https://jsonplaceholder.typicode.com/posts" \
-H "T-REDACTED: res:body:id,req:body:userId,res:body:userId, req:header:x-api-key" \
-H "T-REQUEST-ID: 678D765E-B6D0-4BFA-AD4C-EBBC92815B25" \
-H "Content-Type: application/json" \
-H "X-API-KEY: secret" \
-d '{"title": "usher", "body": "labs", "userId": 10}'
```

**CoinGecko Example**

```bash theme={null}
curl http://localhost:8080/proxy -X GET \
-H "T-PROXY-URL: https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" \
-H "T-REQUEST-ID: 678D765E-B6D0-4BFA-AD4C-EBBC92815B25" \
-H "Content-Type: application/json"
```

### Verify the proof by the CLI

```bash theme={null}
verity verify --notary-pub-key ./fixture/notary/notary.pub --proof ./fixture/proof.json
```
