AIP-20 passed: execution plan & numbers | AIP-20 已通过:执行计划与数据

AIP-20 passed. 63.6% voted For and 36.4% Against, with 95 wallets taking part. That’s the highest turnout of any vote since governance restarted in 2025 - massive thank you for eveyrone who took part.

A lot of you voted against - The main reasons were risk to the treasury, wanting the ETH returned to holders, and not trusting how decisions get made. The best answer we can give is to do exactly what was voted on, out in the open, and let you check every step.

So here’s how it’ll work:

We do what AIP-20 says and nothing more.
The numbers below are fixed at the close, and they’re published before anyone signs.
Every Safe transaction gets posted here for review before it’s signed.
Staking rewards stay locked until holders vote on an updated mission.
Weekly reports start a week after the liquidity goes in. I’d like someone who voted against to check them. If that’s you, reply here.

Everything below uses the actual close.

The numbers (block 26,164,402, the last block before the close)

Safe ETH: 198.8329
Stake, 30%: 59.649856 ETH, to Lido as wstETH
Treasury JUSTICE going into the liquidity position: 97,872,288
7-day volume-weighted average price, from 240 swaps in the pool: 0.036277 ETH per million JUSTICE. 115% of that is 0.041718.
4 times the treasury’s ETH per JUSTICE (198.83 ETH / 16,898,813,912 JUSTICE): 0.047064 ETH per million JUSTICE
Hard maximum buy price, the lower of the two: 0.041718 ETH per million JUSTICE, so at least 23.97 million JUSTICE per ETH
The 10 ETH covers all the ETH used: about 3.7 ETH to match the treasury’s own JUSTICE, about 3.1 ETH to buy JUSTICE over 14 days, and about 3.1 ETH to match what we buy. The exact split depends on the price on the day, so the final figures will be in the first report.

The buy order needs a temporary change to the Safe’s fallback handler. AIP-20 authorises that, and it gets set back as soon as buying ends.

What happens next

Staking: executed by 20:23 UTC on Tuesday 13 October, inside the 72 hours AIP-15 requires. The transaction will be posted here first.
Then the liquidity position, then the buy order, which runs for at least 14 days.
After six weekly reports, a separate vote can look at a second 10 ETH.

Cheers,
Gabriel

AIP-20 已通过。赞成 63.6%,反对 36.4%,共有 95 个钱包参与投票。这是 2025 年治理重启以来投票总量最高的一次,非常感谢每一位参与投票的人。

很多人投了反对票,主要理由是:担心国库资金的风险,希望把 ETH 返还给持币人,以及不信任这里的决策方式。我们能给出的最好回应,就是严格按照投票结果执行,全程公开,让大家核查每一步。

具体做法如下:

  • 只执行 AIP-20 的内容,不做任何额外操作。
  • 下列数据以投票结束时为准,并在任何人签名之前公布。
  • 每一笔 Safe 交易在签名前都会先发到这里,供大家审核。
  • 在持币人就更新后的使命投票之前,质押收益保持锁定。
  • 流动性建立一周后开始发布周报。我希望由一位投反对票的成员来核对这些报告。愿意的请在此回复。

以下所有数据均以实际投票结束时间为准。

数据(区块 26,164,402,即投票结束前的最后一个区块)

  • Safe 中的 ETH:198.8329
  • 质押 30%:59.649856 ETH,通过 Lido 质押为 wstETH
  • 投入流动性仓位的国库 JUSTICE:97,872,288
  • 7 天成交量加权平均价格(池中 240 笔交易):每百万 JUSTICE 0.036277 ETH。其 115% 为 0.041718。
  • 国库每枚 JUSTICE 对应 ETH 的 4 倍(198.83 ETH ÷ 16,898,813,912 JUSTICE):每百万 JUSTICE 0.047064 ETH
  • 买入硬性最高价格(取两者中较低者):每百万 JUSTICE 0.041718 ETH,即每 1 ETH 至少买入 2,397 万枚 JUSTICE

