Skip to main content
Ace Data Cloud X402는 현재 두 가지 유형의 스킴: exact와 upto를 사용하고 있습니다. 이들은 서로 다른 요금 문제를 해결합니다.

exact

exact는 이번 요청이 목표 API에 도달하기 전에 가격을 확정할 수 있음을 의미합니다. 클라이언트가 서명한 금액이 최종 차감 금액입니다. 적합한 경우:
  • 고정 가격의 이미지 생성;
  • 고정 가격의 비디오 작업 생성;
  • 고정 가격의 검색 또는 도구 API;
  • 주문 결제.
EVM exact는 USDC EIP-3009 TransferWithAuthorization을 사용합니다:
Facilitator는 /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에서 반환된 승인 한도는 95215 atomic USDC이며, 클라이언트는 이 한도로 서명합니다.
  • 모델이 실제로 응답한 후에는 3 atomic 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 응답에서 온 것인지 확인하고 클라이언트 서명 시 일관성을 유지하십시오: 일반적인 오류 및 처리 방법: