โœจ๐Ÿชฒโœจ

LTP

Sovereign Telemetry

Encrypted sensor networks. No broker. No cloud.
Built on Janus. Powered by Libertaria. Runs on 8 bytes.

๐Ÿ”ด Live Demo โ€” Two nodes exchanging encrypted telemetry
Node A (Berlin) โ†’ Node B (Paris)
Temperature: 23.5ยฐC โ”‚ Humidity: 67%
Latency: 12ms โ”‚ Encryption: Noise_XX

Latest packet (8 bytes Micro-LCC):
4C 04 00 00 00 0A 3F 8A

Why LTP?

๐Ÿ”

E2EE by Default

No configuration needed. Every session uses Noise XX handshake. Your data is encrypted end-to-end, always.

๐Ÿ†”

DID Identity

Not IP addresses. Ed25519 SoulKeys. Cryptographic identity that persists across networks.

โšก

8-Byte Keepalives

Micro-LCC protocol. 96% less bandwidth than MQTT. Satellite-grade efficiency for any network.

๐Ÿ’พ

Retained Values

Lamport-stamped latest values. New subscribers get data immediately with causal consistency.

๐Ÿ“œ

Will-Message

Dead man's switch. Auto-trigger insurance claims, key rotation, or governance votes on device death.

๐Ÿ 

No Broker

Peer-to-peer mesh. No cloud dependency. Works offline. Can't be censored.

The Code

This is a complete, runnable LTP program in Janus

// ltp-example: Solar Panel Monitor
// A complete, production-ready telemetry system

import ltp

// Define the sensor behavior
sensor SolarPanel {
    // Publish power output every 30 seconds
    publish(
        $ltp.ocean.{location}.solar.power,
        { 
            watts: adc.read(0) * 3.3,
            timestamp: time.sovereign()
        },
        retain: true,
        priority: .normal
    ) every 30s
}

// Subscribe to energy alerts from your Chapter
on $ltp.chapter.{chapter}.energy.alert {
    led.blink(.red, 3)
    log.warn("Energy alert: {message}")
}

// Dead man's switch: trigger insurance if offline >5min
will {
    target: $ltp.contract.insurance.claim,
    action: .invoke("solar_offline_claim"),
    payload: { panel_id: did, last_reading: retained.power },
    trigger: .missed_keepalives(10)
}

LTP vs MQTT

Feature MQTT LTP
Encryption โœ— Optional (rarely used) โœ“ E2EE by default (Noise XX)
Identity โœ— IP addresses only โœ“ DIDs (Ed25519 SoulKeys)
Keepalive Size ~20 bytes 8 bytes (Micro-LCC)
Broker Required โœ— Centralized โœ“ Peer-to-peer mesh
Retained Values โœ— Race conditions โœ“ Lamport-stamped
Dead Man's Switch โœ— Not possible โœ“ Will-Message
Smart Contracts โœ— N/A โœ“ DID-invokable

Get Started in 5 Minutes

# Install LTP CLI
curl -fsSL https://ltp.libertaria.dev/install.sh | sh

# Generate your identity
ltp keygen --output identity.did

# Start a node
ltp node --identity identity.did --port 9999

# Publish a reading
ltp publish sensor/berlin/temperature 23.5

# Subscribe to readings
ltp subscribe sensor/+/temperature
Full Getting Started Guide