Evidence infrastructure for high-stakes AI

Proof of what your AI actually did

Inferify records every decision your model makes and signs it. Because we sign it and not you, the record still means something when a regulator asks a year later.

$ pip install inferify Apache 2.0 · no dependencies · source
Live evidence chain novadx-v2.3.1
Sealed
0
Regime valid
0
Regime flagged
0
Void
0
FLAGGED is a verdict about the model, the inference ran outside its validated envelope. The record is still sealed, and the chain stays intact. That is the point: you can prove the flag happened.   VOID is different. It means somebody edited history.
genesis · 0000000000000000000000000000000000000000000000000000000000000000
pip install inferify
on pypi
Apache 2.0
open source
api.inferify.io
witness live
ed25519
signed receipts
0 deps · 19 kb
the whole sdk
1 line
to integrate
0.69 ms
p50 to seal a record
SHA-256
hash chained
0 raw
inputs stored
01 · The gap

Your logs were never built to prove anything.

AI now makes decisions that get audited, disputed, and litigated. When one is challenged, the proof gets reconstructed months later from scattered logs that were written for debugging, not for evidence.

i
Questioned later

The question arrives after the decision

A regulator, a lawyer, or a customer asks what the model did on one specific case. Nothing in the stack was designed to answer that.

ii
Rebuilt by hand

Reconstruction is not evidence

Stitching a timeline together from logs, dashboards, and deployment records is slow, costly, and impossible to prove was never edited.

iii
Green dashboards lie

Aggregate health hides the single call

Accuracy stays green while the one inference that mattered ran outside the conditions the model was ever validated for.

02 · How it works

One line wraps every inference.

No pipeline rewrites, and no second data plane to operate. Wrap the prediction you already make.

01

Capture

Inferify hashes the input, then records the model version, output, confidence, and timestamp as a structured record. Raw inputs never leave your environment. Only the fingerprint is stored.

02

Check the regime

Each inference is checked against the envelope the model was validated inside. Inside, the record is sealed VALID. Outside, it is FLAGGED with the reason, returned to your code inline so you can escalate before the decision ships.

03

Seal and export

Each record hashes its contents together with the hash of the record before it. Any window exports as a signed package an auditor verifies independently.

predict.py
import inferify

verdict = inferify.capture(
    model="novadx-v2.3.1",
    input=xray_512,
    output={"pneumonia": 0.91},
    confidence=0.91,
)

if verdict.regime != "VALID":
    escalate(verdict)

# inf_a3f921 sealed in 0.7ms
# prev 9c1e77be0c4a... chained
03 · The evidence record

Not a log line. A signed artifact.

Every field an auditor asks for, captured at the moment of the decision rather than reassembled after it.

inf_a3f921REGIME VALID
Model version
novadx-v2.3.1
Input fingerprint
sha256:a3f9c2e1...
Confidence
0.91
Input type
chest_xray_512
Raw output
pneumonia: 0.91
Timestamp
14:42:09 UTC
Previous hash
9c1e77be0c4a...
Record hash
a3f921d0b8e5...
Regime
VALID
Verifiable by anyone holding the record and the chain. Nothing about the verification depends on trusting Inferify.
04 · Regime validity

Validation only certifies the inside of the envelope.

Every model is validated inside a fixed operating envelope. The moment an input drifts outside it, a new scanner resolution, a rare presentation, a version still running in production, your dashboards keep reading green. That blind spot is structural, and it is exactly where unaccountable decisions live.

Inside the envelope. The record is sealed VALID and is audit ready on arrival.
Outside the envelope. The record is sealed FLAGGED with the specific reason. It is still a valid, permanent entry in the chain, so the flag itself becomes evidence.
Validated envelope
Invisible to validation.
Flagged by Inferify.
05 · Where it fits

An evidence layer, not another monitor.

Inferify runs alongside the monitoring you already have. It owns the per-decision record those dashboards were never built to produce.

CapabilityMonitoringLoggingManual auditInferify
Per-decision recordpartialpartial
Regime verdict at decision time
Tamper-evident and hash-chained
Independently verifiable exportpartial
One-line integrationpartial
06 · Built for

