Foreshock
EN 订阅

前震速报

已执行的冻结,以及重算每一条所需的全部信息

一份免费公开的记录,只收录已经生效的稳定币执法动作。每一条都附上执行它的那笔交易、计算时所用的口径版本,以及你能在自己节点上复现的摘要。公报只发已执行的动作;尚未执行的动作永远不会出现在这里,任何延迟都不会。

已发布条目
1
口径版本
端点 v1.0 · 震级 v1.0
获取方式
免费 · 无需账号
  1. FS-2026-0001 Tron 上的一次 USDT 拉黑执行,震级按 null 发布 M null 9,705,239.643337 USDT 2026-09-08

前置条件

第一条条目之前必须先存在什么

口径冻结到 v1.0
测量口径达到 v1.0 并停止变动。各部分分开标版本,端点定义与震级现在都已冻结在 v1.0。内容 schema 仍会拒绝任何引用候选(未冻结)版本的条目,因此这条前置条件依然由构建执行、不靠编辑记得——用未冻结口径算出的数字与下一个不可比,那正是这个项目想解决的问题。
验证器发布到可锁定的 tag
开源验证器发布到一个你能锁定并运行的 tag。复现某条条目的程序公开之前,那条条目不发布——这个顺序是刻意的,也不可颠倒。
一次执行达到终局并被独立重算
一次执法动作在其所在链声明的终局规则下达到终局,且它的重算结果在两个独立运营的节点上一致。一个节点上一致是结果,两个节点上一致才是测量。

发布政策

是约束,不是承诺

承诺是我们可以悄悄不再遵守的东西。下面每一条都被落实在编辑自觉之外的地方——内容 schema 里、构建里,或者数据本身的形状里。

只发已执行,由构建强制
一条条目只能描述已经在链上生效的动作。内容 schema 对阶段字段只接受一个取值,因此处于其他状态的条目在构建期就被拒绝,而不是等着某个人复核时发现。
尚未执行的事不做延迟发布
尚未执行的动作永远不在这里发布——延迟十分钟不行,延迟十天也不行。延迟不是缓解措施,它只是同一次发布加了一个计时器。动作一旦执行,就没有什么可逃的了,这正是回溯的这一侧可以公开、而另一侧不能公开的全部理由。
每条条目自带口径版本
条目会写明自己是在哪个口径版本下算出来的。改口径永远不会重写已发布的条目;重算后的数字作为一条新条目发布,并引用旧的那条。
更正是发布,不是删除
条目错了就原地更正为一个新修订,写明改了什么、为什么改,被取代的文本仍然可读。撤稿本身也是一条记录。没有任何东西会悄悄消失——会悄悄消失的记录不是记录。
24 小时冷却期,从我方复算时点起算
一条条目在我方完成复算之后至少 24 小时才发布——不是动作执行后 24 小时。计时从复算完成的那一刻开始,让口径、摘要与复核在被固定进记录之前有一段固定的沉淀期。schema 强制 recomputed_at 与 published 之间的间隔,处于冷却期内的条目会让构建失败。

条目格式

一条已发布条目携带的全部字段

这是完整字段集,不是它的摘要。这张表就是内容 schema:一个字段不出现在这里就不可能出现在条目里,而缺少必填字段的条目会让构建失败。

字段 类型 含义
entry FS-YYYY-NNNN 条目编号。稳定、不重用,同一记录的两种语言版本使用同一个编号。
lang en | zh 本文件是哪个语言版本。两个版本描述同一事件,携带同样的数字。
title string 一句话说明生效了什么。仅作描述——公报不评价一次动作是否正当。
stage EXECUTED 唯一允许的取值。不存在表示其他状态的字段,因此也就没有可以设错的地方。
executed_at date-time 目标此后无法再转移该资产的那笔交易的区块时间戳。这是链上时间,不是我们的观测时间。
initiated_at date-time | null verification.precursor_tx_ref 那笔交易所在区块的时间戳——同一条链上、指向同一目标的最早前置交易。它不是我们的观测时间:在任意节点上取回那笔交易、读它所在区块的时间,就得到这个字段。条目不带前置引用时该字段为 null,此时两者一同缺席:schema 拒收没有引用撑着的 initiated_at,也就不发布间隔。null 按 null 发布,既不省略,也不当作零。
interval derived 派生字段,不入库:executed_at 减 initiated_at,取整到分钟。仅在两端都存在时给出。两端都是本条目所指名交易的区块时间戳,这个减法你自己就能重做,我们自己的时延不进入这个数字。
magnitude number 0–10 | null 被冻结量占该资产自身链上供应量的对数刻度——是份额刻度,不是绝对规模。一位小数,落在 0–10 区间;测不到时为 null(非 EVM 链,或异常读取),绝不 clamp。因为它是「一条链上一个合约」的份额,取值受冻结机制粒度影响——按账户拆分的机制会把一次动作拆成好几条较低的记录。请连同旁边的绝对量一起看。已冻结 v1.0,定义见方法论页。
immobilised { units, decimals } | null 被冻结的绝对数量,以 base units 加该资产的 decimals 表示——它就是震级所占份额的那个分子,也是份额刻度给不出的「有多少」。与震级并列展示。若该链的标准节点只提供最新态,这个数量就不是在执行区块读出的,而是由该资产合约自身的转账日志(历史可查)重算出来的;验证器会打印它重算出的数值,以及不得不重算的原因。两种读法都拿不到时记为 null。
chain string 该动作执行所在的结算层。
asset string 被冻结的资产。震级是被冻结量占该资产自身链上供应量的份额,两者都读自链上状态,因此核对它不需要任何价格来源。
defs_version { endpoints, magnitude } 条目计算所用的定义版本,端点与震级分开标记。schema 会拒绝引用候选(未冻结)版本的条目,因此不会有任何东西在尚未冻结的定义下发布。
verification.tx_ref string 执行交易的链上引用。它是条目里其他一切的锚点;只要你能取到它,就能不依赖我们把整条条目重建出来。
verification.precursor_tx_ref string | absent 前置交易的链上引用,与 tx_ref 是同一种引用形态。initiated_at 能被核对、间隔能够发布,靠的就是它:这笔交易所在区块的时间戳即 initiated_at,两个区块时间戳之差即间隔。验证器会核对它确实在执行交易之前的区块里,并且带着同一个目标。条目不发布发起端时,该字段整个缺席。
verification.verifier tag 能复现本条目的验证器发布 tag。该 tag 在后续版本发布后仍可运行,旧条目因而始终可核。
verification.digest sha256 验证器对本条目输出的摘要。逐字节比对。不一致意味着条目是错的,而报告不一致正是这个字段的用途。
sources[] { label, url } 条目中每一项外部说法的标签与链接,取用日期写在标签里。没有来源的条目建不出来。
recomputed_at date-time 我方完成复算的那一刻(与区块无关)。24 小时冷却期从这里起算,而不是从 executed_at。schema 要求它不早于 executed_at,且比 published 早至少 24 小时。
published date 条目进入公报的时点。与 executed_at 不同,且比 recomputed_at 晚至少 24 小时——条目先等终局,再等冷却期。
reviewed_by enum 哪几个复核台放行了这条条目,按角色记录。任何条目上都不会出现个人姓名,这是设计如此。
示例 非真实数据
entry:        FS-0000-0000
lang:         en
title:        "<title>"
stage:        EXECUTED
executed_at:  0000-00-00T00:00:00Z
initiated_at: null
magnitude:    0.0            # null when unmeasurable (non-EVM / anomaly)
immobilised:
  units:      "0"
  decimals:   0
