동결이 실행되기 전에 미리 보려면 어떻게 합니까: 발행사 멀티시그의 제안

발행사 동결 · 테더의 기록은 실행되기 몇 분 전에 소유자 멀티시그에 제안됩니다 — 목록, 가려진 대기 행, 전체가 공개된 실행 행

  • API 가이드
  • 7분
  • 중급
  • 개발자
  • GET /v1/freezes/proposals

ACHIVX Academy 원문 (영어) ↗

GET /v1/freezes/proposals는 발행사의 소유자 멀티시그 — 이더리움(Ethereum)과 트론(Tron)의 USDT, Gnosis MultiSigWallet — 에 제안된 기록을 최신순으로 나열합니다. status(pending, executed, failed, revoked, superseded, stale), required 중 confirmations, submitted_tx, 실행된 후에는 executed_tx, 둘 사이의 window_seconds, 그리고 대상의 balance_at_submission, balance_at_execution, moved_out이 있습니다. 대기 중인 제안은 주소, 거래, 금액 없이 나열되며(redacted[]가 어떤 필드인지 알려 줌), 실행되면 전체가 표시됩니다. 이더리움의 중앙값 간격은 44분, 트론은 25분입니다.

요청

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

2026-10-24의 이더리움입니다. 실행된 것 하나, 가려진 대기 중인 것 하나입니다.

{
  "items": [
    {"chain_id": 1, "chain_slug": "ethereum", "multisig": "0xc6cde7c39eb2f0f0095f41570af89efc2c1ea828", "proposal_id": "5786",
     "token": "USDT", "decimals": 6, "address": "0xb84e20794fd31fcb93e4b621440fbc5af5ef8f60",
     "action": "freeze", "selector": "addBlackList", "status": "executed", "confirmations": 3, "required": 3,
     "submitted_block": 26256522, "submitted_tx": "0x08e29a2b…68b3", "submitted_at": "2026-10-23T16:28:35Z",
     "executed_block": 26256543, "executed_tx": "0x00c3cea4…1410", "executed_at": "2026-10-23T16:32:47Z",
     "window_seconds": 252,
     "balance_at_submission": "2240774550006", "balance_at_execution": "2240774550006", "moved_out": "0"},
    {"chain_id": 1, "chain_slug": "ethereum", "multisig": "0xc6cde7c3…a828", "token": "USDT", "decimals": 6,
     "action": "freeze", "selector": "addBlackList", "status": "pending", "confirmations": 1, "required": 3,
     "submitted_at": "2026-10-23T15:43:00Z",
     "redacted": [
       {"field": "address", "method": "removal", "reason": "pending multisig proposal"},
       {"field": "submitted_tx", "method": "removal", "reason": "pending multisig proposal"},
       {"…": "proposal_id, submitted_block, balance_at_submission"}
     ]},
    {"…": "…"}
  ],
  "next_cursor": "II-dxS-Q58B-MyQIqnLlFPOZYxBMY5TdUp2LS_ypnk39fKrLLA1MlJr0M3r8…",
  "total": 289,
  "note": "Proposals are read from the issuer's owner multisig (USDT on Ethereum and on Tron: Gnosis MultiSigWallet). Pending proposals are listed without the address, the transaction or the amount; they are shown in full once they execute …"
}

실행된 행은 원장 페이지가 기록으로 보여 주는 것입니다. 제안 5786은 16:28:35에 제출되어 252초 후 0x00c3…1410으로 실행되었습니다. 대상은 두 시점 모두 2,240,774.55 USDT를 보유했고 아무것도 내보내지 않았습니다.

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

Python

