X-API-Key.
Dashboard-created API keys are the default for servers, scripts, SDKs, CLI, Skill, REST, and WebSocket clients. Hosted MCP uses client-managed OAuth and requires no 0xArchive API key. New free accounts use standard signup; a wallet by itself does not create a free account or API key.
0xArchive never requests or stores private keys or seed phrases. It does not hold funds, submit orders, approve transactions, or connect to exchange accounts. Wallet signatures happen outside the API.
Choose the right path
Existing wallet access
1
Create a SIWE challenge
Call
POST /v1/auth/web3/challenge with the wallet address.2
Sign with the wallet
Sign the returned message with
personal_sign in the wallet environment.3
Verify the existing account
Send the signed message to
POST /v1/auth/web3/verify. An existing active wallet account receives its normal session. An unknown wallet receives HTTP 403 with wallet_account_required; no account, key, subscription, or credits are created.4
Manage existing keys when needed
Use a fresh signed challenge with
POST /v1/web3/keys or POST /v1/web3/keys/revoke.New wallet-only paid plan
A new wallet can create a paid plan throughPOST /v1/web3/subscribe, using the x402 facilitator for the payment protocol. The plan sets capacity and request windows; route availability is the same on every plan and depends on the route, venue family, symbol, and schema.
- Call the route with
tierset tobuildorproand no payment header. The server returns HTTP 402 with the x402 payment requirements. - Sign the quoted USDC authorization on Base outside the API.
- Retry with the base64 x402 payload in the
payment-signatureheader. - After successful verification and settlement, the response contains the paid subscription and API key.
account_disabled before settlement. Unknown and active wallets still require full payment verification and settlement before the subscription and API key are issued.
Retired free wallet signup
POST /v1/web3/signup returns HTTP 410 with wallet_free_signup_retired and makes no account or key change. Use standard signup for a new free account, SIWE for an existing wallet account, or /v1/web3/subscribe for a new paid wallet plan.
Handle the responses
Keeprequest_id from every failure, and handle wallet_account_required and wallet_free_signup_retired explicitly. Never send a private key to 0xArchive, check it into an example, or copy it into an agent prompt. Treat every issued API key like any other credential: store it in a secret manager, rotate it when access changes, and keep it out of browser code and prompt transcripts.