[Proposal] Compensation Mechanisms

Hi all,

Over the last week, we’ve been discussing a few options internally relating to ways in which a compensation plan can be put in place. In this post, I will detail those that have been suggested to us, for the consideration of the wider DAO.

It is worth saying at this stage that should it be feasible for us to do so, I believe it would make things ‘simpler’ for us to cleave the chosen mechanism in two: one variant for the affected token holders themselves, and one for the LP holders (i.e. WETH/CC10, WBTC/WETH/DEFI5). This is a statement made in a personal capacity, and holds no weight from the core team.

My reasoning for this is that in the event that a court determines that the drained funds do in fact need to be returned (and compel the attacker to do so), if the DAO is the mechanism through which that return should be effected, it may complicate matters if there is a single mechanism that muddies the water across both affected token holders and LPs (a court may not take the view that LP holders are directly affected here due to the nature of liquidity).

Note that Snapshots have not yet been taken to fully assess the damage inflicted across all affected pools (either native index or LPs), but this data is all onchain and can be aggregated at any time, modulo a little bit of complexity due to cross-chain presences on Polygon and Arbitrum.

The two options I present below are both currently live in production.


rariBOND Mechanism

This boils down to a zero-coupon bond token being issued against the value of funds lost (either in ETH or, e.g. a stablecoin such as DAI), which will either be paid off and fully redeemable at some future date (e.g. 4 years from now), or will default in the event that sufficient collateral cannot be raised against them in this time.

Such bond tokens would be readily tradeable on AMMs in the event that the affected wish to redeem them for whatever their market price currently is: turning them, effectively, into a speculation bet on the probability of payoff. The source of assets backing this bond (be they from protocol revenue, donations, or the return of funds via the legal system) does not have to be determined at this stage.

A forum thread discussing this concept (from one of a series of proposed options to finalisation) can be found here. A Boardroom vote finalising this choice can be found here.


Pickle Cornichon

The CORN token is a token that can be burned for an underlying repayment token XYZ - again, such as DAI - at a rate of XYZ in underlying contract / CORN supply. As with the bond mechanism above, it is up to the community to determine how the repayment token XYZ is ‘fed’ into the contract in order to be redeemed, and the method for doing so can vary over time.

A user can, at any time, choose to burn their CORN token, but by doing so, forego any future claim (as the token is burned): they can choose the ratio at which they are comfortable with claiming repayment.

The fundamental idea in code can be viewed here: this was created in the aftermath of the Evil Jar hack of November 2020. Docs on the Pickle Finance page relating to Cornichon are available here.


Auxiliary: NDX Backstop

It has been suggested that the Indexed DAO set aside (either formally through Governor Alpha or through a gentleman’s agreement) roughly 500,000 NDX from the Treasury, with the intent that if NDX is to ever reach a price that would cover the impact of the index token assault (LP damage notwithstanding), these tokens would be auctioned off - perhaps at a fixed price - and the proceeds used to fund recovery through either of the above mechanisms. This is not a decision that needs to be made right now, as both cases above leave the ‘where the assets backing the claim’ question open for the DAO to determine.


Again, the DAO welcomes all feedback on this matter - if there’s something I can do to explain these two options a bit further, please ask, and I’ll attempt to do so.

I’d like to thank everyone again for the support they have given to the DAO during an absolutely torrid time. We’ll recover from this, and we’ll build back stronger than before.

5 Likes

I like the rariBOND mechanism. I incorrectly thought Rari had decided to drop governance tokens as compensation, so thanks for the link to the final voting.

It feels like the right fit here and I think using a mechanism that is well recognized by the community will go along way to restoring trust and confidence.

I won’t re-post all my comments from the proposal by @pr0, but here is a link as I think many are still relevant.

4 Likes

I am in favor of two repayment tokens (Ex: inNDX and lpNDX) with inNDX repaying 100% of index losses and lpNDX repaying 80% of paired asset losses.

I would like to see the DAO split protocol revenue three ways, 35% inNDX, 35% lpNDX, 30% Treasury.

I would like to see the DAO unlock dNDX and postpone its release until repayment has concluded.

I am Not in favor of a Rari-style bond mechanism for the following reasons:

  • Possibility of default.
  • Unnecessary cap on the timeframe.
  • Requires providing LM rewards to a secondary market.
  • Does not allow holders to exit early unless there’s a secondary market.

