우리는 14,085개의 x402 엔드포인트(Endpoints)를 카탈로그화했습니다. 그중 10,508개는 단 하나의 도메인에서 발생했습니다.
요약
x402 엔드포인트 카탈로그의 실태를 조사한 결과, 대량의 허위 엔드포인트와 낮은 검증 성공률이 확인되었습니다. 에이전트가 비용을 선지불하는 x402 특성상, 10분마다 수행되는 자동화된 핸드셰이크 조사를 통해 엔드포인트의 유효성과 안정성을 검증합니다.
핵심 포인트
- 전체 엔드포인트 중 상당수가 단일 도메인의 허위 데이터임
- x402는 에이전트가 비용 지불 후 응답을 받으므로 사전 검증이 필수적임
- Cloudflare Cron을 활용해 10분마다 응답성, 결제 챌린지, 가격 일치 여부 등을 조사함
- 성공률이 낮은 엔드포인트는 자동으로 순위에서 제외하여 에이전트의 손실 방지
우리는 찾을 수 있는 모든 x402 엔드포인트 (endpoints)를 인덱싱하며, 각 엔드포인트를 10분마다 조사(probe)합니다. 2026년 7월 기준, 카탈로그에는 14,085개의 엔드포인트가 등록되어 있습니다.
그중 10,508개는 단일 제공자에게 속해 있습니다. 모두 정지된 상태입니다. 하나의 도메인이 다섯 자리 숫자에 달하는 엔드포인트 더미를 공공 레지스트리(public registry)에 대량으로 등록했으며, 만약 아무런 확인 절차 없이 레지스트리를 디렉토리처럼 렌더링한다면, 그 단일 도메인이 당신이 말하는 "생태계(ecosystem)"의 대부분을 차지하게 될 것입니다.
이를 제외하면 3,577개의 실제 엔드포인트가 남습니다. 그중 2,131개는 검증(verification)을 통과했고, 1,446개는 통과하지 못했습니다 — 대략 5개 중 2개가 실패하는 셈입니다. 이것이 오늘날 x402의 실제 모습이며, 우리가 단순히 목록을 나열하는 대신 조사(probe)를 수행하는 이유입니다.
검증이 어떻게 작동하는지, 그리고 무엇을 밝혀내는지 아래에 설명합니다.
여기서 검증이 다른 곳보다 더 중요한 이유
일반적인 API 마켓플레이스에서는 가입하고, 키(key)를 받고, 엔드포인트에 접속합니다. 만약 작동하지 않는다면 통합(integration) 과정에서 이를 알게 되고 다른 것을 선택하면 됩니다.
x402는 이를 뒤집습니다. 당신의 에이전트(agent)는 런타임(runtime)에 엔드포인트를 발견하고, USDC 트랜잭션에 서명하며, 응답이 유용한지 알기 전에 비용을 지불합니다. 만약 엔드포인트가 죽어있거나 잘못 설정되어 있다면 돈은 사라지며 — 더 나쁜 것은, 에이전트가 하류(downstream)에서 조용히 잘못된 데이터를 사용할 수 있다는 점입니다.
아무도 이것들을 수동으로 확인할 수 없습니다. 카탈로그가 이를 지속적으로 수행해야 하며, 작동을 멈춘 항목들의 순위를 낮추어야(demote) 합니다.
핸드셰이크 조사(Handshake Probe)가 확인하는 사항
Cloudflare Cron 트리거를 통해 10분마다 각 엔드포인트에 인증되지 않은 요청(unauthenticated request)을 보냅니다. 조사는 다음을 기록합니다:
- 조금이라도 응답하는가? (Does it respond at all?): 네트워크 오류, 타임아웃 및 5xx 에러는 실패로 간주합니다.
402 Payment Required를 반환하는가?: 레지스트리(registry)에 무엇이라 적혀 있든, 200, 401, 404 등 다른 응답이 오면 실제로는 x402가 아님을 의미합니다.- 결제 챌린지(payment challenge)가 형식에 맞게 구성되었는가?: x402 챌린지(v1 및 v2 모두)를 파싱하여 가격(price), 네트워크(network), 수신 주소(recipient address), 허용된 자산(accepted assets) 등 중요한 필드들을 확인합니다.
- 실시간 가격이 등록된 가격과 일치하는가?: 프로브(probe)는 관찰된 가격을 등록된 가격과 함께 저장하고, 차이(drift)가 발생하면 플래그를 표시합니다.
- 얼마나 느린가?: 순위 산정을 위해 지연 시간(latency)을 기록합니다.
각 실행 결과는 verifications 테이블에 한 행씩 기록됩니다. 최근 7일간의 데이터를 바탕으로 이동 평균 성공률(rolling success rate), p95 지연 시간(p95 latency), 그리고 안정성 점수(stability score)를 재계산합니다. success_rate_7d가 0.5 미만으로 떨어지는 엔드포인트는 명시적인 제외 사유와 함께 ranked_endpoints에서 제외되어 fallback_endpoints로 이동하며, 이를 통해 에이전트(agent)가 재시도 여부를 스스로 결정할 수 있게 합니다.
지난 24시간 동안 2,884회의 프로브가 수행되었습니다: 2,837회 통과, 47회 실패. 98%의 통과율은 너무 완벽해 보일 수 있지만, 이것이 무엇을 측정하고 있는지 기억해야 합니다. 이들은 이미 살아남은 엔드포인트들입니다. 실패 사례는 대부분 타임아웃이었습니다. 지난 7일간의 가격 불일치는 0건이었습니다. 필터링은 이미 완료되었으며, 지속적인 프로빙(probing)은 상태가 악화되는 상황에서도 정확성을 유지하는 역할을 합니다.
아무도 결제할 수 없는 네트워크들
또 다른 조용한 실패 모드는 다음과 같습니다: 에이전트가 현재 실제로 거래할 수 없는 네트워크에 등록된 엔드포인트들입니다.
전체 카탈로그 중 13,919개의 엔드포인트가 Base 메인넷(mainnet)에 있습니다. 나머지는 128개의 테스트넷 엔드포인트(base-sepolia 및 eip155:84532), Solana의 30개, Polygon의 5개, Algorand의 2개, Arbitrum의 1개로 흩어져 있습니다.
테스트넷 엔드포인트는 흥미로운 사례입니다. 이들은 완벽하게 유효한 402 응답을 반환하며, 핸드셰이크(handshake)도 깔끔하게 수행합니다. 하지만 실제 자금을 절대 이동시킬 수 없으므로, 자금이 충전된 지갑을 가진 에이전트에게 이들을 노출하는 것은 무용지물보다 더 나쁩니다. 이들은 카탈로그에는 남아 있지만, 탐색(discovery) 결과에서는 필터링됩니다.
에이전트가 실제로 보는 것
검증 작업은 /discover 응답에 직접 나타납니다:
{
"ranked_endpoints": [
{
...
이것은 이 글을 작성하는 동안 추출한 실제 응답입니다. observed 블록은 제공자가 주장하는 것이 아니라 측정된 값입니다. 즉, last_verified_at은 실제 프로브 (probe)로부터 생성된 타임스탬프이며, success_rate_7d는 행(row)의 개수를 세어 산출된 값입니다.
우리가 아직 해결하지 못한 부분
Handshake 프로브는 죽어 있거나, 가짜이거나, 형식이 잘못된 엔드포인트 (endpoint)를 잡아냅니다. 하지만 여러분에게 금전적 손실을 입히는 실패는 잡아낼 수 없습니다. 예를 들어, 깨끗한 402 응답을 반환하고 결제를 수락한 뒤, 빈 배열이나 HTML 에러 페이지, 또는 200 상태 코드에 감싸진 JSON 에러를 반환하는 엔드포인트와 같은 경우입니다.
이를 증명하려면 실제로 결제를 해야 합니다. 즉, 실제 트랜잭션(transaction)을 수행한 다음, web.search나 defi.token_price를 호출하는 사용자가 필요로 하는 내용이 응답에 포함되어 있는지 확인하는 기능 인식(capability-aware) 체크가 필요합니다. 우리는 요청당 한도와 일일 예산을 설정하여 해당 메커니즘을 구축했지만, 현재 지속적인 스윕 (sweep) 방식으로 실행되고 있지는 않으므로, 이 방식으로 엔드포인트에 배지를 부여하지는 않습니다. 현재 실행하고 있지 않은 검증 티어 (verification tier)를 주장하는 것이 바로 이 포스트가 반대하는 바로 그 유형의 행위입니다.
따라서, 우리가 단언하는 것은 우리가 측정한 것입니다. ranked_endpoints에 있는 모든 엔드포인트는 최근에, 반복적으로, 결제 가능한 네트워크에서 잘 형성된 챌린지 (challenge)와 함께 유효한 402를 반환했습니다. 결제 후의 품질은 다음 과제이며, 이는 더 어려운 문제입니다.
직접 시도해 보세요
curl -X POST https://api.entroute.com/discover \
-H "Content-Type: application/json" \
-d '{
...
- 사이트: entroute.com
- 검증 작동 방식: entroute.com/docs/verification
- MCP 설치:
claude mcp add entroute -- npx @entroute/mcp-server - SDK:
npm install @entroute/sdk-agent-ts
만약 x402 엔드포인트를 운영 중인데 우리의 프로브 (probe)를 통과하지 못한다면, 가장 빠른 해결책은 대개 결제 챌린지 (payment challenge) 문제입니다. network 정보가 누락되었거나 수신자 주소가 잘못된 경우가 우리가 목격하는 가장 흔한 형식 오류입니다. 제출하기를 클릭하면 10분 이내에 재프로브 (re-probe)가 수행됩니다.
이 포스트의 수치는 2026년 7월 23일에 측정되었으며, 시간이 지남에 따라 변동될 수 있습니다. EntRoute는 무료로 쿼리할 수 있으며 Cloudflare Workers + D1 위에서 실행됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기