Your agent log proves what happened.
Ours proves you didn't write it afterwards.

Drop in a Vetro ledger or an OpenTelemetry GenAI trace from the agent you already run — nothing to install. A log you hold proves nothing about when it existed: you own the file, so you could have written it this morning. This service checks it and countersigns its digest as an independent party, at a time you do not control.

Run it on the sample ledgerCheck a ledger or an OTel traceQuickstart

Quick answers

What does Vetro Attest do?

It checks your AI agent log (a Vetro ledger or an OpenTelemetry GenAI trace) for tampering and countersigns its digest at an independent timestamp, so you can prove the log existed, unchanged, at that moment.

Who needs it?

Teams running AI agents that must show auditors, customers or regulators what the agent did, for example under EU AI Act record-keeping (Article 12), without asking them to take their own word for it.

What does it cost?

Verifying a log is free and stores nothing. A full report with a signed attestation, or continuous re-attestation, is priced just below.

Verify

Free

  • Hash-chain and ed25519 signature check
  • OTel GenAI traces accepted as-is
  • Event count, LLM and tool calls, cost
  • EU AI Act report preview
  • Nothing is stored

Continuous

$19 /month after a 14-day free trial, cancel anytime

  • Unlimited re-attestation of every release via API
  • Same report + countersignature for each ledger
  • For agents in production: an auditor wants the current version attested

Agency

$149 /month after a 14-day free trial, cancel anytime

  • For DPOs, law firms and compliance consultants: up to 25 client ledgers a month
  • One API key for all clients, no checkout per client
  • Each report headed Prepared for <client>

Document pack

$99 one-off, no ledger needed

  • FRIA (Art. 27) and Annex IV technical documentation draft
  • AI literacy plan (Art. 4) and Art. 50 transparency notices
  • From 10 questions, signed PDF + editable Markdown

Build my document pack

GDPR: DPA, subprocessors, EU hosting, 7-day retention

Check a ledger or an OTel trace

What the $29 gets you — a real example

Excerpts generated by this service from the sample ledger (example only: your report and attestation are built from your own ledger, and signed with our key).

EU AI Act report (Markdown + HTML + PDF) · PDF

# EU AI Act — record-keeping evidence report

> Engineering evidence, not legal advice — see "Known gaps" before relying on this.

## Run inventory

| Run | Status | Integrity | LLM calls | Tool calls | Cost |
|---|---|---|---|---|---|
| `ledger.jsonl` (run_mraxqd1w_f5191f80dc112c24) | completed | signed | 1 | 1 | $0.0001 |

## Obligation mapping

| Theme | Article | Evidence |
|---|---|---|
| Automatic event recording | Art. 12 | Every LLM call, tool call, error and outcome recorded at the call site, mechanically. |
| Integrity of retained logs | Art. 26 | Hash chain + ed25519 signatures — see the integrity column; tampering is detectable. |
| Human oversight of sensitive actions | Art. 14(4) | tool.approve rules pause the agent; approval.request / approval.decision events record who allowed or refused what. |
| Right to explanation | Art. 86 | Full decision trail (requests, responses, tool calls, policy decisions) per run. |

## Retention · Known gaps · Event log   (…)

Countersigned attestation (attestation.json)

{
  "statement": {
    "digest": "faca842b7125cac108f4503ed4adf99fe404768c7ff2c7995b6ea27c87435c4e",
    "source": "vetro-ledger",
    "events": 7,
    "verified": true,
    "signed": true,
    "attestedAt": "2026-09-26T01:00:12.743Z",
    "service": "https://attest.example"
  },
  "signature": "tKO6IMdZCjIwysI9wrSXAr1b+S0eK/B5BSsqPEhRlidxm9tSkEJStSO91ofiUV+SIWsOMG7lRURTupR+ha+2DA==",
  "publicKey": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA…\n-----END PUBLIC KEY-----\n"
}

Start in 1 minute

Record your agent into a signed ledger, then verify it here for free. Node or Python, one line changes in your code.

npm i https://attest.piratefly.com/dl/vetro-core-0.1.0.tgz https://attest.piratefly.com/dl/vetro-anthropic-0.1.0.tgz
pip install https://attest.piratefly.com/dl/vetro-0.1.0-py3-none-any.whl   # Python
import Anthropic from '@anthropic-ai/sdk';
import { Vetro } from '@vetro/core';
import { wrapAnthropic } from '@vetro/anthropic';   // OpenAI: wrapOpenAI from @vetro/openai
const run = new Vetro().startRun({ name: 'my-agent' });
const client = wrapAnthropic(new Anthropic(), run); // every call now lands in .vetro/runs/*.vtl

Already on OpenTelemetry? Skip the SDK: paste your GenAI trace (OTLP/JSON) in the box above, or vetro otel import trace.json.

Bring the trace you already have

If your agent exports OpenTelemetry spans with the GenAI semantic conventions — OpenLLMetry, OpenInference, Langfuse, or your own instrumentation — export the OTLP/JSON payload and paste it here. It is converted into a hash-chained ledger, checked, and mapped onto the EU AI Act obligations exactly like a native ledger. An imported trace carries no signature of yours, which is precisely why the third-party countersignature is the only timestamped proof attached to it; the attestation says so explicitly in its source field.

What you are actually buying

The CLI is open source: you can already verify your own ledger, render the report and sign it with your own key. You cannot sign it as someone else. The countersignature is a statement by a party with no stake in your logs — that this exact digest, with this event count, verified clean at this timestamp — and that is the part an auditor, a customer or a court can weigh.

The attestation is a small JSON object: the statement, the signature, the public key. Verify any attestation, from anyone, for free:
curl -X POST https://attest.piratefly.com/api/verify-attestation -H 'content-type: application/json' -d @attestation.json

Limits, stated plainly