Selling inference
Sellers serve open-weight models from hardware they control and earn their own per-token price whenever they are the cheapest healthy offer.
What you can list
- Your own endpoint (default). Any OpenAI-compatible server: vLLM, Ollama, SGLang, or the Inferit
seller-nodesidecar. You give a base URL and an optional bearer token; the token is stored AES-256-GCM encrypted. It must be a server you run: URLs on known hosted providers are rejected. Putting a hosted provider's API behind a proxy on your own domain is still key resale and is not allowed, even though the API cannot prove where an endpoint really runs. - An upstream API key (gated). Only for providers on the resale allowlist, each with a public link to terms that permit resale. The default allowlist is empty, so this is closed unless the operator adds a provider.
Every listing and the traffic it serves must follow the acceptable use policy, including its seller rules: no logging, retaining or training on buyer requests, and no inflated usage.
Licences
Every catalog model has a licence class. Permissive (Apache-2.0, MIT) lists freely. Conditional (for example the Llama community licence, Qwen licence, Gemma terms, modified MIT) requires you to acknowledge the conditions. Not allowed (non-commercial weights, closed models) is rejected. The summaries on this site are not legal advice; read the linked licence.
Steps
- Register on the escrow from Sell:
registerSeller(payout)from your own wallet on Whitechain Sepolia (you need a little test WBT for gas). An offer cannot go live before this. - Sign in, then list an offer: model, endpoint, price and an optional daily cap.
- The API resolves your host and rejects private and link-local addresses (SSRF guard), then sends a live 1-token probe. If it answers, the offer is active.
# Reference sidecar in front of Ollama (or vLLM / SGLang). The seller-node package ships with the Inferit
# repository (access on request while it is private); any OpenAI-compatible server with bearer auth works too.
# MODEL_MAP maps catalog ids to upstream model names (example values).
UPSTREAM_BASE_URL=http://localhost:11434/v1 \
MODEL_MAP='{"qwen/qwen-2.5-14b-instruct":"qwen2.5:14b-instruct"}' \
SELLER_TOKEN="$(openssl rand -hex 24)" \
pnpm --filter @inferit/seller-node start
# MOCK=1 serves deterministic canned responses for testing (MOCK_LATENCY_MS, MOCK_FAIL_RATE)Pricing
Price per token (µUSD per 1M input, output and optional cache-read tokens) or as a percentage of the catalog list price. That is what you earn. Buyers pay your price plus the platform fee (5% by default); the escrow caps the fee at 10%. A daily cap limits how much seller-cost you take per day; the order book shows it summed with the other offers at your price level.
Health and routing
Buyers are routed to the cheapest healthy offer that meets their filters. A failed request or probe marks your offer unhealthy and schedules the next probe on a backoff ladder of 1, 2, 5, 10, 30 and then 60 minutes; one success restores it. Failover happens only before the first byte, so a stream you start is never handed to someone else midway.
What buyers see
From the API and the order book: price levels, offer counts and the combined daily caps per level. Never your wallet, endpoint URL or your individual volume. The x-inferit-offer header is an opaque hash.
Settlement is a separate matter: on Whitechain, settlement is public. Every LineSettled event names the buyer and your seller address with the amount, and sellerState shows your unwithdrawn earnings, so anyone can total your volume and a buyer can match its own requests to your address. If you prefer to keep marketplace income separate from your other on-chain activity, use a dedicated business wallet for selling. See On-chain visibility.
Getting paid
Usage settles in batches. Your earnings accrue in the escrow and withdrawEarnings() sends them to your payout address; only your wallet can change that address. Every settlement and withdrawal is a transaction you can open on the explorer from the Sell page. Testnet earnings are ITC (Inferit Test Credit) and have no monetary value.