ausca
v0.0.3
Published
Ausca metered agent infrastructure services, paid per call under a hard USD cap with receipt-backed results. One package, three doors: the @ausca/sdk client, CLI verbs, and a local MCP server that pays where the key lives.
Maintainers
Readme
ausca
Metered agent infrastructure services from Ausca: document OCR, document analysis, media transcription, browser sessions, and agent inboxes. Paid per call under a hard USD cap you set, with a settlement receipt on every completed invocation. No account, no provider API keys.
One package, three doors.
Library
npm install ausca viemimport { AuscaClient } from "ausca";
const client = AuscaClient.withLocalKey({
privateKey: process.env.AUSCA_PRIVATE_KEY, // pays USDC on Base
maxPaymentUsd: 0.5, // hard per-call cap
});
const outcome = await client.invoke("browser.session", { duration_seconds: 600 });
console.log(outcome.result);
console.log(outcome.payment?.transaction); // settlement proofinvoke 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 idempotencyKey; use a new key for another
intentional purchase, even when its input is identical.
CLI
npx ausca catalog
npx ausca price document.ocr
AUSCA_PRIVATE_KEY=0x... AUSCA_MAX_PAYMENT_USD=0.50 \
npx ausca invoke browser.session '{"duration_seconds":600}'
# Reuse this key only to recover that same intended purchase:
npx ausca invoke browser.session '{"duration_seconds":600}' \
--idempotency-key browser-attempt-20260903-0001MCP
The local server that pays where the key lives. Tools are derived from the
live catalog at startup, one per active offer. Paid tools accept optional
ausca_idempotency_key for recovery; omit it for every new intentional
purchase and reuse it only after an uncertain response.
{
"mcpServers": {
"ausca": {
"command": "npx",
"args": ["-y", "ausca", "mcp"],
"env": {
"AUSCA_PRIVATE_KEY": "0x...",
"AUSCA_MAX_PAYMENT_USD": "0.50"
}
}
}
}Payment rails
Payment is a pluggable authority, never a client concern. The built-in
authority pays x402 v2 with a local signing key through the official
@x402/* libraries; any scheme they support plugs in through
x402Authority, and other rails implement the same small interface. The cap
is enforced before anything is signed.
Artifact-backed offers
Document and media offers take an immutable artifact commitment instead of
raw bytes. npx 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(bytes, mediaType). Repeating the same
bytes is idempotent. 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.
The full agent contract lives at https://ausca.com/SKILL.md; the active offers at https://ausca.com/catalog.json. The engine underneath is @ausca/sdk.
License
MIT