10 ETH 涵盖所有使用的 ETH:约 3.7 ETH 用于匹配国库自有的 JUSTICE,约 3.1 ETH 用于在 14 天内买入 JUSTICE,约 3.1 ETH 用于匹配买入的 JUSTICE。具体比例取决于当天价格,最终数据将在第一份周报中公布。

买入订单需要临时更改 Safe 的 fallback handler(回退处理合约)。AIP-20 已授权这一操作,买入结束后会立即恢复原设置。

下一步

  • 质押:在 UTC 10 月 13 日(周二)20:23 之前执行,符合 AIP-15 规定的 72 小时要求。交易会先发到这里。
  • 随后建立流动性仓位,再启动买入订单,持续至少 14 天。
  • 六份周报之后,可另行投票讨论是否追加第二批 10 ETH。

祝好,
Gabriel

Congratulations to everyone who took part, whichever way you voted. 95 wallets and the highest turnout since governance restarted is a result in itself. Thank you, Gabriel, for setting out every number before anything is signed. Looking forward to seeing it carried out.

───

祝贺每一位参与投票的人,无论投的是赞成还是反对。95 个钱包参与、2025 年治理重启以来最高的投票量,这本身就是一个成果。感谢 Gabriel 在任何签名之前就把每一个数字公开出来。期待看到它顺利执行。

Staking transaction for review.

Safe link: I’ll update once its created.

  • To: 0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0 (Lido Wrapped stETH)
  • Value: 59.649856457302133979 ETH (30% of the 198.832854857673779932 ETH in the Safe at block 26,164,402)
  • Data: empty
  • Operation: Call
  • Nonce: 51
  • Safe transaction hash: 0x8aea24029316244804b3391efa794ee77d0c83e943bc73812d8f29ad9c3e8af1

Sending ETH straight to the wstETH contract stakes it with Lido and sends wstETH back to the Safe in one step. The Safe should receive about 47.87 wstETH.

Signers will confirm on Tuesday unless someone finds a problem. If you check it, post what you find here.

Cheers,
Gabriel

Safe 链接:

接收地址:0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0(Lido Wrapped stETH)

  • 金额:59.649856457302133979 ETH(区块 26,164,402 时 Safe 中 198.832854857673779932 ETH 的 30%)
  • 数据:空
  • 操作类型:Call
  • Nonce:51
  • Safe 交易哈希:0x8aea24029316244804b3391efa794ee77d0c83e943bc73812d8f29ad9c3e8af1

将 ETH 直接发送到 wstETH 合约,会一步完成 Lido 质押,并把 wstETH 返还给 Safe。Safe 预计将收到约 47.87 wstETH。

如无人发现问题,多签人将于周二确认。如果你核查了这笔交易,请在此回复结果。

祝好,
Gabriel

Checked: the Safe transaction hash matches these parameters, both computed independently and from the Safe’s own getTransactionHash, and nonce 51 is the Safe’s next nonce.

已核对:交易哈希与上述参数一致(独立计算,并由 Safe 合约自身的 getTransactionHash 验证),nonce 51 正是 Safe 的下一个 nonce。

The easiest and safest way to stake the Eth using Lido is just to use the Lido app within Safe.

I can start it if everyone agrees,

First step is to stake it, we will receive the stETH

Second step is to wrap it to wstETH.

Ok, I have initiated a transaction within the Lido app within safe to stake some of the Eth.

This will only give us stETH, so after this completes we will need to wrap it to wstETH.

Damn it, you took 580 ETH, not enough to take out 10 ETH. The person who initiated the proposal to deceive the community was you. The person who voted in the end was you who monopolized the market, stole money from the community, and thought everyone would forget. Then you made some small moves and sent you to jail

