KVORUM
aaveSource: Aave governor v2 · #115

Strategic Partnership with Balancer DAO Part 2 - 100k BAL Acquisition

executedNov 12, 2022, 03:10 PM UTCby550x55b1…f262

01Summary

AISummary by Kvorumclaude-haiku-4-5

Aave DAO proposes to acquire 100,000 BAL tokens on-market using a Bonding Curve contract that exchanges aUSDC from the Aave V2 Collector for BAL at a 50 bps premium over the BAL/USD Chainlink oracle price. This completes a planned 300,000 BAL acquisition (200,000 from prior AIP-87 token swap, plus 100,000 from this proposal). A separate proposal will detail how the BAL tokens will be utilized for ecosystem growth.

Type
protocol addition

Key changes

  • Deploy Bonding Curve contract enabling aUSDC to USDC/aUSDC exchange for BAL with 50 bps premium over oracle price(high)
  • Approve Bonding Curve to spend 800,000 aUSDC from Aave V2 Collector for acquiring exactly 100,000 BAL tokens(high)
  • Establish on-market BAL acquisition mechanism completing 300,000 BAL total acquisition strategy (200,000 from AIP-87 plus 100,000 from this proposal)(high)

Notable concerns

  • Maximum aUSDC spending approval of 800,000 set higher than strictly necessary for 100,000 BAL acquisition, creating potential overspend scenario
  • Exact utilization strategy for acquired BAL tokens deferred to future proposal, leaving current strategic intent partially undefined
  • Oracle dependency on Chainlink BAL/USD price feed for determining trader premiums
Contracts0x5e945515a8e1008dac95404aec9e12a9e65948f10x04f90d449D4f8316eDd6Ef4F963b657f8444a4cA0x464C71f6c2F760DdA6093dCB91C24c39e5d6e18c
Generated by Kvorum
model: claude-haiku-4-5
provider: anthropic
profile: anthropic-fast-v1
prompt: v1.0
generated: 2mo ago
Read the description ↗

02Description

766 words

Simple Summary

The Aave DAO is to acquire 100,000 BAL tokens on-market by deploying a Bonding Curve contract.

Abstract

The Bonding Curve will have a defined 100,000 BAL acquisition target, where traders receive a small 50 bps premium over the BAL/USD Chainlink oracle price when purchasing USDC/aUSDC in return for depositing BAL.

This on-market purchase completes the two part process for acquiring a total of 300,000 BAL after an initial 200,000 BAL was acquired via the token swap in AIP-87.

A separate proposal will detail how the BAL tokens from this AIP are to be utilised. The discussion can be found on the Aave governance forum.

Motivation

The 100,000 BAL acquisition further extends the DAO's holding to be used for supporting the growth of the Aave ecosystem. There are numerous opportunities within the Aave ecosystem to utilise veBAL. The BAL emissions are expected to lead to higher TVL and attract new users/use cases to Aave which will lead to additional revenue generation or alternatively reduce the AAVE emissions via the Safety Module. Exactly how the veBAL is to be utilised by the DAO is still open for discussion.

Further insights into the motivation behind this proposal can be found below:

  1. ARC : Strategic Partnership with Balancer Part #2
  2. ARC : Staked ATokens, A New Aave Primitive Exploring Vote-Escrow Economies
  3. ARC : ERC4626 Strategies as Productive Collateral

Specification

A full specification of the payload contract, bonding curve contract and tests enabling this mandate can be found on the Llama Github here.

Llama will deploy a bonding curve enabling aUSDC held within the Aave V2 Collector to be exchanged for BAL, with the traders receiving a 50 bps reward over the BAL/USD Chainlink oracle price for performing the transaction. The amount of BAL to be acquired is fixed and set at 100,000 BAL. The maximum amount of aUSDC that will be approved for spending from the Aave V2 Collector by the bonding curve and used in acquiring the BAL will be set at 800,000 aUSDC.

The aUSDC does not leave the Aave V2 Collector as the Bonding Curve enables the aUSDC to be transferred from the Collector to the trader's wallet upon the Collector receiving BAL from the trader.

The Proposal Payload does the following:

  1. Approve the Bonding Curve contract to spend 800,000 aUSDC from the Aave V2 Collector.

