Horu@horuweb3
x402 결제란 무엇인가요?
날씨 앱에서 내일 아침 서울의 예보를 불러오려는데, 데이터를 제공하는 서비스가 이런 응답을 보냈다고 해볼게요.
"이 데이터는 한 번 조회하는 데 0.01 USDC입니다."
앱은 가격과 결제 조건을 확인하고, 구매를 진행한다면 결제에 필요한 정보를 보내야 합니다. 서비스는 이를 확인한 뒤 요청한 데이터를 제공하구요.
x402는 이처럼 자료를 요청하는 흐름 안에서 결제를 주고받는 방식을 정한 공개 규약이에요. 웹 요청과 응답에 결제 조건과 결제 정보를 담아, 프로그램이 유료 API나 콘텐츠를 이용할 수 있도록 합니다. x402 공식 소개
이 글에서는 날씨 데이터 한 건을 0.01 USDC에 구매하는 가상 상황을 예로 들겠습니다.
(USDC는 미국 달러 가치를 따르도록 설계된 스테이블코인입니다.)
데이터를 요청하면 돌아오는 HTTP 402
먼저 앱이 날씨 서비스에 내일 아침 서울의 예보 데이터를 요청합니다. 프로그램이 다른 서비스의 기능이나 데이터를 이용하는 창구를 API라고 불러요.
날씨 서비스는 데이터를 바로 보내는 대신 HTTP 402 Payment Required라는 응답을 돌려줍니다. HTTP 상태 코드는 웹 요청의 처리 상태를 알려주는 번호인데, 여기서 402는 결제가 필요하다는 뜻으로 쓰입니다.
x402에서는 이 응답에 구체적인 결제 조건을 담습니다. 얼마를 내야 하는지뿐 아니라 어떤 자산으로, 어느 네트워크에서, 누구에게, 어떤 방식으로 결제할지를 프로그램이 읽을 수 있는 형식으로 전달해요.
이 예제라면 조회당 0.01 USDC라는 가격과 함께 결제 네트워크와 수신 주소 등이 안내됩니다. 아직 돈이 이동한 것은 아닙니다. 서비스가 구매 조건을 제시한 단계예요. 공식 결제 흐름
서명부터 검증, 정산까지
구매를 진행하기로 했다면 앱은 연결된 지갑이나 결제 도구를 통해 필요한 서명을 생성합니다. 여기서는 EVM 계열 네트워크에서 USDC 결제 승인에 서명하는 고정 가격 방식을 기준으로 설명할게요.
이 서명은 정해진 조건으로 결제하는 것을 허용한다는 의미입니다. 앱은 서명된 결제 정보를 원래의 날씨 요청에 붙여 다시 보내요. 서명을 만들어 보냈다는 사실만으로 송금까지 끝난 것은 아닙니다.
날씨 서비스는 받은 결제 정보가 유효한지, 안내한 금액과 수신자 등의 조건에 맞는지 검증합니다. 검증을 통과하면 요청한 데이터를 준비하고, 승인된 결제를 실제로 처리하는 정산 단계로 넘어갑니다.
판매자는 검증과 정산을 직접 처리하거나 facilitator라는 결제 지원 서비스를 이용할 수 있습니다. facilitator는 결제 정보를 검증하고 블록체인에 결제를 제출하는 일을 돕습니다. 이용자의 돈을 맡아 보관하는 역할은 아닙니다. facilitator 공식 설명
이 예제에서는 정산이 성공한 뒤 날씨 서비스가 데이터와 정산 결과를 응답으로 돌려줍니다. 앱은 이 응답으로 요청한 예보를 받아 화면에 표시할 수 있습니다.
다만 모든 x402 결제가 같은 순서로 처리되지는 않습니다. 요청별 승인 정보를 모아 실제 정산은 나중에 묶어서 진행하는 방식도 있어요. 지원하는 자산과 네트워크 역시 서비스와 결제 구현에 따라 달라집니다. 결제 방식과 지원 범위

