exact e upto. Eles resolvem diferentes problemas de cobrança.
exact
exact significa que o preço pode ser determinado antes da solicitação entrar na API de destino. O valor assinado pelo cliente é o valor final a ser cobrado.
Adequado para:
- Geração de imagens com preço fixo;
- Criação de tarefas de vídeo com preço fixo;
- APIs de pesquisa ou ferramentas com preço fixo;
- Pagamento de pedidos.
exact utiliza USDC EIP-3009 TransferWithAuthorization:
/verify, e na fase /settle submete essa autorização na blockchain.
upto
upto significa que o cliente autoriza um limite máximo, e a Ace Data Cloud liquida com base no uso real após a conclusão da solicitação, sendo que o valor real cobrado não pode exceder o limite.
Adequado para:
- Completação de chat: o preço final depende dos tokens de prompt e dos tokens de conclusão;
- Respostas em fluxo: o comprimento da saída real só é conhecido após o término;
- APIs de medição posterior no futuro.
upto utiliza Permit2 PermitWitnessTransferFrom. O valor assinado pelo cliente não é uma transferência fixa, mas sim uma autorização de limite com testemunha:
permitted.amount é o limite, não necessariamente o valor final a ser cobrado. O Gateway na fase /record converterá o uso real em amount e enviará ao Facilitador. O Facilitador só permitirá a liquidação amount <= permitted.amount.
Resultado da execução do programa base upto:
- O limite de autorização retornado no 402 é
95215atomic USDC, e o cliente assina com esse limite. - Após a resposta real do modelo, apenas
3atomic USDC é liquidado, e a transação na blockchain já pode ser verificada no BaseScan. - Este resultado ilustra a diferença chave do
upto: o valor assinado é o limite, e a liquidação na blockchain pode ser inferior ao limite. - Se o uso real exceder o limite, o Facilitador deve recusar a liquidação, e o cliente precisará autorizar um limite mais alto.
upto atualmente está disponível apenas no Base. SKALE oferece apenas exact, se você precisar de medição posterior, utilize o Base.
Por que é necessário o Permit2 approve
upto é finalmente processado pelo proxy x402 através do Permit2 para retirar USDC da carteira de pagamento. Antes da primeira utilização, a carteira de pagamento precisa conceder uma vez a permissão ERC-20 ao Permit2.
Python CLI:
upto, pois nonce, deadline, testemunha e limite de valor são diferentes.
Liquidação de valor zero
upto suporta situações em que o valor real é 0. Por exemplo, se a API de destino não gerar uma quantidade cobrável com sucesso, o Gateway pode passar amount = "0". O Facilitador retornará sucesso, mas não emitirá uma transação na blockchain.
Isso pode evitar o problema de “solicitação não bem-sucedida, mas ainda assim cobrando taxas na blockchain”.
Recomendações de escolha
Se você não tiver certeza de qual escolher, use o comportamento padrão do SDK; o SDK escolherá a exigência de pagamento da rede correspondente retornada pelo servidor.
Lista de verificação Base upto
Ao integrar ou solucionar problemas, verifique se os seguintes parâmetros vêm da mesma resposta 402 e mantenha a consistência ao assinar no cliente:
Erros comuns e formas de lidar:

