Inside your environment
The Python kit signs a brief and encrypts it to a pinned recipient key using JWS and JWE. Transport stays with your existing authenticated queue or service.
Free local kit / MIT licensed
Give a reviewer agent the brief it needs, without handing it your entire client workspace.
Run the example. Inspect the checks. Connect your own workflow. No account, wallet, application or sales call.
Get the next step for your environment, then check each result. This is a rule-based guide for the supported kit, not a hosted agent or a remote inspection of your machine. Do not enter keys or task data.
First: download and extract the kit. Open a terminal in the extracted folder containing requirements.txt. Use Python 3.11+; install Python from its official site if it is missing.
The demo must return status: passed, receipt_verified: true and replay_denied: true. The checks must finish with OK.
No error logs or private files are uploaded. Fix the issue locally, then repeat the demo and checks.
Run one command at a time in a fresh local-demo folder. These commands retain private keys and plaintext for inspection; use synthetic data only. Stop on any error. This same-folder walkthrough is not a production deployment.
Acceptance must return accepted_for_review, executed: false and paid: false. Repeat the final accept command with --out local-demo/replay.json: it must return already_consumed. Never remove state to make a retry pass.
Your confirmation is recorded only in this page until you leave. Ontario has not inspected your machine or certified this setup.
Connect your worker and authenticated transport · Production limits
Start here
Use Python 3.11 or newer and the synthetic example supplied in the kit. Nothing is uploaded to Ontario. Dependency installation needs internet access; the demo and checks run offline afterwards.
Download the ZIP, extract it, then open a terminal in the extracted ontario-private-agent-handoff folder containing requirements.txt. Keep this outside a public repository.
Download checksum · Inspect source and MIT license. The checksum checks file consistency, not an independent security audit.
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python demo.py
.venv/bin/python -m unittest -v checks
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
.\.venv\Scripts\python.exe demo.py
.\.venv\Scripts\python.exe -m unittest -v checksUse a private Windows user directory with restrictive access controls. POSIX file modes do not configure Windows ACLs. The published release checks run on macOS; Windows is not independently validated.
{
"status": "passed",
"selected_fields": ["objective", "deliverable"],
"receipt_verified": true,
"replay_denied": true,
"executed": false,
"paid": false
}The demo generates temporary keys in memory, signs and encrypts a synthetic brief, accepts it once, verifies the receipt and rejects a second acceptance. It prints no keys or task contents. Its temporary replay database is removed when the run ends.
The checks must finish with OK. This is engineering verification, not proof that your production environment is secure. The demo does not run an LLM, deliver a review or spend money.
Keep the sender's private key with the sender and the reviewer's private key with the reviewer. Pin public keys through your trusted provisioning channel. Initialize durable recipient state once, select approved fields, then deliver the envelope over your existing authenticated transport.
Your worker calls accept() before using the brief. On any denial, stop; do not bypass policy or reset replay state. Acceptance is recorded before plaintext is returned, so this is at-most-once release, not guaranteed job completion. After a crash, a new handoff needs authorization.
Python integration example · Step-by-step CLI and private outputs · Production checklist and limits
No module named jwcrypto.venv Python, not your system Python.requirements.txt not foundalready_consumedrecipient_state_missinghandoff.py init-state. If live state was lost, stop processing and recover under your state-migration policy.expired_or_not_yet_validunverifiable_envelope or policy denialSynthetic agency brief / reviewer-01
No brief released.
No decision yet.
Simulation only: no encryption, signature, delivery, execution, or payment occurs here. The local kit performs encryption and signature verification. It does not run an agent.
The Python kit signs a brief and encrypts it to a pinned recipient key using JWS and JWE. Transport stays with your existing authenticated queue or service.
The receiver checks issuer, audience, allowed fields, scope, expiry, revocation and prior acceptance. Missing replay state blocks delivery.
A recipient-signed receipt records acceptance and a ciphertext fingerprint. It omits task content and is not proof of completed work or service quality.
The guide, source, demo and checks are free and self-service. No checkout, invoice or subscription. Your team provisions its own keys, policy and authenticated transport.
Connect your reviewerWhen a different workflow needs a paid API, start with Ontario's free readiness verifier and payment-policy preflight. This handoff kit never calls a paid endpoint.
Verify a public endpointOntario's existing trust and listing APIs accept per-call USDC on Base through HTTP 402. Routine verified calls are fulfilled automatically; pay only when the task needs the paid result and your policy allows it.
Publish a provider listingThe kit uses the established JWCrypto library with fixed algorithms. This is application-level policy around standard cryptography, not a new encryption protocol.
Your operator provisions keys and authorization. An authorized recipient can copy plaintext. Revocation cannot undo a completed handoff; encryption does not solve prompt injection.
Keep existing transport authentication and authorization. There is no token passthrough, credential brokering, wallet custody, or claim of verified agent identity.
This is not a hosted messaging product, independently audited security service or managed implementation offer.
Inspect the implementation and threat model · Review the source and tests on GitHub · Browse endpoint readiness evidence