User Guide

Overview

Krixvon aggregates AI models from many providers into a single OpenAI-compatible API. Two audiences use this guide:

Providers: connect idle GPUs to the platform and earn revenue as your models go live automatically.
Downstream / Customers: developers, AI apps, or resale platforms like New API that call every model on the platform with a single key.

Public endpoints: Gateway https://foundry-gw.krixvon.net (call models), provider portal https://foundry.krixvon.net.

Architecture

A request flows left to right: the downstream app hits the Gateway, the Gateway routes by policy to a supply node, and billing happens on the way back. Providers and customers each tend only to their own end — routing, fault tolerance and billing in the middle are handled by the platform.

Downstream app
OpenAI-compatible calls
Krixvon Gateway
Routing · failover · billing
Supply node
GPU inference

Providers — connect a GPU, earn revenue

Your GPU machine
Paste one command
(the only manual step)
Auto deploy
Install engine · open secure tunnel
Auto listing
Validate · sync models
auto-bound, routable
Start supplying
earn on every call
  1. 1

    Log in to the provider portal and copy the one-click command

    Go to foundry.krixvon.net to log in to the provider console → "Local Onboarding" in the left nav → pick your OS → copy that one line. The command already carries your connection token, so there is nothing to fill in.
  2. 2

    Paste and run it on your GPU machine

    The command automatically installs the inference engine, picks models by your GPU's VRAM (downgrading automatically if a model won't fit, to avoid OOM), opens an outbound secure tunnel, reports back to the platform, and sets itself to start on boot.
    No public IP, no firewall or router config needed — the node opens an outbound secure tunnel, so it works even behind a home network.
  3. 3

    Auto-listed, start supplying

    Once it passes the system check, the platform automatically binds your models into routable channels and sets their public pricing.
    The painless part: no console setup, no waiting for manual binding — once the sync completes, your models are callable and start earning. Track usage and revenue on the "Revenue / Traffic" page.

Supported platforms: Linux / NVIDIA (primary), macOS (Apple silicon), Windows (WSL2 recommended). Day-to-day ops: disable / enable a node anytime from the console; it recovers automatically after a reboot; the GPU idles at low power when there are no requests.

Your machine must be able to reach the provider portal (the install command already includes the platform URL). If it reports it can't reach the platform, first confirm the machine has normal internet access.

Downstream — get a key and call

Log in to the customer console → API Keys → Create → copy the full key immediately (shown only once). After that, call it the standard OpenAI-compatible way — just point the base URL at the Gateway:

curl https://foundry-gw.krixvon.net/v1/chat/completions \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"model":"<model-name>","messages":[{"role":"user","content":"Hello"}]}'
from openai import OpenAI
client = OpenAI(api_key="<YOUR_API_KEY>", base_url="https://foundry-gw.krixvon.net/v1")
print(client.chat.completions.create(
    model="<model-name>",
    messages=[{"role":"user","content":"Hello"}]).choices[0].message.content)
Look up available model names in the customer console or via GET /v1/models — the list grows as providers come online.

Image / video generation (listing and re-validation)

Image and video generation run on GPU diffusion nodes (ComfyUI), using the same one-click onboarding as text nodes — the only difference is specifying which model to run. Once connected, providers can supply images / video, and customers call them through the standard /v1/images/generations, /v1/videos/generations interfaces.

