VoidnetVoid Docs
Concepts

Void Apps

AI tools, agents, and models on the Voidnet Console platform.

Void Apps are services published by developers and made available to buyers through the marketplace. The Voidnet routes buyer requests to the publisher's server, handling authentication, rate limiting, metering, and billing. Your code only talks to the gateway.

App types

MCP — AI Tools (available)

Model Context Protocol servers expose callable tools, data resources, and prompt templates. AI clients discover and invoke these tools at runtime. Protocol version 2026-07-28 (stateless).

An MCP server can expose:

  • Tools — callable functions with typed JSON input schemas.
  • Resources — URI-addressable data.
  • Prompts — reusable prompt templates.

Available today: MCP tools and AI models. One model per LLM app.

LLM — Language Model Integration (available)

Connect and query language model providers through a unified OpenAI-compatible interface. TEXT only — no image, audio, or video. One model per app, token-metered (usage.total_tokens), billed per token. Host with vLLM/Ollama at https://your-host/v1 and expose POST /v1/chat/completions. Example: HuggingFaceTB/SmolLM2-135M-Instruct on 6010 or Ollama http://localhost:11434/v1.

How apps are consumed

MCP (stateless 2026-07-28)

POST /v1-beta/mcp/{username}/{appname}
Authorization: Bearer vnb-sk-...          # API key
Authorization: Bearer eyJhbGciOiJSUzI1... # JWT access token

Headers:
  MCP-Protocol-Version: 2026-07-28
  Mcp-Method: tools/call
  Mcp-Name: get_forecast

LLM (OpenAI compatible)

POST /v1-beta/llm/{username}/{appname}           # gateway
Authorization: Bearer vnb-sk-...                 # buyer key
Content-Type: application/json

Body: {"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"hi"}],"temperature":0.7,"max_tokens":64,"stream":false}

# With OpenAI SDK:
# from openai import OpenAI; client = OpenAI(base_url="https://api.openvoidnet.com/v1-beta/llm/{publisher}/{app}", api_key="vnb-sk-...")
# client.chat.completions.create(model="...", messages=[{"role":"user","content":"hi"}])
  1. Browse the Marketplace and purchase an app (free tiers require clicking "Get").
  2. Note the publisher's username and the app's name.
  3. Send JSON-RPC 2.0 requests through the gateway.

Stateless MCP 2026-07-28 — No sessions, no initialize handshake, no Mcp-Session-Id header, no GET/DELETE endpoints. SSE streams are per-request on POST; close = cancel.

The gateway accepts both API keys and JWT access tokens and auto-detects the credential type.

How apps are published

Publishers register their app, choose its type (mcp or llm), and provide their server URL (https://host/v1 for LLM, https://host/mcp for MCP). The gateway stores the mapping between username/appname and the server. When a buyer makes a request, the gateway resolves the server URL, authenticates, validates the purchase, and proxies the request. LLM apps are one model per app — the published model ID must match the model buyers send.

Publishers who want to build and list an app should read the Publisher Guide (MCP) or Publisher Guide (LLM).

On this page