KVORUM
compoundSource: Compound governor bravo · #353

Aera <> Compound Extension

executedOct 26, 2024, 12:55 PM UTCby680x683a…6c02

01Summary

AISummary by Kvorumclaude-haiku-4-5

Compound DAO proposes to extend its partnership with Aera treasury management to generate yield on excess reserves. The proposal deploys 2,000 ETH, 15M DAI, and 10M USDC into Aera's vault for yield generation through Compound V3 lending markets, expected to generate $1M+ in annual treasury revenue and add ~$30M in TVL.

Type
treasury allocation
Funding
$$1000000+

Key changes

  • Add DAI as an asset to the Aera vault with 86400 second asset delay(high)
  • Update vault objective function from targeted volatility to yield generation to protect stablecoin reserves from volatile assets(high)
  • Accept ownership of new hooks module at 0x8A216F2C84a3fE5a51Bf57B685864A065D14C53a to enable cWETHv3 supply/withdraw and DAI approve functions(high)
  • Remove current cUSDCv3 C3PO from asset registry (to be re-added in subsequent proposal due to solc verification bug)(medium)
  • Wrap 2,000 ETH into WETH for vault deployment(high)
  • Withdraw 15M DAI and 10M USDC from Compound V2 reserves via _reduceReserves(high)
  • Approve and deposit WETH, DAI, and USDC into Aera vault for yield generation(high)

Notable concerns

  • Proposal is part 1 of 2 due to Compound's 10-action governance limit; part 2 will enable actual yield generation in Compound V3
  • cUSDCv3 C3PO temporarily removed due to solc/via-ir flag verification bug on Etherscan despite contract being successfully used for over 1 year
  • Subsequent proposal required to complete yield generation setup
Contracts0xc7252fa289128597631eeca427cbde6e14559d330x3d6eef6a92b15361697698695334e98c5db91d6b0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc20x5d3a536e4d6dbd6114cc1ead35777bab948e36430x6b175474e89094c44da98b954eedeac495271d0f0x39aa39c021dfbae8fac545936693ac917d5e75630xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

441 words

Aera <> Compound Extension

Simple Summary

For over a year, the Compound DAO has used Aera for treasury management. This proposal builds upon prior work to further operationalize the DAO's treasury.

There is currently an excess of USDC and DAI reserves in Compound V2, which could be deployed in lending markets to generate yield for the treasury. Additionally, a portion of the ETH in the Compound Treasury can be utilized to generate yield.

This continuation of the existing programs will enable the DAO to drive a new yield source. The expected impact of this proposal is $30M~ in additional Compound V3 TVL and $1M+ in additional treasury revenue via yield generation.