I am in favor of a Cornichon-style burnable repayment token for the following reasons:

  • Mechanism for claiming is similar to dNDX and should require less work to implement.
  • Mechanism to fund repayment vaults already exists via treasury revenue split.
  • No time limitation to claim repayment.
  • No possibility of default.
  • Holders can burn early which lessens the total repayment amount.
  • Allows for a natural secondary market to emerge, but is not required for early repayment.

I am in favor of an NDX backstop in the amount of 500,000 NDX Only if the purchased NDX are subject to a vesting period where the tokens slowly unlock over a period of 1-2yrs in order to prevent dumping. 500k NDX is a significant portion of the circulating supply, about 15% at current.

If/When the exploited funds are returned we have two options:

  • Market sell the individual tokens and deposit the proceeds into the inNDX vault.
  • Create a new index token and let holders burn their inNDX to claim their share of the new index token.

I am in favor of the latter option because it means we would not need to bootstrap a new index token from scratch and returns affected users a ‘like-kind’ asset to what they lost.
lpNDX would receive the revenue allocation going forward (ie. 70% lpNDX, 30% Treasury) until repayment has concluded.

3 Likes

Kuza, I think your proposal is carefully thought out and elegantly written. I do think that LP loss is a very important consideration as the platform would not be able to survive without liquidity providers. The risk that they have taken was necessary for the growth of the protocol.

Of course, it is probably unreasonable to expect all LP loss to be covered so perhaps 80% is a fair compromise (I say this as a significant liquidity provider).

I would, however, like to put the spotlight on FFF for a moment - especially since OP seems to have left it off their list - which is somewhat of a special case. CC10 and DEFI5 were meant to account for around 40% of this index, however, the index got turbo rekt with the demise of the aforementioned indices - much more than 40%. The situation gets much worse for the FFF liquidity providers.

If FFF token holders were only given inNDX tokens for 40% for their FFF holdings, this would be a huge injustice.

4 Likes

The “Pickle Cornichon” seems like a really smart option given the constraints, especially with the unknowns around future revenue generation. Putting any timeline for complete payment is almost impossible until v2 rolls out and has been given a chance to get traction.

There is a small amount of capital available between the treasury deposits (which was initially going to be distributed to dNDX stakers but perhaps better to allocate that here instead) and sushi that was returned from the MEV arb bot. This will be pennies (perhaps literally 2?) on the dollar for someone who wants to claim immediately, but it provides a starting point to begin to clear out compensation claims. As future revenue will be highly dependent on v2, fuller compensation can be awarded to those willing to wait years for that to roll out, gain traction and accrue revenue. Even if it never reaches 1:1, it provides a fair mechanism for people in different situations.

If dNDX rewards are directed to compensation, perhaps dNDX holders can also be given these claim tokens as well for the amount that was to be allocated to them. This won’t affect the total claims that much (< 1%) but will at least give something to those that staked in the hopes of yield (and paid gas, etc).

Lastly, people who put their tokens in LPs had additional losses. I agree with others that this should be considered but do not believe that its the DAO’s responsibility to make these users whole. LPing is generally known to increase risk to the other side of the pair and that risk should be included. I think a ratio closer to 60-70% (full compensation for the index half and 20-40% of eth) is appropriate. If a % can be determined, its unnecessary to release different flavors of the claim token. A snapshot can appropriately award the same claim token for losses to index holders, LPers and dNDX holders (if the staking timelock is unwound and they are included as well).

4 Likes

@Kuza and @marcocrypto make good points here, I am warming to the Cornichon approach to provide individual flexibility without having to make a market and have the risk of term and default for the Bond token approach. Do we have any CORN holders in our community who can say how well it has worked in practice?

@magnetar i was assuming that FFF token and Internal wETH and wBTC component losses would be included in the loss calculation, but I can see that we need some more clarity about how that would be calculated for FFF index and LP holders. It looks like much/most of the FFF has been burnt since the exploit, so losses have been realized already, the details of this loss calculation are beyond me.

I would prefer a single compensation token with as few code changes from what is already “on the shelf” for simplicity and speed. I am also sensitive to Lawrence’s concern about allocation of returned funds being clearly linked to the index token losses in case of a court approved settlement or judgement, so two tranches/tokens might be the wiser choice. If we end up with 2 tokens, would return of arbs be directed to the LP compensation and return from exploiter allocated to the index compensation?

