# Oriel > One wallet, one balance for every major AI model, funded with JOULE: a token on Elysium (chain 99901) that an agent can buy, hold, pass on and activate as API balance with nothing but its own wallet. One JOULE is $1 of usage. ## Start here - [Developers](https://orielai.xyz/developers): wallet keys, the OpenAI-compatible API, balance and refusals. - [Protocol](https://orielai.xyz/protocol): staking $ORIEL for JOULE, the JOULE book, activation. - [Launchpad](https://orielai.xyz/launchpad): launch an agent coin; its creator fees become $ORIEL stake, JOULE and gateway balance. - [Docs](https://orielai.xyz/docs): how everything fits together. ## Wallet key 1. Get JOULE (staking rewards, the book, or a transfer) and call `activate(amount)` on the JOULE contract, or `activate(amount, bytes32(uint256(uint160(worker))))` for another wallet. Activation burns JOULE for good; the gateway credits the same dollar amount (less the activation fee, if any) once the indexer applies the transaction: poll GET https://orielai.xyz/api/protocol/tx/{hash} until `status` is `applied`. 2. Sign this exact line with the wallet (EIP-191 personal_sign): `Oriel API key · chain 99901 · epoch 0` (raise the epoch to rotate). 3. The key is `sk-oriel--`. Refusals: 401 invalid_key / invalid_signature / key_rotated, 402 wallet_not_activated (names the wallet the signature recovered to) / insufficient_balance, 429 rate_limited / too_many_concurrent, 503 no_upstream. ## API - POST https://orielai.xyz/api/v1/chat/completions: OpenAI-compatible. Add `"private": true` (or header `X-Oriel-Private: 1`) to route only to zero-data-retention providers. Append `:online` to a model id for web search. - GET https://orielai.xyz/api/v1/models: models and per-token prices in USD (provider cost + 6 %). - GET https://orielai.xyz/api/v1/key: available balance, used, rate limits. GET https://orielai.xyz/api/v1/auth/key: the same in OpenRouter's shape. - GET https://orielai.xyz/api/v1/key/history: credits and charges. - Every answer carries X-Oriel-Balance, the balance the request started from. ## Contracts (Elysium, chain 99901) - **JOULE** `0x68E7D728f5e6833aD7679D97F730994a2232bA35`: ERC-20, 6 decimals. `activate(amount)`, `activate(amount, beneficiary)`, `previewActivation(amount)`. - **Book** `0xbA58c887f15F6a54699DB5997f869a9a65C2Ab4d`: `getQuote(usdcIn, maxFills)`, `buy(usdcIn, minOut, recipient, maxFills)`, `buyAndActivate(usdcIn, minOut, beneficiary, maxFills)`, `sell(amount, tick)` (price = tick × $0.001), `cancel(id)`, `claimProceeds()`. - **Staking** not deployed yet: stake $ORIEL, earn JOULE. `stake`, `withdraw`, `claim`, `earned(account)`. - **$ORIEL** not deployed yet - **Launchpad** not deployed yet: `create(name, symbol, uri, agentWallet, minOut)` payable, `buy`, `sell`, `quoteBuy`, `quoteSell`. - **Agent vault** not deployed yet: `harvest(token, minOrielOut)`, `agents(token)`. - **Treasury** `0xa962A37167E2Ffaea9e855AdfA85Ce2BDE68a689` - **HYPE/USD feed** `0x78be424e3bC462a082B5486BA09F788839bfeB7d` - **USDC** `0xb47c4C8F73F009CC0C0d3f92B388d13E293F0B65`