x402 엔드포인트 건강 진단

귀하의 데이터 엔드포인트가 정말로 "올바르게 요금을 청구"하고 있나요? 엔드포인트 URL을 입력하면 다음 항목을 차례로 점검합니다: 미결제 시 402 반환 여부, payment-required 헤더 존재 여부, 네트워크가 Base 메인넷인지 여부, 수취 주소 및 금액의 정확성, 브라우저에서 커스텀 헤더를 읽을 수 있는지 여부, 응답 속도. 점검 완료 후 바로 복사해 쓸 수 있는 Node/Express 코드를 제공합니다.

무료 · 로그인 없음 로컬 요청 · 데이터는 업로드되지 않음 해당 사고 · SSE 엔드포인트가 오진단되어 죽은 것으로 간주됨

A브라우저 직접 연결 점검

브라우저에서 직접 한 번 요청을 보냅니다. 상대방이 CORS를 활성화하지 않았다면 브라우저가 차단합니다—이 경우 아래의 B 방식을 사용하세요.

검진 요청은 사용자의 브라우저에서 직접 전송되며, Feegate 서버는 이를 중계하거나 기록하지 않습니다.

B응답 헤더를 붙여넣어 분석

아래에서 생성된 curl 명령어를 서버에서 실행한 후, 전체 출력을 그대로 붙여넣으세요—이 방식은 CORS 제한을 받지 않으며 결과가 가장 정확합니다.

C수금 파라미터(수정 조각 생성용)

USDC는 소수점 이하 6자리입니다: 체인 상에서 0.01 USDC는 100000.01이 아님.

결과진단 결과

출력 1복사 가능한 curl 자체 점검 명령어

0행
엔드포인트 URL을 입력하면 자동으로 생성됩니다.
주의 --noproxy '*': 로컬 머신에 프록시가 설정되어 있으면 curl이 프록시가 반환한 410을"站点挂了",我们被这个假警报坑过。

출력 2서버 측 수정 코드 조각(Node/Express).

0행
엔드포인트 URL을 입력하면 자동으로 생성됩니다.
이 함정은 우리가 이미 밟았습니다

1 · SSE를 반환하는 엔드포인트가 '사망'으로 판정됨.우리 자체 핑 도구는 JSON-RPC 클라이언트를 사용해 MCP 엔드포인트를 확인하며, 상대방이 SSE 스트림(즉, JSON이 아님)을 반환할 경우 파싱 실패로 인해 엔드포인트를 사망 상태로 판정합니다. 이후 다음과 같이 변경했습니다.HTTP 상태 코드만 확인, 200/402 모두 정상 작동 중으로 간주됩니다.

2 · 브라우저는 사용자 정의 응답 헤더를 읽을 수 없습니다.CORS에서는 단순 응답 헤더만 읽을 수 있습니다.payment-required 반드시 작성해야 함 Access-Control-Expose-Headers, 그렇지 않으면 프론트엔드에서 null을 받게 됩니다.

3 · 금액 단위를 잘못 작성했습니다.USDC는 소수점 이하 6자리입니다.maxAmountRequired 최소 단위로 작성해야 합니다: 0.01 USDC = 10000. 다음처럼 작성하세요 0.01 실제로 수수료는 0.00000001 달러만 부과됨.

4 · 로컬 프록시가 가짜 경고를 유발합니다.사이트 온라인 여부를 판단할 때는 항상 포함합니다. --noproxy '*'예전에 프록시가 반환한 410 응답을 잘못 해석해 "베어 도메인이 다운된 것"으로 판단했으나, 실제 응답은 200이었습니다.