가스비를 위한 ETH도 필요할까요?
일반적으로 EVM 네트워크에서 토큰을 직접 보내려면 가스비를 낼 ETH 같은 네이티브 자산도 필요합니다. USDC가 충분히 있어도 가스비용 자산이 없으면 전송이 어려울 수 있죠.
이 예시에서 사용하는 EIP-3009는 구매자가 결제 승인에 서명하고, facilitator 같은 다른 주체가 그 승인을 블록체인에 제출할 수 있게 하는 방식이에요. 서명을 만드는 데는 가스비가 들지 않고, 실제 전송에 필요한 가스비는 거래를 제출하는 쪽에서 냅니다. 구매자는 가스비용 ETH를 따로 준비하지 않고도 USDC로 결제할 수 있다는 장점이 있어요. EIP-3009 명세
다만 네트워크 비용 자체가 사라지는 것은 아닙니다. 서비스 제공자가 이 비용을 부담할 수도 있고, 가격이나 별도 수수료에 반영할 수도 있으므로 실제 청구 조건은 확인해야 합니다.
결제 여부는 누가 결정할까요?
결제 조건을 전달받는 것과 구매를 결정하는 것은 별개의 과정입니다.
사용자가 화면에서 가격을 확인하고 건별로 승인하도록 만들 수도 있고, 앱이 미리 설정된 조건 안에서 자동으로 결제하도록 만들 수도 있어요.
자동 결제를 허용한다면 어느 서비스에서 구매할 수 있는지, 한 번에 얼마까지 쓸 수 있는지, 어떤 상황에서 사용자에게 승인을 요청할지를 정해야 합니다. 예를 들어 허용된 날씨 서비스에서 건당 0.01 USDC 이하의 데이터만 구매하도록 제한할 수 있겠죠.
이런 규칙은 앱이나 결제 도구에서 실제로 검사하고 적용해야 합니다. x402를 도입하는 것만으로 예산 관리 기능까지 갖춰지는 것은 아니에요. 결제에 사용할 지갑과 자산을 준비하는 일도 별도로 필요합니다.
어디에 활용할 수 있나요?
x402는 데이터 조회나 유료 도구 호출처럼 요청별로 비용을 받는 서비스에 활용할 수 있습니다. 기사 한 편이나 파일 하나의 접근 권한을 구매하는 앱에도 연결할 수 있어요.
공통점은 서비스가 이번 요청에 필요한 결제 조건을 제시하고, 앱이 그 조건에 맞는 결제 정보를 보내 이용을 이어간다는 데 있습니다. 서비스마다 별도의 구독이나 선불 잔액을 마련하는 대신, 필요한 요청에 비용을 지불하는 형태로 구성할 수 있어요.
AI 에이전트가 작업 중 필요한 분석 데이터를 구매하거나 유료 도구를 호출하는 것도 활용 사례 중 하나입니다. 공식 활용 사례
물론 데이터를 판매하는 쪽에서 x402 결제를 지원해야 합니다. 기존의 모든 유료 사이트에 그대로 적용할 수 있는 기능은 아니에요. 실제 이용 시에는 지원 자산과 네트워크, 수수료, 구매 후 접근 조건을 확인해야 합니다.
결제가 끝난 뒤에도 확인할 것
날씨 서비스가 결제를 처리하고 데이터를 돌려줬다면 구매 절차는 끝납니다. 이제 앱은 받은 예보가 요청한 지역과 시간대에 맞는지, 서비스가 약속한 갱신 기준을 충족하는지 확인해야 해요.
x402에서 결제를 검증한다는 것은 결제 정보가 요구 조건에 맞는지 확인한다는 뜻입니다. 데이터의 정확성이나 최신성까지 인증하는 절차는 아닙니다.
0.01 USDC의 결제가 성공했더라도 다른 지역의 예보를 받았다면 처음의 요청은 해결되지 않은 셈이죠. 결제가 제대로 처리됐는지와 원하는 자료를 받았는지는 각각 살펴봐야 합니다.