该死,你拿走了 580 枚 ETH,却连拿出 10 枚 ETH 都不肯。是你发起提案欺骗社区,最后也是你一手操控投票、垄断市场、侵吞社区资金,还以为所有人都会淡忘。后续你那些小动作,迟早会把自己送进监狱。

这是个伟大的进步!感觉所有社区人的努力,请问阿桑奇先生已经解救出来,也自由了!我们社区捐款救人的使命也完成了,几时德国基金能归还剩下的eth呢!我们社区目前也急需这些eth 来建设!请问如何才能向德国基金讨回

Congratulations on the successful completion of the vote! Although there were disagreements, it better reflects the democratic nature of the community. Everyone should abide by the community’s voted resolution; this is the principle and fairness of DAO. I hope the multi-signature implementers can reach a consensus as soon as possible and implement the voted resolution. Thank you to everyone who contributed to this vote. This is the most actively participated vote in the past five years. Although I voted for For, I still hope that next proposals will offer more options for the community to choose from. For example, after the 10 ETH liquidity trial, the second investment could offer multiple options, such as 10, 20, 30, or 40. This would better reflect the community’s will! I once again wish our community can reach a consensus and push this stalled project forward; this is unprecedented progress!

Furthermore, our community has also seen that bz’s proposal contains many suggestions that are very useful to our DAO, such as the new mission of the DAO, the token incentive mechanism, the idea of ​​auctioning the clock NFT, and the deflationary mechanism of buying back and burning liquidity rewards. These are all good directions for discussion. We hope that the multi-signature implementers can summarize proposals that are more beneficial to the development of the community in the next proposal.

Update: we’re using Zylo’s version of the staking transaction, so the details have changed. It now goes in two steps.

Step 1, queued now (Safe link in Zylo’s post above):

  • To: 0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 (Lido stETH)
  • Call: submit, with referral 0x5afE11DBF44AB2D88162f687e01F8DD7a8A3EEEe (the Safe app’s referral tag. It moves no funds.)
  • Value: 59.649856 ETH
  • Nonce: 51
  • Safe transaction hash: 0x2c2e0a860ec6e2c64dca1895a77a5fdc58954afb1b72e7c2175b6728f1ae75b7

Step 2, straight after: wrap the stETH into wstETH (nonce 52). I’ll post it here for review before it’s signed.

The end result is the same as the original post: the stake is held as wstETH. The earlier hash in post 3 is replaced by this one. @innocent, if you’re able to check this one too, thank you.

Cheers,
Gabriel

更新:质押交易改用 Zylo 提交的版本,因此细节有所变化,分两步完成。

第一步(已提交,Safe 链接见上方 Zylo 的帖子):

  • 接收地址:0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84(Lido stETH)
  • 调用:submit,推荐地址 0x5afE11DBF44AB2D88162f687e01F8DD7a8A3EEEe(Safe 应用的推荐标记,不涉及任何资金转移)
  • 金额:59.649856 ETH
  • Nonce:51
  • Safe 交易哈希:0x2c2e0a860ec6e2c64dca1895a77a5fdc58954afb1b72e7c2175b6728f1ae75b7

第二步(紧接着进行):将 stETH 包装为 wstETH(nonce 52),签名前会先发到这里供大家审核。

最终结果与原帖相同:质押资产以 wstETH 形式持有。本帖的哈希取代第 3 楼中的旧哈希。@innocent 如方便,也请帮忙核对这一笔,谢谢。

祝好,
Gabriel

Checked this one too.

The hash matches, both computed and from the Safe’s own getTransactionHash. It’s submit() on Lido stETH, and the referral address only gets logged, no funds move to it.

Simulated from the Safe, it gives 59.649855999999999999 stETH, 1 wei under the ETH sent, which is Lido’s usual rounding.

For step 2, approve and wrap the stETH balance the Safe actually holds, not 59.649856, or the wrap will revert.

这一笔也核对过了。

