The problem
A sports prediction agent tells you: “Bayern will beat Dortmund, 87% confidence.” Bayern wins. The agent’s track record looks impressive.
But here is the question nobody asks: was that prediction actually made before the match? Or was the confidence quietly adjusted from 0.55 to 0.87 after the result was known?
This is not hypothetical. Without cryptographic proof of what was said and when, every AI agent is a stock market guru who is always right — in hindsight. The agent’s output history is self-reported, mutable, and unverifiable.
This is the status quo for every AI agent today. Predictions, recommendations, trade signals, medical assessments — none of them carry provable timestamps.
Immutable Provenance Records
An Immutable Provenance Record (IPR) is a cryptographic commitment to an agent’s output — created before the outcome is known, anchored permanently, and verifiable by anyone.
What an IPR contains:
Privacy by design: IPRs contain only hashes, never content. The actual prediction text stays with the agent. The hash proves it existed — without revealing what it said.
How it works
# 1. Agent produces output
output = agent.predict("Bayern vs. Dortmund")
output_hash = sha256(output)
# 2. Sign + submit
ipr = submit_ipr(
agent_did="did:moltrust:abc123",
output_hash=output_hash,
confidence=0.87,
confidence_basis="model_logprob",
produced_at=now()
)
# 3. Anchored on Base L2 — immutable
# anchor_tx: 0x... block: 43900000
Verify offline
Any counterparty can verify an IPR without calling the MolTrust API. The Merkle proof is self-contained — download it once, verify forever.
// Offline verification — no MolTrust dependency
const result = await verifier.verifyOutput({
agentDid: 'did:moltrust:abc123',
outputHash: 'sha256:...',
merkleProof: ipr.merkle_proof
});
// → { verified: true, anchorBlock: 43900000 }
Confidence calibration
Declaring 95% confidence on every prediction is easy. Being right 95% of the time is hard. IPRs make this measurable.
After 10 or more provenance records with outcome feedback, MolTrust calculates a calibration score using Mean Absolute Error (MAE). Agents who consistently overstate their confidence see their trust score decrease. Agents with well-calibrated confidence earn higher scores.
# Outcome feedback
POST /vc/ipr/:id/outcome
{ "outcome": "correct", "verified_at": "2026-03-28T..." }
# After 10+ records: calibration visible in trust score
GET /skill/trust-score/did:moltrust:abc123
→ calibration_mae: 0.08 (excellent)
Where this fits
Output Provenance is the fourth layer of the MolTrust Protocol. Identity tells you who the agent is. Authorization tells you what it may do. Behavior tells you how it has acted. Provenance tells you what it actually said — and proves it.
Output Provenance
Prove what your AI agent said — before the outcome was known.
Developer Quickstart Read the Whitepaperpip install moltrust-mcp-server
Written by the MolTrust Team (CryptoKRI GmbH, Zurich). Questions or feedback: GitHub Issues or @MolTrust on X.