# 발행사의 동결, 동결 해제, 소각은 어떻게 조회합니까?

발행사 동결 · 토큰 컨트랙트가 발생시킨 실행된 기록을 최신순으로, 네트워크·토큰·종류·대상으로 필터링 — 그리고 거래 하나의 기록

*API 가이드 · 8분 · 중급 · 개발자 · GET /v1/freezes/acts · GET /v1/freezes?tx=*

`GET /v1/freezes/acts`는 원장입니다. 인덱싱된 네트워크에서 발행사 컨트랙트가 발생시킨 모든 `freeze`, `unfreeze`, `seize` 이벤트를 최신순으로, 한 페이지에 50개(1–200)씩 보여 주며, 각 행에는 `subject`, `token`, `action`, `raw_event`, `tx_hash`, `block_time`, `finality`가 있고 소각에는 `amount_usd6`가 있습니다. `chain`, `token`, `kind`, `address`로 필터링합니다. `chain`이 없으면 모든 네트워크를 나열하고 그렇다고 밝힙니다. `GET /v1/freezes?tx=&chain=`은 거래 하나가 발생시킨 기록을 답합니다. 피드가 아니라 조회입니다. `address`로 필터링한 페이지는 기록의 목록이지, 결코 판정이 아닙니다.

## 원장

```
curl -s 'https://stablescan.achivx.com/v1/freezes/acts?chain=1&limit=3'
```

