Requisitos previos
- Un monedero EVM en Base controlado por el agente (clave privada en una variable de entorno o gestor de secretos).
- Una pequeña cantidad de ETH en Base para gas (el staking son dos transacciones:
approvey luegostake). - Cualquier cantidad no nula de VVV para hacer staking. El endpoint de minteo solo requiere que el monedero tenga un saldo de sVVV no nulo, por lo que 1 VVV es suficiente para acuñar una clave. Consulta Pagar la inferencia para saber qué necesitas para llamar realmente a los endpoints de pago.
Pasos
1
2
Haz staking de VVV con Venice
Haz staking del VVV en el Smart Contract de staking de Venice en 
Cuando se confirma la segunda transacción, el saldo de VVV del monedero disminuye y su saldo de sVVV aumenta en la misma cantidad. El endpoint de minteo lee el saldo de sVVV para confirmar que el monedero tiene staking.
0x321b7ff75154472B18EDb199033fF4D116F340Ff. Son dos transacciones:approve(spender, amount)en el token VVV, dondespenderes el contrato de staking.stake(amount)en el contrato de staking.

3
Solicita un desafío para el monedero
Llama a La respuesta contiene El desafío expira 15 minutos después de su emisión y es de un solo uso: se consume la primera vez que se acuña una clave con él. Solicita uno nuevo para cada clave.
GET /api/v1/api_keys/generate_web3_key?address=<wallet address> para obtener un desafío EIP-4361 (Sign-In with Ethereum) de corta duración. El endpoint no está autenticado, pero el desafío queda vinculado a la dirección que envías y solo puede canjearlo ese monedero.message, nonce y expiresAt:4
Firma el desafío con el monedero de staking
Firma la cadena
message tal cual con el monedero que tiene el VVV en staking. Es un personal_sign estándar. Tanto ethers.Wallet.signMessage(message) como account.signMessage({ message }) de viem producen la firma correcta.No reformatees, reajustes ni regeneres el mensaje. Venice verifica la firma sobre los bytes exactos que emitió y vuelve a comprobar de forma independiente el domain, la URI, el Chain ID, la declaración y la dirección que contiene.5
Acuña la API key
Haz Campos obligatorios:
POST de la dirección, la firma y el mensaje al mismo endpoint, junto con el tipo de clave que quieras.address, signature, message, apiKeyType (INFERENCE o ADMIN).Campos opcionales: description, expiresAt, consumptionLimit (limita el gasto total en esta clave, denominado en usd, vcu o diem).En caso de éxito, la respuesta contiene la cadena apiKey acuñada. Guárdala en el almacén de secretos del agente y úsala como un token Bearer normal (Authorization: Bearer <key>).Ejemplo de extremo a extremo
El ejemplo siguiente usa un monedero real desde una variable de entorno en lugar de uno generado aleatoriamente. Un monedero aleatorio no tiene VVV en staking y el minteo se rechazará con el errorWallet has no staked VVV on Base.
Referencia de errores
El endpoint devuelve mensajes de error específicos y accionables. Mapéalos en el agente para que pueda decidir si reintentar, solicitar un nuevo desafío o detenerse.Por qué el desafío está vinculado al monedero y es de un solo uso
El desafío es un mensaje EIP-4361 legible por personas en lugar de un token opaco, y cuenta con tres protecciones que importan si alguna vez se pide a un monedero que firme uno fuera de tu propio agente:- Vinculación de dirección. El desafío nombra el monedero para el que se emitió. Un desafío obtenido por una parte no puede firmarse ni canjearse con un monedero distinto.
- Nonce de un solo uso. Venice registra el nonce en el servidor y lo consume en la primera acuñación correcta. Una firma acuña exactamente una clave, así que una firma capturada no puede reutilizarse para obtener más claves.
- Declaración legible. El mensaje indica con claridad que firmar autoriza la creación de una API key de Venice, de modo que una interfaz de monedero como MetaMask muestra al firmante lo que está aprobando en lugar de un bloque binario.
Pagar la inferencia
Acuñar una clave y poder llamar a endpoints de pago con ella son dos cosas distintas. Una clave recién acuñada se autentica correctamente, pero no puede llamar a endpoints de pago (como/chat/completions) hasta que la cuenta del monedero tenga un saldo gastable.
La clave acuñada puede gastar de la cuenta de usuario en este orden de prioridad: DIEM, luego créditos incluidos y luego USD.
Si el agente necesita una ruta de financiación totalmente nativa de cripto y sin interfaz, las opciones más limpias son:
- Hacer más staking de VVV para que la asignación diaria de DIEM cubra el gasto del agente. La clave acuñada lo recoge automáticamente.
- Usa el flujo de monedero x402 en lugar de la API key. Con x402, el agente firma un mensaje Sign-In-With-X por solicitud, recarga directamente con USDC en Base o Solana mediante
POST /api/v1/x402/top-upy paga por solicitud. El saldo de USDC x402 está vinculado al monedero, no al usuario, por lo que no aparece como saldo para la clave Bearer acuñada, pero sí permite que el mismo monedero pague la inferencia de forma programática.
Recursos relacionados
Cripto y agentes
Usa Venice tanto como proveedor de modelos como capa RPC de blockchain para agentes autónomos.
Autenticación de monedero x402
Paga por solicitud con USDC en Base o Solana, sin necesidad de API key.
Endpoint Generate Web3 API Key
Referencia del endpoint de minteo.
Guía estándar de API Key
Para los usuarios que prefieren acuñar una clave desde el dashboard.