Quick start
Sign in on the home page, buy credits, and keep the key the dashboard shows you. Then send the first request with the same model ID you already use.
export GENIUSGENTS_API_KEY=sk-geniusgents-…
curl https://api.geniusgents.example/v1/chat/completions \
-H "Authorization: Bearer $GENIUSGENTS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet",
"messages": [{ "role": "user", "content": "Name three indexes that would speed this query." }]
}'
Already on an OpenAI or OpenRouter client? Change the base URL and the key. Leave the model ID and the message list as they are.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.geniusgents.example/v1",
apiKey: process.env.GENIUSGENTS_API_KEY,
});
const reply = await client.chat.completions.create({
model: "openai/gpt-4.1",
messages: [{ role: "user", content: "Summarize the diff in four lines." }],
});
from openai import OpenAI
client = OpenAI(
base_url="https://api.geniusgents.example/v1",
api_key="sk-geniusgents-…",
)
reply = client.chat.completions.create(
model="google/gemini-2.5-flash",
messages=[{"role": "user", "content": "List the failing assertion first."}],
)
Authentication
Two different actions get called “sign in” on other desks. Here they stay separate.
Connecting a wallet asks only for the public address. That address is the name on the credit balance in this browser. It does not reveal a seed phrase, and the site never asks you to paste a private key.
The API key is the bearer token in the Authorization header. The home page shows an example key for the client snippets. A completion gateway is not attached to this static desk yet, so that example host will not return a model reply until the gateway is connected.
Authorization: Bearer sk-geniusgents-…
Content-Type: application/json
Chat completions
POST /v1/chat/completions. The body matches the chat-completions shape: a model ID from the book, and a messages array.
{
"model": "anthropic/claude-sonnet",
"messages": [
{ "role": "system", "content": "Answer in plain sentences." },
{ "role": "user", "content": "Why is this query doing a sequential scan?" }
]
}
Model IDs are the ones in the live table, such as openai/gpt-4.1 or google/gemini-2.5-flash. The Geniusgents column is 5% under the public output price. You receive the list amount of usage. The wallet sends 5% less.
Streaming
Add "stream": true when the client already knows how to read a server-sent stream. The chunks use the same delta shape an OpenAI client expects.
const stream = await client.chat.completions.create({
model: "deepseek/deepseek-chat",
stream: true,
messages: [{ role: "user", content: "Walk through the migration in order." }],
});
for await (const part of stream) {
process.stdout.write(part.choices[0]?.delta?.content || "");
}
The demo on the home page is not this stream. It replays three answers saved on the page so you can compare prices without sending a prompt.
Models
The price book loads from OpenRouter’s public model list. List · 1M out is the completion price times one million tokens. Geniusgents · 1M out is that figure times 0.95.
Search and the family chips filter that same list. Show more reveals the rest. If the live list fails, the page keeps a short backup table and says so by leaving the count on that shorter set.
Use the ID in the small line under the model name. That is the string the client sends in model.
Balance and usage
A credit is usage on this desk. It is not cash, not a deposit, and not $GENGENTS.
Type the usage you want, or pick $20, $100, $500, or $2,000. The amount you pay is 5% under that number. Buy credits asks the connected Ethereum wallet to switch to Robinhood Chain, chain ID 4663, and send that amount as ETH to the treasury 0x9eb9c7a81f6e7b876abe65025cb443ac2a64466b. The wallet shows the ETH amount before you approve. The dollar figure is converted with the live ETH price at that moment.
Usage is added in this browser only after the wallet returns a transaction hash. The seven-day total, the chart, and the top-up list all come from those payments. A Solana wallet such as Phantom can connect, but it cannot send this ETH payment.
The balance stays in local storage under the address you connected. It is not spent by a model call until a completion gateway is attached.
Errors
The wallet closed
No ETH was sent and no usage was added. Press Buy credits again when you are ready to approve the transfer.
Robinhood Chain is missing
The page asks the wallet to add chain 4663, RPC https://rpc.mainnet.chain.robinhood.com. ETH on Ethereum mainnet does not pay this transfer. The wallet needs ETH on Robinhood Chain.
The ETH price did not load
Buy credits stops and sends nothing. It will not guess a conversion rate.
The example host does not reply
https://api.geniusgents.example is the shape of the client, not a live gateway. Snippets show the request. They do not relay a completion from this page.
Phantom connected and Buy credits did nothing
Phantom’s connect is Solana. Use an Ethereum wallet installed in this browser for the Robinhood Chain transfer.
Before you buy
What do I pay?
Type the usage you want, or pick $20, $100, $500, or $2,000. The amount you pay is that number minus 5%. A $100 top-up shows $95.00. The wallet sends that $95 in ETH. The balance increases by the usage amount, $100 in that example.
Does Buy credits move crypto?
Yes. After you connect an Ethereum wallet, Buy credits asks that wallet to send the amount you pay as ETH on Robinhood Chain to the Geniusgents treasury. You confirm the transfer in the wallet. Usage is added only after the wallet returns a transaction hash. No card is charged.
Where do model prices come from?
The table loads OpenRouter’s public model list. List · 1M out is the completion price times one million tokens. Geniusgents · 1M out is that price times 0.95.
Which wallets can sign in?
The sixteen marks on the credit card. If that wallet is installed, its own window asks you to connect. If it is missing, its download page opens. Phantom connects on Solana and cannot send the ETH payment.
What does the dashboard show?
The dashboard page shows the key, the usage balance, ETH paid in the last 7 days, a 14-day top-up chart, and the connected wallet. Requests stay at zero until a completion gateway is attached. Prompts are not stored.
Do you keep what I type?
The amount, the address, and the purchase list stay in this browser. The ETH payment is the only thing sent, and it goes to the treasury on Robinhood Chain. The demo does not send your prompt anywhere.
Is the 5% added on top?
No. The amount you pay is 5% under the usage amount. The $20 chip means $20 of usage and $19.00 of ETH.
What is $GENGENTS?
It is the name of the credit loop on its own page. Buying credits does not require it. No token contract is published, and the stake control on that page does not send a token.
What is still not live?
Card checkout, a model gateway that spends the balance on a completion, and $GENGENTS staking. The price book, wallet sign-in, and the ETH top-up are live.