Tenzro Testnet is live. Get testnet TNZO

Getting Started

This guide will walk you through installing Tenzro, starting your first node, creating a wallet, and making your first transactions.

Prerequisites

No prerequisites required. Tenzro CLI and node binaries are self-contained and ready to run on macOS and Linux systems.

Installation

Homebrew (Recommended)

brew tap tenzro/tap
brew install tenzro-cli

# Verify
tenzro version

Quick Install Script

curl -sSL https://get.tenzro.network | sh
tenzro version

Download Binary

Pre-built binaries for all platforms on GitHub Releases.

# macOS (Apple Silicon)
curl -LO https://github.com/tenzro/tenzro-cli/releases/latest/download/tenzro-cli-aarch64-apple-darwin.tar.gz
tar xzf tenzro-cli-aarch64-apple-darwin.tar.gz
sudo mv tenzro /usr/local/bin/
sudo mv tenzro-cli-latest /usr/local/bin/tenzro-cli
sudo mv tenzro-node-latest /usr/local/bin/tenzro-node

Advanced: Build from Source

For developers who want to build from source or contribute to the project:

# Prerequisites: Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Clone and build
git clone https://github.com/tenzro/tenzro-cli.git
cd tenzro-network
cargo build --release

# Binaries will be in target/release/
./target/release/tenzro-cli --version

SDK Installation

If you are building applications on Tenzro, install the SDK for your language:

Rust SDK

# Add to your Cargo.toml
cargo add tenzro-sdk

Minimal usage example:

use tenzro_sdk::{TenzroClient, LocalConfig};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = TenzroClient::connect(LocalConfig::default()).await?;
    let balance = client.wallet().get_balance("TENZRO").await?;
    println!("Balance: {}", balance);
    Ok(())
}

TypeScript SDK

npm install tenzro-sdk

Minimal usage example:

import { TenzroClient, LOCAL_CONFIG } from "@tenzro/sdk";

const client = await TenzroClient.connect(LOCAL_CONFIG);
const balance = await client.wallet().getBalance("TENZRO");
console.log("Balance:", balance);

See the full SDK Reference for complete API documentation and additional examples.

Starting a Node

Tenzro supports multiple node roles: Validator, ModelProvider, TeeProvider, and LightClient. For getting started, we'll run a light client node.

Start a Light Client

tenzro-node \
  --role light-client \
  --listen-addr /ip4/0.0.0.0/tcp/9000 \
  --rpc-addr 127.0.0.1:8545 \
  --boot-nodes /ip4/your-bootstrap-ip/tcp/9000/p2p/12D3K...

Start a Validator

# Validators require staked TNZO
tenzro-node \
  --role validator \
  --listen-addr /ip4/0.0.0.0/tcp/9000 \
  --rpc-addr 127.0.0.1:8545 \
  --data-dir ~/.tenzro/validator

Verify Node is Running

# Check node status via CLI
tenzro-cli info

# Or via RPC
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tenzro_nodeInfo","params":[],"id":1}'

You can also use the live testnet directly without running a local node:

# Or use the live testnet directly (no local node needed)
tenzro-cli info --rpc https://rpc.tenzro.network

Onboarding: Identity and Wallet Setup

Before using the network, you need a TDIP identity and a wallet. Tenzro provides two onboarding paths: creating a new identity or importing an existing private key.

Option 1: One-Click Join (Create New)

The simplest way to get started. This auto-provisions a cryptographic keypair, creates a multi-signature wallet, registers your TDIP identity on the ledger, detects your hardware profile, and issues an onboarding key for authenticated access — all in a single command.

# Via CLI
tenzro-cli join --name "Alice" --rpc https://rpc.tenzro.network

# Output:
# Connected to network (Chain ID: 1337)
# Identity and wallet provisioned on Tenzro Ledger
#
# DID:     did:tenzro:human:550e8400-e29b-41d4-...
# Address: 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb5
# Wallet:  Multi-signature threshold wallet
#
# Onboarding Key:
# Key:   tenzro_a1b2c3d4e5f6...
# Scope: wallet identity inference agent governance staking
# Save this key securely! It is shown only once.

# Or via RPC
curl -X POST http://127.0.0.1:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tenzro_participate","params":[{"display_name":"Alice"}],"id":1}'

The onboarding key is your credential for authenticated operations. Use it as a Bearer token in HTTP headers: Authorization: Bearer tenzro_.... It is tied to your TDIP identity and wallet — no central authority issues it; any node can generate and validate onboarding keys. Saved automatically to ~/.tenzro/config.json.

Option 2: Import from Private Key

If you have an existing private key, you can import it to create your identity and wallet. The key is used to derive your wallet address, and wallet shares are generated and stored in a securely encrypted keystore.

# Via CLI
tenzro-cli wallet import 0x4c0883a69102937d... \
  --name "Alice"

# You'll be prompted for a wallet password
# Output:
# DID:     did:tenzro:human:661f9500-...
# Address: 0x8Ba1f109551bD432803012645Ac136ddd64DBA72

Desktop App Setup

The Tenzro desktop app provides a guided Setup page on first launch. It offers two tabs: "Create New" and "Import Existing". On success, you are redirected to the Dashboard with your identity, wallet, and hardware profile displayed.

# Download and install the desktop app
# Available for macOS, Windows, and Linux

# The Setup page will appear on first launch
# Enter your display name, password, and RPC endpoint
# Click "Create Identity & Wallet" or import an existing key

Wallet Operations

List Wallets

tenzro-cli wallet list

Check Balance

# Check TNZO balance
tenzro-cli wallet balance --address 0x742d35Cc...

Send TNZO

# Send 10 TNZO to another address
tenzro-cli wallet send 0xRecipientAddr 10 --asset TNZO

Getting Testnet TNZO

Request testnet TNZO from the built-in faucet:

# Via CLI
tenzro faucet <your-address>

# Via JSON-RPC
curl -X POST https://rpc.tenzro.network \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tenzro_faucet","params":{"address":"<your-address>"}}'

Requesting AI Inference

List available models and request inference:

# List available models
tenzro-cli model list

# Chat with a model (interactive)
tenzro-cli chat gemma4-9b --rpc https://rpc.tenzro.network

# Or request inference via RPC
tenzro-cli inference request \
  gemma4-9b \
  "What is the capital of France?" \
  --max-tokens 100

Next Steps