Rescue Mission Phase 1 Short Executor
01Summary
Activation of Aave Rescue Mission Phase 1, Level 1 to recover tokens mistakenly sent to ecosystem smart contracts. Users who sent AAVE, LEND, USDT, or UNI to incorrect contract addresses can claim their tokens via a Merkle tree distribution. The proposal deploys AaveMerkleDistributor contract and upgrades LendToAaveMigrator to enable ~849,608 LEND recovery (converted to AAVE equivalent).
- Type
- protocol addition
Key changes
- Deploy AaveMerkleDistributor contract to enable token claims for users who mistakenly sent AAVE, stkAAVE, UNI, and USDT to ecosystem contracts(high)
- Add AAVE, USDT, UNI, and stkAAVE token distributions to the merkle distributor(high)
- Upgrade LendToAaveMigrator implementation with rescue logic to recover LEND sent to LendToAaveMigrator (~8,007.72 LEND) and LEND contract (~841,600.72 LEND)(high)
- Convert total recovered LEND (~849,608.44 LEND) to AAVE equivalent at 1 AAVE = 100 LEND ratio(medium)
Notable concerns
- Only Phase 1, Level 1 (Short) Executor activation; additional phases may follow for other mistaken transfers
- LEND to AAVE conversion uses fixed 1:100 ratio
- Contracts underwent Certora audit; security depends on audit quality and implementation correctness
Generated by Kvorum
02Description
Simple Summary
Activation of Aave rescue mission Phase 1, Level 1 (Short) Executor part
Motivation
Since the birth of the Aave ecosystem, multiple people have sent tokens by mistake to incorrect addresses.
In some cases, when the transfer is to another unknown wallet, the tokens are usually locked and lost forever, as it is factually impossible to prove that the transfer was a mistake.
But there are special cases, where the transfer happens to a well-known smart contract address of the ecosystem, for which is simple to understand that the action was really a mistake, as there is no rational reason to send tokens there.
In the case of Aave, the existence of upgradeable smart contracts across the ecosystem makes technically possible the recovery of such tokens sent by mistake. Consequently, given the requests from members of the community affected, we have come up with a plan to “rescue” those funds, providing the affected people a way to recover them.
This initial phase will affect the following:
- Users who sentAAVE, LEND, USDT and UNI to the AAVE token smart contract
- Users who sent LEND to the LEND smart contract
- User who sent LEND to the LendToAaveMigrator smart contract
- Users who sent AAVE and stkAAVE to the stkAAVE contract
The LEND sent to the specified contracts will be claimed already as AAVE tokens with the transformation LEND to AAVE already taken into account (1 AAVE = 100 LEND)
Specification
For wallets to be able to claim the tokens they sent to the contracts specified on Phase 1, we have created a different Merkle tree for every claimable token (AAVE, stkAAVE, UNI, USDT).
With the roots and amounts, every wallet will be able to claim by calling the AaveMerkleDistributor contract.
This Rescue Short Proposal will be in charge of the activation of the AaveMerkleDistributor contract and the rescue of LEND sent to the LendToAaveMigrator and to LEND contracts.
- ProposalPayloadShort: This proposal payload will deploy the AaveMerkleDistributor contract and add the AAVE, USDT, UNI and stkAAVE distributions. It will also connect the new implementation of the LendToAaveMigrator. The LendToAaveMigrator will be initialized with the deployed AaveMerkleDistributor and with the LEND amount calculated by adding:
- LEND amount sent to LendToAaveMigrator: 8007719287288096435418 LEND in WEI (~8007,72 LEND).
- LEND amount sent to LEND contract: 841600717506653731350931 LEND in WEI (~841600,72 LEND).<p> This amount will directly be accounted by rescuing AAVE, as the LEND contract will not be updated, but as the LendToAaveMigrator has all remaining AAVE, we can assume that it was sent there, and so it can be migrated with the rest of the LEND amount sent.
References
A list of relevant links like for this proposal:
- forum discussion
- tests
- Contracts:
Security Considerations
The contracts have been audited by Certora, and the report can be found here
Implementation diffs have been generated to see that the new implementations only differ on the rescue logic:
- LendToAaveMigrator Diff
Storage layouts diffs have also been generated for the contracts where the implementation is updated:
- LendToAaveMigrator storage layout Diff
Deployed Contracts
Copyright
Copyright and related rights waived via CC0.
03Mismatch analysis
The decoded calldata contains a single action: execute() on the ProposalPayloadShort contract at 0x4a4c73d563395ad827511f70097d4ef82e653805. This address matches exactly the 'Deployed Contracts' address given in the description for ProposalPayloadShort. This is the standard Aave governance pattern where a short executor proposal consists of one delegatecall to a payload contract's execute() function, which internally performs the more granular actions (deploying AaveMerkleDistributor, adding distributions, upgrading LendToAaveMigrator, etc.) described in the prose. Since the decoded action list only exposes the top-level call and not the internal logic of the payload contract, we cannot directly verify line-by-line the LEND amounts or Merkle root additions, but this is expected and consistent with how Aave payload-based proposals are decoded — the description is a legitimate summarization of the payload's internal logic, not a misrepresentation of the on-chain action. There is no target mismatch, no unexplained extra action, and no value discrepancers visible at this decoding level. Confidence is high because the single action's target correctly matches the audited, referenced deployed contract described in the proposal.
Generated by Kvorum
04Actions
- Target
- 0x4a4c…3805
- 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.
08Similar proposals
- aaveexecutedRescue Mission Phase 1 Long Executor96%
- aaveexecutedRescue Mission Phase 2, 387%
- aaveexecutedAave <> Starknet - Phase I73%
- aaveexecutedAave <> Starknet - Phase I (Part 2)72%
- aaveexecutedAave StarkNet Phase I - Aave <> StarkNet Bridge deployment/activation by Aave governance71%
- aaveexecutedEthereum v2 Collector Contract Consolidation68%
- aaveexecutedSwap assets to aUSDC67%
- aaveexecutedTreasury Managemet - Acquire wstETH & rETH66%
- aaveexecutedAcquire More aUSDC on Aave Ethereum Collector65%
- lidoexecutedSend 3999999999999997473694078 tokens at 0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32 to 0x4b3edb22952fb4a70140e39fb1add05a6b49622b: transfer to the airdrop distributor contract52%