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

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

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

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

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

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

**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`(같은 대상에 대한 이후의 [제안](https://achivx.kr/academy/guides/issuer-freezes/)이 이를 대체함), 또는 `stale`입니다. **`required` 중 `confirmations`** — 이더리움의 [멀티시그](https://achivx.kr/academy/reference/glossary/#g-multisig)는 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*)입니다. [대기 중인 제안](https://achivx.kr/academy/reference/glossary/#g-pending-proposal)을 공개할지 여부 자체가 배포별 설정이며, 응답의 `note`가 어느 쪽인지 알려 줍니다. 이 [배포](https://achivx.kr/academy/reference/glossary/#g-deployment)는 그것들을 가려서 나열합니다. 따라서 주소 개요의 `freeze_proposals: []`는 *공개된 제안 없음*이지, 결코 *대기 중인 것 없음*이 아닙니다.

## 필터

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

## 제안은 무엇의 증거인가

[제안](https://achivx.kr/academy/guides/issuer-freezes/)은 [확정성](https://achivx.kr/academy/reference/glossary/#g-finality) 이전에 체인의 헤드에서 읽히며, 대기 중인 제안은 실패하거나 철회될 수 있습니다. 기록은 실행될 때 토큰 컨트랙트가 발생시키는 이벤트이며, 주소 개요의 `freeze[].status`를 바꾸는 것은 기록뿐입니다. 다른 발행사에는 제안이 아예 없습니다. [서클(Circle)](https://achivx.kr/academy/issuers/circle/)의 USDC와 [팍소스(Paxos)](https://achivx.kr/academy/issuers/paxos/)의 PYUSD는 일반 계정에서 [블랙리스트](https://achivx.kr/academy/reference/glossary/#g-blacklist)에 올리며, [동결](https://achivx.kr/academy/how-it-works/how-does-a-freeze-happen/)은 실행되어야만 보입니다. 각 스테이블코인에 어떤 서명자가 있는지는 [동결 권한](https://achivx.kr/academy/api/freeze-powers/)에 있습니다.

## Stablecoin scanner ACHIVX에서

- 목록: [/v1/freezes/proposals?chain=1&limit=10](https://stablescan.achivx.com/v1/freezes/proposals?chain=1&limit=10); 트론에서 실행된 것: [?chain=tron&status=executed](https://stablescan.achivx.com/v1/freezes/proposals?chain=tron&status=executed&limit=10).
- 페이지의 같은 행 — *pending now · proposals · 7d · median window · escapes · moved out*: [/freezes/ethereum](https://stablescan.achivx.com/freezes/ethereum).

## 출처

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

## 더 알아보기

- [가이드: 발행사 동결](https://achivx.kr/academy/guides/issuer-freezes/)
- [테더가 내 USDT를 동결할 수 있습니까?](https://achivx.kr/academy/how-it-works/can-tether-freeze-my-usdt/)
- [레슨: 알림](https://achivx.kr/academy/courses/freezes-and-alerts/freezes-and-alerts-04-alerts/)

## 관련 질문

- [발행사의 동결, 동결 해제, 소각은 어떻게 조회합니까?](https://achivx.kr/academy/api/freeze-acts-ledger/)
- [네트워크에서 어떤 스테이블코인을 누가 동결할 수 있습니까?](https://achivx.kr/academy/api/freeze-powers/)
- [주소가 제재 대상인지, 동결되었는지, 알려진 서비스인지 어떻게 확인합니까?](https://achivx.kr/academy/api/address-overview/)

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

---

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