• © Goverland Inc. 2026
  • v1.0.1
  • Privacy Policy
  • Terms of Use
Indexed FinanceIndexed Financeby0x236ECcAB8cdcfEDb099dE85c4060024bA3cE4d460x236E…4d46

Return assets drained from FFF, CC10, DEFI5

Voting ended over 3 years agoSucceeded

NOTE This proposal will only return assets to users who held FFF, CC10 or DEFI5 at the time Proposal 16 was executed. It does not return any assets other than those drained from those index pools to the Indexed treasury.

Context

In November, the Indexed DAO passed Proposal 16 to drain the assets in DEFI5, CC10, FFF and their respective market pairs. After the October hack, these pools were no longer functioning and were losing value. Proposal 16 was intended to prevent further losses by transferring the assets underlying the affected pools to the DAO, where they would be used to fund a compensation plan.

It has since become clear that this compensation plan would unfairly affect holders of these assets, as their tokens would be distributed amongst a larger pool of users who had already redeemed the value of their tokens. The DAO previously passed a Snapshot proposal to return these assets to users via a merkle distribution. For more context, see that proposal: https://gov.indexed.finance/#/proposal/0xee15c98c58c2cbb8dc29b0143ab75c8ce65eed6e31fd478e6a2d7a07041e762f

After building a database of token holders at the time of the proposal, we've realized that the merkle distribution plan could negatively affect some users, particularly those who held assets in smart contracts which can only interact with the index pools according to their expected behavior. Because many holders of the tokens are unverified smart contracts, we can not guarantee that this merkle distribution wouldn't result in some tokens being locked.

Solution

To ensure the fairest redistribution of assets, we think the assets should simply be returned to the index pools, which still have their original balance records because the pool contracts have been locked since the proposal was executed. The pool contracts would then have their implementations set to a contract which disables all non-view pool functions aside from basic ERC20 transfers and exitPool, which burns pool tokens for all underlying assets. This will prevent any arbitrage which might affect the value of extracted underlying assets for users but should maintain interoperability with smart contracts holding tokens on behalf of users so long as they can at least be made to perform an ERC20 transfer of the pool tokens.

Each index pool will receive exactly the amount of each underlying asset which was taken by the treasury in Proposal 16. Users will then be able to burn their pool tokens for underlying tokens

This new pool implementation has been written and its code can be viewed here: https://github.com/d1ll0n/drain-reversal/blob/main/contracts/RestrictedIndexPool.sol

For Uniswap LP tokens, we have created a secondary contract called UniBurn. UniBurn will allow users to "burn" their Uniswap LP tokens (transfer them to the null address) in order to redeem the index tokens and ETH their LP tokens were previously worth.

If both pieces of this proposal are executed, users will be able to redeem their tokens as follows. If either proposal fails, no assets will be transferred out of the treasury.

Index Pools

Call one of the following functions on the appropriate pool contract:

  • function exitPool(uint256 poolAmountIn, uint256[] calldata minAmountsOut)
  • function exitPoolTo(address to, uint256 poolAmountIn)
  • function redeemAll()

LP Tokens

Call the appropriate function on the UniBurn contract for the index pool whose LP tokens you held on:

  • function redeemFFFLP()
  • function redeemDEFI5LP()
  • function redeemCC10LP()

Proposal #1 Actions

  1. Approve Redistributor to spend 24.51133902686067268 WETH
  2. Approve Redistributor to spend 6558.043534141821704793 UNI
  3. Approve Redistributor to spend 242.969521553963029458 AAVE
  4. Approve Redistributor to spend 151.734388687236707223 COMP
  5. Approve Redistributor to spend 562.7488494101103946 SNX
  6. Approve Redistributor to spend 11594.900216754992505371 CRV
  7. Approve Redistributor to spend 11.094471289438530485 MKR
  8. Approve Redistributor to spend 112967.732688466399021387 SUSHI
  9. Approve Redistributor to spend 0.002548769490053096 YFI
  10. Approve Redistributor to spend 8.027975305505807303 UMA

Proposal #2 Actions

  1. Approve Redistributor to spend 88.900666814888137214 BAT
  2. Approve Redistributor to spend 523.085971072278439194 OMG
  3. Approve Redistributor to spend 0.47902696 WBTC
  4. Approve Redistributor to spend 4944.681286065833316986 DEGEN
  5. Set sigma pool implementation to SigmaFallThrough
  6. Set core pool implementation to CoreFallThrough
  7. Call restoreBalances() on Redistributor

Off-Chain Vote

Yes
425.85K NDX100%
No
0 NDX0%
Download mobile app to vote

Timeline

Jun 02, 2022Proposal created
Jun 02, 2022Proposal vote started
Jun 06, 2022Proposal vote ended
Oct 26, 2023Proposal updated