exact와 upto를 사용하고 있습니다. 이들은 서로 다른 요금 문제를 해결합니다.
exact
exact는 이번 요청이 목표 API에 도달하기 전에 가격을 확정할 수 있음을 의미합니다. 클라이언트가 서명한 금액이 최종 차감 금액입니다.
적합한 경우:
- 고정 가격의 이미지 생성;
- 고정 가격의 비디오 작업 생성;
- 고정 가격의 검색 또는 도구 API;
- 주문 결제.
exact는 USDC EIP-3009 TransferWithAuthorization을 사용합니다:
/verify 단계에서 서명과 금액을 검증하고, /settle 단계에서 이 승인을 체인에 제출합니다.
upto
upto는 클라이언트가 최대 한도를 승인하는 것을 의미하며, Ace Data Cloud는 요청이 완료된 후 실제 사용량에 따라 정산하며, 실제 차감 금액은 한도를 초과할 수 없습니다.
적합한 경우:
- 채팅 완성: 최종 가격은 prompt tokens와 completion tokens에 따라 달라집니다;
- 스트리밍 응답: 실제 출력 길이가 끝난 후에야 알 수 있습니다;
- 미래의 후속 계량 API.
upto는 Permit2 PermitWitnessTransferFrom을 사용합니다. 클라이언트가 서명하는 것은 고정 전송이 아니라 witness가 포함된 한도 승인입니다:
permitted.amount는 한도이며, 반드시 최종 차감 금액은 아닙니다. Gateway는 /record 단계에서 실제 사용량을 amount로 변환하여 Facilitator에 전달합니다. Facilitator는 amount <= permitted.amount만 정산할 수 있습니다.
Base upto의 프로그램 실행 결과:
- 402에서 반환된 승인 한도는
95215atomic USDC이며, 클라이언트는 이 한도로 서명합니다. - 모델이 실제로 응답한 후에는
3atomic USDC만 정산되며, 체인 상의 거래는 BaseScan에서 확인할 수 있습니다. - 이 결과는
upto의 주요 차이를 설명합니다: 서명 금액은 한도이며, 체인 상의 정산은 한도보다 작을 수 있습니다. - 실제 사용량이 한도를 초과하면, Facilitator는 정산을 거부해야 하며, 클라이언트는 더 높은 한도로 다시 승인해야 합니다.
upto는 현재 Base에서만 제공됩니다. SKALE은 exact만 제공하며, 후속 계량이 필요하면 Base를 사용하십시오.
왜 Permit2 승인이 필요한가
upto는 최종적으로 x402 프록시를 통해 Permit2로부터 결제 지갑에서 USDC를 인출합니다. 처음 사용하기 전에 결제 지갑은 Permit2에 대해 한 번 ERC-20 허용을 부여해야 합니다.
Python CLI:
upto envelope에 서명해야 합니다. nonce, deadline, witness 및 금액 한도가 모두 다르기 때문입니다.
제로 금액 정산
upto는 실제 금액이 0인 경우를 지원합니다. 예를 들어 목표 API가 성공적으로 청구 가능한 양을 생성하지 못한 경우, Gateway는 amount = "0"을 전달할 수 있습니다. Facilitator는 성공을 반환하지만 체인 상의 거래는 발생하지 않습니다.
이것은 “요청이 성공하지 않았지만 여전히 체인 상의 비용이 차감되는” 문제를 피할 수 있습니다.
선택 권장 사항
어떤 것을 선택해야 할지 확실하지 않은 경우, SDK의 기본 동작을 사용하십시오; SDK는 서버가 반환한 일치하는 네트워크 결제 요구 사항을 선택합니다.
Base upto 체크리스트
접속 또는 문제 해결 시, 다음 매개변수가 동일한 402 응답에서 온 것인지 확인하고 클라이언트 서명 시 일관성을 유지하십시오:
일반적인 오류 및 처리 방법:

