신규어떤 에이전트든 UberLLM에 연결하세요. 키 하나로 모든 모델을 공식 가격 이하로 사용할 수 있습니다.
UberLLM

요청당 결제 (x402)

암호화폐 지갑을 가진 에이전트는 계정이나 API 키 없이 UberLLM을 사용할 수 있습니다. 각 요청에 대해 오픈 x402 결제 표준 (버전 2)을 사용하여 Base 네트워크의 USDC로 결제합니다.

이 기능은 채팅: POST /v1/chat/completions 및 POST /v1/messages에 적용됩니다. 이미지, 비디오, 음악 및 음성은 여전히 키가 필요합니다.

요청당 결제 기능이 켜져 있는지 확인하려면 api.uberllm.dev/x402를 여세요. 여기에는 네트워크, USDC 컨트랙트 및 결제를 받는 지갑이 표시됩니다. 만약 "404 not found"라고 응답한다면, 요청당 결제 기능은 꺼져 있는 것입니다. 대신 키를 사용하세요 (빠른 시작).

작동 방식

  1. 키 없이 요청을 보냅니다. 응답은 HTTP 402 Payment Required입니다. PAYMENT-REQUIRED 헤더(본문에도 있는 base64 JSON)는 요청이 최대 얼마까지 비용이 들 수 있는지, 그리고 어떤 결제 방식이 허용되는지를 알려줍니다.
  2. 귀하의 지갑이 해당 옵션 중 하나에 서명합니다. PAYMENT-SIGNATURE 헤더에 서명을 포함하여 동일한 요청을 다시 보냅니다.
  3. UberLLM은 결제를 확인하고, 응답한 다음 결제를 수금합니다. 일반(비스트리밍) 응답에는 온체인 트랜잭션이 포함된 PAYMENT-RESPONSE 헤더의 영수증이 함께 제공됩니다.

각 서명은 하나의 요청에 대한 비용을 지불합니다. 다른 요청을 하려면 다시 서명하세요.

결제 방식

402는 요청에 대해 발생할 수 있는 최대 비용을 제시합니다. 이는 요청이 취할 수 있는 가장 비싼 경로를 기준으로, 귀하의 프롬프트와 max_tokens의 출력을 합한 금액입니다. 견적을 낮게 유지하려면 max_tokens을(를) 설정하세요.

결제 방법은 두 가지입니다:

  • upto (가장 먼저 제공됩니다). 귀하는 견적을 상한선으로 서명합니다. 응답 후에는 실제 비용만 청구되며, 달러의 백만분의 일 단위로 올림 처리됩니다. 첫 결제 시 일회성 USDC 승인이 필요합니다. 결제 서비스가 지원하는 경우, 해당 승인에는 gas가 필요하지 않습니다.
  • exact. 요청에 사용된 금액이 더 적더라도 견적된 전체 금액이 청구됩니다. 환불은 없습니다. 귀하의 지갑이 upto를(을) 할 수 없는 경우에만 exact를(을) 선택하세요.

귀하가 서명한 금액보다 더 많이 청구되는 일은 없습니다. 아무것도 제공되지 않는 경우(사용 가능한 모델 없음, 응답 시작 전 오류 발생), 아무것도 청구되지 않습니다.

curl로 시도해 보세요

curl -i https://api.uberllm.dev/v1/chat/completions \
  -H 'content-type: application/json' \
  -d '{"model":"deepseek/deepseek-v4-flash","max_tokens":200,"messages":[{"role":"user","content":"Hello"}]}'
# HTTP/1.1 402 Payment Required
# PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6Mi…
#
# {"x402Version":2,"error":"PAYMENT-SIGNATURE header is required",
#  "accepts":[{"scheme":"upto","network":"eip155:8453","amount":"…","asset":"0x8335…2913","payTo":"0x…",…},
#             {"scheme":"exact",…}]}

amount은 USDC 기본 단위입니다: 1,000,000은 $1입니다. 지갑으로 accepts의 한 항목을 서명하세요. 그런 다음 -H 'PAYMENT-SIGNATURE: <base64 payment>'과 함께 동일한 요청을 다시 보내세요.

코드에서

x402 클라이언트 라이브러리가 402, 서명 및 재시도를 대신 처리해 드립니다. JavaScript에서는 다음과 같습니다:

import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY as `0x${string}`);
const pay = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});

const res = await pay("https://api.uberllm.dev/v1/chat/completions", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    model: "deepseek/deepseek-v4-flash",
    max_tokens: 200,
    messages: [{ role: "user", content: "Hello" }],
  }),
});
console.log(await res.json());

실제 비용만 지불하려면 @x402/evm/upto/client에서 UptoEvmScheme을(를) 등록하세요. Go 및 Python용 라이브러리는 x402.org]에서 확인할 수 있습니다.

알아두면 좋아요

  • 스트리밍이 작동합니다. "stream": true을(를) 사용하면 답변이 평소처럼 스트리밍됩니다. 결제는 스트림이 종료될 때 이루어집니다. 헤더가 이미 전송되었으므로 PAYMENT-RESPONSE 헤더는 없습니다. 지갑에 전송 내역이 표시됩니다.
  • 하나의 지갑으로 동시에 최대 4개의 유료 요청을 할 수 있습니다.
  • 답변 후 결제를 수집할 수 없는 경우 (예를 들어, 그 사이에 지갑이 비워진 경우), 일반 답변은 보류되고 402 payment_failed를 받게 됩니다. 해당 지갑은 24시간 동안 결제할 수 없습니다.
  • 버전 1 x402 (X-PAYMENT 헤더)는 허용되지 않습니다. 버전 2 클라이언트를 사용하세요.
  • 요청이 많은가요? 선불 크레딧이 있는 계정은 더 간단하며 온체인 단계가 없습니다: 가입하기.

오류

HTTP 의미 조치
402 + PAYMENT-REQUIRED 결제 없음, 또는 결제가 거부됨 (error 필드에 이유가 나와 있습니다) accepts 중 하나에 서명 후 다시 시도
402 payment_failed 답변은 준비되었으나 결제를 수금할 수 없었습니다 지갑에 자금을 충전하세요; 해당 지갑은 24시간 후에 다시 결제할 수 있습니다
400 invalid_payment PAYMENT-SIGNATURE은 base64 x402 v2 결제가 아닙니다 클라이언트를 수정하세요
429 rate_limited 이 지갑에서 4개의 유료 요청이 이미 실행 중입니다 하나가 완료될 때까지 기다리세요
503 service_unavailable 결제 서비스가 잠시 중단되었습니다 1분 후에 다시 시도하세요