Marturia docs
Marturia is OpenTelemetry tracing with tamper-evident receipts. You ingest spans the standard OTLP way; we hash-chain and sign every receipt with your tenant's per-key Ed25519. Anyone you share a receipt URL with can verify it offline — no Marturia account required.
What you get
OpenTelemetry observability
Standard OTLP/HTTP ingest. Use any OTel SDK in any language. We display spans, traces, services, models, costs, and errors in a dashboard built to live open all day. No proprietary instrumentation.
Cryptographic receipts
Each agent decision can be recorded as a receipt: a canonical-JSON payload, hash-chained against the previous receipt, signed by your tenant's Ed25519 key. The chain is anchored daily with a Merkle root and witness cosigning across operator nodes.
Public verifier URLs
Every receipt has a shareable URL. Send it to an auditor, a customer, or
a regulator. They pip install marturia-verify, point it at
the URL, and the tool confirms — offline — that the signature is valid,
the chain links correctly, and the data hasn't been tampered with.
Architecture, in one diagram
┌──────────────────────┐
│ Your AI agent / app │
└──────────┬───────────┘
│
┌────────┴────────┐
│ │
OTLP spans Receipts API
(POST /traces) (POST /receipts)
│ │
┌─┴─────────────────┴─┐
│ marturia.dev │ # Tenant-scoped, RLS-isolated
│ ├ X-Marturia-Key │ # Auth header on every request
│ ├ Hash chain │ # Per tenant, append-only
│ ├ Ed25519 signing │ # Per-tenant key in HKDF tree
│ └ Merkle anchoring │ # 15-min rollups, multi-witness
└─────────┬───────────┘
│
Public verify URL
(no auth, anyone can fetch)
│
┌───────────┴────────────┐
│ marturia-verify (pip) │ # Runs offline against the JSON
└────────────────────────┘
Self-host or use ours
The hosted instance at marturia.dev is the fastest path. The
whole stack (ingest, signing, verifier, dashboard) is also designed for
on-prem deployment — no third-party dependencies for the cryptographic
core. Talk to us if you need that.
Where to next
- You want results now — start with the 15-minute quickstart.
- You're already emitting OTel spans elsewhere — see OTLP setup for the exporter config.
- You're shopping the cryptography — read creating receipts and offline verification.
- You're integrating from raw HTTP — full API reference.