OSTRAKA
AI inference · settled on Robinhood Chain

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.

Get an API key →
5% over provider cost Withdraw unused balance Prompts never stored
Latest receipts
Price check

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.

Osra, the receipt-keeper, holding a clay shard
Osra · keeper of receipts
ModelProvider in / outOstraka in / outMarkupContext
Loading prices…

See all the models →

How a receipt works

Don't trust the bill. Check it.

I

You call a model

The answer streams back as usual. The response header x-ostraka-receipt carries the receipt id.

II

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.

III

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.

Your balance

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.

Withdrawals24 hours

From request to your wallet. The wait lets the last day's usage settle. Nothing can pause it.

Most we can chargeCapped

Per account per settlement, enforced by the contract, never more than you hold.

SettlementsHourly at most

The vault refuses a settlement sooner than its minimum gap.

Rule changes8-day notice

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.

Holder credits

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.

Credits pool
Credits poolBefore launch
Share of revenue20%
Waiting for the next round$0.00
Promised to open rounds$0.00
Claimed by holders$0.00
Pool address published at launch
Works with what you use

Change two lines.

Anything that speaks the OpenAI API works: SDKs, coding agents, frameworks. Set the base URL and your key.

OpenAI SDKVercel AI SDKLangChainClineRoo CodeKilo CodeContinueAiderOpenCodeHermes
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"])
Questions

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.

Put a receipt on every call.