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

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

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

ACHIVX Academy 원문 (영어) ↗

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 동결 세 건입니다.

{
  "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 …"
}

그리고 모든 네트워크의 소각입니다. 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) …"
}

첫 요청의 세 가지 헬퍼로 같은 호출을 하면 다음과 같습니다.

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)) 또는 Blacklisted(서클(Circle), 팍소스(Paxos))이고, unfreeze는 RemovedBlackList / UnBlacklisted, seize는 DestroyedBlackFunds입니다. amount_usd6는 소각에만 있으며, 파기된 잔액입니다. subject는 기록이 지목한 주소입니다. finality는 블록이 네트워크의 확정된 헤드 뒤로 넘어가면 final이 됩니다. 원장은 주소 개요보다 기록을 더 일찍, finality: "pending"과 함께 보여 줍니다.

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

필터

매개변수값참고
chainID, 슬러그 또는 CAIP-2없으면 모든 네트워크; 있는데 비어 있으면 400 invalid_chain(chain is empty: name a network …, or leave the parameter off)
token정확한 레지스트리 심볼 또는 컨트랙트 주소USDT는 USDT0이 아닙니다. USDT0에는 별도의 행이 있습니다
kindfreeze, unfreeze, seize행의 action
address대상chain 없이 T… 또는 솔라나(Solana) 주소를 주면 해당 네트워크가 선택됨
limit1–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가 그렇다고 밝힙니다. 멀티시그 제출은 기록을 발생시키지 않습니다. 테더 제안인 해시에 빈 응답이 오는 것은 정상이며, /v1/freezes/proposals?tx=에서 찾아보십시오. /v1/verify?tx=는 이 조회와 전송 조회를 함께 실행합니다.

목록은 판정이 아닙니다

/v1/freezes/acts?address=는 주소를 지목한 기록 — 동결 해제까지 포함한 전부 — 를 답하며, 지금 주소의 상태에 대해서는 아무것도 말하지 않습니다. 상태는 개요의 freeze[].status입니다. 동결되었다가 동결 해제된 주소는 여기서 행이 두 개이고 저기서는 clear입니다. 지켜볼 때(마지막 조회 이후 무슨 일이 있었는가)는 원장을, 결정할 때는 개요를 쓰십시오.

Stablecoin scanner ACHIVX에서

출처

더 알아보기

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

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