regent-receipt-verify
Verify a Regent Control receipt or allow token without Regent: only the token and a JWKS
you saved while the issuer was reachable. Nothing calls the network. One dependency
(cryptography) for RS256.
pip install regent-receipt-verify
curl -s https://control-api.regentprotocol.org/v1/control/.well-known/jwks.json > jwks-2026-09.json # save it now, keep it with the receipts
regent-verify @receipt.txt --jwks jwks-2026-09.json --request request.json --mandate mandate-v2-reveal.json --policy policy-v3-reveal.json --counterparty-jwks get4agent-jwks.json
from regent_receipt_verify import verify
res = verify(token, jwks, request={"tool": "stripe", "action": "charge.create", "resource": None, "args": {...}},
mandate_reveal=reveal_from_owner, policy_reveal=policy_reveal_from_org)
res.valid, res.kind, res.claims, res.args_hash_match, res.mandate_match, res.policy_match
What it proves:
| check | meaning |
|---|---|
| signature (RS256, kid from the JWKS) | Regent's issuer signed exactly these claims |
kind receipt / allow / budget |
a receipt (typ receipt+jwt, aud regent-receipt) can never pass as an access token |
expired |
receipts carry a 10-year evidence period; an allow token lives about a minute, so for evidence its expiry is a note, not a failure |
args_hash_match |
the token authorised this exact request (tool, action, resource, args) and nothing else |
mandate_match |
the owner's revealed mandate version (snapshot + salt, terms-v2) opens the receipt's mandate_hash |
policy_match |
the organisation's revealed policy version (text + profile + salt, policy-v1) opens policy_hash; starter-pack decisions need only the public text |
confirmation_match |
the settlement confirmation the counterparty (merchant, PSP, custodian) signed over the same decision, embedded in the receipt, re-verified against the counterparty's own JWKS and compared with the receipt's figures: two signatures over the same facts, checked offline. settlement_source: agent receipts have none |
Key rotation: pass --jwks several times (every JWKS you saved). Exit code 0 when the signature
verifies and every supplied check matches.
Test vectors are minted by the real issuer (packages/receipt-verify-vectors), and the same
file drives the Node package @regent-protocol/receipt-verify.
Metadata
Release files for regent-receipt-verify 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| regent_receipt_verify-0.3.0.tar.gz | 14.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| regent_receipt_verify-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.8 kB
Release files / regent_receipt_verify-0.3.0.tar.gz
| Download URL | regent_receipt_verify-0.3.0.tar.gz |
|---|---|
| Size | 14.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46594d65a53dec6279ff391d234fe31de2616e206af924b9e9a66dd2a8176d7b
|
|
BLAKE2b-256 checksum How to use checksums |
af2c473784970c7abfa67112f4b672cb6c98ee55dc725a4911259653502f8e64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency logRelease files / regent_receipt_verify-0.3.0-py3-none-any.whl
| Download URL | regent_receipt_verify-0.3.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
934a2c22619d81e3d959b58e0195414cc19a2f486798b2510108015f1a2b70a8
|
|
BLAKE2b-256 checksum How to use checksums |
b1f5188f30339d2e914fe4b38693ae2948ce0067416e743f5a152060db48640d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.
Transparency log