---
title: Setup the DevKit
description: Install, configure, and verify the Thru CLI
source_url:
  html: https://thru.org/docs/program-development/setting-up-thru-devkit/
  md: https://thru.org/docs/program-development/setting-up-thru-devkit.md
---

# Setup the DevKit

Use this guide to install the Thru CLI, configure the RPC endpoint, and verify everything works with a live request.

> **Caution:**
>
> This install workflow will change frequently until v1.0.0. Check back for updates when upgrading between versions.

## Prerequisites

- **Recommended install**: Install Node.js 18 or newer from [nodejs.org](https://nodejs.org/).
- **Linux package install**: Use an x64 Linux VM with `curl` and `sudo` access.

## Setup

1. **Install the CLI**

   Install the Thru CLI globally using npm:

   ```bash
   npm i -g thru
   ```

   The npm package installs a prebuilt binary for macOS, Windows, and Linux; no Rust toolchain is required.

   More installation methods:

   Debian or Ubuntu (.deb)

   Install the Debian package:

   ```bash
   curl -fsSLO https://github.com/Unto-Labs/thru/releases/download/v0.2.27/thru_0.2.27_amd64.deb
   sudo apt install ./thru_0.2.27_amd64.deb
   ```

   RHEL-compatible Linux (.rpm)

   Install the RPM package:

   ```bash
   sudo dnf install https://github.com/Unto-Labs/thru/releases/download/v0.2.27/thru-0.2.27-1.x86_64.rpm
   ```

   > **Note:**
   >
   > To build from source instead, `cargo install thru` is still available. It requires the Rust toolchain ([rustup.rs](https://rustup.rs/)) and the Buf CLI ([buf.build/docs/cli/installation](https://buf.build/docs/cli/installation/)).

   Verify the install:

   ```bash
   thru --help
   ```

2. **Install the SDKs**

   Install the Thru toolchain and C SDK using the CLI:

   ```bash
   # Install RISC-V toolchain
   thru dev toolchain install

   # Install C SDK
   thru dev sdk install c
   ```

   > **Note:**
   >
   > The SDK will be installed to `~/.thru/sdk/c/` by default. The toolchain will be installed to `~/.thru/sdk/toolchain/`.

3. **Make an initial call**

   Try a simple command:

   ```bash
   thru getversion
   ```

   > **Caution:**
   >
   > The default RPC endpoint is `https://grpc.alphanet.thruput.org`. You may change this to access other nodes.

4. **Configure RPC endpoint**

   Edit your CLI configuration file at `~/.thru/cli/config.yaml`

   Set the base URL:

   ```yaml
   rpc_base_url: https://grpc.alphanet.thruput.org
   ```

5. **Verify with getversion**

   Run again:

   ```bash
   thru --json getversion
   ```

   > **Tip:**
   >
   > If you can see the `thru-node` version your CLI can reach the alphanet endpoint.

6. **Generate a keypair**

   Generate a keypair to use for your account:

   ```bash
   thru keys generate $NAME
   ```

   For example, to create a keypair named `default`:

   ```bash
   thru keys generate default
   ```

   > **Caution:**
   >
   > This command generates a private key. **Never share your private key** with anyone. It’s stored locally as plaintext hex in `~/.thru/cli/config.yaml`. Keep your files safe.

   > **Note:**
   >
   > This keypair will be stored locally and used to sign transactions. You may replace this key later with `thru keys generate --overwrite default`

7. **Create your first account**

   Create an account on-chain using your keypair:

   ```bash
   thru account create $NAME
   ```

   For example, to create an account named `default`:

   ```bash
   thru account create default
   ```

   You’ll see output similar to this:

   ```plaintext
   Info: Creating account with fee payer proof...
   Info: Account public key: tayzC11YgWrPpXBon_hBxI_Szh3eUqsHxEelsHxFroPsAB
   Info: Using slot: 776
   Info: Calling makeStateProof RPC method...
   Success: State proof created successfully
   Info: Building transaction with fee payer proof...
   Info: Signing transaction...
   Info: Submitting transaction...
   Account Creation
     Key Name: default
     Public Key: tayzC11YgWrPpXBon_hBxI_Szh3eUqsHxEelsHxFroPsAB
     Signature: tsRIKKU4-Hu9nqzwlaZxcHjv7etbguo6g1AUMt5q9ga96dXxvqnTRTm8w6XH9C6OGSgcPc94TMmKzczNg8qqMTCyXX
     Status: success
   Success: Account creation transaction completed. Signature: tsRIKKU4-Hu9nqzwlaZxcHjv7etbguo6g1AUMt5q9ga96dXxvqnTRTm8w6XH9C6OGSgcPc94TMmKzczNg8qqMTCyXX
   ```

## Updating the CLI

When the CLI changes, update it with the same install method you used. For npm installs, run:

```bash
npm i -g thru@latest
```

For Debian or Ubuntu VM installs, download and install the newer `.deb` package from the Thru GitHub release.
