Autenticação por carteira
Autentique-se com um payload Sign-In-With-X assinado no cabeçalho
SIGN-IN-WITH-X.Pague com USDC
Mantenha saldo gastável com USDC na Base ou Solana.
DIEM primeiro
Se a carteira estiver vinculada a uma conta Venice com saldo DIEM, esse é gasto primeiro.
O que é o X402?
O X402 é um padrão de pagamento aberto que permite que aplicações e agentes paguem por serviços programaticamente usando criptomoedas. A Venice implementa o X402 para que carteiras possam se autenticar e pagar por inferência diretamente com USDC na Base ou Solana.Pré-requisitos
- Uma carteira na Base ou Solana
- Token nativo para gas na chain selecionada, como ETH na Base ou SOL na Solana
- USDC na chain selecionada (ou saldo existente lastreado em DIEM de uma conta Venice vinculada)
Quickstart
O SDKvenice-x402-client oferece helpers para auth por carteira, recargas e rastreamento de saldo.
X-Balance-Remaining.
Com ferramentas compatíveis com OpenAI
Se você está usando uma ferramenta que aceita umfetch customizado, use createAuthFetch para adicionar auth de carteira a qualquer requisição:
Helpers disponíveis
O SDK inclui helpers de primeira classe para as rotas Venice x402 mais comuns. Para qualquer coisa não coberta, userequest() ou createAuthFetch() diretamente.
Fluxo manual
Se você não está usando o SDK ou precisa entender o protocolo subjacente, aqui está o fluxo passo a passo. Para uma carteira nova, assuma que você precisa recarregar primeiro, a menos que ela já tenha saldo DIEM gastável.Passo 1: Crie o cabeçalho SIGN-IN-WITH-X
A Venice espera uma prova sign-in-with-x do x402 no headerSIGN-IN-WITH-X: JSON codificado em Base64 com os campos da mensagem assinada (domain, address, uri, version, chainId, type, nonce, issuedAt e os opcionais expirationTime, notBefore, statement e resources) mais a signature. A Venice reconstrói a mensagem assinada a partir desses campos. Carteiras EVM assinam uma mensagem SIWE EIP-4361 na Base e definem type como eip191, incluindo carteiras de smart contract. Carteiras Solana assinam a mensagem de login da Solana com Ed25519. No JSON, chainId é o identificador CAIP-2 (eip155:8453), enquanto a linha Chain ID da mensagem assinada traz a referência pura (8453). O nome de header legado X-Sign-In-With-X ainda é aceito, assim como payloads mais antigos que enviam a própria message assinada.
Cada mensagem assinada só pode ser usada uma vez. Assine uma nova mensagem com um nonce novo para cada requisição, seja o seu próprio ou o nonce do desafio 402 mais recente, e envie-a em até 5 minutos a partir do seu horário de issuedAt. Reutilizar uma mensagem retorna 401 (nonce já utilizado), assim como uma mensagem emitida há mais de 5 minutos.
Para Solana, defina chainId como solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, inclua type: "ed25519" no payload JSON codificado e forneça a assinatura Ed25519 como base58 ou base64. A mensagem assinada começa com <domain> wants you to sign in with your Solana account:, seguida pelo endereço da carteira e os campos padrão URI, Version, Chain ID, Nonce, Issued At e Expiration Time opcional.
createSiwxHeader() imediatamente antes de cada requisição. Nos exemplos de curl abaixo, X402_AUTH deve ser um cabeçalho assinado novamente a cada chamada.
Passo 2: Verifique o saldo
Antes de fazer uma requisição paga, verifique se a carteira tem saldo gastável:canConsume: se a carteira pode fazer requisições pagasbalanceUsd: saldo gastável atualminimumTopUpUsdesuggestedTopUpUsd: orientação para recargasdiemBalanceUsd: saldo lastreado em DIEM, se houver
walletAddress aceita um endereço EVM (0x...) ou um endereço Solana em base58.
Passo 3: Recarregue
Recarregue com USDC na Base ou Solana:402 Payment Required com um cabeçalho PAYMENT-REQUIRED contendo um array accepts. Cada entrada descreve uma opção de pagamento aceita, incluindo network, asset, payTo e amount. Escolha a opção Base ou Solana com a qual deseja pagar, use esses detalhes exatos para construir um cabeçalho PAYMENT-SIGNATURE e refaça a mesma rota. Os nomes de cabeçalho legados X-402-Payment e X-PAYMENT ainda são aceitos.
Construindo o cabeçalho PAYMENT-SIGNATURE para Base
O script a seguir cria um pagamento x402 assinado na Base e envia a requisição de recarga. Requer os pacotes npmx402 e viem.
Use a resposta
PAYMENT-REQUIRED / accepts mais recente como fonte da verdade em produção, em vez de fixar esses valores no código. Para recargas em Solana, construa o pagamento a partir da entrada Solana retornada em accepts. Entradas Solana usam network: "solana", o mint USDC como asset e podem incluir metadados específicos da rede, como extra.feePayer.Passo 4: Faça uma requisição
Quando a carteira tiver saldo gastável, chame qualquer endpoint suportado com um cabeçalhoSIGN-IN-WITH-X assinado novamente:
X-Balance-Remaining.
Passo 5: Inspecione as transações (opcional)
Revise o histórico de transações da carteira:TOP_UP, CHARGE e REFUND.
O parâmetro de caminho walletAddress aceita um endereço EVM (0x...) ou um endereço Solana em base58.
Rotas suportadas
Rotas pagas de inferência
As seguintes rotas pagas públicas da Venice atualmente suportam autenticação por carteira x402.Rota de recarga
Rotas apenas de carteira
Essas rotas usamSIGN-IN-WITH-X para identidade, mas não cobram saldo.
Erros
Para agentes
O fluxo é o mesmo. Armazene chaves privadas em variáveis de ambiente ou em um gerenciador de segredos, assine uma nova mensagem Sign-In-With-X para cada requisição e verifique o saldo antes das requisições para evitar idas e voltas402 desnecessárias.
Recursos relacionados
SDK do cliente x402
Cliente oficial Venice x402 para Node.js/TypeScript.
Preços da API
Verifique os preços dos modelos e como a Venice cobra o uso.
Chat Completions
Uma rota paga comum para acesso baseado em carteira.
Spec da API
Documentação de referência e acesso ao spec bruto.