props = scan("/v1/freezes/proposals", chain=1, status="executed", limit=100)
windows = sorted(p["window_seconds"] for p in props["items"] if p.get("window_seconds"))
escaped = [p for p in props["items"] if int(p.get("moved_out", "0")) > 0]
print("median window", windows[len(windows) // 2], "s;", len(escaped), "subjects moved funds before execution")

Go

type proposal struct {
	ProposalID          string `json:"proposal_id"`
	Address             string `json:"address"`
	Action              string `json:"action"`
	Status              string `json:"status"`
	Confirmations       int    `json:"confirmations"`
	Required            int    `json:"required"`
	SubmittedAt         string `json:"submitted_at"`
	ExecutedTx          string `json:"executed_tx"`
	WindowSeconds       int    `json:"window_seconds"`
	BalanceAtSubmission string `json:"balance_at_submission"`
	MovedOut            string `json:"moved_out"`
	Redacted            []struct{ Field string `json:"field"` } `json:"redacted"`
}
var page struct {
	Items []proposal `json:"items"`
	Total *int       `json:"total"`
}
if err := get("/v1/freezes/proposals", url.Values{"chain": {"1"}, "status": {"pending"}}, &page); err != nil {
	return err
}
for _, p := range page.Items {
	fmt.Println(p.Status, p.Confirmations, "of", p.Required, "since", p.SubmittedAt, "redacted fields:", len(p.Redacted))
}

TypeScript

type Proposal = {
  chain_slug: string; multisig: string; proposal_id?: string; token: string; decimals: number; address?: string;
  action: "freeze" | "unfreeze" | "seize"; selector: string;
  status: "pending" | "executed" | "failed" | "revoked" | "superseded" | "stale";
  confirmations: number; required: number; submitted_at: string; submitted_tx?: string;
  executed_at?: string; executed_tx?: string; window_seconds?: number;
  balance_at_submission?: string; balance_at_execution?: string; moved_out?: string;
  redacted?: { field: string; method: string; reason: string }[];
};
const page = await scan<{ items: Proposal[]; next_cursor?: string; total: number | null }>("/v1/freezes/proposals", { chain: 1, limit: 100 });
const pending = page.items.filter((p) => p.status === "pending");

필드별 설명

status — pending(제출됨, 확인 부족), executed, failed(실행이 되돌려짐), revoked, superseded(같은 대상에 대한 이후의 제안이 이를 대체함), 또는 stale입니다. required 중 confirmations — 이더리움의 멀티시그는 3개, 트론은 2개가 필요합니다. selector — 제안이 호출하는 컨트랙트 함수입니다. addBlackList, removeBlackList, destroyBlackFunds.

window_seconds — 실행 시각에서 제출 시각을 뺀 값입니다. 공개 제안과 기록 사이에 대상에게 주어진 시간입니다. balance_at_submission, balance_at_execution, moved_out — 두 시점의 대상 USDT 잔액(최소 단위, 문자열)과 그 사이에 빠져나간 금액입니다. 동결 페이지의 escapes(이탈) 타일은 moved_out이 0보다 큰 제안을 셉니다.

redacted[] — 대기 중인 행에서 제거된 필드와 그 이유(pending multisig proposal)입니다. 대기 중인 제안을 공개할지 여부 자체가 배포별 설정이며, 응답의 note가 어느 쪽인지 알려 줍니다. 이 배포는 그것들을 가려서 나열합니다. 따라서 주소 개요의 freeze_proposals: []는 공개된 제안 없음이지, 결코 대기 중인 것 없음이 아닙니다.

필터

chain(없으면 모든 체인), status, limit 1–500(기본값 100; 범위 밖의 값은 거부되지 않고 100으로 읽힘 — 값을 잘라 맞추는 유일한 목록), cursor, dir(older 기본값, newer), 그리고 tx — 제출 해시 또는 실행 해시이며, 해당 거래의 제안을 하나의 완전한 응답으로 답합니다. tx와 함께 쓴 cursor는 400 invalid_cursor이며, tx와 함께 쓴 dir도 마찬가지입니다. 알 수 없는 매개변수는 400 unknown_param입니다. Cache-Control: max-age=30.

제안은 무엇의 증거인가

제안은 확정성 이전에 체인의 헤드에서 읽히며, 대기 중인 제안은 실패하거나 철회될 수 있습니다. 기록은 실행될 때 토큰 컨트랙트가 발생시키는 이벤트이며, 주소 개요의 freeze[].status를 바꾸는 것은 기록뿐입니다. 다른 발행사에는 제안이 아예 없습니다. 서클(Circle)의 USDC와 팍소스(Paxos)의 PYUSD는 일반 계정에서 블랙리스트에 올리며, 동결은 실행되어야만 보입니다. 각 스테이블코인에 어떤 서명자가 있는지는 동결 권한에 있습니다.

Stablecoin scanner ACHIVX에서

출처

더 알아보기

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

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