Skip to main content
The qed-proof package supports Python 3.11 and later. It submits claims to QED Proof and verifies receipts locally.

Install

To check an on-chain anchor using a JSON-RPC endpoint, install the optional anchor extra:

Create a key

Sign in to the QED Proof app, open Developers → API keys, and create a workspace key. Save it securely when it is shown. The client reads QED_PROOF_API_KEY from the environment, or you can pass the key to QedProof explicitly.

Submit a claim

Connect the destination first. This example checks a GitHub commit in a repository connected to your workspace:
The first response can be queued while QED Proof checks the destination. wait_for_verdict polls until the claim is decided or the timeout expires. client_claim_id is an optional idempotency key: submitting the same ID again returns the same claim.

Verify a receipt

Fetch the public keys once, then verify the receipt locally:
This checks the receipt’s schema, signature, digest, and Merkle inclusion without an API request for the receipt. An on-chain anchor is reported as not checked unless you install the anchor extra and pass rpc_url, for example https://sepolia.base.org for Base Sepolia. AsyncQedProof offers the same client operations for async applications. See the qed-proof package reference or the HTTP API.