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 Access
A new wallet can create paid access throughPOST /v1/web3/subscribe:
- 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 access is issued.
Retired Free Wallet Signup
POST /v1/web3/signup is retained only as a compatibility tombstone. It returns HTTP 410 with wallet_free_signup_retired and performs no account or key mutation.
Use one of these documented paths instead:
- New free account: standard signup with Google, GitHub, or email.
- Existing wallet account: SIWE verification as described above.
- New paid wallet access:
/v1/web3/subscribethrough x402.
Choose the Right Path
Private keys should never be sent to 0xArchive, checked into examples, or copied into agent prompts. Treat every generated 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.
Implementation Checks
Read the Endpoint Reference for the exact request and response schemas. Preserverequest_id in failures, handle wallet_account_required and wallet_free_signup_retired explicitly, and keep ordinary market-data calls on the standard X-API-Key path.
Authentication
API-key authentication for standard clients.
REST API
Open the wallet and SIWE route reference.