Strategic Partnership with Balancer DAO Part 2 - 100k BAL Acquisition
01Summary
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
Generated by Kvorum
02Description
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:
- ARC : Strategic Partnership with Balancer Part #2
- ARC : Staked ATokens, A New Aave Primitive Exploring Vote-Escrow Economies
- 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:
- 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:
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 takesuint256 amountIn(BAL amount input including 18 decimals) andbool 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.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 callingpurchase()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 theamountIninput parameter of thepurchase()function.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 callingpurchase()to see the amount of aUSDC/USDC you'll get for given BAL amount input.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).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.uint256 public totalAusdcPurchased: Cumulative aUSDC/USDC purchased through the bonding curve contract.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
Deployed Contracts
- Proposal Payload = 0x5e945515a8e1008DAC95404AeC9E12a9e65948F1
- Bonding Curve = 0x04f90d449D4f8316eDd6Ef4F963b657f8444a4cA
Copyright
Copyright and related rights waived via CC0.
03Mismatch analysis
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
04Actions
- Target
- 0x5e94…48f1
- Value
- 0 wei
- Function
- fallback()
- Arguments
{}- Calldata
05Tally
Summed from votes
06Voters
| Voter | Choice | % of total | Rationale | ||
|---|---|---|---|---|---|
| 070x0703…961b | For | 90.1K | 22.34% | — | 4y ago |
| DC0xdc1f…e432 | For | 90K | 22.32% | — | 4y ago |
| 620x62a4…816a | For | 81K | 20.09% | — | 4y ago |
| 130x13bd…8548 | For | 80K | 19.84% | — | 4y ago |
| B90xb933…8dd1 | For | 41.9K | 10.40% | — | 4y ago |
| 210x212b…6db5 | For | 10K | 2.48% | — | 4y ago |
| 7A0x7ae1…e585 | For | 10K | 2.48% | — | 4y ago |
| EA0xea17…6676 | For | 36.8 | 0.01% | — | 4y ago |
| DB0xdb8c…4196 | For | 20.8 | 0.01% | — | 4y ago |
| 2B0x2b1a…686c | For | 16.1 | 0.00% | — | 4y ago |
| 580x58ac…a73d | For | 10.9 | 0.00% | — | 4y ago |
| A00xa0ef…2d56 | For | 8.3 | 0.00% | — | 4y ago |
| DF0xdfc3…d76e | For | 6.7 | 0.00% | — | 4y ago |
| 140x1464…e535 | Against | 5.6 | 0.00% | — | 4y ago |
| 870x8716…f156 | For | 5 | 0.00% | — | 4y ago |
| E90xe982…cdf8 | For | 4.4 | 0.00% | — | 4y ago |
| CF0xcf2b…e05d | For | 3.1 | 0.00% | — | 4y ago |
| B70xb70a…c03f | For | 3 | 0.00% | — | 4y ago |
| 280x28ad…cafe | For | 2.7 | 0.00% | — | 4y ago |
| 340x340e…b7b0 | For | 2.4 | 0.00% | — | 4y ago |
| 000x0064…f9a3 | For | 2 | 0.00% | — | 4y ago |
| 5D0x5d73…d18b | For | 1.6 | 0.00% | — | 4y ago |
| 0D0x0d3b…d1bc | For | 1.4 | 0.00% | — | 4y ago |
| C20xc216…b6a2 | For | 1.2 | 0.00% | — | 4y ago |
| 8D0x8d4f…e608 | For | 1.2 | 0.00% | — | 4y ago |
| 7D0x7d04…40d7 | For | 1.2 | 0.00% | — | 4y ago |
| B70xb7bd…4ad1 | For | 1.1 | 0.00% | — | 4y ago |
| 6C0x6c4a…acdb | For | 1.1 | 0.00% | — | 4y ago |
| EC0xecd0…6d74 | For | 1.1 | 0.00% | — | 4y ago |
| 520x5294…9b05 | For | 1.1 | 0.00% | — | 4y ago |
| E50xe539…5708 | For | 1 | 0.00% | — | 4y ago |
| FC0xfca9…46ca | For | 1 | 0.00% | — | 4y ago |
| 8C0x8c69…87bb | For | 1 | 0.00% | — | 4y ago |
| 9A0x9a37…ea65 | For | 1 | 0.00% | — | 4y ago |
| 890x8960…3a8c | For | 1 | 0.00% | — | 4y ago |
| E70xe711…46ef | For | 1 | 0.00% | — | 4y ago |
| 7E0x7e1d…2b81 | For | 1 | 0.00% | — | 4y ago |
| 170x17f8…0d1e | For | 1 | 0.00% | — | 4y ago |
| AD0xad61…de01 | For | 1 | 0.00% | — | 4y ago |
| 330x33f6…1da4 | For | 1 | 0.00% | — | 4y ago |
| EE0xeeb5…0efc | For | 1 | 0.00% | — | 4y ago |
| 060x064f…f2fb | For | 0.8 | 0.00% | — | 4y ago |
| 140x14fd…14c6 | For | 0.7 | 0.00% | — | 4y ago |
| 8C0x8c1b…a13e | Against | 0.7 | 0.00% | — | 4y ago |
| 690x6917…0b8d | For | 0.7 | 0.00% | — | 4y ago |
| B70xb75a…aa7e | For | 0.7 | 0.00% | — | 4y ago |
| 000x0069…296b | For | 0.7 | 0.00% | — | 4y ago |
| 0D0x0d9d…9ff1 | For | 0.6 | 0.00% | — | 4y ago |
| D40xd4d7…6087 | For | 0.6 | 0.00% | — | 4y ago |
| 8F0x8f2a…5272 | For | 0.6 | 0.00% | — | 4y ago |
07Forum
- Deploy BAL & aBAL from the Collector Contract ↗discourse · high confidence
- ARC: Staked ATokens, A New Aave Primitive Exploring Vote-Escrow Economies ↗discourse · high confidence
- ARC - Strategic Partnership with Balancer Part #2 ↗discourse · high confidence
- [ARC] - ERC4626 Strategies as Productive Collateral ↗discourse · high confidence
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
08Similar proposals
- aaveexecutedStrategic Investment Part 1 - BAL <> AAVE Token Swap82%
- aaveexecutedAdding BAL on AAVE78%
- aaveexecutedTreasury Management - Acquire B-80BAL-20WETH76%
- aavecanceledTreasury Management - Acquire B-80BAL-20WETH76%
- aaveexecutedBAL Interest Rate Curve Upgrades76%
- aaveexecutedBAL Interest Rate Upgrade74%
- aavedefeatedAdd BarnBridge (BOND) to Aave72%
- aaveexpiredConsolidate Reserve Factors and Enable Borrowing DPI68%
- aaveexecutedConsolidate Reserve Factors and Enable Borrowing DPI68%
- aaveexecutedAdding AMPL on AAVE68%