Loading page
Gondola is a marketplace on top of Venice AI. This page explains the relationship, then follows one request end to end: who serves it, what gets changed, what you pay, and what is stored.
Venice AI is a privacy-focused inference provider. Staking its DIEM token mints a daily inference allowance: 1 staked DIEM is roughly $1 of compute per day, reset at midnight UTC, gone if unused.
Gondola is a marketplace for that idle allowance. DIEM holders deposit a Venice INFERENCE API key and set a price factor against Venice list. Buyers call one OpenAI-compatible gateway and pay per request in USDC on Base. Gondola routes each request to a deposited key, meters usage, and settles the money: top-ups and payouts are on-chain, per-request settlement is off-chain.
Authentication. One of three ways: a gnd_ API key (Bearer, also x-api-key on /v1/messages), or a per-request x402 payment with no account at all.
Routing. The broker picks a lender key inside a small price band around the cheapest healthy candidate, weighted by available allowance. The response discloses the pick: X-Gondola-Chosen-Factor (the price factor routed at, relative to Venice list), X-Gondola-Candidates, and X-Gondola-House: true when no lender had capacity and Gondola's own prepaid key served instead, at Venice list. That fallback is a maybe, not a promise: it serves only while funded and under its daily cap. Cap what you will pay with x-gondola-max-factor or x-gondola-max-charge-usd; nothing available within your cap is a clean refusal, never a silent fill at a higher price. When a model is overloaded you can opt into automatic fallback with x-gondola-fallback-models (up to 3 model ids, each tried once at its own listed price, disclosed via X-Gondola-Served-Model); without it the request never leaves the model you named.
Sanitization. Venice's request schema is strict: unknown keys and out-of-range values fail the whole request. So Gondola cleans the body before forwarding: params Venice would reject are dropped or clamped, and Venice's own default system prompt is not added to /v1 requests unless you opt in. When you send no prompt_cache_key, Gondola derives one from the conversation prefix and forwards it, so repeat turns land on the backend that already holds your cache and bill at the cached rate. The parameter reference lives in llms.txt.
Metering. The gateway reserves a hold from your balance, forwards to Venice under the routed lender key, reads actual usage from the response, and settles: you are billed on actual usage, never more than the reserved hold. On /v1/messages, stopping a stream bills only the tokens generated before the stop; on /v1/chat/completions, disconnecting does not interrupt the model, so the full response is charged. A request Venice turns away because the model is at capacity (a 429) is never charged.
Fees. Buyers pay the lender's posted price plus a platform fee of up to 2%; weekly placement can cut it to as little as 0.3% (see how points work). Lenders receive their posted price minus a platform fee of up to 2%. The spread is the whole business model: no subscriptions, no markups hidden in the token count. Full math on /transparency.
Storage. Gondola's servers store token counts and per-request accounting metadata, never prompts or completions (details on /privacy). Venice receives request content to run the inference, and briefly holds a finished video clip until your client confirms delivery.
Gondola deliberately does not mirror Venice's documentation: mirrored docs rot, and the gateway intentionally diverges from Venice in the places listed above. The rule is simple. Where Gondola passes behavior through unchanged (model behavior, characters, per-model privacy tiers), Venice's own docs at docs.venice.ai are authoritative; their model catalog covers what each model can do. Where Gondola diverges (routing, fees, request sanitization, price caps, token caps), this page and llms.txt are.