# Liquid Buybacks: NEST execution with LDO/wstETH liquidity

**URL:** <https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894>\
**Category:** Proposals\
**Created:** [November 11, 2025, 9:48am UTC](https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894 "2025-11-11T09:48:17Z")\
**Posts on this page:** 1\
**Showing post:** 111

<div class="post-metadata">

**Author:** ![swissarmytowel](https://dub1.discourse-cdn.com/flex013/user_avatar/research.lido.fi/swissarmytowel/32/5722_2.png) [@swissarmytowel](https://research.lido.fi/u/swissarmytowel)\
**Post date:** [July 28, 2026, 1:30pm UTC](https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894/111 "2026-07-28T13:30:02Z")

</div>

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](https://github.com/lidofinance/audits/blob/main/Ack3%20Lido%20NEST%20Audit%20Report%2007-2026.pdf).

The scope also includes the updated `TokenRateNotifier` contract from the [core repository](https://github.com/lidofinance/core/pull/1843), 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`](https://etherscan.io/address/0x632C0CCDca849eeD780FC685BBa9AbC3c7407Cb2) |
| `Order` sample | [`0x2569633AdB492ca9327cb7433277aa7c68D69e28`](https://etherscan.io/address/0x2569633AdB492ca9327cb7433277aa7c68D69e28) |
| `StakingRevenueSource` | [`0x6220212a33a87Ed7Cc386B67eB2c393974F28C38`](https://etherscan.io/address/0x6220212a33a87Ed7Cc386B67eB2c393974F28C38) |
| `BuybackExecutor` | [`0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7`](https://etherscan.io/address/0x6c213ca5A10Cc26548C742229569B4AeD2A9C9B7) |
| `BuybackAllocator` | [`0xAA568141c051f2D1132b110f8391F18D48E8D889`](https://etherscan.io/address/0xAA568141c051f2D1132b110f8391F18D48E8D889) |
| `Stonks` instance, LP mode | [`0x8c595aA4AEc6F42B9e7D77F83179768D37CE3042`](https://etherscan.io/address/0x8c595aA4AEc6F42B9e7D77F83179768D37CE3042) |
| `Stonks` instance, Treasury mode | [`0xb368586CB980895E51e1D82102E63b3F69d3F151`](https://etherscan.io/address/0xb368586CB980895E51e1D82102E63b3F69d3F151) |
| `TokenRateNotifier` | [`0xbe05d12Fd10919F1881125006523452F6aFF791b`](https://etherscan.io/address/0xbe05d12Fd10919F1881125006523452F6aFF791b) |
| `LidoLocator` implementation, new | [`0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313`](https://etherscan.io/address/0xF2Ffb952e129a63F0614Ff87126E1d4a494A2313) |

### Voting Items

**To make the system operational we propose adding the following items to the upcoming vote:**

- Add the existing `OpStackTokenRatePusher` to the new `TokenRateNotifier` as a `NoArgs` observer, kind `0`. This is needed to restore the previous observer on the updated deployment of the `TokenRateNotifier`

- Add `StakingRevenueSource` to the new `TokenRateNotifier` as a `WithArgs` observer, kind `1`, so it receives a callback after each rebase.

- Upgrade the `LidoLocator` proxy to the new implementation, repointing `postTokenRebaseReceiver` to the new notifier.

- Add `BuybackAllocator` as allowed recipient on the Stonks stETH top-up `AllowedRecipientsRegistry` for funding via the Easy Track.

- Set the Treasury Management Committee as manager on `OracleRouter` to maintain the stETH and LDO feeds.

- Set the Treasury-mode Stonks on `BuybackExecutor`. The NEST operation mode is derived from `Stonks.RECEIVER()`.

- Grant `ALLOCATOR_ROLE` to `BuybackAllocator` on `BuybackExecutor`. Lets the allocator fund the executor and trigger buyback processing.

- Grant `MANAGER_ROLE` to the Treasury Management Committee on `BuybackExecutor`. Covers asset recovery to the treasury and LP withdrawal.

- Grant `EMERGENCY_ROLE` to the Treasury Management Committee on `BuybackExecutor`. Covers emergency controlls: pausing the executor, halting Stonks creation and order signatures, and cancelling the last order.

- Grant `EMERGENCY_ROLE` to the Emergency Brakes Committee on `BuybackExecutor`. Same emergency controls, held independently of the TMC.

- Grant `MANAGER_ROLE` to the Treasury Management Committee on `BuybackAllocator`. Covers asset recovery to the treasury.

- Call `activate()` on `BuybackAllocator`. Records the revenue baseline, so only revenue earned after activation funds the buyback budget, and starts the allocation process.

---

_[View the full topic](https://research.lido.fi/t/liquid-buybacks-nest-execution-with-ldo-wsteth-liquidity/10894)._