哈希一致(独立计算,并由 Safe 合约自身的 getTransactionHash 验证)。

调用的是 Lido stETH 的 submit(),推荐地址只会被记录在日志中,不会有任何资金转给它。

以 Safe 身份模拟,将得到 59.649855999999999999 stETH,比投入少 1 wei,这是 Lido 正常的取整。

第二步授权和包装时,请按 Safe 实际持有的 stETH 余额填写,而不是 59.649856,否则包装会失败。

Before the liquidity goes in, here’s the baseline the weekly reports will be measured against, as AIP-20 §3.3 requires. I’m posting it now so nobody can say it was chosen after the results. DM here and I can send you the scripts used.

Everything comes from the JUSTICE/WETH 1% pool, up to 00:00 UTC on 5 October (block 26,122,440). The treasury made no trades in either window, so nothing was excluded.

One thing to know first: the pool changed completely on 17 September. The price rose about 4.6 times in a day, and the liquidity more than tripled. Before that the pool was close to empty. So the 90-day figures mostly describe the old pool. I’ll report against both, as the AIP says, but the fair comparison is the 30-day figures and the pool on 5 October.

That jump followed Julian’s post that he was back, on 17 September. Trading has been cooling since: weekly volume went from about 100 ETH to 25 and then 11.5 ETH over the following three weeks. So volume and trader numbers may keep falling during the trial for reasons that have nothing to do with it. The with-and-without comparison below is the better guide to what our position does.

The pool at 00:00 UTC on 5 October

  • Price: 0.0304 ETH per million JUSTICE
  • Cost to buy with 0.5 / 1 / 2 ETH: 4.8% / 8.5% / 16.0%
  • Cost to sell for 0.5 / 1 / 2 ETH: 4.7% / 8.5% / 17.8%

30 days before 5 October (medians)

  • Daily volume: 1.39 ETH
  • Trading addresses per week: 101
  • Cost to buy with 0.5 / 1 / 2 ETH: 4.8% / 8.5% / 15.9%
  • Cost to sell for 0.5 / 1 / 2 ETH: 4.8% / 8.7% / 15.1%. A 2 ETH sell wasn’t possible at all on 10 of the 30 days.

90 days before 5 October (medians)

  • Daily volume: 0.018 ETH, with 26 days of no trades at all
  • Trading addresses per week: 10.5
  • Cost to buy with 0.5 / 1 / 2 ETH: 30% / 56% / 99%
  • Cost to sell for 0.5 / 1 ETH: 30% / 60%. A 2 ETH sell was only possible on 20 of the 90 days.

All costs include the 1% pool fee and are quoted at 00:00 UTC each day.

How the weekly reports will work

  • Each price-impact figure is shown twice: with the treasury’s position and with it removed. Other people’s liquidity in this pool moves a lot, so that gap is the honest measure of what our position does. Tested on a copy of today’s pool, our position cuts the cost of a 1 ETH buy from about 6.9% to 5.8%.
  • The price goes next to every figure, because a higher price on its own makes a fixed-size ETH trade cheaper.
  • Trading addresses are the addresses that sent each transaction. That includes bots, and trades through CoW count the solver rather than the buyer. It’s imperfect, but it’ll be counted the same way every week.
  • The treasury’s own trades are left out, including the TWAP fills through CoW. Trading in the same blocks as our fills goes on a separate line, since some of it will be bots reacting to our buys.

The daily figures, the method and the scripts are attached, so anyone can rerun them. If you find a mistake, post it here.

Cheers,
Gabriel

在流动性注入之前,先公布每周报告将要对比的基准数据,这是 AIP-20 第 3.3 节的要求。现在公布,是为了让大家不会觉得基准是看到结果后才挑选的。

所有数据都来自 JUSTICE/WETH 1% 资金池,截至 10 月 5 日 UTC 00:00(区块 26,122,440)。两个时间段内国库都没有任何交易,因此没有需要排除的数据。

