Guides
Authentication
People sign in to the console with an EVM wallet. Coding tools and code call the API with Inferiq keys. The two never mix.
Two kinds of access
| Console sign-in | API key | |
|---|---|---|
| Who uses it | A person, in the browser | Your coding tool, script or server |
| How | Sign-In with Ethereum (EIP-4361) | Authorization: Bearer iq_… |
| Grants | Managing keys, limits, rules and your balance | Only the scopes on the key, paid from your balance |
| Lifetime | 7-day session cookie | Until it expires or is revoked |
Console sign-in with a wallet
There are no email accounts or passwords. Your wallet address is your identity, and the first address to sign in owns the workspace.
Connect
On /login, pick a wallet. Rabby is recommended; any browser wallet that announces itself through EIP-6963 (MetaMask and others) is listed too.
Sign a one-time message
The server issues a single-use nonce that expires in 10 minutes. Your wallet shows a message like this one. Check that the domain matches the site you’re on before you sign:
Message shown in your walletlocalhost:3000 wants you to sign in with your Ethereum account: 0xe86240653769904C9Df1df735C6828b5af6a7315 Sign in to Inferiq. This request will not trigger a blockchain transaction or cost any gas. URI: http://localhost:3000 Version: 1 Chain ID: 1 Nonce: 3f9a1c0b7d2e4f68 Issued At: 2026-10-16T14:32:00.000Z Expiration Time: 2026-10-16T14:42:00.000ZVerified, signed in
The server checks the domain, nonce, expiry and signature, then sets an httpOnly session cookie. Smart-contract wallets (ERC-1271) are supported through an on-chain check.
What signing does and doesn’t do
Signing is free and off-chain. It proves you control the address for this one sign-in. It doesn’t send a transaction, approve tokens or move funds. Inferiq will never ask for your seed phrase or private key.Switching wallets
If you switch accounts in your wallet while signed in, the console shows a banner. Choose Sign in with the new wallet to end the current session and sign again.
Mobile wallets
WalletConnect (scan a QR code with a phone wallet) is planned.API keys for tools and code
- Create keys in API keys. Keys are free, so use one per tool or machine: you can see what each one spends and revoke one without touching the others.
- When you create a key, choose the models it may use: aliases (
inferiq/fast,inferiq/balanced,inferiq/best), exact model ids, or all models. A request for any other model fails withmodel_not_allowed(403), andGET /v1/modelslists only what the key may use. The check matches themodelyou send, so allowing an alias doesn’t allow its exact model ids. - Keys start with
iq_. The full key is shown once; Inferiq stores only a SHA-256 hash and a short prefix for display. - Scopes:
inferenceto send model requests,fixto run fix agents. A fix key limited to certain models must also allow the tier’s alias, such asinferiq/balanced. - A key can carry a daily spending limit. Once the day’s spend plus a request’s worst case would pass it, requests fail with
budget_exceededuntil midnight UTC. - Send the key as
Authorization: Bearer iq_…. The Anthropic-stylex-api-keyheader is accepted too. - Keep keys out of browser code and public repositories. On your own machine, put them in your tool’s settings or an environment variable.
curl $INFERIQ_BASE_URL/models \
-H "Authorization: Bearer $INFERIQ_API_KEY"Rotating and revoking keys
Create the replacement
Create a new key with the same scopes and models, and put it in your tool or deployment next to the old one.
Confirm traffic moved
Watch Last used on both keys. When the old key stops being used, it’s safe to remove.
Revoke the old key
Revocation is immediate. Requests with that key fail with
key_revoked, and the action is recorded in the audit log.