Metadata-Version: 2.4
Name: bluefox-edge
Version: 0.0.1
Summary: BlueFox Edge for Python: today, the published offline receipt checker as an installable module; the API client follows.
Author-email: BlueFox AI <ethan@bluefoxedge.ai>
License: MIT
Project-URL: Homepage, https://www.bluefoxedge.ai
Project-URL: Documentation, https://www.bluefoxedge.ai/docs/sdk/python
Project-URL: Verify a receipt, https://www.bluefoxedge.ai/docs/verify-a-receipt
Project-URL: Published checker, https://api.bluefoxedge.ai/verify_receipt.py
Project-URL: Repository, https://github.com/ethanholien/bluefox-edge
Keywords: bluefox,receipt,verification,ed25519,rfc8785,jcs,offline,agents
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

<!-- DRAFT-FOR-CEO-REVIEW · staged dark by ff115 (SS115/D006) · NOT PUBLISHED · every sentence below is proposed public text -->
# bluefox-edge (Python)

**0.0.1 — a first, small, genuine release.** It installs the published BlueFox Edge
offline receipt checker so you can pin it with pip instead of fetching a file:

```bash
pip install bluefox-edge
bluefox-edge-verify-receipt my-receipt.json
```

That command runs the exact bytes served at
<https://api.bluefoxedge.ai/verify_receipt.py> (sha256 `50dd2124…711d8`, 24,801 B —
compare with <https://api.bluefoxedge.ai/verify_receipt.py.sha256> any time). Same
steps, same order, same one-sentence verdicts. Exit 0 means the check passed.

## What it checks

A BlueFox Edge receipt is a signed record of one API answer: the envelope is
canonicalized (RFC 8785 / JCS), hashed (SHA-256), chained, and signed (Ed25519) with a
published key. The checker recomputes every signed field from the file's own bytes and
refuses — in a sentence, never a traceback — on any disagreement. It reads the key set
from the published JWKS, or fully offline from a file you saved:

```bash
curl -sSo pinned-jwks.json https://api.bluefoxedge.ai/.well-known/jwks.json
bluefox-edge-verify-receipt --jwks pinned-jwks.json my-receipt.json
```

The receipt never names its own key source; the `--jwks` flag is the operator's hand.
How to read what a receipt does and does not say: <https://www.bluefoxedge.ai/docs/verify-a-receipt>.

## What is coming

The BlueFox Edge API client for Python (`BlueFoxClient`, sync and async) is written and
tested in the repository at version 0.6.0. It arrives on PyPI under this name once its
handling of the keyless x402 payment quote (HTTP 402) is cured — until then a 0.0.x
release does not talk to the API for you. Docs: <https://www.bluefoxedge.ai/docs/sdk/python>.

## Why a 0.0.1 at all

Fifteen files in the repository and both SDK READMEs already print
`pip install bluefox-edge`. Publishing a real, working checker under the name closes
the gap between what the docs say and what the registry has, without pretending the
client is here.

## Also on npm

The JavaScript twin of the checker is `npx bluefox-verify-receipt`, and `bluefox-edge`
on npm re-exports it.

License: MIT. Author: BlueFox AI (Format Dynamics, Inc.).
