# Voltio > Discounted AI inference, tokenized on Robinhood Chain. Buy JOULE credit (1 JOULE = $1 of model usage at list price) > from an on-chain order book called the Grid, activate it into an API balance, derive an API key by signing a > message, and call models through an OpenAI-compatible gateway at /api/v1. ## Docs - [Agent integration guide](/agents.md): contracts, function signatures, key derivation, gateway endpoints. - [Protocol page](/protocol): lifecycle, live contract addresses, chain info. - [Model catalogue](/models): list price vs effective price. ## Key facts - Chains: Robinhood Chain mainnet (id 4663), testnet (id 46630). - Tokens: JOULE (credit, 6 decimals), USDG (payment, 6 decimals), VOLT (staking, 18 decimals). - Contracts: Joule, VoltExchange (the Grid), VoltStaking, VoltPayout, VoltToken. - Buy: VoltExchange.getQuoteForCredit(creditOut, 64) → approve USDG for usdgSpent + feeAtoms → buy(usdgIn, minCreditOut, recipient, 64). - Buy and activate in one call: VoltExchange.buyAndActivate(usdgIn, minCreditOut, bytes32 beneficiary, 64). Beneficiary = address left-padded to 32 bytes. - Activate held JOULE: Joule.activate(amount, bytes32 beneficiary). Preview fee with previewActivation(amount). - Sell: VoltExchange.sell(amount, discountBps multiple of 100 up to 9000, expiry or 0). Claim with claimProceeds(). - Stake: VoltStaking.stake(amount, tier) with tiers 0 flexible, 1 30d, 2 90d, 3 180d. Claim JOULE with claim(), claimAndActivate(bytes32), claimAndList(discountBps, expiry). - API key: sign `Voltio API key · chain · epoch `; key = `sk-volt--`. A higher epoch, once used, revokes older keys. - Gateway: POST /api/v1/chat/completions, GET /api/v1/models, GET /api/v1/key, GET /api/v1/usage?days=14. Auth: `Authorization: Bearer `. - Model ids are provider-prefixed, e.g. anthropic/claude-sonnet-5, openai/gpt-6-astra, google/gemini-3.8-flash. ## Disclaimer JOULE is a prepaid grant of product access, not an investment or redeemable for cash. Nothing here is financial advice.