탐색과 속도 조절

계약과 루프

  • 레슨 5/5
  • 12분
  • 고급
  • 개발자

ACHIVX Academy 원문 (영어) ↗

이번 레슨에서는

레슨을 마치면 다음을 할 수 있습니다.

  • token을 지정해 지갑을 탐색하고 hops[].nodes, volume_usd6, frontier_truncated, window_from 읽기
  • 202 building 그래프, 스냅샷, 저하된 응답 읽기
  • ETag, 백오프, 요청 id로 분당 1,200건 아래에서 읽기 속도 조절하기

탐색

get-wallet-graph-walk와 그 REST 트윈 /v1/addresses/{address}/walk?chain=&token=&hops=는 홉을 hops[].nodes로 반환합니다. 최상위 nodes는 없습니다. 각 노드에는 address, direction, volume(원시 최소 단위), volume_usd6, score(카드에 따르면 가치 가중)가 있고, 그 밖에 nodes_explored, frontier_truncated(frontier_cap, 기본값이자 최대값 500), window, window_from이 있습니다. 스킬에서는 token이 필수이고, REST에서는 기본값이 적용되며 token_source에 밝혀집니다. 그래도 넘기십시오. 그래프 탐색 절차는 hops=2에서 시작하며(REST와 MCP 도구의 기본값이고, 카드에는 기본값이 선언되어 있지 않습니다), 질문이 필요로 할 때만 더 깊이 갑니다. 2026-10-13에 아카데미의 제재 대상 예시에 대해 이더리움(Ethereum) USDT 1홉으로 /walk를 요청하자 nodes_explored: 0, window_from: "2026-09-22"로 응답했습니다. 그 날짜 이후로 USDT 거래 상대가 없으며, 그 이전의 것은 보이는 범위에 없습니다.

window_from — 답은 요청한 기간의 시작이 아니라 그 날짜, 즉 엣지 단위의 범위 경계부터 만들어졌습니다 … 거래 상대, 경로 또는 제재 대상 노드가 없다는 것을 그 날짜 이전의 어떤 것에 대한 증거로도 취급하지 마십시오. 잘림 — frontier_cap(직접 낮추지 않으면 500)보다 넓은 탐색 경계(frontier), 또는 시간 예산 때문입니다. 그래프 탐색 스킬의 규칙: 도달한 것과 멈췄다는 사실을 보고하고, 나머지가 비어 있다고는 결코 보고하지 마십시오. 방법론의 두 가지 규칙: 차수 기준을 넘는 대상은 frontier_truncated: true와 함께 1홉만 답합니다(mega_hub_degree_gate). 무거운 대상에서 3홉 이상은 요청 예산을 넘어 오류를 반환할 수 있습니다. hops <= 2로 다시 시도하십시오(deep_hops_time_budget). 솔라나(Solana) — 대상의 coverage_status를 읽으십시오. window_from이 2026-09-14 또는 그 이전이면 2026-07-20..2026-09-14를 하한으로 취급하십시오. 그보다 늦은 window_from에는 그 날짜들이 하나도 포함되지 않습니다.

1홉 그림

/v1/addresses/{address}/graph는 저장된 스냅샷에서 제공될 수 있습니다(snapshot_served, snapshot_age_seconds — 체인의 지연이 아니라 그림의 경과 시간). 저하된 응답은 degraded_reason과 X-Degraded 헤더에 그 이유를 밝히며 no-store입니다. 사용할 수 있는 스냅샷이 없는 무거운 주소는 503 시간 초과 대신 202로 {"status": "building", "retry_after_seconds": 5}와 Retry-After: 5를 응답할 수 있습니다. 그래프도 아니고 오류도 아닙니다. 기다린 뒤 반복하고, 2xx를 그래프로 읽기 전에 상태 또는 본문의 status를 확인하십시오.

속도 조절