3 Likes

Expanding on the “rariBOND” option and sort of combining it with the “NDX Backstop” 500k tokens, brainstorming and throwing out another idea in case it helps any:

  • This idea basically comes down to "[sold at X price, permanently locked as dNDX] "

What if the 500k NDX tokens are permanently for sale at $32/each to raise $16mil, but can’t be market sold due to being instantly converted to permanent or long term dNDX? Let’s call these $32/each tokens “ndxBOND”.

To incentivize people to want to buy these, they should have a variable multiplier that is locked in based on when they are purchased. They should be locked up for a very long time such as let’s say 5 years, or maybe even forever? These would act as a bigger more extended special version of converting NDX to dNDX, specifically to raise funds to resolve this compensation problem, while not allowing any of these 500k NDX to be marketsold due to being immediately locked up into dNDX. These funds raised over time could be deposited into one side of the DAI/ndxBOND pool so people can have their Bonds backstopped by DAI as a floor price. Eventually it will fill up enough that the remaining ones not sold should be equal to the original lost value.

Example: I buy 100 NDX @ $32 each = $3,200 from this special contract that has NDX for sale for the compensation. Those 100 NDX are now locked up for 5 years or maybe forever on my behalf and I now have let’s say 40x 100 = 4,000 dNDX for having done this.

Example dNDX special variable multiplier:

  • If NDX token price is $3.20 right now then buying any ndxBOND of them would convert to 40x dNDX multiplier ($32 / $3.20 * 4)
  • If NDX token price is at $16 right now then buying 100 of them would convert to 8x dNDX multiplier ($32 / $16 x 4)
    This incentivizes more people to buy more of this compensation earlier, but also makes it more attractive with less risk as the NDX price rises.

Although the primary downside of this is the existing NDX to dNDX holders will suffer some dillution due to the multipliers, the current dNDX are able to unstake in the next year where as this version of dNDX can’t unstake for a long time or ever depending on route chosen for implementation.

This model, if implementing “forever” lock up, means those NDX sold could potentially go back to NDX DAO and be used for other things in the future? Or perhaps functionally no NDX are actually truly sold and it’s just an instantaneous conversion of DAI to permanently owned dNDX via a contract to raise funds?

The one main benefit I see that this hybrid model has is the ability to achieve a full compensation restoration to all those affected in a shorter timeframe than 4 years, without harming the operational costs to grow and develop NDX, while also allowing new money to be invested as dNDX that believes in the long term prospects of NDX ecosystem.

I will freely admit now there could be a gaping logic hole I’m not considering on why this is a terrible idea. Maybe I don’t fully understand how dNDX works currently on why this is a non starter. Maybe this idea gives someone inspiration to help devise another possible strategy.

Side note, regarding using RariCapital as an example to follow: It’s been stressful waiting 6 months for nothing to happen yet on the Rari Capital ETH exploit, please don’t allow DAO governance to drag out the NDX compensation plan into potentially never happening either.

4 Likes

I just want to say that I think this is a really cool idea and if popular could be the fastest way to repayment. I even think it could be paired alongside a Cornichon two-token system to then have both a slow growth mechanism (Cornichon) and a quick growth one (ndxBOND).

I do have one major concern about it though.

With the increased NDX -> dNDX ratio of 40x, it significantly dilutes the potential yield for all future dNDX participants. For instance, 40x 500,000 NDX will create 20,000,000 dNDX shares, for comparison if the total supply of 10,000,000 NDX was locked up for the max timeframe of 1y it would create 40,000,000 dNDX. If these dNDX shares never expire, then it’s a permanent 1/3 dilution of all future revenue.

If we are to implement something like this, I’d feel fine with a 40x on each NDX since we are trying to make it worthwhile for investors, however, I believe it needs to have a max timeframe of 5 - 10yrs.

1 Like

I think we should do snapshot votes right away on the following questions in order to limit the scope of open questions we need to resolve, as these all play into the overall compensation plan but don’t require a ton of details to be worked out first:

  1. Should dNDX be terminated so that people can withdraw early and no revenue is directed to it? (Y/N)
  2. What percent of value should index token holders be compensated?
  3. What percent of value should LP holders be compensated?
  4. Which assets should we include in the compensation plan?
  5. Should we destroy and claim all of the value held in markets for the affected tokens?