The Bonding Curve contract has the following functions and public storage variables:

  1. function purchase(uint256 amountIn, bool toUnderlying) external returns (uint256): This function allows the trader to purchase aUSDC/USDC for BAL, with the trader receiving a 50 bps reward over the BAL/USD Chainlink oracle price. It takes uint256 amountIn (BAL amount input including 18 decimals) and bool toUnderlying (Whether to receive as USDC (true) or aUSDC (false)) as input parameters and returns the amount of aUSDC/USDC (including 6 decimals) received on purchase.
  2. function availableBalToBeFilled() public view returns (uint256): This getter/view function returns how close to the 100k BAL amount cap the bonding curve contract is at. Trader check this function before calling purchase() to see the amount of BAL left to be filled in the bonding curve contract. This should give the trader information on upto how much BAL they can put in the amountIn input parameter of the purchase() function.
  3. function getAmountOut(uint256 amountIn) public view returns (uint256) : This getter/view function returns the amount of aUSDC/USDC that will be received after a bonding curve purchase using given BAL amount input (including the 50 bps reward over the BAL/USD Chainlink oracle price). Trader check this function before calling purchase() to see the amount of aUSDC/USDC you'll get for given BAL amount input.
  4. function getOraclePrice() public view returns (uint256) : This getter/view function returns the current peg price of the referenced Chainlink BAL/USD oracle as USD per BAL (value includes 8 decimals).
  5. function rescueTokens(address[] calldata tokens) external : This is a rescue function that can be called by anyone to transfer any tokens accidentally sent to the bonding curve contract to Aave V2 Collector. It takes an input list of token contract addresses.
  6. uint256 public totalAusdcPurchased : Cumulative aUSDC/USDC purchased through the bonding curve contract.
  7. uint256 public totalBalReceived: Cumulative BAL received through the bonding curve contract.

Test Cases

This proposal has been tested and peer reviewed by Bored Ghost Developing.

Test cases can be found: Here

Implementation

  1. Payload Implementation can be found: Here
  2. Bonding Curve Implementation can be found: Here

Deployed Contracts

  1. Proposal Payload = 0x5e945515a8e1008DAC95404AeC9E12a9e65948F1
  2. Bonding Curve = 0x04f90d449D4f8316eDd6Ef4F963b657f8444a4cA

Copyright

Copyright and related rights waived via CC0.

03Mismatch analysis

AIMismatch analysis by Kvorumclaude-sonnet-5
Consistent

The proposal describes a single on-chain action: the Proposal Payload contract approving the Bonding Curve contract to spend 800,000 aUSDC from the Aave V2 Collector. The decoded calldata shows exactly one action — a call to execute() on the address 0x5e945515a8e1008dac95404aec9e12a9e65948f1, which matches precisely the 'Deployed Contracts' address given in the description for the Proposal Payload. This follows the standard Aave governance execution pattern where the executor calls execute() on a payload contract, and the payload's internal logic (here, the aUSDC approval) is not separately visible in the top-level decoded calldata but is implied by the payload's known, audited implementation (linked in the description with GitHub source and Etherscan address). Since the target address matches exactly what the description claims was deployed and audited, and no additional or missing top-level actions are present, the on-chain action is fully consistent with the prose. No value, target, or scope mismatches were found.

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

04Actions

1 total
#0fallback()chain 0x1
Target
0x5e94…48f1
Value
0 wei
Function
fallback()
Arguments
{}
Calldata

05Tally

Summed from votes

Voters274
VP participating403.2K
Outcome (current)For
Current support100%

06Voters

