Vitaly from the DAO Tech team here. Great news, the NEST contracts have been audited, deployed on mainnet, and verified ![]()
The finalized audit report with verified addresses is available in the Lido audits repository.
The scope also includes the updated TokenRateNotifier contract from the core repository, reworked to make on-chain staking revenue fetching easier for NEST. It was audited and its deployment verified alongside the rest of the NEST system.
Deployed contracts:
| Contract | Address |
|---|---|
StonksFactory |
0x632C0CCDca849eeD780FC685BBa9AbC3c7407Cb2 |
Order sample |
0x2569633AdB492ca9327cb7433277aa7c68D69e28 |
StakingRevenueSource |
0x6220212a33a87Ed7Cc386B67eB2c393974F28C38 |
BuybackExecutor |
0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 |
BuybackAllocator |
0xAA568141c051f2D1132b110f8391F18D48E8D889 |
Stonks instance, LP mode |
0x8c595aA4AEc6F42B9e7D77F83179768D37CE3042 |
Stonks instance, Treasury mode |
0xb368586CB980895E51e1D82102E63b3F69d3F151 |
TokenRateNotifier |
0xbe05d12Fd10919F1881125006523452F6aFF791b |
LidoLocator implementation, new |
0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313 |
Voting Items
To make the system operational we propose adding the following items to the upcoming vote:
-
Add the existing
OpStackTokenRatePusherto the newTokenRateNotifieras aNoArgsobserver, kind0. This is needed to restore the previous observer on the updated deployment of theTokenRateNotifierOpStackTokenRatePusher 0xd54c1c6413caac3477AC14b2a80D5398E3c32FfE TokenRateNotifier 0xbe05d12Fd10919F1881125006523452F6aFF791b -
Add
StakingRevenueSourceto the newTokenRateNotifieras aWithArgsobserver, kind1, so it receives a callback after each rebase.StakingRevenueSource 0x6220212a33a87Ed7Cc386B67eB2c393974F28C38 TokenRateNotifier 0xbe05d12Fd10919F1881125006523452F6aFF791b -
Upgrade the
LidoLocatorproxy to the new implementation, repointingpostTokenRebaseReceiverto the new notifier.LidoLocator proxy 0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb new implementation 0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313 -
Add
BuybackAllocatoras allowed recipient on the Stonks stETH top-upAllowedRecipientsRegistryfor funding via the Easy Track.BuybackAllocator 0xAA568141c051f2D1132b110f8391F18D48E8D889 AllowedRecipientsRegistry 0x1a7cFA9EFB4D5BfFDE87B0FaEb1fC65d653868C0 -
Set the Treasury Management Committee as manager on
OracleRouterto maintain the stETH and LDO feeds.manager (TMC) 0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647 OracleRouter 0x79ef3a538200Fe4981D67E7e886bfb36D4Cb5a31 -
Set the Treasury-mode Stonks on
BuybackExecutor. The NEST operation mode is derived fromStonks.RECEIVER().Stonks, Treasury mode 0xb368586CB980895E51e1D82102E63b3F69d3F151 BuybackExecutor 0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 -
Grant
ALLOCATOR_ROLEtoBuybackAllocatoronBuybackExecutor. Lets the allocator fund the executor and trigger buyback processing.role Buybacks.BuybackExecutor.ALLOCATOR_ROLE 0x87905334ad07701d0cd9b21ea0599de1a0cab067e0ab49596d423d87159ac7f2 to BuybackAllocator 0xAA568141c051f2D1132b110f8391F18D48E8D889 on BuybackExecutor 0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 -
Grant
MANAGER_ROLEto the Treasury Management Committee onBuybackExecutor. Covers asset recovery to the treasury and LP withdrawal.role Buybacks.MANAGER_ROLE 0x24bec1f1283f989ed510b4d89bc7ef5002f20db1b60c1b3192336791c868543e to Treasury Management Committee 0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647 on BuybackExecutor 0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 -
Grant
EMERGENCY_ROLEto the Treasury Management Committee onBuybackExecutor. Covers emergency controlls: pausing the executor, halting Stonks creation and order signatures, and cancelling the last order.role Buybacks.BuybackExecutor.EMERGENCY_ROLE 0xc748c205190870b4e890036f373e30556929f7fbf3db8644c998a652c1996dbd to Treasury Management Committee 0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647 on BuybackExecutor 0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 -
Grant
EMERGENCY_ROLEto the Emergency Brakes Committee onBuybackExecutor. Same emergency controls, held independently of the TMC.role Buybacks.BuybackExecutor.EMERGENCY_ROLE 0xc748c205190870b4e890036f373e30556929f7fbf3db8644c998a652c1996dbd to Emergency Committee 0x73b047fe6337183A454c5217241D780a932777bD on BuybackExecutor 0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7 -
Grant
MANAGER_ROLEto the Treasury Management Committee onBuybackAllocator. Covers asset recovery to the treasury.role Buybacks.MANAGER_ROLE 0x24bec1f1283f989ed510b4d89bc7ef5002f20db1b60c1b3192336791c868543e to Treasury Management Committee 0xa02FC823cCE0D016bD7e17ac684c9abAb2d6D647 on BuybackAllocator 0xAA568141c051f2D1132b110f8391F18D48E8D889 -
Call
activate()onBuybackAllocator. Records the revenue baseline, so only revenue earned after activation funds the buyback budget, and starts the allocation process.BuybackAllocator 0xAA568141c051f2D1132b110f8391F18D48E8D889