OpenBroker by Gonka Labs
Documentation

Devshards as a service

OpenBroker is a broker for brokers. It operates the escrow wallet, devshard runtime, version routing, and GNK-native accounting — so you can serve Gonka inference through a single OpenAI-compatible API without managing devshard infrastructure yourself.

No enrollment or allowlist application needed.

Create an account, grab an API key, deposit GNK — and you're serving Gonka inference. No operator application, no devshard setup, no private key management.

What is OpenBroker

OpenBroker manages the full devshard lifecycle behind a simple API. Brokers register, deposit GNK, get an API key, and route traffic — no private keys, no escrow management, no devshardctl operations.

Operated escrow wallet

OpenBroker runs the privileged escrow operator wallet and opens devshards on your behalf. Each broker gets isolated capacity — your traffic stops when your balance or dedicated devshard capacity is unavailable.

Operator wallet
gonka1r2s0rwgskp6y4ed7qr7d25qdwjwlvpp6demv90

This wallet is on the chain-level devshard operator allowlist in the v0.2.13 upgrade — anyone can verify it on-chain.

One OpenAI-compatible API

Send standard /v1/chat/completions requests with your obk- API key. Streaming, function calling, and all standard parameters work out of the box.

GNK-native billing

Usage is billed per-token in GNK at real devshard cost. No markup on top of network rates. Settlement and cost attribution happen automatically after each request.

Quickstart

From zero to your first inference request in minutes. No enrollment, no application, no waiting for approval.

Step 2

Grab an API key

On the dashboard, click Create API key. You'll receive a key starting with obk-. Store it securely — it cannot be recovered after creation. You can create multiple keys and delete a key from the dashboard; it stops working immediately.

Get API key →
Step 3

Deposit GNK

Send native GNK on Gonka mainnet to the OpenBroker deposit address on the dashboard (Deposit & top-up). Do not send to the personal wallet you entered at registration — that will not credit your broker balance. Top-ups use the same deposit address every time.

Go to dashboard →
Step 4

Send your first request

Use your obk-key as a bearer token against the OpenAI-compatible endpoint. That's it — you're serving Gonka inference.

See examples ↓

API reference

OpenBroker is fully OpenAI-compatible. If your client works with the OpenAI API, it works with OpenBroker — just change the base URL and API key.

Base URL
https://api.openbroker.gonka.gg/v1
Endpoint
POST /chat/completions
Models
GET /models
Auth
Bearer obk-…
Streaming
"stream": true

Authentication uses a standard Authorization: Bearer header. Your obk- key is scoped to your broker account and balance. GET /models is public and does not require a key.

List models

GET /v1/models returns the live catalog in the standard OpenAI list shape. Point the OpenAI SDK at https://api.openbroker.gonka.gg/v1 and call client.models.list(), or hit /models directly. Use the API host api.openbroker.gonka.gg — the website host does not serve this route.

List models
GET /v1/models
curl https://api.openbroker.gonka.gg/v1/models
{
  "object": "list",
  "data": [
    { "id": "MiniMaxAI/MiniMax-M2.7", "object": "model", "owned_by": "openbroker" },
    { "id": "deepseek-ai/DeepSeek-V4-Flash-0731", "object": "model", "owned_by": "openbroker" }
  ]
}

Kimi-K2.6 deprecated

Kimi-K2.6 is deprecated on OpenBroker. The chain currently has no validation weights for this model, so we cannot open escrows and requests will fail. Use MiniMax-M2.7 or DeepSeek-V4-Flash. Model ID moonshotai/Kimi-K2.6.

Account balance

Check remaining GNK with the same obk- key you use for inference. Amounts are in ngonka (1 GNK = 1,000,000,000 ngonka).

Current balance
GET /v1/balance

Get balance

balance_ngonka is the ledger total. available_ngonka is what new requests can spend: balance minus reserved funds minus the account min reserve. Inference stops when available reaches 0.

curl "https://api.openbroker.gonka.gg/v1/balance" \
  -H "Authorization: Bearer obk-YOUR_API_KEY"
{
  "status": "active",
  "balance_ngonka": 96730000000,
  "reserved_ngonka": 0,
  "min_reserve_ngonka": 10000000000,
  "available_ngonka": 86730000000
}

Usage & cost tracking

Two read-only endpoints, both authenticated with your obk- key, let you pull per-request cost data programmatically instead of relying on the dashboard.

List usage (paginated)
GET /v1/usage
Single request lookup
GET /v1/usage/{id}

List usage

Returns a page of your past requests (newest first), each with token counts and GNK cost, plus lifetime totals across your whole account. Supports page / page_size (max 200), model, and status (success or error) query params.

