BalancerMaxis / multisig-ops

17 stars 27 forks source link

Recycling for Paladin Bribs #1459

Open Tritium-VLK opened 4 weeks ago

Tritium-VLK commented 4 weeks ago

Context

The omnichain multisig is accumulating bribs from BD voting. In order for the BD voting to have effect, this value needs to be redirected back into the same pool it was earned from. BIP-715 specifies that in cases of recycling 30% is taken as a treasury fee and 70% is paid in as bribe markets. There has been some discussion around a new BIP that proposes 100% is paid in as direct incentives.

Techincal requirements

Parser for HH claims API

We need to be able to understand what is available to claim and where it came from so that we can claim it and pay it back in.

Claim data can be found on the Paladin API here: https://api.paladin.vote/quest/v3/copilot/claims/0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e

It is a list of json maps shaped like this:

 {
      "id": 19198,
      "user": "0x9ff471F9f98F42E5151C7855fD1b5aa906b1AF7e",
      "token": "0x912CE59144191C1204E64559FE8253a0e49E6548",
      "amount": "902503091021552770066",
      "index": 0,
      "period": 1724889600,
      "questId": 11,
      "gauge": "0xB599e35f760c47888aD3fF684FF4cd01ff4Dc45B",
      "proofs": [
        "0xd2f29c757e9a4b26dc8a44d40dfb95cf1583a52e38b2ffb9b00db9dc23e4add5"
      ],
      "path": "bal",
      "distributor": "0xB5757D5D93a26EaA3Bc6b0b25cb2364bE8d5b90E",
      "chainId": 42161
    },

We need to 1: create a transaction builder tx that claims everything per chain. 2: print out a CSV of chain/pool_id/something human readable/amount that shows where redirect needs to go>

Redirecting value

Depending on the method decided, we either need to parse the above CSV, take our 30% cut, and then place bribs on HH , or potentally swap for other coins to avoid overlap and then place schedules on an injector.

Note we should seek to brib on the Balancer market if the bribs are aura bribs to avoid the "double payout" of voters problem.

For now should assume 30% cut and rebrib

End result

A workflow that you run, which generates a final payload to claim all available bribs per chain and pay them back out using the desired logic.

Tritium-VLK commented 4 weeks ago

Here is an example claims payload from Paladin:

temp_tx_ms_ig_claim_quest (2).json

Zen-Maxi commented 4 weeks ago

Main push from BD/Partnerships on this front comes from saving some face and doing what we promised. We had told Aave / GHO stakeholders we would up our votes from vlAura to help raise their APRs/TVL on top of the bribes they were placing but instead neutralized the bribe market instead of working in tandem with it. Essentially this situation caught us not delivering on a promise.

Tritium-VLK commented 4 weeks ago

Discussed with jalbrekt. Autoclaimer may already be done.

Tricky part is the next steps. As a first step.

1: Pay 70% of all tokens as bribs to the pool they came from in the same payload 2: cowswap all remaining tokens to USDC in the DAO multisig on the chain in question

Later advancements if we keep doing this: (not in scope now)

1: Batch mainnet bribs into the next fee_allocator run to save gas 2: Maybe find a way to automatically bridge the USDC back to mainnet from arbitrum

Potential governance changes: The Maxis may propose governance to change the spec as follows.

1: 100% to recycling or 2: 100% to direct incentives (perhaps via an injector) 2a: In this case we also have to swap for a token that a partner is not already injecting on. We can't use BAL... Needs more thought

I'll be less available. @Zen-Maxi is a good partner to work with once you get close/have something and to keep you up to date on any changes to governance.