Zum Hauptinhalt springen
Ein KI-Agent, der eine Wallet auf Base kontrolliert, kann seinen eigenen Venice-API-Schlüssel ohne menschliches Zutun erstellen. Der Agent erwirbt VVV, staked es, signiert ein kurzlebiges von Venice ausgestelltes Validierungs-Token und sendet das signierte Token zurück, um einen frischen API-Schlüssel zu erhalten, der an die Staking-Wallet gebunden ist. Dieser Leitfaden führt Sie End-to-End durch den gesamten Ablauf und behandelt die Finanzierungsoptionen, mit denen Sie nach der Schlüsselerstellung tatsächlich für Inferenz bezahlen können.

Voraussetzungen

  • Eine EVM-Wallet auf Base, die vom Agenten kontrolliert wird (Private Key in einer Umgebungsvariablen oder einem Secret Manager).
  • Ein kleiner Betrag ETH auf Base für Gas (Staking sind zwei Transaktionen: approve und dann stake).
  • Ein beliebiger Nicht-Null-Betrag VVV zum Staken. Der Mint-Endpoint erfordert lediglich, dass die Wallet ein Nicht-Null-sVVV-Guthaben hat, sodass 1 VVV ausreicht, um einen Schlüssel zu erstellen. Siehe Bezahlung für Inferenz für die Voraussetzungen, um bezahlte Endpoints tatsächlich aufzurufen.
Verwenden Sie eine dedizierte Agenten-Wallet statt einer Treasury-Wallet. Der Private Key der Wallet signiert jede Venice-Token-Anfrage, daher sollte der Schaden im Falle einer Kompromittierung möglichst gering sein.

Schritte

1

VVV erwerben

Senden Sie VVV an die Wallet des Agenten oder lassen Sie den Agenten auf einem DEX wie Aerodrome oder Uniswap tauschen.VVV-Token-Vertrag auf Base: 0xacfE6019Ed1A7Dc6f7B508C02d1b04ec88cC21bf
2

VVV bei Venice staken

Staken Sie das VVV im Venice Staking Smart Contract unter 0x321b7ff75154472B18EDb199033fF4D116F340Ff. Das sind zwei Transaktionen:
  1. approve(spender, amount) auf dem VVV-Token, wobei spender der Staking-Contract ist.
  2. stake(amount) auf dem Staking-Contract.
Smart Contract Staking
Wenn die zweite Transaktion bestätigt ist, sinkt das VVV-Guthaben der Wallet, und ihr sVVV-Guthaben steigt um denselben Betrag. Der Mint-Endpoint liest das sVVV-Guthaben, um zu bestätigen, dass die Wallet gestaked ist.
3

Ein Validierungs-Token anfordern

Rufen Sie GET /api/v1/api_keys/generate_web3_key auf, um ein kurzlebiges, von Venice signiertes Token zu erhalten. Der Endpoint ist unauthentifiziert.
Die Antwort enthält ein token-Feld. Das Token läuft 15 Minuten nach Ausstellung ab, also signieren und übermitteln Sie es deutlich vorher.
4

Das Token mit der Staking-Wallet signieren

Signieren Sie den rohen Token-String mit der Wallet, die das gestakte VVV hält. Dies ist ein standardmäßiger personal_sign über die Token-Bytes. Sowohl ethers.Wallet.signMessage(token) als auch account.signMessage({ message: token }) in viem erzeugen die korrekte Signatur.
5

Den API-Schlüssel erstellen

POSTen Sie die Adresse, die Signatur und das Token zusammen mit dem gewünschten Schlüsseltyp an denselben Endpoint.
Erforderliche Felder: address, signature, token, apiKeyType (INFERENCE oder ADMIN).Optionale Felder: description, expiresAt, consumptionLimit (begrenzt die Gesamtausgaben dieses Schlüssels, denominiert in usd, vcu oder diem).Bei Erfolg enthält die Antwort den erstellten apiKey-String. Speichern Sie ihn im Secret-Store des Agenten und verwenden Sie ihn als normales Bearer-Token (Authorization: Bearer <key>).

End-to-End-Beispiel

Das folgende Beispiel verwendet eine echte Wallet aus einer Umgebungsvariablen statt einer zufällig generierten. Eine zufällige Wallet hat kein gestaktes VVV, und der Mint wird mit dem Fehler Wallet has no staked VVV on Base abgelehnt.

Fehlerreferenz

Der Endpoint gibt spezifische, umsetzbare Fehlermeldungen zurück. Mappen Sie diese im Agenten, damit er entscheiden kann, ob er es erneut versucht, ein neues Token anfordert oder abbricht.

Bezahlung für Inferenz

Einen Schlüssel zu erstellen und damit bezahlte Endpoints aufrufen zu können sind zwei verschiedene Dinge. Ein frisch erstellter Schlüssel authentifiziert sich korrekt, kann aber keine bezahlten Endpoints (z. B. /chat/completions) aufrufen, bis das Konto der Wallet ein verfügbares Guthaben hat. Der erstellte Schlüssel kann vom Benutzerkonto in dieser Prioritätsreihenfolge ausgeben: DIEM, dann gebündelte Credits, dann USD. Wenn der Agent einen vollständig krypto-nativen, headless Finanzierungspfad benötigt, sind die saubersten Optionen:
  1. Mehr VVV staken, sodass die tägliche DIEM-Zuteilung die Ausgaben des Agenten abdeckt. Der erstellte Schlüssel verwendet dies automatisch.
  2. Verwenden Sie den x402-Wallet-Flow anstelle des API-Schlüssels. Bei x402 signiert der Agent pro Anfrage eine Sign-In-With-X-Nachricht, lädt direkt mit USDC auf Base oder Solana über POST /api/v1/x402/top-up auf und bezahlt pro Anfrage. Das x402-USDC-Guthaben ist wallet-gebunden, nicht benutzerbezogen, sodass es nicht als Guthaben für den erstellten Bearer-Schlüssel angezeigt wird, aber es ermöglicht es derselben Wallet, programmatisch für Inferenz zu bezahlen.

Verwandte Ressourcen

Krypto und Agenten

Verwenden Sie Venice sowohl als Modellanbieter als auch als Blockchain-RPC-Schicht für autonome Agenten.

x402-Wallet-Authentifizierung

Bezahlen Sie pro Anfrage mit USDC auf Base oder Solana, ohne API-Schlüssel.

Web3 API Key Endpoint generieren

Endpoint-Referenz für den Mint-Endpoint.

Standard-API-Schlüssel-Leitfaden

Für Nutzer, die einen Schlüssel über das Dashboard erstellen möchten.