Telemetry schema v3.2 (top-level fields)
Each batch includes:
key (BTS License Key), batchId, sequenceStart/sequenceEnd (action sequence numbers), period (ISO-8601 time range), reportingMode (self-reported or aegis-verified), a scores object with all five dimension data, and an evidence object with the total event count, SHA-256 batch hash, and a representative event sample.
{
"key": "BTS-XXXX-XXXX-XXXX-XXXX",
"batchId": "batch_994",
"sequenceStart": 10452,
"sequenceEnd": 10493,
"reportingMode": "self-reported",
"scores": { ... },
"evidence": {
"batchHash": "sha256_of_full_event_log",
"totalEventsInBatch": 453
}
}
The oracle problem and the trust ceiling
Self-reported telemetry is inherently gameable - a malicious operator can fabricate any metrics they choose. This is a proven impossibility in distributed systems (the Byzantine Generals Problem). Borealis addresses this with a layered anti-gaming stack: (1) key revocation as a deterrent (gaming means losing a $39.99 key plus permanent Hedera-anchored reputation damage), (2) statistical detection of suspiciously perfect or uniform metrics, and (3) Aegis (formerly known as Sidecar) - the independent verification layer. The trust ceiling (max BTS 85 for self-reported) exists because the protocol acknowledges the limitation honestly rather than claiming false certainty.
How to submit telemetry
Submit a telemetry batch via
POST /v1/licenses/telemetry with a valid BTS License Key. The pipeline validates the payload with Zod schemas, runs the 5-factor scoring engine, applies the trust ceiling, persists the result to license_score_history, and anchors the score hash to Hedera HCS Data Topic. The response includes the BTS score, credit rating, and Hedera transaction ID. The Merlin SDK provides a TypeScript wrapper: merlin.submitTelemetry(payload).