1
Sign in and get a wallet
Go to app.nanorouter.ai/login. Signing in creates an
embedded wallet for you — there is nothing to install, and no seed phrase to
write down.That wallet is the one the router signs charges against. It is yours: you can
withdraw from it at any time, and the router can only move money out of it by
signing a charge for a request you made.
2
Deposit USDC
Open Overview → Deposit USDC and send USDC to the address shown, on Arc.That address is your own wallet, so the USDC can come from anywhere — an
exchange, a hardware wallet, another account. The router sweeps it into Gateway
by depositing from your wallet, and that is what makes it spendable.What arrives in the wallet is swept into Circle Gateway automatically, usually
within a minute. The balance on the Overview page is the Gateway figure, and
that is the one requests are paid from. Until it is non-zero, a call is refused
with a
402 before it ever reaches a model.1/$5 per million tokens, an ordinary chat turn
costs a fraction of a cent.3
Mint an API key
Go to app.nanorouter.ai/keys → Create key.The key looks like
nr_… and is shown once. Copy it then; the router stores
only a hash, so a lost key is replaced rather than recovered.You can give a key a spending limit and an expiry when you create it. Both are
worth setting on anything that runs unattended — see
Keys and spend controls.4
Make a request
The API is OpenAI-compatible, so use the OpenAI SDK you already have and point
it at
https://nanorouter-wcg9d.ondigitalocean.app/v1.What it cost
Two response headers tell you, before you go looking anywhere else:
The authorized figure is the worst case. The charged figure is the truth, and on
a streamed response it is not known until the last token — so it cannot be sent
as a header. Read it back by id instead:
Set a max_tokens you mean
The quote is priced at max_tokens, not at what the model ends up writing. Ask
for 64,000 tokens on a one-line answer and 64,000 tokens’ worth of balance is
held until the request settles — refunded, but held. On a small balance that is
the difference between your next call working and a 402.
Name a real ceiling. Leave it out and the router uses 8,192.
Next
Migrating from OpenAI
What is identical, what differs, and what is not supported.
Streaming
SSE, usage chunks, and reading the settled cost after the stream ends.
Keys and spend controls
Per-key limits, expiry, and what happens when one is hit.
Errors
Which status codes you should retry, and which mean top up.