For #2 and #3 we could use quadratic voting the way we did to set the dNDX/treasury revenue split.

For #4 we could do multiple choice with the following options: DEFI5, CC10, FFF, DEFI5 Market LPs, CC10 Market LPs, FFF Market LPs, and take >50% in favor of a given option as a yes. For #5 we’d do multiple choice for DEFI5, CC10, FFF and only execute the destroy & claim if the token and LP both had a yes on compensation in #4, since we’d otherwise be effectively stealing from holders.


Token structure
I agree with @Kuza and @marcocrypto that the Cornichon model (not necessarily the actual contract though) is better suited for our situation as it doesn’t set a particular time limit and allows the asset to be burned as the capital backing it grows, which then reduces the total burden of the DAO. It would also be incredibly easy to implement, as it would only require deployment of a vault contract (we have one based on Yearn in the Nirn repo) and redirecting funds from the revenue sale contract t

FFF
With regard to FFF, I think we should treat it the same as DEFI5 and CC10 - both in that holders should be compensated, and that we should destroy it and reclaim all assets held in the pool and its market pairs. I don’t think it would make sense to only count the DEFI5/CC10 components of the FFF as losses, since it’s a balancer pool and was almost totally drained.

Variable conversion dNDX
@steve I agree with @Kuza’s point about this diluting anyone who deposits NDX for dNDX. If it was a long-term claim on revenue (i.e. not just until repayment occurs) then we’d end up in a situation where everyone holding dNDX years from now would be people who got it at a 40x conversion rate, rather than its original intent which was to distribute revenue to people locked in to the long-term success of the protocol and who locked up NDX for the longest period of time. Aside from that, it would also require a fairly complex contract that would take time away from the development of Indexed V2. I think we need to strongly consider implementation time when comparing solutions.

Index vs LP holders
With regard to separating the index and LP tokens, I think it’s very difficult to guess how a court-mandated return of funds might look. We would certainly submit an amicus brief explaining the compensation plan once it’s in place and hope a judge orders funds sent straight to the DAO, but there’s no guarantee they’d actually do that.

If they didn’t, I really have no idea how they might try to split the funds, and there’s no guarantee it’d go to index holders and not LPs instead of doing some sort of proportional split between all the affected parties, or any other way that’s not at all easy to deal with in advance. I think the best thing we could do would be to use a single token for everyone now and then if in the future a court orders an incompatible repayment plan, we can simply redeploy the payment token with modified amounts to each person after accounting for what they’ve received from the court.

5 Likes

I just want to echo that we should get voting started sooner rather than later.

In regards to your 1-5 options for voting.

I believe we need to get #1 and #5 voted on immediately, there’s no reason to let the affected indexes continue to hold any value. It only serves to prolong the “will the index recover?” questions we’re getting. And people have been buying them under the assumption they’ll recover, which we know isnt going to happen so i’d like to nip that in the bud.

I believe #4 is not needed if we are going to vote on #2 and #3, we can just have an option for “No compensation” on the quadratic voting.

Quadratic voting for #2 and #3 should just be 0 - 100% in 10% increments to allow for quadratic voting to show what true percentage people want.

As for Index vs LP holders compensation tokens, I still believe it’s best to have two tokens, rather than one. In the event we get the funds back and the court mandates delivery to one or the other or both, we wont have to redeploy anything or create new snapshot votes. Plus if we do get the funds back it will not be enough to 100% cover either Index or LP holders so some users will opt to continue holding the compensation token until they’re at 100% compensation. This might be something to have a snapshot vote on.

1 Like

I’m okay with any of the mechanisms. Don’t have a strong preference nor much knowledge of the inner workings of either.

I’d like to raise another point for hacker-proofing indexed in the future. Would it be possible to use part of the protocol revenue to pay for insurance/cover? Instead of letting the individual have to take an insurance, could we do it at the protocol level for certain type of exploits or losses? I honestly don’t know why this is not done in DeFi in general.

1 Like