274 total
Filter:
VoterChoice% of totalRationale
070x0703…961bFor90.1K22.34%—4y ago
DC0xdc1f…e432For90K22.32%—4y ago
620x62a4…816aFor81K20.09%—4y ago
130x13bd…8548For80K19.84%—4y ago
B90xb933…8dd1For41.9K10.40%—4y ago
210x212b…6db5For10K2.48%—4y ago
7A0x7ae1…e585For10K2.48%—4y ago
EA0xea17…6676For36.80.01%—4y ago
DB0xdb8c…4196For20.80.01%—4y ago
2B0x2b1a…686cFor16.10.00%—4y ago
580x58ac…a73dFor10.90.00%—4y ago
A00xa0ef…2d56For8.30.00%—4y ago
DF0xdfc3…d76eFor6.70.00%—4y ago
140x1464…e535Against5.60.00%—4y ago
870x8716…f156For50.00%—4y ago
E90xe982…cdf8For4.40.00%—4y ago
CF0xcf2b…e05dFor3.10.00%—4y ago
B70xb70a…c03fFor30.00%—4y ago
280x28ad…cafeFor2.70.00%—4y ago
340x340e…b7b0For2.40.00%—4y ago
000x0064…f9a3For20.00%—4y ago
5D0x5d73…d18bFor1.60.00%—4y ago
0D0x0d3b…d1bcFor1.40.00%—4y ago
C20xc216…b6a2For1.20.00%—4y ago
8D0x8d4f…e608For1.20.00%—4y ago
7D0x7d04…40d7For1.20.00%—4y ago
B70xb7bd…4ad1For1.10.00%—4y ago
6C0x6c4a…acdbFor1.10.00%—4y ago
EC0xecd0…6d74For1.10.00%—4y ago
520x5294…9b05For1.10.00%—4y ago
E50xe539…5708For10.00%—4y ago
FC0xfca9…46caFor10.00%—4y ago
8C0x8c69…87bbFor10.00%—4y ago
9A0x9a37…ea65For10.00%—4y ago
890x8960…3a8cFor10.00%—4y ago
E70xe711…46efFor10.00%—4y ago
7E0x7e1d…2b81For10.00%—4y ago
170x17f8…0d1eFor10.00%—4y ago
AD0xad61…de01For10.00%—4y ago
330x33f6…1da4For10.00%—4y ago
EE0xeeb5…0efcFor10.00%—4y ago
060x064f…f2fbFor0.80.00%—4y ago
140x14fd…14c6For0.70.00%—4y ago
8C0x8c1b…a13eAgainst0.70.00%—4y ago
690x6917…0b8dFor0.70.00%—4y ago
B70xb75a…aa7eFor0.70.00%—4y ago
000x0069…296bFor0.70.00%—4y ago
0D0x0d9d…9ff1For0.60.00%—4y ago
D40xd4d7…6087For0.60.00%—4y ago
8F0x8f2a…5272For0.60.00%—4y ago
Showing 50

07Forum

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

Arguments for

  • Deploying the BAL/aBAL holding into veBAL reinforces Aave's strategic partnership with Balancer and is critical to supporting the Safety Module and GHO liquidity.— MarcZeller, Llamaxyz
  • Locking veBAL (Option 1) gives Aave meaningful governance and gauge-weight voting power, veBoost, and protocol fee income that can be used to redirect incentives, grow GHO liquidity, and support Aave's staked aToken and Safety Module strategies.— Llamaxyz
  • Staking auraBAL (Option 2) offers a higher-yield strategy that compounds over time and can eventually translate into greater governance influence via vlAURA.— Llamaxyz
  • Using CoW Swap with the Milkman contract provides on-chain enforceable slippage protection and MEV resistance for converting BAL/wETH into B-80BAL-20WETH, following precedents like the ENS DAO trade.— Llamaxyz

Arguments against

  • Ad-hoc custom swap contracts introduce unnecessary technical overhead and risk; the DAO should instead leverage existing battle-tested protocols for auctions or limit orders rather than building new infrastructure.— bgdlabs
  • The claim that direct contract-to-contract deposits into the BAL/wETH pool offer MEV protection is technically inaccurate and should be reconsidered.— bgdlabs
  • Funds should ideally remain within the Collector contract rather than being routed through additional intermediary contracts, to minimize complexity and risk.— bgdlabs
  • Treasury management strategies should prioritize simplicity over maximum efficiency, taking a progressive approach rather than building the most complex solution upfront.— bgdlabs

Unresolved concerns

  • Whether Aave should develop a general on-chain meta-governance framework (as urged by bgdlabs) rather than handling this deployment as a one-off case remains unaddressed in the thread.— bgdlabs
  • The appropriate slippage tolerance for the CoW Swap trade (1.5% vs 2%) was discussed but not definitively settled beyond CoW Swap's own assurance.— Llamaxyz
  • The trade-off between simplicity (keeping funds in the Collector) versus the added complexity of intermediary contracts like COWTrader.sol was raised by bgdlabs but not fully reconciled with the final implementation.— bgdlabs

Notable participants

  • LlamaxyzLead author of the proposal, providing detailed rationale for veBAL vs auraBAL options and posting successive implementation updates including the CoW Swap/Milkman trade design.
  • bgdlabsTechnical reviewer who raised concerns about MEV protection claims, swap contract complexity, and advocated for simplicity and on-chain meta-governance frameworks.
  • MarcZellerExpressed clear support for the proposal, framing veBAL as strategically important for the Safety Module and GHO.
Generated by Kvorum
model: claude-sonnet-5
provider: anthropic
profile: anthropic-strong-v1
prompt: v1.0
generated: 2mo ago
Open the thread ↗