Skip to main content

Seal

aqta-verify-receipt

PyPI npm Licence

Offline verifier for Seal receipts (ATTESTATION-v1).

Seal signs the model call at runtime. This package checks that signature without contacting Aqta. No account. Same algorithm as the npm package.

30-second check

pip install aqta-verify-receipt==1.0.8
aqta-verify-receipt receipt.json \
  --key gUoUhIvptKAoLTnry3VrDtOQEWggGQveLrHFVrfNqmE

Default output is one compact line (words carry meaning; colour is optional):

✓ valid  ALLOWED  2d41…871e94c  pinned issuer key

Invalid:

✕ invalid  signature mismatch  2d41…871e94c

Optional flourish (never the proof):

aqta-verify-receipt receipt.json --key <pinned> --pretty
# … seal intact · verified offline

Or pipe:

curl -sS https://api.aqta.ai/r/YOUR_RECEIPT_ID | aqta-verify-receipt - \
  --key gUoUhIvptKAoLTnry3VrDtOQEWggGQveLrHFVrfNqmE
Exit Meaning
0 valid
1 invalid
2 usage / IO

Production key id: aqta-att-0a18c7c16bc18a12 (/v1/attestation/public-key).

Pin that string. Do not re-fetch it inside a verify loop.

Library

from aqta_verify_receipt import verify_receipt, fetch_published_public_key

# Once per environment: fetch, then pin somewhere you control.
trusted = fetch_published_public_key()

result = verify_receipt(receipt, trusted_public_key=trusted)
if not result.valid:
    raise ValueError(result.reason)

CLI

aqta-verify-receipt <file|-> --key <base64url> [--no-strict] [--json] [--pretty] [-q]
aqta-verify-receipt <file|-> --integrity-only [--no-strict] [--json] [--pretty] [-q]
Flag Meaning
--key Pin issuer identity (required for counsel-grade).
--integrity-only Signature vs embedded key only; returns untrusted. Anyone can self-sign.
--no-strict Allow unknown top-level fields
--json One JSON object on stdout
--pretty Optional human flourish after the compact line (not the proof)
-q Silent; exit code only

NO_COLOR=1 disables colour. Meaning never depends on colour alone.

Pinning is required by default. Without --key, pass --integrity-only (embedded key only; anyone can self-sign; result is marked untrusted).

Dependencies

cryptography (>= 42) for constant-time Ed25519. Nothing else.

What this is not

Not a governance dashboard. Not a cost router. A small verifier for one signed model-call receipt. The novel part is the receipt format and offline verification model, not ASCII theatre.

Licence

Apache-2.0. Aqta Technologies Limited.

If you implement or cite the ATTESTATION-v1 format itself, credit under CC-BY-4.0: see the repo CITATION.cff.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aqta_verify_receipt-1.0.8.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aqta_verify_receipt-1.0.8-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file aqta_verify_receipt-1.0.8.tar.gz.

File metadata

  • Download URL: aqta_verify_receipt-1.0.8.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for aqta_verify_receipt-1.0.8.tar.gz
Algorithm Hash digest
SHA256 9b02e540f85feb788e1fae8f61d6088bb5418239d98ad470037def47bd743f79
MD5 dc04eb27f45a1c9162313169f32ac364
BLAKE2b-256 4b1b0fd0134fc9ad19fe43ef5ea7f7ccb5d7998af29f21a26fd84128f12a2e67

See more details on using hashes here.

File details

Details for the file aqta_verify_receipt-1.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for aqta_verify_receipt-1.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 f8e121456ab4551946f0adc38a5ff293a93162b50985c62d5e4f57bc99f7d894
MD5 bda597e2973ce4ffe116ade4d9b65a43
BLAKE2b-256 3431f1bf3ef3925382be41a82961f172193cc70f78e1e68e3f046e27d4eed64e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page