Install any skill in seconds. Free to start, no credit card required.
Get Started Free →veniceai/venice-auth
Authenticate to the Venice API with a Bearer API key or with an x402 / SIWX wallet (EVM on Base or Ed25519 on Solana). Covers the SIGN-IN-WITH-X header format, the SIWE and Solana message fields, TTL and nonce rules, the venice-x402-client SDK, and how to choose between the two modes.
Passed 21 of 22 test cases with the skill, and 7 of 22 without it.
and 17 more in the full report
14 fixed7 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
A user makes a GET request to `/x402/balance/0x1111111111111111111111111111111111111111` using a SIWX signature generated by wallet `0x2222222222222222222222222222222222222222`. What HTTP status code and error message does Venice return for this request?
| Checked | Without skill | With skill |
|---|---|---|
| The response specifies HTTP status code 403. | Passed | Passed |
| The response states the error message string You can only access balance for your own wallet. | Missed | Passed |
The instructions your model reads when the skill loads.
Venice declares two auth schemes in its OpenAPI spec: BearerAuth (API key) and siwx (x402 wallet). Inference endpoints accept either; account endpoints need a key; discovery endpoints need nothing.
api.venice.ai.401 / 402 and need to check header format.| Endpoints | Bearer key | SIWX wallet |
|---|---|---|
Inference: /chat/completions, /responses, /embeddings, /decisions (+ /systemone), /image/* (generate, edit, multi-edit, upscale, background-remove), /images/generations, /audio/speech, /audio/transcriptions, /audio/voices, /audio/{queue,retrieve,complete}, /audio/voice-changer/{queue,retrieve,complete}, /video/{queue,retrieve,complete}, /augment/*, POST /crypto/rpc/{network} | yes | yes |
/api_keys* (except generate_web3_key), /billing/* (except the retired /billing/usage, which answers 410 without auth), /characters* | yes | no - a SIWX header alone gets 401 Authentication failed |
GET /x402/balance/{wallet}, GET /x402/transactions/{wallet} | no | yes - signer must be {wallet} (else 403) |
POST /x402/top-up | - | payment header (see below) |
/models*, /image/styles, /video/quote (except upscale models: Bearer key required), /audio/quote, /audio/voice-changer/quote, /crypto/rpc/networks, /tee/*, /api_keys/generate_web3_key | not required | not required |
On routes that accept a wallet, a SIGN-IN-WITH-X header wins: Venice uses wallet auth even when Authorization is also present. On Bearer-only routes the SIWX header is ignored. A request with neither header on any route that needs credentials (Bearer-only routes included) gets 402 with an x402 discovery body (payment options, SIWX challenge, authOptions), not 401.
Authorization: Bearer <VENICE_API_KEY>
venice-api-keys.apiKeyType (ADMIN or INFERENCE), optional consumptionLimits (usd / diem caps over a limitPeriod), and modelPrivacy (ALL, PRIVATE_TEXT, PRIVATE_ONLY) which restricts which models the key may call.ADMIN keys can list, get, create, update or delete keys, read the rate-limit log, or call /billing/balance, /billing/usage-history and /billing/usage-analytics; an INFERENCE key gets 401 "Admin API key required".venice-billing).curl https://api.venice.ai/api/v1/chat/completions \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "zai-org-glm-5-2",
test cases passed, vs 7 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.