IP마다 토큰 버킷 하나, 분당 1,200건입니다(카드의 rateLimits. 스킬과 openapi.json에서는 초당 20건, 버스트 40). 429를 받으면 Retry-After만큼 기다리십시오. 시간 초과는 REST에서는 error.code: "timeout"과 Retry-After: 5가 붙은 503, A2A에서는 data.retryable이 붙은 -32050, MCP에서는 도구 오류입니다. 무거운 읽기는 아무것도 읽지 않은 채 busy로 거부할 수도 있습니다. REST에서는 error.code: "busy", Retry-After: 5, no-store가 붙은 503이고, MCP에서는 도구 오류입니다. get_wallet_graph_walk 도구의 조언: 백오프, 더 좁은 기간 또는 더 낮은 frontier_cap으로 다시 시도하십시오. 재검증하는 GET에는 If-None-Match를 보내십시오. /v1/sanctions, /v1/methodology, 카드, 다시 요청한 그래프 읽기가 해당되며, 주소 응답은 거의 일치하지 않습니다. 자신의 X-Request-Id를 보내고 응답의 것을 인용하십시오. 설명서가 엣지 캐시된다고 나열한 읽기(GET /v1/addresses/…(따라서 /walk와 /graph도), /v1/transfers, /v1/methodology, 카드 등)에서는 no-store 응답에서도 이것이 Cloudflare ray입니다(2026-10-20의 바이낸스(Binance) 503에도 붙어 있었습니다). cf-cache-status: HIT는 스캐너가 요청을 전혀 보지 못했다는 뜻입니다. 그리고 /health와 /ready를 정직하게 읽으면 이렇습니다. 프로세스는 살아 있습니다 … 둘 다 200으로 응답하는 동안에도 네트워크는 몇 시간 뒤처져 있을 수 있습니다. 최신성은 /v1/sync/status?chain=입니다.

핵심 정리

  • token 지정, hops는 2부터, 노드는 hops[].nodes 아래, 달러는 volume_usd6
  • window_from은 탐색이 본 범위의 경계이며, 잘림은 멈췄다는 뜻이지 결코 비어 있다는 뜻이 아닙니다
  • 202 building 그래프는 그래프도 오류도 아닙니다. retry_after_seconds만큼 기다렸다가 다시 요청하십시오
  • 분당 1,200건. 시간 초과와 busy는 유형이 정해져 있습니다. 간격을 두고, 결코 반복하지 마십시오
  • 일치하는 곳에서는 ETag 재검증, 모든 호출에 요청 id. /health는 최신성이 아닙니다

Stablecoin scanner ACHIVX에서 직접 해 보기

  1. 제재 대상 예시의 1홉 탐색을 열고 token_source, window_from, nodes_explored, frontier_truncated를 읽습니다.
  2. 바이낸스 핫월렛의 /walk를 읽습니다. GET /v1/addresses/0x28C6c06298d514Db089934071355E5743bf21d60/walk?chain=1&token=USDT&hops=1. 그 정도 규모의 허브는 기한을 넘길 수 있습니다. 2026-10-13에는 error.code: "timeout"과 Retry-After가 붙은 503으로 응답했습니다. 이 두 가지를 읽고, 기다렸다가 한 번 다시 시도합니다. 응답이 오면 frontier_truncated를 읽고, 첫 번째 노드의 volume을 10^decimals로, volume_usd6을 1,000,000으로 나눕니다. 페그가 1이면 두 값은 일치합니다.
  3. 이더리움의 SLO 응답을 열고 두 개의 freshness 기준점을 budget_seconds, scope와 함께 읽습니다.
  4. 아무 읽기나 두 번 보내되, 두 번째에는 If-None-Match를 첫 번째 응답의 ETag로 설정합니다. 어느 경로가 304로 응답하는지 기록합니다.

레슨 돌아보기

  • 내 읽기 중 탐색 경계 상한에 걸릴 것은 무엇이며, 보고서는 그것을 어떻게 밝히겠습니까?
  • 503 시간 초과 뒤, 그리고 busy 뒤의 백오프는 각각 어떻게 됩니까?

다음 내용

이것으로 과정을 마칩니다. 퀴즈는 다섯 문제이고, 그다음 배지를 받습니다. 에이전트를 위한 Stablecoin scanner ACHIVX 섹션에는 접근 경로마다, 스킬마다 페이지가 하나씩 있습니다.

함께 보기

더 알아보기

레슨 5/5 · 에이전트를 위한 Stablecoin scanner ACHIVX · 위에 링크된 사용자 가이드를 바탕으로 합니다.

이 페이지는 ACHIVX Academy 영어 원문을 한국어로 옮긴 것입니다. 번역과 원문이 다르면 영어 원문이 기준입니다.