I think using revenue to pay for insurance would be a massive drain on the treasury - it’d make much more sense IMO to simply add an option in the UI for users to purchase insurance themselves when minting/buying indices. I’m not totally sure how that all works though and I think it’s more of a V2 feature to try directly building it in. The simplest thing I think would be to get an insurance pool going on one of the protocols and just give users a link to buy it there.

2 Likes

Hmm I see. I haven’t looked much into the costs, but if it’s too costly I guess allowing the opt-in would be best. Or maybe adding some sort of fee to cover for that? But again, not sure how much that would have to be. I think adding it as a V2 feature is already a good thing. it’s probably another topic for another time then.

Hi all, some comments on Wintermute side.

First to be transparent about where we stand economically - we did not hold any of the FFF, DEFI5 or CC10 on the books and I only hold DEGEN personally ( :cowboy_hat_face:). We do have NDX on the books that we have bought at various points of time and we do have implied exposure to NDX via the MM agreement we did earlier this year.

Now some considerations (all opinions are on behalf of Wintermute, i.e. I = We):

  • An important consideration (from fairness point of view) is that all affected parties held indices that would give them an upside to defi ecosystem. This means that the compensation is a moving target. I.e. if index holders lost 18 mil and defi doubled in 1 year time, they should be owed 36 mil. Opposite holds as well
  • I can see that the % amounts vary between 0 and 100%. I actually think it would be more fair to set them above 100% to compensate for time value of money. Can be something like 20% per year, so if we start with 18 mil, it would become 21.6 mil in one year time.

Given the comments above, I would be in favor of Cornichon solution, having two separate tokens for LP and index holders. Reasons to split these:

  • legal resolution might apply to one group and not the other, making it difficult to blend them together (even opening indexed to legal challenge)
  • Target compensation amount would be different and change throughout the year based on the considerations above. So LPs might be a moving target tied to ETH, while index holders would have exposure to a wider defi basket

With regards to NDX backstop, I see it as auxilary mechanism to obtain the funds to send to cornichon contracts. This doesnt have to be decided at this stage

I would be in favor of voting to resolve the % of fees that would go into treasury and cornichon contracts, but also % of funds that would go to cornichon in case of further fundraise. This consideration can replace NDX backstop in a way

2 Likes

I think the dNDX staking should probably proceed as it was, maybe diverting a % of both sides towards the repayment pool but not ending it or taking a significant % from stakers. As a Defi5 and dNDX holder I’m coming to terms with waiting years to see anything from DEFI5 but it would be a disappointment to also have the long awaited staking program essentially be “rekt” as well. Also from a consumer psychology standpoint I think it probably makes things look better if aspects of Indexed proceed successfully instead of the whole ecosystem sort of grinding to a halt until this finishes (because with or without dndx revenue it will be years).

Agree with Wintermute above that appreciation should be factored in. I think for many these were long term holds so even if it took much longer, catching up to market gains would be the ideal.

I guess the fundamental thing to address here is “if we want to inflate the amount returned according to market gains”, does that really need to be determined now?

I’m hoping that people will largely vote to reward affected index holders in full (with the ETH/WBTC components of affected LP tokens being a bit more ‘see how the DAO feels’), but recognise that since we’re doing this as a DAO vote, there may well be a few who vote for chaos.

With that said, once we’ve established what the percentage is to be returned against each class of affected asset (and as such determine the max token supply of a Cornichon, for example), it can be a separate - later - discussion as to whether we want to then adjust the ‘APR’ of that debt on an annual basis pegged to market performance: say, according to the DPI for the index components, since we don’t have anything to benchmark against anymore, and ETH/WBTC for the other sides of the LPs.

Evgeny pointed out to me separately that even if we do decide to increase maximum returns on debt (e.g. a 20% increase YoY on debt against index tokens), we don’t actually have to mint more Cornichon tokens, we just have to increase the amount of (for example) DAI that is fed into the contract to be burned against.

1 Like

I disagree with the idea that we should try to compensate users for lost gains over time.
For starters, there’s absolutely no way to know how much the crypto market will increase over a timeframe of 5-10yrs. If we allow this sliding goalpost then we’re likely to never reach it which will only frustrate end-users, and hamstring Indexed Finance.

The end users understood that this is a beta product and took a risk using it, the loss to their gains/time are the repercussions of that risk.

The best thing for Indexed is to be decisive in its end goal, take our welps and start moving forward.

2 Likes