curl "https://api.openbroker.gonka.gg/v1/usage?page=1&page_size=50" \
  -H "Authorization: Bearer obk-YOUR_API_KEY"
{
  "data": [
    {
      "id": "b0e3b3f9-7cd0-4446-a028-3f3d736131eb",
      "model": "MiniMaxAI/MiniMax-M2.7",
      "prompt_tokens": 41,
      "completion_tokens": 5,
      "total_tokens": 46,
      "cost_ngonka": 460,
      "cost_source": "estimated_token_price",
      "status_code": 200,
      "x_request_id": "req-1783530713885430103-652417",
      "response_id": "devshard-24154-9825",
      "created_at": "2026-07-08T17:12:03.812Z"
    }
  ],
  "pagination": { "page": 1, "page_size": 50, "total_items": 128, "total_pages": 3 },
  "totals": { "requests": 128, "errors": 4, "tokens": 58211, "cost_ngonka": 941200000 }
}

Look up a single request by ID

Rather than paginating through the list to find one request, look it up directly by an ID you already have: the id field from the completion response body itself, or the X-Request-Id response header (present on every response, including error responses that have no JSON body).

# Every completion response already carries an "id" field
# (e.g. response.id in the OpenAI SDK) — use it directly, no extra
# bookkeeping required. The X-Request-Id response header works too,
# and is the only option for requests that errored before a JSON
# body was produced.
curl "https://api.openbroker.gonka.gg/v1/usage/devshard-24154-9825" \
  -H "Authorization: Bearer obk-YOUR_API_KEY"
{
  "id": "b0e3b3f9-7cd0-4446-a028-3f3d736131eb",
  "model": "MiniMaxAI/MiniMax-M2.7",
  "prompt_tokens": 41,
  "completion_tokens": 5,
  "total_tokens": 46,
  "cost_ngonka": 460,
  "cost_source": "estimated_token_price",
  "status_code": 200,
  "x_request_id": "req-1783530713885430103-652417",
  "response_id": "devshard-24154-9825",
  "created_at": "2026-07-08T17:12:03.812Z"
}

cost_source tells you how cost_ngonka was derived. A value starting with devshard_ means the devshard gateway confirmed the real settled cost for that request. estimated_token_price (optionally suffixed _plus_markup) means we computed it from your prompt/completion token counts at the network's flat per-token rate — this is the common case today, since the gateway doesn't expose a real-time per-request billing lookup, and it tracks the actual settled cost closely in practice. We automatically upgrade a row to the real settled cost if the gateway ever reports one for that request. Once each Gonka epoch starts, we debit one line for the previous epoch (cost_source=escrow_epoch): create fees for new opens plus leftover unused lock only from escrows we cannot settle on-chain, split by your share of successful tokens in that epoch. Per-escrow nano lines are not shown.

Code examples

Replace obk-YOUR_API_KEY with your actual API key.

curl
curl https://api.openbroker.gonka.gg/v1/chat/completions \
  -H "Authorization: Bearer obk-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [
      { "role": "user", "content": "Explain devshards in one sentence." }
    ],
    "max_tokens": 100
  }'
Python (OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    base_url="https://api.openbroker.gonka.gg/v1",
    api_key="obk-YOUR_API_KEY",
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",
    messages=[{"role": "user", "content": "Explain devshards in one sentence."}],
    max_tokens=100,
)

print(response.choices[0].message.content)
Node.js (fetch)
const res = await fetch("https://api.openbroker.gonka.gg/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer obk-YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "MiniMaxAI/MiniMax-M2.7",
    messages: [{ role: "user", content: "Explain devshards in one sentence." }],
    max_tokens: 100,
  }),
});

const data = await res.json();
console.log(data.choices[0].message.content);
Streaming

Set "stream": true to receive Server-Sent Events (SSE).

curl https://api.openbroker.gonka.gg/v1/chat/completions \
  -H "Authorization: Bearer obk-YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MiniMaxAI/MiniMax-M2.7",
    "messages": [{ "role": "user", "content": "Count to 5." }],
    "max_tokens": 50,
    "stream": true
  }'

Supported models

Use the full model ID in the model field of your request. Prefer GET /v1/models (or /models on the OpenAI base URL) for the live list — the active set changes by governance vote per epoch. Check network updates for the latest status.

Kimi-K2.6 deprecated

Kimi-K2.6 is deprecated on OpenBroker. The chain currently has no validation weights for this model, so we cannot open escrows and requests will fail. Use MiniMax-M2.7 or DeepSeek-V4-Flash. Model ID moonshotai/Kimi-K2.6.

MiniMax-M2.7

Active

High-throughput model optimized for fast generation and agentic workflows. Active on the Gonka network.

MiniMaxAI/MiniMax-M2.7

Kimi-K2.6

Deprecated

Deprecated. The chain has no validation weights for this model, so OpenBroker cannot open escrows and requests fail.

moonshotai/Kimi-K2.6

DeepSeek-V4-Flash

Active

DeepSeek's fast V4 Flash model. Active on the Gonka network.

deepseek-ai/DeepSeek-V4-Flash-0731

GLM-5.2

Inactive

Registered on the Gonka network, but no hosts currently serve it — requests will fail until capacity comes online.

zai-org/GLM-5.2-FP8

Ready to start?

No enrollment, no application, no waiting. Create an account and get your API key in minutes.