先说明一点:9 月 17 日资金池发生了根本变化。价格一天内上涨约 4.6 倍,流动性增加了两倍多。在此之前,池子几乎是空的。所以 90 天的数据主要反映的是旧的资金池。按照提案要求,两组数据我都会对比,但更公平的比较对象是 30 天的数据和 10 月 5 日的资金池状态。

这次上涨发生在 Julian 9 月 17 日发帖宣布回归之后。此后交易一直在降温:随后三周的每周交易量从约 100 ETH 降到 25 ETH,再降到 11.5 ETH。所以试点期间交易量和交易地址数可能继续下降,但原因与试点无关。要判断我们的仓位起了什么作用,下文"包含与移除仓位"的对比更可靠。

10 月 5 日 UTC 00:00 的资金池

  • 价格:每百万 JUSTICE 0.0304 ETH
  • 用 0.5 / 1 / 2 ETH 买入的成本:4.8% / 8.5% / 16.0%
  • 卖出换取 0.5 / 1 / 2 ETH 的成本:4.7% / 8.5% / 17.8%

10 月 5 日之前 30 天(中位数)

  • 每日交易量:1.39 ETH
  • 每周交易地址数:101
  • 用 0.5 / 1 / 2 ETH 买入的成本:4.8% / 8.5% / 15.9%
  • 卖出换取 0.5 / 1 / 2 ETH 的成本:4.8% / 8.7% / 15.1%。30 天中有 10 天根本无法卖出换取 2 ETH。

10 月 5 日之前 90 天(中位数)

  • 每日交易量:0.018 ETH,其中 26 天完全没有交易
  • 每周交易地址数:10.5
  • 用 0.5 / 1 / 2 ETH 买入的成本:30% / 56% / 99%
  • 卖出换取 0.5 / 1 ETH 的成本:30% / 60%。90 天中只有 20 天能够卖出换取 2 ETH。

所有成本均包含 1% 的资金池手续费,按每天 UTC 00:00 的报价计算。

每周报告的做法

  • 每个价格影响数据都给出两个数值:包含国库仓位的,以及移除国库仓位后的。这个池子里其他人的流动性变化很大,所以两者之差才能如实反映我们的仓位起了多大作用。在今天资金池的副本上测试,我们的仓位能把买入 1 ETH 的成本从约 6.9% 降到 5.8%。
  • 每个数据旁边都会注明价格,因为仅仅价格上涨,就会让固定 ETH 金额的交易成本变低。
  • 交易地址按发送每笔交易的地址计算。其中包括机器人;通过 CoW 成交的交易,计入的是求解者(solver)而不是买家。这个方法并不完美,但每周都按同样的方式计算。
  • 国库自身的交易(包括通过 CoW 成交的 TWAP 买单)不计入。与我们的成交处于同一区块的交易单独列出,因为其中一部分会是针对我们买入行为的机器人交易。

每日数据、计算方法和脚本都已附上,任何人都可以重新运行核对。如果发现错误,请在这里回复。

祝好,
Gabriel

Spot-checked the 5 October pool at block 26,122,440: the price comes out at 0.0304 ETH per million JUSTICE, and the cost of a 0.5 / 1 / 2 ETH buy at 4.8% / 8.5% / 16.0%, measured as the average price paid over the pool price. Both match.

Fixing the baseline before the liquidity goes in, and showing every figure with and without the treasury’s position, is exactly what makes the weekly reports worth trusting.

───

抽查了 10 月 5 日区块 26,122,440 的资金池:价格为每百万 JUSTICE 0.0304 ETH,买入 0.5 / 1 / 2 ETH 的成本为 4.8% / 8.5% / 16.0%(按成交均价相对池子价格的溢价计算),两项均一致。

在流动性注入之前就固定基准,并且每个数据都同时给出包含与移除国库仓位的结果,这正是让每周报告值得信赖的地方。