Saltar al contenido principal
X402 te permite usar las rutas de pago de la API de Venice autenticándote con un monedero y manteniendo un saldo USDC prepago. No se requiere API key ni cuenta. Firma un mensaje, recarga en Base o Solana y llama a cualquier ruta admitida.

Auth con monedero

Autentica con un payload Sign-In-With-X firmado en la cabecera SIGN-IN-WITH-X.

Paga con USDC

Mantén saldo gastable con USDC en Base o Solana.

DIEM primero

Si el monedero está vinculado a una cuenta de Venice con saldo DIEM, ese se gasta primero.

¿Qué es X402?

X402 es un estándar abierto de pago que permite a aplicaciones y agentes pagar por servicios de forma programática usando criptomonedas. Venice implementa X402 para que los monederos puedan autenticarse y pagar la inferencia directamente con USDC en Base o Solana.

Requisitos previos

  • Un monedero en Base o Solana
  • Token nativo para gas en la cadena seleccionada, como ETH en Base o SOL en Solana
  • USDC en la cadena seleccionada (o saldo respaldado por DIEM existente de una cuenta de Venice vinculada)
Considera usar un monedero dedicado para automatización en lugar de tu monedero principal de tesorería.

Inicio rápido

El SDK venice-x402-client ofrece helpers para auth de monedero, recargas y seguimiento de saldo.
El cliente genera una cabecera Sign-In-With-X nueva para cada solicitud y rastrea automáticamente el saldo desde las cabeceras de respuesta X-Balance-Remaining.

Con herramientas compatibles con OpenAI

Si usas una herramienta que acepta un fetch personalizado, usa createAuthFetch para añadir auth de monedero a cualquier solicitud:

Helpers disponibles

El SDK incluye helpers de primera clase para las rutas más comunes de Venice x402. Para cualquier cosa no cubierta, usa request() o createAuthFetch() directamente.

Flujo manual

Si no estás usando el SDK o necesitas entender el protocolo subyacente, este es el flujo paso a paso. Para un monedero nuevo, asume que necesitas recargar primero salvo que ya tenga saldo DIEM gastable.

Paso 1: crea la cabecera SIGN-IN-WITH-X

Venice espera una prueba sign-in-with-x de x402 en la cabecera SIGN-IN-WITH-X: JSON codificado en Base64 con los campos del mensaje firmado (domain, address, uri, version, chainId, type, nonce, issuedAt y los opcionales expirationTime, notBefore, statement y resources) más la signature. Venice reconstruye el mensaje firmado a partir de esos campos. Las billeteras EVM firman un mensaje SIWE EIP-4361 en Base y establecen type en eip191, incluidas las billeteras de contrato inteligente. Las billeteras Solana firman el mensaje de inicio de sesión de Solana con Ed25519. En el JSON, chainId es el identificador CAIP-2 (eip155:8453), mientras que la línea Chain ID del mensaje firmado lleva la referencia sin prefijo (8453). El nombre de cabecera heredado X-Sign-In-With-X todavía se acepta, al igual que los payloads antiguos que envían el message firmado en sí. Cada mensaje firmado solo se puede usar una vez. Firma un mensaje nuevo con un nonce nuevo para cada solicitud, ya sea uno propio o el nonce del último desafío 402, y envíalo en un plazo de 5 minutos desde su hora issuedAt. Reutilizar un mensaje devuelve 401 (nonce ya usado), igual que un mensaje emitido hace más de 5 minutos. Para Solana, establece chainId en solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, incluye type: "ed25519" en el payload JSON codificado y proporciona la firma Ed25519 como base58 o base64. El mensaje firmado comienza con <domain> wants you to sign in with your Solana account:, seguido de la dirección del monedero y los campos estándar URI, Version, Chain ID, Nonce, Issued At y el opcional Expiration Time.
Llama a createSiwxHeader() inmediatamente antes de cada solicitud. En los ejemplos de curl siguientes, X402_AUTH debe ser una cabecera recién firmada para cada llamada.

Paso 2: comprueba el saldo

Antes de hacer una solicitud de pago, verifica que el monedero tenga saldo gastable:
La respuesta incluye:
  • canConsume: si el monedero puede realizar solicitudes de pago
  • balanceUsd: saldo gastable actual
  • minimumTopUpUsd y suggestedTopUpUsd: orientación para recargas
  • diemBalanceUsd: saldo respaldado por DIEM, si lo hay
El parámetro de ruta walletAddress acepta una dirección EVM (0x...) o una dirección base58 de Solana.

Paso 3: recarga

Recarga con USDC en Base o Solana:
La primera llamada devuelve 402 Payment Required con una cabecera PAYMENT-REQUIRED que contiene un array accepts. Cada entrada describe una opción de pago aceptada, incluyendo network, asset, payTo y amount. Elige la opción de Base o Solana con la que quieras pagar, usa esos detalles exactos para construir una cabecera PAYMENT-SIGNATURE y reintenta la misma ruta. Los nombres de cabecera heredados X-402-Payment y X-PAYMENT se siguen aceptando.
Enviar USDC directamente a una dirección payTo no recarga tu saldo. El crédito solo se añade cuando un PAYMENT-SIGNATURE firmado se liquida a través de POST /x402/top-up. Solo se admiten Base y Solana, por lo que los USDC enviados en cualquier otra cadena, incluida la mainnet de Ethereum, no se acreditan. Las rutas de saldo y transacciones leen el registro contable de Venice y no la cadena, así que después de una transferencia simple no muestran nada.

Construyendo la cabecera PAYMENT-SIGNATURE para Base

El siguiente script crea un pago x402 firmado en Base y envía la solicitud de recarga. Requiere los paquetes npm x402 y viem.
Usa en producción la última respuesta PAYMENT-REQUIRED / accepts como fuente de verdad en lugar de hardcodear estos valores. Para recargas en Solana, construye el pago a partir de la entrada de Solana devuelta en accepts. Las entradas de Solana usan network: "solana", el mint de USDC como asset y pueden incluir metadatos específicos de la red como extra.feePayer.

Paso 4: haz una solicitud

Una vez que el monedero tenga saldo gastable, llama a cualquier endpoint admitido con una cabecera SIGN-IN-WITH-X recién firmada:
Las respuestas exitosas pueden incluir una cabecera X-Balance-Remaining.

Paso 5: inspecciona transacciones (opcional)

Revisa el historial de transacciones del monedero:
El libro mayor incluye entradas como TOP_UP, CHARGE y REFUND. El parámetro de ruta walletAddress acepta una dirección EVM (0x...) o una dirección base58 de Solana.

Rutas admitidas

Las siguientes rutas de pago públicas de Venice admiten actualmente la autenticación con monedero x402.

Ruta de recarga

Rutas solo de monedero

Estas rutas usan SIGN-IN-WITH-X para identidad, pero no cargan saldo.

Errores


Para agentes

El flujo es el mismo. Guarda las claves privadas en variables de entorno o un gestor de secretos, firma un nuevo mensaje Sign-In-With-X para cada solicitud y comprueba el saldo antes de las solicitudes para evitar round-trips 402 innecesarios.

SDK del cliente x402

Cliente oficial de Venice x402 para Node.js/TypeScript.

Precios de la API

Consulta los precios de los modelos y cómo Venice cobra el uso.

Chat Completions

Una ruta de pago común para acceso basado en monedero.

Spec de la API

Documentación de referencia y acceso al spec sin procesar.