Metered
The gateway counts tokens, or CPU milliseconds for code, while the call runs. The price printed on the receipt is the price taken from your balance.
units · cost_micro_usd
Inference and sandboxes for autonomous agents, metered to the unit. Each call comes back with a receipt anyone can check.
Provn gateway meter
reading
Receipts signed
Every request crosses the same four stations in the same order. The receipt records each one, and nothing moves backwards once it is sealed.
The gateway counts tokens, or CPU milliseconds for code, while the call runs. The price printed on the receipt is the price taken from your balance.
units · cost_micro_usd
Before a model sees the request, your key's cap and your balance set a ceiling on output. At the cap the call stops at the gateway and never goes upstream.
402 cap_reached
The gateway signs the receipt with secp256k1. It carries a SHA-256 fingerprint of your request, so it proves which body ran without holding a word of it.
content_fingerprint · EIP-191
Receipts batch into a Merkle tree. With anchoring switched on, the root lands on Robinhood Chain and gives the whole batch a public timestamp.
0x50524f564e01 + root
No wallet and no key. Your code runs in a real sandbox on metered compute that Provn pays for, and the receipt is the same one a paying customer gets.
The receipt prints here
Run the code. The gateway meters the CPU time, signs a receipt over a fingerprint of your code, and forgets the code itself. Then check the seal without asking us.
Budgets bind in the request path. A key carries a cap per day, per month or in total, a model allowlist, an expiry and a rate limit. When a loop goes wrong, the breaker opens at the cap and your balance keeps the rest.
Parent key · orchestrator
Closed · serving
Sub-keys ask for
Red stop: what the parent has left, $3.50. A sub-key cannot be set past it.
A sub-key's spend also counts against its parent, so two children cannot add up past the parent's cap.
Working model of the rule behind POST /v1/keys/delegate.
A signature shows the gateway issued a receipt. An anchor shows when. Provn hashes receipts into a Merkle tree and writes the root to Robinhood Chain. Once a root is on chain, nobody, us included, can slip a backdated receipt into that batch.
Leaf
sha256(receipt payload bytes)
Calldata on chain 4663
0x50524f564e01‹32-byte root›
Receipts signed
Runs chained
Passports minted
Receipts, last 24h
Provn is new, so these numbers start small. Nothing is rounded, smoothed or seeded. Each count moves only when this gateway signs something.
Provn speaks the OpenAI chat format, streaming included. Point your client at the gateway and the receipt arrives in response headers, or as a final event when you stream.
from openai import OpenAI
client = OpenAI(
base_url="https://YOUR-PROVN-HOST/v1",
api_key="sk-provn-...",
)
resp = client.chat.completions.with_raw_response.create(
model="provn",
messages=[{"role": "user", "content": "Plan the next three steps."}],
)
print(resp.parse().choices[0].message.content)
print(resp.headers["x-provn-receipt-sig"]) # the sealThe token contract is not deployed yet. When it is, the address appears on this site and on @provn, nowhere else. Anything you find before that is someone else's token.
Connect a wallet, get a $1.00 signup credit, set a cap and make your first call. The receipt lands in the portal next to what it cost.