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.
- Log in to the Console.
- Create an Organization â think of it as a private room for your devices.
- 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.
Option A: Plug and Play (Recommended)â
- Flash the
hxtp-microfirmware to your device. - The device automatically generates its own Ed25519 keypair (like a unique, unforgeable ID card).
- 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?â
- How It All Works: A simple map of how data flows from you to your devices.
- Meet the Protocol: A friendly explanation of how HxTP keeps everything secure.
- API Reference: Every endpoint available.