# How to Run GR1D Circuit Node

**Steps to Start GR1D Node**

**1. Navigate to your gr1d-node Directory**

Locate the directory where you built the **gr1d-node** binary.

**2. Copy in the JWT Secret**

Both **gr1d-geth** and **gr1d-node** need to use the same **JWT secret**. Copy the JWT secret you generated in a previous step into the **gr1d-node** directory.

```bash
cp /path/to/jwt.txt .
```

**3. Set Environment Variables**

Set the following environment variables to configure the GR1D node:

```bash
export L1_RPC_URL=...  # URL for the L1 node to sync from. For a local L1 node, the most common URL is http://127.0.0.1:8545
export L1_RPC_KIND=... # RPC type (alchemy, quicknode, infura, parity, nethermind, debug_geth, erigon, basic, any)
export L1_BEACON_URL=... # URL for the L1 Beacon-node HTTP endpoint. For a local L1 Beacon node, the common URL is http://127.0.0.1:3500
```

***

**4. Start gr1d-node**

Use the following command to start the **gr1d-node** with default configuration. Refer to the **GR1D Circuit Node** configuration documentation for more detailed information on available options.

⚠️ **Important:** The **GR1D Circuit Node RPC** should not be exposed publicly. If exposed, it could accidentally expose admin controls to the public internet.

Additionally, sync mode is set to **`--syncmode=execution-layer`** to enable snap sync and remove the need to initialize the node with a pre-existing data directory.

```bash
./bin/gr1d-node \
  --l1=$L1_RPC_URL \
  --l1.rpckind=$L1_RPC_KIND \
  --l1.beacon=$L1_BEACON_URL \
  --l2=ws://localhost:8551 \
  --l2.jwt-secret=./jwt.txt \
  --network=gr1d-mainnet \
  --syncmode=execution-layer \
  --l2.enginekind=geth
```
