ausca
Client for Ausca metered agent infrastructure services: document OCR, document analysis, media transcription, browser sessions, and agent inboxes. Paid per call under a hard USD cap you set, with no account or provider API keys, and a settlement receipt on every completed invocation.
Install
pip install ausca
Use
import os
from ausca import AuscaClient
client = AuscaClient.with_local_key(
private_key=os.environ["AUSCA_PRIVATE_KEY"], # pays USDC on Base
max_payment_usd=0.50, # hard per-call cap
)
outcome = client.invoke("browser.session", {"duration_seconds": 600})
print(outcome.result)
print(outcome.payment.transaction) # settlement proof
invoke resolves the offer's immutable revision, schema digests, and
payable route from the live catalog, reads the exact payment requirement,
pays it if it fits the cap, and retries the same bytes with the same
idempotency key. Each call starts with a fresh key. For recovery after an
uncertain response, pass the same caller-owned idempotency_key; use a new
key for another intentional purchase, even when its input is identical.
A CLI ships with the package:
ausca catalog
ausca price document.ocr
AUSCA_PRIVATE_KEY=0x... AUSCA_MAX_PAYMENT_USD=0.50 \
ausca invoke browser.session '{"duration_seconds":600}'
# Reuse this key only to recover that same intended purchase:
ausca invoke browser.session '{"duration_seconds":600}' \
--idempotency-key browser-attempt-20260903-0001
Payment rails
Payment is a pluggable authority, never a client concern. The built-in
LocalKeyAuthority pays x402 v2 with a local signing key through the
official x402 library, which enforces
the cap through its spend controls before anything is signed; other rails
implement the same small PaymentAuthority protocol.
client.pay_request(url, ...) runs one paid call against any resource the
configured authority can pay; nothing in it is vendor-specific.
Artifact-backed offers
Document and media offers take an immutable artifact commitment instead of
raw bytes. ausca commit file.pdf sends the bytes to Ausca's keyless
temporary ingress and returns the commitment the offer input carries; the
library equivalent is client.commit(data, media_type). Each call creates a
fresh temporary commitment, including when the bytes match an older upload.
Pass idempotency_key=... only to recover the same uncertain commit. The
active offer catalog sets the usable input limit.
Successful paid state includes receipt_ref.public_url, an immutable
hash-only proof of the Ausca service, public price, completion time, and
receipt digest. It contains no request or result bytes, content digests, or
access capabilities. Anyone holding the unguessable URL can read it.
A result larger than the offer's inline bound arrives as output_artifact
instead of output. client.artifact_access(artifact_ref) mints a 60-second
download URL for it; verify the bytes against content_digest. A failed
invocation carries failure.code and failure.message.
The full agent contract lives at https://ausca.com/SKILL.md; discover the
active offers at https://ausca.com/catalog.json. The npm equivalent is
ausca, which adds a local MCP
server (npx ausca mcp).
License
MIT
Metadata
Release files for ausca 0.1.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 | |
|---|---|---|---|
| ausca-0.1.0.tar.gz | 15.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ausca-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.7 kB
Release files / ausca-0.1.0.tar.gz
| Download URL | ausca-0.1.0.tar.gz |
|---|---|
| Size | 15.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
90ce15a84daf5cf7171be09b3c4090fc11b1bbfa024697209ba0b94bd9ffbb6a
|
|
BLAKE2b-256 checksum How to use checksums |
aa428a0fe4e4d10473138e8d48679ca1be3fb58c762e9b872c65fc43978db5ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / ausca-0.1.0-py3-none-any.whl
| Download URL | ausca-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
296eda651abd1f915bf585386437d349ee98cde6e237ab20a8c53d6488df1c1c
|
|
BLAKE2b-256 checksum How to use checksums |
72c2e124fa91007b59b7a649e9112700a93f8ebf0282a333bee4be5d3bf81882
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|