2026-10-24의 이더리움(Ethereum)입니다. 전날의 USDT [동결](https://achivx.kr/academy/how-it-works/how-does-a-freeze-happen/) 세 건입니다.

```
{
  "items": [
    {"chain_id": 1, "chain_slug": "ethereum", "token": "USDT",
     "subject": "0xb84e20794fd31fcb93e4b621440fbc5af5ef8f60", "action": "freeze", "raw_event": "AddedBlackList",
     "tx_hash": "0x00c3cea47aac0a3c4fccbac87eb38b628d17ce0c2c3d13d57dfeabebe1f61410",
     "block_time": "2026-10-23T16:32:47Z", "log_index": 26, "block_number": 26256543,
     "token_address": "0xdac17f958d2ee523a2206206994597c13d831ec7", "finality": "final", "variant": "native"},
    {"chain_id": 1, "token": "USDT", "subject": "0x9226682de1ae52f8ab5bd6f7b827ddf07ed90a80", "action": "freeze", "raw_event": "AddedBlackList",
     "tx_hash": "0x2526469b…be26", "block_time": "2026-10-23T15:19:35Z", "block_number": 26256179, "finality": "final", "…": "…"},
    {"…": "…"}
  ],
  "next_cursor": "ZmExOjE3OTI3MDc0NTUwMDAwMDA6MjYyNTEwOTA6MTA6MTpjZjg0…",
  "chain_id": 1,
  "chain_slug": "ethereum",
  "chain_source": "explicit",
  "indexed": true,
  "freeze_log_backfilled": true,
  "limit": 3,
  "note": "One network: Ethereum. Executed issuer acts — the freeze, unfreeze and seize events the token contracts emitted — newest first; follow next_cursor for older ones. A page without it ends at the oldest act this scanner holds for these filters …"
}
```

그리고 모든 네트워크의 [소각](https://achivx.kr/academy/how-it-works/what-is-a-seizure/)입니다. `seize`에 있는 `amount_usd6`와, 범위를 밝히는 응답에 주목하십시오.

```
{
  "items": [
    {"chain_id": 728126428, "chain_slug": "tron", "token": "USDT", "subject": "THvX6FFfKK6ZsVB4ArtYTFR4SSMU2S11Gu",
     "action": "seize", "raw_event": "DestroyedBlackFunds", "amount_usd6": 480325649852,
     "tx_hash": "22cb6034…c583", "block_time": "2026-10-23T16:51:18Z", "block_number": 87367039, "finality": "final"},
    {"…": "…"}
  ],
  "chain_id": null,
  "chain_source": "all_networks",
  "kind": "seize",
  "limit": 3,
  "note": "No chain was given, so this page lists every network whose issuer acts this scanner indexes (GET /v1/freezes/networks, indexed: true) …"
}
```

[첫 요청](https://achivx.kr/academy/api/first-request/)의 세 가지 헬퍼로 같은 호출을 하면 다음과 같습니다.

**Python**

```
import time
seen = set()
while True:                                              # a poller: new acts since the last pass
    page = scan("/v1/freezes/acts", limit=100)           # every network; add chain= or token= to narrow
    for act in page["items"]:
        key = (act["tx_hash"], act["log_index"])
        if key in seen: continue
        seen.add(key)
        usd = act.get("amount_usd6", 0) / 1e6
        print(act["block_time"], act["chain_slug"], act["token"], act["action"], act["subject"], f"${usd:,.0f}" if usd else "")
    time.sleep(30)                                       # the ledger's max-age
```

**Go**

```
type act struct {
	ChainSlug  string    `json:"chain_slug"`
	Token      string    `json:"token"`
	Subject    string    `json:"subject"`
	Action     string    `json:"action"` // freeze | unfreeze | seize
	RawEvent   string    `json:"raw_event"`
	AmountUSD6 int64     `json:"amount_usd6"` // seize only
	TxHash     string    `json:"tx_hash"`
	LogIndex   int       `json:"log_index"`
	BlockTime  time.Time `json:"block_time"`
	Finality   string    `json:"finality"`
}
var page struct {
	Items      []act  `json:"items"`
	NextCursor string `json:"next_cursor"`
}
if err := get("/v1/freezes/acts", url.Values{"chain": {"tron"}, "token": {"USDT"}, "kind": {"seize"}, "limit": {"100"}}, &page); err != nil {
	return err
}
```

**TypeScript**

```
type Act = { chain_id: number; chain_slug: string; token: string; subject: string; action: "freeze" | "unfreeze" | "seize"; raw_event: string; amount_usd6?: number; tx_hash: string; log_index: number; block_number: number; block_time: string; finality: "final" | "pending"; variant: string };
type ActsPage = { items: Act[]; next_cursor?: string; chain_id: number | null; chain_source: "explicit" | "all_networks"; indexed?: boolean; freeze_log_backfilled?: boolean };
const page = await scan<ActsPage>("/v1/freezes/acts", { address: addr, limit: 50 });   // a T… or Solana address selects its network without chain=
```

## 필드별 설명

**`action`과 `raw_event`** — 스캐너의 용어와 컨트랙트의 용어로 나타낸 기록입니다. `freeze`는 `AddedBlackList`([테더(Tether)](https://achivx.kr/academy/issuers/tether/)) 또는 `Blacklisted`([서클(Circle)](https://achivx.kr/academy/issuers/circle/), 팍소스(Paxos))이고, `unfreeze`는 `RemovedBlackList` / `UnBlacklisted`, `seize`는 `DestroyedBlackFunds`입니다. **`amount_usd6`**는 [소각](https://achivx.kr/academy/how-it-works/what-is-a-seizure/)에만 있으며, 파기된 잔액입니다. **`subject`**는 기록이 지목한 주소입니다. **`finality`**는 블록이 네트워크의 확정된 헤드 뒤로 넘어가면 `final`이 됩니다. 원장은 주소 개요보다 기록을 더 일찍, `finality: "pending"`과 함께 보여 줍니다.

**`chain_id`, `chain_source`, `indexed`, `freeze_log_backfilled`** — 페이지 자체의 범위입니다. `chain`이 있으면 해당 네트워크이며, `indexed: true`(그 네트워크의 [발행사 기록](https://achivx.kr/academy/guides/issuer-freezes/)이 로그에 있음)와 `freeze_log_backfilled`(토큰의 첫 블록까지 거슬러 읽음)가 함께 옵니다. 없으면 기록이 인덱싱되는 모든 네트워크이며, `chain_id: null`, `chain_source: "all_networks"`입니다.

## 필터

| 매개변수 | 값 | 참고 |
|---|---|---|
| `chain` | ID, 슬러그 또는 CAIP-2 | 없으면 모든 네트워크; 있는데 비어 있으면 `400 invalid_chain`(*chain is empty: name a network …, or leave the parameter off*) |
| `token` | 정확한 [레지스트리](https://achivx.kr/academy/reference/glossary/#g-registry) 심볼 또는 컨트랙트 주소 | `USDT`는 `USDT0`이 아닙니다. `USDT0`에는 별도의 행이 있습니다 |
| `kind` | `freeze`, `unfreeze`, `seize` | 행의 `action` |
| `address` | 대상 | `chain` 없이 `T…` 또는 솔라나(Solana) 주소를 주면 해당 네트워크가 선택됨 |
| `limit` | 1–200, 기본값 50 |  |
| `cursor` | 이전 페이지의 `next_cursor` | 같은 필터와 함께 |

그 밖의 매개변수는 `400 unknown_param`입니다. 2026-10-24에 `?foo=1`은 *accepted filters: chain, token, kind, address, limit, cursor (the act’s kind is spelled kind: freeze, unfreeze or seize — the rows’ action field; the address the act names is spelled address …)*라고 답했습니다.

## 거래 하나의 기록

```
curl -s 'https://stablescan.achivx.com/v1/freezes?chain=1&tx=0x00c3cea47aac0a3c4fccbac87eb38b628d17ce0c2c3d13d57dfeabebe1f61410'
```

```
{
  "chain_id": 1, "chain_slug": "ethereum", "chain_source": "explicit",
  "tx_hash": "0x00c3cea47aac0a3c4fccbac87eb38b628d17ce0c2c3d13d57dfeabebe1f61410",
  "items": [
    {"token": "USDT", "subject": "0xb84e20794fd31fcb93e4b621440fbc5af5ef8f60", "action": "freeze", "raw_event": "AddedBlackList",
     "block_time": "2026-10-23T16:32:47Z", "log_index": 26, "block_number": 26256543, "token_address": "0xdac17f95…1ec7", "finality": "final"}
  ]
}
```

한 시간 동안 캐시되는 조회입니다. `chain`이 없으면 베이스(Base)에서만 찾고 `chain_source`가 그렇다고 밝힙니다. [멀티시그](https://achivx.kr/academy/reference/glossary/#g-multisig) *제출*은 기록을 발생시키지 않습니다. [테더](https://achivx.kr/academy/issuers/tether/) 제안인 해시에 빈 응답이 오는 것은 정상이며, [`/v1/freezes/proposals?tx=`](https://achivx.kr/academy/api/freeze-proposals/)에서 찾아보십시오. `/v1/verify?tx=`는 이 조회와 전송 조회를 함께 실행합니다.

## 목록은 판정이 아닙니다

`/v1/freezes/acts?address=`는 주소를 지목한 기록 — [동결 해제](https://achivx.kr/academy/reference/glossary/#g-freeze-unfreeze-seize)까지 포함한 전부 — 를 답하며, 지금 주소의 상태에 대해서는 아무것도 말하지 않습니다. 상태는 [개요](https://achivx.kr/academy/api/address-overview/)의 `freeze[].status`입니다. [동결](https://achivx.kr/academy/how-it-works/how-does-a-freeze-happen/)되었다가 동결 해제된 주소는 여기서 행이 두 개이고 저기서는 `clear`입니다. *지켜볼* 때(마지막 조회 이후 무슨 일이 있었는가)는 원장을, *결정할* 때는 개요를 쓰십시오.

## Stablecoin scanner ACHIVX에서

- 모든 네트워크의 원장: [/v1/freezes/acts?limit=10](https://stablescan.achivx.com/v1/freezes/acts?limit=10); 트론(Tron)의 소각: [?chain=tron&kind=seize](https://stablescan.achivx.com/v1/freezes/acts?chain=tron&kind=seize&limit=10).
- 페이지의 *Acts*(기록) 아래에 있는 같은 원장: [/freezes/ethereum](https://stablescan.achivx.com/freezes/ethereum); 기록 하나의 페이지: [0xb84e…8f60을 동결한 거래](https://stablescan.achivx.com/ethereum/tx/0x00c3cea47aac0a3c4fccbac87eb38b628d17ce0c2c3d13d57dfeabebe1f61410).

## 출처

- [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/freezes/acts?chain=1&limit=3 (2026-10-24 조회)](https://stablescan.achivx.com/v1/freezes/acts?chain=1&limit=3)

## 더 알아보기

- [가이드: 발행사 동결](https://achivx.kr/academy/guides/issuer-freezes/)
- [동결은 어떻게 이루어집니까?](https://achivx.kr/academy/how-it-works/how-does-a-freeze-happen/)
- [레슨: 네트워크 동결 페이지](https://achivx.kr/academy/courses/freezes-and-alerts/freezes-and-alerts-02-a-network-freeze-page/)

## 관련 질문

- [동결이 실행되기 전에 미리 보려면 어떻게 합니까: 발행사 멀티시그의 제안](https://achivx.kr/academy/api/freeze-proposals/)
- [네트워크에서 어떤 스테이블코인을 누가 동결할 수 있습니까?](https://achivx.kr/academy/api/freeze-powers/)
- [레시피: 동결 원장을 폴링하고 새 기록에 알림 보내기](https://achivx.kr/academy/api/recipe-follow-freezes/)

발행사 동결 · GET /v1/freezes/acts · GET /v1/freezes?tx= · 2026-10-24 작성, openapi.json, agents.md 및 당일 실제 호출 기준. 응답 형태는 인용이며, 수치는 날짜 기준이고 인덱스에 따라 달라집니다.

---

출처: https://achivx.kr/academy/api/freeze-acts-ledger/ · 영어 원문: https://achivx.com/academy/api/freeze-acts-ledger.html
