How Volu works.

  1. Connect a Solana wallet and sign a one-time message. The server verifies the signature, nonce, expiry and domain.
  2. Fuel → read your Meteora DAMM v2 positions and claim fees to your own wallet (simulated, wallet-signed).
  3. Fund → an invoice fixes an exact USDC amount and memo. Credit is posted only after the transfer finalizes and matches mint, destination, sender, amount and memo.
  4. Agents → budget profiles with caps and model allowlists. Keys belong to one agent.

Gateway (OpenAI-compatible)

Base URL: https://<your-domain>/api/public/v1

curl https://<your-domain>/api/public/v1/chat/completions \
  -H "Authorization: Bearer volu_sk_..." \
  -H "Content-Type: application/json" \
  -d '{"model":"<id from /v1/models>","messages":[{"role":"user","content":"Hello"}],"max_tokens":256}'
  • GET /v1/models — eligible models with exact micro-USD prices per 1M tokens.
  • POST /v1/chat/completions — text messages; stream: true returns SSE.
  • GET /v1/balance — integer micro-USD strings.

Billing

Before each call the maximum possible charge (UTF-8 bytes as an upper bound for prompt tokens + max_tokens, at catalog price) is reserved atomically under your balance and caps. After the call, the provider-reported cost is debited and the rest released. If the cost is missing, the reservation stays held as “pending reconciliation” — it is never assumed to be zero. Header x-volu-charge-micro reports the debit.

Limits in this release

  • No tools, plugins, images or response_format (not priced yet). Models with per-request, image, web or reasoning surcharges are excluded.
  • Prompts and outputs are not stored by Volu. Provider retention depends on the upstream provider.
  • Dynamic fee-sharing vaults are not part of this release.
  • Not audited.