FOR DEVELOPERS / KRAVA CORE

Private inference.
A boundary you can verify.

Your client verifies the inference environment and encrypts the request before it leaves your application. Krava routes the sealed bytes. The relay has no key to read them.

01 / THE CONTENT PATH

Encryption reaches the compute.

Ordinary transport encryption ends at the server receiving the request. Krava Core seals the inference body to the verified TEE (Trusted Execution Environment), across the relay.

TRUST BOUNDARY 01Your clientVerifies attestation
Seals prompt and parameters
Decrypts the response
OPAQUE CONTENTKrava relayAuthenticates the caller
Reserves prepaid balance
Forwards sealed bytes
TRUST BOUNDARY 02Verified TEEDecrypts inside the enclave
Runs the requested model
Seals the response
The sealed response streams back through the relay to your client. Plaintext exists at the client and inside the inference environment; it is not exposed to the Krava relay.
01 / VERIFY

Check before sharing

The SDK verifies attestation on the caller’s machine and binds the enclave’s encryption key to that evidence. Your chosen pin policy determines which signed releases you accept.

02 / SEAL

Keep the relay outside

The client seals the request body using EHBP. The relay rejects unsealed inference bodies, checks attestation again, and forwards ciphertext through the TEE provider adapter.

03 / REFUSE

Fail closed

The requested model is served or the request is refused. A failed privacy check is an error, not permission to fall back to a plaintext provider or a different model.

02 / THE SERVICE

A small, deliberate core.

Krava Core replaces the earlier Vercel-based service with a dedicated relay and account console. The current sandbox runs on AWS with inference in a verified TEE. The service is focused on five capabilities:

  1. Passkey sign-in: WebAuthn authentication, account recovery, and API-key management.
  2. Prepaid billing: Stripe top-ups, balance reservations, usage settlement, and a ledger.
  3. Sealed TEE inference: client verification, encrypted requests, and streaming responses.
  4. Technical logging: operational records with an explicit retention inventory.
  5. An account console: access to accounts, keys, balance, and usage.

Core is an inference service. The legacy site’s encrypted-memory product and multi-provider routing promises do not describe this version.

03 / THE CONTROL PATH

Meter usage without storing the conversation.

BEFOREAccount & balancePasskey session or API key
Prepaid funds
DURINGReserve & routePlace a billing hold
Route the sealed request
AFTERSettle & recordSettle usage against the hold
Record billing metadata
Content privacy does not mean an absence of records. Account state, usage and payment records remain separate concerns from encrypted prompts and completions.
DataBoundary
Prompts & completionsSealed across the relay; Core does not persist their content.
Account & authentication stateStored to operate passkeys, sessions, recovery, and API keys.
Usage, payments & operational recordsRetained under field-specific policies. Some records can be linked to an account.
Your application & user deviceOutside the relay’s privacy boundary. Your own logs, analytics, storage, and endpoint security still matter.
04 / START BUILDING

Verify first.
Then send.

Use the Core client SDK or CLI, configure the sandbox endpoint, authenticate, and choose the enclave pin policy before sending private content.

npm install @krava-io/core-client@beta

# Or use the terminal client
npm install -g @krava-io/cli@beta

For a browser integration, run the SDK in the browser if you want encryption to begin on the user’s device. Running it on your backend puts your backend inside the plaintext boundary. Never embed a shared server API key in a public app.

A signed-release floor accepts eligible signed builds at or above that floor. An exact pin narrows the accepted build. Choose deliberately; attestation still depends on the verifier, the accepted software, and the confidential-computing hardware.

Bring a precise privacy claim to your product.

Say what is protected, where it is decrypted, and what is retained. That is a stronger foundation than an unqualified “zero logs” badge.

Read the business case