μαρτυρία — witness, testimony

Prove what your AI agent did. Cryptographically.

Marturia is OpenTelemetry tracing with tamper-evident receipts. Every Claude, OpenAI, or agent action is signed into a hash-chained audit log that you, your customer, or your auditor can verify cryptographically. Multi-party witness cosigning means a compromised provider can’t forge logs after the fact.

What Marturia ships

OpenTelemetry on top, cryptographic chain underneath.

Three primitives, layered. Every agent action becomes a span; every span gets a signed receipt; every receipt rolls into a Merkle root your auditors’ instances cosign. No third-party SaaS in the trust chain — everything self-hosted, in-house cryptography.

01 · Chain

Tamper-evident chain

Per-tenant Ed25519 signing keys, HKDF-derived from a master KEK. SHA-256 hash chaining across receipts. Modify any event and every subsequent receipt is invalid — verifiers detect it on the next walk.

02 · Witness

Multi-party cosigning

Your customers and auditors run their own Marturia instances and cosign your Merkle roots. Sigstore/Rekor pattern, productized. A compromised operator alone can’t rewrite history; quorum forgery requires colluding with every cosigner.

03 · Timeline

Per-object timeline

/api/marturia/gl/invoice/1234 returns every span, every agent action, every retry that ever touched that object. The customer-support and dispute-resolution view no other observability tool has.

Live tailSSE-streamed spans, virtualized viewport
Issue groupingSentry-style fingerprinting with PII redaction
LLM spendPer customer, per feature, per model
Agent module viewsTrace any agent run end-to-end

60-second integration

OTLP-compatible. Drop in the exporter, you’re sending spans.

Marturia speaks OpenTelemetry on the wire, so existing OTel SDKs Just Work. Point the HTTP exporter at your project’s ingest endpoint, set your project key, and every span you record is signed and chained automatically.

  1. Install the OpenTelemetry FastAPI/Python SDK
  2. Set your Marturia project key as an env var
  3. Point the OTLP exporter at marturia.dev/api/v1/traces
  4. Spans flow. Receipts sign. Auditors verify.
# pip install opentelemetry-exporter-otlp-proto-http

from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.exporter.otlp.proto.http.trace_exporter \
    import OTLPSpanExporter

provider = TracerProvider()
exporter = OTLPSpanExporter(
    endpoint="https://marturia.dev/api/v1/traces",
    headers={"X-Marturia-Key": os.environ["MARTURIA_KEY"]},
)
provider.add_span_processor(BatchSpanProcessor(exporter))
trace.set_tracer_provider(provider)

# That’s it. Every span is signed + chained on ingest.

Pricing

Free for dev, priced for the value at the top.

Free tier exists so devs can start sending spans the same evening. Paid tiers gate the cryptographic features — you only need them when you have a customer asking you to prove something. Audit tier exists for the SOC 2 / HIPAA buyer who’s comparing us to Vanta.

Free
$0
forever, no card
  • 100k spans / month
  • 7-day retention
  • Live tail + issue grouping
  • No receipts
  • No verification
Team
$99
per month
  • 10M spans / month
  • 90-day retention
  • Merkle rollups
  • Chain-wide verify
  • Force-rollup verb
Audit
$399
per month
  • Unlimited spans
  • 1-year retention
  • Multi-party witness cosigning
  • Verifier reports on demand
  • Compliance-team support
2.9M+
spans / month under audit at contractorclaw.app
In-house
cryptography — no third-party KMS, no cloud signing service
Self-hosted
on the same infra you already trust with customer data

Early access

Be first to verify what your agent did.

Drop your email and I’ll send you the launch link the day Marturia opens for paid signups. No drip-marketing nonsense. One email, one link, one founder writing it.

Or email me directly: [email protected]