Private compute.Verifiable execution.
One gateway for agents that need models, isolated execution, hard spending controls and cryptographically verifiable records.
One request. Every control.
- 01Request
An OpenAI-compatible call arrives carrying a scoped project key.
POST /v1/chat/completions - 02Authenticate
The key is found by prefix and checked against its keyed hash in constant time. Secrets are never stored.
proj_live_7Hq2… · scopes ok - 03Policy
Scopes, model allowlist, rate limit and monthly budget are evaluated before any money moves.
limit $5.00 · passed - 04Route
The model slug resolves to a provider adapter. Upstream credentials never leave the server.
claude-sonnet → provider - 05Compute
The worst-case cost is reserved from the prepaid balance, then the response streams back.
reserved · streaming - 06Meter
Exact token usage settles the reservation in micro-USD. The unused remainder is released.
1,284 in · 431 out · $0.0076 - 07Sign
A canonical receipt is hashed with keccak256 and signed with a dedicated key.
0x91af…c21e · EIP-191 - 08Anchor
Receipts are batched into a Merkle root and committed to Robinhood Chain.
merkle batch · beta
One gateway.
The models you use.
Frontier and open models behind one OpenAI-compatible API, with provider credentials held server-side and every call metered to the token.
Balanced Anthropic model for production agents and tool use.
- CONTEXT
- 1,000,000 tokens
- PRIVACY
- Standard
- STREAMING
- Supported
- TOOLS
- Supported
- REASONING
- Supported
- STATUS
- Live
Supported by the gateway. Availability in a deployment depends on its configured providers.
Give agents authority.
Not unlimited authority.
Budgets, model permissions, sandbox access and rate limits live outside the prompt. They are evaluated before routing and before a dollar is reserved.
- model.callAllowedclaude-sonnet · est. $0.42within limits
- model.callDeniedgpt-5 · est. $0.31model not allowed
- model.callDeniedclaude-sonnet · est. $3.80exceeds run budget
- sandbox.executeAllowedpython · 30 swithin limits
- wallet.transferDenied50 USDGnot permitted
Run code.
Not risk.
Agents execute Python and Node.js in disposable containers on separate sandbox nodes. No network, a read-only filesystem and hard limits on every run.
import jsonrows = [{"id": i, "value": i * i} for i in range(5)]total = sum(r["value"] for r in rows)print(f"rows: {len(rows)}")print(f"total: {total}")print(json.dumps(rows[-1]))
Every action
leaves proof.
Inference and sandbox executions produce signed receipts: canonical JSON, hashed with keccak256 and signed with EIP-191. Anyone can verify one without an account.
- REQUEST
- req_8F2A91
- MODEL
- claude-sonnet
- TOKENS
- 1,284 in / 431 out
- COST
- $0.0076
- INPUT
- 0x9c1e5a…41d0 · salted
- OUTPUT
- 0x3f0746…b2e9 · salted
- SIGNATURE
- 0x5b1e7a…9f1c
- SIGNER
- 0x4A44…E8B2
- HASH
- 0x91af3d…c21e
- ANCHOR
- Robinhood Chain · batch root 0x7a91…
Keep what proves.
Drop what exposes.
The platform retains what it needs to meter and prove execution, and nothing it does not. Where a guarantee does not exist yet, it says so.
- Prompts and outputs
- Forwarded to the selected provider to execute. Not stored by the gateway.
- Live
- Receipts
- Salted fingerprints and usage. Never prompt or output content.
- Live
- Provider credentials
- Server-side only, encrypted at rest with AES-256-GCM.
- Live
- API keys
- Shown once. Stored as a prefix and a keyed hash.
- Live
- Agent state
- Instructions and run I/O encrypted at rest. Never logged.
- Live
- Confidential inference
- Execution inside attested hardware enclaves.
- Coming soon
Proofs settle
onchain.
Receipt batches are anchored to Robinhood Chain, giving independently verifiable timestamps without publishing private prompts or outputs.
- LEAF
- keccak256(0x00 ‖ receipt hash)
- NODE
- keccak256(0x01 ‖ min ‖ max)
- CONTRACT
- ReceiptAnchor
- CREDITS
- USDG via ComputeCreditRouter
Change the endpoint.
Keep the client.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://www.hushcompute.xyz/v1",
apiKey: process.env.HUSH_API_KEY,
});
const response = await client.chat.completions.create({
model: "claude-sonnet",
messages: [{ role: "user", content: "Summarize the treasury report." }],
stream: true,
});- STATUS
- 200 · streamed
- TOKENS
- 1,284 in · 431 out
- LATENCY
- 1.84 s · first token 412 ms
- COST
- $0.0076
- RECEIPT
- rcpt_01J8Z4B2KXM6P0T9
- VERIFICATION
- Signature valid
Streaming, structured errors with request IDs, and a receipt on every billable call. Existing OpenAI SDKs work unchanged.
Build agents you can actually control.
Hosted agents run on the same gateway as your API calls. Every step is budgeted, metered and signed, and each receipt commits to the one before it.
- 01model.callclaude-sonnet · 1,284 → 431$0.0076signing…
- 02sandbox.executepython-3.12 · exit 0 · 1.2 s$0.0001—
- 03model.callclaude-sonnet · 1,902 → 188$0.0063—
- 04run.complete3 steps · chain head$0.0140—
Questions, answered precisely.
Today it means the gateway does not store prompts or outputs, upstream provider credentials never leave the server, API keys are stored only as keyed hashes, sandboxes run without network access on separate nodes, and receipts commit to data without revealing it. It does not yet mean confidential hardware: attested TEE execution is on the roadmap and is not available.
Not for API requests. Prompts and outputs pass through the gateway to the provider you select, which applies its own retention policy. Receipts contain salted fingerprints only. Hosted agents are the exception: their instructions and run inputs and outputs are stored encrypted at rest so runs can be resumed and inspected.
Claude, GPT, Gemini and open-weight Llama models through one OpenAI-compatible API. Each model carries a Live, Beta or Preview label, and a given deployment only serves the providers it has configured. GET /v1/models returns what is available to your key.
Every billable operation produces a receipt serialized as canonical JSON, hashed with keccak256 and signed using EIP-191. Anyone can recompute the hash and recover the signer with standard Ethereum tooling. Public proof pages do this in the browser, without an account.
Anchoring commits the Merkle root of a batch of receipts onchain. That gives an independent timestamp and makes later tampering detectable, without publishing prompts, outputs or account data. Anchoring is in beta.
Limits are enforced before a request is routed, when its worst-case cost is reserved. A request that would exceed a key, project or run limit is rejected with a 402 budget_exceeded error and nothing is charged. An agent run stops when its budget is exhausted.
Yes. Point the client's base URL at the gateway and use a project API key. Chat Completions with streaming is live; the Responses API is in beta. Responses include exact usage, cost and a receipt.
You approve USDG to the ComputeCreditRouter contract and purchase credits; funds move directly to the treasury. The backend verifies the transaction, event, token and amount onchain after confirmations, then credits your balance exactly once. Credits are prepaid and non-withdrawable. USDG purchases are in beta.
No. You can create an account with email and a password. A wallet is only needed to sign in with Ethereum or to buy credits with USDG. Private keys never touch the platform.
Code runs in disposable containers on dedicated sandbox nodes, never in the web application. Containers have no network, a read-only root filesystem, a non-root user, dropped capabilities and hard CPU, memory, process and time limits, and every request to a node is HMAC-signed. This is container isolation, not a virtual machine.
Start with
one request.
Create a project, issue a scoped key and receive your first signed receipt in minutes.