Get started

Developer SDK · open source

Prove every tool call. Verify it anywhere.

QuoxProof gives every tool your AI agent calls a signed, hash-linked receipt, written to your own machine. Anyone can verify a receipt offline with the public key it carries: no account, no backend, no shared secret.

pip install quoxproof

Two lines in

Add a decorator, get a receipt.

You do not need the whole platform to start. Enable QuoxProof once, then wrap a tool with the decorator, and every call it makes writes a signed, hash-linked receipt to your own machine.

import quoxproof
quoxproof.enable()

@quoxproof.tool
def search(query: str) -> str:
    return web_search(query)

# every call writes a signed receipt to ~/.quox/proofs/
# verify later, offline:  quoxproof verify <session>.ndjson
01

Verify offline

A receipt carries its own Ed25519 public key. Anyone can check it with no account and no network.

02

Local first

Receipts are written to your own machine, in ~/.quox/proofs/. Witnessing and governed execution through QuoxCORE are an upgrade, not a requirement.

03

Honest about proof

The verifier reports what it can and cannot show, and never collapses a receipt to a single green tick.

Verify without trusting the producer. Unlike a backend audit service, a QuoxProof receipt carries its own public key, so checking it never depends on the vendor that produced it.

The record

What is in a receipt.

Each receipt is a small, structured record, written as one line of an append-only NDJSON session file.

toolThe name of the tool that was called.
inputs / outputsA hash of what went in and what came back, not the raw payload.
timingStart and end timestamps for the call.
status / errorWhether the call succeeded, and the error raised if it did not.
prev_hash + receipt_hashThe chain link: each receipt hashes the one written before it.
signature + public keyAn Ed25519 signature over the receipt, with the public key embedded alongside it.

Checkpoints

An anchor against tail-rewrite.

quoxproof checkpoint signs a tip over the chain head, so truncation or a rewritten tail becomes detectable. It is an anti-rewrite anchor on your own record, not third-party witnessing: for that, a receipt can also be run through QuoxCORE.

Works with

Hook it in, or wrap it by hand.

01

LangChain

An auto-hook wraps LangChain tool calls with no change to the tools themselves.

02

MCP

An auto-hook wraps calls made through the Model Context Protocol the same way.

03

Anything else

The transparent @quoxproof.tool decorator wraps any Python function directly.

Start now

Ship the receipt, not just the answer.

QuoxProof is open source and free to use. Install it, wrap a tool, and read the receipt it writes. For witnessing and governed execution at platform scale, see verifiable AI operations.

pip install quoxproofgithub.com/quoxai/quoxproof →