Docs

Ship in one line.

Volt speaks the OpenAI Chat Completions API. Point any existing SDK at us and it works — streaming, tool calls, JSON mode, all of it.

1 · Get a key

Connect your wallet, top up with USDC, then hit + New key on the dashboard. Keys look like volt_sk_… and are shown exactly once.

2 · Call it

curl https://voltdapp.site/api/v1/chat/completions \
  -H "Authorization: Bearer volt_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.3-70b",
    "messages": [{"role": "user", "content": "Explain Base in one line"}]
  }'

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://voltdapp.site/api/v1",
    api_key="volt_sk_...",
)

stream = client.chat.completions.create(
    model="llama-3.3-70b",
    messages=[{"role": "user", "content": "write a haiku about gas fees"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

TypeScript

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://voltdapp.site/api/v1',
  apiKey: process.env.VOLT_API_KEY,
});

const res = await client.chat.completions.create({
  model: 'llama-3.3-70b',
  messages: [{ role: 'user', content: 'hey' }],
});

3 · Models

idContext
llama-3.3-70b128k
llama-3.1-8b128k
qwen-2.5-72b32k
deepseek-v364k
mistral-small32k

Or fetch them live: GET /api/v1/models

Running out of credit

When your balance can't cover a request we return HTTP 402 with x402 payment requirements — so an autonomous agent can top itself up and retry without a human.

{
  "x402Version": 1,
  "error": "PAYMENT_REQUIRED",
  "accepts": [{
    "scheme": "exact",
    "network": "base",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0xYourTreasury...",
    "maxAmountRequired": "1000000"
  }]
}

Billing rules

What we store

Model name, token counts, price, timestamp. That's the entire usage record. Prompts and completions are streamed through and never written to disk.