Connect an image node
one-click command
specify image / video model
Validate → auto-bind
bound into the "image" channel
no manual step
Customer generates images
/v1/images
  1. 1

    Connect an image node (specify the model)

    Use the same one-click command as provider onboarding, plus KX_MODEL to specify the model: images z-image-turbo (platform-verified), flux1-schnell, qwen-image, sdxl, playground-2.5; video wan2.2-ti2v-5b and others.
    VRAM note:image models are VRAM-hungry (e.g. z-image needs about 16GB). If you share one card with a text model and run short, add KX_EVICT=1 to free memory, or use multiple cards (the platform pins text and image to separate cards automatically).
  2. 2

    Re-run the system check → auto-bind (if it doesn't appear automatically)

    Normally the sync lists it automatically. If a model doesn't appear in the list, go to the "Supply Sources" page, find that ComfyUI source → click "Validate" on the right (↻ re-run the system check) → wait 10–30 seconds, refresh → the status turns to "Enabled" and you're done.
    One "Validate" runs the whole chain: connection test → sync models → enable source → bind into the "image" channel → flip to available in the background. No need to bind manually on the channels page.
    If the source is in a "Disabled / Rejected" state, "Validate" is blocked (to prevent silent revival) — click "Enable" first, then "Validate".
  3. 3

    Call from the client

    Once the model appears, customers can select it on the Image tab of the "API Test" page, or call it directly:
curl https://foundry-gw.krixvon.net/v1/images/generations \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"model":"z-image-turbo","prompt":"a cyberpunk cat in a neon city at night","size":"1024x1024"}'
Output format: by default returns embedded b64_json (renders anywhere out of the box); once the platform has a public object-storage domain configured, pass "response_format":"url" to get a signed URL instead (saves bandwidth, especially recommended for video). Images also support negative_prompt, n (batch), and image-to-image (img2img) by passing an image .

How billing works (one wallet × per-modality metering)

Krixvon is an "AI token marketplace," but "Token" is the marketplace's banner, not its only unit of measure. Each AI service is metered in its most natural unit, then settled through one wallet — one balance for the customer, one revenue-share formula for the provider.

Each modality metered in its natural unit

Text LLM
per token
tokens × unit price
Image generation
per image × resolution
images × unit price
Soon
Video generation
per second × resolution
seconds × unit price
Converted to USD cost
Whatever the modality, everything converges to one currency
Customer: one wallet, one deduction

A single USD balance — text, image and video are all deducted from here, so the customer never has to track which modality or node served the request.

Provider: one revenue-share formula

One revenue-share formula (base share × quality multiplier), with earnings landing in one account — consistent across every modality.

In one line: metering is per-modality (text per token, image per image, video per second); settlement is one wallet (USD balance). So there's no awkward "force an image into some token count" — that would never line up with industry pricing.

Connect New API (price sync)

If you use New API (or any OpenAI-compatible resale platform) to connect to Krixvon, treat Krixvon as an upstream channel. Configure the channel, sync prices in one click, and your customers can call the platform's models — billing is fully automatic.

Your customers
buy tokens, call
New API
your billing front desk
Krixvon Gateway
routing · billing
Supply node
GPU inference
  1. 1

    Add a channel in New API

    Console → "Channels" → "Add Channel," set the type to OpenAI, and fill in per the table below:
    TypeOpenAI
    Proxy / Base URLhttps://foundry-gw.krixvon.net
    KeyYour Krixvon customer API key
    ModelsClick "Fetch Models" to auto-populate
    The most common pitfall: Base URL. Do not append /v1 at the end (New API adds it itself; otherwise it becomes /v1/api/pricing → 404). Also do not use a local address (e.g. localhost), or New API won't be able to connect and you'll get connection refused.
  2. 2

    Test the channel, wait for green

    Back in the channel list, click "Test" on that row (it hits {Base URL}/v1/models).
    Showing success / green = the Base URL is correct and the Gateway is reachable.
  3. 3

    Sync upstream prices in one click

    "Settings → Ratio Settings → Upstream Ratio Sync" → check the Krixvon channel → click "Fetch," and New API pulls back the ratio for every model.
    The crucial last click: after fetching, a diff table pops up — be sure to check it and press "Apply / Save." "Fetch" alone doesn't write anything — this is where most people get stuck. Once applied, "model price not configured" disappears.
    Just using it yourself and don't care about per-request billing? Flip New API's "self-use mode" switch instead — no pricing needed.
  4. 4

    Make one call to verify the whole chain

    Call any model with a New API token; a normal response means New API → Krixvon Gateway → supply node is fully wired, and billing is already recorded at the synced ratios.

Billing conversion (Krixvon price → New API ratio, computed automatically on sync. Baseline: ratio 1 = $2 / 1M input tokens):

model_ratioinput price (USD / 1M) ÷ 2
completion_ratiooutput price ÷ input price

When providers later bring new models online, just hit "Upstream Sync → Apply" again in New API to update — no manual price table to maintain.

Platform resilience (automatic, no setup)

The platform has built-in fault tolerance: misbehaving sources are cooled down and temporarily skipped, then recovered automatically when the window expires; when a model has multiple sources, it fails over automatically; upstream probing is throttled to avoid tripping rate limits. None of this requires any setup on your part.

FAQ

New API shows "connection refused" → the channel Base URL is set to a local address; change it to https://foundry-gw.krixvon.net.
New API shows "model price not configured" → upstream sync only "fetched" without pressing "Apply"; or switch to self-use mode.
Calls return 403 / 429 → key permissions / quota, or rate limiting; retry later or contact the platform about your plan.
A model isn't in the list → no supply node is available for it yet; it appears automatically once a provider comes online.
A supply node shows online but isn't reachable → wait for the system check and auto-binding to finish, or re-validate from the provider console.

This page is public documentation and contains no accounts, secrets or internal settings. Contact the platform if you need more help.