Deployment details:

  • Compound Treasury (2,000 ETH)
  • Compound V2 Reserve Assets (15M DAI and 10M USDC)
  • The vault’s objective function will be updated from targeted volatility to yield generation. This ensures the stablecoin reserves do not get allocated to volatile assets.
  • The vault will continue to allocate into Compound V3 lending markets to generate yield on the underlying assets (this will be enabled in a subsequent proposal due to Compound's 10 action limit in governance proposals).

For more details, please refer to the Forum Post.

Specification

This proposal is 1 of 2 proposals, the second of which will be put onchain after this one passes. The proposals are split up in order to operate within Compound's 10 action limit on proposals:

  1. Add DAI as an asset to the vault
  2. Accept ownership of a new hooks module at address 0x8A216F2C84a3fE5a51Bf57B685864A065D14C53a. We need to deploy a new hooks module and have the Governor Bravo timelock accept ownership of it to work around a limitation in Governor Bravo that only 10 actions can be called in a single proposal. Without this workaround, adding the following function sighashes would put this proposal over that limit. This new hooks module already has all the existing hooks, plus the following new sighashes: cWETHv3 supply & withdraw, and DAI approve (needed to trade it for USDC)
  3. Remove current cUSDCv3 C3PO from the asset registry. In a subsequent proposal we will be adding this back in. We are removing it due to a bug in solc and via-ir flag being able to verify the existing contract onchain (which has been successfully used for over 1 year, but cannot be verified on etherscan due to this bug).
  4. Wrap a portion of the ETH currently in the timelock into WETH
  5. _reduceReserves on both DAI and USDC V2 reserves
  6. Approve WETH, DAI, and USDC to be deposited into the Aera vault
  7. Deposit the assets into the Aera vault

03Mismatch analysis

AIMismatch analysis by Kvorumclaude-sonnet-5
Minor discrepancy

I compared each bullet in the Specification section against the ten decoded actions. Asset registry changes (add DAI, remove cUSDCv3 C3PO) map cleanly to actions 0 and 1. The hooks module acceptance matches action 2's setHooks call to the exact address quoted in the description. The ETH wrapping (2,000 ETH) matches the WETH deposit in action 3 with matching value. The DAI and USDC _reduceReserves calls (15M DAI, 10M USDC) match actions 5 and 7 with correctly converted decimals (18 for DAI, 6 for USDC). The three approve calls (actions 4, 6, 8) are legitimately summarized in the description as a single bullet ('Approve WETH, DAI, and USDC...'), which is acceptable summarization. The final deposit action (9) matches the described vault deposit with all three assets and matching amounts. The one point of concern is the description's claim about updating the vault's objective function from targeted volatility to yield generation — there's no explicit calldata action that directly encodes this change; it may be implicit in the hooks module swap, but this isn't verifiable from the decoded arguments alone. This is a plausible but unconfirmed mapping, so I flagged it as a low-severity omission rather than a material discrepancy. Overall, the calldata faithfully implements what the description claims, with only this minor unclear item, so I rate this a minor discrepancy with high confidence given the strong action-by-action correspondence for the rest of the proposal.

Discrepancies

  • lowomitted in description

    The description states the vault's objective function will be updated from targeted volatility to yield generation, but no decoded on-chain action corresponds to an objective-function or strategy parameter change; the only related on-chain change is the hooks module swap (action 2), which enables new function calls but does not itself constitute an explicit objective-function update visible in this calldata.

    “The vault’s objective function will be updated from targeted volatility to yield generation.”

Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Review the decoded actions ↗

04Actions

10 total
#0addAsset((address,uint256,bool,address))chain 0x1
Target
0xc725…9d33
Value
0 wei
Function
addAsset((address,uint256,bool,address))
Arguments
{
  "0": [
    "0x6B175474E89094C44Da98b954EedeAC495271d0F",
    "86400",
    false,
    "0x773616E4d11A78F511299002da57A0a94577F1f4"
  ]
}
Calldata
#1removeAsset(address)chain 0x1
Target
0xc725…9d33
Value
0 wei
Function
removeAsset(address)
Arguments
{
  "0": "0xEFB8350BA865a21e1FD8c9502Da7072D6930ef02"
}
Calldata
#2setHooks(address)chain 0x1
Target
0x3d6e…1d6b
Value
0 wei
Function
setHooks(address)
Arguments
{
  "0": "0x8A216F2C84a3fE5a51Bf57B685864A065D14C53a"
}
Calldata
#3fallback()chain 0x1
Target
0xc02a…6cc2
Value
2000000000000000000000 wei
Function
fallback()
Arguments
{}
Calldata
#4approve(address,uint256)chain 0x1
Target
0xc02a…6cc2
Value
0 wei
Function
approve(address,uint256)
Arguments
{
  "0": "0x3D6eEf6A92b15361697698695334E98C5db91D6b",
  "1": "2000000000000000000000"
}
Calldata
#5_reduceReserves(uint256)chain 0x1
Target
0x5d3a…3643
Value
0 wei
Function
_reduceReserves(uint256)
Arguments
{
  "0": "15000000000000000000000000"
}
Calldata
#6approve(address,uint256)chain 0x1
Target
0x6b17…1d0f
Value
0 wei
Function
approve(address,uint256)
Arguments
{
  "0": "0x3D6eEf6A92b15361697698695334E98C5db91D6b",
  "1": "15000000000000000000000000"
}
Calldata
#7_reduceReserves(uint256)chain 0x1
Target
0x39aa…7563
Value
0 wei
Function
_reduceReserves(uint256)
Arguments
{
  "0": "10000000000000"
}
Calldata
#8approve(address,uint256)chain 0x1
Target
0xa0b8…eb48
Value
0 wei
Function
approve(address,uint256)
Arguments
{
  "0": "0x3D6eEf6A92b15361697698695334E98C5db91D6b",
  "1": "10000000000000"
}
Calldata
#9deposit((address,uint256)[])chain 0x1
Target
0x3d6e…1d6b
Value
0 wei
Function
deposit((address,uint256)[])
Arguments
{
  "0": [
    [
      "0x6B175474E89094C44Da98b954EedeAC495271d0F",
      "15000000000000000000000000"
    ],
    [
      "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
      "10000000000000"
    ],
    [
      "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
      "2000000000000000000000"
    ]
  ]
}
Calldata

05Tally

Summed from votes

Voters0
VP participating0
Outcome (current)—
Current support—

06Voters

0 total
Filter:
VoterChoice% of totalRationale
8D0x8d07…a265For85K0.00%—2y ago
660x66cd…65f9For80K0.00%—2y ago
220x2210…d02eFor80K0.00%—2y ago
070x0703…961bFor80K0.00%—2y ago
B90xb933…8dd1For80K0.00%—2y ago
130x13bd…8548For80K0.00%—2y ago
3F0x3fb1…4c8aFor80K0.00%—2y ago
B40xb49f…7948For80K0.00%—2y ago
B30xb356…c826For54.7K0.00%—2y ago
7A0x7ae1…e585For50K0.00%—2y ago
ED0xed11…bb04For50K0.00%—2y ago
050x0579…ca09For50K0.00%—2y ago
4F0x4f89…fd3cFor50K0.00%—2y ago
DC0xdc1f…e432For50K0.00%—2y ago
TEtennisbowling.eth0xc3aa…f546For35K0.00%—2y ago
720x72c5…7708For1.2K0.00%—2y ago
5C0x5c04…dc62For671.80.00%—2y ago
BE0xbe1d…c953For2310.00%—2y ago
E20xe2a6…325dFor1000.00%—2y ago
050x0579…4048For11.20.00%—2y ago
E40xe459…e666For5.20.00%—2y ago
210x21b3…fa75For20.00%—2y ago
B70xb792…89d7For20.00%—2y ago
170x1729…b879For10.00%—2y ago
250x2543…c807For0.10.00%—2y ago
100x1084…3695For0.10.00%—2y ago
D80xd8de…ae41For0.10.00%—2y ago
330x3313…6436For00.00%—2y ago
780x7853…719eFor00.00%—2y ago
ED0xed04…6b50For00.00%—2y ago
Showing 30

07Forum

AIForum synthesis by Kvorumclaude-sonnet-5
sentiment · favorablethread · constructive

Arguments for

  • The proposal lets the DAO put idle, non-yielding USDC/DAI reserves and treasury ETH to productive use, generating an estimated $1M+ in annual yield and $30M+ in additional V3 TVL.— Aera, PGov, pennblockchain, AranaDigital
  • Aera's non-custodial vault design keeps assets fully controlled by the Compound Governor Timelock, allowing withdrawal at any time, so the DAO retains custody and reserves are not truly depleted.— Aera, cylon, AranaDigital
  • Prior Aera programs (Reserves Vault and Vendor Payment Vault) have a track record of success—reallocating long-tail assets, generating ~4% yield, and reducing COMP sell pressure—supporting extending the partnership.— Aera, EventHorizonDAO, cylon, pennblockchain
  • Gauntlet's risk simulations show Compound V2's Value at Risk is currently $0 and reserve ratios remain healthy even post-withdrawal, indicating minimal risk to protocol solvency.— Aera, AranaDigital
  • The service is free during the pilot phase with no fees to Aera or Guardians, making the upside essentially risk-free from a cost perspective.— PGov, AranaDigital, pennblockchain
  • The proposal does not conflict with or foreclose a potential future Compound Staking Program, since sufficient assets remain outside Aera and Aera assets remain flexible.— Aera
  • Diversifying and actively managing treasury assets improves protocol robustness during weak price action and helps offset COMP sell pressure from vendor payments.— EventHorizonDAO

Arguments against

None surfaced.

Unresolved concerns

  • Reserves are being pulled from the V2 reserve fund, so the DAO must ensure reserves never fall below a safe threshold covering liabilities and should proactively top up if risk metrics deteriorate.— AranaDigital
  • Request for other delegates to voice any additional risks they see before the on-chain vote, which does not appear to have been followed up on in the thread.— AranaDigital
  • A bug in the solc compiler/via-ir flag prevented verification of an oracle contract on Etherscan, forcing cancellation and redeployment of the original proposal.— Aera

Notable participants

  • AeraProposer who outlined the plan, answered questions, managed proposal revisions/cancellations due to a compiler bug, and reported on-chain execution progress.
  • PGovEarly supporter who highlighted the yield and TVL benefits and suggested future fee-sharing possibilities.
  • EventHorizonDAODelegate offering broad support citing treasury robustness and COMP sell-pressure mitigation.
  • AranaDigitalSupportive delegate who raised the main risk-management concern about reserve fund depletion and requested ongoing monitoring.
  • cylonOpenZeppelin representative expressing personal support based on security review experience with Aera's vault system.
  • pennblockchainDelegate expressing support and framing the $1M yield target as a benchmark for evaluating Gauntlet's performance.
  • jbass-ozShared OpenZeppelin's formal security review of the on-chain proposal, noting one low-severity issue.
Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Open the thread ↗