# 지금 네트워크의 데이터는 얼마나 최신입니까?

전송과 거래 · 인덱서의 헤드, 블록 단위 지연, 가장 최근 전송의 경과 시간 — 네트워크별로, 5초마다

*API 가이드 · 5분 · 입문 · 개발자 · GET /v1/sync/status*

`GET /v1/sync/status?chain=`은 `last_indexed_block`, `head_block`, `safe_block`, `finalized_block`, `lag_blocks`, `freshness_seconds`로 응답합니다. `freshness_seconds`는 해당 네트워크에서 가장 최근에 인덱싱된 전송의 경과 시간이며, 어디서나 같은 의미를 갖는 유일한 최신성 척도입니다. 2026-10-24에 이더리움(Ethereum)은 16블록, 209초 뒤처져 있었고 베이스(Base)는 30블록, 63초였습니다. 전송이 *일어나지 않았다*고 판단하기 전에 이것을 읽고, 모든 주소 응답 옆에 있는 같은 `freshness_seconds`를 읽으십시오. `/health`와 `/ready`는 인덱싱에 대해 아무것도 말하지 않습니다.

## 요청

```
curl -s 'https://stablescan.achivx.com/v1/sync/status?chain=1'
```

```
{
  "chain_id": 1,
  "last_indexed_block": 26261977,
  "head_block": 26261993,
  "safe_block": 26261951,
  "finalized_block": 26261919,
  "lag_blocks": 16,
  "freshness_seconds": 209,
  "as_of": "2026-10-24T10:45:52Z"
}
```

