GSMs Migration to stataGSM4626
01Summary
Migrate Aave's GHO stability module from passive USDC/USDT holdings to yield-generating stataUSDC and stataUSDT tokens via ERC4626 implementation. This allows the DAO to earn continuous yield on GSM collateral instead of holding assets unproductively. Two new GSMs will replace existing ones with 16M GHO/8M USDC and 24M GHO/16M USDT capacities respectively.
- Type
- contract upgrade
Key changes
- Deploy new stataUSDC and stataUSDT GSM4626 contracts with ERC4626 implementation to replace existing USDC and USDT GSMs(high)
- Migrate USDC and USDT holdings from passive GSMs to yield-generating stataToken vaults(high)
- Enable continuous DAO revenue generation from stataToken yield, which functions as a proxy Borrow Rate(high)
- Seize and deactivate existing USDC and USDT GSMs by transferring underlying tokens to collector(high)
- Register new swap freeze oracles for stataToken GSMs(medium)
- Maintain 1:1 price strategy and existing fee structure (0% mint, 0.2% burn) for new GSMs(medium)
- Set stataUSDC GSM capacity at 16M GHO with 8M USDC exposure, stataUSDT GSM at 24M GHO with 16M USDT exposure(medium)
Notable concerns
- Migration requires careful coordination to ensure no GHO supply discrepancies; any gaps will be filled from treasury
- Existing GSMs will be frozen during migration, temporarily affecting GHO minting/burning functionality
- Yield from stataTokens differs from traditional GHO Borrow Rate revenue realization model
Generated by Kvorum
02Description
Simple Summary
Deploy two stataToken GSMs using the ERC4626 implementation developed by Aave Labs to replace the existing USDC and USDT GSMs.
Motivation
While the primary focus of the GSM is to ensure price stability, the current GSMs issue GHO backed 1:1 with USDC and USDT, which are then held unproductively. The opportunity cost of passively holding USDC and USDT increases as the GSM size grows over time.
With the recent completion of Certora’s ERC4626 GSM audit, there is an opportunity to deploy two new stataToken GSMs to replace the existing GSMs. The USDC and USDT holdings in the current GSMs will be migrated to the new stataUSDC and stataUSDT GSMs, allowing yield generated by these assets to be claimed as revenue by the Aave DAO.
The yield from stataTokens functions as a proxy Borrow Rate and accrues revenue to the DAO continuously, unlike GHO Borrow Rate interest, which is only realized when users repay loans. The chart below illustrates the native deposit yield for USDC and USDT compared to the GHO Borrow Rate over time.
Specification
- Deploy new stataUSDC and stataUSDT GSM4626 from the Gho-Core repository with their respective Oracles
- Grant the Executor the
'LIQUIDATOR_ROLE'to be able to seize the existing GSMs - Seize the current USDC and USDT GSMs by calling the
seize()function.- This freezes actions on them and transfers the underlying tokens to the collector
- Add the two new GSMs as facilitators on the GHO token contract
- Add the new stataUSDC and stataUSDT GSMs as controlled facilitators on the GhoBucketSteward
- Add new GSMs to the GSMRegistry
- Update the FeeStrategy of the new GSMs to the existing FeeStrategy:
0x83896a35db4519BD8CcBAF5cF86CCA61b5cfb938 - Register new swap freeze oracles
- With the withdrawn assets above (in the seize step), obtain stataUSDC and stataUSDT via deposit on the respective vaults
- With the obtained stataUSDC and stataUSDT, exchange for GHO on the new respective GSMs
- Use the obtained GHO to
burnAfterSeize()on the current USDC and USDT GSMs. If there are any discrepancies in the amount of GHO, use GHO from the treasury to bring the minted GHO by the GSMs to zero - Remove existing GSMs as facilitators of the GHO token
- Remove existing GSMs from the GSMRegistry
- Remove existing USDC and USDT GSMs from being a controlled facilitator on the GhoBucketSteward
- Revoke roles assigned to EXECUTOR and old GSMs
The below details the configuration of the stataUSDC GSM.
| Parameter | Value |
|---|---|
| Bucket Capacity (GHO) | 16.00M |
| Exposure Capacity (USDC) | 8.00M |
| Price Strategy | 1:1 |
| Freeze Lower Bound | $0.990 |
| Freeze Upper Bound | $1.010 |
| Unfreeze Lower Bound | $0.995 |
| Unfreeze Upper Bound | $1.005 |
| Mint GHO Fee | 0.00% |
| Burn GHO Fee | 0.20% |
The below details the configuration of the stataUSDT GSM.
| Parameter | Value |
|---|---|
| Bucket Capacity (GHO) | 24.00M |
| Exposure Capacity (USDT) | 16.00M |
| Price Strategy | 1:1 |
| Freeze Lower Bound | $0.990 |
| Freeze Upper Bound | $1.010 |
| Unfreeze Lower Bound | $0.995 |
| Unfreeze Upper Bound | $1.005 |
| Mint GHO Fee | 0.00% |
| Burn GHO Fee | 0.20% |
References
- Implementation: AaveV3Ethereum
- Tests: AaveV3Ethereum Snapshot
- Discussion
Copyright
Copyright and related rights waived via CC0.
03Mismatch analysis
placeholder
Generated by Kvorum
04Actions
- Target
- 0x545e…6528
- Value
- 0 wei
- Function
- fallback()
- Arguments
{}- Calldata
05Tally
Summed from votes
06Voters
No votes recorded yet.
07Forum
No forum thread is confidently linked to this proposal.