Skip to content

Commit a84f6b6

Browse files
NandyBasendra
andauthored
[ACI]weETH plasma e-mode update (#893)
* feat: update Plasma weETH e-mode * update AIP sumarry and add diff * feat: add Chaos Labs graphs * Update src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/WeETHPlasmaEModeUpdate.md Co-authored-by: sendra <[email protected]> --------- Co-authored-by: sendra <[email protected]>
1 parent 7de4613 commit a84f6b6

7 files changed

+353
-1
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
## Emodes changed
2+
3+
### EMode: USDe Stablecoins(id: 1)
4+
5+
6+
7+
### EMode: sUSDe Stablecoins(id: 2)
8+
9+
10+
11+
### EMode: weETH WETH(id: 3)
12+
13+
14+
15+
### EMode: weETH Stablecoins(id: 4)
16+
17+
| description | value before | value after |
18+
| --- | --- | --- |
19+
| eMode.label (unchanged) | weETH Stablecoins | weETH Stablecoins |
20+
| eMode.ltv | 75 % | 77.5 % |
21+
| eMode.liquidationThreshold | 78 % | 80 % |
22+
| eMode.liquidationBonus (unchanged) | 7.5 % | 7.5 % |
23+
| eMode.borrowableBitmap (unchanged) | USDT0 | USDT0 |
24+
| eMode.collateralBitmap (unchanged) | weETH | weETH |
25+
26+
27+
### EMode: PT-USDe Stablecoins Jan 2026(id: 5)
28+
29+
30+
31+
### EMode: PT-USDe USDe Jan 2026(id: 6)
32+
33+
34+
35+
### EMode: PT-sUSDe Stablecoins Jan 2026(id: 7)
36+
37+
38+
39+
### EMode: PT-sUSDe USDe Jan 2026(id: 8)
40+
41+
42+
43+
### EMode: wrsETH/WETH(id: 9)
44+
45+
46+
47+
### EMode: wstETH/WETH(id: 10)
48+
49+
50+
51+
### EMode: syrupUSDT/USDT0(id: 11)
52+
53+
54+
55+
## Raw diff
56+
57+
```json
58+
{
59+
"eModes": {
60+
"4": {
61+
"liquidationThreshold": {
62+
"from": 7800,
63+
"to": 8000
64+
},
65+
"ltv": {
66+
"from": 7500,
67+
"to": 7750
68+
}
69+
}
70+
},
71+
"raw": {
72+
"0x061d8e131f26512348ee5fa42e2df1ba9d6505e9": {
73+
"label": null,
74+
"balanceDiff": null,
75+
"stateDiff": {}
76+
},
77+
"0x39ba8c26fc81e6a37a870115940ab32ed25c9ae7": {
78+
"label": null,
79+
"balanceDiff": null,
80+
"stateDiff": {}
81+
},
82+
"0x47aadaae1f05c978e6abb7568d11b7f6e0fc4d6a": {
83+
"label": null,
84+
"balanceDiff": null,
85+
"stateDiff": {}
86+
},
87+
"0x7120b1f8e5b73c0c0dc99c6e52fe4937e7ea11e0": {
88+
"label": null,
89+
"balanceDiff": null,
90+
"stateDiff": {
91+
"0x8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb458": {
92+
"previousValue": "0x006911e94a000000000002000000000000000000000000000000000000000000",
93+
"newValue": "0x006911e94a000000000003000000000000000000000000000000000000000000"
94+
},
95+
"0x8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb459": {
96+
"previousValue": "0x000000000000000000093a8000000000000069400dcb00000000000000000000",
97+
"newValue": "0x000000000000000000093a8000000000000069400dcb0000000000006911e94b"
98+
}
99+
}
100+
},
101+
"0x925a2a7214ed92428b5b1b090f80b25700095e12": {
102+
"label": null,
103+
"balanceDiff": null,
104+
"stateDiff": {}
105+
},
106+
"0xa119f84bc1b8083f5061e4cf53705cbf1065ba27": {
107+
"label": null,
108+
"balanceDiff": null,
109+
"stateDiff": {
110+
"0x533efb5c9f032d0e72b35f5d59b231dc7a9fb94625f73b3c45c394126326354c": {
111+
"previousValue": "0x000000000000000000000000000000000000000000000000001029fe1e781d4c",
112+
"newValue": "0x000000000000000000000000000000000000000000000000001029fe1f401e46"
113+
},
114+
"0x533efb5c9f032d0e72b35f5d59b231dc7a9fb94625f73b3c45c394126326354d": {
115+
"previousValue": "0x776545544820537461626c65636f696e73000000000000000000000000000022",
116+
"newValue": "0x776545544820537461626c65636f696e73000000000000000000000000000022"
117+
}
118+
}
119+
},
120+
"0xa860355f0ccfdc823f7332ac108317b2a1509c06": {
121+
"label": null,
122+
"balanceDiff": null,
123+
"stateDiff": {}
124+
},
125+
"0xc022b6c71c30a8ad52dac504efa132d13d99d2d9": {
126+
"label": null,
127+
"balanceDiff": null,
128+
"stateDiff": {}
129+
},
130+
"0xe76eb348e65ef163d85ce282125ff5a7f5712a1d": {
131+
"label": null,
132+
"balanceDiff": null,
133+
"stateDiff": {}
134+
}
135+
}
136+
}
137+
```
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import {AaveV3PlasmaEModes} from 'aave-address-book/AaveV3Plasma.sol';
5+
import {AaveV3PayloadPlasma} from 'aave-helpers/src/v3-config-engine/AaveV3PayloadPlasma.sol';
6+
import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol';
7+
import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
8+
9+
/**
10+
* @title WeETH Plasma e-mode update
11+
* @author Choas Labs (implemented by ACI)
12+
* - snapshot: Direct to AIP
13+
* - Discussion: https://governance.aave.com/t/direct-to-aip-weeth-e-mode-risk-parameter-adjustment-on-aave-v3-plasma-instance/23381
14+
*/
15+
contract AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110 is AaveV3PayloadPlasma {
16+
function eModeCategoriesUpdates()
17+
public
18+
pure
19+
override
20+
returns (IAaveV3ConfigEngine.EModeCategoryUpdate[] memory)
21+
{
22+
IAaveV3ConfigEngine.EModeCategoryUpdate[]
23+
memory eModeUpdates = new IAaveV3ConfigEngine.EModeCategoryUpdate[](1);
24+
25+
eModeUpdates[0] = IAaveV3ConfigEngine.EModeCategoryUpdate({
26+
eModeCategory: AaveV3PlasmaEModes.weETH__USDT0,
27+
ltv: 77_50,
28+
liqThreshold: 80_00,
29+
liqBonus: EngineFlags.KEEP_CURRENT,
30+
label: EngineFlags.KEEP_CURRENT_STRING
31+
});
32+
33+
return eModeUpdates;
34+
}
35+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import {AaveV3Plasma} from 'aave-address-book/AaveV3Plasma.sol';
5+
6+
import 'forge-std/Test.sol';
7+
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/src/ProtocolV3TestBase.sol';
8+
import {AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110} from './AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110.sol';
9+
10+
/**
11+
* @dev Test for AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110
12+
* command: FOUNDRY_PROFILE=test forge test --match-path=src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110.t.sol -vv
13+
*/
14+
contract AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110_Test is ProtocolV3TestBase {
15+
AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110 internal proposal;
16+
17+
function setUp() public {
18+
vm.createSelectFork(vm.rpcUrl('plasma'), 5851943);
19+
proposal = new AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110();
20+
}
21+
22+
/**
23+
* @dev executes the generic test suite including e2e and config snapshots
24+
*/
25+
function test_defaultProposalExecution() public {
26+
defaultTest(
27+
'AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110',
28+
AaveV3Plasma.POOL,
29+
address(proposal)
30+
);
31+
}
32+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
---
2+
title: "[Direct to AIP] weETH E-Mode Risk Parameter Adjustment on Aave V3 Plasma Instance"
3+
author: "Chaos Labs (implemented by ACI by via Skyward)"
4+
discussions: "https://governance.aave.com/t/direct-to-aip-weeth-e-mode-risk-parameter-adjustment-on-aave-v3-plasma-instance/23381"
5+
snapshot: Direct to AIP
6+
---
7+
8+
## Simple Summary
9+
10+
The proposal recommends increasing the LT and LTV of Ether.fi restaked ETH in the weETH Stablecoin E-Mode on the Plasma instance in order to align the risk parameters of the asset in the E-Mode to the baseline configuration of weETH on the Ethereum Core instance.
11+
12+
## Motivation
13+
14+
When the Plasma instance was initially launched, we recommended introducing a stablecoin E-Mode for weETH while restricting base risk parameters. This approach was designed to mitigate potential exposure to volatile debt-collateral positions and account for early uncertainty around market liquidity and stability. The initial E-Mode parameters for weETH on Plasma were set slightly below those on Ethereum Core to reflect uncertainty about the instance’s market efficiency, as both LT and LTV were effectively discounted by 2% to reduce the amount of stablecoin debt each weETH token can accumulate. At the time of writing, both the asset and the instance have matured significantly, prompting a reassessment of the risk parameters.
15+
16+
## Specification
17+
18+
As market conditions have evolved, Plasma has improved in terms of liquidity depth, lending volumes, and overall efficiency. Specifically, the slippage on a 5,000 weETH sell order is limited to 3.5%. The aggregate supply of weETH on the instance currently exceeds $460 million (~100,000 tokens), surpassing WETH, which has a total supply of $160 million.
19+
20+
![image (7)|2000x1243](https://europe1.discourse-cdn.com/flex013/uploads/aave/original/2X/2/22be1659c9f33907262cf7bd0baa0b710693ded1.jpeg)
21+
22+
Furthermore, the market downturn on October 10th provided a measurable stress test of the system’s resilience, as weETH is primarily used to collateralize stablecoin borrow positions. Despite tightened liquidity conditions during the downturn, no bad debt was accrued, confirming that both risk controls and liquidation mechanisms functioned effectively. This outcome emphasizes the performance of the liquidation agreement facilitated by the Plasma team, which ensured orderly position unwinds.
23+
24+
![image (8)|2000x1241](https://europe1.discourse-cdn.com/flex013/uploads/aave/original/2X/4/42403c7b43cf6a418e7c1067863ae616148e5c5b.png)
25+
26+
Additionally, we observe that users who currently use weETH as collateral on the instance are primarily borrowing stablecoins within the dedicated weETH Stablecoin E-Mode. Therefore, the increase of the risk parameters of weETH would allow for additional stablecoin borrowing demand, boosting both protocol revenue and market efficiency.
27+
28+
### Recommendation
29+
30+
Given these developments, we propose increasing the E-Mode parameters by raising the LT to 80% and the LTV to 77.5%, thereby aligning the E-Mode with the weETH configuration on Ethereum Core. The adjustment is supported by the maturity of the instance, which has grown to over $4.5 billion, as well as the establishment of deep weETH liquidity pools paired with high market efficiency, and substantial demand to utilize the asset as collateral within the instance.
31+
32+
**weETH Stablecoin E-Mode**
33+
34+
| **Parameter** | Current | Recommended |
35+
| --------------------- | ------- | ----------- |
36+
| Asset | weETH | weETH |
37+
| Collateral | Yes | Yes |
38+
| Borrowable | No | No |
39+
| Max LTV | 75% | 77.5% |
40+
| Liquidation Threshold | 78% | 80% |
41+
| Liquidation Bonus | 7.50% | 7.50% |
42+
43+
## References
44+
45+
- Implementation: [AaveV3Plasma](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110.sol)
46+
- Tests: [AaveV3Plasma](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110.t.sol)
47+
- [Discussion](https://governance.aave.com/t/direct-to-aip-weeth-e-mode-risk-parameter-adjustment-on-aave-v3-plasma-instance/23381)
48+
49+
## Disclosure
50+
51+
Chaos Labs has not been compensated by any third party for publishing this recommendation.
52+
53+
## Copyright
54+
55+
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain)
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
// SPDX-License-Identifier: MIT
2+
pragma solidity ^0.8.0;
3+
4+
import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/src/GovV3Helpers.sol';
5+
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
6+
7+
import {EthereumScript, PlasmaScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol';
8+
import {AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110} from './AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110.sol';
9+
10+
/**
11+
* @dev Deploy Plasma
12+
* deploy-command: make deploy-ledger contract=src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/WeETHPlasmaEModeUpdate_20251110.s.sol:DeployPlasma chain=plasma
13+
* verify-command: FOUNDRY_PROFILE=deploy npx catapulta-verify -b broadcast/WeETHPlasmaEModeUpdate_20251110.s.sol/9745/run-latest.json
14+
*/
15+
contract DeployPlasma is PlasmaScript {
16+
function run() external broadcast {
17+
// deploy payloads
18+
address payload0 = GovV3Helpers.deployDeterministic(
19+
type(AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110).creationCode
20+
);
21+
22+
// compose action
23+
IPayloadsControllerCore.ExecutionAction[]
24+
memory actions = new IPayloadsControllerCore.ExecutionAction[](1);
25+
actions[0] = GovV3Helpers.buildAction(payload0);
26+
27+
// register action at payloadsController
28+
GovV3Helpers.createPayload(actions);
29+
}
30+
}
31+
32+
/**
33+
* @dev Create Proposal
34+
* command: make deploy-ledger contract=src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/WeETHPlasmaEModeUpdate_20251110.s.sol:CreateProposal chain=mainnet
35+
*/
36+
contract CreateProposal is EthereumScript {
37+
function run() external {
38+
// create payloads
39+
PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](1);
40+
41+
// compose actions for validation
42+
{
43+
IPayloadsControllerCore.ExecutionAction[]
44+
memory actionsPlasma = new IPayloadsControllerCore.ExecutionAction[](1);
45+
actionsPlasma[0] = GovV3Helpers.buildAction(
46+
type(AaveV3Plasma_WeETHPlasmaEModeUpdate_20251110).creationCode
47+
);
48+
payloads[0] = GovV3Helpers.buildPlasmaPayload(vm, actionsPlasma);
49+
}
50+
51+
// create proposal
52+
vm.startBroadcast();
53+
GovV3Helpers.createProposal(
54+
vm,
55+
payloads,
56+
GovernanceV3Ethereum.VOTING_PORTAL_ETH_AVAX,
57+
GovV3Helpers.ipfsHashFile(
58+
vm,
59+
'src/20251110_AaveV3Plasma_WeETHPlasmaEModeUpdate/WeETHPlasmaEModeUpdate.md'
60+
)
61+
);
62+
}
63+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import {ConfigFile} from '../../generator/types';
2+
export const config: ConfigFile = {
3+
rootOptions: {
4+
pools: ['AaveV3Plasma'],
5+
title: 'WeETH Plasma e-mode update',
6+
shortName: 'WeETHPlasmaEModeUpdate',
7+
date: '20251110',
8+
author: 'Choas Labs (implemented by ACI)',
9+
discussion:
10+
'https://governance.aave.com/t/direct-to-aip-weeth-e-mode-risk-parameter-adjustment-on-aave-v3-plasma-instance/23381',
11+
snapshot: '',
12+
votingNetwork: 'AVALANCHE',
13+
},
14+
poolOptions: {
15+
AaveV3Plasma: {
16+
configs: {
17+
EMODES_UPDATES: [
18+
{
19+
eModeCategory: 'AaveV3PlasmaEModes.weETH__USDT0',
20+
ltv: '77.5',
21+
liqThreshold: '80',
22+
liqBonus: '',
23+
label: '',
24+
},
25+
],
26+
},
27+
cache: {blockNumber: 5851943},
28+
},
29+
},
30+
};

0 commit comments

Comments
 (0)