chain:        "<chain>"
asset:        "<asset>"
defs_version:
  endpoints:  "1.0"
  magnitude:  "1.0"
verification:
  tx_ref:     "0xdddd…dddd"
  precursor_tx_ref: "0xdddd…dddd"   # absent when initiated_at is null
  verifier:   "v0.0.0"
  digest:     "sha256:dddd…dddd"
sources:
  - label:    "<label> (retrieved 0000-00-00)"
    url:      "https://example.org/"
recomputed_at: 0000-00-00T00:00:00Z
published:    0000-00-00
reviewed_by:  editorial+disclosure

验证

任何一个数字,你都不需要相信我们

每一条已发布条目都是关于公开链上状态的一个断言,因此每一条都能被任何拥有节点和口径的人核对。下面的流程就是全部。它不需要我们发的任何凭证,我们自己的服务宕机时它照样跑得通。

  1. 01 从条目里取出 tx_ref,用所述链的任意全节点或公开浏览器取回那笔交易。这一步没有任何东西来自我们。
  2. 02 按方法论页为该链声明的终局规则确认这笔交易已终局,然后读出它的区块时间戳。那就是 executed_at。
  3. 03 按冻结类型读出 U 与 T:就地冻结型取执行区块末该目标的余额与总供应量;销毁 / 回收型取该笔交易事件日志里的销毁金额与前一区块末的总供应量。若该链的标准节点只提供最新态,这两个值在那个区块上都读不出来:改按方法论页所述,用该合约的转账日志把 U 重算出来,并预期 T 连同震级仍为 null。把手上的 U 与 immobilised 字段比对,对 U / T 套用已公开的震级函数,取一位小数,与 magnitude 字段比对。对于 magnitude 为 null 的条目,改为核对其所述的盲区原因。
  4. 04 若条目带有 precursor_tx_ref,同样取回那笔交易,核对它确实在执行交易之前的区块里、并且带着同一个目标,再取它所在区块的时间戳:那就是 initiated_at,executed_at 减去它就是间隔。若没有 precursor_tx_ref,initiated_at 即为 null,本次事件不存在间隔,也就不发布间隔。
  5. 05 在条目声明的 tag 上运行验证器,指向你自己的节点。它读取条目与公开链上状态,输出一个摘要。
  6. 06 把这个摘要与 digest 字段比对。要么逐字节相等,要么条目是错的,没有部分通过。
  7. 07 对不上就告诉我们。收到的不一致会被公开答复;若条目确实错了,就更正为一个写明改动内容的新修订。

阅读完整口径

边界

公报不会携带什么——写满之后也一样

任何按发行方拆分的时间数字
间隔跨发行方、跨链聚合。按发行方拆分的间隔表不是研究发现,而是一张作业地图,而最有能力那样使用它的人也一定会那样读它。
覆盖表或支持的发行方清单
哪些执法面被观测、观测得多好,不公开。这样一张表里,空格子携带的信息比填满的格子更多,而且是携带给不该拿到它的人。
被引用为典型值的提前量
任何间隔都不会被表述为典型值、预期值或合同值。存在多少间隔,是发行方治理结构的副产品,发行方随时可以把它降到零,而且不必通知任何人——包括我们。
署名
条目以公司名义发布,仅此而已。不存在一个需要你衡量其信誉的作者;你要核对的是验证区块。
排行、名录或批量导出
公报是已执行动作的记录,不是当事方的名单。条目按时间排列,也不提供任何能把它们变成某人数据集的导出。

前震速报

记录是公开的,只是没人在读。

每一次已执行的冻结、它的震级,以及当时的间隔究竟有多长——跨发行方、跨链。免费,无需账号,一键退订。如果你运营 OTC 台或金库并需要机构级接入,选择类型,我们会单独对接。

公报免费。机构级接入单独开通。