Marturia
v0.4.2 · Closed beta Sign in

μαρτυρία   / mar·tu·ría /   n. ancient greek — witness, testimony, the act of bearing record

Cryptographic evidence for every
AI agent decision.

The EU AI Act demands automatic logging that can't be altered after the fact, and human oversight you can prove. Marturia produces the receipts — Ed25519-signed, hash-chained, Merkle-anchored, witness-cosigned — with an offline open-source verifier on PyPI so auditors don't depend on us to verify our work.

Ed25519 · per-tenant keys SHA-256 · hash chain OTLP · drop-in exporter pip install marturia-verify
Live tail · marturia.dev/api/v1/traces 128 spans/s · SIGNING
    Receipts signed2,914,308 today
    Merkle roots1,247 /24h
    Cosigner quorum3 / 4 witnesses
    Verifier hits8,612 offline
    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
    § 02 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 Chainprimitive_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.

    RECEIPT N-2 RECEIPT N-1 RECEIPT N hash: a7f1… prev: 3c4e… sig: Ed25519 ts: 14:02:18.91 hash: b2c9… prev: a7f1… sig: Ed25519 ts: 14:02:19.04 hash: e8d2… prev: b2c9… sig: Ed25519 ts: 14:02:19.12
    02 Witnessprimitive_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.

    root b9f3… W₁ W₂ W₃ W₄ cosign✓ cosign✓ cosign✓ pending…
    03 Timelineprimitive_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.

    t0 +0.4s +1.2s +3.8s +5.1s invoice.created agent.classify tool.lookup_gl human.override invoice.posted
    FEATURE · 01

    Live tail

    SSE-streamed spans, virtualized viewport. 200k events on screen without dropping a frame.

    FEATURE · 02

    Issue grouping

    Sentry-style fingerprinting with PII redaction baked in at the exporter.

    FEATURE · 03

    LLM spend

    Per customer, per feature, per model. Stop arguing about the bill with finance.

    FEATURE · 04

    Agent module views

    Trace any agent run end-to-end. Span tree + tool calls + token usage on one page.

    § 03 Try Article 14 yourself Live in-browser · ephemeral keys · same code path as production

    A real signed chain. Then break it.

    Walk an agent decision through to a human override, watch the chain commit, and then tamper with any receipt. The verifier — the same wheel you'll pip install — catches the break in real time, the way it would in a regulator's hands.

    Scenario · Invoice #1234 · vendor ACME Steel · $14,200.00 · policy threshold $10,000
    tenant acme_prod Ed25519 8a4f:91d2:c0e7
    01 · Agent runs 02 · Human reviews 03 · Chain commits 04 · Tamper 05 · Verifier walks

    Agent · classifier_v3.1 · gpt-4o

    No run yet · click Run agent to begin

    Human reviewer · Article 14 oversight

    Waiting for agent to escalate · over-threshold decisions route here

    Receipt chain · hash-linked · Ed25519-signed

    • R∅ chain.genesistenant=acme_prod root
    marturia-verify · v0.4.2 · offline wheel CHAIN VALID
    $ pip install marturia-verify
    Successfully installed marturia-verify-0.4.2
    $ marturia-verify --help
      marturia-verify chain --id=<path>   walk and verify a receipt chain
      marturia-verify roots --since=<ts>   list Merkle roots cosigned in window
    Ready. Run the scenario above to produce a chain to verify.
    Tamper:
    § 04 60-second integration OTLP-compatible · drop in the exporter, you're sending spans

    It speaks OpenTelemetry. Your SDK already works.

    Marturia accepts OTLP 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 SDK FastAPI/Python here; equivalents for Node, Go, Ruby ship from the same OTel registry.
    2. Set your project key Export MARTURIA_KEY in the environment. One key per project, rotatable.
    3. Point the OTLP exporter at ingest Endpoint: marturia.dev/api/v1/traces — TLS terminated, OTLP/HTTP, project key in the header.
    4. Spans flow. Receipts sign. Auditors verify. From this moment on, every span generates an Ed25519-signed receipt. pip install marturia-verify from your auditor's laptop.
    signing_chain.py · Python 3.11 · OTel 1.27 copy
    # 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.
    § 05 Compliance evidence Artifacts a regulator will actually verify

    Evidence, not policy documents.

    Most AI governance products produce documentation. Marturia produces cryptographic evidence: tamper-evident receipts of every agent decision, every human override, every rejected action. The kind of artifact a regulator under the EU AI Act, an ISO 42001 auditor, or an insurance underwriter can actually verify.

    EU AI Act · Art. 12

    Automatic logging, cryptographically signed.

    Every agent action becomes a span and every span produces a signed receipt with its complete inputs, outputs, model version, and tool calls. Article 12 demands automatic recording of events that can't be altered after the fact — hash-chained Ed25519 signatures are exactly that.

    EVIDENCE TYPERECEIPT.LOG
    EU AI Act · Art. 14

    Provable human oversight, not theater.

    Article 14 isn't satisfied by routing decisions to a human; you have to prove what a human reviewed and why they overrode the model. Marturia records the human-in-loop step as a receipt of its own, chained to the agent decision it overrode. Independently verifiable, defensible in a regulatory probe.

    EVIDENCE TYPERECEIPT.OVERRIDE
    ISO/IEC 42001

    The audit trail your AIMS needs.

    ISO/IEC 42001 certification audits require objective evidence that your AI Management System actually does what your policy says it does. Marturia receipts plug straight in as Annex A.6 evidence: data audit trails, decision logging, post-incident traceability — all dated, signed, and witness-cosigned.

    EVIDENCE TYPEANNEX A.6 PACK
    NIST AI RMF

    Function-mapped evidence

    Maps to GOVERN, MAP, MEASURE, and MANAGE function evidence with one export.

    SOC 2 · HIPAA

    Tamper-evident logs

    Satisfies CC7.2 and 45 CFR § 164.312(b) audit-log requirements out of the box.

    Insurance-grade

    Claims-ready evidence

    For AI-liability underwriting — receipts that hold up at the carrier and in court.

    CEN-CENELEC ready

    prEN 18229-1 schema

    Logging schema designed against the prEN 18229-1 logging draft, ready when it lands.

    The differentiator competitors don't have

    Offline verifier on PyPI.

    pip install marturia-verify gives any auditor a standalone wheel. They can verify our receipts without Marturia's servers, without a blockchain, without trusting us. If we vanish tomorrow, your evidence still holds in court. Most cryptographic-audit-trail competitors require their infrastructure or a public blockchain to verify a receipt. We don't.

    $ pip install marturia-verify
    § 06 Pricing Free for dev · priced for the value at the top

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

    The 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. The Audit tier exists for the EU AI Act / ISO 42001 buyer comparing us to Credo AI, OneTrust, and GuardianChain — at roughly a quarter of their price.

    Free

    $0forever · no card
    • 100k spans / month
    • 7-day retention
    • Live tail + issue grouping
    • Public verification via marturia-verify
    • Customer-signed receipts · read-only

    Pro

    $49/ month
    • 1M spans / month
    • 30-day retention
    • Signed receipts (EU AI Act Art. 12)
    • Per-receipt offline verify · PyPI wheel
    • Email support

    Team

    $199/ month
    • 10M spans / month
    • 90-day retention
    • Article 14 human-oversight receipts
    • Merkle root rollups every 15 min
    • Chain-wide offline verification
    • Slack support

    Audit

    $799/ month
    • Unlimited spans · 1-year retention
    • BYOK — bring your own KEK
    • Multi-party witness cosigning (we run 1, you bring 2+)
    • ISO/IEC 42001 evidence pack (Annex A.6 export)
    • Dedicated compliance-team support

    Enterprise

    Self-hosted on your VPC or air-gapped. Dedicated witness cosigners. Custom SLA + 24/7 support. Custom retention & audit-report formats.

    Contact sales
    Closed beta — invite only

    Request access to the closed beta.

    The product is live. The dashboard, OTLP ingest, signed receipts, public verifier, and the marturia-verify Python package on PyPI all work end-to-end. We're running invite-only while we onboard the first wave of design partners and finish wiring billing, key ceremony, and isolated production hosting.

    request_id · 7b2f-a9c4-…