[첫 번째 요청](https://achivx.kr/academy/api/first-request/)의 헬퍼 세 개로 한 같은 호출:

**Python**

```
sync = scan("/v1/sync/status", chain=1)
fresh = sync["freshness_seconds"]
if fresh is None:
    print("freshness not read this time; ask again")      # the answer is no-store
elif fresh > 600:
    print("indexer is", fresh // 60, "minutes behind; a negative is not final")
```

**Go**

```
var sync struct {
	LastIndexedBlock int64 `json:"last_indexed_block"`
	HeadBlock        int64 `json:"head_block"`
	FinalizedBlock   int64 `json:"finalized_block"`
	LagBlocks        int64 `json:"lag_blocks"`
	FreshnessSeconds *int  `json:"freshness_seconds"` // nil: not read this time
}
if err := get("/v1/sync/status", url.Values{"chain": {"1"}}, &sync); err != nil {
	return err
}
```

**TypeScript**

```
type Sync = { chain_id: number; last_indexed_block: number; head_block: number; safe_block: number; finalized_block: number; lag_blocks: number; freshness_seconds: number | null; as_of: string };
const sync = await scan<Sync>("/v1/sync/status", { chain: 1 });
const stale = sync.freshness_seconds === null || sync.freshness_seconds > 600;
```

## 필드별 설명

- **`last_indexed_block`** — 인덱싱 커서입니다. EVM 네트워크와 트론(Tron)에서는 인덱싱된 가장 최근 블록, 솔라나(Solana)에서는 계정 스캔이 도달한 가장 최근 슬롯입니다.
- **`head_block`** — 인덱서가 마지막으로 기록한 체인 헤드입니다(없으면 0). 솔라나에서는 각 주기 시작 시 폴링한 확정 슬롯과 스캔이 처리한 가장 최근 슬롯 중 큰 값이며, 실시간 체인 헤드가 아닙니다.
- **`safe_block`, `finalized_block`** — EVM 네트워크와 트론에서는 safe 헤드와 finalized 헤드, 솔라나에서는 둘 다 확정 슬롯입니다. 피드 행은 그 블록이 `finalized_block`보다 뒤에 놓일 때까지 `pending`입니다. 그날 아침 이더리움의 확정 헤드는 헤드보다 74블록(약 15분) 뒤처져 있었습니다.
- **`lag_blocks`** — `head_block - last_indexed_block`. EVM 네트워크와 트론에서 음수 값은 노드의 헤드가 되돌아갔다는 뜻입니다. 솔라나에서는 구조상 0에 가깝고 결코 음수가 아니므로, 그곳에서는 최신성 신호가 *아닙니다*. `freshness_seconds`를 읽으십시오(솔라나는 `lag_blocks: 0, freshness_seconds: 124`로 응답했습니다).
- **`freshness_seconds`** — 가장 최근에 인덱싱된 전송의 경과 시간입니다. 이번 응답에서 읽을 수 없었거나 체인에 아직 인덱싱된 전송이 없으면 `null`입니다. 추정으로 0을 넣는 일은 없습니다. 모든 주소 응답이 반복하는 필드이며, 네트워크 간 비교에 쓸 필드입니다.

`chain`이 없으면 응답은 베이스의 것이며, 그렇다고 알려 주는 `chain_source`도 없습니다 — 체인 범위 응답 중 기본값을 표시하지 않는 유일한 응답입니다. `chain`을 넘기십시오.

## 이것이 아닌 것

`/health`(`{"status": "ok"}`)와 `/ready`(`{"status": "ready"}`, 데이터베이스가 응답하지 않으면 `503 not_ready`)는 프로세스 가동 상태입니다. 둘 다 `200`으로 응답하는 동안에도 네트워크는 몇 시간 뒤처져 있을 수 있습니다. `/v1/stats/slo`는 서비스 자체의 지연 시간 예산과 배치 작업([OFAC](https://achivx.kr/academy/how-it-works/what-is-the-ofac-sdn-list/) 목록, 주간 그래프 배치)의 최신성이지, 네트워크의 [인덱싱 지연](https://achivx.kr/academy/concepts/coverage-and-freshness/)이 아닙니다 — [서비스 상태](https://achivx.kr/academy/api/service-status-and-attestations/)에서 다룹니다. *스냅샷*의 최신성은 그 자체의 `built_at`입니다. `/v1/stats/home`의 `freshness[]` 행에는 지연을 읽은 시점인 `as_of`가 있으며, 빌드 사이에는 바뀌지 않습니다.

## 캐시

`Cache-Control: public, max-age=5`. 전송이 인덱싱되기를 기다릴 때는 5초 간격으로 폴링하십시오. 더 빠르면 같은 `as_of`가 돌아옵니다.

## Stablecoin scanner ACHIVX에서

- 현재 이더리움의 최신성: [/v1/sync/status?chain=1](https://stablescan.achivx.com/v1/sync/status?chain=1). `freshness_seconds`만 의미가 있는 솔라나: [?chain=-1](https://stablescan.achivx.com/v1/sync/status?chain=-1).
- [첫 페이지](https://achivx.kr/academy/guides/dashboard/)의 상태 줄에 표시되는 같은 지연 — *indexing lag: ethereum 4 min …*(인덱싱 지연: 이더리움 4분 …): [첫 페이지](https://stablescan.achivx.com/).

## 출처

- [REST 인터페이스의 OpenAPI 3.1 명세(API 1.4.0)](https://stablescan.achivx.com/openapi.json)
- [에이전트 매뉴얼 — agents.md(버전 2026-10-05)](https://stablescan.achivx.com/agents.md)
- [GET /v1/sync/status?chain=1(2026-10-24 조회)](https://stablescan.achivx.com/v1/sync/status?chain=1)

## 더 알아보기

- [get-sync-status는 무엇을 반환합니까?](https://achivx.kr/academy/for-agents/get-sync-status/)
- [집계 범위와 최신성](https://achivx.kr/academy/concepts/coverage-and-freshness/)

## 관련 질문

- [해시로 거래를 찾으려면 어떻게 합니까: /v1/verify 또는 /v1/transfers?tx=?](https://achivx.kr/academy/api/find-a-transaction/)
- [서비스, OFAC 데이터셋, 응답의 서명은 어떻게 모니터링합니까?](https://achivx.kr/academy/api/service-status-and-attestations/)
- [정산 피드를 읽고 주소, 토큰, 블록으로 필터링하려면 어떻게 합니까?](https://achivx.kr/academy/api/settlement-feed/)

전송과 거래 · GET /v1/sync/status · 2026-10-24 작성, openapi.json, agents.md 및 당일 실제 호출 기반. 구조는 인용한 것이며, 수치는 날짜 기준이고 인덱스에 따라 바뀝니다.

---

출처: https://achivx.kr/academy/api/sync-status/ · 영어 원문: https://achivx.com/academy/api/sync-status.html
