How Volu works.
- Connect a Solana wallet and sign a one-time message. The server verifies the signature, nonce, expiry and domain.
- Fuel → read your Meteora DAMM v2 positions and claim fees to your own wallet (simulated, wallet-signed).
- 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.
- 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: truereturns 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.
