Every AI call gets a receipt.
One OpenAI-compatible key for hundreds of models. Every call returns a signed receipt, each day's receipts are settled on chain, and our price sits next to the provider's, markup included.
Our price, next to theirs.
Every model lists what the provider charges and what we charge, per million tokens. The difference is our markup, and it's the same on every model.

| Model | Provider in / out | Ostraka in / out | Markup | Context |
|---|---|---|---|---|
| Loading prices… | ||||
Don't trust the bill. Check it.
You call a model
The answer streams back as usual. The response header x-ostraka-receipt carries the receipt id.
We sign a receipt
Model, tokens in and out, our charge and the provider's cost, signed by our published receipt key. No prompt, no answer.
The day settles on chain
Each epoch's receipts become one Merkle root, posted with the settlement on Robinhood Chain. Verify any receipt in your browser, without asking us.
Prepaid, on chain, and yours to take back.
You fund a balance in USDG on Robinhood Chain. The vault contract sets hard limits on what we can charge, and nothing in it can stop you withdrawing.
From request to your wallet. The wait lets the last day's usage settle. Nothing can pause it.
Per account per settlement, enforced by the contract, never more than you hold.
The vault refuses a settlement sooner than its minimum gap.
Anything that raises what we can take waits 8 days on chain, longer than any withdrawal.
The vault goes live at launch. See the public ledger.
A fixed share of revenue, paid back as credits.
A set share of every settled dollar goes to the credits pool contract. Each round, holders of the token claim it as inference credits.
The pool has no withdrawal function. Money that goes in can only come out as credits. The share is on chain, and changing it takes 8 days' notice.
The roadmap is a receipt too.
Every epoch settles before the next one prints. What's stamped is live today, and you can check it on chain.
·
live
The receipt layer
- Signed receipts on every paid call, checked in your browser at /verify
- The vault: prepaid USDG, withdrawals nobody can pause, 8-day notice on rule changes
- Our price next to theirs for every model, markup included
- Keys with limits: spend caps, model allowlists, instant revoke
- Holder credits pool with no withdraw function
- Demo keys, no wallet needed
·
now
Co-signed with Nous Research
- Hermes, receipted: Nous Research's open models featured on Ostraka, with every call signed and settled
- Receipt explorer: look up any receipt, epoch or settlement by id
- Signed usage exports: a CSV you can hand to accounting and still verify
- Batched settlement for thousands of accounts per epoch
Agents that pay their own way
- Agent budgets: an agent funds and checks its own capped key, no human in the loop
- Receipt webhooks: every charge pushed to your server as it happens
- SDKs for TypeScript and Python with receipt verification built in
- Team accounts: shared balances, per-member budgets
Receipts for everyone
- An open receipt standard, so any AI gateway can issue receipts people can check
- Independent co-signers on settlements, so no single key decides the bill
- A dispute window on chain before each settlement finalizes
Change two lines.
Anything that speaks the OpenAI API works: SDKs, coding agents, frameworks. Set the base URL and your key.
from openai import OpenAI client = OpenAI( base_url="https://ostraka.xyz/api/v1", api_key="osk_…", ) r = client.chat.completions.with_raw_response.create( model="anthropic/claude-sonnet-4.5", messages=[{"role": "user", "content": "Hello"}], ) # every answer carries its receipt print(r.headers["x-ostraka-receipt"])
Plain answers.
Do you store my prompts or answers?
No. They pass through Ostraka to the provider and back, and are never written down. Receipts record the model, token counts, the charge and the provider's cost, nothing else.
Does the model provider see my prompts?
Yes, the provider that runs the model has to read them to answer. We ask the router to send requests only to providers that don't store or train on prompts. A provider's own policy still applies, so pick models that fit your data.
How is the price set?
We charge the provider's cost for each request plus our published markup. Both prices are listed for every model, on the site and in GET /api/v1/models.
Can I get my money back?
Yes. Request a withdrawal in the app and collect it after the delay shown in the vault (24 hours at launch). You get your deposits minus what you spent. Credits are for inference only and can't be withdrawn.
Do I need the token to use Ostraka?
No. Anyone with a wallet can fund a balance and use every model. Holding the token makes you eligible for credit rounds paid from the credits pool.
What stops you from overcharging?
Three things. Every charge has a signed receipt you can check against the root on chain. The vault caps each settlement per account. And any change that would let us charge more waits 8 days, so you can withdraw first.