Teams where a wrong decision has consequences.

Healthcare

Clinical AI

Diagnostic and triage models facing FDA documentation and clinical liability.

Fintech

Credit and fraud

Underwriting and fraud models under fair-lending rules and model-risk governance.

Insurance

Claims and pricing

Models that must justify each individual call to a regulator or a policyholder.

Enterprise

Agentic systems

Decision and agent systems where a customer dispute demands a paper trail.

07 · Security and deployment

Your data stays where it already lives.

Fingerprints, not inputs

Inferify stores a SHA-256 fingerprint of each input, never the raw image, document, or record. Verification works entirely on hashes.

Runs in your VPC

Deploy inside your own cloud account or on premise. The evidence chain never has to cross your network boundary.

Verifiable without us

Exports are self contained. An auditor recomputes the chain with standard SHA-256 and confirms integrity without touching our systems.

The witness signing key

Every checkpoint receipt is signed with this Ed25519 key. Verify a receipt against it and you do not need our permission, our cooperation, or our continued existence. It is published here so that if the key ever silently changed, you would see it.

4f0e88cfa108685e23902fd5c1d8ee2b9df43dbddd140599564dc2a22ae327b9
ed25519 served unauthenticated at api.inferify.io/v1/public-key compare the two. they must match.
08 · Pricing

Start free. Pay when it is in production.

A free tier to seal your first model, then a platform fee per production model plus usage on the inferences you record.

Free
$0
forever
  • 1 model
  • 10,000 sealed records per month
  • Python SDK and dashboard
  • Signed exports and verification
  • Community support
Start free
Starter
from $2,000
per month
  • Up to 3 production models
  • Python and TypeScript SDK
  • Higher record volume
  • Email support
Start a trial
Growth
$5,000 to $8,000
per month, by volume
  • Unlimited production models
  • SSO and role-based access
  • Custom validity envelopes
  • Audit workspace
  • Priority support
Talk to us
Enterprise
Custom
annual
  • VPC or on-premise deployment
  • Regulator-ready export templates
  • Custom retention and residency
  • Dedicated support
Contact sales

No credit card on the free tier. Every plan exports the same verifiable bundle.

09 · Questions

The things engineers ask first.

Why does a FLAGGED record still say the chain is intact?

Because they answer different questions. FLAGGED is the model's verdict at decision time: this inference ran outside the validated envelope. Chain intact is the auditor's verdict: nobody edited history. A flagged record is a truthful, permanent record of a risky decision, and it has to stay sealed, otherwise you could not prove the flag ever happened. The chain only breaks when a record's contents are altered after the fact.

What does tamper-evident actually mean here?

Each record hashes its own contents together with the hash of the record before it. Altering any field of any past record changes that record's hash, which breaks the link every later record depends on. You cannot quietly edit history. You can only produce a chain that no longer reproduces. Edit a value in the console above and watch it happen.

How much latency does capture add?

Capture is a hash and a structured write. Measured on a 512x512 input, the call returns in 0.69 ms at p50 and 1.25 ms at p99, and a single shard sustains about 626 records per second. The write runs off the critical path by default, so your inference latency is unchanged. The regime verdict is available synchronously when you want to gate on it.

Do you see our model inputs?

No. Inferify records a SHA-256 fingerprint of the input, not the input itself. In VPC and on-premise deployments the entire chain stays inside your network.

How is the validated envelope defined?

From the conditions your model was actually validated under: input schema and resolution, distributional bounds, confidence thresholds, and the approved model versions. You configure it once per model, and Inferify checks every inference against it.

Does this replace our monitoring?

No. Monitoring answers how the system is doing in aggregate. Inferify answers what happened on one specific decision, and proves the answer. They sit side by side.

Which frameworks does the SDK support?

Anything you can call from Python or TypeScript. Inferify wraps the prediction call, so it is framework agnostic and does not care whether you serve with PyTorch, ONNX, a hosted API, or your own runtime.

Stop reconstructing what your model did.

Start proving it. Seal your first model on the free tier, no credit card.

Copied