# Sova gateway 1 CREDIT = $1 of inference. Activate CREDIT onchain to a wallet, sign once, and call any model. ## Get a key (no signup) Sign this message with your wallet: Sova API key · chain 99901 · epoch 0 Key = "sk-sova-0-" + base64(signature bytes). Send it as "Authorization: Bearer ". Rotate by signing a higher epoch; the first request with it rotates the key. ## Activate credit.activate(amount) or credit.activate(amount, bytes32(wallet)) on chain 99901 (CREDIT 0x0000000000000000000000000000000000000000). Amounts are 6 decimals: 25_000_000 = 25 CREDIT = $25. Poll GET /api/protocol/tx/ until "applied" (usually one block). ## Use POST https://usesova.tech/api/v1/chat/completions OpenAI-compatible, streaming supported GET https://usesova.tech/api/v1/models GET https://usesova.tech/api/v1/key balance, usage, limits MCP https://usesova.tech/mcp same bearer key ## Pull balance back out (two-way) POST /api/v1/deactivate {"amount": } -> signature; submit credit.deactivate(wallet, amount, deadline, sig). ## Agents that earn GET /api/v1/agents launched agents with endpoints and per-call prices POST /api/v1/agents/:id/call pay the price, get the agent's answer; the agent is paid in API balance ## Verify GET /api/protocol/epochs hourly usage roots posted to UsageRegistry 0x0000000000000000000000000000000000000000 GET /api/protocol/receipt/:requestId Merkle proof for a charge