# Wallet and keys

> Your balance and its keys: why a market, a key per teammate or agent with its own spend limit, the wallet’s ceiling and expiry, usage and CSV export, revoking a key.

One balance pays for every model with a live seller on Inferit. You top it up once, set a ceiling on it, and give each teammate and each agent its own API key with its own spend limit. Agents can also pay per request with no key at all.

## Why a market

The old way: credits and an API key from every lab, a pile of API keys pasted into every agent. With Inferit: one market, and a key with its own limit for each teammate and agent.

Every lab hands your agents its own API key and its own credits: a chore for you, and a limit on which model at which price your agents can reach. Inferit is the peer-to-peer market for AI inference instead. Anyone can sell inference for any model, at their own price, and your agents buy it per request. They send the request; with model auto, Inferit picks the model and the cheapest healthy seller for it, and charges the exact price. One balance, a limit on any key you choose, nothing to juggle. Sellers can list any model, such as Qwen, Llama or gpt-oss.

| The old way | With Inferit |
| --- | --- |
| Credits and an API key from every lab, each topped up on its own. | One balance. Top up once; every model with a live seller on Inferit draws from it. |
| A pile of API keys, pasted into every agent. | One key per agent or teammate, or no key at all: agents can pay per request. |
| Each key reaches one lab's models, at that lab's price. | One key reaches every model with a live seller. Anyone can sell, at their own price; each request goes to the cheapest healthy seller. |
| You pick a model for every call and hope the price is fair. | Send `"model": "auto"`. Inferit picks the model and the cheapest healthy seller. |
| A key with no limit spends whatever the account holds. | Give every key its own spending limit. Your balance has a ceiling too. |
| A bill to reconcile at the end of the month. | Every request carries its exact price, line by line. |

## The wallet's ceiling

Your wallet is a deposit in the escrow contract on Whitechain, with a ceiling: the most that may ever be charged to it, counted from what you have already spent, and an expiry. The contract enforces both: after the expiry nothing more can be charged until you set a new ceiling. The app suggests a ceiling equal to your deposit, at most 25 ITC on testnet, expiring in 7 days. The mechanics are on [the Whitechain escrow page](https://inferit.cc/docs/payments/whitechain.md#cap).

What you have not spent stays yours: you can withdraw it after a fixed delay, and withdrawals keep working even while deposits and settlement are paused ([withdrawals](https://inferit.cc/docs/payments/whitechain.md#withdraw)).

## Keys

Buyer keys start with `ik_` and are shown once, when you create them; Inferit stores only a hash. Each key can carry its own spend limit, which Inferit's API enforces, and a minimum discount against the list price. A key at its limit answers `402 spend_limit_exceeded`; a request whose worst case is more than the wallet's balance or ceiling answers `402 insufficient_funds`. The endpoints are in [the API reference](https://inferit.cc/docs/api-reference.md#keys).

## A key for everyone

Illustration: one balance with a $10 ceiling and three keys, each with its own limit; one key is revoked and the others keep working.

Fund one balance and give each teammate and each agent its own key, with its own limit. Every key spends the same balance, never past its own limit, and the wallet's ceiling caps them all. There are no team accounts, roles or invites: a teammate is a key.

## Usage

Every request carries its exact price: the response header `x-inferit-buyer-cost-micro`, and a row in your usage with the token counts, the cost and the model that served it. The wallet has one usage history for all its keys, which you can export as CSV from the Buy workspace or with [GET /v1/usage/export.csv](https://inferit.cc/docs/api-reference.md#buyer). Neither contains prompts or answers.

## Revoking a key

Revoke a key in the Buy workspace or with `DELETE /v1/keys/:id`. It stops working at once, and the wallet's other keys keep working.

## No key at all

An agent can pay per request with x402, with no account and no key: the API answers `402` with a quote, and the agent pays for that one request, at least $0.01, into its own balance. Each request is charged its exact price. See [Agents](https://inferit.cc/agents).

---

Canonical page: https://inferit.cc/docs/wallet
All pages as markdown: https://inferit.cc/llms.txt
Testnet demo: test tokens, no monetary value.
