Skip to main content

Quick Start Guide

This guide walks you through your first HxTP device setup — from creating an account to sending your first command.

What You'll Need​

  • An Account: Register at the Hestia Labs Console.
  • A Computer: With Node.js, Python, or Go installed.
  • Optional Hardware: An ESP32 or ESP8266 board for testing with real devices.

1. Create Your Organization​

Your Organization (called a Tenant) is the secure home for all your devices.

  1. Log in to the Console.
  2. Create an Organization — think of it as a private room for your devices.
  3. Generate an API Key — you'll use this to register devices.

2. Register (Claim) a Device​

Hestia Labs uses a Zero-Secret approach. Your device creates its own digital identity — no passwords, no shared secrets.

  1. Flash the hxtp-micro firmware to your device.
  2. The device automatically generates its own Ed25519 keypair (like a unique, unforgeable ID card).
  3. Open the Console and click "Claim Device" — the device shows up and you approve it.

Option B: Register via CLI​

hxtp device register temperature-sensor --name "Living Room"

3. Watch Your Device Come Online​

After claiming, your device goes through a quick introduction process called the HELLO Handshake:

Device connects → Sends "HELLO" with its public key
→ Cloud replies "HELLO_ACK"
→ Device is now ACTIVE and ready

This happens in the background — you don't need to do anything. The dashboard shows the device's status as it moves through each step.

4. Send Your First Command​

Once a device is ACTIVE, you can control it. Commands are digitally signed so the device knows they're really from you.

Using the CLI​

hxtp send <device-id> toggle_led --params '{"brightness": 100}'

Using Python​

import asyncio
from hxtp_py.client import HxTPClient

async def main():
client = HxTPClient(
url="https://api.hestialabs.in/api/v1",
tenant_id="your-tenant-id",
device_id="your-device-id",
private_key_hex="your-private-key", # kept safe by you
client_id="my-app",
)

await client.connect()
await client.send_command({
"action": "toggle_led",
"params": {"brightness": 100},
})
await client.disconnect()

asyncio.run(main())

Using JavaScript​

import { HXTPClient } from 'hxtp-js';

const client = new HXTPClient({
url: 'https://api.hestialabs.in/api/v1',
tenantId: 'your-tenant-id',
deviceId: 'your-device-id',
signingKey: 'your-private-key',
clientId: 'my-app',
});

await client.connect();
await client.sendCommand({
action: 'toggle_led',
params: { brightness: 100 },
});
await client.disconnect();

Using Go​

import "github.com/hestialabs/hxtp-go/client"

c := client.NewClient(client.ClientConfig{
BaseURL: "https://api.hestialabs.in/api/v1",
Token: "your-api-token",
DeviceId: "your-device-id",
ClientId: "my-app",
Secret: "your-private-key",
})

resp, _ := c.SendCommand("your-device-id", "toggle_led", map[string]interface{}{
"brightness": 100,
}, false)

5. Watch Your Data Flow​

Open the Console to see real-time updates from your device — state changes, sensor readings, and command history.


What's Next?​