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.9.tar.gz (18.3 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.9-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aqta_verify_receipt-1.0.9.tar.gz
  • Upload date:
  • Size: 18.3 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.9.tar.gz
Algorithm Hash digest
SHA256 3babab4996778a308653a25806c8e9366984a26414b8d59ef0476dd246fb37a7
MD5 7c32aa7ce08625ede5db10f9b5c435f0
BLAKE2b-256 190d60ecada02b8be9591562674eafda29cc5d96fc9a41b393d17f39487e5f1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aqta_verify_receipt-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 297890e493041943b410e7336a10efe70020f5b549056212ab5ad3240394ed9e
MD5 c71115f63fafd5dd0d9a31100e38efdc
BLAKE2b-256 8b1032afcf95994fc567cfc40f8eac9cc57b8ff2ad5edfd13b743806628c1f58

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