Wallet-Auth
Authentifiziere dich mit einem signierten Sign-In-With-X-Payload im
X-Sign-In-With-X-Header.Zahlen mit USDC
Halte ein verfügbares Guthaben mit USDC auf Base oder Solana.
DIEM zuerst
Wenn die Wallet mit einem Venice-Konto mit DIEM-Guthaben verknüpft ist, wird dieses zuerst verbraucht.
Was ist X402?
X402 ist ein offener Zahlungsstandard, der es Anwendungen und Agenten ermöglicht, Dienste programmatisch mit Kryptowährung zu bezahlen. Venice implementiert X402, sodass sich Wallets authentifizieren und Inferenz direkt mit USDC auf Base oder Solana bezahlen können.Voraussetzungen
- Eine Wallet auf Base oder Solana
- Nativer Token für Gas auf der gewählten Chain, z. B. ETH auf Base oder SOL auf Solana
- USDC auf der gewählten Chain (oder ein bestehendes, DIEM-gedecktes Guthaben aus einem verknüpften Venice-Konto)
Schnellstart
Das SDKvenice-x402-client bietet Helfer für Wallet-Auth, Top-ups und Guthaben-Tracking.
X-Sign-In-With-X-Header und verfolgt das Guthaben automatisch über die X-Balance-Remaining-Response-Header.
Mit OpenAI-kompatiblen Tools
Wenn du ein Tool nutzt, das einen Custom-fetch akzeptiert, verwende createAuthFetch, um Wallet-Auth zu jeder Anfrage hinzuzufügen:
Verfügbare Helfer
Das SDK enthält First-Class-Helfer für die häufigsten Venice-x402-Routen. Für alles andererequest() oder createAuthFetch() direkt nutzen.
| Kategorie | Methoden |
|---|---|
| Chat | chat(), chatStream() |
| Responses | responses.create(), responses.stream() |
| Images | images.generate(), images.generations(), images.upscale(), images.edit(), images.multiEdit(), images.backgroundRemove() |
| Audio | audio.speech(), audio.transcribe(), audio.queue(), audio.retrieve(), audio.complete() |
| Video | video.queue(), video.retrieve(), video.generate(), video.complete(), video.transcribe() |
| Embeddings | embeddings() |
| Models | models() |
| Wallet | getBalance(), getTransactions(), topUp() |
Manueller Flow
Wenn du das SDK nicht verwendest oder das zugrunde liegende Protokoll verstehen möchtest – hier der Schritt-für-Schritt-Flow. Bei einer neuen Wallet musst du zuerst aufladen, sofern sie nicht bereits ein DIEM-Guthaben hat.Schritt 1: X-Sign-In-With-X-Header erstellen
Venice erwartet ein Base64-kodiertes JSON-Payload mit einer signierten Sign-In-With-X-Nachricht. EVM-Wallets signieren eine EIP-4361-SIWE-Message auf Base. Solana-Wallets signieren die Solana-SIWX-Message mit Ed25519. Erzeuge für jeden Anfrage-Flow eine frische Nonce und einen frischen Timestamp. Für Solana setzechainId auf solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, füge type: "ed25519" in das kodierte JSON-Payload ein und liefere die Ed25519-Signatur als base58 oder base64. Die signierte Message beginnt mit <domain> wants you to sign in with your Solana account:, gefolgt von der Wallet-Adresse und den Standard-Feldern URI, Version, Chain ID, Nonce, Issued At und optional Expiration Time.
Schritt 2: Guthaben prüfen
Stelle vor einer kostenpflichtigen Anfrage sicher, dass die Wallet ausgabefähiges Guthaben hat:canConsume: ob die Wallet kostenpflichtige Anfragen stellen kannbalanceUsd: aktuelles ausgabefähiges GuthabenminimumTopUpUsdundsuggestedTopUpUsd: Hinweise für Top-upsdiemBalanceUsd: DIEM-gedecktes Guthaben, falls vorhanden
walletAddress akzeptiert entweder eine EVM-Adresse (0x...) oder eine Solana-base58-Adresse.
Schritt 3: Aufladen
Mit USDC auf Base oder Solana aufladen:402 Payment Required mit einem PAYMENT-REQUIRED-Header zurück, der ein accepts-Array enthält. Jeder Eintrag beschreibt eine akzeptierte Zahlungsoption inklusive network, asset, payTo und amount. Wähle die Base- oder Solana-Option, mit der du zahlen willst, verwende exakt diese Details zum Bau eines X-402-Payment-Headers und sende die Anfrage erneut.
X-402-Payment-Header für Base erstellen
Das folgende Skript erzeugt eine signierte x402-Zahlung auf Base und sendet die Top-up-Anfrage. Benötigt die npm-Paketex402 und viem.
Verwende in der Produktion die jeweils aktuelle
PAYMENT-REQUIRED-/accepts-Antwort als Single Source of Truth, statt diese Werte hart zu kodieren. Für Solana-Top-ups das Payment aus dem im accepts zurückgegebenen Solana-Eintrag erzeugen. Solana-Einträge nutzen network: "solana", den USDC-Mint als asset und können netzwerkspezifische Metadaten wie extra.feePayer enthalten.Schritt 4: Anfrage stellen
Sobald die Wallet ausgabefähiges Guthaben hat, rufe einen beliebigen unterstützten Endpoint mit demX-Sign-In-With-X-Header auf:
X-Balance-Remaining-Header enthalten.
Schritt 5: Transaktionen einsehen (optional)
Transaktions-Historie der Wallet anzeigen:TOP_UP, CHARGE und REFUND.
Der Path-Parameter walletAddress akzeptiert entweder eine EVM-Adresse (0x...) oder eine Solana-base58-Adresse.
Unterstützte Routen
Bezahlte Inferenz-Routen
Die folgenden öffentlichen, kostenpflichtigen Venice-Routen unterstützen aktuell x402-Wallet-Authentifizierung.| Kategorie | Endpoints |
|---|---|
| Chat | POST /api/v1/chat/completions, POST /api/v1/responses |
| Image | POST /api/v1/image/generate, POST /api/v1/images/generations, POST /api/v1/image/upscale, POST /api/v1/image/edit, POST /api/v1/image/multi-edit, POST /api/v1/image/background-remove |
| Embeddings | POST /api/v1/embeddings |
| Audio | POST /api/v1/audio/speech, POST /api/v1/audio/transcriptions, POST /api/v1/audio/complete, POST /api/v1/audio/queue, POST /api/v1/audio/retrieve |
| Video | POST /api/v1/video/complete, POST /api/v1/video/queue, POST /api/v1/video/retrieve, POST /api/v1/video/transcriptions |
Top-up-Route
| Endpoint | Auth | Zweck |
|---|---|---|
POST /api/v1/x402/top-up | Erstanfrage: keine. Retry: X-402-Payment | USDC-Credits zum ausgabefähigen Guthaben der Wallet via akzeptierter Base- oder Solana-Zahlungsoption hinzufügen |
Reine Wallet-Routen
Diese Routen nutzenX-Sign-In-With-X zur Identifikation, belasten aber kein Guthaben.
| Endpoint | Zweck |
|---|---|
GET /api/v1/x402/balance/{walletAddress} | Ausgabefähiges Guthaben für eine EVM- oder Solana-Wallet-Adresse prüfen |
GET /api/v1/x402/transactions/{walletAddress} | Transaktions-Historie für eine EVM- oder Solana-Wallet-Adresse anzeigen |
Fehler
| Status | Wahrscheinliche Ursache | Was tun |
|---|---|---|
401 | Fehlerhaftes oder abgelaufenes Sign-In-With-X-Payload | X-Sign-In-With-X mit neuer Nonce und Timestamp neu aufbauen |
402 auf bezahlter Route | Nicht genug Guthaben | Aufladen und erneut versuchen |
402 auf /x402/top-up | Erwartet. Das ist der Zahlungs-Initiations-Flow. | Die zurückgegebenen Zahlungsdetails nutzen, um X-402-Payment zu bauen und erneut zu senden |
403 auf Balance oder Transactions | Wallet-Mismatch | Sicherstellen, dass die authentifizierte Wallet mit dem Path-Parameter walletAddress übereinstimmt |
400 auf Top-up | Fehlerhafter Payment-Header | Aus der jeweils aktuellen 402-Antwort neu bauen |
Für Agenten
Der Flow ist derselbe. Speichere Private Keys in Umgebungsvariablen oder einem Secret Manager und prüfe das Guthaben vor Anfragen, um unnötige402-Round-Trips zu vermeiden.
Verwandte Ressourcen
x402 Client SDK
Offizieller Venice-x402-Client für Node.js/TypeScript.
API-Preise
Modellpreise und wie Venice Nutzung abrechnet.
Chat Completions
Eine häufige kostenpflichtige Route für Wallet-basierten Zugriff.
API-Spezifikation
Referenz-Dokumentation und Rohdaten der Spezifikation.